TCP四次挥手——断开连接 滑动窗口-流量控制

四次挥手

在TCP的四次挥手中,其重要作用就是释放客户端和服务器的连接。

这里的一些参数非常重要,因为这些参数的作用是为了表达TCP四次挥手断开连接的过程。

其中的参数如下

1.FIN:FIN (Finish) 是TCP协议中的一个标志位,用于表示在数据传输完成后,发送方已经完成了数据的发送,并且不会再发送任何数据。当一个TCP连接的一方发送了带有 FIN 标志的数据段时,表示该方已经完成了数据的发送,但仍然可以接收来自另一方的数据。

2.ACK:ACK (Acknowledgment) 也是TCP协议中的另一个标志位,用于表示收到数据的确认。当一个TCP连接的一方发送了带有 ACK 标志的数据段时,表示该方已经成功接收到了之前发送方的数据。ACK 用来通知发送方数据已经到达目的地并得到正确处理。

3.CLOSE_WAIT:等待应用程序调用close方法,但是如果说程序出现问题,close没有及时的调用或者说根本没调用,那么就会使得机器上出现大量的CLOSE_WAIT。CLOSE_WAIT 是 TCP 状态之一,它表示在 TCP 连接的一端已经发送了关闭连接的请求(通过发送 FIN),但是另一端尚未发送关闭连接的请求或确认(通过发送 ACK。

3.TIME_WAIT:客户端在收到服务器返回的FIN后,不能立即释放TCP连接,如果立即释放了,后续一旦对端重传了FIN,此时客户端无法应对,因此客户端这边就需要一个特殊状态TIME_WAIT状态来等待可能到达的FIN重传数据。一般来说,TIME_WAIT持续一段时间,等待对方FIN的重传,等待的时间,一般是2MSL,MSL这个数值通常是1min,这意味着超过2min还没收到重传的FIN,就认为对方不会重传了。

面试题

如果发现服务器端出现大量的TIME_WAIT,如何处理?

出现大量的TIME_WAIT,说明服务器这边出发了大量的主动断开的TCP连接操作,这个操作对服务器来说,是非常不科学的,一般都是客户端主动断开连接

滑动窗口

确认应答,超时重传和连接管理保证了可靠传输

TCP除了保证可靠传输之外,也希望尽可能高效的完成数据传输,滑动窗口就是其中的一种,提高传输效率的机制。

1.正常来说,主机A这里每次收到一个ACK才发送下一个数据。

2.但是一条一条发送效率比较低,因此采用批量发送的方法,因此引入了滑动窗口,而批量发送的数据量大小就是窗口大小,在这里,比如说滑动窗口大小是4,那么批量发了四组数据之后,不是等到4个ack都回来才继续发送新的数据,而是收到一个ack,就往后发一个新的。

 滑动窗口出现丢包的情况:

情况1:数据包已经抵达了,ACK被弄丢了

这种情况下,前面的ACK被弄丢了,但是只要是最后的ACK到达,那么久没有问题,就默认前面的数据全部收到。

 情况2:数据包就直接丢了

在这个过程中,假如说中间有一个数据包丢了,那么主机A就迟迟无法等到对方返回的ACK从1001开始,B主机一直在等待A的SYN,索要1001这个数据包且永远也得不到。

总结这两种丢包的处理

第一种情况对于ACK的丢失,不作任何处理  

第二种情况对于数据的丢失,只需要把缺失的数据重传就行,其他数据不用重传。

流量控制

窗口的机制很重要,窗口大小是可变的,通过窗口的大小来控制发送方发送的速度,发送的太快,接收方容易处理不过来。但是窗口越大单位时间发的数据就越多,效率就越高。窗口越小,单位时间发的数据就越少。

那么具体来说是如何控制速度呢,接收方有一个接受缓冲区,也就是阻塞队列。

以空闲空间的大小作为发送方发送数据的窗口大小,也就是上图中未使用的空间。需要把这个数值告诉发送方,接收方会返过来给发送方返回一个ACK,在ACK报文中,在TCP的报头中,制定一个字段来表示上述的空闲空间的大小。

 

上图中,16位窗口大小,只会在ack报文中生效,含义就是接收方接收缓冲区空闲空间的大小,这不意味着窗口大小就是64kb,因此TCP是可扩展的,有一个扩展因子可以将其扩展。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/328170.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用TerraScan静态扫描KubernetsIaC文件

terrascan https://github.com/tenable/terrascan Terrascan 是基础架构即代码的静态代码分析器。Terrascan 允许: 将基础架构作为代码无缝扫描,以查找错误配置。监控已配置的云基础架构,以查找引入终端安全评估漂移的配置更改&#xff0…

使用图网络和视频嵌入预测物理场

文章目录 一、说明二、为什么要预测?三、流体动力学模拟的可视化四、DeepMind神经网络建模五、图形编码六、图形处理器七、图形解码器八、具有不同弹簧常数的轨迹可视化九、预测的物理编码和推出轨迹 一、说明 这是一篇国外流体力学专家在可视化流体物理属性的设计…

OpenAI新模型GPT-4o“炸裂登场” 响应速度堪比真人 关键还免费!

GPT-4o模型基于来自互联网的大量数据进行训练,更擅长处理文本和音频,并且支持50种语言。更值得一提的是,GPT-4o最快可以在232毫秒的时间内响应音频输入,几乎达到了人类的响应水平。 GPT-4o有多“炸裂”?核心能力有三 G…

幻兽帕鲁Palworld服务器手动部署

目录 帕鲁官方文档手动安装steamcmd通过steamcmd安装帕鲁后端客户端连接附录:PalServer.sh的启动项附录:配置文件 帕鲁官方文档 https://tech.palworldgame.com/ 手动安装steamcmd 创建steam用户 sudo useradd -m steam sudo passwd steam下载steamc…

自动化测试基础 --- Jmeter

前置环境安装 首先我们需要知道如何下载Jmeter 这里贴上下载网站Apache JMeter - Download Apache JMeter 我们直接解压,然后在bin目录下找到jemter.bat即可启动使用 成功打开之后就是这个界面 每次打开可以用这种方式切换成简体中文 或者直接修改properties文件修改对应的语言…

【linux】详解linux基本指令

目录 cat more less head tail 时间 cal find grep zip/unzip tar bc uname –r 关机 小编一共写了两篇linux基本指令,这两篇涵盖了大部分初学者的必备指令,这是第二篇,第一篇详见http://t.csdnimg.cn/HRlVt cat 适合查看小文…

5.神经网络-激活函数

目录 1. 激活函数不是阶跃函数 1.1 激活函数和阶跃函数都是非线性函数 1.2 激活函数不是阶跃函数 2. sigmoid 函数 2.1 sigmoid 函数表达式 2.2 sigmoid 函数 Python 实现 2.4 sigmoid 函数图 3. ReLU 函数 3.1 ReLU 函数表达式 3.2 ReLU 函数 Python 实现 3.4 ReLU…

接口自动化-requests库

requests库是用来发送请求的库,本篇用来讲解requests库的基本使用。 1.安装requests库 pip install requests 2.requests库底层方法的调用逻辑 (1)get / post / put / delete 四种方法底层调用 request方法 注意:data和json都…

边缘计算安全有多重要

德迅云安全研究发现边缘安全是对存储或处理在网络边缘的数据的保护。边缘可以用不同的方式定义,但一般来说,它包括企业直接控制之外的任何设备或位置。这可能包括传感器、连接物联网的设备和移动设备。 边缘计算正在彻底改变商业运作方式。这引发了对边缘…

WordPress原创插件:超链接点击访问统计

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 一般我们都使用第三方统计服务(比如百度统计)来统计网站的访问量,使用此插件可以统计文章的浏览次数,那么,如果想统计网站外…

(规格参考)ADP5360ACBZ-1-R7 电量计 电池管理IC,ADP5072ACBZ 双通道直流开关稳压器,ADL5903ACPZN 射频检测器

1、ADP5360ACBZ-1-R7:具有超低功耗电量计、电池保护功能的先进电池管理PMIC 功能:电池保护 电池化学成份:锂离子/聚合物 电池数:1 故障保护:超温,过压 接口:I2C 工作温度:-40C ~ 85…

生活服务商家拥抱数字化,鸿运果系统加速“服务生意数字化”进程

在数字化转型的大潮中,生活服务商家正积极拥抱变革,以适应新的市场环境和消费者需求。鸿运果系统作为专业的“服务生意”数字化解决方案提供商,正助力商家加速数字化转型,推动行业向智能化、个性化服务转型。 数字化转型的背景 …

人才测评:计划管理能力与岗位胜任力素质测评

计划管理能力指的是什么? 计划管理能力,可以体现为从业者在精准制定好任务,或是根据任务的时间长,困难的程度来设定好完成的目标,一步一个脚印将工作完成好,并且能预估出可能出现的突发事件,将…

AI工具的热门与卓越:揭示AI技术的实际应用和影响

文章目录 每日一句正能量前言常用AI工具创新AI应用个人体验分享后记 每日一句正能量 我们在我们的劳动过程中学习思考,劳动的结果,我们认识了世界的奥妙,于是我们就真正来改变生活了。 前言 随着人工智能(AI)技术的快…

【Linux取经路】进程通信之匿名管道

文章目录 一、进程间通信介绍1.1 进程间通信是什么?1.2 进程间通信的目的1.3 进程通信该如何实现 二、管道2.1 匿名管道2.1.1 站在文件描述符角度深入理解管道2.1.2 接口使用2.1.3 PIPE_BUFFER 和 Pipe capacity2.1.4 管道中的四种情况2.1.5 管道特征总结 2.2 匿名管…

华为、小米、魅族都开始造车了!中国还有多少手机厂家要下场造车?2024如果创业适合干什么?2024最适合创业的细分行业

要说现在中国最火、声量最高的创业是什么?那一定是造车! 小米这样的手机公司在造车、创维这样的电视家电品牌在造车、甚至就连五粮液这样的白酒品牌也在造车!至于其他的还有什么做地产的恒大、做电动车的新日等等,数不数胜。而在手…

如何进行事务处理

1、问题背景 在数据库存储系统中,事务处理是一种保证多个数据库操作作为单个逻辑单元执行的技术。事务处理可以确保数据的一致性、完整性和隔离性。 在使用 Google Cloud Datastore 时,可以使用 datastore.transaction() 函数来进行事务处理。datastor…

DBeaver连接数据库

前言 DBeaver是一款免费和开源的数据库管理工具,为开发人员和数据库管理员提供了一个通用的数据库解决方案。以下是DBeaver的主要特点和功能: 跨平台支持:DBeaver支持Windows、Linux、macOS等主流操作系统,用户可以在不同的平台…

MATLAB公式推导和导出Latex格式的方法

最近在推机械臂正逆运动学公式,那个旋转矩阵乘起来是真滴多,手算算的脑浆疼。突然想起来MATLAB还有符号计算这个功能,于是翻了翻手册, 找到了这个利用MATLAB帮助计算公式并且直接导出Latex格式的办法。 先定义符号变量&#xff0…

我的职场加速器-高效工作从可道云teamOS开始

不论是作为管理者,还是普通打工人,在日常工作中,我们都需要一款既能够保障数据安全,又能够提升团队协作效率的平台。 近期,我体验了可道云teamOS,这款企业级云协作平台给我留下了深刻的印象。 一、极简风…