在tcp释放连接时,主动发送fin的那一端会进入time_wait状态,持续时间是两个【敏感词】(Maximum Segment Lifetime)。TTL字段指定了ip数据能在网络中跳跃255次(hop limit),同时MSL规定了数据在网络中的最大存活时间。而tcp主动断开端会进入这个状态,时间是2个MSL。
该设计的原因是:
1让tcp双工连接正常断开。
保证四次挥手中,最后一个ack能正常发送。假定客服端主动断开,在发送最后一个ack时,服务器未收到,那么服务器将重新发送fin。该设计主要是为了保证服务端能正常关闭,假如没有time_wait状态,客服端发送ack后立即关闭,服务端也就无法重新发送fin+ack,导致其无法进入close状态。
2假如新连接建立,上面的time_wait状态会让上次连接中发送的数据在网络中消失。

网友评论