Internet路由器主动式队列管理机制综述
http://tech.ddvip.com 2007年09月15日 社区交流 收藏本文
内容摘要:由于Internet采用的是统计复用(statistical multiplexing)技术,因此必须提供拥塞控制机制。TCP端到端的拥塞控制机制是确保Internet鲁棒性(robustness)的重要因素。在发生拥塞时,TCP源端会降低发送数据的速度,从而使得大量的TCP连接能够共享一条拥塞的链路。TCP拥塞控制机制已被证明在防止拥塞崩溃(congestion collapse)方面取得了巨大的成功。
RED拥塞控制机制的基本思想是通过监控路由器输出端口队列的平均长度来探测拥塞,一旦发现拥塞逼近,就随机地选择连接来通知拥塞,使他们在队列溢出导致丢包之前减小拥塞窗口,降低发送数据速度,从而缓解网络拥塞。由于RED是基于FIFO队列调度策略的,并且只是丢弃正进入路由器的数据包,因此其实施起来也较为简单。
3.1 随机早期检测的设计目标
RED主要试图达到以下目标:
最小化包丢失率和排队延迟
避免全局同步现象
避免对突发业务的偏见:网络中含有大量的突发数据,而传统的"去尾"算法对突发业务有很大的偏见。在采用"去尾"算法的路由器中,如果某个流的突发性越高,则当该流的包进入队列时越容易造成队列溢出,从而导致连续地丢弃大量的该流的包。
即使在缺乏传输层协议有效配合的情况下也能控制平均队列长度,从而避免拥塞。
为了达成以上目标,RED采用了基于时间的平均队列长度,并且随机地选择正进入路由器地包进行丢弃。这种方法能被有效地实施而无需在路由器中维持每个流(per-flow)的状态信息。
3.2 随机早期检测算法
RED算法主要分为两个部分。首先是计算平均队列长度,以此作为对拥塞程度的估计。另一个就是计算丢弃包的概率。
3.2.1 计算平均队列长度
由于Internet数据的突发性,如果一个队列很多时候是空的,然后迅速被充满,又很快被取空,这时就不能说路由器发生拥塞而需要向源端发送拥塞指示。因此,RED在计算平均队长avgQ时,采用了类似低通滤波器(low-pass filter)带权值的方法:
avgQ = (1-w)×avgQ+q×w
其中,w为权值,q为采样测量时实际队列长度。这样由于Internet数据的突发本质或者短暂拥塞导致的实际队列长度暂时的增长将不会使得平均队长有明显的变化,从而"过虑"掉短期的队长变化,尽量反映长期的拥塞变化。
责编:豆豆技术应用