TCP/IP / TIME_WAIT 状态的作用 / MSL、TTL、RTT

目录

作用

解释

拓展


作用

可靠地实现TCPIP全双工的终止,即:允许老的重复的TCP数据包在网络中终止,保证老的数据包不会干扰到新的连接。

解释

针对“可靠的实现TCPIP全双工的终止”,如下图所示

当四次挥手的最后一包(ACK)在传输过程中丢失时,Server 会感应并重新发送 FIN 包。此时 Client 处于 TIME_WAIT 状态,则 Client 会重新发送 ACK 包,这样就保证了该连接可以优雅的断开。

上述情况,若 Client 没有 TIME_WAIT 状态,则 Client 端会发送 RST 包,即:连接复位,使得 Server 直接关闭,容易造成数据包的丢失。

针对“允许老的重复的TCP数据包在网络中终止”,是因为四次挥手的最后一包在以太网中可能传输时间较长,若没有TIME_WAIT包,当 Client 断开连接之后立刻重新启动和之前一摸一样的 Client ,并且立刻产生了新的连接,那么刚才所说的传输时间较长的包经过跋山涉水经过来到了 Server 端,但是发现此时的 Server 端正在和新的 Client 进行三次握手,这就导致了 Server 产生了混乱。

拓展

  1. 虽然 TIME_WAIT 状态好处多多,但是在它统治期间,重新 bind 会失败,所以有的时候需要将该状态去掉,方法是调用 setsockopt (……,SO_REUSEADDR,……)
  2. MSL,Maximum Segment Lifetime,报文最大生存时间。其表示任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。
  3. TTL,Time to live,生存时间。该“时间”不是时间,而是该报允许经过路由器转发的数量,该值在 IP 头中被设置。每经过一个路由器,该值就被减一,如果该值变为0,则该报就被丢弃。综上,MSL > TTL 。
  4. RTT,round-trip time,客户到服务器往返所花时间。TCP含有动态估算RTT的算法。TCP还持续估算一个给定连接的RTT,这是因为RTT受网络传输拥塞程序的变化而变化,即:用于堵塞控制。

 

(SAW:Game Over!)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部