《TCP/IP详解卷1:协议》笔记--2MSL等待状态

TCP的2MSL等待状态是为了确保ACK的可靠传输和避免旧连接的冲突。在TIME_WAIT状态,TCP连接会停留2倍MSL时间,以允许重传最后的ACK。在此期间,连接的socket不能被立即重用,以防止新连接与旧连接混淆。实际应用中,端口在2MSL等待期间可能无法立即重用,但可通过特定选项如SO_REUSEADDR来调整。
摘要由CSDN通过智能技术生成

TCP的状态变迁图如下:


其中的TIME_WAIT状态也成为2MSL等待状态。每个具体的TCP实现必须选择一个报文段最大生存时间MSL(maximum

segment lifetime)。它是任何报文段被丢弃前在网络内的最长时间 。我们知道这个时间是有限的,因为TCP报文段以IP

数据报在网络内传输,而IP数据报则有限制其生存时间的TTL字段。

在RFC793指出MSL为2分钟,然而,实现中的常用值是30秒,1分钟或2分钟。

对一个具体实现锁定的MSL值,处理的原则是:当TCP执行一个主动关闭,并发回最后一个ACK,该链接必须在TIME_WAIT

状态停留的时间为2倍的MSL。这样可以让TCP再次发送最后的ACK以防止这个ACK丢失。(另一端超时并重发最后的FIN)。

这种2MSL等待的另一个结果是这个TCP连接在2MSL等待期间,定义这个连接的socket(客户的IP地址和端口号,服务器

的IP地址和端口号不能被使用)。这个连接只能在2MSL结束后才能被使用。

遗憾的是,大多数TCP实现强加了更为严格的限制,在2MSL等待期间,插口中使用的本地端口在默认情况下不能再被使用。

注意:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值