- 为什么四次挥手需要time_wait:(1)保证客户端发送的最后一个ACK报文能够到达服务器,因为这个ACK报文可能丢失,站在服务器的角度看来,我已经发送了FIN+ACK报文请求断开了,客户端还没有给我回应,应该是我发送的请求断开报文它没有收到,于是服务器又会重新发送一次,而客户端就能在这个2MSL时间段内收到这个重传的报文,接着给出回应报文,并且会重启2MSL计时器。
(2)(把要断开的这个TCP链接称为旧连接)如果没有这个等待时间,直接建立新的TCP连接,那么旧连接中有因为各种原因而延迟的数据包到达服务器,会被服务器认为这个是新连接发送的数据包。而等待2MSL(数据包在网络中最大生存时间,超过这个时间,数据包会被丢弃),即便有延迟的数据包也会被丢弃。 - https://blog.csdn.net/qzcsu/article/details/72861891
浙公网安备 33010602011771号