当客户端进入TIME-WAIT状态的时候(也就是第四次挥手的时候),必须经过时间计数器设置的时间2MSL(最长报文段寿命)后,才能进入关闭状态,这时为什么呢???

这最主要是因为两个理由:

1、为了保证客户端发送的最后一个ACK报文段能够到达服务器。因为这个ACK有可能丢失,从而导致处在LAST-ACK状态的服务器收不到对FIN-ACK的确认报文。服务器会超时重传这个FIN-ACK,接着客户端再重传一次确认,重新启动时间等待计时器。最后客户端和服务器都能正常的关闭。假设客户端不等待2MSL,而是在发送完ACK之后直接释放关闭,一但这个ACK丢失的话,服务器就无法正常的进入关闭连接状态。

2、他还可以防止已失效的报文段。客户端在发送最后一个ACK之后,再经过经过2MSL,就可以使本链接持续时间内所产生的所有报文段都从网络中消失。从保证在关闭连接后不会有还在网络中滞留的报文段去骚扰服务器。

注意:在服务器发送了FIN-ACK之后,会立即启动超时重传计时器。客户端在发送最后一个ACK之后会立即启动时间等待计时器。

原文链接:https://blog.csdn.net/LF_2016/article/details/60468161

TCP第四次挥手为什么要等待2MSL(最长报文段寿命,Maximum Segment Lifetime)相关推荐

  1. TCP第四次挥手为什么要等待2MSL

    当客户端进入TIME-WAIT状态的时候(也就是第四次挥手的时候),必须经过时间计数器设置的时间2MSL(最长报文段寿命)后,才能进入关闭状态,这时为什么呢???  这最主要是因为两个理由: 1.为了 ...

  2. TCP的四次挥手中的等待2MSL

    为什么time_wait需要等待2MSL? MSL:一个最大的生命周期,30秒--1分钟 1.保证TCP协议的全双工连接能够可靠关闭. 如果主动关闭方和被动关闭方的最后的一个确认(ack)包不等待2M ...

  3. TCP第4次挥手为何要等待2MSL才关闭?

    MSL是Maximum Segment Lifetime的缩写,译为报文最大生存时间,也就是任何报文在网络上存活的最大时间,一旦超过该时间,报文就会被丢弃.2MSL也就是指的2倍MSL的时间. 回归主 ...

  4. TCP的四次挥手及为什么要等待2MSL

    一.四次挥手的详述 1.假设Client端发起中断连接请求,也就是发送FIN报文. 2.Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",但是如果你还 ...

  5. 【计算机网络】传输层 : TCP 连接管理 ( TCP 连接建立 | 三次握手 | TCP 连接释放 | 四次挥手 )

    文章目录 一.TCP 连接管理 二.TCP 连接建立 三.TCP 连接建立 相关报文段 字段 四.SYN 洪泛攻击 五.TCP 连接释放 一.TCP 连接管理 TCP 传输数据过程 : 建立连接 -& ...

  6. TCP第四次挥手后为什么要等待2MSL后才断开链接?等待时间为什么是2MSL?

    为何要等待2MSL? 1.假如第四次挥手失败了,因为丢失而未到达服务器会怎样呢?这样,服务器会一直收不到客户端的回应,也就无法得知客户端是否收到了即将要断开连接的请求.客户端此刻还蒙在鼓里,还在等待服 ...

  7. 【计算机网络】2、TCP:四次挥手与TIME_WAIT、shutdown() 优雅关闭 server、探活、拥塞窗口与 Nagle 算法、端口占用、tcp 的流式协议、可靠性

    文章目录 六.四次挥手 与 TIME_WAIT 6.1 TIME_WAIT 的作用 6.2 TIME_WAIT 的危害和方案 七.server 用 shutdown() 优雅关闭 7.1 close( ...

  8. 详解TCP连接释放四次挥手过程

    TCP连接释放的过程叫做挥手,挥手需要在客户和服务器之间交换四个TCP报文段. 下图是四报文挥手释放TCP连接的过程: 数据传输结束后,通信的双方都可释放连接.现在A和B都处于ESTABLISHED状 ...

  9. TCP/IP / 四次挥手之状态转换图、过程说明和原因

    一.状态转换图 二.过程说明 1.Client:我要断开连接啦! 2.Server:好的!稍等,我这还有一些数据需要发送给你,等完事我再断开连接哈. --(server 向 client 发送数据) ...

最新文章

  1. Linux软件安装通用思路
  2. IDEA - 解决 Maven 初始化配置 web.xml 为 2.3 的问题
  3. 深度学习和目标检测系列教程 11-300:小麦数据集训练Faster-RCNN模型
  4. DELPHI 开发的 OCX 控件在 MFC 程序中编辑框快捷键不好使的解决
  5. loadrunner脚本中参数有中文时报错
  6. vue中如何实现点击某个地方,让echarts生成的图表发生变化
  7. java循环之后求和代码,Java lambda 循环累加求和代码
  8. 我来到这世上,却不曾歌唱
  9. css的盒子模型以及布局(面试考点)
  10. VLD(Visual LeakDetector)内存泄露库的使用
  11. 通俗理解贝叶斯,全概率定理
  12. 索尼xzp升级android p,索尼XZ Premium国行正式推送安卓8.0更新!功能大升级
  13. WebView文件下载
  14. 信息系统规划方法-关键成功因素法(CSF)
  15. 数据分析案例-气象数据分析
  16. 国美易卡利用大数据,国美易卡衍生三大类产品模型
  17. C++核心准则​Pro.bounds:边界安全群组
  18. 厦大2021期中考试
  19. 如何在数字前加上0,如将1变成01
  20. 好用并强大的图片插件:PhotoSwipe.js

热门文章

  1. python代码怎么运行-Python程序执行原理,python程序怎么运行的?
  2. python3.5怎么安装pip-python3.5版本安装pip3
  3. 鱼c论坛python课后题-【零基础】Python3学习课后练习题(十九)
  4. 想学python从哪里入手-零基础学习python?要从哪里开始入手呢?
  5. python一次性读取整个文件-python-文件中的行是否读取整个文件
  6. 在python中、下列代码的输出是什么-python面试题详细总结(附答案)
  7. java和python哪个好就业2020-Java和Python哪个发展前景好?老男孩教育
  8. 进程通信学习笔记(System V消息队列)
  9. 本周学习进度表及时间安排(2018-1-7~2018-1-13)
  10. Atom编辑Markdown文件保存后行尾的空格自动消失的问题解决