Internet路由器主动式队列管理机制综述
- 格式:pdf
- 大小:320.97 KB
- 文档页数:13
主动队列管理AQM主动队列管理(Active Queue Management,简称AQM)是一种网络流量管理机制,旨在减少网络拥塞并提高吞吐量和延迟性能。
AQM通过在网络交换机中实现一系列的算法和策略来控制数据包的传输和排队,以解决传统的传输控制协议(Transmission Control Protocol,TCP)拥塞控制方法的一些缺陷。
一、AQM的背景与意义网络中的拥塞是指当网络中的流量量超过网络链路的吞吐能力时,网络出现堵塞的现象。
传统的TCP拥塞控制方法主要依靠丢包作为拥塞信号的指示,一旦丢包发生,TCP会减少发送速率。
然而,丢包并不能及时地反映网络的拥塞情况,且丢包发生后需要一定时间的恢复,导致了网络性能的下降。
AQM的提出旨在通过主动控制交换机中的队列长度,实时地反馈网络拥塞情况给数据源,从而减少队列中的排队延迟,提高网络的吞吐量和时延性能。
AQM的引入可以使得网络在拥塞发生前就采取一些措施,如主动丢弃数据包、降低发送速率等,以避免网络的拥塞现象。
二、AQM的工作原理AQM的工作原理可以总结为以下几个步骤:1. 检测队列长度:AQM通过周期性地检测队列的长度来获得拥塞信息。
当队列长度超过一定的阈值时,表示网络出现了拥塞。
2. 拥塞信号生成:一旦检测到网络拥塞的信号,AQM会根据一定的算法生成相应的拥塞信号。
常见的算法包括随机早期检测(Random Early Detection,RED)和随机早期丢弃(Random Early Drop,RED),它们分别通过计算数据包排队概率和随机丢包的方式来产生拥塞信号。
3. 拥塞信号传输:AQM将生成的拥塞信号传输到数据源或发送方。
这可以通过向数据源发送拥塞通知消息或降低数据包的传输速率来实现。
4. 数据源的拥塞响应:接收到拥塞信号的数据源或发送方会根据拥塞信号采取相应的措施以降低发送速率,从而减少拥塞现象。
三、AQM的优势与挑战AQM相对于传统的TCP拥塞控制方法具备以下优势:1. 实时性:AQM能够实时地反馈拥塞信息给数据源,数据源可以及时采取措施,从而降低了网络拥塞的发生概率。
无线自组网技术综述和设计摘要无线自组织网络即MANET(Mobile Ad Hoc Network)是一种不同于传统无线通信网络的新型网络,具有自组织、多跳路由和动态拓扑等特点,在军事上和商业应用中有着很大的前景。
无线自组织网络可以不必依托于基础设备,组网拥有了动态性。
从现状看,自组织网络可被用作商业及军事,注重了网络本体的移动属性。
在各个领域内,无线架构的自组织网络获取了明显进步。
然而,受到自身约束,这类网络仍存有若干疑难有待于化解,例如隐暴终端、路由是否拥有最优的适应特性、系统配备的单向链路。
关键词:无线自组织网络;关键技术;应用现状AbstractWireless ad hoc networks, which are different from traditional wireless communication networks, have many characteristics, such as self-organization, multi hop routing and dynamic topology, which have great prospects in military and commercial applications. Wireless ad hoc networks do not have to rely on the infrastructure, the network has a dynamic. From the current situation, the self-organizing network can be used as the commercial and military, and it has a focus on the mobile property of the network ontology. In all areas, the wireless architecture of the self-organizing network has made significant progress. However, subject to its own constraints, there are still some problems to be resolved in this kind of network, such as the hidden storm terminal, routing has the best adaptive characteristics, the system is equipped with a one-way link.Keyword: MANET; key technology; Application status前言随着社会的发展和科技的进步,人们对信息的需求日益高涨,而随时随地获取所需信息的渴望更使无线网络得到飞速的发展,在过去的十年里,无线自组网已经成为移动通信技术研究的热点之一,正得到越来越广泛的应用,并将在未来的通信技术中占据重要地位。
队列管理机制一、实验目的:学习DropTail和RED队列管理机制,以了解被动式和主动式队列管理机制的优缺点。
二、背景知识:DropTail和被动式队列管理机制――TCL全局同步RED和主动式队列管理机制:计算公式:avg=(1-w q)⨯avg+ w q⨯q w q为队列长度q的加权系统,0<w q< 1,通常设置的比较小P b=max p⨯(avg-min th)÷(max th-min th) max p为网管预先设置的丢弃概率值(如下图)1.0maxthP a= P b/(1-count⨯ P b) 对P b丢包概率的修正公式。
其中,count记录了从上一个封包被丢弃后有多少封包进入队列。
采用P a用意是希望能让封包丢弃概率的分布更均匀。
若想要有效地作用RED,适当选择w q≥1, max th>2⨯min th、max th>所有数据流中最大的封包大小。
设置参数很有必要,更详细的设置方法可以参考文献[3]。
三、实验步骤1.仿真的网络结构在这个模拟的结构中,r1和r2是路由器,其中的链路是将采用DropTail和RED队列管理机制以作为效率分析的比较,频宽为56kbps,传递延迟的时间为10ms。
其中的数据流数目可由用户在模拟时决定,下面的例子为10条TCP数据流。
我们要比较的效率是这10条数据流的平均吞吐量、第一条数据流的端点到端点平均延迟时间和队列长度变化。
2.TCL程序代码if{$argc!=2}{puts “Usage: ns queue.tcl queuetype_noflows_”puts “Example: ns queue.tcl myfifo 10”puts “queuetype_: myfifo or RED”exit}set par1 [lindex $argv 0]set par2 [lindex $argv 1]#产生一个仿真的对象set ns [new Simulator]#打开一个trace文件,用来记录封包传送的过程set nd [open out-$par1-$par2.tr w]$ns trace-all $nd#定义一个结束的程序proc finish{}{global ns nd par2 tcp start$ns flush-traceclose $ndset time [$ns now]set sum_thgpt 0#throughput=收到Ack数*Packet Size(Bit)/传送时间#收到Ack数=传送出Packet数for {set i 0}{$i<$par2}{incr i}{set ackno_($i) [$tcp($i) set ack_]set thgpt($i) [expr Rackno_($i)*1000.0*8.0/($time-$start($i))]#puts $thgpt($i)set sum_thgpt [expr $sum_thgpt+$thgpt($i)]}set avgthgpt [expt $sum_thgpt/$par2]puts “average throughput:$avgthgpt (bps)”exit 0}for { set i 0}{$i<$par2}{incr i}{set src($i) [$ns node]set dst($i) [$ns node]}#产生两个路由器set r1 [$ns node]set r2 [$ns node]#把结点和路由器连接起来for { set i 0}{$i<$par2}{incr i}{$ns duplex-link $src($i) $r1 100Mb [expr ($i*10)]ms DropTail$ns duplex-link $r2 $dst($i) 100Mb [expr ($i*10)]ms DropTail}$ns duplex-link $r1 $r2 56k 10ms $par1#设置r1到r2之间的Queue Size为50个封包大小$ns queue-limit $r1 $r2 50#把队列长度记录下来set q_ [[$ns link $r1 $r2] queue]set queuechan [open q-$par1-$par2.tr w]$q_ trace curq_if {$par1== “RED”}{#使用packet mode$q_ set bytes_ false$q_ set queue_in_bytes_ false}$q_ attach $queuechanfor {set i 0}{$i<$par2}{incr i}{set tcp ($i) [$ns create-connection TCP/Reno $src($i) TCPSink $dst($i) 0] $tcp($i) set fid_ $i}#随机在0~1s之间决定数据流开始传送的时间set rng [new RNG]$rng seed 1set RVstart [new RandomVariable/Uniform]$RVstart set min_ 0$RVstart set max_ 1$RVstart use-rng $rng#决定开始传送的时间for {set i 0}{$i<$par2}{incr i}{set startT ($i) [expr [$RVstart value]]#puts “start T ($i) $startT ($i) sec”}#在指定时间,开始传送数据for { set i 0}{$i<$par2}{incr i}{set ftp ($i) [$ftp ($i) attach-app FTP]$ns at $startT ($i) “$ftp ($i) start”}#在第50s时去调用finish来结束模拟$ns at 50.0 “finish”#执行模拟$ns run3.执行方法和结果($为shell的提示符号)(1)10条TCP数据流,采用DropTail队列管理机制:$ns queue.tcl myfifo 10average throughput 4353.6337788880564 (bps)(2)10条TCP数据流,采用RED队列管理机制:$ns queue.tcl RED 10average throughput: 4643.743454368604 (bps)结果分析:从上面的数据得知,在只有10条TCP数据流的情况下,RED队列管理机制能得到的平均吞吐量高于DropTail队列管理机制。
主动队列管理算法
主动队列管理算法是一种网络流量控制算法,旨在减少网络拥塞和提高网络性能。
该算法通过对网络流量进行分析和控制,能够主动地调整数据包的传输速率和优先级,以避免网络拥塞和数据包丢失。
主动队列管理算法主要包括四种类型:RED、AVQ、PIE和CoDel。
其中RED算法通过控制队列的长度和拥塞情况来控制网络流量,AVQ 算法则是通过对数据包进行分类和预测来控制网络流量。
PIE算法则是通过采用随机抽样的方式来控制网络流量,而CoDel算法则是通过测量数据包延迟时间来控制网络流量。
主动队列管理算法不仅可以提高网络性能,还能够有效地避免网络拥塞和数据包丢失。
因此,在网络流量控制领域,该算法被广泛应用于各种网络设备和系统中,例如路由器、交换机、防火墙等。
总之,主动队列管理算法是一种非常重要的网络流量控制算法,能够有效地提高网络性能和避免网络拥塞和数据包丢失。
- 1 -。
几种典型主动队列管理算法Active Queue Management (AQM)算法是一种在网络路由器中使用的管理队列的方法。
它的目标是通过减少网络拥塞来提高网络性能,减少延迟和数据包丢失。
下面是几种典型的AQM算法:1. 随机早期检测(Random Early Detection,RED):RED是最早的AQM算法之一,它基于网络中的拥塞情况来丢弃数据包。
RED通过随机选择和丢弃一部分数据包来避免队列过载。
当队列长度达到预定的最大值时,RED开始随机选择和丢弃部分数据包,这样可以提前检测拥塞并减少流量。
RED算法可以根据网络的需求进行调整,例如调整丢包概率和队列长度,以提供更好的网络性能。
2. 增量式RED(Incremental RED,iRED):iRED是对RED算法的改进。
iRED使用流量计数器以及随机选择丢包的机制来判断网络拥塞情况。
iRED通过监控队列长度和流量大小的变化来调整丢包概率,以此提供更好的拥塞控制。
3. Proportional Integral (PI) Controller:PI控制器也是一种常见的AQM算法。
它基于控制系统理论中的PID控制器原理,并使用积分和比例控制来调整队列长度。
PI控制器根据网络拥塞程度,使用增加和减少队列长度的操作来控制网络中的流量。
这种方法可以根据实际情况进行调整,以提供较好的拥塞控制。
4. 预测性拥塞控制(Predictive Congestion Control,PCC):PCC是一种基于机器学习的AQM算法。
它使用历史数据和机器学习模型来预测网络拥塞的发生。
PCC算法可以通过监控网络中的拥塞情况并调整流量来避免拥塞发生。
这种方法可以提前预测拥塞,并在拥塞前采取适当的措施,以减少延迟和数据包丢失。
5. 可变比重RED(Variable Packet Size RED,VPSRED):VPSRED是一种改进的RED算法,它考虑了数据包的大小对拥塞控制的影响。
DTN路由技术研究综述薛静锋,陆慧梅,石琳北京理工大学软件学院,北京(100081)E-mail:xuejf@摘要:DTN网络架构涵盖了无线传感器网络、Ad-hoc网络和星际网络等,在军事、科研探测和陆地民用等方面具有十分广阔的应用前景,是当前国际上备受关注的新兴前沿研究热点之一。
DTN延迟比较大,连接时断时续,并且节点存储容量和能量有限,因此传统的路由算法不适合于DTN。
本文从网关、命名机制等几个方面介绍了DTN的架构,研究分析了目前已有的DTN路由算法并对其进行分类,总结了算法的优缺点,包括单播路由算法和组播路由算法,最后指出了DTN的应用场景。
关键词: DTN,路由,单播,组播中图分类号:TP393 文献标识码:A1.引言DTN(Delay Tolerant Network)是一种新型的网络体系结构,最早是在2003年的国际会议上由Kevin Fall提出的[1],这种网络结构为很多面临挑战的网络(比如星际网络、传感器网络、陆地移动网络等)提供了互操作性。
这些面临挑战的网络通常延迟比较大、网络拓扑经常发生变化,并且在现有的网络体系结构上运行时性能很差。
DTN涵盖了目前存在的多种网络,使得它们可以充分利用自身网络的特点,进行交互操作。
DTN是在多种不同类型网络的传输层之上、应用层之下添加了一层即DTN层(也被称为bundle层),DTN层可以充分利用下层网络提供的服务进行数据传输等工作。
DTN路由技术是DTN中的关键,路由协议包括三个部分:如何建立网络的拓扑结构、如何维护网络拓扑和路由算法。
DTN路由问题并不像标准的动态路由那么简单,因为在DTN中,网络是时断时续的,即网络的拓扑结构是变化的。
与传统路由相比,DTN路由的主要目的并不是选择最短路径或者最少跳数,而是最大化报文传输的可能性。
目前很多路由协议如TCP/IP 是在一些网络前提下提出的,如节点事先知道网络拓扑结构等。
DTN并不符合这些基本假设条件,DTN路由的指的是在DTN层上进行的选路策略,并没有涉及到下层网络。
几种典型主动队列管理算法主动队列管理(Active Queue Management,AQM)算法是网络中用于解决拥塞问题的一种方法。
AQM算法旨在控制路由器或交换机上的队列长度,以避免拥塞的发生。
下面将介绍几种典型的AQM算法。
1. Drop Tail:Drop Tail是最简单的AQM算法之一、在Drop Tail算法中,当队列满时,路由器直接丢包。
这种算法简单直接,但它容易造成拥塞窗口的剧烈抖动。
当队列满时,所有的数据包都会被丢弃,这会导致发送端认为网络出现了丢包并将窗口减小,从而在网络中形成一个震荡现象。
2. Random Early Detection(RED):RED算法是一种基于概率的AQM算法。
在RED算法中,当队列的长度超过一定阈值时,根据概率丢弃数据包。
这个概率与队列长度成正比,队列越长,丢包的概率越高。
这种算法可以有效地控制队列的长度,并且能够根据网络的负载进行自适应调整。
3. Weighted Random Early Detection(WRED):WRED算法是RED算法的扩展版本,它引入了一定的服务质量(Quality of Service,QoS)机制。
WRED算法根据数据包的不同类型和优先级来设置不同的阈值和丢包概率。
例如,对于延迟敏感的数据包,WRED算法可以设置较低的阈值和较低的丢包概率,以保证其及时传输。
4. Random Early Detection with Classic Marking (REM):REM算法是RED算法的改进版本,它引入了经典标记机制。
在REM算法中,当队列的长度超过一定阈值时,数据包不会立即被丢弃,而是通过一个标记机制标记为丢失概率大于零的数据包。
发送端接收到标记的数据包后,将根据标记的概率进行重传。
这种算法可以减少重传次数,提高网络的性能。
5. Controlled Delay:Controlled Delay算法是一种以减少延迟为目标的AQM算法。
文章编号:1006 - 9348 (2021)03 - 0268 - 04主动队列管理下大时滞网络路径拥塞控制算法刘国芳,张炜(四川大学锦江学院,四川眉山620860)摘要:与传统的无线网络相比,大时滞网络对路径拥塞环境下的无线通道交换具有较高的要求。
为此提出主动队列管理下 大时滞网络路径拥塞控制算法。
首先利用主动队列管理算法对相邻路由节点网络路径的拥塞情况展开预测,进而分析网络 路由节点的队列状态;然后以优化后续节点队列、传输距离以及传输方向为目的,从路径概率选择、分组丢弃函数、WSN蚁 群路由选取三个角度优化网络路径,从而实现路径拥塞控制。
实验结果表明,上述算法能够有效缩短网络的传输时滞,且能 耗和丢包率较低,具有较高的应用价值。
关键词:主动队列管理;无线通道;交换网络;路由;拥塞控制中图分类号:TP399 文献标识码:BPath Congestion Control Algorithm for Large TimeDelay Networks under Active Queue Management 第38卷第3期__________________________计算机仿真____________________________2021年3月LIU Guo -fan g,Z H A N G W ei(Jinjiang College,Sichuan University,Meishan Sichuan620860,China)ABSTRACT:In the large time - delay network,there is a high demand for wireless channel switching in path congestion environment.In this regard,this paper puts forward a path congestion control algorithm with active queue management for large delay networks.Firstly,based on the active queue management algorithm,the congestion of the network path of the adjacent routing nodes was predicted,and the queue status of the network routing nodes was analyzed.Secondly,the optimization of subsequent node queue,transmission distance and transmission direction were taken as indicators to optimize the network path from path probability selection,packet drop function and WSN ant colony routing selection.Eventually,path congestion control was completed.The simulation results show that the algorithm has short transmission delay,low energy consumption and packet loss rate,and high practicability.KEYW ORDS:Active queue management;Wireless channel;Switching network;Routing;Congestion controli引言无线通道交换网络是设定在监测区域中的一些小型路 由节点,通过无线通信的方式衍生出的具有多跳性、自组织 性的网络系统[|]。
1 引言众所周知,由于Internet采用的是统计复用(statistical multiplexing)技术,因此必须提供拥塞控制机制。
TCP端到端的拥塞控制机制是确保Internet鲁棒性(robustn ess)的重要因素。
在发生拥塞时,TCP源端会降低发送数据的速度,从而使得大量的TCP连接能够共享一条拥塞的链路。
TCP拥塞控制机制已被证明在防止拥塞崩溃(congestioncollapse)方面取得了巨大的成功。
但这种机制的有效性依赖于两个基本的假设:所有(或者几乎所有)的流都采用了拥塞控制机制这些流采用的机制是同质的(homogene- ous)或者大体上相同即在相似的环境下按可比条件(丢包率、RTT、MTU)不会占用比TCP流更多的带宽,也即是TCP友好的(TCP-friendly)流。
但随着近十年来计算机网络的爆炸式增长,特别是多媒体业务的广泛应用,Intern et已经不可能再仅仅依靠端节点提供的拥塞控制机制。
这是由于下述原因,导致以上假设不成立:(1) 一些应用没有采用拥塞控制机制因而不能对拥塞作出反应。
许多多媒体应用和组播应用都属于此类。
(2) 有些应用使用了拥塞控制算法,但并不是TCP友好的,比如接受端驱动分层组播(Receiver-driven Layered Multicast RLM)采用的就是这种算法。
(3) 一些用户由于有意或无意的原因,使用了 non-TCP的拥塞控制算法。
比如修改TCP,使得窗口的初始值很大并且保持不变,即所谓的"快速TCP"。
另外,我们知道,Internet上的流量是由无数条异质的数据流混合而成的。
从有无有效拥塞控制机制的角度可以将这些异质的流分为以下三类:TCP-friendly流非适应(unresponsive)流:这种流是由于上述原因(1)造成的。
适应(responsive)流但非TCP-friendly流:这种流是由于上述原因(2)和(3)引起的。
很明显,这些不受TCP拥塞控制的应用会进一步增加Internet范围内拥塞崩溃的可能,并且TCP拥塞控制还存在着自相似、效率、公平性等方面的问题。
因此尽管TC P拥塞控制机制是必须的而且非常强大,但仍然需要采用基于路由器的拥塞控制机制对端节点的拥塞控制机制进行补充。
拥塞避免机制的首要任务是检测早期的拥塞。
这是因为,路由器能够有效地监控队列的长度,因此其也能有效地检测早期的拥塞(incipient congestion)。
拥塞避免机制的另一个任务是选择哪个流发出拥塞通知。
因为路由器能够全面地审视各个流对产生拥塞的影响,因此其也能够有效地决定将拥塞信息通知哪个源端,使其降低数据发送速度。
2 从传统的被动式队列管理到主动式队列管理由于路由器是基于包交换的设备,每个端口采用带宽统计复用,所以路由器必须在端口上维护一个或多个队列,否则路由器无法处理多个数据包同时向同一端口转发以及端口QOS等问题。
对队列进行管理直接影响路由器性能、拥塞管理能力以及Q OS能力。
路由器有两类和控制队列的算法:队列管理算法和队列调度算法。
前者主要是在必要时通过丢包来管理队列长度。
后者决定下一个要发送哪个包,主要用来管理各流之间带宽的分配。
由于Internet数据本质上是突发的,因此允许传输突发的数据包非常必要,而路由器中队列的重要作用就是吸收(absorb)突发的数据包。
较大的队列能够吸收更多的突发数据,提高吞吐量,但TCP机制往往会保持较高的队列占用,从而增加了数据包的排队延迟。
因此需路由器对队列进行管理,维持较小的队列长度。
因为维持较小的队列长度除了降低排队延迟,提高吞吐量外,还能保持较大的队列空间来吸收突发数据包。
拥塞控制机制就是要维持网络处于低延迟高吞吐量的状态。
当前的队列管理算法可以分为两大类:被动式队列管理(Passive Queue Management,PQM)和主动式队列管理(Active QueueManagement,AQM)。
2.1 被动式队列管理及其缺陷管理路由器队列长度的传统技术是对每个队列设置一个最大值(以包为单位),然后接受包进入队列直到队长达到最大值,接下来到达的包就要被拒绝进入队列直到队长下降。
这种技术也就是所谓的"去尾"(drop-tail)算法。
虽然这个方法在当前I nternet上得到了广泛的使用,但其存在几个重大缺陷:死锁(lock-out)问题:在某些情况下,"去尾"算法会让某个流或者少数几个流独占队列空间,阻止其他流的包进入队列。
这种"死锁"现象通常是由于同步(synchronization)或其他定时作用的结果。
满队列(full queues)问题:由于"去尾"算法只有在队列满时才会发出拥塞信号,因此会使得队列在相当长时间内处于充满(或几乎充满)的状态。
而队列管理最重要的目标之一就是降低稳定状态下队列的长度,因为端到端的延迟主要就是由于在队列中排队等待造成的。
全局同步(global synchronization)问题:由于Internet上数据的突发本质,到达路由器的包也往往是突发的。
如果队列是满的或者几乎是满的,就会导致在短时间内连续大量地丢包。
而TCP流具有自适应特性,源端发现包丢失就急剧地减小发送窗口,包到达速率就迅速下降,于是网络拥塞得以解除,但源端得知网络不再拥塞后又开始增加发送速度,最终又造成网络拥塞,而且这种现象常常会周而复始地进行下去,从而在一段时间内网络处于链路利用率很低的用状态,降低了整体吞吐量,这就是所谓地"TCP全局同步"现象。
除了"去尾"机制,另外两种在队列满时进行队列管理的机制是"随机丢弃"(rando m drop)和"从前丢弃"(drop front)机制。
当队列满时,前者从队列中随机找出一个包丢弃以让新来的包进入队列;后者从队列头部丢包,以便让新包进入队列。
这两种方法虽然都解决了"死锁"问题,但仍然没有解决"满队列"问题。
由于这几种方法都是在队列满了被迫丢包,因此称为被动式队列管理。
2.2 主动式队列管理及其优点在当前的Internet上,丢包是对端节点进行拥塞通知的重要机制,解决路由器"满队列"的方法便是在队列充满之前丢包,这样端节点便能在队列溢出前对拥塞作出反应。
这种方法便称为"主动式队列管理"(Active Queue Management)。
AQM是一族基于FIFO调度策略的队列管理机制,使得路由器能够控制在什么时候丢多少包,以支持端到端的拥塞控制。
AQM有以下优势:减少了路由器中丢弃的包的数量:Internet中数据包的突发本质是不可避免的,AQ M通过保持较小的平均队列长度(average queue size),能提供更大的容量吸收突发数据包,从而大大减少了丢包数。
进一步说,如果没有AQM,会有更多的包被丢弃,这主要是因为以下三个原因:1) 由于使用共享的队列和PQM,会不可避免地产生全局同步,导致很低的平均带宽利用率,也即吞吐量很低。
2) TCP从突发包的丢弃中恢复要比从单个包丢弃中恢复更复杂。
3) 如果一个数据包在到达目的端之前被丢弃,则其在传输过程中所消耗的资源都被浪费,降低了网络带宽的利用率。
因此,不必要的包丢弃也就意味着带宽的浪费。
对交互式服务提供了更低的延迟:AQM通过保持较小的平均队列长度,队列管理能够减少包的排队延迟(queueing delay),而排队延迟是造成端到端延迟(end to end delay)的主要原因。
这对交互式应用比如Web浏览、Telnet业务和视频会议等非常重要。
避免了"死锁"现象:AQM能够通过确保到来的包几乎总是有可用的队列空间,从而阻止"死锁"行为的发生。
也因为这个原因,AQM能防止路由器对低带宽高突发的流的偏见。
3 随机早期检测算法(Random Early Detection,RED)RED拥塞控制机制的基本思想是通过监控路由器输出端口队列的平均长度来探测拥塞,一旦发现拥塞逼近,就随机地选择连接来通知拥塞,使他们在队列溢出导致丢包之前减小拥塞窗口,降低发送数据速度,从而缓解网络拥塞。
由于RED是基于FI FO队列调度策略的,并且只是丢弃正进入路由器的数据包,因此其实施起来也较为简单。
3.1 随机早期检测的设计目标RED主要试图达到以下目标:最小化包丢失率和排队延迟避免全局同步现象避免对突发业务的偏见:网络中含有大量的突发数据,而传统的"去尾"算法对突发业务有很大的偏见。
在采用"去尾"算法的路由器中,如果某个流的突发性越高,则当该流的包进入队列时越容易造成队列溢出,从而导致连续地丢弃大量的该流的包。
即使在缺乏传输层协议有效配合的情况下也能控制平均队列长度,从而避免拥塞。
为了达成以上目标,RED采用了基于时间的平均队列长度,并且随机地选择正进入路由器地包进行丢弃。
这种方法能被有效地实施而无需在路由器中维持每个流(p er-flow)的状态信息。
3.2 随机早期检测算法RED算法主要分为两个部分。
首先是计算平均队列长度,以此作为对拥塞程度的估计。
另一个就是计算丢弃包的概率。
3.2.1 计算平均队列长度由于Internet数据的突发性,如果一个队列很多时候是空的,然后迅速被充满,又很快被取空,这时就不能说路由器发生拥塞而需要向源端发送拥塞指示。
因此,R ED在计算平均队长avgQ时,采用了类似低通滤波器(low-passfilter)带权值的方法:avgQ = (1-w)×avgQ+q×w其中,w为权值,q为采样测量时实际队列长度。
这样由于Internet数据的突发本质或者短暂拥塞导致的实际队列长度暂时的增长将不会使得平均队长有明显的变化,从而"过虑"掉短期的队长变化,尽量反映长期的拥塞变化。
在计算平均队长的公式中,权值w相当于低通滤波器的时间常数,它决定了路由器对输入流量变化的反应程度。
因此对w的选择非常重要,如果w过大,那么RED就不能有效地过虑短暂的拥塞;如果w太小,那么avgQ就会对实际队列长度的变化反应过慢,不能合理地反映拥塞状况,在这种情况下,路由器就不能有效检测到早期的拥塞。
w的值应根据不同情况预先设置,一般来说,它是由路由器允许发生的突发业务的大小和持续的时间所决定的。
3.2.2 计算丢弃包的概率计算平均队长的目的就是为了反映拥塞状况,根据拥塞的程度来计算丢弃包的概率,从而有效地控制平均队列长度。