为什么是2MSL而不是MSL?

为什么是2MSL而不是MSL?,第1张

为什么是2MSL而不是MSL?

为什么等待2MSL,从TIME_WAIT到CLOSE?

在Client发送出最后的ACK回复,但该ACK可能丢失。


Server如果没有收到ACK,将不断重复发送FIN片段


所以Client不能立即关闭,它必须确认Server接收到了该ACK。


Client会在发送出ACK之后进入到TIME_WAIT状态。


Client会设置一个计时器,等待2MSL的时间。


如果在该时间内再次收到FIN,那么Client会重发ACK并再次等待2MSL。


所谓的2MSL是两倍的MSL(Maximum Segment Lifetime)。


MSL指一个片段在网络中最大的存活时间,2MSL就是一个发送和一个回复所需的最大时间。


如果直到2MSL,Client都没有再次收到FIN,那么Client推断ACK已经被成功接收,则结束TCP连接。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/586182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存