美文网首页
TIME_WAIT状态存在的理由

TIME_WAIT状态存在的理由

作者: 0X7C00 | 来源:发表于2018-06-24 22:23 被阅读0次

TIME_WAIT状态肯定是要存在的,否则TCP的会存在半关闭的状态,这里主要讨论下TIME_WAIT状态为什么要保持2MSL时间。

关于MSL
MSL是任何IP数据报能够在网络中存货的最长时间,这个时间是有限的,每个数据报有个称之为跳限的字段,该字段是8bit,最大值为255,尽管这是一个跳数限制,而不是一个真正的时间限制,我们仍然假设:具有最大跳限的数据报在网络中存活的最长时间不可能超过MSL秒。

  1. 可靠地实现TCP全双工连接的终止。
    在客户端发起关闭的场景中,假设客户端发送的ACK丢失了,服务端将重新发送FIN,若客户端不再维护该状态,则客户端相应RST,该分节将会被服务器解释为一个错误。如果要彻底关闭TCP连接,则必须正确处理终止序列中任何一个分节丢失的情况。

  2. 允许老的重复分节在网络中消逝。
    假设在IP1:Port1(客户端)和IP2:Port2(服务端)之间有一个TCP连接,我们关闭这个连接,过一段时间仍在相同的IP和端口建立另一个连接,后一个连接称之为前一个连接的化身。TCP必须阻止老的重复分组在该连接终止后再出现,为做到这一点,TCP不给处于TIME_WAIT状态的分组发起新的化身。 既然TIME_WAIT状态的持续时间是2MSL,这足以人任一方向上的TCP数据报被丢弃,我们就能保证没成功建立一个TCP连接时,来自该连接先前的化身的老的重复分组都已经在网络中消逝了。

相关文章

  • TIME_WAIT状态存在的理由

    TIME_WAIT状态肯定是要存在的,否则TCP的会存在半关闭的状态,这里主要讨论下TIME_WAIT状态为什么要...

  • 简析time_wait,close_wait

    1、TIME_WAIT状态存在的两个理由: 1)让4次握手关闭流程更加可靠;4次握手的最后一个ACK是是由主动关闭...

  • TIME_WAIT状态存在的意义

    什么时候会TIME_WAIT TCP在关闭的时候有个四次挥手的过程,主动关闭方在四次挥手的最后一个ACK发送之后会...

  • GO学习笔记(8)TCP的TIME_WAIT状态

    1.何为TIME_WAIT time_wait实际上是TCP关闭连接4次挥手时的一种状态 TIME_WAIT is...

  • TCP连接状态详解及TIME_WAIT过多的解决方法[转]

    TIME_WAIT状态原理 通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。 客户端主...

  • TIME_WAIT状态

    一.TIME_WAIT状态如何产生及必要性 从TCP握手协议中,TIME_WAIT状态是主动断开的一方,发送完最后...

  • 大量TIME_WAIT解决方案

    问题 TIME_WAIT状态是主动断开连接的一方产生的,客户端处于TIME_WAIT状态的话问题不大,如果服务器产...

  • TIME_WAIT状态

    TIME_WAIT状态 是谁有TIME_WAIT状态呢?为什么? 执行主动关闭的那一端、因为可能不得不重传最终那个...

  • Golang 优化之路——HTTP长连接

    写在前面 压测的是否发现服务端TIME_WAIT状态的连接很多。 TIME_WAIT状态多,简单的说就是服务端主动...

  • TCP中的TIME_WAIT

    为什么要有TIME_WAIT? TIME_WAIT是TCP主动关闭连接一方的一个状态,TCP断开连接的时序图如下:...

网友评论

      本文标题:TIME_WAIT状态存在的理由

      本文链接:https://www.haomeiwen.com/subject/cogsyftx.html