TCP第四次挥手为什么要等待2MSL(最长报文段寿命,Maximum Segment Lifetime)
当客户端进入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)相关推荐
- TCP第四次挥手为什么要等待2MSL
当客户端进入TIME-WAIT状态的时候(也就是第四次挥手的时候),必须经过时间计数器设置的时间2MSL(最长报文段寿命)后,才能进入关闭状态,这时为什么呢??? 这最主要是因为两个理由: 1.为了 ...
- TCP的四次挥手中的等待2MSL
为什么time_wait需要等待2MSL? MSL:一个最大的生命周期,30秒--1分钟 1.保证TCP协议的全双工连接能够可靠关闭. 如果主动关闭方和被动关闭方的最后的一个确认(ack)包不等待2M ...
- TCP第4次挥手为何要等待2MSL才关闭?
MSL是Maximum Segment Lifetime的缩写,译为报文最大生存时间,也就是任何报文在网络上存活的最大时间,一旦超过该时间,报文就会被丢弃.2MSL也就是指的2倍MSL的时间. 回归主 ...
- TCP的四次挥手及为什么要等待2MSL
一.四次挥手的详述 1.假设Client端发起中断连接请求,也就是发送FIN报文. 2.Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",但是如果你还 ...
- 【计算机网络】传输层 : TCP 连接管理 ( TCP 连接建立 | 三次握手 | TCP 连接释放 | 四次挥手 )
文章目录 一.TCP 连接管理 二.TCP 连接建立 三.TCP 连接建立 相关报文段 字段 四.SYN 洪泛攻击 五.TCP 连接释放 一.TCP 连接管理 TCP 传输数据过程 : 建立连接 -& ...
- TCP第四次挥手后为什么要等待2MSL后才断开链接?等待时间为什么是2MSL?
为何要等待2MSL? 1.假如第四次挥手失败了,因为丢失而未到达服务器会怎样呢?这样,服务器会一直收不到客户端的回应,也就无法得知客户端是否收到了即将要断开连接的请求.客户端此刻还蒙在鼓里,还在等待服 ...
- 【计算机网络】2、TCP:四次挥手与TIME_WAIT、shutdown() 优雅关闭 server、探活、拥塞窗口与 Nagle 算法、端口占用、tcp 的流式协议、可靠性
文章目录 六.四次挥手 与 TIME_WAIT 6.1 TIME_WAIT 的作用 6.2 TIME_WAIT 的危害和方案 七.server 用 shutdown() 优雅关闭 7.1 close( ...
- 详解TCP连接释放四次挥手过程
TCP连接释放的过程叫做挥手,挥手需要在客户和服务器之间交换四个TCP报文段. 下图是四报文挥手释放TCP连接的过程: 数据传输结束后,通信的双方都可释放连接.现在A和B都处于ESTABLISHED状 ...
- TCP/IP / 四次挥手之状态转换图、过程说明和原因
一.状态转换图 二.过程说明 1.Client:我要断开连接啦! 2.Server:好的!稍等,我这还有一些数据需要发送给你,等完事我再断开连接哈. --(server 向 client 发送数据) ...
最新文章
- Linux软件安装通用思路
- IDEA - 解决 Maven 初始化配置 web.xml 为 2.3 的问题
- 深度学习和目标检测系列教程 11-300:小麦数据集训练Faster-RCNN模型
- DELPHI 开发的 OCX 控件在 MFC 程序中编辑框快捷键不好使的解决
- loadrunner脚本中参数有中文时报错
- vue中如何实现点击某个地方,让echarts生成的图表发生变化
- java循环之后求和代码,Java lambda 循环累加求和代码
- 我来到这世上,却不曾歌唱
- css的盒子模型以及布局(面试考点)
- VLD(Visual LeakDetector)内存泄露库的使用
- 通俗理解贝叶斯,全概率定理
- 索尼xzp升级android p,索尼XZ Premium国行正式推送安卓8.0更新!功能大升级
- WebView文件下载
- 信息系统规划方法-关键成功因素法(CSF)
- 数据分析案例-气象数据分析
- 国美易卡利用大数据,国美易卡衍生三大类产品模型
- C++核心准则​Pro.bounds:边界安全群组
- 厦大2021期中考试
- 如何在数字前加上0,如将1变成01
- 好用并强大的图片插件:PhotoSwipe.js
热门文章
- python代码怎么运行-Python程序执行原理,python程序怎么运行的?
- python3.5怎么安装pip-python3.5版本安装pip3
- 鱼c论坛python课后题-【零基础】Python3学习课后练习题(十九)
- 想学python从哪里入手-零基础学习python?要从哪里开始入手呢?
- python一次性读取整个文件-python-文件中的行是否读取整个文件
- 在python中、下列代码的输出是什么-python面试题详细总结(附答案)
- java和python哪个好就业2020-Java和Python哪个发展前景好?老男孩教育
- 进程通信学习笔记(System V消息队列)
- 本周学习进度表及时间安排(2018-1-7~2018-1-13)
- Atom编辑Markdown文件保存后行尾的空格自动消失的问题解决