TIME_WAIT状态

来源:互联网 发布:淘宝网店新开怎么操作 编辑:程序博客网 时间:2024/06/05 18:04

13043009

执行主动关闭的一段经历了TIME_WAIT状态.该端停留在这个状态的持续时间是报文段最大生存时间(MSL)的两倍.有时称之为2MSL

MSL实现中一般为30s~2min.这意味着TIME_WAIT状态的持续时间在1分钟到4分钟之间.

MSL是任何IP数据报能够在因特网中存活的最长时间.

因为每个IP数据报含有一个称为跳限(hop limit)的8位字段,它的最大值为255.尽管这是一个跳数限制而不是真正的时间限制,我们仍假设:具有最大跳限的分组在网络中存在的时间不可能超过MSL秒

TIME_WAIT状态有两个存在的理由:

(1)可靠地实现TCP全双工连接的终止

可以让TCP再一次发送最后的ACK以防止这个ACK丢失(另一端超时并重发最后的FIN)

要是客户(执行主动关闭的一端)不维护状态信息,它将响应以一个RST,该分解被服务器解释为一个错误

也可以解释为什么执行主动关闭的一端是处于TIME_WAIT状态的那一端:因为可能不得不重传最终那个ACK的就是那一端

(2)允许老的重复分节在网络中消逝

我们如果关闭一个TCP连接,过一段时间后在相同的IP地址和端口之间建立另一个连接.后一个连接称作前一个连接的化身,因为他们的IP地址和端口号都相同.

TCP必须防止来自该连接一个较早化身的迟到报文段被误解成新连接的某个报文段.

既然TIME_WAIT状态的持续时间是MSL的2倍,这就足以让某个方向上的分组最多存活MSL秒就被丢弃,另一个方向上的应答最多存活MSL秒也被丢弃.

0 0
原创粉丝点击