TCP的TIME_WAIT状态

本文解释了TCP连接中TIME-WAIT状态存在的原因,包括确保可靠地终止全双工连接和让旧的数据包在网络中消失。文章还介绍了TIME-WAIT状态如何防止延迟包与新连接发生混淆。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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时间,然后关闭连接。在这段超时等待时间内,本地的端口不能被新连接使用;避免延时的包的到达与随后的新连接相混淆。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值