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


9 AQM提供QoS以及在区分服务中的应用
伴随着Internet的高速增长的便是IP业务的多样化和快速增长 。现有的Internet所提供的"极力而为"(best-effort)服务显然不能满足不同用户、不同业务对不同服务质量的(Quality of Service QoS)的要求 。因此IP QoS已成为当前的研究热点 。
IP QoS体系结构可以分为两种基本类型:
基于资源预留:网络资源按照某个业务的QoS要求进行分配,制定资源治理策略 。IETF提出的综合服务(IntServ)体系结构便是基于这种策略 。
图:RIO算法示意图
基于优先级:对业务流进行分类、整形、标记 。按照资源治理策略分配资源,对QoS要求高的业务给以优先处理 。IETF提出的区分服务(DiffServ)便是基于这种策略 。
由于综合服务存在着扩展性等问题,使得其发展碰到了很大障碍,因此导致了区分服务的产生 。区分服务的目标在于简单有效,以满足对可扩展性的要求 。
9.1 区分服务
在区分服务网络中,边界路由器根据用户的流规格(stream profile)将用户流划分为不同的级别,再聚合成流聚集(stream aggregate),聚集信息存放在IP包头的DS标记域,称为DS标记(Differentiated Services CodePoint,DSCP) 。内部节点则根据DSCP提供不同质量的调度转发服务,其外部特性称为每跳行为(Per-Hop-Behavior,PHB) 。DiffServ的服务类型除了传统的极力而为的服务外,还有确保服务(Assured Service)和奖赏服务(Premium Service) 。它们分别对应快速转发(EXPedited Forwarding, EF) 型PHB和确保转发(Assured Forwarding, AF)型PHB 。
9.1.1 确保服务
奖赏服务严格保证用户的带宽,为用户提供低延迟、低抖动、低丢失率和保证带宽的所谓"三低一保证"的端到端或网络边界到边界的传输服务,是目前区分服务中服务级别最高的种类 。
与奖赏服务的严格保证不同,确保服务是从统计上保证用户的带宽 。确保服务最具吸引力的是其实现机制较为简单,只要采用简单的标记和丢弃机制就能实现IP QoS 。在发生拥塞时,确保服务通过控制丢弃优先级,提供了比"极力而为"服务更好的服务 。确保服务的基本思路是:
边界路由器标记包,预约带宽内的标为IN,否则标为OUT 。
发生拥塞时,Out包的丢弃率大于In包 。
9.2 RIO(RED with In and Out?/strong>?
RIO的基本思想是:边界路由器监视每个进入网络的用户数据流,根据它们的服务规格对包进行标识,预约带宽以内的标为IN(in profile),超出的标为OUT(out profile) 。在拥塞的路由器上,Out包被丢弃的概率要大于In包,从而在一定程度上保护In包 。RIO的算法如图所示 。
For each packet arrival
If it is an In packet
Calculate the average In queue size avg_in
Calculate the average queue size avg_total
If it is an In packet:
if min_in
RIO算法是基于RED算法的,但对RED算法进行了扩充,使其能在一个队列中治理In包和Out包,而不需要维持两个队列 。因为假如维持两个队列,将会增加包的乱序,从而导致TCP性能降低或者增加延迟抖动 。RIO有两套参数:一套是(min_in,max_in,max_in_p),用来计算In包的标记率;另一套是(min_out,max_out,max_out_p),用来计算Out包的标记率 。可以通过选择这两套参数使得RIO增大Out包的丢包率,从而保护In包 。一般来说,min_in>=max_out,max_out_p>max_in_p,并且In包的丢包率依靠于In包的平均队长avg_in,而Out包的丢包率依靠于总的平均队长avg_Q 。这样,一旦RIO检测到早期拥塞,首先丢弃Out包,并且直到Out包全丢了,假如继续拥塞,才开始丢弃In包 。
实际上,确保服务就是RIO方法的扩充 。目前,绝大部分区分丢弃机制(differentiated drop mechanism)的研究都是基于RIO方法的 。RIO已成为实现区分服务的一种简单有效的方法 。

推荐阅读