Назад | Перейти на главную страницу

Номер порта TCP

как я знал, каждое TCP-соединение имеет определенный номер порта (пункт назначения и источник) ...

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

у меня вопрос в том, в какой момент этот номер сбрасывается или он всегда уникален?

Так не бывает. Порт должен оставаться неизменным на протяжении всего сеанса. Даже вызовы подтверждения получения новых подключений будут выполняться на том же порту.

Номер порта не увеличивается при запросах / ответах. Номер порта похож на добавочный номер телефона ... Ваш компьютер делает запрос на IP-адрес (номер телефона) и определенный порт (добавочный номер). Номер порта сообщает серверу на принимающей стороне, какому приложению принадлежит этот запрос (например, номер порта).

Таким образом, номер порта остается постоянным, поэтому клиентское приложение может связываться с серверным приложением. Если бы эти числа изменились, клиент не знал бы, на какое «расширение» отправить запрос на стороне сервера ... что приведет к тому, что запрос будет недействительным или потерянным.

Порт на клиенте является произвольным и для справки называется эфемерным.

Ваш исходный порт назначается операционной системой - если программное обеспечение не пыталось запросить конкретный исходный порт - и обычно операционные системы используют верхние 30 тыс. Или около того портов для адресов источников. Поэтому, если вы делаете десятки тысяч запросов, в конечном итоге вам придется переработать исходный порт.

Многие операционные системы просто пытаются увеличить свой последний исходный порт до тех пор, пока не найдут доступный, в то время как другие выбирают случайным образом из доступных портов.

Исходный порт изменится с новыми сеансами TCP, но не внутри сеанса. Что меняется во время сеанса, так это Последовательность чисел. В некоторых операционных системах оба они могут быть инициированы с предсказуемым числом, в других - случайным.

Я не в курсе, но с Linux SELinux позволит средству рандомизировать исходный порт и начальный порядковый номер (сейчас это может быть стандартным).

Я предполагаю, что основная проблема - это безопасность, особенно захват сеанса. Если вы действительно хотите защитить этот уровень связи, вам следует изучить различные формы туннелей IPSec и VPN.

Входящий порт на сервере называется портом прослушивания.

В некоторых серверных приложениях соединение устанавливается и удерживается на порту прослушивания, в этом случае сервер не будет принимать новое соединение, пока соединение не будет закрыто.

В других случаях соединение инициируется на слушающем порту, а затем передается другому порту, оставляя слушающий порт открытым для новых соединений.

Окончательный номер порта в значительной степени не имеет значения, если нет особых требований, основанных на брандмауэрах, безопасности и т.п.