拥塞控制技术

2024-06-22

拥塞控制技术(精选7篇)

拥塞控制技术 篇1

摘要:网络拥塞是当今网络中一个比较突出和严重的问题, 拥塞控制便显得很重要。本文对出现拥塞的原因进行了深入分析, 并说明了解决拥塞问题的几种方法, 对各个方法进行了进一步的分析和说明, 最后阐述了解决拥塞问题的意义。

关键词:网络拥塞,拥塞控制,技术分析

拥塞, 指的是当通信子网中有太多的分组时, 网络性能降低的一种情况。拥塞的本质是:对资源的需求大于可用资源。拥塞的出现表示荷载超过了资源的承受能力。拥塞是一种持续过载的网络状态, 此时用户对网络资源 (包括链路带宽、存储空间和处理器处理能力等) 的需求超过了固有的容量。就Internet的体系结构而言, 拥塞的发生是其固有的属性。因为在事先没有任何协商和请求许可机制的资源共享网络中, 几个IP分组同时到达路由器, 并期望经同一个输出端口转发的可能性是存在的, 显然, 不是所有分组可以同时接受处理, 必须有一个服务顺序, 中间节点上的缓存为等候服务的分组提供一定保护。然而, 如果此状况具有一定的持续性, 当缓存空间被耗尽时, 路由器只有丢弃分组。在这种持续过载的状态下, 网络性能会急剧下降。

1 出现拥塞的原因

拥塞产生的原因有很多, 其主要原因是通信量往往是突发的。还有就是多个输入对应一个输出;慢速处理器;低带宽线路。引起网络拥塞的原因还是由网络各部分的速率、带宽、容量、分组数量等不匹配所造成的。拥塞产生与以下因素有关:1) 网络带宽不足;2) 存储空间不够;3) 处理器处理能力弱。但单一的增加带宽, 扩大存储空间和提高处理能力, 并不能解决拥塞问题相反可能会出现更严重的拥塞, 所以在网络中要进行必要的拥塞控制。根据拥塞控制在网络层中的位置, 将拥塞控制分为两类, 一类是基于源端的TCP拥塞控制;另一类是基于网络IP拥塞控制 (主要在路由器中) 。随着如图像, 语音等多媒体流的大量涌现, 基于源端的TCP拥塞控制已显得力不从心, 那么网络本身也有必要参与到拥塞控制中来。因此, 近年来将基于源端的TCP拥塞控制和基于网络的拥塞避免机制结合起来成为解决拥塞的主要途径之一。

拥塞常常使问题趋于恶化。如果一个路由器没有足够的缓冲区, 它就会丢失一些新到的分组, 但当分组被丢弃时, 发送这一分组的相邻路由起就会重新发这一分组, 可能还要重发多次。发送端在未收到确认之前必须保留所发分组的副本以便重发。可见在接收端发生的拥塞会引发发送端缓冲区的拥塞。从用户需求的角度来说, 网络必须为所有用户的请求提供服务, 然而用户的需求在传输起始时间、需求速率、持续时间上变化很大, 在很多情况下还是突发的。从网络提供资源的角度来说, 任何网络物理资源都有固定的上限能力。因此, 用有限的资源去适应波动很大的用户需求, 一定会出现网络资源不能满足用户的需求的时候, 此时就必须使用拥塞控制来管理用户流量对瓶颈资源的共享。网络中的拥塞来源于网络资源和网络流量分布的不均衡性。拥塞不会随着网络处理能力的提高而消除。拥塞控制算法的分布性、网络的复杂性和对拥塞控制算法的性能要求又使拥塞控制算法的设计具有很高的难度。

其解决的办法有:针对某个因素的解决方案, 只能对提高网络性能起到一点点好处, 甚至可能仅仅是转移了影响性能的瓶颈;需要全面考虑各个因素。显然的两种克服方法:增加资源和降低负荷。管理 (尽可能避免) 拥塞的方法:主机能以一个恒定的速率发送信息;通信量整形 (强迫分组以某种更有预见性的速率传送) 。网络拥塞 (Congestion) 指的是在包交换网络中由于传送的包数目太多, 而存贮转发节点的资源有限而造成网络传输性能下降的情况。拥塞的一种极端情况是死锁 (Deadlock) , 退出死锁往往需要网络复位操作。

2 拥塞控制方法

2.1 缓冲区预分配法

该法用于虚电路分组交换网中。在建立虚电路时, 让呼叫请求分组途经的节点为虚电路预先分配一个或多个数据缓冲区。若某个节点缓冲器已被占满, 则呼叫请求分组另择路由, 或者返回一个“忙”信号给呼叫者。这样, 通过途经的各节点为每条虚电路开设的永久性缓冲区 (直到虚电路拆除) , 就总能有空间来接纳并转送经过的分组。此时的分组交换跟电路交换很相似。当节点收到一个分组并将它转发出去之后, 该节点向发送节点返回一个确认信息。这种控制方法主要用于要求高带宽和低延迟的场合, 例如传送数字化语音信息的虚电路。

2.2 分组丢弃法

该法不必预先保留缓冲区, 当缓冲区占满时, 将到来的分组丢弃。若通信子网提供的是数据报服务, 则用分组丢弃法来防止拥塞发生不会引起大的影响。但若通信子网提供的是虚电路服务, 则必须在某处保存被丢弃分组的备份, 以便拥塞解决后能重新传送。有两种解决被丢弃分组重发的方法, 一种是让发送被丢弃分组的节点超时, 并重新发送分组直至分组被收到;另一种是让发送被丢弃分组的节点在尝试一定次数后放弃发送, 并迫使数据源节点超时而重新开始发送。

2.3 定额控制法

这种方法在通信子网中设置适当数量的称做“许可证”的特殊信息, 一部分许可证在通信子网开始工作前预先以某种策略分配给各个源节点, 另一部分则在子网开始工作后在网中四处环游。当源节点要发送来自源端系统的分组时, 它必须首先拥有许可证, 并且每发送一个分组注销一张许可证。目的节点方则每收到一个分组并将其递交给目的端系统后, 便生成一张许可证。这样便可确保子网中分组数不会超过许可证的数量, 从而防止了拥塞的发生。

由于计算机网络是一个很复杂的系统, 因此, 可以从控制理论的角度来看拥塞控制问题。这样, 从大的方面看, 可以分为开环控制和闭环控制两种方法。开环控制方法就是在设计网络时事先将有关发生拥塞的因素考虑周到, 力求网络在工作时不产生拥塞。一旦整个系统运行起来, 就不再中途进行改正了。闭环控制是基于反馈环路的概念。

3 拥塞控制的意义

解决拥塞问题也有利于流量问题的解决。因为某些拥塞控制算法是向发送端发送控制报文, 并告诉发送端网络已出现拥塞, 必须放慢发送速率, 这点又和流量控制是很相似的。解决拥塞控制需要付出一定的代价。首先需要获得网络内部流量分布的信息, 在实施拥塞控制时, 还需要在结点之间交换信息和各种命令以便选择控制策略和实施控制。这样就产生了额外开销。拥塞控制有时需要将一些资源 (如缓冲器、带宽等) 分配给个别用户 (或一类用户) 单独使用, 这样就使得网络资源不能更好地实现共享。显然, 在设计拥塞控制策略时, 必须全面衡量得失。

下图是网络负载与吞吐量对拥塞的影响。图中的横坐标是网络负载, 代表单位时间内输入给网络的分组数目 (也称为输入负载) 。纵坐标是吞吐量, 代表单位时间内从网络输出的分组数目。具有理想拥塞控制的网络, 在吞吐量饱和之前, 网络吞吐量应等于网络负载, 故吞吐量曲线是45°斜线。但当网络负载超过某一限度时, 由于网络资源受限, 吞吐量不再增长而保持为水平线, 即吞吐量达到饱和。这就表明网络负载中有一部分损失掉了 (例如, 输入到网络的某些分组被某个结点丢弃了) 。虽然如此, 在这种理想的拥塞控制作用下, 网络的吞吐量仍然维持在其所能达到的最大值。

但是, 实际网络的情况不是这样。从上图可以看出, 随着网络负载的增大, 网络吞吐量的增长速率逐渐减小。当网络的吞吐量明显地小于理想的吞吐量时, 网络就进入了轻度拥塞的状态。更值得注意的是, 当网络的负载达到某一数值时, 网络的吞吐量反而随着负载的增大而下降, 这时网络就进入了拥塞状态。当网络负载继续增大到某一数值时, 网络的吞吐量就下降到零, 这时网络已无法工作, 出现所谓的死锁 (DeadLock) 。

加上合适的拥塞控制后, 网络就不易出现拥塞现象和死锁。即当网络负载较小时, 有拥塞控制的吞吐量反而比无拥塞控制时要小。在分组交换网络中, 网络性能恶化有时是由于网络资源白白地被浪费所造成的。最常被浪费的网络资源是通信信道容量和结点的存储空间。随着互联网的飞速发展, 其鲁棒性也越来越依赖于网络的拥塞控制, 单一的TCP拥塞控制机制尽管在网络的正常运行中发挥重要的作用, 但随着业务的膨胀和新应用的增加, 它已经不能胜任所有的拥塞控制任务, 必须采用多种策略, 从网络的各个部位、多角度全方位对拥塞加以控制, 才能保证网络正常、稳定地运行。

参考文献

[1]张璟, 等.计算机网络.西安:西安电子科技大学出版社, 2007.

[2]顾尚杰, 等.计算机通信基础.北京:电子工业出版社, 2004.

[3]王宝会, 等.计算机信息安全教程.北京:电子工业出版社, 2007.

无线传感器网络拥塞控制技术分析 篇2

无线传感器网络 (Wireless Sensor Network) 综合了传感器技术、嵌入式技术、分布信息处理技术、通信和计算机技术等, 近年来对无线传感器网络的拥塞控制研究日益受到国内外学界的关注。

由于传感器节点的大规模密集部署、多跳的多对一的通信方式、无线链路质量和拓扑结构的动态变化, 以及突发事件导致的流量突发、外界对无线链路的干扰使得局部的吞吐量降低、网络部署或设计不当使得网络中存在通信瓶颈节点等原因, 引起无线传感器网络局部或大范围的拥塞, 甚至导致全局拥塞直至拥塞崩溃。

二、研究现状

1、拥塞检测研究现状

目前采用以下四种方法进行检测: (1) 基于缓冲区占有情况的拥塞检测; (2) 基于拥塞度的拥塞检测。 (3) 基于信道负载的拥塞检测。 (4) 基于缓冲区和信道结合的拥塞检测。

2、拥塞通告技术研究现状

目前采用以下两种方式进行拥塞状态的通告: (1) 显示拥塞通告方式。 (2) 隐式拥塞通告方式。

3、拥塞控制的研究现状近年来, 国内外学者针对无线传感器网络的特点提出了速率控制、多路分流、虚拟网关流量调度、传输调度、分组丢弃、网内聚合处理和主动队列管理等多种拥塞控制的方法。

三、拥塞避免

如果在数据传输过程中采取合适的传输策略, 则能够在一定限度上避免拥塞, 如何能够设计出尽量减少拥塞的控制算法一直是相关人员研究的重要方向。

基于速率分配的拥塞避免通过严格规定每个传输节点的传输速度, 从而使得单个节点以及整个网络的传输都不会超过规定的吞吐量, 网络工作在从不拥塞的状态下。这种速率分配机制通常用于路径变化较小、相对稳定的传输当中。而实际的传感器网络中存在各种干扰因素很难保证这种稳定。

基于缓存通告的拥塞避免机制在节点发送数据的时候检测其下游接收节点的缓存容量, 如果缓存不足则停止发送数据, 这种机制需要MAC协议支持, 由于传感器网络存在隐终端问题, 可能造成缓存过时。有人经过实验研究得出了检测1/6缓存的策略可以较好地解决这一问题。

基于信道公平性的拥塞避免策略基于某种机制对于节点传输数据所占用的信道带宽进行分配, 尽量使得高优先级或者信息量大的数据传输占用更多的带宽。有人提出了一种公平性控制模型CFRC, 使用感知面积的信息量计算方法, 并提出了一种干扰源感知的带宽分配方法。

四、拥塞解除

在传感器网络的实际应用中, 由于链路状态、突发性事件等各种原因, 在大多数情况下, 避免发生拥塞是不现实的。而在检测到拥塞之后如何进行拥塞通告和拥塞解除一直是研究的重中之重。

拥塞通告有两种形式:显示和隐式, 显示通告通过专用的拥塞控制信息通告相关节点;隐式通告将拥塞信息放到正常的数据分组中稍带传送, 这样会降低传送的代价。

五、问题与研发方向

由于无线传感器网络存在能量受限、高延迟、网络拓扑动态变化和无线网络易受干扰、高丢包率等问题, 在传感器网络拥塞控制技术研究方面存在以下难点:

1、过于复杂和计算开销过大的拥塞算法不适合应用在传感器网络中, 同时, 在拥塞控制时要考虑尽可能减少拥塞控制所带来的附加网络流量, 以尽可能地延长网络寿命。

2、一旦拥塞发生, 需要对网络进行分布式的拥塞控制, 而不是仅仅针对某个节点, 但由于网络中节点获得的大都是局部信息, 在网络中难以得到拥塞发生的全局信息, 因此局部地区的拥塞缓解有可能造成另外区域的新一轮拥塞的产生或个别节点的能量消耗过大。

3、传感器节点能量耗尽、被捕获或恶劣自然环境侵蚀等原因均可能造成传感器节点失效, 工作于恶劣自然环境中的无线通信信道也容易受到风雷雨雪等影响而出现故障。

4、当网络拥塞发生时, 不同的应用对网络的服务质量如数据延迟或数据传输的丢包率等参数有着不同的要求, 在实际使用中要求网络能对数据进行区分式服务, 为不同的数据提供不同的网络服务质量。

随着无限传感器网络的研究的深入以及应用领域和深度的不断扩展, 其中的拥塞控制技术正日益受到人们的关注, 成为重要的研究方向之一。今后对无线传感器网络拥塞控制技术在以下几个方面还有待深入研究和发掘:

(1) 在跨层的拥塞控制解决方案方面。完整的拥塞控制技术需要物理层、MAC层、网络层和传输层等共同配合实现, 跨层的拥塞控制策略可以解决数据融合、具体应用、优化处理等多方面的问题, 适应面更广, 而这方面的研究相对较少。 (2) 在公平性控制方面。优先级公平性控制、在网络信息分布不均衡情况下的公平性控制以及基于三位空间的拥塞公平性控制的研究几乎空白。 (3) 在不同应用需求方面。根据不同的应用需求提供不同的拥塞解决方案, 为不同的应用需求提供不同的网络服务质量是传感器网络面向实际应用中必须深入考虑的重要问题。 (4) 在节能的拥塞控制技术方面。要实现理想的拥塞控制, 将会消耗更多的网络能量, 必须考虑到网络能量受限的因素, 如何在节能和有效的拥塞控制之间进行权衡, 需进一步考虑。 (5) 在拥塞检测策略方面, 无线链路的不稳定和易受扰等原因引起的链路带宽改变而造成的拥塞发生, 现有的拥塞检测技术当中的检测精度如拥塞度、逼真度、负载强度等还有待与继续研究, 需要结合无线链路的特点对拥塞检测技术做进一步研究。 (6) 在整合数据融合技术方面。数据融合技术通过对传感器节点采集到的数据进行融合操作, 减少冗余信息后组成更高效率的包再进行传输, 有利于减轻网络的拥塞流量。 (7) 在实验和仿真环境方面。在目前研究的普遍硬件条件较差的情况下, 如何实质性提高实验软件在拥塞控制方面的仿真效果和数据分析能力也是相关领域研究的一个方向。

摘要:本文分析了其研究现状, 对拥塞避免与拥塞解除进行了探讨, 同时分析了存在的问题与研发方向。

关键词:无线传感器,网络拥塞,控制,分析

参考文献

[1]孙利民、李建中、陈渝、朱红松:《无线传感器网络》, 清华大学出版社, 2005年版。

[2]李建中、高宏:《无线传感器网络的研究进展》, 《计算机研究与发展》, 2008年第1期。

拥塞控制技术 篇3

网络拥塞控制一直以来是网络研究的热点。无线网络具有带宽分配灵活、用户接入方便等优点,具有广阔的发展前景和市场空间,无线网络和有线网络必将有机融合。然而,由于无线网络链路易受环境影响,具有随机比特出错率高、终端主机移动等许多与有线网络不一样的特征,不能直接将有线网络拥塞控制技术应用于无线网络中。有线无线网络拥塞控制问题成为了提供高效因特网服务,保障网络服务质量,成功实施下一代互连网的关键。

1 基本概念

1.1 资源供需关系与网络拥塞

如果因为网络负载增加而导致用户的满意度降低则认为网络发生拥塞[1]。当网络中分组数量超过一定的限度,分组传输延迟显著增加,网络有效传输吞吐量接近零,出现“拥塞崩溃”现象。图1描述了网络吞吐量、响应时间与负载的关系。当负载较小时,吞吐量增长和负载相比基本呈线性关系,延迟平缓增长;负载超过knee之后,吞吐量增长缓慢,延迟增长迅速;当负载超过cliff之后,吞吐量急剧下降,延迟急剧上升,可以看出负载在knee附近时网络使用效率最高,延迟较短。

1.2 网络拥塞的原因

网络拥塞的根本原因是网络资源需求超过所能提供的极限,直接原因主要是瓶颈链路缓存区容量不足,瓶颈链路带宽容量不足和处理器处理能力弱、速度慢。

因特网是分散协作、规模巨大的动态系统,仅仅简单地增加上述资源并不能完全解决网络拥塞问题,甚至可能使问题恶化,导致更严重的拥塞发生。因特网需要有合适的分布式拥塞控制算法,避免网络拥塞发生。

1.3 拥塞控制算法性能评价方法[2]

对于任何一种拥塞控制算法,人们希望它能同时满足以下几点要求:

(1)高效性在满足拥塞控制目标前提下尽可能充分利用网络资源。

(2)公平性防止一些网络连接过度占用网络资源而导致另一些连接不能公平的使用网络资源。

(3)稳定性拥塞控制方案在瓶颈处应维持最佳负载。当网络发生轻微拥塞时,数据包会在瓶颈处缓冲区聚集,负载进一步增长,直至缓冲区发生溢出现象开始丢弃分组,此时网络进入严重拥塞状态。

(4)可扩展性当网络连接数增多时,算法开销不会成为影响网络性能的一个主要因素。

目前网络拥塞控制主要集中在传输层和网络层。下面分别就有线网络和无线网络中的拥塞控制研究现状和发展趋势进行分析。

2 有线网络拥塞控制技术

拥塞控制就是网络节点通过相应的机制避免拥塞发生或快速有效地解除已经发生的网络拥塞,使负载保持在knee附近。

2.1 TCP源端拥塞控制算法及研究进展

统计数据表明,因特网上数据流有95%以上是基于TCP协议[3]。TCP协议之所以能够在如此规模庞大的因特网上保证数据的可靠传输,主要在于它巧妙地引入了慢启动、拥塞避免、快速重传和快速恢复等几个有效的窗口调节算法,确保了数据可靠传输和网络稳定运行。为提高TCP性能,研究者总是基于四种算法进行改进。

(1)TCP Tahoe、Reno、New Reno TCP Tahoe采用慢启动、拥塞避免和快速重传,TCPReno在TCPTahoe的基础上进一步实现了快速恢复算法,TCP New Reno改进了Reno快速恢复算法,有效解决了一个窗口中多个分组丢失所造成的传输性能降低的问题,cwnd随时间各阶段变化情况如图2所示:

(2)TCPSACK是对TCPReno的扩充,增加了接收端选择应答和发送端选择重传,可使发送端只重传确实已经丢失的数据包,解决在一个窗口中多个包丢失的问题。

(3)TCP Vegas对Reno进行了三项重要技术改进:用一个重复ACK(而非3个)来启动超时判定程序;以窗口大小W和RTT比值来计算实际发送速率和期望带宽比较,推断网络拥塞与空闲程序,从而调整窗口大小;改进拥塞避免阶段窗口调整算法,其动态自适应性较好。

针对目前源端TCP拥塞控制算法存在的问题,对网络传输的一些特定环境和性能指标进行改进并提出了以下改进方案。

a.TCP Westwood(TCPW)在TCP发送端通过检测返回确认帧速率来持续测量网络有效带宽,在发送端自适应修改拥塞窗口的算法。实验表明TCPW可以显著提高吞吐量和公平性,在高速无线和有线混合网络中十分有效。

b.HighSpeed TCP(HSTCP)该协议旨在改善高速网络中带有大拥塞窗口的TCP连接性能,给出了平均拥塞窗口w和稳态分组丢弃率p的一个新关系,即w=0.12/p0.835。由于采用了动态调节方法,因此HSTCP在一定程度上缩短了拥塞恢复时间,提高了资源利用率。

c.Fast TCP(FTCP)该协议使用队列时延作为主要拥塞测量手段,同时以分组丢弃信息作为补充。如何获得准确队列时延,对于提高该算法的有效性是至关重要的。

还有STCP、BIC TCP、XCP、RCP等其他系列改进算法。基于TCP拥塞控制吸引了大量研究者的兴趣,将随着网络发展而不断深入。

2.2 基于网络端拥塞避免机制及研究进展

端到端拥塞控制并不能完全解决网络拥塞问题,有必要结合中间节点实施流量控制来增强端到端拥塞控制。下面着重阐述路由器AQM研究进展。

(1)RED算法路由器通过监控队列平均长度来探测拥塞,采用指数加权滑动平均EWMA方式来计算平均队列长度q,数据包丢弃概率P是关于q的函数,如式(1)。其中qmax、qmin为路由器缓冲队列阈值,Pmax为路由缓冲队列达到最大阈值时的丢弃概率。该算法缺点在于,如果上述参数配置不当,网络性能会显著降低,在该算法参数选择上形成了ARED、SRED等系列改进算法。

(2)REM算法随机指数标记REM是近年来另一种很有影响的AQM算法,其核心思想是将拥塞测量从性能测量,如丢包、队列长度或延迟中分离出来,通过监测输入速率和网络带宽容量的匹配情况决定分组的标记概率,使得不论有多少用户都共享一个链路,输入速率稳定在链路容量附近,队列长度维持一个较小的值。

(3)PI(Proportional integral)算法[4]PI算法在一定程度上克服了连接数目和往返传输时间等扰动,把队列长度控制在一个目标值附近,增强了系统稳定性和适应能力。PI算法既能克服稳态误差,又有比RED快的收敛速度,是目前最有竞争力的算法之一。

(4)显式拥塞通告(ECN)在数据包头中设置拥塞发生位CE(Congestion Experienced),对数据报进行标记而不是丢弃,接收端收到CE置位的分组,将向源节点发送网络拥塞信息,减少不必要的重传,还需要用户将ECT(ECN-CapableTransport)置位。将TCP/IP改进支持ECN是将IPv4服务类型字段(TOS)第6、7位设计为ECN字段,其中第6位设计为ECT位,第7位设计为CE位。

3 无线网络拥塞控制技术

蜂窝网络、Ad-ho网络、卫星网络是无线网络的三种基本类型。现在使用最广泛的无线网络是蜂窝网络,移动用户通过基站和固定网络连接。对TCP本身的改进是目前改善蜂窝网络中TCP性能的研究热点,现有成果总结起来有以下四种方法[5]:

3.1 端到端传输层方案

TCP-Probing、TCP-Real等机制试图在传输层通过发送探测包,接收端根据ACK的抖动判断当前网络状况,从而区分误码和拥塞。由于传输层无法准确感知数据链路层网络状况,很难对拥塞和误码进行区分,从而无法解决拥塞窗口错误降低的问题。

3.2 分段连接技术

I-TCP和M-TCP采用分段处理方式,在有线链路段(固定主机FH到基站)使用标准TCP,无线链路段(移动主机MH到基站)采用适于无线环境的改进协议,两段链路分别优化提高了整体性能。其缺陷是破坏了TCP连接的端到端语义。

3.3 数据链路层解决方案

前向纠错(FEC)和自动重传请求(ARQ)是在链路层采取措施分析数据丢失的原因,然后启动局部快速重传的机制。这种方式可以增加高层协议独立通信的可靠性,比较适合高误码率无线链路,其缺陷是链路层重传可能会和TCP重传相互干扰。

3.4 跨层合作技术

数据链路层协议将链路状态信息反馈到传输层,使TCP协议可以正确根据链路状况选择处理丢包的方式。根据底层的反馈方式和TCP处理措施的不同,该方式可以分为以下三类:

(1)显式状态通知方式ATCP等方案中,显式拥塞通知ECN、显式丢失通知ELN和坏状态通知EBSN等链路环境状态作为TCP选项,放到ACK中反馈到TCP发送端,通知发送端链路在拥塞/非拥塞时丢失数据包情况,发送端依此采用相应的拥塞控制策略。

(2)重传机制改进方案Snoop、WTCP等采用重复ACK延迟发送机制,在检测到后续ACK包以后,就将缓存的重复ACK包进行丢弃,该方法对时延带宽值大的卫星链路TCP性能有明显改善。

(3)超时冻结机制Freeze-TCP采用超时冻结机制,当TCP接收端接收窗口大小减为零时,TCP发送端进入保持模式,它冻结了所有重传定时器并且不减小拥塞窗口,这样可以避免慢启动阶段的空闲时间。

4 拥塞控制研究趋势和未来发展方向

近几年来,人们在利用控制与优化理论分析现有拥塞控制的稳态与动态性能以及设计新的拥塞控制算法方面做了大量工作,取得了良好的开端。非线性规划理论和系统控制理论被引入到拥塞控制研究中来,在算法性能分析和评价方面给出许多有价值的结论,这将进一步推动拥塞控制的研究。随着智能控制理论的发展,人们把智能控制理论引入到网络拥塞控制当中。目前此类研究热点主要集中在模糊逻辑控制和神经网络控制。在今后一段时间内,针对TCP协议本身的改进,包括对TCP在各种网络环境下优化的研究,公平性理论模型及支持移动计算相关机制等方面的研究,通过通信、控制和数学等多学科的共同努力,将有望获得突破性的成果。

参考文献

[1]Jacobson V.Congestion Avoidance and Control[J].IEEE/ACM Transaction Networking,1998,6(3):314-329.

[2]Balakrishnan H.MIT6899 Computer Networks[M].Tutorial Slides,2000.

[3]Thompson K.Wide-Area Internet Traffic Patterns and Charac-lter-istics[J].IEEE Network,1997,11(6):10-23.

[4]卢锡城,张明杰,朱培栋.自适应PI主动队列管理算法[J].软件学报,2005,16(5):903-910.

无线传感器网络中的拥塞控制技术 篇4

关键词:无线传感器网络,拥塞控制,拥塞避免,拥塞检测,拥塞解除

无线传感器网络 (wireless sensor network, WSN) 综合了传感器技术、嵌入式技术、分布信息处理技术、通信和计算机技术等, 可以实时监测、感知、采集网络分布区域内的各种环境或被监测对象的信息, 同时可以对这些信息进行处理, 通过多跳的方式传输到会聚点 (sink) , 最终传输到特定的用户[1]。传感器节点往往大规模的部署在监控区域, 通信方式通常为多跳的多对一通信, 无线链路质量和拓扑结构在某些情况下会变化, 而且经常会有一些突发事件导致数据流量大幅度变化, 以上情况都会引起无线传感器网络局部或大范围的拥塞, 甚至导致全局拥塞直至拥塞崩溃。[2]如何最大限度的避免拥塞, 如何及时检测和解除拥塞成为无线传感器网络QOS保障机制的关键技术[3]。在传统的有线网络当中, 拥塞控制通常结合端到端的拥塞控制和网络层机制。这种解决策略不适合无线传感器网络, 因为无线通信中不同链路上的并发无线传输会相互干扰, 多时标情况下无线信道的传输质量会频繁变化影响稳定的数据传输。而有线网中端到端拥塞控制要求基点发送诸如应答或ACKs的控制分组, 对于无线传感器网络这会加重基点附近的拥塞, 同时消耗无线传感器宝贵的能量资源。

1、拥塞检测技术

拥塞检测的目的是采用某种检测方式检测网络中是否出现了拥塞, 检测的准确度和及时性对于拥塞控制有重要的影响。

1.1 基于缓存区占用率

考察节点内等待发送的队列长度 (即缓存占用比例) 以判定是否拥塞。这是最常用而且能量损耗相对小的一种方法。

缓存占用率高说明节点发送数据机会将会减少, 信道也存在被邻居节点占用的境况。节点附近有越多的数据发送就越可能导致拥塞的发生。这种检测机制通常设定一个阈值, 如果缓存超过阈值则判定为拥塞发生。实际的情况可能瞬间缓存超过阈值而很快又恢复的正常值, 这种情况不应该判定为拥塞。在提出缓存增长系数的概念后, 有人研究认为指出如果队列缓存占用率超过阈值并且缓存占用率处于快速增长状态则认为出现拥塞。

此外, 有研究者提出了一种基于缓存占用率的拥塞检测机制C O D A。指出因为存在无线冲突、隐终端等因素, 单独的缓冲区占用情况评估拥塞并不可靠, 缓存满或缓存空才有可能是拥塞的指示。CODA结合信道负载、队列占用状态, 在每个接收端低代价的推断精确的拥塞检测信息。

单纯的基于缓存区占用率的拥塞检测对于信道的干扰和竞争考虑不足, 所以拥塞判断的精确度不高。

1.2 基于信道采样分析

不同的M A C协议对于信道利用率和拥塞的关系有不同的定义, 如T D M A和C D M A中对于拥塞的判断标准就完全不同。

连续对信道进行采样会导致能量消耗过大。

CODA在节点发送数据的时候对信道进行采样, 其间信道忙的次数超过一定频率则认为拥塞发生。

C O M U T可以对分簇结构定义的网络进行拥塞检测, 簇头节点按一定频率监听簇内流量, 计算节点的缓存溢出率用以判断拥塞。

1.3 基于传输速率

ESRT是第一个基于速率的拥塞控制协议, 它以每个周期内sink接收的数据包数来度量网络的可靠性, 同时考虑节点的拥塞度, 将网络状态划分为5种:低可靠性 (low reliability, LR) 、无拥塞 (no congestion, NC) ;高可靠性 (high reliability, HR) 、无拥塞 (no congestion, NC) ;高可靠性 (high reliability, HR) 、拥塞 (congestion, C) ;低可靠性 (low reliability, LR) 、拥塞 (congestion, C) 和最佳状态 (optimal operating region, OOR) 。PORT根据不同源节点对数据完整程度点的转发速率判断节点附近区域是否拥塞, 为每个节点的队列设置两个门限值, 当队列长度不在这两个门限之间的时候认为拥塞并对数据包打上标记。

2、拥塞避免和解除

2.1 拥塞避免

如果在数据传输过程中采取合适的传输策略, 则能够在一定限度上避免拥塞, 如何能够设计出尽量减少拥塞的控制算法一直是相关人员研究的重要方向。目前采用的拥塞避免策略有速率分配、缓存通告、信道公平性控制、多路径等。

基于速率分配的拥塞避免通过严格规定每个传输节点的传输速度, 从而使得单个节点以及整个网络的传输都不会超过规定的吞吐量, 网络工作在从不拥塞的状态下。这种速率分配机制通常用于路径变化较小、相对稳定的传输当中。而实际的传感器网络中存在各种干扰因素很难保证这种稳定。

基于缓存通告的拥塞避免机制在节点发送数据的时候检测其下游接收节点的缓存容量, 如果缓存不足则停止发送数据, 这种机制需要M A C协议支持, 由于传感器网络存在隐终端问题, 可能造成缓存过时。有人经过实验研究得出了检测1/6缓存的策略可以较好地解决这一问题。

基于信道公平性的拥塞避免策略基于某种机制对于节点传输数据所占用的信道带宽进行分配, 尽量使得高优先级或者信息量大的数据传输占用更多的带宽。有人提出了一种公平性控制模型CFRC, 使用感知面积的信息量计算方法, 并提出了一种干扰源感知的带宽分配方法。

基于多路径的拥塞避免在数据源感知数据并传输的开始通过某种策略建立自源节点到Sink节点的多条传输路径, 通过这种方式尽量避免拥塞的发生, 这种方式的数据传输优点在于有利于负载均衡、延时低且可靠性好, 并提出了一种多路径的建立方法, 有的提出了一种拥塞避免算法C O T A, C O T A根据产生的多路径中每条路径的使用频度以及剩余能量将流量公平的分配到多条路径当中。

2.2 拥塞解除

在传感器网络的实际应用中, 由于链路状态、突发性事件等各种原因, 在大多数情况下, 避免发生拥塞是不现实的。而在检测到拥塞之后如何进行拥塞通告和

拥塞通告有两种形式:显示和隐式, 显示通告通过专用的拥塞控制信息通告相关节点;隐式通告将拥塞信息放到正常的数据分组中稍带传送, 这样会降低传送的代价。

C O M U T是基于分簇的流量控制, 节点随机设置定时器, 先超时的节点成为簇的哨兵, 它的邻居节点即成为簇内节点, 基于这种方式形成多个簇, 簇内节点与本簇哨兵节点通信, 而数据源通过各个哨兵节点将数据传送到s i n k点, 哨兵节点通过分析簇内和簇间的通信强度来评估簇内拥塞, 如果发生拥塞则把拥塞信息发给上游哨兵, 上游哨兵根据收到的拥塞信息以及本簇内的拥塞情况来决内本簇内节点的发送速率, 由Sink点确定发送周期, 该算法也采取AIMD方式进行速率调节, 数据可以根据被赋予的不同优先级进行发送。

随着无限传感器网络的研究的深入以及应用领域和深度的不断扩展, 其中的拥塞控制技术正日益受到人们的关注, 成为重要的研究方向之一。本文对于拥塞控制技术的国内外相关研究进行了综述。结合当前的研究和应用现状。拥塞控制技术在以下几个方面还有待深入研究和发掘:

(1) 公平性控制方面, 基于信道占用率、基于信息量比率的公平性控制研究较少。而带优先级公平性控制、在网络信息分布不均衡情况下的公平性控制以及基于三位空间的拥塞公平性控制的研究几乎空白。

(2) 拥塞检测策略方面, 检测拥塞的更多方式还有待于研究和开发, 现有的拥塞检测技术当中的检测精度如拥塞度、逼真度、负载强度等还有待与继续研究, 增加精度方面的控制。

(3) 在拥塞控制的同时保证Q O S方面的研究还有待进一步开展。

(4) 实验和仿真环境方面, 如何在目前研究的普遍硬件条件较差的情况下, 实质性提高实验软件在拥塞控制方面的仿真效果和数据分析能力也是相关领域研究的一个方向。

(5) 考虑到传感器网络实际的应用环境千差万别, 研究针对某些具体应用的拥塞避免、检测和缓解策略也是一个重要的方向。

(6) 跨层的拥塞控制策略可以解决数据融合、具体应用、优化处理等多方面的

参考文献

[1]李建中, 高宏.无线传感器网络的研究进展.计算机研究与发展.2008, 45 (1) :1-15

[2]孙利民, 李波, 周新运.无线传感器网络的拥塞控制技术.计算机研究与发展.2008, 45 (1) :63-72

主动拥塞控制应用研究 篇5

1. 主动拥塞控制方法

步骤一:路由器的选径功能是形成拥塞的主要原因, 首先通过一个实例来分析它如何形成拥塞的。图的定义:G=, 其中, V={v1, v2, v3, …vm}, vi (i=1, 2, 3, …m) 为节点。E={e1, e2, e3, …en}, ei (i=1, 2, 3, …n) 为边, g是从E到非负实数集合的函数 (权值) 。图1是一张网络的权值图。

V= (A, B, C, D, E, F, G, H) , E= (AB, AG, BE, BC, GE, GH, EF, FC, FH, CD, HD) , g0 (AB) =2, g0 (AG) =6, g0 (BE) =2, g0 (BC) =7, g0 (GE) =1, g0 (GH) =4, g0 (EF) =2, g0 (FC) =3, g0 (FH) =2, g0 (CD) =3, g0 (HD) =2, 每个节点在发送数据时都要利用它的信源树进行寻径, 以期获最小权值路径, 图2是图1各节点的信源树:

步骤二:每个节点都会按照各自的信源树进行数据投放, 假设每个节点等概率进行数据发送, 按以下规则将各点信源树和并为一张多重图 (流量图) 。 (1) :信源树各点集合合并。 (2) :信源树各边累加合并。如图3所示:

由图3可直观地看出, 当各节点增加数据发送量时节点E和F数据收发量最大, 也是最先、最易发生拥塞的节点, 而C, A, G点的流量相对较小, 形成网络流量的不平衡, 易诱导局部拥塞。定义这些最先、最易发生拥塞的节点为热点, 与该节点相邻弧的条数 (该点的度数) 称为该点的热度值。见表1:

节点E, F, B的热度值较高, 节点C, A, G的热度值较低, 且各点热度值相差很大, 即方差很大 (后面将进行比较) 。可以用热度值的方差值来刻画网络数据的平衡度。网络的热度值方差越大它的数据分配就越不平衡, 如果各点数据继续增加, 点E, F, B就会局部拥塞, 而此刻网络总流量还没有达到它的最大物理承载量, 点C, A, G还有增加传输量的潜力, 可把热点的部分数据转移到非热点上去, 缓解热点的压力, 也就是减少热度值方差, 提高网络平衡度。本文采用以下方法平衡网络流量:局部拥塞是由于路由器在投递数据时采用信源树选径造成的, 改变相应弧的权值, 就可以改变相应信源树的结构, 使得在合成后的流量图中, 任意有连接两点的弧的数量基本相同, 使以前的热点“变凉一点”, 解决各点发送数据时热点的拥塞现象。

步骤三:重新确定整个网络的权值图:各点间的拓朴结构不变, 只改变各弧的权值, 令g1 (ei) =g0 (ei) +h (ei) ×c, h (ei) 为ei相邻两节点热度值和, c的取值将影响新产生的网络权值图与原图在上的变化差别, 本文将在后面介绍c在取不同值时热度值方差量的差别。这里c=1/4, 且为了方便计算同时对h (ei) ×c的取整 (这样会影响迭代精确度) , 得到另一张网络权值图, 如图4所示:

运用前述方法可得c=1/4时的网络重图 (流量图) 和热度表, 如图5, 表2所示:

由上述流量图和热度表可直观看出:以前的热点E, F的热度值已经明显下降, 说明以前流经E, F点的某些数据已扩散到其它点, 如点G, C, 降低了E, F的负荷。热度值方差也明显降低, 说明网络数据流趋于平衡。当网络某热点要发生拥塞时, 可向全网各点发送拥塞信息, 并要求更改网络权值图来寻径, 虽然各点利用更改后权值图发出数据的路径并不是最优的, 是次优的, 但这样能有效地遏制拥塞的发生。权衡拥塞等待或丢弃重发时间, 多走路径的时间是可以接受的。如果热点的热度值还没有降下来, 说明热点向周围节点扩散的数据流还不够, 可以继续使用前述步骤一, 二, 三, 在已改变权值图和热度表的基础上再构造一个权值图, 作出它的流量图和热度表, 如图6, 表3所示:

由图6和表3可以看出, 各节点数据流的分配已基本平衡, 虽然热度值方差在第二次迭代后出现回升, 是由于 (1) 本例中的c值相对过大; (2) 对h (ei) ×c取整造成的, 但随着迭代次数的增加, 方差值会沿一值上下波动, 最终达到动态平衡。依次类推, 形成迭代的权值图和信源树。用一个递归公式来形式化这个过程:

其中, Gk表示K次迭代权值图, 表示当c=1/4时施加于Gk-1上的步骤一, 二, 三。称图1为0次迭代权值图, 导出的路由表为0次迭代路由表, 图3为0次迭代流量图, 图4为1次迭代权值图, 导出的路由表为1次迭代路由表, 图5为1次迭代流量图, 图6为2次迭代流量图。迭代次数越高, 形成的迭代流量图的热度值方差就越小, 路径的最优度也越低, 它是牺牲路径的最优度来达到整个网络数据流的高平衡。当迭代到一定次数后, 它的平衡度将稳定到一定值。

控制方法:若网络产生了局部拥塞, 采用1次迭代路由表, 若还拥塞, 启用2次迭代路由表, 若还拥塞, 再启用高次迭代路由表, 直到网络达到平衡, 消除拥塞为止。数据就会像水一样在网络槽中平衡流动。当路由表的迭代次数达到一定值还拥塞, 说明网络的数据流量已超过整个网络的承载量, 从策略上无法解决因物理局限而引发的拥塞。

2. 结论

通过对网络的静态分析和模拟, 可以预测网络动态运行时的一些节点信息, 并进行静态准备, 动态激发。以上算法经过计算模拟, 其拥塞控制效果和能力与期望基本符合, 是行之有效的。总之, 基于不同应用, 不同网络层次的拥塞控制研究还在继续, 它的成果必然对优化网络结构, 增强网络性能, 提高网络服务质量产生深远影响, 并最终将成为继计算机网络体系结构, 网络信息技术, 网络安全技术后计算机网络领域的又一大研究方向和热点。

参考文献

[1]曾家智等.《计算机网络》 (M) .2002年4月

TCP拥塞控制研究 篇6

网络中的拥塞来源于网络资源和流量分布的不均衡性。一旦网络中存在过多的数据包, 就会导致网络性能的下降, 这种现象称为拥塞。拥塞会导致分组丢失率增加, 从而增大端到端的延迟, 累积到一定程度就是整个系统的崩溃。这样的例子在互联网发展史上曾经不止一次的出现过, 当网络处于拥塞崩溃状态时, 微小的负载增量都将使网络的有效吞吐量急剧下降。

网络拥塞发生的原因说起来也很简单, 就是“需求”大于“供给”。网络本身无法根据现有资源的情况限制用户的数量;互联网络又是一个分散控制系统, 无法控制用户使用资源的数量, 不断增长的用户和应用的数量必然会导致网络发生拥塞。

2 TCP拥塞控制

研究拥塞控制的目的不是要完全避免拥塞, 而是研究怎样的拥塞程度是合适的。TCP网络是可靠数据传输, 采用分组交换技术来提高网络链路的利用率, 也就是说, 路由器队列缓存如果是满的, 则网络利用率最高, 但传输延迟大;队列始终是空的或不满, 则网络利用率低, 传输延迟小。所以拥塞控制的目标就是实现网络利用率和传输延迟等综合性能指标达到最优化, 提高网络的总体性能, 保证网络系统长期的稳定性和鲁棒性。

TCP的实现包含四个连续的基本过程, 其实是四个不同的阶段, 分别是:慢启动、拥塞避免、快速重传和快速恢复。

慢启动:当一个新的TCP连接建立时, 发送方发送一个缺省大小为512字节的TCP报文段 (segment) , 称为拥塞窗口 (cwnd) , 该cwnd的值被初始化为一个数据包, 因此每经过一个RTT, cwnd将指数增加。该算法的原理就是将能发送到网络的新数据包的发送速率对应从接受端返回的确认消息的速率。

拥塞避免:拥塞避免的触发条件是当发现接收方的ACK确认包超时到达或者收到了三个相同的ACK确认包时, TCP就认为网络中出现了拥塞, 开始执行拥塞避免算法, 这里的触发条件是有前提条件的, 那就是TCP假设由于线路传输引起的数据包损坏和丢失的概率非常小, Jacobson V在1988年提出的值为小于1%时条件就成立。在这一阶段, 慢启动阈值 (ssthresh) 设置为cwnd的一半, 如果是超时, cwnd则被置1。如果此时cwnd<=ssthresh。TCP就重新进入慢启动, 如果cwnd>ssthresh, TCP进入拥塞避免, 发送方每收到一个ACK, 则cwnd=cwnd+1/cwnd。可见慢启动阶段cwnd的增加是指数的, 而拥塞避免阶段则是线性的。

快速重传和快速恢复:发送方不等到数据包超时, 在收到三个或三个以上的重复ACK时就判断数据包已经丢失, 这样不用等定时器超时后cwnd置1, 就马上重传该数据包, 同时将ssthresh的值置为当前cwnd的一半, 这种算法来保证TCP保持足够的吞吐量。快速恢复的算法是: (1) 当第三个重复的ACK到达, 设置ssthresh=cwnd/2;重传丢失的报文;设置cwnd=ssthresh+3。加3是因为三个重复的ACK表示有三个数据包已经被接受方缓存了。 (2) 每次有一个更多的重复ACK到达, 把cwnd加1并在可能的情况下传输一个报文段。 (3) 当确认新数据的下一个ACK到达时, 设置cwnd=ssthresh, 进入拥塞避免。

3 TCP拥塞控制算法的改进

3.1慢启动的改进

随着Internet应用在互联网络中的占的比例逐步增大, Web数据流占了网络流量的相当部分, 这些TCP连接的数据量一般都很短小, 通过了解TCP拥塞控制原理, 我们知道短TCP流主要工作的阶段是慢启动阶段, 它不具备长TCP流的传输时间, 无法达到拥塞避免阶段, 所以短TCP流的问题是, 如果一个分组丢失, 按照拥塞控制算法, 需要等待定时器超时重传, 这在带宽竞争上就无法和长TCP流竞争, 从而造成网络的拥塞节点处, 长TCP流会挤掉短TCP流, 使贷款分配不均。针对这些问题, 研究者们提出了传统的慢启动存在的两个问题: (1) 数据发送从一个数据包开始, 要经过多个RTT才能达到较大吞吐量, 这不利于流量小但是链路延迟又比较大的TCP流的传输; (2) 采用指数增长的方式发送数据造成了数据突发, 易引起瓶颈链路的拥塞。

针对第一个问题, 大家提出了很多解决方法, 比如采用大的初始窗口, 将初始窗口从1MSS增加到4MSS, (Allman M.et al, 1998) , 这种方法虽然可以改善慢启动的性能, 但是不能适应多变的网络带宽。还有就是将各个TCP连接的信息共享 (Padmanabhan V.et al, 1998;Touch J, 1997;Savage S.et al, 1999) , 后面的连接可以使用具有相同目的地址的连接信息, 从而可以减少慢启动的时延, 但是这样会使连接很快造成网络拥塞, 而短TCP的长度只需要几个RTT就可以传输完毕, 网络拥塞会造成额外的时延。再后来提出了将初始窗口设定为4个分组, 而从以快速重传来减少重传超时造成的传输时延 (Mellia M.et al, 2001) 。

解决第二个问题可以通过使用带宽时延的估计来设定初始慢启动阈值ssthresh (Hoe J, 1996) 。Smoot-start方法 (Marchese M, 2001) 使发送方从慢启动阶段较为平滑的过渡到拥塞避免阶段, 减少了数据包丢失和突发流, 当拥塞窗口到达Smsthresh后, 采用比较平缓的指数方式增长拥塞窗口, 逐渐达到默认值或估算的ssthresh值。

3.2快速重传和快速恢复的改进

有时发送端减少拥塞窗口值并不是因为分组丢失, 而是分组数据传输中顺序错误引起的重复ACK。有限传输机制 (Allman M, Balakrishman H.and Floyd S.2001) 是一种改进方法, 当发送端收到一个或两个重复的ACK后, 如果被允许, 发送端就发送一个新的分组。这种方式对错序的状况有较好的调节作用。还有D-SACK方式, 是一种基于SACK的方式, 通过给TCP发送端一个附加信息, 来判断是否发生了不必要的重传, D-SACK通过接收端受用SACK选项来报告收到了重复的分组序列, D-SACK在容易引起错序的环境下提供更高的效率。

快速恢复的改进机制有SACK (Selective Acknowledgement) , FACK (Forward Acknowledgement) , TCP New-Reno等。SACK方式的接收端通过ACK向发送端通过所有正确的分组, 发送端只需重传真正丢失的分组。FACK是基于SACK的改进, 它们的问题都是增加了TCP的复杂性, 对TCP版本的兼容性较差。TCP New-Reno不需要接收端的特殊支持, 相对实现起来简单, 但是数据传输效率相对不高。RateHalving (Allman M, Dawkins S, Glover D, et al, 2000) 是FACK的一个比较新的版本。在快速恢复阶段, 每收到2个ACK发送一个新的分组, 从而在一个RTT里将拥塞窗口减小到网络能处理的分组数的一半大小, 并保持了TCP的自计时特性。

目前, TCP基于窗口的拥塞控制策略被广泛的应用。各种改进的TCP控制策略在不同侧面解决了一定的问题, 但是也有着局限性, 有的实现起来过于复杂, 有的解决了多个分组丢失的恢复问题, 但对恢复过程中出现的分组丢失却无法得到解决。

4结束语

在实际的应用中, 针对不同特点的TCP网络, 有着适合的改进策略, 这些策略不用做到面面俱到, 只要具有一定的针对性就可以。网络拥塞的改进是十分灵活的, 方法也很非常多, 其原因正式因为不同网络中传输的数据特点不同, 从而选择合适的改进策略是关键。

(上接第153页) [1]Allman M, Hayes C, Ostermann S.An Evaluation of TCP with Larger Initial Windows[J].ACM Computer Communication Review, 1998, 28 (5) 41-52.

[2]邓亚平, 叶凌伟, 陈雁.TCP/IP拥塞控制算法的改进[J].计算机科学, 2001 (4)

110-113.

[3]王彬.TCP/IP网络拥塞控制策略研究[D].浙江大学, 2004

参考文献

[1]Allman M, Hayes C, Ostermann S.An Evaluation of TCP with Larger Initial Windows[J].ACM Computer Communication Review, 1998, 28 (5) :41-52.

[2]邓亚平, 叶凌伟, 陈雁.TCP/IP拥塞控制算法的改进[J].计算机科学, 2001 (4) :110-113.

网络拥塞控制策略的研究 篇7

1 TCP的拥塞控制

为了更好地在运输层进行拥塞控制, 1999年公布的因特网建议标准定义了以下四种算法, 即慢开始、拥塞避免、快重传和快恢复。

1.1 慢开始和拥塞避免

慢开始算法原理:先设cwnd=1, 发送第一个抱文M0, 接收端收到后发回ACK1。发送端收到ACK1后, 将cwnd从1增大到2, 于是发送端每收到一个ACK, 就使发送端的cwnd加1。

其中:ACK-确认号;

C w nd-拥塞窗口, 是来自发送端的流量控制;

R w nd-接受端窗口, 是来自接收端的流量控制;

TCP采用大小可变的滑动窗口进行流量控制, 即:

实际流量=滑动窗口的上限值=min (r w n d, c w n d) 。

慢开始算法使发送端在开始发送时向网络注入的分组数大大减少, 这对防止网络出现拥塞是个非常有力的措施。

由于慢开始算法的“慢”指的是开始时的分组数发送的少, 但发送分组的增长速率并不慢。为了防止拥塞窗口cwnd的增长引起网络拥塞, 还需要另一个状态变量, 即慢开始门限ssthresh。用法如下:

当cwnd

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

当cwnd=ssthresh时, 既可使用慢开始算法, 也可使用拥塞避免算法。

拥塞避免算法是使发送端的cwnd每经过一个往返时延RTT就增加一个MSS的大小 (而不管在时间RTT内收到了几个ACK) 。这样, 拥塞窗口rwnd按线性规律缓慢增长, 比慢开始算法的增长速率慢得多。

“乘法减小”—只要出现一次超时, 就将ssthresh设置为当前拥塞窗口值乘以5.0。

“加法增大”—执行拥塞避免算法后, 当收到所有发出报文的确认就将cwnd增加一个MSS大小。

1.2 快重传和快恢复

快重传:发送端一连收到三个重复的ACK即断定分组丢失, 而不等到计时器超时才重传丢失的报文。

快恢复: (1) 当发送端连续收到三个重复的ACK时, 就按“乘法减小”重置ssthresh。 (2) 与慢开始不同之处是cwnd不是设置为1, 而是设为ssthresh+3*MSS。 (3) 若收到重复的ACK为n个 (n>3) , 则cwnd设为ssthr esh+n*MSS。 (4) 若滑动窗口值还允许发送报文段, 就执行拥塞避免算法。 (5) 若收到了确认新的报文段的ACK, 就将cwnd缩小到sst hres h。

2 IP的拥塞控制

TCP拥塞控制并没有和网络层采取的策略联系起来, 网络层的策略对TCP拥塞控制影响最大的就是路由器的数据报丢弃策略。目前, 常用的IP拥塞控制算法是随机早期检测 (RED) 方法。基本思想是按一定的概率丢弃路由器的数据包。

首先计算平均队列长度:

式中:avg_q为平均队列长度, w为权值, q为采样测量时实际队列长度。

计算丢弃包的概论:

min_th和max_th是二个和队列长度相关的阈值, count是上次丢弃分组后收到的分组个数, 当有包到达路由器时, RED计算出平均队列长avg_q, 若avg_qmax_th时, 所有包都被丢弃。

RED算法的有效性和可靠性取决于选择合适的配置参数, 而且丢包率又是平均队列长度avg_q的静态映射, 因此, 容易引起网络的不稳定, 当业务的突发度较强或流量抖动较大时, 并不能获得满意的吞吐性能。

3 智能拥塞控制算法

AQM作为端到端拥塞控制机制的一个改进, 通过有目的地丢弃路由器间的分组, 可维持较小的排队延迟和较高的吞吐量。主动队列管理算法的研究主要集中在2个方向: (1) 依赖于启发式的直觉思维, 针对局部个别问题的启发式算法设计方法, 典型的如Floyd等提出的随机早期检测RED算法以及RED的派生算法, 除此之外新的启发式AQM算法也不断涌现, 诸如BLUE, REM, GREEN, GKVQ等。 (2) 以随机过程、控制理论等系统理论作为算法分析和设计的依据。最具代表性的如Hollot等利用经典控制理论作为分析和设计的依据, 用频域分析的方法提出的比例积分 (PI) 控制算法, 以及Ren等为了克服PI控制器响应速度慢这一问题, 加入了微分环节, 提出具有快速响应的PID控制器。总结AQM中各种策略与算法的研究不难发现, 启发式的设计方法不免带有盲目性和片面性, 造成最终形成的算法不免存在各种意想不到的缺陷。

基于神经网络补偿器算法是一种通过“拥塞通知” (ECN) 标志TCP的AQM路由器自调节控制法, 该算法TCP和IP层的拥塞控制, 是一种智能控制算法。当队列长度高于上限时, 路由器中ECN置为1, 这样TCP源将缩小发送窗口大小以减小速率。相反, 当队列长度低于下限时, 路由器中的ECN置为0, TCP源扩大窗口大小以增大速率。结果是, 路由器中的队列长度将维持在区间[qmin, qmax]之间。当路由器的队列长度界于区间[qmin, qmax]时, 则关闭ECN标记, 自调节控制器计算丢弃并且丢弃或标志在路由器中的分组, 以使TCP源调节其发送速率, 从而是路由器的队列趋于期望值。

通过修改ECN可使路由器队列长度维持在[qmin, qmax], 从而降低了路由器队列的抖动, 提高了控制系统的瞬变性能。自调节控制器使瞬时队列长度趋向于设定的队长, 进一步增强了稳定性。

4 结语

本文对TCP拥塞控制算法, IP拥塞控制以及结合二者的智能控制算法进行了描述。随着计算机通信网络的理论的不断完善, 计算机网络性能分析和控制理论、神经网络、人工智能、专家系统等技术进一步进行交叉和有机结合将成为拥塞控制的发展趋势和研究的新方向。

摘要:对网络拥塞控制的研究具有重要的理论意义和实际应用价值。人们提出了很多的拥塞控制方法和策略, 慢开始、快重传和快恢复算法等。而这些TCP拥塞控制算法都没有考虑到网络层采取的策略, 于是出现了随机早期丢弃 (RED) IP拥塞控制算法。随着智能控制路论与技术的发展, 也出现了许多智能算法, 取得了不少的进步。

关键词:网络拥塞,拥塞控制

参考文献

[1]谢希仁.计算机网络[M].电子工业出版社.

[2]李之芳.网络拥塞的原因分析及控制策略[J].经营管理者, 2010, 7.

上一篇:医学机能学实验下一篇:桥式起重机