TCP的四次挥手中的等待2MSL

image.png

为什么time_wait需要等待2MSL?

MSL:一个最大的生命周期,30秒--1分钟

1、保证TCP协议的全双工连接能够可靠关闭。

如果主动关闭方和被动关闭方的最后的一个确认(ack)包不等待2MSL时间的话,没发关闭。

如果说主动关闭方发送ack包给被动关闭方,被动关闭方没有收到请求,就会请求主动关闭方重传这个数据包,等待2MSL是说如果遇到这种数据包的丢失,还可以重传数据包。

如果不等待2MSL的话,遇到数据包丢失,就不可以重传数据包。那么被动关闭方就会一直保持一个LAST_ACK状态,就一直没法进行CLOSE状态,也就是它的资源没有办法释放。

 

2、保证这次连接的重复数据段从网络中消失。

客户端的A端口会话已经结束了,然后客户端又重新建立起会话并且连接的还是之前的服务器,并且重新使用的端口

还是A端口。然后恰巧之前的FIN包发生了一次重传,这时新会话就会产生影响。如果等待2MSL的话,就保证重传的

数据包一定不会再出现。这样保证重新建立会话会有一个稳定的状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值