Когда я выполняю netstat -a
на моем компьютере с Windows, я получаю список портов с одним из четырех состояний:
- LISTENING
- CLOSE_WAIT
- TIME_WAIT
- ESTABLISHED
Что означают / указывают CLOSE_WAIT
и TIME_WAIT
?
Когда я выполняю netstat -a
на моем компьютере с Windows, я получаю список портов с одним из четырех состояний:
- LISTENING
- CLOSE_WAIT
- TIME_WAIT
- ESTABLISHED
Что означают / указывают CLOSE_WAIT
и TIME_WAIT
?
Из-за того, как работает TCP/IP, соединения не могут быть закрыты немедленно. Пакеты могут поступить не по порядку или быть повторно переданными после закрытия соединения. CLOSE_WAIT указывает, что удаленная конечная точка (другая сторона соединения) закрыла соединение. TIME_WAIT указывает, что локальная конечная точка (эта сторона) закрыла соединение. Соединение поддерживается так, что любые задержанные пакеты могут быть сопоставлены с соединением и обработаны соответствующим образом. Соединения будут удалены по истечении четырех минут. См. Http://en.wikipedia.org/wiki/Transmission_Control_Protocol для получения дополнительной информации.
По сути, состояния "ПОДОЖДИТЕ" означают, что одна сторона закрыла соединение, но окончательное подтверждение закрытия еще не получено.
Смотрите, например, эту схему состояний TCP для деталей:
TIME_WAIT представляет ожидание в течение достаточного времени, чтобы убедиться, что удаленный TCP получил ACK своего запроса FIN. См. En.wikipedia.org/wiki/Transmission_Control_Protocol (а также RFC 793)