![什么是 CLOSE_WAIT 和 TIME_WAIT 状态?](https://linux22.com/image/1246897/%E4%BB%80%E4%B9%88%E6%98%AF%20CLOSE_WAIT%20%E5%92%8C%20TIME_WAIT%20%E7%8A%B6%E6%80%81%EF%BC%9F.png)
当我netstat -a
在 Windows 机器上执行此操作时,我得到了具有以下四种状态之一的端口列表:
- LISTENING
- CLOSE_WAIT
- TIME_WAIT
- ESTABLISHED
CLOSE_WAIT
和代表什么意思/表示什么TIME_WAIT
?
答案1
由于 TCP/IP 的工作方式,连接无法立即关闭。数据包可能会乱序到达或在连接关闭后重新传输。
- 关闭等待表示远程端点(连接的另一端)已关闭连接。
- 时间的等待表示本地端点(此端)已关闭连接。
连接被保留,以便任何延迟的数据包都可以与连接匹配并得到适当处理。如果连接在四分钟内超时,则将被删除。请参阅http://en.wikipedia.org/wiki/Transmission_Control_Protocol更多细节。
答案2
基本上,“等待”状态意味着一方关闭了连接,但关闭的最终确认尚未完成。
有关详细信息,请参阅此 TCP 状态图:
https://en.wikipedia.org/wiki/File:Tcp_state_diagram_fixed.svg
答案3
TIME_WAIT 表示等待足够的时间以确保远程 TCP 收到其 FIN 请求的 ACK。请参阅 zh.wikipedia.org/wiki/Transmission_Control_Protocol(以及 RFC 793)