it-swarm-ru.tech

Что такое состояния CLOSE_WAIT и TIME_WAIT?

Когда я делаю netstat -a на моем компьютере с Windows, я получаю список портов с одним из четырех состояний:

- LISTENING
- CLOSE_WAIT
- TIME_WAIT
- ESTABLISHED

Что означают/указывают CLOSE_WAIT и TIME_WAIT?

158
Lazer

Из-за того, как работает TCP/IP, соединения не могут быть закрыты немедленно. Пакеты могут поступить не по порядку или быть повторно переданными после закрытия соединения. CLOSE_WAIT указывает, что удаленная конечная точка (другая сторона соединения) закрыла соединение. TIME_WAIT указывает, что локальная конечная точка (эта сторона) закрыла соединение. Соединение поддерживается так, что любые задержанные пакеты могут быть сопоставлены с соединением и обработаны соответствующим образом. Соединения будут удалены по истечении четырех минут. Смотрите http://en.wikipedia.org/wiki/Transmission_Control_Protocol для более подробной информации.

169
BillThor

По сути, состояния «ПОДОЖДИТЕ» означают, что одна сторона закрыла соединение, но окончательное подтверждение закрытия еще не получено.

Смотрите, например эта схема состояния TCP для деталей:

http://www.jxos.org/Projects/TCP/tcpstate.html

28
sleske

TIME_WAIT означает ожидание достаточного времени, чтобы убедиться, что удаленный TCP получил ACK своего запроса FIN. См. en.wikipedia.org/wiki/Transmission_Control_Protocol (а также RFC 793)

0
Denio Mariz