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

合集下载

GoogleWebRTC网络拥塞控制策略的研究(2)

GoogleWebRTC网络拥塞控制策略的研究(2)

GoogleWebRTC网络拥塞控制策略的研究(2)摘要:伴随着近几年人们对网络视频,语音通讯需求的极大增长,国内网络带宽提速的脚步依然很慢。

从而使得网路拥塞的现象更加严重。

在本文中,作者阐述了当前tcp拥塞控制的典型算法,着重针对 google webrtc技术中的拥塞解决方案进行分析和研究,达到了理论与实际相互结合的目的。

关键词:拥塞控制;google webrtc;带宽测量中图分类号:tp393.40 引言随着计算机技术,特别是流媒体技术的迅速发展,流式传输在网络业务中所占的比例迅速攀升,internet从单一的数据传输网络逐步演化成承载数据、语音、视频等多媒体信息的综合业务传输网络。

internet所提供的服务类型,不再局限于简单的信息浏览、e-mail. ftp和telnet等,诸如视频点播、音视频会议、远程教学、实时图文信息发布、交互式虚拟现实等新的应用纷纷涌现出来。

这些多媒体应用极大地丰富了internet的应用场合,给社会各行业,特别是教育、医疗、娱乐和商务等提供了巨大的发展机遇和挑战,提高了工作效率,方便了人们的工作、生活和学习。

同时,国内互联网带宽提速一直进展缓慢,从而对互联网进一步发展受到限制。

谷歌公司于2010年通过收购global ip solutions 公司获取了webrtc这项技术。

该技术通过浏览器提供简单的javascript 就可以达到实时通讯的目的,提供音视频的采集、编解码、网络传输和显示等功能,支持跨平台运行: windows,linux,mac 和android,甚至可以在电视机上运行。

这项技术使得我们在没有skype、google talk和qq等即时通讯工具的情况下,通过浏览器和internet连接,我们就可以直接语音和视频聊天。

总之,对现有网络业务模式将产生巨大的改变。

本文通过对webrtc实时通讯模块关于网络拥塞控制的研究,并与现行tpc拥塞控制算法相结合,从而对webrtc的拥塞控制算法得到更深层的认识。

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拥塞控制

TCP拥塞控制

计算机网络
往返时延RTT优化
往返时间RTT
往返时间:
往返时间(RTT)是指从数据段发送开始,到接 收到该数据段对应应答所经历的时间,主要由链路传播时 间、端系统处理时间和路由器排队/处理时间组成。 对同一个TCP连接,链路传播时间、端系统处理 时间相对固定,因此,网络拥塞情况可通过路由器排队/ 处理时间的变化而推断。
其中: pi为第i条路径的丢包率, RTTi为第i条路径的往返时延, b为每个ACK应答的分组数, pktsize为分组的大小, n为路径的总数。
基于MFD的多路径算法
可见, 要在给定的网络条件下提高端到端吞吐率, 必须减小往返时延RTTi。路径的往返时延是正向路径时延 以及反向路径时延之和。 第i条路径对应的正向路径时延为fi, 反向路径时延 为ri.不失一般性,假设ri≤ri +1(1≤i≤n)。如果采取MTCP算法, 则RTTi =fi+ri。 为了提高吞吐率,可以采用最小反馈时延MFD的多径 传输协议, 即选取时延最小的反向路径来传输应答分组。 MFD可以减少各条路径的往返时延 RTT‘i=fi+r1<fi+ri=RTTi ,从而提高端到端的吞吐率, 降低拥塞。
Freeze-TCP
Freeze-TCP用于解决主机移动所引起的丢包. 主要思想: 让移动主机监测无线信号的能量,并检测出即将发生 的主机切换事件.当切换即将发生时,移动主机向发送者 发送一个通告窗口为零的反馈,从而迫使发送者进入零窗 口探测模式. 在零窗口探测模式中,发送者不会改变它的拥塞窗口 和超时计时器的时长.
RTT分析
在无线环境下,忽略链路传播时延的前提下,在误码 丢包的作用下,RTT呈现无规律变化,且有趋小趋势. 因此,在无线环境下,考察RTT的变化区分误码丢 包与拥塞丢包进行发送速率的调整是可行的:在RTT变 小时,说明网络拥塞丢包风险小,拥塞窗口向下调整幅度 应较小;在RTT变大时,说明网络拥塞丢包风险大,拥 塞窗口向下调整幅度应较大,是符合无线网络实际情况的。

网络系统拥塞控制分析

网络系统拥塞控制分析

1 网络拥塞的基本概 念
当网络中存在过多的数据包 时, 网络的性能就
的高吞吐量、 低延迟状态 , 避免进入拥塞; 后者是一种
“ 恢复” 措施, 使网络从拥塞中恢复过来, 进入正常的运 行状态. 数据包交换( akt wt e ) pce sihd 网络 : c 与电路交换 (i u ihd 网络相比, c cis t e ) r tw c 由于包交换 网络对资源
V l1 N . 0, 5 o2
Ap . 0 6 r2 0
网络 系统 拥 塞控 制分 析 ‘
王 杰
( 云南民族大学 物理与电子电气信息工程学院, 云南 昆明 603 ) 50 1
摘 要 互联 网采用 的是无连接 的端到端数据包交换 , 随着互联 网用户数量 的膨 胀 , 网络 的拥塞 问题也越来越 严重. 现
会下降 , 这种现象称 为拥塞. 在网络发生拥塞时, 会 导致吞吐量下降 , 严重 时会发生“ 拥塞崩 溃” cn (o-
gso lpe 现象. e i c as) tn o 对于拥塞现象, 当网络负载较小时, 吞吐量基本上 随着负载的增长而增长, 呈线性关系, 响应时间增长缓
的利用是基于统计复用 (t scl u iei ) , s tta m l l n 的 a i t xg i p 因此提高了资源的利用效率. 但在基于统计复用的
网络的设计 , 网络的中间节点上无需保 留和连接有
关的状态信息.

收稿 日期 :o5一l 一 6 20 l 2
维普资讯
第1 5卷
第 2期
20 0 6年 4月
云南民族 大学学报( 自然科学版 ) Ju a fY n a  ̄ oa fsU ie i ( a r c ne dt n or lo u nn N inl e nvmt N t a Si csE io ) n i i y ul e i

拥塞控制原理

拥塞控制原理

拥塞控制原理
拥塞控制是一种网络流量控制的机制,通过调整数据流的发送速率和接收速率,以防止网络拥塞的发生。

拥塞控制的原理可以总结为以下几个方面:
1. 基于反馈的控制:拥塞控制的基本原理是依靠网络反馈信息来监测网络状态并做出相应的调整。

发送方从接收方接收到的ACK信号和RTT(Round Trip Time)信息来判断网络的拥塞程度,然后根据这些信息动态调整发送速率。

2. 慢启动与拥塞避免:拥塞控制最初使用的是慢启动算法,即发送方初始以较低的速率发送数据,然后根据网络反馈信息逐渐增加发送速率,直到网络发生拥塞为止。

一旦发生拥塞,发送方会根据相应的拥塞避免算法进行速率的调整,以避免进一步的拥塞。

3. 拥塞信号:当网络发生拥塞时,路由器或其他网络设备会发送拥塞信号给发送方,告知网络的状态。

这些拥塞信号包括丢包、延时增加等。

发送方根据接收到的拥塞信号做出相应的调整,如减小发送速率或进行重新路由。

4. 基于窗口的流量控制:拥塞控制还可以通过窗口大小的调整来控制数据流量。

发送方根据网络反馈信息动态调整发送窗口的大小,以适应网络的拥塞程度。

较小的窗口可以减少网络中的数据量,以降低拥塞的可能性,而较大的窗口可以提高数据的传输效率。

通过以上原理和机制,拥塞控制可以有效地控制网络的流量,防止网络拥塞的发生,并提高网络的吞吐量和稳定性。

流量控制和拥塞控制

流量控制和拥塞控制

(2)拥塞控制 拥塞控制的目的是将网络内(或网络的部分区域内) 的报文分组数目保持在某一量值之下,超过这一量值, 分组的平均排队时延将急剧增大。因为一个分组交换网 络实质上是一个排队网络,每个节点的输出链路端口都 配置了一个排队队列,如果分组到达的速度超过或等于 分组发送的速度,那么队列就会无限制地增长,致使分 组平均传输时延趋于无穷大;如果进入网络的分组数目 继续增加,那么节点缓冲器就会占满溢出,造成一些分 组丢失。丢失分组的后果是发端重发,而重发实际上又 增大了网络内流通的业务量,最终可能使所有节点缓冲 器都被占满,所有通路完全被阻塞,系统的吞吐率趋于 0。
(3)死锁防止 网络拥塞到一定程度时,就会发生死锁现象。死锁发生的条件是:处于同一个封闭环路 上的所有节点,其相关链路缓冲器都被积压的报文分组占满,从而失去了该节点所担负的 存储转发能力。即使在网络轻负荷的情况下,也可能出现死锁的现象。死锁防止技术旨在 通过合理地设计网络,来使之免于发生死锁现象。
图7-1 锁死现象
网络数据流的控制技术分类
网络数据流的控制技术可以分为三类:流量控制、拥塞控制和死锁防止。 它们有不同的目的和实施对象,而且各自在不同的范围与层次上实现。
(1)流量控制 流量控制是对网络上的两个节点之间的数据流量施加限 制,它的主要目的是控制链路上的平均数据传输速率, 以适应接收端本身的承载能力,以免过载。流量控制包 括路径两端的端到端流量控制与链路两端的点到点流量 控制。在不断发展的互联网环境中,高速节点与低速节 点并存,这就需要通过流量控制来减少或避免分组的丢 失及存储器的溢出,从而避免拥塞
第7章
流量控制和拥塞 控制
CONTENTS
目录
0 流量和拥塞控制概论
1
流量和拥塞控制技术

深入理解TCP协议及其源代码-拥塞控制算法分析

深入理解TCP协议及其源代码-拥塞控制算法分析

深⼊理解TCP协议及其源代码-拥塞控制算法分析这是我的第五篇博客,鉴于前⾯已经有很多⼈对前四个题⽬如三次握⼿等做了很透彻的分析,本博客将对拥塞控制算法做⼀个介绍。

⾸先我会简要介绍下TCP协议,其次给出拥塞控制介绍和源代码分析,最后结合源代码具体分析拥塞控制算法。

⼀、TCP协议1.TCP协议产⽣背景:互联⽹络与单个⽹络有很⼤的不同,因为互联⽹络的不同部分可能有截然不同的拓扑结构、带宽、延迟、数据包⼤⼩和其他参数,且不同主机的应⽤层之间经常需要可靠的、像管道⼀样的连接,但是IP层不提供这样的流机制,⽽是提供不可靠的包交换。

2.TCP是能够动态地适应互联⽹络的这些特性,⽽且具备⾯对各种故障时的健壮性,且能够在不可靠的互联⽹络上提供可靠的端到端字节流⽽专门设计的⼀个传输协议。

3.TCP作⽤原理过程:应⽤层向TCP层发送⽤于⽹间传输的、⽤8位字节表⽰的数据流,然后TCP把数据流分区成适当长度的报⽂段(通常受该计算机连接的⽹络的数据链路层的最⼤传输单元(MTU)的限制)。

之后TCP把结果包传给IP层,由它来通过⽹络将包传送给接收端实体的TCP层。

TCP为了保证不发⽣丢包,就给每个包⼀个序号,同时序号也保证了传送到接收端实体的包的按序接收。

然后接收端实体对已成功收到的包发回⼀个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进⾏重传。

TCP⽤⼀个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

4.TCP协议作⽤过程的7个要点:数据分⽚、到达确认、超时重发、滑动窗⼝、失序处理、重复处理、数据校验(具体可参见百度百科对TCP的解释)5.TCP⾸部格式图:⼏个重要参数解释如下:紧急 URG —— 当 URG =1 时,表明紧急指针字段有效。

它告诉系统此报⽂段中有紧急数据,应尽快传送(相当于⾼优先级的数据)。

确认 ACK —— 只有当 ACK = 1 时确认号字段才有效。

一种网络拥塞控制算法的研究

一种网络拥塞控制算法的研究

的用户和应 用都在快速 的增 长, 如果不在互联 网中使 用拥塞控制 算法 , 拥塞崩溃 的发生会严 重降低 网络 的性 能。在互联 网中使 用有 效的拥塞控制 算法成为一个很 有研 究价值 的重要课 题 。在 比较 了现 有的拥 塞控制 算 法及其优缺点 , 对 F ED算法提 出了一种改进后 的 F E 针 R R D算法、 对算法进 行 了抓 包实验 , 并且从服务质 量及
2 08 年 9 月 0
太 原 大 学 学 报
Ju a f iu nUnv ri o r l y a iest n o Ta y Vo. No. u 19 3 S mNo 3 .5
第 9卷 第 3期 总 第 3 5期
文章 编 号 :6 1 9 7 2 0 ) 3 1 1 6 1 7 —5 7 ( 0 8 0 —0 0 —0
止 , 塞 问题 还 没有得 到很 好 的解决 。 拥
非 适应 流 : 不能 够 对 拥 塞通 知作 出反 应 的数
据。
拥 塞控制 算 法 可 以分 为 两个 主要 部 分 : 源算 备 中执 行 , 用 是 根 据 反 馈 信 息 调 整 发 送 速 率 。 作
强 壮 ( b s) : 够 对 拥 塞 通 知作 出 反应 Ro ut 流 能
i f w =cn ( )h s osa be f l i o n P a tt t l o n ea
qe i ln =0;
srk i 0: ti e =
qee ngmetAQ 算法 方 面 。包括 R D、 uu ae n, M) ma E FE R D和 S E F F R D、IO等 算法 l.。 3 4 J
i a gQ > = ma —h ma q= 2 f(v — xt ) x ;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

2015级 软件工程 高家祺 2

摘要 随着互联网本身规模的迅速扩大、互联网用户数的剧增以及网络应用类型的快速增加,网络正经历越来越多的包丢失和其他的性能恶化问题,其中一个比较严重的现象就是网络拥塞。网络拥塞导致的直接后果是整个网络的性能下降:包括分组丢失率增加、端到端延迟增大、网络吞吐量下降、甚至有可能使整个系统发生拥塞崩溃。 当网络处于拥塞崩溃状态时,微小的负载增量都将使网络的有效吞吐量急剧下降。造成网络拥塞的原因很多,主要有:存储空间不足、带宽容量不足、处理器处理能力弱、TCP/PI协议拥塞控制机制中的缺陷、用户的恶意攻击造成的网络拥塞以及网络系统的混沌、分叉等现象都会导致网络通讯的崩溃。 在目前的Internet中,既然网络拥塞是无法避免的,就必须采取积极主动的策略控制和避免拥塞,把拥塞发生的可能性降到最低,即使在发生拥塞后也能及时地恢复到正常运行状态;同时拥塞控制也必须保证网络效率。因此,网络拥塞控制是网络系统改善性能和提高服务质量的主要手段,网络拥塞控制问题的研究具有重要的理论意义和应用价值。 本文主要从网络拥塞的概念解释、造成拥塞的原因、防止拥塞的方法、拥塞控制的常用算法、拥塞控制方面的研究热点以及网络拥塞控制未来的发展等多个方面对网络拥塞控制进行阐述。 3

第一章:拥塞现象介绍 一、拥塞现象 拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象。这种现象跟公路网中经常所见的交通拥挤一样,当节假日公路网中车辆大量增加时,各种走向的车流相互干扰,使每辆车到达目的地的时间都相对增加(即延迟增加),甚至有时在某段公路上车辆因堵塞而无法开动(即发生局部死锁)。 1. 与拥塞相关的名词解释 网络的吞吐量与通信子网负荷(即通信子网中正在传输的分组数)有着密切的关系。当通信子网负荷比较小时,网络的吞吐量(分组数/秒)随网络负荷(每个节点中分组的平均数)的增加而线性增加。当网络负荷增加到某一值后网络吞吐量反而下降,则表征网络中出现了拥塞现象。在一个出现拥塞现象的网络中,到达某个节点的分组将会遇到无缓冲区可用的情况,从而使这些分组不得不由前一节点重传,或者需要由源节点或源端系统重传。当拥塞比较严重时,通信子网中相当多的传输能力和节点缓冲器都用于这种无谓的重传,从而使通信子网的有效吞吐量下降。由此引起恶性循环,使通信子网的局部甚至全部处于死锁状态,最终导致网络有效吞吐量接近为零。 2. 造成拥塞的原因分析 造成网络拥塞的原因一般来说分为以下2种:a. 多条流入线路有分组到达,并需要同一输出线路,此时,如果路由器没有足够的内存来存放所有这些分组,那么有的分组就会丢失。b. 路由器的慢带处理器的缘故,以至于难以完成必要的处理工作,如缓冲区排队、更新路由表等。 3. 防止拥塞的常用方法 由于拥塞可以发生在TCP/IP模型中的传输层、网络层和数据链路层三个层次,所以防止拥塞的方法在不同层次也具有不同的表现形式。a. 在传输层可采用:重传策略、乱序缓存策略、确认策略、流控制策略和确定超时策略。b. 在网络层可采用:子网内部的虚电路与数据报策略、分组排队和服务策略、分组丢弃策略、路由算法和分组生存管理。c. 在数据链路层可采用:重传策略、乱序缓存策略、确认策略和流控制策略。

二、拥塞控制的方法 常见的拥塞控制方法一般分为以下三种,主要是针对不同的网络环境而有所不同。 1. 缓冲区预分配法 该法用于虚电路分组交换网中。在建立虚电路时,让呼叫请求分组途经的节点为虚电路预先分配一个或多个数据缓冲区。若某个节点缓冲器已被占满,则呼叫请求分组另择路由,或者返回一个"忙"信号给呼叫者。这样,通过途经的各节点为每条虚电路开设的永久性缓冲区(直到虚电路拆除),就总能有空间来接纳并转送经过的分组。此时的分组交换跟电路交换很相似。当节点收到一个分组并将它转发出去之后,该节点向发送节点返回一个确认信息。该确认一方面表示接收节点已正确收到分组,另一方面告诉发送节点,该节点已空出缓冲区以备接收下一个分组。上面是"停一等"协议下的情况,若节点之间的协议允许多个未处理的分组存在,则为了完全消除拥塞的可能性,每个节点要为每条虚电路保留等价于窗口大小数量的缓冲区。这种方法不管有没有通信量,都有可观的资源(线路容量或存储空间)被某个连4

接占有,因此网络资源的有效利用率不高。这种控制方法主要用于要求高带宽和低延迟的场合,例如传送数字化语音信息的虚电路。 2. 分组丢弃法 该法不必预先保留缓冲区,当缓冲区占满时,将到来的分组丢弃。若通信子网提供的是数据报服务,则用分组丢弃法来防止拥塞发生不会引起大的影响。但若通信子网提供的是虚电路服务,则必须在某处保存被丢弃分组的备份,以便拥塞解决后能重新传送。有两种解决被丢弃分组重发的方法,一种是让发送被丢弃分组的节点超时,并重新发送分组直至分组被收到;另一种是让发送被丢弃分组的节点在尝试一定次数后放弃发送,并迫使数据源节点超时而重新开始发送。但是不加分辨地随意丢弃分组也不妥,因为一个包含确认信息的分组可以释放节点的缓冲区,若因节点原空余缓冲区来接收含确认信息的分组,这便使节点缓冲区失去了一次释放的机会。解决这个问题的方法可以为每条输入链路永久地保留一块缓冲区,以用于接纳并检测所有进入的分组,对于捎带确认信息的分组,在利用了所捎带的确认释放缓冲区后,再将该分组丢弃或将该捎带好消息的分组保存在刚空出的缓冲区中。 3. 定额控制法 这种方法在通信子网中设置适当数量的称做"许可证"的特殊信息,一部分许可证在通信子网开始工作前预先以某种策略分配给各个源节点,另一部分则在子网开始工作后在网中四处环游。当源节点要发送来自源端系统的分组时,它必须首先拥有许可证,并且每发送一个分组注销一张许可证。目的节点方则每收到一个分组并将其递交给目的端系统后,便生成一张许可证。这样便可确保子网中分组数不会超过许可证的数量,从而防止了拥塞的发生。 5

第二章:拥塞控制的常用算法分析 一、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的该原则可以较好地保证流之间的公平性,因为一旦出现丢包,那么立即减半退

相关文档
最新文档