网络拥塞控制的分析与研究

合集下载

TCP拥塞控制算法理论及调优实践

TCP拥塞控制算法理论及调优实践

TCP拥塞控制算法理论及调优实践TCP(Transmission Control Protocol)是当前Internet上最重要的传输协议之一,其主要特点是提供了可靠的数据传输服务。

然而,在高负载情况下,TCP数据传输过程中容易出现拥塞现象,导致网络性能下降、数据丢失等问题。

因此,TCP拥塞控制算法成为网络性能优化中的重要一环。

TCP拥塞控制算法的原理TCP拥塞控制算法主要基于网络反馈机制实现,在网络出现拥塞时,TCP协议会相应地降低发送数据的速度,以此来缓解网络负载压力。

TCP拥塞控制算法主要包括四种基本算法:Slow Start、Congestion Avoidance、Fast Retransmit和Fast Recovery。

Slow Start算法是TCP拥塞控制算法中最基本的算法之一,其主要原理是当TCP协议开始发送数据时,先以一个较小的速率进行发送,逐渐递增发送速率,同时不断根据网络反馈调整发送速率,直到网络达到拥塞阈值时,TCP协议则根据反馈信息逐渐降低发送速率,以缓解网络拥塞压力。

Congestion Avoidance算法主要是在Slow Start算法的基础上进一步进行优化,其主要想法是当网络出现拥塞时,不仅仅是降低发送速率,同时也要通过降低拥塞窗口大小来减少拥塞现象的发生。

Fast Retransmit算法主要是当发送方在经过一段时间后始终没有收到确认数据包时,则会认为数据包已经丢失,此时会立即重发数据包以避免数据包过多地停留在网络中发生拥塞现象。

这种方式可以大大缩短丢包重传的时间,提高数据传输的时效性。

Fast Recovery算法主要是在Fast Retransmit中进一步进行优化,当收到重复的确认数据包时,TCP协议会认为数据包已经被正确接收,此时会立即完成重传操作并根据网络反馈情况以逐渐增加发送速率的方式来提高数据传输效率。

TCP拥塞控制算法的调优实践TCP拥塞控制算法的调优是一项非常复杂的工作,需要综合考虑网络拓扑结构、流量类型、网络负载情况等多个因素。

高速网络中TCP拥塞控制端算法研究

高速网络中TCP拥塞控制端算法研究

塞 事件 ( 或者 每 10分 钟 发生 一 次拥 塞事 件 , 应 0 对
的丢包率 为 1 5×1 。 。 . 0‘ ) 。
为可 能 。一 些应用 如科 学协 作 、 程诊 断和 实 时检 远 测 可以利用 高速 网络从 远程 探测器 如卫 星 、 雷达 传 输高带 宽实 时 数据 、 图像 和录像 。而 It nt 大 ne e 上 r
2 相 关 研 究 综述
针对 T P在 高 速 网络 中 的缺 点 , C 当前 的研 究 热 点 是 修 改 拥 塞 控 制 机 制 : T P I、 T P 2、 S C l HS C l J
F S C 、 C 、 U I 及 H C : S C A TT P X P C BC T P6。 T P E
多数 的 数 据 业 务 , S P P P F P、 E N T 如 MT , O , T T L E , HF T P等使用 的都 是 T P协议 。 因此 T P的拥 塞 C C 控 制机 制对控 制 网络拥 塞具有 特别 重要 的意 义 。
良好 的拥 塞 控 制 是 确 保 Itre 稳 定 的关 键 nen t
17 p , 1r 间为 1 s 10 之 间 的情 况 , 0 bsR丫 时 m 到 0s 已经
的输 出速率 比不 公平 。 F S C A TT P是加 州理 工学 院 的科研 人 员开 发 出 来一 个新 协议 , 它是基 于快 速 活动 队列 管理 的规模
不能满 足 高速 网络 中数 据 传输 的需 要 。原 因在 于
维普资讯
总第 11 6 期 20 第 5期 07年
舰 船 电 子 工 程
Shp El cr i gne rn i e tonc En i ei g

数据通信与计算机网络第6章+端到端的运输协议-拥塞控制

数据通信与计算机网络第6章+端到端的运输协议-拥塞控制
• 设置ssthresh=max(cwnd/2,2*SMSS)
• 设置cwnd=ssthresh+ndup*SMSS(已经离开网络并且被缓存)inflating
• 每次收到更多的重复ACK(对同一TCP段)时,
• 拥塞窗口加1:cwnd+=SMSS; inflating (cwnd = ssthresh + ndup* SMSS)
重传丢失分组
New
ACK!
重传丢失分组
fast
recovery
duplicate ACK
cwnd = cwnd + MSS
如果允许,发送新分组
TCP版本
RFC 5681 TCP Congestion Control
• TCP Tahoe: 三个重复ACK时快速重传,进入慢启动阶段
• TCP Reno:快速重传之后进入快速恢复阶段,在1个RTT内修复单个分组丢失
• 拥塞窗口限制了发送方的发送速度
• TCP的数据传输是ACK驱动(ACK-Clocked)的,接收者每次(在采用Delay Ack时每两
次)收到一个TCP数据段时发送一个ACK
• 发送者根据收到的ACK的情况来更新cwnd,网络出现拥塞时减少cwnd,网络比较空闲
时增加cwnd
• TCP的发送受到流量控制和拥塞控制的制约:
• 在接近该容量时拥塞窗口增加的速度减慢
• 引入慢启动阈值ssthresh=超时时拥塞窗口的一半:拥塞控制的哪个阶段?
• 拥塞窗口小于ssthresh,则为慢启动阶段,拥塞窗口指数增加
• 拥塞窗口大于ssthresh,则为拥塞避免阶段,拥塞窗口线性增加
• 拥塞窗口=ssthresh,标准中可采用慢启动也可拥塞避免,实现中一般采用拥塞避免

网络拥塞解决方案

网络拥塞解决方案

网络拥塞解决方案网络拥塞是指网络中的流量超过了网络设备的处理能力,导致网络传输速度变慢或者数据丢失的现象。

为了解决网络拥塞问题,我们可以采取以下几种解决方案:一、优化网络拓扑结构1.1 网络设备升级:通过升级路由器、交换机等网络设备,提高网络设备的处理能力,减少网络拥塞的发生。

1.2 网络分流:将网络流量分流到不同的网络路径上,避免某一条路径上的流量过大导致网络拥塞。

1.3 部署负载均衡设备:通过部署负载均衡设备,将流量均匀分配到不同的服务器上,减轻单一服务器的压力,避免网络拥塞。

二、提高网络带宽2.1 增加网络带宽:通过提升网络带宽,增加网络传输速度,减少网络拥塞的可能性。

2.2 使用CDN加速:通过使用CDN加速服务,将网站内容缓存到全球各地的CDN节点上,加速用户访问速度,减少网络拥塞。

2.3 使用智能加速器:部署智能加速器,对网络流量进行优化和加速,提高网络传输效率,减少网络拥塞。

三、限制网络流量3.1 流量控制:通过设置流量控制策略,对网络流量进行限制,避免网络拥塞的发生。

3.2 QoS策略:通过设置QoS策略,对网络中的不同流量进行优先级管理,保障重要流量的传输,减少网络拥塞。

3.3 数据压缩:对网络传输的数据进行压缩处理,减少传输数据量,提高网络传输效率,减少网络拥塞。

四、网络监控和管理4.1 实时监控网络流量:通过实时监控网络流量情况,及时发现网络拥塞问题,采取相应的措施进行处理。

4.2 预测网络流量:通过对历史数据进行分析和预测,提前预知网络流量的变化趋势,采取相应的措施避免网络拥塞。

4.3 网络设备管理:定期对网络设备进行维护和管理,保障网络设备的正常运行,减少网络拥塞的发生。

五、应用流量控制策略5.1 网络流量分析:对网络流量进行深入分析,了解网络流量的特点和规律,制定相应的流量控制策略。

5.2 避免网络攻击:加强网络安全防护,防止网络攻击导致的网络拥塞,保障网络正常运行。

07 网络层(拥塞和流控制)

07 网络层(拥塞和流控制)

HA
1)经过标准 的IP选路, 发往移动节 点的数据包 抵达归属网
FA
移动节点
4)移动节点发出 的数据包通过标 准的IP选路规程 发送到目的地 (FA为移动节点 的缺省Router)
IP主机
Copyright ChenBing Email:cb_china@ 南京航空航天大学网络研究室
Copyright ChenBing Email:cb_china@
南京航空航天大学网络研究室 15
通信量控制策略:漏桶算法
基本漏桶的原理
– 固定服务时间的单服务员 排队系统 – 主机与网络之间有一个带 漏桶的接口(有限内部队 列);一旦队列满,主机 再发出的分组将被丢弃; 接口每隔一个时钟节拍向 网络发送一个分组 – 适用于固定长度分组
传输层
• 子网内的虚电路与数据报 网络层 • 分组排队与服务策略 • 选路算法 数据链路层 • 重传策略 • 应答策略 • 分组丢弃策略 • 分组生命期管理 • 失序缓存策略 • 流控制策略
Copyright ChenBing Email:cb_china@
南京航空航天大学网络研究室 12

流控制 拥塞控制与流量控制的区别
– 作用范围不同,前者涉及全局,后者涉及点到点之间 – 拥塞控制确保全网畅通;而流量控制只负责源端---目的端 的点到点通信,确保发送速率 ≤ 接收速率

Copyright ChenBing Email:cb_china@
南京航空航天大学网络研究室
主机
分组 无规则的流
包含一个 漏桶的接口
装有分组的 漏桶
有规则的流
网络
Copyright ChenBing Email:cb_china@ 南京航空航天大学网络研究室 16

基于TCP Vegas拥塞控制算法的研究与改进

基于TCP Vegas拥塞控制算法的研究与改进

基 于 T P V g s 塞 控 制 算 法 的研 究 与 改进 C ea 拥
谢怡 宁 , 孙广路 , 苏 洁 , 翟继强
( 哈尔 滨理 工大学 计算机科学与技术学 院 , 黑龙江 哈尔滨 10 8 ) 5 0 0

要: 网络拥 塞 已经 成 为制 约 因特 网发展 的瓶 颈. 众 多 T P拥 塞 控 制 算 法 中,C ea 在 C T PV gs
I r v me ta d Re e r h O n e t n Co t l o e n n s a c f Co g s i n r mp o o Alo i m fT g r h o CP Ve a t gs
XI Y - ig, S N u n —u, SU m , Z A iqa g E inn U G a gl H IJ-in
第1 6卷
第 3期
哈 尔 滨 理 工 大 学 学 报
J OURNA L OF HAR N UN VERST C ENC BI I I Y OF S I E AND E T CHNOL Y OG
V0 . 6 No 3 11 .
2 1 年 6月 01

J n 0l u .2 1
表现 出比其他算法更为优越的性能 , 但是在特定环境下也存在不足. 本文通过对网络拥塞策略的研 究和 V gs 能 的分析 , 证 了 V gs ea 性 验 ea 整体 性 能优 于 R n eo的结 论 , 通 过 分析 V gs的特 点 , 对 并 ea 针 O和 口的值 对公 平性 的影 响 , 出 了一种 在 T PV gs与 T P R n t 提 C ea C e o共存 环境 下获得 良好 拥 塞控 制
行, 它通 过 动态调 整拥 塞 窗 口大小来 减缓 拥 塞 . 于 对

网络拥塞解决方案

网络拥塞解决方案

网络拥塞解决方案一、引言随着互联网的快速发展,网络已经成为人们日常生活和工作中不可或缺的一部分。

然而,由于网络用户数量的不断增加和数据传输量的急剧增长,网络拥塞问题也日益突出。

本文将详细介绍网络拥塞的概念、原因以及解决方案。

二、网络拥塞的概念网络拥塞是指网络中的流量超过网络链路容量或网络设备能够处理的能力,导致网络性能下降,延迟增加,甚至无法正常运行的现象。

网络拥塞可能发生在各种网络环境中,包括局域网、广域网以及互联网。

三、网络拥塞的原因1. 网络流量过大:随着互联网用户数量的不断增加,网络流量也呈现爆炸式增长。

当网络流量超过网络链路容量时,就会出现拥塞现象。

2. 网络设备性能不足:网络设备的处理能力有限,当网络流量超过设备的处理能力时,就会导致拥塞。

3. 网络故障:网络中的故障或故障设备也可能导致网络拥塞,例如路由器故障、链路中断等。

四、网络拥塞解决方案1. 增加带宽:增加网络链路的带宽是解决网络拥塞最直接有效的方法之一。

通过增加带宽,可以提高网络的传输能力,减少拥塞发生的可能性。

可以与网络服务提供商合作,升级网络连接速度,或者使用多个网络链路进行负载均衡,以降低网络拥塞的风险。

2. 流量控制和优化:使用流量控制和优化技术可以有效减少网络拥塞的发生。

例如,通过使用流量调度算法和流量控制策略,可以合理分配网络资源,避免某些用户或应用程序占用过多的带宽,从而减轻网络拥塞的程度。

3. 缓存和压缩技术:通过使用缓存和压缩技术,可以减少网络传输的数据量,从而减轻网络拥塞的压力。

例如,使用缓存服务器可以存储常用的网页或文件,减少对网络的访问请求;使用数据压缩算法可以减小数据包的大小,提高网络传输效率。

4. 网络监控和管理:建立网络监控和管理系统可以及时发现网络拥塞的迹象,并采取相应的措施进行调整。

通过监控网络流量、设备性能和链路状态,可以及时识别拥塞点,并进行优化配置,以提高网络的整体性能。

5. 网络升级和改造:对于长期存在网络拥塞问题的网络环境,可以考虑进行网络升级和改造。

网络中的拥塞避免控制模型的仿真分析

网络中的拥塞避免控制模型的仿真分析

KEYW ORDS: De l a y n e t wo r k; Co n g e s t i o n a v o i d a n c e c o n t r o l ; Da t a f e e d b a c k .
研究的热点课题 , 有着 良好 的发展前景 。
1 引言
第3 0 卷 第6 期
文章编号 : 1 0 0 6— 9 3 4 8 ( 2 0 1 3 ) 0 6—0 2 7 5— 0 4



ቤተ መጻሕፍቲ ባይዱ
仿

2 0 1 3 年6 月
网络 中的拥 塞避 免控 制模 型 的仿 真 分 析
蒋 波
( 西南 科技大 学 资产与实验室管理处 , 四川 绵 阳 6 2 1 0 1 0 )
J I ANG B o
( S o u t h w e s t U n i v e r s i t y o f S c i e n c e a n d T e c h n o l o g y A s s e t s a n d l a b o r a t o r y ma n a g e m e n t o f f i c e , Mi a n y a n g S i c h u a n 6 2 1 0 1 0 ,C h i n a )
r a me t e s r a n d c o mp u t e s d e l a y t h e b a n d wi d t h o f t h e n e t wo r k,S O a s t o p r o v i d e a c c u r a t e d a t a b a s e f o r t h e c o n g e s t i o n a — v o i d i n g c o n t r o l o f d e l a y n e t wo r k .I t e s t a b l i s h e d t h e we i g h t e d q u e u e c o n t r o l mo d e l a n d r e a l i z e t h e d e l a y o f n e t w o r k
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网络拥塞控制的分析与研究摘要随着互联网本身规模的迅速扩大、互联网用户数的剧增以及网络应用类型的快速增加,网络正经历越来越多的包丢失和其他的性能恶化问题,其中一个比较严重的现象就是网络拥塞。

网络拥塞导致的直接后果是整个网络的性能下降:包括分组丢失率增加、端到端延迟增大、网络吞吐量下降、甚至有可能使整个系统发生拥塞崩溃。

当网络处于拥塞崩溃状态时,微小的负载增量都将使网络的有效吞吐量急剧下降。

造成网络拥塞的原因很多,主要有:存储空间不足、带宽容量不足、处理器处理能力弱、TCP/PI 协议拥塞控制机制中的缺陷、用户的恶意攻击造成的网络拥塞以及网络系统的混沌、分叉等现象都会导致网络通讯的崩溃。

在目前的Internet中,既然网络拥塞是无法避免的,就必须采取积极主动的策略控制和避免拥塞,把拥塞发生的可能性降到最低,即使在发生拥塞后也能及时地恢复到正常运行状态;同时拥塞控制也必须保证网络效率。

因此,网络拥塞控制是网络系统改善性能和提高服务质量的主要手段,网络拥塞控制问题的研究具有重要的理论意义和应用价值。

本文主要从网络拥塞的概念解释、造成拥塞的原因、防止拥塞的方法、拥塞控制的常用算法、拥塞控制方面的研究热点以及网络拥塞控制未来的发展等多个方面对网络拥塞控制进行阐述。

第一章:绪论一、拥塞现象拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象。

这种现象跟公路网中经常所见的交通拥挤一样,当节假日公路网中车辆大量增加时,各种走向的车流相互干扰,使每辆车到达目的地的时间都相对增加(即延迟增加),甚至有时在某段公路上车辆因堵塞而无法开动(即发生局部死锁)。

1.与拥塞相关的名词解释网络的吞吐量与通信子网负荷(即通信子网中正在传输的分组数)有着密切的关系。

当通信子网负荷比较小时,网络的吞吐量(分组数/秒)随网络负荷(每个节点中分组的平均数)的增加而线性增加。

当网络负荷增加到某一值后网络吞吐量反而下降,则表征网络中出现了拥塞现象。

在一个出现拥塞现象的网络中,到达某个节点的分组将会遇到无缓冲区可用的情况,从而使这些分组不得不由前一节点重传,或者需要由源节点或源端系统重传。

当拥塞比较严重时,通信子网中相当多的传输能力和节点缓冲器都用于这种无谓的重传,从而使通信子网的有效吞吐量下降。

由此引起恶性循环,使通信子网的局部甚至全部处于死锁状态,最终导致网络有效吞吐量接近为零。

2.造成拥塞的原因分析造成网络拥塞的原因一般来说分为以下2种:a. 多条流入线路有分组到达,并需要同一输出线路,此时,如果路由器没有足够的内存来存放所有这些分组,那么有的分组就会丢失。

b. 路由器的慢带处理器的缘故,以至于难以完成必要的处理工作,如缓冲区排队、更新路由表等。

3.防止拥塞的常用方法由于拥塞可以发生在TCP/IP模型中的传输层、网络层和数据链路层三个层次,所以防止拥塞的方法在不同层次也具有不同的表现形式。

a. 在传输层可采用:重传策略、乱序缓存策略、确认策略、流控制策略和确定超时策略。

b. 在网络层可采用:子网内部的虚电路与数据报策略、分组排队和服务策略、分组丢弃策略、路由算法和分组生存管理。

c. 在数据链路层可采用:重传策略、乱序缓存策略、确认策略和流控制策略。

二:拥塞控制的方法常见的拥塞控制方法一般分为以下三种,主要是针对不同的网络环境而有所不同。

1.缓冲区预分配法该法用于虚电路分组交换网中。

在建立虚电路时,让呼叫请求分组途经的节点为虚电路预先分配一个或多个数据缓冲区。

若某个节点缓冲器已被占满,则呼叫请求分组另择路由,或者返回一个"忙"信号给呼叫者。

这样,通过途经的各节点为每条虚电路开设的永久性缓冲区(直到虚电路拆除),就总能有空间来接纳并转送经过的分组。

此时的分组交换跟电路交换很相似。

当节点收到一个分组并将它转发出去之后,该节点向发送节点返回一个确认信息。

该确认一方面表示接收节点已正确收到分组,另一方面告诉发送节点,该节点已空出缓冲区以备接收下一个分组。

上面是"停一等"协议下的情况,若节点之间的协议允许多个未处理的分组存在,则为了完全消除拥塞的可能性,每个节点要为每条虚电路保留等价于窗口大小数量的缓冲区。

这种方法不管有没有通信量,都有可观的资源(线路容量或存储空间)被某个连接占有,因此网络资源的有效利用率不高。

这种控制方法主要用于要求高带宽和低延迟的场合,例如传送数字化语音信息的虚电路。

2.分组丢弃法该法不必预先保留缓冲区,当缓冲区占满时,将到来的分组丢弃。

若通信子网提供的是数据报服务,则用分组丢弃法来防止拥塞发生不会引起大的影响。

但若通信子网提供的是虚电路服务,则必须在某处保存被丢弃分组的备份,以便拥塞解决后能重新传送。

有两种解决被丢弃分组重发的方法,一种是让发送被丢弃分组的节点超时,并重新发送分组直至分组被收到;另一种是让发送被丢弃分组的节点在尝试一定次数后放弃发送,并迫使数据源节点超时而重新开始发送。

但是不加分辨地随意丢弃分组也不妥,因为一个包含确认信息的分组可以释放节点的缓冲区,若因节点原空余缓冲区来接收含确认信息的分组,这便使节点缓冲区失去了一次释放的机会。

解决这个问题的方法可以为每条输入链路永久地保留一块缓冲区,以用于接纳并检测所有进入的分组,对于捎带确认信息的分组,在利用了所捎带的确认释放缓冲区后,再将该分组丢弃或将该捎带好消息的分组保存在刚空出的缓冲区中。

3.定额控制法这种方法在通信子网中设置适当数量的称做"许可证"的特殊信息,一部分许可证在通信子网开始工作前预先以某种策略分配给各个源节点,另一部分则在子网开始工作后在网中四处环游。

当源节点要发送来自源端系统的分组时,它必须首先拥有许可证,并且每发送一个分组注销一张许可证。

目的节点方则每收到一个分组并将其递交给目的端系统后,便生成一张许可证。

这样便可确保子网中分组数不会超过许可证的数量,从而防止了拥塞的发生。

第二章:拥塞控制的常用算法分析一:TCP拥塞控制典型算法分析目前在Internet上实际使用的拥塞控制基本上是建立在TCP窗口控制基础之上的,据统计,Internet上的95%的数据流使用的是TCP协议,因此TCP拥塞控制一直是网络拥塞控制研究的重点。

最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动(Slow start)”和“拥塞避免(Congestion avoidance)”组成,后来TCP Reno版本中又针对性的加入了“快速重传(Fast retransmit)”、“快速恢复(Fast Recovery)”算法,再后来在TCP NewReno中又对“快速恢复”算法进行了改进,近些年又出现了选择性应答(selective acknowledgement,SACK)算法,还有其他方面的大大小小的改进,成为网络研究的一个热点。

1.慢启动最初的TCP在连接建立成功后会向网络中发送大量的数据包,这样很容易导致网络中路由器缓存空间耗尽,从而发生拥塞。

因此新建立的连接不能够一开始就大量发送数据包,而只能根据网络情况逐步增加每次发送的数据量,以避免上述现象的发生。

具体来说,当新建连接时,cwnd初始化为1个最大报文段(MSS)大小,发送端开始按照拥塞窗口大小发送数据,每当有一个报文段被确认,cwnd就增加1个MSS大小。

这样cwnd的值就随着网络往返时间(Round Trip Time,RTT)呈指数级增长,事实上,慢启动的速度一点也不慢,只是它的起点比较低一点而已。

我们可以简单计算下:开始---> cwnd = 1经过1个RTT后---> cwnd = 2*1 = 2经过2个RTT后---> cwnd = 2*2= 4经过3个RTT后---> cwnd = 4*2 = 8如果带宽为W,那么经过RTT*log2W时间就可以占满带宽。

2.拥塞避免从慢启动可以看到,cwnd可以很快的增长上来,从而最大程度利用网络带宽资源,但是cwnd不能一直这样无限增长下去,一定需要某个限制。

TCP使用了一个叫慢启动门限(ssthresh)的变量,当cwnd超过该值后,慢启动过程结束,进入拥塞避免阶段。

对于大多数TCP实现来说,ssthresh的值是65536(同样以字节计算)。

拥塞避免的主要思想是加法增大,也就是cwnd的值不再指数级往上升,开始加法增加。

此时当窗口中所有的报文段都被确认时,cwnd的大小加1,cwnd的值就随着RTT开始线性增加,这样就可以避免增长过快导致网络拥塞,慢慢的增加调整到网络的最佳值。

3.快速重传TCP认为网络拥塞的主要依据是它重传了一个报文段。

TCP对每一个报文段都有一个定时器,称为重传定时器(RTO),当RTO超时且还没有得到数据确认,那么TCP就会对该报文段进行重传,当发生超时时,那么出现拥塞的可能性就很大,某个报文段可能在网络中某处丢失,并且后续的报文段也没有了消息,在这种情况下,TCP反应比较“强烈”:a. 把ssthresh降低为cwnd值的一半。

b. 把cwnd重新设置为1 。

c. 重新进入慢启动过程。

从整体上来讲,TCP拥塞控制窗口变化的原则是AIMD原则,即加法增大、乘法减小。

可以看出TCP的该原则可以较好地保证流之间的公平性,因为一旦出现丢包,那么立即减半退避,可以给其他新建的流留有足够的空间,从而保证整个的公平性。

4.快速恢复“快速恢复”算法是在上述的“快速重传”算法后添加的,当收到3个重复ACK时,TCP 最后进入的不是拥塞避免阶段,而是快速恢复阶段。

快速重传和快速恢复算法一般同时使用。

快速恢复的思想是“数据包守恒”原则,即同一个时刻在网络中的数据包数量是恒定的,只有当“老”数据包离开了网络后,才能向网络中发送一个“新”的数据包,如果发送方收到一个重复的ACK,那么根据TCP的ACK机制就表明有一个数据包离开了网络,于是cwnd加1。

如果能够严格按照该原则那么网络中很少会发生拥塞,事实上拥塞控制的目的也就在修正违反该原则的地方。

具体来说快速恢复的主要步骤是:a. 当收到3个重复ACK时,把ssthresh设置为cwnd的一半,把cwnd设置为ssthresh的值加3,然后重传丢失的报文段,加3的原因是因为收到3个重复的ACK,表明有3个“老”的数据包离开了网络。

b. 再收到重复的ACK时,拥塞窗口增加1。

c. 当收到新的数据包的ACK时,把cwnd设置为第一步中的ssthresh的值。

原因是因为该ACK确认了新的数据,说明从重复ACK时的数据都已收到,该恢复过程已经结束,可以回到恢复之前的状态了,也即再次进入拥塞避免状态。

相关文档
最新文档