浅析IP网络QoS队列调度策略
2009-10-19吴掬鸥
吴掬鸥
摘要:文章简要分析了常见IP网络QoS(Quality of Service)队列调度技术的基本操作,基本队列调度算法(包括FIFO,PQ,RR,WRR)的特点,在介绍了几种常见队列调度策略的同时,对各类别队列技术所针对网络环境的具体应用进行了分析,列举配置案例,为QoS具体实施提供参考。
关键词:队列(queue);调度算法;队列调度策略
中图分类号:TP393文献标识码:A
文章编号:1674-1145(2009)23-0153-02
QoS(Quality of Service)即服务质量,是用于衡量使用一个服务的满意程度。随着Internet规模的不断增长,IP网上出现了大量的实时业务。由于实时业务对网络的传输延时、延时抖动等特性较为敏感,因此这些实时业务通常需要一套行之有效的QoS控制机制来提高工作效率以保证网络的高效运行,当网络过载或拥塞时,QoS控制能确保关键业务量不延迟或丢弃。
QoS所涉及的工作内容包括:分类,标注,队列策略,拥塞规避,流量整形等很多方面,到目前为止,QoS已经拥有了一套较为完整的运作机制,这套机制的运作所涉及的内容十分复杂,本文仅针对这套机制中较为难理解和应用的队列调度策略进行了相应分析,以供参考。
一、接口队列的组成
网络拥塞会发生在任何地方,速率不匹配、链路汇聚、数据合流都会导致拥塞。队列(queuing)技术可以用来管理拥塞,从而提供带宽和延迟保证。
队列特指在网络环境下的线性操作,这种操作决定了数据包在通过网络设备接口时的一系列过程。通常在网络设备上,每个接口都有硬件队列系统和软件队列系统两个组成。当接口硬件拥塞,则需要使用软件排队来进行管理。当硬件队列机制中有空间,那么数据包将不经过软件队列机制。设备根据接口配置的带宽来决定硬件排队的长度。减少硬件排队长度有两个好处:减少了数据包排队的最大时间、加快了QoS的软件应用。
二、基本队列调度算法
队列在对数据包的处理可以基于数据包优先级来进行,也可以基于分类来进行。基本的过程是先创建队列,再将数据包根据分类分配到不同的队列,并且安排数据包的传输。常见的几种队列算法包括:FIFO(先进先出)、PQ(优先级排队)、RR(循环调度)、WRR(加权循环调度)四种。
(一)FIFO
先进先出、最简单的一种排队机制,只有一个队,提供了基本的储存转发能力,是排队算法的默认算法、适用于大型链路和低延迟的网络环境中。
(二)Priority Queuing
优先级队列使用多个队,允许按优先级进行次序分类。常常在进行下一个队列之前将第一个队列清空。先转发高优先级的数据,给予了高优先级绝对的优惠。处于活动状态的源往往被分配到一个高优先级队列中。这种算法有可能会导致低优先级的数据迟迟不能被转发,但可以使用流量模型来限制高源优先级数据流的速率。
(三)Round Robin
循环调度使用多个队,不按照优先级进行次序分类,从每个队列中发送数据包,如:从队列1发一个包,再从队列2发一个包,再从队列3发一个包,如此循环进行。
如果数据包的尺寸相同,那么所有的队列会平均的共享带宽,如果某个队列的数据包较大,那么这个队列会享受到更大的带宽。
(四)Weighed Round Robin
加权循环调度允许优先顺序化,并为每一个队列分配一个权重,然后按权重比例从队列中发送数据包,例如:有4个队列,权重分别是40、20、25、15,那么在发生拥塞的时候,队列1可以使用40%的带宽,以此类推。
三、常见队列调度策略和案例
队列的调度策略可以看成是将各队列算法的系统化,除了FIFO可以看成是无策略外,其他被各大厂商所支持的调度策略,主要包括:
Preference Queue(优先级队列PQ),Customized Queue(用户定制队列CQ),Weighted Fair Queue(加权公平队列WFQ), Class-Based-WFQ(基于类的加权公平队列CBWFQ),Low Latency Queue(低延迟队列LLQ)等。
这里以配置和应用较为复杂的CQ,CBWFQ和LLQ为例讨论。
(一)CQ用户定制队列
CQ是一种根据协议,端口号,以及其他标准分配队列空间从而保证业务带宽的队列方法。定制队列采用轮询的方式处理队列。CQ使用了17个子队列(其中0子队列是PQ队列,优先级很高,留给系统使用),CQ使用RR(Round-Robin)循环调度机制。
CQ的优点在于对于每种流量都保证一定的带宽,防止流量被“饿死”,在大多数平台上都支持。CQ的缺点主要包括:每个子队列都会继承FIFO队列的缺点,需要在每一跳上手工的设置分类,不准确的带宽分配,执行调度时会引入抖动,因此不适合对延迟敏感的应用。
(二)CBWFQ基于类的加权公平队列
CBWFQ(通常使用ACL)定义数据流类别,并将注入宽带和队列限制等参数应用于这些类别。CBWFQ扩展了WFQ的功能标准来提供自定义通信类型支持。其工作流程图如图1:
CBWFQ采用了混合的算法,根据IP优先级或者DSCP、输入接口、IP报文的五元组等规则来对报文进行分类;对于MPLS网络的LSR,主要是根据EXP域值进行分类。然后让不同类别的报文进入不同的队列。对于不匹配任何类别的报文,报文被送入系统定义的缺省类。
CBWFQ集中了CQ和WFQ的优点,可以支持64个流量类,每个流量类均有自己的队列,队列使用WRR算法进行轮询。CBWFQ是数据应用中的很高效的算法,但不能为实时应用提供严格的优先级保障。为了避免造成后台进程永远得不到带宽,CBWFQ占用的带宽不要大于链路总带宽的75%。
(三)LLQ低延时队列
LLQ也是一种混合算法,集成了CQ、PQ、WFQ的优点。严格地说,应该称为PQ+CBWFQ。LLQ在CBWFQ的基础上增加了严格的优先级保证。常用于语音网络。基于同样的考虑,LLQ占用的带宽不要大于链路总带宽的33%。LLQ的体系结构如图2:
只要LLQ中有报文,系统就会发送LLQ中的报文,所以LLQ中的报文被发送的延迟最多是接口发送一个最大长度报文的时间,无论是时延还是时延抖动,LLQ都可以将之降低为最低限度。这为对时延敏感的应用如VOIP业务提供了良好的服务质量保证。
四、应用配置案例
下面使用一个比较典型的案例来说明(配置案例均采用Cisco公司的系列产品的命令行):
需求:路径带宽为512Mbps,四种应用流量,需要保证如下几点:
流量1,某一具体应用流量,永远优先传输,最小带宽保证为133Mbps;
流量2,某一具体应用流量,次优先传输,最小带宽保证为200Mbps;
流量3,此为业务流量,保证在1和2后的其余带宽下传输即可;
流量4,某一具体应用流量,保证在123流量外的带宽下传输即可。
具体配置如下:
第一步,定义ACL匹配应用流量:
ip access-list extended tra1_acl permit tcp 10.1.1.0 0.0.0.255 10.1.2.0 0.0.0.255 eq 804
ip access-list extended tra2_acl permit tcp 10.1.3.0 0.0.0.255 10.1.4.0 0.0.0.255 eq 861
ip access-list extended tra4_acl permit ip 10.1.5.0 0.0.0.255 10.1.6.0 0.0.0.255
第二步,定义class-map匹配相关ACL:
class-map match-all tra1_cmap
match access-group name tra1_acl
class-map match-all tra2_cmap
match access-group name tra2_acl
class-map match-all tra4_cmap
match access-group name tra4_acl
第三步,定义policy-map:
policy-map tra_pmap
class tra1_cmap
set precedence 5
plicy cir 133000000 bc 145000000 be 150000000 conform-action transmit exceed-action set-prec-transmit 3 violate-action set-prec-transmit 2
bandwitch 133000
class tra2_cmap
set precedence 4
policy cir 200000000 bc 30000000 be 33000000 conform-action transmit exceed-action set-prec-transmit 3 violate-action set-prec-transmit 2
class tra4_cmap
set precedence 1
class class-default
set precedence 2
第四步,绑定policy-map于相应的接口:
int pos1/0/0
service-policy output tra_pmap
至此,配置完毕。
五、结语
队列调度是QoS控制的核心技术之一。队列调度在基本算法的基础上提出了各种有针对性的结构,能有效地解决了对各种特定流量或突发性数据流的处理。合理地运用队列调度策略可以帮助实现更好的网络Qos服务。
参考文献
[1](美)杜兰著,宁科,等译.IP网络的Cisco QoS管理.机械工业出版社,2002.
[2]林闯,单志广,任丰原.计算机网络的服务质量(QOS).清华大学出版社,2004.
[3](美)斯齐格蒂著,田敏,宋辉译.端到端QoS网络设计.人民邮电出版社,2007.
[4]Amir S.Ranjbar.CCNP ONT Official Exam Certification Guide.May,2007.
[5](美)弗拉纳根著,尹敏,张卫译.Cisco Catalyst QoS—园区网中的服务质量.人民邮电出版社,2004.