LINUX.ORG.RU

Реализация TIME_WAIT TCP в Linux

 


0

1

Здравствуйте. Как реализован TIME_WAIT из TCP в Linux? Интересен случай с сервером, который, например, создал свою копию и копия закрыла соединение. Случай без создания копии тоже непонятен. В случае клиента и закрытия соединения им, то, как предполагаю, нужно всего лишь исключить выдачу этого номера порта на время 2MSL. А с сервером как?



Последнее исправление: panzerito (всего исправлений: 1)

Если сервер закрыл сокет, и есть сокет в TIME_WAIT, то забидиться на этот порт без SO_REUSEADDR у сервера не получится.

Но, сервер ведь обычно не закрывает тот сокет, который он «слушает», при установлении соединения через accept() сервер получает ещё один дескриптор-сокет, и потом уже этот сокет закрывается и может перейти в состояние TIME_WAIT.

mky ★★★★★
()
Последнее исправление: mky (всего исправлений: 1)

Случай без создания копии тоже непонятен.

Точно так же, как и у клиента. Важно понимать, что (если говорить в контексте bsd sockets), что accept() возвращает уже другой сокет.

nanoolinux ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.