社区
Java
帖子详情
2020-12-08:TIME_WAIT的等待时间为什么是2MSL?
福大大架构师每日一题
2020-12-08 07:16:11
2020-12-08:TIME_WAIT的等待时间为什么是2MSL?#福大大架构师每日一题#
...全文
1836
2
打赏
收藏
2020-12-08:TIME_WAIT的等待时间为什么是2MSL?
2020-12-08:TIME_WAIT的等待时间为什么是2MSL?#福大大架构师每日一题#
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
KeepSayingNo
2020-12-08
打赏
举报
回复
第一,为了保证A发送的最后一个ACK报文能够到达B。 第二,A在发送完ACK报文段后,再经过2MSL时间,就可以使本连接持续的时间所产生的所有报文段都从网络中消失。
tianfang
2020-12-08
打赏
举报
回复
如果不等,释放的端口可能会重连刚断开的服务器端口,这样依然存活在网络里的老的TCP报文可能与新TCP连接报文冲突,造成数据冲突.为避免此种情况,需要耐心等待网络老的TCP连接的活跃报文全部过期,2MSL时间可以满足这个需求
TCP的
TIME
_
WAIT
状态为什么要等待
2MSL
的时长
首先回答TCP四次挥手的第四次挥手后为什么要经过
TIME
_
WAIT
状态? 然后回答
TIME
_
WAIT
状态为什么要等待
2MSL
的时长?为什么不是其他时间长度? 第四次挥手后为什么要经过
TIME
_
WAIT
状态?
TIME
_
WAIT
状态之后为什么要经过
2MSL
(
2MSL
,即两个最大报文段生存时间)的时长后才进入CLOSED状态,为什么不直接进入CLOSED状态? 因为客户端发送的第四次挥手的ACK数据包,服务端可能没有收到,那么服务端会在等待一段时候后重新发送第三次挥手的FIN数据包,客户端收到后再次发送第四次挥
全网最深刻理解:
TIME
_
WAIT
为什么是
2MSL
本文借助
TIME
_
WAIT
为什么是
2MSL
,全面理解
TIME
_
WAIT
,
为什么
TIME
_
WAIT
状态是
2MSL
?(2个原因)
为什么
TIME
_
WAIT
的时间是
2MSL
? 理由1很容易理解。主要是理由2,客户端回复最后一个ACK之后,感觉一个MSL就可以所有分组消失了啊,为什么还要
2MSL
所有分组才消失呢?我的理解是: 假设客户端发送ACK刚刚过了一个MSL时间,而服务端在收到这个ACK之前一瞬间刚好启动超时重传FIN,所以要等这个FIN也消失,就是
2MSL
了。文中所指的另一个方向的应答应该就是这个超时重传...
TCP四次挥手中为什么
TIME
_
WAIT
等待的时间是
2MSL
?
TIME
_
WAIT
等待 2 倍的 MSL,比较合理的解释是: 网络中可能存在来自发送方的数据包,当这些发送方的数据包被接收方处理后又会向对方发送响应,所以。字段,是 IP 数据报可以经过的最大路由数,每经过一个处理他的路由器此值就减 1,当此值为 0 则数据报将被丢弃,同时发送 ICMP 报文通知源主机。比如,若 ACK 在一个 MSL 内丢失,这样被动方重发的 FIN 会在第 2 个 MSL 内到达,
TIME
_
WAIT
状态的连接可以应对。因为 TCP 报文基于是 IP 协议的,而 IP 头中有一个。
Java
51,411
社区成员
86,003
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章