关于TCP的4次挥手过程参考:网络协议 – TCP协议(2)三次握手与四次挥手
一、TIME_WAIT状态为何存在?
这里我们不使用“客户端”、“服务端”来表示TCP连接的2端,转而使用“主动断开连接端”、“被动断开连接端”来表示TCP通讯的2端。因为执行主动断开连接的端可能是服务端也可能是客户端(虽然我们大多数情况下遇到的是客户端执行主动断开)。
在“主动断开连接端”收到了“被动断开连接端”发来的LAST_ACK
之后,会给“被动断开连接端”回复一个ACK
确认消息。但这个时候为了确保“被动断开连接端”有足够的时间能够收到该消息,“主动断开连接端”不能马上关闭socket,需要等待一定的时间来确保“被动断开连接端”可以收到ACK
确认消息。“主动断开连接端”在等待的这个时间段内的状态我们称之为TIME_WAIT
状态。
归纳为一句话就是:TIME_WAIT状态就是“主动断开的一方”在发送完最后一次ACK后进入的等待状态。
二、等待时间
那么TIME_WAIT
状态需要持续多久了,也