Клиент хочет подключиться к серверу.
Сервер не знает, какой порт использует клиент для открытия этого порта.
Как узнать, к какому порту обратное соединение (входящее соединение) хочет подключиться?
Клиент хочет подключиться к серверу.
Сервер не знает, какой порт использует клиент для открытия этого порта.
Как узнать, к какому порту обратное соединение (входящее соединение) хочет подключиться?
Когда клиент подключается к серверу, 4 части информации отправляются с первоначальным запросом - IP-адрес источника и назначения, а также порт источника и назначения.
Таким образом, если он обеспечен полной связью, сервер будет знать порт, к которому нужно подключиться, потому что он связан с адресом from.
Если это не известно заранее, необходимо либо определить диапазон портов от клиента (если это разрешено протоколом), либо маршрутизатор может принимать трафик от всех портов с соответствующим портом назначения (или использовать соединение отслеживание, если порты связаны) и переадресация их по мере необходимости.