您的位置:首页 > 理论基础 > 计算机网络

TCP的TIME_WAIT状态

2018-02-20 00:17 190 查看

TIME—WAIT:

存在的理由:

1、可靠的实现TCP全双工连接的终止

2、允许老的重读分节在网络中消失

第一个理由:(最终的ACK丢失)主动关闭socket的一端最终的ACK丢失,则服务器将重新发送它的最终FIN,

因此客户端必须维护状态信息,以允许它重新发送最终的ACK。

如果TCP打算彻底终止某个连接上的两个方向的数据流(全双工关闭),那么它必须正确出列连接终止序列4个分节的任何一个分节丢失的情况,

(主动关闭的那一端是处于TIME_WAIT状态:因为可能不得不重传最终那个ACK的那一端)mmmmmmmmmmmmmmmm

第二个理由:为了保证每成功建立一个TCP连接时,来自该连接先前化身的老的重复分组都已经在网络中消失了。

(先关闭连接,在相同的IP和端口下,过一段时间再建立一个新连接,新连接为前一个连接的化身,

TCP必须防止来自某个连接的老的重复分组在该连接已终止后在现,从而被误解成属于同一连接的某个新的化身,,TCP将不给处于TIME——WAIT状态的连接发起新的化身,TIME——WAIT持续的时间是MSL的2倍

维基百科

TIME-WAIT S/C

主动关闭端接收到FIN后,就发送ACK包,等待足够时间以确保被动关闭端收到了终止请求的确认包。

首先发出FIN的一侧,如果给对侧的FIN响应了ACK,那么就会超时等待2*MSL时间,然后关闭连接。在这段超时等待时间内,本地的端口不能被新连接使用;避免延时的包的到达与随后的新连接相混淆。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: