Вопрос о привязке порта TCP / IP - PullRequest
3 голосов
/ 21 января 2010

Хотелось бы узнать, будет ли приложение сервера всегда отвечать на один и тот же порт? Я где-то читал, что для того, чтобы продолжать прослушивать «слушающий» порт, сервер будет использовать другой порт. Кто-нибудь может предоставить мне более подробную информацию? Спасибо!

Ответы [ 2 ]

3 голосов
/ 21 января 2010

В рамках процесса установления связи по TCP на другом порту устанавливается канал связи. Номера портов источника и назначения соответствуют 16-битным полям в заголовке пакета TCP. Как только канал установлен, связь осуществляется через этот порт с соответствующими значениями порта источника и назначения в полях заголовка.

Начальное подключение к порту прослушивания на сервере; после этого процесс устанавливает TCP-соединение на новых назначенных портах, и дальнейшая связь происходит на этих портах.

2 голосов
/ 22 января 2010

Если вы устанавливаете TCP-соединение с сервером на определенном порту, это TCP-соединение будет продолжать использовать тот же порт на стороне сервера.

TCP-соединение устанавливается между парой (address1, port1) наодна сторона и пара (address2, port2) на другой стороне - и все четыре из этих значений фиксированы в течение срока службы соединения TCP.

Это не мешает серверу прослушивать порт после того, как он принялсоединение - поскольку оно может различать любые пакеты для установленного (ых) соединения и новых соединений на основе пары (address, port), используемой клиентом.

Например, этот netstat вывод с сервера Oracleпоказывает, что он прослушивает порт 1521, и несколько установленных соединений также используют этот порт:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:1521                0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:1521              127.0.0.1:32776             ESTABLISHED
tcp        0      0 192.168.9.126:1521          192.168.9.124:32798         ESTABLISHED
tcp        0      0 192.168.9.126:1521          192.168.9.124:32823         ESTABLISHED
tcp        0      0 192.168.9.126:1521          192.168.9.124:32822         ESTABLISHED
tcp        0      0 192.168.9.126:1521          192.168.9.124:32821         ESTABLISHED
tcp        0      0 192.168.9.126:1521          192.168.9.124:32820         ESTABLISHED
tcp        0      0 192.168.9.126:1521          192.168.9.124:32819         ESTABLISHED
tcp        0      0 192.168.9.126:1521          192.168.9.124:32818         ESTABLISHED
tcp        0      0 127.0.0.1:1521              127.0.0.1:30536             ESTABLISHED
tcp        0      0 192.168.9.126:1521          192.168.9.124:36969         ESTABLISHED
tcp        0      0 127.0.0.1:32776             127.0.0.1:1521              ESTABLISHED
tcp        0      0 127.0.0.1:30536             127.0.0.1:1521              ESTABLISHED
tcp        0      0 192.168.9.126:1521          192.168.9.124:37786         ESTABLISHED
tcp        0      0 192.168.9.126:1521          192.168.9.124:37035         ESTABLISHED
tcp        0      0 192.168.9.126:1521          192.168.9.124:37034         ESTABLISHED
tcp        0      0 192.168.9.126:1521          192.168.9.124:33018         ESTABLISHED
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...