队列调度算法在VoIP电话系统上的应用研究

2009-06-08 08:51阮少伟
管理观察 2009年12期

阮少伟

(徐州工程学院 江苏 徐州221006)

【摘要】本文运用OPNET网络仿真方法,考察了在基于VoIP业务的网络下,不同调度算法对各个业务时延性以及时延抖动性方面的影响,得出结论:PQ调度算法以牺牲低优先级业务带宽的代价,满足了高优先级业务的时延性以及时延抖动性,因此最适合处理VoIP等实时性较强的业务。

【关键词】列队调度算法;VoIP电话;OPNET网络仿真

一. VoIP电话系统的介绍

VoIP系统是近年来发展起来的基于分组网络传送语音信号的新型电信业务。与传统电话相比,IP电话具有价格低廉,可方便开展各种增值业务的优势。

与VoIP相关的协议主要有ITU-T的H.323协议、IETF的SIP协议等,而支持H.323协议的IP电话系统是新一代宽带IP网络通信的主流设备,该系统主要包括终端、网关、网守、多点控制单元等。在H.323系统中不同领域可以存在一个或多个网守并且它们之间可以相互通讯。所有的H.323终端设备都必须在其所属领域的网守注册以获得H.323协议的应用。

二.调度算法的介绍。

在目前常用的队列调度算法中,目前较为常用的有4种类型;先入先出队列(FIFO)、优先级队列(PQ)、加权循环队列(WRR)以及加权公平队列(WFQ)。

1.先入先出(First In First Out)

FIFO(First In First Out)算法是一种基本的队列调度算法,也是目前路由器上最常用的一种调度策略。在这种调度策略下,分组进入队列的顺序与被传输的顺序相同。通过将分组放置到一个队列中,并按照它们到达的先后顺序对它们进行调度。

该算法的特点是:队列管理简单,调度实现方便,且不需要对分组进行重排序。其缺点是:不能够对有不同服务等级要求的业务区别对待,即不能对不同流提供区分服务;不能实现对UDP和TCP之间的公平性;当拥塞发生时,所有的业务流的平均排队时延都增加,所以这种队列调度方式对所有业务流影响都是一样的。

2.加权循环(Weighted Round Robin)

WRR(Weighed Round Robin)算法是将交换芯片的各个端口分为多个优先级,其优先级的划分可以根据服务类型或业务属性,队列之间采用的是轮流调度机制,从而保证了每个队列都会得到一定的服务时间。

WRR为每个队列都配置了一个加权值,其代表着获取资源的比重。如一个10M的4队列端口,假设它的WRR队列调度算法为其配置的加权值分别为50、30、10、10,则在调度时,从高到低优先级队列分别获得带宽为5Mbits/s、3 Mbits/s、1 Mbits/s、1 Mbits/s,这样就可以保证最低优先级队列至少获得1 Mbits/s的带宽。

WRR为所有业务队列服务,并且将优先权分配给较高优先级队列。在大多数情况下,WRR首先处理的是高优先级数据,但是当高优先级业务超出链路容量时,较低优先级的业务并不会因此而完全阻塞。WRR的另一个优点是:尽管多个队列调度是轮循进行的,但并不是每个队列都固定地分配服务时间片,倘若某个队列为空,则会立即转换到下一个队列调度,而不会在该空队列上停留,从而使带宽资源得到充分的利用。

这种算法比较适合用于一般网络通信,既能为高优先级业务提供高带宽,同时也避免了低优先级业务饿死。

3. 加权公平队列(Weighted Fair Queue)

WFQ(Weighted Fair Queue)算法是一种基于数据流的排队算法,它提供了动态的、公平的排队方式,基于权重来划分通信队列的带宽。该算法根据源和目标地址,不同的协议和会话端口号等特性将所有数据流分成不同的类型,赋予相应的加权系数,并分配对应的带宽。在缺省状态下,WFQ尽量限制大流量的通信从而保护小流量及连接不畅的通信,达到让所有数据流使用相等网络资源的目的。

WFQ算法的优点是对所有应用都能比较公平地提供服务质量,对于要求较高的业务则可以通过设置权重保障优先级,能智能划分和调度队列,配置相对简单。缺点是由于相对公平,因此不会保证提供对QoS要求很高的应用,同时算法计算复杂,比较消耗交换芯片的处理能力。而且WFQ不具备一个针对个别数据流进行控制的机制,因此也无法为每一个数据流提供带宽的保证。

加权公平队列算法适用于应用较复杂,且应用相对公平的网络。

4. 优先级队列(Priority Queue)

PQ(Priority Queue)算法是根据业务属性定义各自的优先级别,并且在调度处理时,先处理高优先级业务。若交换工作在第二层时,则可使用MAC数据包头的三个字段(源地址、目的地址、标记号)来区分业务的级别;对于三层,则可通过使用IP包头的五个字段(源地址、目的地址、源端口、目的端口和上层协议号)来区分业务的级别。

在实施队列调度时,PQ严格按照优先级从高到低的次序优先发送较高优先级队列的数据,当较高优先级队列为空后,再发送较低优先级队列中的数据。PQ特别适合与对延迟抖动较敏感的应用,采用优先模式进行队列调度,可以让关键业务如音频、视频业务的报文进入最高优先级队列,保证在拥塞时总是获得转发服务。

采用该算法调度时,只要高优先级队列中还有数据包,低优先级队列便得不到调度。该算法优点是配置简单,绝对保证高优级应用的带宽;缺点时不能保证高优先级以外的服务得到合理带宽,甚至会饿死,从而不能公平地保证各种应用地服务质量。

三.OPNET对有关算法的仿真

为了验证队列调度管理算法的相关应用,我们以Opnet10.0为软件平台,在此基础上对Diffserv机制的队列调度管理进行仿真计算。整个需要验证的网络同时会运行四种业务,每种业务都设有不同的优先级别,并设置了相应的PHB转发方式。图1为需要验证的网络拓扑结构,其中,交换机A,交换机B分别以10M以太网接口与四种业务终端相连。路由器A,路由器B为边缘路由器,路由器A_1,路由器A_2为中间路由器,它们之间以E1接口相连,构成Diffserv域。

确定好网络拓扑以后,就需要对四种不同业务的Diffserv模型进行配置了。首先要进行配置的是四种不同业务所对应的PHB模型。我们假设节点6到节点8为我们所要关心的VoIP电话业务,因此选定其应用模式为Voice over IP Call(PCM Quality) ,根据IP语音电话对实时性要求较高,对时延、时延抖动要求敏感的特点,我们将此节点对设置为EF PHB类型,同时将语音编码方式设为G.711编码方式。同理,我们把其余三节点对分别设为AF11,AF13,BE PHB类型,其对应的业务分别假定为Video、Http、Ftp。在选择调度算法方式上,这里主要设置了四种不同的场景,分别对应着:FIFO,WFQ,WRR以及PQ算法,业务的QoS配置选择的是基于DSCP模式(FIFO除外)。每个终端配置该业务所对应的DSCP值,边缘路由器通过DSCP值对业务进行分类,并将DSCP值映射到相应的PHB中,中间路由器再根据设、定的PHB方式进行转发。四种业务VoIP、Video、Http、Ftp的 PHB映射关系分别为EF、AF11、AF13、BE;DSCP映射关系分别为1011110、1011110、001010、000000;其中WFQ分配的参数权值分别为60、30、10、5;WRR所分配的参数权值分别为60、25、10、5;PQ所配备的优先级分别为High、Medium、Normal、Low。

因为本文主要考虑的是VoIP业务,所以Opnet的仿真统计变量的收集主要是考虑语音传输在整个网络拓扑中的实时性,其中包括语音传输时延及时延抖动。Opnet仿真中时间设为1000s。整个仿真结果如下组图示,图2、3分别显示了整个网络拓扑中的语音端到端时延以及时延抖动。

从上两图可以看出,当发生网络拥塞时,与其它算法相比,PQ算法可以以牺牲低优先级业务带宽,甚至使其饿死为代价,有效地保护整个网络拓扑中的高优先级业务,从而缩短语音包的端到端平均时延以及时延抖动。

参考文献

[1]. 张海燕 阮方 IP电话系统网守的研究与实现 计算机与网络 2003年2期,134

[2]. 袁琦 缎世惠 Diffserv机制的研究及其仿真 电信网技术 2003(2)9-10

[3]. 孙屹 梦晨 OPNET通信仿真开发手册 北京:国防工业出版社 2005

[4]. 王文博 张金文 OPNET Modeler与网络仿真 北京:人民邮电出版社 2003

[5]. 陈敏 OPNET 网络仿真北京:清华大学出版社 2004

[6]. 姜国臣 谭贤四等著 排队规则对FTP,Viedo,VoIP应用的性能影响 现代电子技术 2006(5),50-51