题目
关于TIME_WAIT状态的描述,下面说法错误的是?
A.TIME_WAIT出现在被动关闭一方,CLOSE_WAIT出现在主动关闭一方
B.从TIME_WAIT状态到CLOSED状态,有一个超时设置,这个超时设置是 2*MSL
C.TIME_WAIT确保有足够的时间让对端收到了ACK,如果被动关闭的那方没有收到Ack,就会触发被动端重发Fin,一来一去正好2个MSL
D.有足够的时间让这个连接不会跟后面的连接混在一起
感谢分享!
A中TIME_WAIT出现在主动关闭一方,CLOSE_WAIT出现在被动关闭一方
1。防止上一次连接中的包,迷路后重新出现,影响新连接 (经过2MSL,上一次连接中所有的重复包都会消失)
2。可靠的关闭TCP连接
在主动关闭方发送的最后一个ack(fin) ,有可能丢失,这时被动方会重新发 fin, 如果这时主动方处于CLOSED 状态 ,就会响应rst 而不是ack。所以 主动方要处于TIME_WAIT 状态,而不能是CLOSED 。 TIME_WAIT 并不会占用很大资源的,除非受到攻击。 还有,如果一方send 或recv 超时,就会直接进入CLOSED 状态