4 BLUE 与RED使用平均队长来管理拥塞不同,BLUE使用丢包事件和链路空闲事件来管理拥塞拥塞。 BLUE维持了一个概率Pm用以标记包。如果由于队列溢出导致持续的丢包,BLUE就增加Pm,因而增加了向源端发送拥塞通知的速度。相反,如果由于链路空闲导致队列空,BLUE就减小Pm。这样BLUE就能有效地控制发送拥塞通知信息地速度。其具体算法如下所示:
Upon link idle event: if ((now-last_update)>freeze_time) Pm = Pm-d2; Last_update = now; Upon packet loss event: if ((now-last_updatte)>freeze_time) Pm = Pm+d1; last_update = now; |
BLUE地主要参数有d1、d2和freeze_time。其中,d1决定了当队列溢出时Pm增加的量,d2决定了当链路空闲时Pm减少的量。freeze_time决定了连续改变Pm的最小时间间隔,使得Pm改变之后在再次变化之前能有效发挥作用。一般来说,d1要比d2大很多,这主要是因为当拥塞管理太保守(conservative)或太激进(aggressive)时,都会导致链路使用率很低;而丢包只发生在拥塞管理太保守时。这样,通过赋予丢包事件更大的比重,BLUE能够对流量大量迅速地增加很快地作出反应。
BLUE最大地贡献在于,使用相对较小地缓冲区就能够完成拥塞控制。这样,BLUE减少了端到端延迟,提高了TCP流的吞吐量。另外,较小的缓冲区需求也使得路由器有更多的自由空间来执行其他的路由器功能,比如存储更大的路由表,从而提高了路由器的性能。而要达到类似的效果,RED则需要大很多的缓冲区。
BLUE基于丢包事件和链路空闲事件的拥塞管理,能够较好地估计拥塞程度,从而作出适当的反应。因此其标记包地比率相对较稳定,这又使得队长也相对稳定,减少了延迟抖动。而RED基于平均队长地拥塞管理,由于不能正确及时地估计拥塞严重性,特别是在负荷很重,变化很快的情况下,常常导致队长波动很大。增加了丢包数和延迟抖动,甚至产生全局同步现象,降低链路使用率。
[1] [2] [3] [4] 下一页