你可能会问,为什么不直接进入 CLOSED 状态,而要停留在 TIME_WAIT 这个状态?

Posted yuanjiangw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你可能会问,为什么不直接进入 CLOSED 状态,而要停留在 TIME_WAIT 这个状态?相关的知识,希望对你有一定的参考价值。

你可能会问,为什么不直接进入 CLOSED 状态,而要停留在 TIME_WAIT 这个状态?

 

 

划重点,2MSL 的时间是从主机 1 接收到 FIN 后发送 ACK 开始计时的;如果在 TIME_WAIT 时间内,因为主机 1 的 ACK 没有传输到主机 2,主机 1 又接收到了主机 2 重发的 FIN 报文,那么 2MSL 时间将重新计时。道理很简单,因为 2MSL 的时间,目的是为了让旧连接的所有报文都能自然消亡,现在主机 1 重新发送了 ACK 报文,自然需要重新计时,以便防止这个 ACK 报文对新可能的连接化身造成干扰。

以上是关于你可能会问,为什么不直接进入 CLOSED 状态,而要停留在 TIME_WAIT 这个状态?的主要内容,如果未能解决你的问题,请参考以下文章

肥学说电影——双城之战

带你整理面试可能会问到的 聚簇索引和非聚簇索引

scoket

寻找垃圾收集根[关闭]

TCP漫谈之为啥需要timewait状态

Android手机清理内存后Activity处于哪个状态