目前,国内、外许多科研机构对主动队列管理技术进行了大量深入研究。AQM技术主要被用于缓解网络拥塞,提高服务质量,同时可以避免分组的连续丢弃,从而防止全局同步,提高网络吞吐量。Nagle于 1984年发表了第一篇关于拥塞控制方面的文章,随后, Van Jacobson等学者便投入到网络拥塞控制的研究中去。TCP/IP,ATM, Frame Relay, IP Multicast都有涉及拥塞控制的问题。
路由器中最常用的队列管理策略是“尾丢弃”(tail drop),从拥塞控制的角度分析,它是一种拥塞恢复机制,已经在Internet上成功工作了许多年,但它有3个严重的缺陷:(1)持续的满队列状态;(2) 业务流对缓存的死锁;(3)业务流的全局同步。“首丢弃”(drop from front)是另一种由队列溢出触发的管理策略,当有新的分组到达时,选择位于队列头的分组丢弃。 Lakshman等人指出该策略优化了TCP的性能,譬如改善了公平性、防止了死锁,因为“首丢弃”使得分组的丢失分布服从连接对缓存的占用。为了进一步解决全局同步问题,在分组丢弃策略中引入了随机概念,使得那些导致拥塞的主要连接在拥塞的恢复中承担了主要的责任。“随机丢弃”网关增强了公平性,提高了大时延连接的吞吐量,随之而来的计算开销却是不可避免的[7]。10100
“首丢弃”和“随机丢弃”对死锁和全局同步是有效的,但没有解决持续的满队列问题。如果路由器在拥塞发生前采取一些预防措施,那么满队列问题是可以得到解决的。主动的而非响应性的分组丢弃就是一种有效的手段,相应的队列管理策略被称为“主动队列管理”(Active Queue Management ,AQM),它是近来端到端拥塞控制研究中的一个热点。AQM与ECN 结合,通告拥塞的信号不再是唯一的分组丢弃,而可以采用标记分组来通知信源减速,这样会进一步提高连接的有效吞吐量。AQM的主要技术目标是在减小排队时延的同时保证较高的吞吐量,具体分析AQM解决的问题主要包括以下4方面:
(1)早期探测路由器可能发生的拥塞,并通过随机丢弃或标记分组来通知源端采取措施避免可能发生的拥塞;
(2)公平地处理包括突发性、持久性和间隙性的各种TCP业务流;
(3)避免多个TCP连接,因为队列溢出而造成同步进入“慢启动”状态;
(4)文持较小的队列长度,在高吞吐量和低时延之间做出合理平衡。
虽然Braden等人在IETF提出AQM的研究动议是在1998年,但与其密切相关的RED (Random Early Detection)算法的研究却是由来已久了。早在1993 年, Floyd和Jacobson就提出了RED,当时的主要目的是克服“早期随机丢弃”(Early Random Drop,ERD)网关偏袒突发业务而造成的不公平问题。随后,围绕着AQM的研究逐渐丰富起来[8]。
RED算法作为主动队列管理机制的实现算法,它是以一种更为主动的方式来管理队列,其主要目标就是结合平均队列长度和早期拥塞指示来同时实现低排队延迟和高吞吐量。但是RED算法的性能敏感于设计参数的网络状况,在特定的网络负载状况下依然会导致多个TCP的同步,造成队列震荡,吞吐量降低和时延抖动加剧。当有大量活跃的TCP连接时,链路中总的流量往往突发性很高,队列长度的增减非常迅速,而RED算法由于在不同的场景下对参数设置有不同的要求导致常常不能对这一情况做出及时的反应。在这种情况下,路由器从检测到拥塞到瓶颈链路负荷开始下降的这段时间里,会有大量包被丢弃,从而严重影响链路的利用率[9]。
而BLUE算法使用丢包事件和链路空闲事件来管理拥塞。如果由于队列溢出导致连续丢包,BLUE就增加丢包概率Pm。,因而增加了向源端发送拥塞指示的速度。相反,如果由于链路空闲导致队列空,BLUE就减小Pm。这样BLUE就能有效地控制发送拥塞通知信息的速度。 主动队列管理算法研究现状:http://www.751com.cn/yanjiu/lunwen_9188.html