TCP流量控制与拥塞控制

news/2024/5/9 13:38:19/文章来源:https://blog.csdn.net/RXY24601/article/details/130390462

什么是流量控制

一条TCP连接的每一侧主机都为该连接设置了接收缓存。当该TCP连接接收到正确的、有序的报文段,就会将数据放入接收缓存。相关联的应用会从缓存中读取数据。

如果发送者发送数据过快、过多,而接收方的应用程序从缓冲区读取的速度较慢,就会导致缓冲区溢出

为了避免分组丢失,控制发送者的发送速度,使得接收者来得及接收,这就是流量控制

流量控制根本目的是防止分组丢失,使得发送速率与接收速率相匹配

流量控制引发的死锁?怎么避免死锁的发生?

        当发送者收到了一个窗口为0的应答,发送者便停止发送,等待接收者的下一个应答。但是如果这个窗口不为0的应答在传输过程丢失,发送者将会一直等待下去,而接收者以为发送者已经收到该应答,等待接收新数据,这样双方就相互等待,从而产生死锁。
        为了避免流量控制引发的死锁,TCP使用了持续计时器。当发送者收到一个零窗口的应答后就启动该计时器。发送方会持续发送只有一个字节数据的报文段,询问接收者的窗口大小。

        若接收者仍然返回零窗口,则重置该计时器继续等待;若窗口不为0,则表示应答报文丢失了,此时重置发送窗口后开始发送,这样就避免了死锁的产生。

        这个窗口称为rwnd(接收窗口),标识接收方可用缓存区

什么是拥塞控制

如果发送方因为IP网络的拥塞被制约,那么这种流量控制被称为拥塞控制(congestion control)

在TCP中,丢包一般是当网络变得拥挤是由于路由器缓存溢出引起的。拥塞控制用于处理路由器溢出导致的丢包问题。 

拥塞控制包括:慢启动,拥塞避免,快速恢复

流量控制与拥塞控制的区别

拥塞控制:拥塞控制是作用于网络的,它是防止过多的数据注入到网络中,避免出现网络负载过大的情况;常用的方法就是:( 1 )慢开始、拥塞避免( 2 )快重传、快恢复。

流量控制:流量控制是作用于接收者的,它是控制发送者的发送速度从而使接收者来得及接收,防止分组丢失的。

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

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

相关文章

面试题30天打卡-day13

1、Linux 中的硬链接和软连接是什么,二者有什么区别? 在Linux系统下,有两种链接文件,一种是硬链接(Hard Link),一种是软链接,也称为符号链接(Symbolic Link)…

Codeforces Round 867 (Div. 3)

Problem - E - Codeforces 思路: 首先,如果n为奇数,中间那个数无法调整,所以只考虑偶数只有26个字母,我们用cnt[]记录每个字母需要交换的对数。设maxn为交换对数最多的字母。显然,如果cnt[maxn]>n/2,显…

006-reg

程序 程序输入用户名和序列号,会被存放在reg.dll里,程序重启验证 查壳 无壳,Delphi程序 载入OD分析 搜索到可疑字符串 看未注册附近 在这个地方传入的Username和SN,进call 验证了SN的长度和字符类型 在这个CALL里计算…

智加科技+舍弗勒,首发量产正向开发的智能重卡冗余转向

对于自动驾驶赛道来说,感知、规划和控制,除了计算平台、算法等核心上层软硬件支持,底盘控制系统同样是关键一环。事实上,从Demo到规模化量产,更好的车身控制能力以及冗余备份,也是自动驾驶公司迈入2.0阶段的…

Mybatis 全局配置文件 mybatis-config.xml

1、全局配置文件的用处 mybatis通过配置文件可以配置数据源、事务管理器、运行时行为、处理别名、类型处理、插件等信息。在mybatis应用初始化时,程序会解析全局配置文件,使用配置的信息实例化Configuration组件,完成基本配置的初始化。在my…

【Linux】解决切换用户出现bash-4.2$问题创建普通用户并设置密码、授权

【问题描述】 linux中创建了一个wxh用户,然后使用su命令切换用户后,终端提示符显示成“bash-4.2$”而不是[rootlocalhost wxh]#,导致ll等命令无法执行。 [rootlocalhost xhh]# su wxh bash-4.2$ ll bash: ll: 未找到命令 【原因】 没有在hom…

找出1-1000中的所有完美数

再次练习查找完美数,找出 1-1000 中的所有完美数。 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单…… 地址:https://l…

JVM 调优

大部分的情况都是由于企业内部代码逻辑不合理导致。 JVM内部性能优化 栈上分配方法内联JVM的自适应调整 JVM改错 大并发内存不足OOM 内存泄漏GC频繁CPU飙升 JVM的调优的原则是让你各项指标尽可能的利用到你硬件的性能瓶颈。 JVM的性能优化可以分为代码层面和非代码层面。 …

PyTorch实战3:天气识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍦 参考文章:365天深度学习训练营-第P3周:天气识别🍖 原作者:K同学啊|接辅导、项目定制 目录 一、前期准备1、导入数据2、transforms.Compose详…

【Python入门第五十四天】Python丨NumPy ufuncs

什么是 ufuncs? ufuncs 指的是“通用函数”(Universal Functions),它们是对 ndarray 对象进行操作的 NumPy 函数。 为什么要使用 ufuncs? ufunc 用于在 NumPy 中实现矢量化,这比迭代元素要快得多。 它们…

线程的生命周期以及sleep()方法和wait()方法

三种休眠状态:Blocked,Waiting,Timed_Waiting 注意两个Blocked态是不一样的,上面的Blocked只要睡眠时间到了马上进入运行态,下面处于Blocked的线程还需要抢到锁才能进入运行态 sleep()和wait()方法: sleep…

【hello Linux】进程间通信——匿名管道

目录 前言: 总结下上述的内容: 1. 进程间通信目的 2. 进程间通信的分类 1. 匿名管道 2. 匿名管道的使用 1. 匿名管道的创建 2. 使用匿名管道进行父子间通信 Linux🌷 前言: 进程具有独立性,拥有独立的数据、代码及其他…

论文阅读:PVO: Panoptic Visual Odometry

全景视觉里程计、同时做全景分割和视觉里程计 连接:PVO: Panoptic Visual Odometry 0.Abstract 我们提出了一种新的全景视觉里程计框架PVO,以实现对场景运动、几何和全景分割信息的更全面的建模。我们将视觉里程计(VO)和视频全景分割(VPS)在一个统一的…

STM32F4_SRAM中调试代码

目录 1. 在RAM中调试代码 2. STM32的三种存储方式 3. STM32的启动方式 4. 实验过程 通过上一节的学习,我们已经了解了SRAM静态存储器; 1. 在RAM中调试代码 一般情况下,我们在MDK中编写工程应用后,调试时都是把程序下载到芯片…

Java_异常

Java_异常 1.什么是异常 ​ 生活中的异常:感冒发烧、电脑蓝屏、手机死机等。 ​ 程序中的异常:磁盘空间不足、网络连接中断、被加载的资源不存在等。 ​ 程序异常解决办法:针对程序中非正常情况,Java语言引入了异常&#xff0…

注意力机制:基于Yolov5/Yolov7的Triplet注意力模块,即插即用,效果优于cbam、se,涨点明显

论文:https://arxiv.org/pdf/2010.03045.pdf 本文提出了可以有效解决跨维度交互的triplet attention。相较于以往的注意力方法,主要有两个优点: 1.可以忽略的计算开销 2.强调了多维交互而不降低维度的重要性,因此消除了通道和权…

日撸 Java 三百行day38

文章目录 说明day381.Dijkstra 算法思路分析2.Prim 算法思路分析3.对比4.代码 说明 闵老师的文章链接: 日撸 Java 三百行(总述)_minfanphd的博客-CSDN博客 自己也把手敲的代码放在了github上维护:https://github.com/fulisha-ok/…

VR全景图片,探究VR全景图片为何如此受欢迎?

随着科技的不断进步,虚拟现实技术逐渐渗透到我们的日常生活中,为我们带来了许多前所未有的体验和乐趣。而其中,VR全景图片作为一种基于虚拟现实技术的图片展示形式,不仅在旅游、房地产、教育等领域得到了广泛的应用,也…

c++强制类型转换:

强制类型转换:1. const属性用const_cast。 案例: 说明:该变量可以将变量的const 的属性去掉。如该案例,转换后修改x的值是合法的。2. 基本类型转换用static_cast。 案例: 说明:一般用在(1)基本类型&#xf…

学系统集成项目管理工程师(中项)系列10_立项管理

1. 系统集成项目管理至关重要的一个环节 2. 重点在于是否要启动一个项目,并为其提供相应的预算支持 3. 项目建议 3.1. Request for Proposal, RFP 3.2. 立项申请 3.3. 项目建设单位向上级主管部门提交的项目申请文件,是对拟建项目提出的总体设想 3…