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!)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值