4.23、TCP状态转换(为什么四次挥手)
1.TCP状态转换图
2.为什么需要四次挥手,状态转换
2MSL(Maximum Segment Lifetime)
主动断开连接的一方, 最后进入一个 TIME_WAIT状态, 这个状态会持续:2msl
msl
: 官方建议:2分钟
, 实际是30s
当
TCP
连接主动关闭方接收到被动关闭方发送的FIN
和最终的ACK
后,连接的主动关闭方必须处于TIME_WAIT
状态并持续2MSL
时间。这样就能够让
TCP
连接的主动关闭方在它发送的ACK
丢失的情况下重新发送最终的ACK
。主动关闭方重新发送的最终
ACK
并不是因为被动关闭方重传了ACK
(它们并不消耗序列号,被动关闭方也不会重传),而是因为被动关闭方重传了它的FIN
。事实上,被动关闭方总是重传FIN
直到它收到一个最终的ACK
。