4 Internet路由器主动式队列管理机制综述( 二 )


9.2.1 RIO性能分析
对确保服务而言,根据网络是否能够满足其规格要求的带宽可以分为"充分提供"(over-prov- isioned)和"不充分提供"(under-provisioned)两种情况 。
保护TCP的吞吐量免受RTT影响:由于TCP的吞吐量是和RTT成反比 。在网络不能充分提供的情况下,小RTT的连接能更块地增加拥塞窗口的大小,因而能更快地超过其规格要求,产生更多的Out包占用剩下的带宽 。但是,这些小RTT连接的Out包并不能阻止大RTT连接的In包进入路由器队列,因而大RTT连接的吞吐量至少能在规格范围内得到保证 。在网络充分提供的情况下,RIO能充分保证大RTT连接的吞吐量,但其获得的剩余带宽较少 。
保护TCP流的吞吐量免受非适应流影响: 在网络充分提供的情况下,RIO能在规格范围内保护TCP流的吞吐量,但所有剩余带宽都被非适应流占用 。在网络不能充分提供的情况下,也只有非适应流能达到其规格要求,但其并不能占用超过规格要求的资源 。另外,RIO无需每流状态信息,简单易行 。
基于同样的原因,Web类流也得到了较好的保护 。由于在现在的Internet上,Web流已占总流量的50%,因此,部属基于RIO的确保服务也有其现实性 。
事实上,在网络还有剩余带宽的情况下,RTT大小、包的尺寸、聚流中单流的数量、目标速度以及是否存在非适应流都会影响TCP流对剩余带宽的使用 。另外,假如其它方面都相同,用户并不能按规格要求成比例地享用剩余带宽 。
若网络带宽不能满足用户的规格要求,用户获得的性能也是更多的受到了TCP和RED在竞争的流之间分配带宽方式的影响而不是规格本身 。但规格要求低的用户总能比规格要求高的用户更快地接近目标带宽 。
9.3 带权重的RED(Weighted RED )
WRED是CISCO公司提出的一种支持区分服务的AQM机制 。与RIO一样,WRED基本思路也是在IP包头按照某种策略进行标记,丢包优先级基于该标记 。WRED能支持8个独立的丢包优先级,每个级别配置一套独立的RED参数,如下图所示:
图7:WRED示意图1(交错型)
图8:WRED示意图2(重叠型)
WRED和RIO最主要的区别在于,WRED只使用一个平均队长来计算丢包率,而RIO需要两个 。WRED计算平均队长和RED中一样,是基于队列中所有的包,而RIO除此以外还需要计算In包的平均队长 。
WRED的参数设置有两种方式,一种是和RIO一样,称为交错型(staggered),每个级别都有一套参数(min_th(i),max_th(i),max_p(i)),并且满足max_th(i)
9.4 RIO和WRED性能的比较
RIO和RED都是基于RED的变种 。事实上,根据RED阈值的套数、计算平均队列的机制可以将RED变种分为四类,如图5所示:
图9:RED变种
像WRED和RIO这类有多套阈值的RED变种可以统称为MRED(Multi-Level RED) 。最常用实现区分服务的AF PHB的两种MRED便是RIO和WRED了 。虽然这两种算法很相似,但在性能上还是有差别:
对ON-OFF突发流,RIO在保护低丢弃优先级的包方面优于WRED 。
对短时(short lived)流,RIO的处理速度高于WRED 。
在保护低丢弃优先级的包方面要达到同样的效果,WRED比RIO需要更大的阈值,这样就意味着延时的增加 。
9.5 基于分类的阈值(Class-Based Thresholds CBT)
除了RIO和WRED,另一种可以来实现区分服务的AQM就是CBT 。CBT的基本思想是基于一定的策略对业务进行分类,每一类都有一个阈值 。CBT,和RED一样,通过平均队长来控制标记包的概率;不同之处在于,当一个包进入路由器时,首先要计算该类业务的平均队长,计算方法和RED中计算平均队长一样,假如平均队长大于该阈值,则丢弃包;否则,再按照RED算法进行丢包 。

推荐阅读