Изменяется ли порт, когда TCP-соединение принимается сервером?

Когда клиент подключается к серверу с использованием TCP, для потока TCP создается новый сокет. Остается ли соединение на том же порту, на котором было установлено соединение, или оно изменилось на другой порт?

Ответ 1

Новый сокет представляет собой концепцию уровня приложения, потому что каждому установленному соединению нужен уникальный файловый дескриптор (также отличный от дескриптора файла прослушивания), который сопоставляется, но не совпадает с сеансом TCP. Сам сеанс идентифицируется комбинацией адреса источника и адресата и порта. Исходный (клиентский) порт обычно выбирается случайным образом, а конечный (серверный) порт является портом прослушивания. Не выделяется дополнительный порт.

Ответ 2

Сокет, связанный с новым дескриптором, возвращаемым accept на сервере, будет использовать тот же порт на стороне сервера соединения в качестве исходного сокета (предполагая "обычные" определения, когда клиент инициирует соединение). Новый сокет будет иметь другой номер порта клиента (удаленный порт с точки зрения сервера).