TCP的拥塞控制

TCP的拥塞控制,慢开始是什么? 先来了解一下什么是拥塞控制: 所谓的拥塞控制就是放止过多的数据注入到网络中,这样可以使的网络中的路由器,或者链路不会发生过载,拥塞控制所要做的就是都有一个前提,就是网络能够承受现有的网络负荷.,拥塞控制是一个全局性的过程,涉及到所有的主机,路由器,以及与降低网络除数性能相关的因素. 拥塞控制的一般原理: 在某段时间中,若网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏,这种情况就称为拥塞, 关系式: 对资源的需求>可用资源 要解决网络拥塞的发生,不能简单增加不足的资源, 阅读详情

1.引言

       计算机网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞。

       拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制是一个全局性的过程,和流量控制不同,流量控制指点对点通信量的控制。

2.慢开始与拥塞避免

       发送方维持一个叫做拥塞窗口cwnd(congestion window)的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口,另外考虑到接受方的接收能力,发送窗口可能小于拥塞窗口。

       慢开始算法的思路就是,不要一开始就发送大量的数据,先探测一下网络的拥塞程度,也就是说由小到大逐渐增加拥塞窗口的大小。

       这里用报文段的个数的拥塞窗口大小举例说明慢开始算法,实时拥塞窗口大小是以字节为单位的。如下图:

       当然收到单个确认但此确认多个数据报的时候就加相应的数值。所以一次传输轮次之后拥塞窗口就加倍。这就是乘法增长,和后面的拥塞避免算法的加法增长比较。

       为了防止cwnd增长过大引起网络拥塞,还需设置一个慢开始门限ssthresh状态变量。ssthresh的用法如下:

当cwnd<ssthresh时,使用慢开始算法。

当cwnd>ssthresh时,改用拥塞避免算法。

当cwnd=ssthresh时,慢开始与拥塞避免算法任意。

       拥塞避免算法让拥塞窗口缓慢增长,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍。这样拥塞窗口按线性规律缓慢增长。

       无论是在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有收到确认,虽然没有收到确认可能是其他原因的分组丢失,但是因为无法判定,所以都当做拥塞来处理),就把慢开始门限设置为出现拥塞时的发送窗口大小的一半。然后把拥塞窗口设置为1,执行慢开始算法。如下图:

      再次提醒这里只是为了讨论方便而将拥塞窗口大小的单位改为数据报的个数,实际上应当是字节。

3.快重传和快恢复

       快重传要求接收方在收到一个失序的报文段后就立即发出重复确认(为的是使发送方及早知道有报文段没有到达对方)而不要等到自己发送数据时捎带确认。快重传算法规定,发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段,而不必继续等待设置的重传计时器时间到期。如下图:

快重传配合使用的还有快恢复算法,有以下两个要点:

①当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把ssthresh门限减半。但是接下去并不执行慢开始算法。

②考虑到如果网络出现拥塞的话就不会收到好几个重复的确认,所以发送方现在认为网络可能没有出现拥塞。所以此时不执行慢开始算法,而是将cwnd设置为ssthresh的大小,然后执行拥塞避免算法。如下图:

4.随机早期检测RED

       以上的拥塞避免算法并没有和网络层联系起来,实际上网络层的策略对拥塞避免算法影响最大的就是路由器的丢弃策略。在简单的情况下路由器通常按照先进先出的策略处理到来的分组。当路由器的缓存装不下分组的时候就丢弃到来的分组,这叫做尾部丢弃策略。这样就会导致分组丢失,发送方认为网络产生拥塞。更为严重的是网络中存在很多的TCP连接,这些连接中的报文段通常是复用路由路径。若发生路由器的尾部丢弃,可能影响到很多条TCP连接,结果就是这许多的TCP连接在同一时间进入慢开始状态。这在术语中称为全局同步。全局同步会使得网络的通信量突然下降很多,而在网络恢复正常之后,其通信量又突然增大很多。

       为避免发生网路中的全局同步现象,路由器采用随机早期检测(RED:randomearly detection)。该算法要点如下:

       使路由器的队列维持两个参数,即队列长队最小门限min和最大门限max,每当一个分组到达的时候,RED就计算平均队列长度。然后分情况对待到来的分组:

①平均队列长度小于最小门限——把新到达的分组放入队列排队。

②平均队列长度在最小门限与最大门限之间——则按照某一概率将分组丢弃。

③平均队列长度大于最大门限——丢弃新到达的分组。

      以概率p随机丢弃分组,让拥塞控制只在个别的TCP连接上执行,因而避免全局性的拥塞控制。

       RED的关键就是选择三个参数最小门限、最大门限、丢弃概率和计算平均队列长度。平均队列长度采用加权平均的方法计算平均队列长度,这和往返时间(RTT)的计算策略是一样的。

 

TCP慢启动、拥塞避免、快速重传、快速恢复 为了防止网络的拥塞现象,TCP提出了一系列的拥塞控制机制。最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动(Slow start)”和“拥塞避免(Congestion avoidance)”组成,后来TCP Reno版本中又针对性的加入了“快速重传(Fast retransmit)”、“快速恢复(Fast Recovery)”算法,再后来在TCP NewReno中又对 阅读详情

相关推荐

Day7: TCP:拥塞控制原理、 TCP拥塞控制

Day7的第二篇Study blog。 偷博仔,day day up! 欣赏一下 《????小花的信念》 在山石组成的路上 浮起一片小花 它们用金黄的微笑 来回报石块的冷遇 它们相信 最后,石块也会发芽 也会粗糙地微笑 在阳光和树影间 露出善良的牙齿 ———— 1981年4月 小花信念如此,吾辈岂能且过。(言重了,言重了) 正片开始 一、TCP:拥塞控制原理 拥塞没有一个Authoritative(权威的)定义。 拥塞: (congestion)  非正式的定义:“太多的数据需要网络传输,超

m0_46156900的博客 2058

TCP拥塞控制——慢开始和拥塞避免

本篇开始详细讲解TCP拥塞控制的方法——慢开始和拥塞避免~~ 1、慢开始 发送方维持一个叫做拥塞窗口cwnd的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。如果还考虑接收方的接受能力,那么发送窗口还可能小于拥塞窗口。 发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就在增大一些,以便把更多的分组发送出去。但只要网

qq_36953135的博客 1万+

TCP拥塞控制总结

网络中的资源包括链路容量(带宽)、交换结点的缓存和处理机等。 拥塞控制的原理 拥塞:接收方对某资源的需求超过了资源能提供的可用部分,即:对资源的需求>可用资源。 拥塞的原因: (1)某个交换结点缓存的容量太小时,到达该结点的分组因无存储空间暂存而不得不被丢弃; (2)处理机的处理速率太慢,导致网络资源堆积无法及时处理; (3)链路容量小,输入网络中的负载过大。 因此,拥塞控制的含义就是:防止过多的数据传入网络中,从而避免网络中的路由器或链路过载。 负载:单位时间内输入给网络的数据量; 吞吐量:单位时间

weixin_49199646的博客 1654

【计算机网络】TCP拥塞控制——慢开始、拥塞避免、快重传和快恢复

文章目录1、慢开始2、慢开始门限ssthresh3、拥塞避免4、“乘法减小”和“加法增大”5、快重传6、快恢复 1、慢开始 发送方维持一个叫做拥塞窗口cwnd的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。如果还考虑接收方的接受能力,那么发送窗口还可能小于拥塞窗口。 发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减少一些,以减少注入到网络中的分组数。 慢开始算法的思路:当主

时光、疏离了记忆づ童话的博客 2万+

《生化危机9:安魂曲》D加密免BIOS破解方案详解

数字版权管理(DRM)技术通过加密手段保护软件版权,Denuvo(D加密)作为主流方案常应用于3A游戏。其原理是通过实时验证机制阻止未授权访问,但可能影响性能表现。本文以《生化危机9》为例,解析一种免BIOS修改的D加密绕过方案,该方案通过授权启动器模拟正版验证流程,保持系统零侵入性。实测表明,该方法在GTX 1060至RTX 3070等多硬件平台均能稳定运行,支持MOD扩展且兼容Reshade画质增强,为玩家提供开箱即用的绿色版体验。

weixin_33898233的博客 924

CPRI原理及应用--基本原理

本文主要介绍CPRI的基本原理,包括CPRI的发展历程、CPRI基本协议、速率、帧结构、时延模型等

u014035968的博客 2万+

TCP拥塞控制

1、拥塞控制原理 在实践中,丢包一般是当网络变得拥塞时由于路由器缓存溢出引起的。分组重传因此作为网络拥塞的征兆(某个特定的运输层报文段的丢失)来对待,但是却无法处理导致网络拥塞的原因,因为有太多的源以过高的速率发送数据。为了处理网络拥塞原因,需要一些机制以在面临网络拥塞时遏制发送方。 1.1 拥塞原因及代价 1、情况1:两个发送方和一台具有无穷大缓存的路由器 甚至在这种(极端)理想化的情况中,已经发现了拥塞网络的一种代价,即当分组的到达速率接近链路容量时,分组经历巨大的排队时延。 2、情况2:两个发送方和一

明朗晨光的专栏 1万+

SQL2000在Win10上安装完整指南:兼容模式、SP4补丁与远程连接配置

数据库兼容性是老系统迁移与运维中绕不开的难题。当历史遗留的SQL Server 2000遭遇全新的Windows 10环境,安装程序常因系统版本检测失败而拒绝运行,这背后是旧版安装程序与NT内核版本间的识别错位。通过兼容模式模拟旧系统环境、以管理员身份运行安装程序,并处理注册表挂起与杀毒软件干扰,即可突破基础安装障碍。安装后的SP4补丁与TCP/IP端口配置,则是保障服务稳定与远程连接的关键。这一技术路径广泛适用于制造企业MES、进销存系统及医院HIS等仍依赖老旧数据库的场景,为IT运维与数据迁移测试提供了

weixin_29266679的博客 437

TCP 拥塞控制

不同的TCP拥塞控制算法在设计理念、性能优化方面有所不同。Tahoe和Reno侧重于通过丢包信号来调整拥塞窗口大小,而Vegas和BBR则试图通过预测和测量网络状态来避免拥塞的发生。随着网络环境的不断变化和发展,新的拥塞控制算法不断被提出,以适应不同的网络条件和应用需求。

坚定目标,超越自我 3454

【中项】案例分析 | 答题技巧 | 备考 

对偏差原因的分析和对项目未来趋势的理解。如果偏差是由一次性事件或特殊原因引起的,那么这种偏差是非典型的,意味着未来的绩效将回归到预期的绩效水平。例如,如果项目初期的CPI小于1,原因是意外的自然灾害导致成本增加,那么这种偏差被认为是非典型的,因为它不太可能在未来重复发生。例如,如果项目初期的CPI小于1,且原因是低效的团队协作,那么这种偏差被认为是典型的,因为它可能在整个项目生命周期中持续存在。在实际应用中,项目经理通常会结合CPI、SPI和偏差趋势图等工具,综合分析偏差的性质,以制定合理的项目控制策略。

静谧、淡雅 1243

YOLOv8【第一章:基础入门篇·第1节】一文搞定,核心架构深度解析与环境配置!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏,该专栏专注于分享我在YOLOv8目标检测模型中的实战经验,涵盖从入门基础到深度优化的全方位解决方案。无论你是计算机视觉的新手,还是具有多年深度学习经验的专家,本专栏都将为你提供高效、可复现的技术方案,助你掌握YOLOv8的核心技术,提升目标检测性能,突破瓶颈,优化模型,并加速项目开发🚀!

**My Coding Family** 2101

TCP的拥塞控制策略

一、TCP基于窗口的拥塞控制策略 1.1 加法增加乘法减少(AIMD)窗口算法     TCP是Internet中最流行的端到端传输协议,为主机之间提供可靠按序的传输服务。在现有的TCP/IP协议体系下,TCP拥塞控制机制主要基于加法增加乘法减少(AIMD)算法。在该算法中主要用到三个窗口变量:     (1)拥塞窗口(cwnd):限定源端在拥塞控制中在一定时间内允许传送的最大数据量,是来自

fengqiaojiangshui的专栏 9304

【OpenClaw从入门到精通】零基础入门——OpenClaw核心概念快速理解(2026入门版)

OpenClaw是一个强大的AI代理框架,旨在构建智能化的自动化任务处理系统。随着人工智能技术的快速发展,OpenClaw为开发者和企业提供了一个完整的解决方案,用于创建能够理解、学习和执行复杂任务的智能体。本文将带领零基础的读者快速理解OpenClaw的核心概念,从基础架构到实际应用,为后续深入学习奠定坚实基础。通过本文的学习,你将掌握OpenClaw的基本原理、核心组件和快速上手方法。

一键难忘的博客 325

TCP 拥塞控制算法

转自:https://mp.weixin.qq.com/s/NIFandX8w-Cynnbl-f2Lwg TCP拥塞控制算法 TCP 通过维护一个拥塞窗口来进行拥塞控制,拥塞控制的原则是,只要网络中没有出现拥塞,拥塞窗口的值就可以再增大一些,以便把更多的数据包发送出去,但只要网络出现拥塞,拥塞窗口的值就应该减小一些,以减少注入到网络中的数据包数。 拥塞控制算法的核心是选择一个有效的策略来控制拥塞窗口的变化。 TCP 拥塞控制算法发展的过程中出现了如下几种不同的思路: 基于丢包的拥塞控制:将丢包视为出现拥

lin的博客 2677

OpenClaw与大语言模型(Claude/GPT/MiniMax)的集成架构与最优配置策略

摘要 本文探讨了OpenClaw框架与大语言模型(Claude/GPT/MiniMax)的集成架构与优化策略。大语言模型具有强大的自然语言处理能力,但集成面临API成本、响应延迟、上下文管理等挑战。OpenClaw采用分层架构设计,包括用户界面层、对话管理层、提示工程层、模型适配层和API调用层,支持多模型切换、智能对话管理和成本控制。系统通过模型适配层实现不同API的统一调用,并提供缓存、监控等优化机制。该集成方案能够充分发挥大语言模型的优势,为本地AI助理提供更智能的服务。

一键难忘的博客 1693

PCL 使用RANSAC拟合平面【2026最新版】

RANSAC拟合平面算法原理和实现流程详解以及最大迭代次数和内点期望概率的设置方法。最后再对拟合后的平面法向量与向量(1,1,1)进行定向。博客长期更新,最近一次更新时间为:2026年4月24日。

点云侠的博客 42万+

TCP的拥塞控制简介

从《自顶向下》书中复制过来TCP的拥塞控制。介绍了TCP拥塞控制的相关算法:Tahoe、Reno、NewReno、SACK、Vegas。这些算法的区别,我不是特别清楚,所以这里不写他们之间的对比区别。完。

大草的博客 2237

visio安装包

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

上一篇: TCP的流量控制
下一篇: DNS
sicofield
博客等级 码龄18年 169粉丝 169原创
评论 16
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值