为什么四次握手之后需要等待2MSL

解释TCP的三次握手及四次挥手及为什么要等待2MSL 声明: 本文不保证每个定义绝对严谨, 只是通过更加通俗易懂的语言来让阅读者更好的理解三次握手及四次挥手的过程!!! 首先我们来明白几个定义: 1. FIN: 请求关闭报文 2. SYN: 请求建立连接 3. ACK: 确认收到 4. MSL: 最大报文生存时间 三次握手: 三次握手理解起来比较简单, 说白了就是一个确认双方都能发送且都能接收的一个过程. 第一步: 客户端想要与服务器建立连接, 于是... 阅读详情

TCP释放过程如下图:
在这里插入图片描述
为什么A在TIME_WAIT状态必须等待2MSL的时间呢?
(1)为了保证A发送的最后一个ACK报文段能够到达B。这个ACK报文段有可能丢失,因而使处在LAST_ACK状态的B收不到对已发送的FIN+ACK报文段的确认。
B会超时重传这个FIN+ACK报文段,而A就能在2MSL时间内收到这个重传的FIN+ACK报文段。
接着A重传一次确认,重新启动2MSL计时器。
最后,A和B都正常进入到CLOSED状态。如果A在TIME-WAIT状态不等待一段时间,而是在发送完ACK报文段后立即释放连接,那么就无法收到B重传的FIN+ACK报文段,因而也不会再发送一次确认报文段。
这样,B就无法按照正常步骤进入CLOSED状态。

(2)“已失效的连接请求报文段”出现在本连接中。A在发送完最后一个ACK报文段后,再经过时间2MSL,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。
这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。
B只要收到了A发出的确认,就进入CLOSED状态。
同样,B在撤销相应的传输控制块TCB后,就结束了这次的TCP连接。我们注意到,B结束TCP连接的时间要比A早一些。

在这里插入图片描述

保姆级教程:用NILMTK和REDD数据集,5分钟跑通你的第一个负荷分解模型 本文提供了一份详细的NILMTK和REDD数据集负荷分解模型教程,适合零基础用户快速上手。从环境准备、数据获取到模型构建和评估,全程仅需5分钟即可完成。特别适合希望快速入门非侵入式负荷分解(NILM)的开发者,涵盖数据预处理、模型训练及结果可视化等关键步骤。 阅读详情

相关推荐

从放弃到再入门之拉格朗日对偶问题推导

普通同学的解法 无约束条件:求导就可以了 等式约束:代入消元,再求导 不等式约束:分情况讨论(在边界上和不在边界上),分别对应1,2的情况 然而发现,有些情况消元特别复杂,甚至不能求解 聪明同学的解法 发现:在最优点的情况下,约束曲面的法向量和目标函数的梯度反向必相同或相反 拉格朗日乘子法如何理解? (在2维里可以形象的解释为z=f(x,y)在约束条件g(x,y)=c中,极值...

qq_34564612的博客 1万+

面试题:第四次挥手为什么要等待2MSL?

避免“旧连接”的数据混乱:如果一个新连接恰好使用了旧连接的端口和IP地址,且旧连接的某些信息没有及时清除,就可能产生数据混乱的情况。例如,如果新连接采用同样的源端口号,对于服务端而言这就是“旧连接”重新启动了,如果等待这个“旧连接”的状态信息释放完成(TCP 4分组的最大时间)才重新使用这个端口,自然可以避免数据混乱问题。在这段时间内,如果服务器还有数据需要发送,它可以通过老的连接发送,而不会被某个处于TIME_WAIT状态的TCP占用,也就避免了“旧连接”的数据混淆问题。

jakelihua 2736

【工具使用】Keil常用的调试操作整理介绍

2、当选择了非0级优化时,调试可能会变得困难,具体表现在断点调试。该按钮是在进入了函数单步调试的时候,有时候你可能不必再执行该函数的剩余部分了,通过该按钮就直接一步执行完函数余下的部分,并跳出函数,回到函数被调用的置。:如果是在C语言窗口中,则是按单条语句执行,与单步调试不同的是,遇到函数不会进入函数内部,而是直接全速运行函数,并跳到下一条语句。但我的Keil软件中无法显示这个视图,并且通过修改系统试图,调试时,点击打开系统视图发生了闪退的现象,目前能想到的原因是:重新安装Keil,安装最新版本。

MEYOU_Cc 不吃香菜! 1万+

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

当客户端进入TIME-WAIT状态的时候(也就是第四次挥手的时候),必须经过时间计数器设置的时间2MSL(最长报文段寿命)后,才能进入关闭状态,这时为什么呢??? 这最主要是因为两个理由: 1、为了保证客户端发送的最后一个ACK报文段能够到达服务器。因为这个ACK有可能丢失,从而导致处在LAST-ACK状态的服务器收不到对FIN-ACK的确认报文。服务器会超时重传这个FIN-ACK,接着客户端再...

bob的博客 5022

SAP CO-PA数据传送避坑指南:销售开票与FI/MM记账的日常配置实操(含KEKF/KE4I/KEI2)

本文深入解析SAP CO-PA数据传送中的常见配置问题,特别是销售开票与FI/MM记账环节的实操避坑指南。通过KEKF/KE4I/KEI2等关键配置点的详细说明,帮助用户避免数据失真和重复记录,提升获利能力分析的准确性。文章结合实战案例,揭示官方文档未提及的'数据黑洞'形成机制,为SAP顾问提供实用的排雷手册。

weixin_26905487的博客 391

【HCIE】FRR+BFD+OSPF与BGP联动

FRR+BFD+OSPF与BGP联动

Wenrs的博客 1997

TCP四次握手为什么客户端等待的时间是2MSL

TCP四次握手为什么客户端等待的时间是2MSL

Red_Fox___的博客 460

棋牌App逆向工程实战:透视风险分析与反作弊加固思路

在移动应用安全领域,逆向工程是一项关键的攻防技术,它通过静态分析、动态调试与协议抓包等手段,深入还原客户端真实逻辑。这项技术的核心原理,是从已编译的安装包中提取数据流,验证服务端下发的信息是否超出了客户端应有的可见范围。从技术价值看,安全测试人员可以借此定位协议层、内存层与缓存层的潜在风险,为反作弊体系提供精准的加固建议。在棋牌类App等实时对局场景中,逆向工程常被用于排查牌局信息泄露类隐患,而合规授权与测试环境是开展此类研究的必要前提。本文结合一次棋牌App的安全评估实践,梳理了从环境准备到数据流还原的完

weixin_29326909的博客 176

TCP 四次挥手的 TIME_WAIT 为什么持续 2MSL 的时间?

本文介绍了 TCP 四次挥手过程中,主动断开连接方的 TIME_WAIT 状态为什么持续 2MSL 的时间

m0_74059961的博客 1458

1、网站可靠性工程(SRE):原理、实践与转型指南

本文深入探讨了网站可靠性工程(SRE)的核心原理、实践方法以及组织转型策略。从SRE的基本概念如服务水平指标(SLI)、服务水平目标(SLO)和错误预算入手,详细解析了如何通过SRE实现产品开发、运营和管理团队的高效协作。此外,还涵盖了SRE的实施步骤,包括现状评估、组织认同、基础设施建设、事件响应、错误预算政策制定以及组织结构设计等内容。最后,文章展望了SRE的未来发展,强调了服务目录、合规监管及SRE文化建设的重要性,为企业的现代化运营体系转型提供了全面指南。

xk7n92h3p5m的博客 145

YOLOv改进 | YOLOv11添加WTConv小波卷积,能够更有效地捕捉局部和全局特征

在计算机视觉目标检测领域,YOLO(You Only Look Once)系列算法凭借“单阶段检测”的高效性(一次前向传播同时完成目标定位与分类),已成为工业界与学术界的主流选择。从YOLOv1到YOLOv11,算法持续迭代优化,在速度与精度之间寻求平衡,广泛应用于自动驾驶、智能安防、工业质检等场景。为解决上述问题,本文提出一种基于,将输入特征图分解为不同频率的子带(低频全局信息与高频局部细节),并分别通过卷积操作提取局部与全局特征,最后融合多尺度特征,从而更有效地捕捉目标的局部细节与全局结构。

走向CTO的路上... 1249

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

一、四次挥手的详述   1、假设Client端发起中断连接请求,也就是发送FIN报文。 2、Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",但是如果你还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。所以你先发送ACK,"告诉Client端,你的请求我收到了,但是我还没准备好,请继续你等我的消息"。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。 3、当Server端确定数据已发送完成...

MrLiar的博客 4971

FPGA和USB3.0通信-USB3.0 PHY介绍

可以和FPGA搭配使用的USB3.0 PHY芯片通过之前的介绍<FPGA和USB3.0通信-USB3.0协议介绍USB3.0 PHY简介首先我们需要了解PHY具体完成哪些工作以及我利...

OpenFPGA的博客 4940

三次握手四次断开(为什么两次握手不行,断开为何需要等待2msl)

用图详细叙述三次握手与四次断开的过程,以及连接建立过程中可能会存在的问题,如何解决

Mr_Robot的博客 456

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

[TCP]大白话解释TCP的三次握手及四次挥手及为什么主动关闭方要等待2MSL

声明: 本文不保证每个定义绝对严谨, 只是通过更加通俗易懂的语言来让阅读者更好的理解三次握手及四次挥手的过程!!! 首先我们来明白几个定义: 1. FIN: 请求关闭报文 2. SYN: 请求建立连接 3. ACK: 确认收到 4. MSL: 最大报文生存时间 三次握手: 三次握手理解起来比较简单, 说白了就是一个确认双方都能发送且都能接收的一个过程. 第一步: 客户端想要与服...

wuuud1的博客 1781

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【三次握手、四次挥手】TCP建立连接和断开连接的过程、为什么需要三次握手,为什么需要四次挥手、TCP的可靠传输如何保证、为什么需要等待2MSL等重点知识汇总

可见,序列号在 TCP 连接中占据着非常重要的作用,所以当客户端发送携带「初始序列号」的 SYN 报文的时候,需要服务端回一个 ACK 应答报文,表示客户端的 SYN 报文已被服务端成功接收,那当服务端发送「初始序列号」给客户端的时候,依然也要得到客户端的应答回应,,服务器如果收到乱序的包,也给客户端回复 ACK,比如收到乱序的包 6,7,8,9 时,服务器全都发 ACK = 5,这样客户端就知道5丢失了,当客户端收到三个相同的 ACK 报文时,会在超时之前,重传丢失的报文段,而不需要等到计时器超时。

qq_68993495的博客 1214

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

面试总结 - 三次握手、四次握手

 三次握手: 第一次握手: 客户端给服务器发送一个 SYN 报文。 第二次握手: 服务器收到 SYN 报文之后,会应答一个 SYN+ACK 报文。 第三次握手: 客户端收到 SYN+ACK 报文之后,会回应一个 ACK 报文。 四次挥手: 第一次挥手: 主机1(可以使客户端,也可以是服务器端),向主机2发送一个FIN报文段; (主机1进入FIN_WAIT_1状态) 第二次挥手: 主机2收到了主机...

宋卓的博客 1083

TCP 为什么要三次握手和四次挥手

总结一下TCP 三次握手和四次挥手(非常重要)相关的面试题(这篇文章中有这些问题的答案):为什么要三次握手?第 2 次握手传回了 ACK,为什么还要传回 SYN?为什么要四次挥手?为什么不能把服务器发送的 ACK 和 FIN 合并起来,变成三次挥手?如果第二次挥手时服务器的 ACK 没有送达客户端,会怎样?为什么第四次挥手客户端需要等待 2*MSL(报文段最长寿命)时间后才进入 CLOSED 状态?为了准确无误地把数据送达目标处,TCP 协议采用了三次握手策略。

长江七号的博客 191

TCP三次握手和四次挥手

三次握手: 首先,服务器打开一个端口,变成监听状态。 客户端发送一个请求SYN = x,客户端此时状态为SYN-sent状态。 当服务器的监听端口收到客户端发过来的SYN请求后,向客户端回一个SYN = y,ACK = x + 1,这个ACK表明服务器已经收到了客户端发过来的请求,这个SYN是为了确认客户端是否真的要和自己建立连接,发送完成之后,服务器的状态变为SYN-RCVD(SYN收到状态)。 当客户端受到服务器发送来的请求之后,端口变成建立连接状态,然后给服务器回一个ACK = y + 1,表明.

qq_43234235的博客 270

【计算机网络】三次握手与四次挥手详解以及相关问题

1.三次握手: 1)相关概念: SYN(Synchronous:同步):建立连接标志位,置1表明建立连接。 ACK(Acknowledge:确认):确认标志位,置1表明收到请求。 FIN(Finsh:结束):断开链接标志位,置1表明要断开连接。 TCP传送数据包括建立建立、发送数据、断开链接三个过程,三次握手发生在建立连接这一步。 2)握手过程: 第一次握手:Clien(客户机)将标志位SYN(用来标志是否建立连接)置为1,随机产生一个值seq=J,并将该数据包发送给Serve..

BJYYYYYYYY的博客 1305

简述tcp协议三报文握手过程_一文彻底搞懂 TCP三次握手、四次挥手过程及原理...

TCP 协议简述TCP 提供面向有连接的通信传输,面向有连接是指在传送数据之前必须先建立连接,数据传送完成后要释放连接。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。同时由于TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议,TCP是全双工模式,所以需要四次挥手关闭连接。TCP包首部网...

weixin_31321157的博客 9266

面试小知识(2)为什么TCP需要三次握手和四次挥手

由浅入深了解为什么TCP需要三次握手和四次挥手?

weixin_44824500的博客 945

TCP建立连接的三次握手,四次挥手

详细解析三次握手和四次挥手,以及在其过程中出现的问题

Loners_fan的博客 4465

TCP三次握手、四次挥手

TCP三次握手建立连接,四次挥手断开连接 1.三次握手建立连接: 先来解释一下上图中的几个大写字母代表什么含义: SYN:同步序列编号(Synchronize Sequence Numbers),代表请求创建连接,所以在三次握手中前两次要SYN = 1,表示这两次用于建立连接。 FIN: Finish,表示请求关闭连接。在下述的四次挥手时,FIN发了两遍,是因为TCP连接是双向的,所以一次FIN...

studyhardi的博客 221

TCP三次握手与四次挥手

本文结构如下: 部分字段简介 三次握手 四次挥手 部分字段简介: TCP(传输控制协议):是一种面向连接、可靠的传输层协议。 在进行连接和释放连接时会用到TCP报文段首部中的以下字段: 序列号:TCP为传输过程中的所有数据字节编号,初始化序列号为随机数。 确认号:其中的内容是接收方期望下次收到的字节的编号(序列号)。此时说明接收方已经收到了该字节之前的所有字节。 ACK标志:ACK=1表示确...

weixin_41055558的博客 177

TCP三次握手、四次挥手过程及原理

TCP 提供面向有连接的通信传输,面向有连接是指在传送数据之前必须先建立连接,数据传送完成后要释放连接。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过进行初始化的。同时由于TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议,TCP是,所以需要关闭连接。

后端小白个人学习记录 1383
上一篇: TCP和UDP对比
下一篇: 操作系统线程同步之生产者---消费者问题
马冬冬
博客等级 码龄15年 54粉丝 519原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值