Chinaunix

标题: TCP状态机的2MSL Wait state问题。 [打印本页]

作者: ilex    时间: 2010-05-31 23:17
标题: TCP状态机的2MSL Wait state问题。
本帖最后由 ilex 于 2010-06-01 07:42 编辑

进入该状态(TIME_WAIT即2MSL),需要等2MSL的定时器再进入CLOSED状态,

TCP/IP I卷描述该状态时,描述大致为“TCP ACTIVE CLOSE,发送了FIN; 收到PASSIVE方的FIN&ACK后,ACTIVE方发送ACK到PASSIVE; 为防止最后一个ACK丢失,而PASSIVE方重传FIN(ACTIVE需要等2*MSL时间,此时为2MSL状态)”

假设,最后一个ACK确实丢失了,PASSIVE也重传了FIN,

此时,ACTIVE收到该重传的FIN后,ACTIVE方的TCP状态?2MSL定时器是不是要重新启动?


图如下:

作者: Magic_LP    时间: 2010-05-31 23:59
应该是要重新计时吧,但如果再丢失的话,PASSIVE方等待重传FIN的时间是不是延长了好多,将导致ACTIVE方等到2MSL后就完全关闭这个连接?期待详解。我对这方面也不是很了解,如果有误答,望指正。
作者: xiexiecn    时间: 2010-06-01 07:47
http://www.faqs.org/rfcs/rfc793.html
协议里面有描述的:
TIME-WAIT STATE The only thing that can arrive in this state is a retransmission of the remote FIN. Acknowledge it, and restart the 2 MSL timeout.
作者: benjiam    时间: 2010-06-01 09:29
所以原来freebsd 有个bug, 防火墙没设定好,会不停的ack 给 端口。导致这个端口关不掉。 就是这个原因啊。
作者: ilex    时间: 2010-06-01 20:27
协议里面有描述的:
TIME-WAIT STATE The only thing that can arrive in this state is a retransmissi ...
xiexiecn 发表于 2010-06-01 07:47




明白了,多谢~~


以后继续请教。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2