zoukankan      html  css  js  c++  java
  • tcp四次挥手为什么要等待2MSL

      之前所说了解有两个原因:

      1、防止客户端最后一次发给服务器的确认在网络中丢失以至于客户端关闭,而服务端并未关闭,导致资源的浪费。

      2、等待最大的2msl可以让本次连接的所有的网络包在链路上消失,以防造成不必要的干扰。

      但对于第二条造成不必要的干扰之前没有做过多的解读,今天在网上查了下,顺便给大家分享下:

      如果client直接closed,然后又向server发起了一个新连接,我们不能保证这个新连接和刚关闭的连接的端口号是不同的。假设新连接和已经关闭的老端口号是一样的,如果前一次滞留的某些数据仍然在网络中,这些延迟数据会在新连接建立后到达Server,所以socket就认为那个延迟的数据是属于新连接的,数据包就会发生混淆。所以client要在TIME_WAIT状态等待2倍的MSL,这样保证本次连接的所有数据都从网络中消失。

  • 相关阅读:
    hello world!
    react(一):组件的生命周期
    position和BFC
    继承
    绕不开的this
    js世界这么大,闭包想看看
    js中数组常用方法总结
    Appium混合应用测试
    手机APP兼容性测试
    运行monitor提示需要安装旧JAVA SE 6运行环境
  • 原文地址:https://www.cnblogs.com/leonandyou/p/11296793.html
Copyright © 2011-2022 走看看