计算机网络拥塞控制综述

计算机网络拥塞控制综述

摘要

随着Internet的普及和规模的快速增长,近些年来,有相当多的研究都试图扩展Internet的体系结构。其中,大多数人认为:更多、更合理的控制机制对已有的网络稳定运行无疑将是至关重要的。其中一个最基本和最重要的要求就是防止网络出现拥塞崩溃,使网络运行在轻度拥塞的最佳状态,同时保证一定的公平性。从用户需求的角度来说,网络必须为所有用户的请求提供服务,然而用户的需求在传输起始时间、需求速率、持续时间上变化很大,在很多情况下还是突发的。从网络提供资源的角度来说,任何网络物理资源都有固定的上限能力。因此,用有限的资源去适应波动很大的用户需求,一定会出现网络资源不能满足用户的需求的时候,此时就必须使用拥塞控制来管理用户流量对瓶颈资源的共享。

本文从拥塞控制的概念,拥塞控制和拥塞预防的方法等几个方面对计算机网络的拥塞控制进行一个粗略的概述。

关键词

拥塞控制、拥塞预防、策略


1 引言

网络中的拥塞来源于网络资源和网络流量分布的不均衡性。拥塞不会随着网络处理能力的提高而消除。拥塞控制算法的分布性、网络的复杂性和对拥塞控制算法的性能要求又使拥塞控制算法的设计具有很高的难度。

到目前为止,拥塞问题还没有得到很好的解决。

本文的组织如下:第2部分介绍拥塞的基本概念,包括拥塞的定义和拥塞控制的概述、流量与拥塞控制的关系。第3部分介绍拥塞控制的算法,包括通用原则、虚电路子网和数据报子网的拥塞控制、REDAQM。第4部分介绍基于计算机网络服务质量(Qos)的拥塞控制。
2拥塞控制概述

2.1拥塞的定义

拥塞(Congestion)是一种持续过载的网络状态,此时用户对网络资源(包括链路带宽、存储空间和处理器处理能力等)的需求超过了其固有的容量。

拥塞的定义可以用图1解释。

1 拥塞反应图

其中Throughout是吞吐量,load是负载,ResponseTime是反应时间。Knee是膝点,Cliff是崖点。

当负载较小时,吞吐量的增长和负载相比基本呈线性关系,延迟增长缓慢,在负载超过Knee 之后,吞吐量增长缓慢,延迟增长较快;当负载超过Cliff 之后,吞吐量急剧下降,延迟急剧上升。可以看出,负载在Knee 附近时网络的使用效率最高。拥塞控制就是网络节点采取措施来避免拥塞的发生或者对拥塞的发生做出反应。

在图1 中就是使负载保持在Knee 附近。

拥塞产生的原因是多方面的,如路由器的内存不够,路由器的内存过大,处理器过慢等等方面。

2.2拥塞控制

为了最大限度地利用资源,网络工作在轻度拥塞状态时应该是较为理想地,但这也增加了滑向拥塞崩溃的可能性,因此需要一定的拥塞控制机制来加以约束和限制。

可以从两个方面考虑如何解决拥塞问题:一是增加网络资源;二是降低用户需求。

增加网络资源一般通过动态配置网络资源来提高系统容量。降低用户需求通过拒绝服务、降低服务质量和调度实现。

2.3流量控制和拥塞控制之间的关系

拥塞控制主要考虑端节点之间的网络环境,目的是使负载不超过网络的传送能力;而流控制主要考虑接收端,目的是使发送端的发送速率不超过接收端的接收能力。

拥塞控制的任务是确保子网能够承载所达到的流量。流控制只与特定的发送方和特定的接受方之间的点到点流量有关。


3 拥塞控制的算法

3.1 拥塞控制的通用原则

拥塞算法从控制论的角度来说可以分为开环的(open loop)和闭环的(close loop)。

开环控制:确定何时接受新的流量,确定何时丢弃分组及丢弃哪些分组,以及在网络的不同点上执行调度决策。

所有这些手段的共同之处是:他们在做出决定的时候不考虑网络的当前状态。

闭环控制:包括三个部分:

1、监视系统,检测何时何地发生了拥塞。

2、将该信息传递到能够采取行动的地方。

方法一:路由器告诉流量源拥塞的信息。

方法二:每个分组都保留一位,当路由器发现现在拥塞时,路由器把每个分组的最后一位填充,以告诉它的邻居:“不要再往这边发了,这边已经堵了。”

方法三:让主机或者路由器周期性地往外发送探询分组,显示地询问有关拥塞的情况。然后,在有问题的区域中,可以利用这些信息来路由流量。

3、调整系统的运行,以改正问题。

它是建立在反馈环路的概念基础之上。

它们之间最大的区别就是开环控制是在网络拥塞之前尽量避免拥塞,而闭环控制则是在拥塞发生之后如何处理它。

开环算法分为两类:一类在源端采取动作。另一类在目标端产生动作。闭环算法分为两类:显示反馈和隐式反馈。

3.2虚电路子网中的拥塞控制

一种方法式准入控制(admission control)。它广泛应用于Internet,是一种防止已经拥塞的子网进一步恶化的技术。其思想是:一旦出现拥塞的信号,则不再创建虚电路,直到问题排除为止。

另一种方法是允许创建新的虚电路。当网络出现拥塞的时候,它会谨慎地选择路由,使所有新的虚电路都绕开有问题的区域。

第三种方法是当建立虚电路的时候,在主机和子网之间进行协商以达成一致的约定。这份约定通常规定了流量和容量的形状、所要求的服务质量和其他的参数。通过这种方式,在新的虚电路上是不可能发生拥塞的,因为所有需要的资源保证能够获得,但是它的缺点是浪费资源。

3.3数据报子网的拥塞控制

3.3.1警告位

在分组的头中设置一个特殊的位来只是警告状态。当路由器处于警告状态时,它就会不断的设置警告位,源主机因此也会不断地获得设置了警告位的确认分组。当警告位不断增加时,源主机就不断地减少它的传输速率,当警告位的确认分组减少到极少量的时候,源主机就会增加它的传输速率。

3.3.2抑制分组

抑制分组:路由器给源主机送回一个抑制分组(choke packet),并且在抑制分组中指明原分组的目标地址。同时,原来的分组在头部加上了一个标记,从而在后面的路由器中就不用发抑制分组了,因为当后面的路由器看到这个标记之后就知道在前面的路由器已经发了抑制分组了。

但是,如果源主机有的分组已经在路上了,怎么办呢?那么,源主机将在一段时间内忽略同样的抑制分组,除非一段时间间隔到了,它又将再次监听从那个发送抑制分组的路由器发送过来的抑制分组,从而判断是减少流量还是增加流量。

3.3.3逐跳(hop-by-hop)抑制分组

当网络速度很高或者路由器离源主机的距离很远的时候,给源主机发送抑制分组并不能很好地其作用,因为反应太慢。

所以在沿途的路由器上都设置抑制分组,当某个路由器给分组发送了抑制分组之后,前面的路由器就不会再往后面的路由器发送分组了。

这种方法会使拥塞点上拥塞现象很快得到缓解,但是其代价使上游路径上需要消耗更多的缓冲区空间。

3.4 拥塞控制的链路算法

3.4.1 AQM算法

AQMActive Queue Management)算法是主动队列管理算法,和传统的“队尾丢弃”(DropTail)相比,AQM算法在网络设备的缓冲溢出之前就丢弃或标记报文。

AQM算法的主要优点是:(1)可以减少路由器中的报文丢失。使用AQM可以保持较小的平均队列长度,从而增强队列容纳突发流量的能力。(2)可以减小报文通过网络设备的延迟时间。报文在网络设备中的延迟很大一部分是排队延迟,减小平均队列长度可以有效的减小排队延迟。(3)可以避免Lockout行为的发生。

 

3.4.2 RED算法

REDRandom Early Detection)算法也叫随机早期检测算法,它是最著名AQM 算法。它通过以一定概率丢失或标记报文通知端系统网络的拥塞情况。RED 使用平均队列长度度量网络的拥塞程度,然后以线性方式将拥塞信息反馈给端系统。

由于路由器可能无法判断哪一个源是引起的拥塞,所以,它只能是随机地从拥塞的队列中选取分组。

一种策略是给源发送一个抑制分组,但是它会带来额外的网络负载。另一种策略是将选取出来的分组丢弃,而不向源主机报告,源主最终会感到缺少确认分组,并采取措施。

它存在两个主要缺陷RED 对参数设置很敏感,改变参数对性能影响很大.到目前为止,这些参数还没有明确的设定方法.另一个问题是随着网络中“流”(Flow,指一个TCP 连接)数目的增加,网关的平均队列长度会逐渐增加.一些研究者用真实实现对RED 进行试验,也反映出相同的问题。


4基于Qos的拥塞控制

4.1 Qos与拥塞控制

QoS(Quality of Service,网络服务质量),在Internet领域,是指网络在传输数据流时要求满足的一系列服务请求,具体为某个主机上的应用向其他主机上的应用发出一连串的数据包时的平均速率、最大速率、数据包的延迟时间、抖动、数据包的损失等,简单地说,网络QoS服务就是用网上信息传输质量的指标来处理端对端之间的信息传递

解决拥塞的方法是将网络整体影响降到最低,也就是说,将拥塞的影响平均分配给每个数据流,大家都承担延迟造成的传输质量下降。而QoS则不同,它不但可以防止拥塞,还会根据数据流的不同传输要求来分配延迟时间,将影响集中分配到传输要求不高的数据流上,而保证传输要求高的数据流顺利、优先通过,就像交警指挥车辆让行使急救车、消防车优先通过一样。利用QoS技术可以保证重要数据流的顺畅传输,有效地缩短数据包的延迟时间,最大限度地减少数据包的损失。

4.2 Qos拥塞控制机制

目前,常见的拥塞控制策略有:TCP基于窗口的端到端拥塞控制机制、IP拥塞控制机制、流量规划等,还有一种IPv6控制机制正在研制中。

4.2.1 基于窗口的端到端拥塞控制机制

基于窗口的端到端拥塞控制机制采用的算法主要是下面四种。

1、慢启动(Slow Start

拥塞窗口(CWIND)随着新的ACK的到来而做指数增加。

2、拥塞避免(Congestion Avoidance

没有收到最近发送数据的ACK,而是收到了三个或者三个以上对以前数据重复的ACK,发送端认为网络出现拥塞,CWIND不再做指数增长,不用等到超时重传计数器(RTO)超时,源端直接进入拥塞避免状态。

3、快速重传(Fast Retransmit

拥塞避免从慢启动的阈值开始,而不再恢复到初始窗口重新开始慢启动。

4、快速恢复(Fast Recovery

每收到一个新的ACKCWIND就增加一个数据包的大小,并保持这种增长一直到下一次拥塞发生为止。

4.2.2 IP拥塞控制机制

IP拥塞控制机制,一般是在路由器中采用排队算法和数据包丢弃策略解决网络拥塞问题,在网络层实现,能够参与资源的分配工作,减轻传输层的负担,是TCP拥塞控制机制的重要补充

4.2.3 Ipv6的服务质量机制

IPv6是下一代的Internet协议,通过使用IPv6包头中流标记域和优先级域进行QoS控制,即可以对某个发送者请求的特定数据流中要求特殊处理的数据包进行标记,这种能力对支持需要固定吞吐量、时延和抖动的应用非常重要,例如通常所说的多媒体或实时应用。


5 结论

本文对计算机网络的计算机拥塞控制方面的一些知识进行了概括。针对网络拥塞和拥塞控制概念容易混淆的特点,对两者进行了比较和解释。概述了不同网络链接中比较经典的算法。近年来,计算机网络服务质量的要求越来越高,拥塞控制策略的研究也成为计算机网络研究的热点。

加之近些年来,非线性规划理论和系统控制理论被引入到拥塞控制的研究中来,一些研究者尝试使用严格的数学模型来描述端系统和网关组成的系统。这对拥塞控制的研究有很大的推动作用。

 

 

参考文献

[1] 计算机网络(第四版).Andrew STanenbaum 著,潘爱民 译,徐明伟 审.北京:清华大学出版社.2004.8

[2] 计算机网络服务质量(Qos.林闯,单志广,任丰原 著.北京:清华大学出版社.2004.1

[3] 互联网端到端拥塞控制研究综述.章淼,吴建平,林闯.中图法分类号: TP393 文献标识码: A

[4] TCP拥塞控制算法研究.李艳凌,江勇.中图分类号:TP39307 文献标识码:A 文章编号:16724984(2005)020004-03

[5] 网络Qos服务与网络拥塞解决方案.孙海侠.分类号 TP3934

[6] TCP-Sjump卫星信道拥塞控制新算法.李明http://www.edu.cn/20031103/3093710.shtml

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值