多队列VC调度算法研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多队列VC调度算法研究 
吴舜贤 刘衍珩 田明
吉林大学计算机科学与技术学院,吉林 长春 130012 
E-mail:wushxian@
摘 要 本文首先分析了VC和GPS/PGPS分组调度算法的优点和缺点,在此基础上提出了一种具有GPS调度算法特性的多队列VC调度算法MQVC。

完整阐述了MQVC的设计目标、改进措施,并给出了MQVC算法模型和算法描述,通过定理和引理证明了该模型比单队列VC 和PGPS调度算法模型在实现复杂度、系统调度性能和包的丢失等方面的明显改善。

网络仿真结果显示该算法具有良好的服务质量性能。

关键词 调度算法,虚拟时钟,MQVC,GPS,服务质量。

中图分类号:TP393.02 文献标识码:A
1引言 
在高速路由器技术研究中,核心部分之一是路由器中分组调度算法研究[1]。

通过对调度算法的综合比较[2]发现集成服务网络分组调度算法中,VC (Virtual Clock) [3,4]和GPS (Generalized Processor Sharing)/PGPS(Packet-by-packet Generalized Processor Sharing)[5]是两种比较典型的调度模型。

VC算法是一种基于TDM的统计时分的服务模型。

文献[6]认为VC调度算法是 “不公平”的,但文献[3,4,7,8]从理论和仿真结果表明它的有效性、可行性和优越性,认为VC算法是一种能够有效满足一定的服务速率保证、时延保证和流隔离监视的调度算法。

相对于本文提出的算法模型,称原来的VC 算法为单队列VC调度算法。

GPS调度算法是一种理想的绝对的基于流的公平队列算法,在现实条件下是不可实现的,对GPS的模拟演化出一系列调度算法,如WFQ[1]、PGPS[5]、WF2Q[9]、WF2Q+[10]、SFQ[11]等,其最大差异在于虚拟时间定义和调度条件选定。

PGPS是GPS的一种较好的逼近模拟。

当前对VC算法主要的改进研究有前跳虚拟时钟[12]、核心无状态虚拟时钟[13]及基于虚拟时钟的接纳控制技术[14]等。

本文针对VC及PGPS存在的缺点和不足,从改进算法效率和资源使用率角度对VC进行了改进,提出一种称为多队列的VC算法MQVC(Multi-Queued Virtual Clock)。

2 VC 和GPS/PGPS调度算法分析 
VC 算法和GPS/PGPS算法在服务保证、系统效率等方面有许多相似,但又存在差异。

 
VC算法具有TDM的优点和统计时分的灵活性,它以为每个流预留资源的形式在速率保证、时延保证和流之间的隔离上具有优越性能。

但研究发现,VC调度算法也具有诸多不足:(1)VC算法只有一个分组缓存,缓存所有增序排列的数据分组。

当有突发流时,突发分组会在短时间内占满所有缓存,使得其他流的分组具有较大延迟,甚至丢失;(2)对优
项目基金:吉林省自然科学技术基金(20030522-2)
- 1 -
- 2 -
先级的支持,只有一个全局队列,当p值不适当时,流i的分组会占满整个调度队列,使其他流出现短期“饥饿”;(3)缓存满而又有新分组到达时,采用尾部丢弃,而被丢失分组所属流的后继分组到达时,其k
i auxVC 值会在丢失分组的基础上加上一个k
i V ,使得新到达的分组在队列中延迟增加,进而增加了该分组的丢失概率;(4)缺乏流的接入控制和结束检测机制。

 
PGPS 是GPS 的一种很好的近似方案。

PGPS 算法按照GPS 的公平性定义虚拟时间并计算标记分组,所有分组以k
i F 增序排列,最小者优先调度。

为此,每当有会话到来或会话结束时,或数据包传输结束而暂无后继分组到达时,都必须重新计算虚拟开始服务时间和虚拟结束服务时间。

在数据流很多、每个流的数据分组数目较大的情况下,这两项数据计算的系统开销会非常大,系统效率非常低,系统的整体性能很差,出现扩展性问题。

3.多队列VC 调度算法模型 
3.1 设计目标 
在本文提出的算法模型中仍然体现VC 算法和PGPS 算法的优点,同时改善VC 算法的不足,以达到改善系统性能的目的。

改进后算法应具有以下优点或功能:
n 通过资源预留,为多种应用提供不同吞吐量需求保证;同时要求各个数据流按照各自申请的预留资源量产生数据分组,取得服务。

n 提供流的监视和控制措施,保证数据流正常使用网络资源,防止恶意流非法占用过多带宽。

n 加强流的隔离,使得某个突发流的分组不会对其他流的正常传输增加延迟,甚至分组丢失。

n 充分保持VC 算法中统计时分的灵活性。

n 引入流接纳控制机制和结束检测机制,保证资源合理分配,维护其他流的正常获得服务。

n 整体上减少系统开销,提高系统效率。

3.2 算法改进 
在上文分析基础上,进行如下改进:
n 将VC 算法中单队列扩展成PGPS 下的多队列,为此,为每一个获得接入允许权限的流分配一个数据队列缓存,长度为i L (i L 值可以根据不同会话需求及优先权分配不同值)。

n 算法调度中的虚拟开始时间和虚拟结束时间采用单队列VC 算法中的计算方法,即采用k
i auxVC 值的计算方法,保持了VC 算法中计算虚拟时钟值的简捷性。

考虑到分组长度可能不同,在计算k
i V 时以位计包长,即i
k i
k
i
AR
L V =。

n 取消PGPS 算法中的分组排队机制,改为:每次调度时,从各会话队列的队首分
- 3 -
组中选取虚拟时钟值最小者进行调度处理。

n 引入流接纳控制机制和结束检测机制。

当有新的流建立预留资源申请时,检测系
统是否有足够的资源以允许新的流进入。

若允许则分配队列缓存,分配资源;否则,采取相应的措施加以处理。

改进后的算法调度模型如下:
图1 MQVC 算法调度模型
3.3算法描述 
综合以上分析和改进,算法描述如下:
At each Packet Scheduling node:
n Upon receiving a request packet for establishing a flow i If ( AdmissionControl(flow i ) )
AllocateResource(flow i )
Else Return the error number and Take some actions for the failure; n Upon receiving the first packet from flow i ))((1
1
1
1
p t MQVC t MQVC i i i i −←← 1
i i t MQd ←))((1
p t MQd i i −← n
Upon receiving each packet k from flow i
1 },max{1
−←k i k
i k
i MQd t MQd ;
2 )(1
i tick k i
k
i V MQVC MQVC +←−
)(i tick k
i k
i V MQd MQd +← where i
k
i tick AR L V i
= 3 Stamp the packet k with the k
i MQd value 4 Put the packet k into the queue of flow i 5 l MaxInterva Timer i ← n
Select the packet with minimum k
i MQd value from the heads of queues to
Transmit
- 4 -
n When the buffer of flow i runs out ,drop the packet after arrived. Don’t fresh the
k i MQd ,and refresh the k i MQVC value
n
Upon receiving each set of MaxPackets (i i AI AR MaxPackets ∗=) packets
from flow i
1 if )()(threshold T t MQVC i k
i >− then Control actions should be taken. 2 If )(i k
i t MQVC < then i k i t MQVC ← n
Upon (receiving a request packets of disestablishing a flow i ) OR (the i Timer is timeout), then
Free the buffer of Flow i ;
Reclaim the resource of flow i .
4.分析 
4.1设计目标分析 
由上文算法模型及算法描述知,MQVC 算法较好的达到了设计目标,具有以下特点: n 支持多种QoS 需求 MQVC 保持了单队列VC 中对不同类型流不同需求的支持,通过分配单个流的数据缓存及预留相应资源,对不同流的区别对待达到支持多种性能需求流的目的。

n 数据流监视和接纳控制 MQVC 引入接入控制机制,使得资源的分配和回收以更合理的方式进行。

而由算法知,通过MaxPackets ,结合k
i MQVC 值,可检测出超出申请资源量的流,并对其采取措施进行控制,加强了流的监视。

n 数据流之间的隔离 MQVC 引入多队列机制,每个流拥有自己的缓存队列,当某个恶意用户发送超过自己预定资源量的分组时,将受到系统的惩罚。

随着其k
i MQd 逐渐增大,其得到系统服务的机会也逐渐减少,直到最后系统将几乎停止为其服务。

若其仍有后继数据包到来,则之后充满自己的数据缓冲区,造成自己数据分组的丢失,不会对其它流造成影响。

n 不同优先级的支持
在计算k
i MQVC 和k
i MQd 时用
p t i −代替i t ,使具有较高优
先级的流较优先获得服务(其具有较小的k
i MQd )。

同时可以为其分配较大的数据缓存
i L 。

表1 排序复杂度与公平度
- 5 -
 4.2性能分析 
系统开销 PGPS 系统中数据分组排序的开销比较大,而在单队列VC 中亦有全局排序过程。

如果将MQVC 中的数据分组选取也视为一种排序,则:
假定有m(m>1)数据流,每个流有n (n>=1)个分组待处理,则三种系统排序复杂度与公平度比较如表1所示。

在实际的调度系统中,数据分组的个数要远比数据流的个数多得多,即n 远比m 大,这样,实际系统中单队列VC 中的排序开销比MQVC 中大得多,这在高速网络中是相当可观的。

MQVC 取消分组排序,简化了算法的实现,将系统实现复杂度降为)(log m O 。

只有当单队列VC 中所有流只有一个数据包时其计算量才降到MQVC 的计算量值,从而整体上系统开销大大减少,达到了简化设计、减少开销的目的。

延迟 在文献[7,8]中,通过严格的数学推导证明在单队列VC 中存在时延上限,即满足条件
C R
f
<∑的情况下,任意数据分组k 离开系统的时间满足约束条件:
C
L MQd k L k i max
)(+
< 在MQVC 算法下,仍然满足上述时延保证约束条件。

定理 1 在MQVC 算法下,如果各个数据流的请求服务速率满足条件C R
f
<∑,则
任意流的数据分组离开系统的时间满足下面约束:
C
L MQd L k
i k i max
+
< 其中,max L 是系统中的最大数据分组的长度。

以上结论在单队列VC 中成立,已经在文献[7,8]予以证明。

定理1说明在MQVC 中也成立。

为证明定理1,先证明以下引理。

定义 1 虚拟服务器:一个调度节点被称为虚拟服务器当且仅当它以速率f r 为流f 提供服务且只为流f 提供服务。

虚拟服务器是连续工作的,流f 中的分组以FCFS 的方式获得服务。

引理 1 虚拟服务器中流f 的第i 个分组的传输结束时间i
f F 满足:
)1(111f
f f
f r L t F +
= )2(},max{1f
i f i f i f i f r L F t F +
=−
证明:令i
f b 为分组i 到达时在队列中等待传输的数据位数,则有:
01=f b
- 6 -
)3(}
0),(max{111−−−−−+=i f i f f i f i f i f t t r L b b 分组i 传输结束时间为: )4(f i f
i f i
f i
f r b L t F ++
=
当1=i 时 f f f f
f
f f f r L t r b L t F 11111
1+
=++
=
当1>i 时 f
i f i f f i f i f i f i
f i f r t t r L b L t F }
0),(max{111−−−−−+++
=
f
i f
i f i f f i f i f r L t t r L b +++=−−−},max{111
对于1−i ,有 f
i f i f i f
i f
r b L t
F
1
111
−−−−++
=
故: f
i f i f
i f
i f
r L F
t F +
=−},max{1
由引理1可知,虚拟服务器中数据分组的完成传输时间i
f F 与单队列VC 中数据分组虚拟传输结束时间k
i auxVC 具有相同的计算公式,即在两种服务器上数据分组被标记的结束时间是一样的。

引理 2 单队列VC 是多个虚拟服务器的组合。

证明:设单队列VC 服务器中有N 个流,每个流的服务速率为i r 且
C r
i
<∑。

对于任
意流i ,如果所有流均以正常速率获得服务,在[n m t t ,] ,其完成服务的数据流量为
)(),(m n i n m i t t r t t S −=
则对于所有的流,有:
)5()
(),(1
1
m n N
i i n m
N
i i t t r t t
S −=∑∑==
每个流在其对应的虚拟服务器中获得服务,则[n m t t ,]内,其虚拟服务器中流i 所获得服务量为
)(),(m n i n m i t t r t t S −=
对于所有流在 [n m t t ,]内的服务量之和亦有:
)6()
(),(1
1
m n N
i i n m
N
i i t t r t t
S −=∑∑==
由此知,在[n m t t ,]内相同需求速率的流在两种算法中的服务量是相同的。

假定有流i 在两种服务器下同时开始服务且其数据源特性相同,则其任意数据包k 在两种算法中的虚
- 7 -
拟结束时间标志k
i F 是相同的。

均有:
i
k i k i
k i
k
i r L F t F +=−},max{1
由以上可知,如果各个流均以其申请速率i r 产生数据分组,则在两种服务器中所获得的服务是相同的。

而任意流的任意数据分组的虚拟结束时间k
i F 也是一样的,故引理成立,得证。

引理 3 MQVC 是多个虚拟服务器的组合。

证明:设有N 个流,每个流的申请服务速率为j r 且C r
j
<∑。

由引理1知,对任意
流j ,其分组k 在其虚拟服务器中的传输结束时间为:
j
k j k j
k j k j r L F t F +=−},max{1
而在MQVC 中,流j 的分组k 的传输结束时间亦为上式。

由此知,在数据源特性完全相同即任意流j 的任意分组k 到达两个系统的时间相同的情况下,该分组在两种系统下的k
j F 是完全一样的。

而在MQVC 系统中,分组以k
j F 升序获得处理,因而在上述情况下,两种系统中的分组处理顺序也是完全相同的,即在
C r
j
<∑满足时,MQVC 是多个虚拟服务器的组合。

定理 2 在相同的初始条件下,MQVC 、单队列VC 与N 个流的组合是等价的。

证明:由引理2、引理3知,在相同的初始条件下,单队列VC 是多个虚拟服务
器的组合, MQVC 是多个虚拟服务器的组合,那么,N 个虚拟服务器分别组合成单队列VC 和MQVC 后,组合的单队列VC 、MQVC 是相同的,由此知,在相同的初始条件下,单队列VC 、MQVC 及多个虚拟服务器组合三种服务器是等效的。

得证。

定理1的证明:由定理2可知,在相同的初始条件下,MQVC 和单队列VC 是
等价的。

则在相同的约束
C r
i
<∑下成立的数据分组的时延结论
C
L MQVC L k i k i max
+
< 也是成立的。

关于约束结论参见文献[7,8]。

得证。

4.3 仿真分析 
本文在Linux 8.0+NS-2
[12]
仿
真平台中对上述改进方案进行了仿真,试验仿真的网络拓扑结构如图2所示。

两种方案采用不同的调度服务器:单对列VC(SQVC)和多队列VC(MQVC)。

从源0、1

图2 模拟试验网络拓扑
- 8 -
2分别经过节点3建立到目标节点4的连接,其他参数设置均相同。

共享链路的速率为100kbps,链路延迟10ms,模拟时间为5.5s。

本文分别针对不同发送速率和预留带宽对两种算法进行对比。

 
1.在每个流的发送速率不超过链路预留带宽且预留带宽之和不超过链路总带宽的情况下,两种方案中各流的性能基本相当,没有出现分组丢弃,如图3和图4所示两种方案中
的各流的流量。

 
流号 实际速率 (Kbps) 分组大小 (Bytes) 预留带宽 (Kbps) 声明检查间隔时间
(S) 流 0 20 40 20/0.032S 0.1 流 1 50 40 30/0.01067S 0.1 流 2 50 40 50/0.0064S 
0.1 
2.在有个别流超出其预留资源的情况即出现“恶意流”时,两种方案性能有差别。

基本流参数如表1所示。

图5和图6分别为MQVC和SQVC的各流流量;图7和图8分别为
表 2 实验中的流参数 
图3 MQVC中各流的流量 图4 SQVC中各流的流量 
图5 MQVC中各流流量 
图6 SQVC中各流流量 
- 9 -
MQVC和SQVC的各流队列延迟;图9和图10分别为MQVC和SQVC的各流端到端延迟;表2为各流分组丢失情况。

 
由各图表对比得到: 
(1)MQVC中的多队列机制,使得各个流的隔离性加强,恶意流超额数据对其他正常流的影响非常小,各流基本保持以预留速率获得服务。

即使恶意流发送较多的数据,也会使自己缓存溢出而丢弃过多分组保持以预留速率获得服务而受得惩罚。

而在SQVC中则没有
算法 流号 总分组数 丢失分组数 理论丢失率 
实际丢失率 
0 312 0 0 
0 1 784 284 40% 36.224% MQVC 
2 782 0 0 0 0 
311 45 0 14.47% 1 784 93 40% 11.86% SQVC 
2 
782 
88 
0 
11.25% 
图 7 MQVC中各流队列延迟 图 8 SQVC中各流队列延迟 
表 3 各流分组丢失对比(0~5.0s) 
图 9 MQVC中各流端到端延迟 
图 10 SQVC中各流端到端延迟 
严格隔离各个流,使得恶意流对其他正常流影响非常大,甚至出现恶意流抢占正常流资源的情况。

 
(2)MQVC中每个流的分组延迟也不受其他流的影响。

由图7和图8,MQVC中恶意流的延迟由于受其缓存大小影响在丢弃一定的分组后基本保持稳定,正常流分组队列延迟几乎为零;SQVC中受恶意流影响,各个流的队列延迟都非常大。

各个流的端到端延迟亦同样。

 
(3)MQVC由于系统中各流的参数不同,预留资源量亦不同,在正常情况下,可以很好的满足不同流的服务需求。

 
(4)由表3,MQVC中各流不受恶意流的影响,恶意流的实际分组丢失率接近于理论计算的分组丢失率。

而SQVC中由于各流相互影响,使得正常流也出现分组丢失现象,恶意流抢占正常流的资源。

 
综上可得,改进算法很好的达到了改进目的,加强了流的隔离和保护,减小了系统开销,是一种较好满足各种服务需求、系统效率高、能够有效满足服务速率保证、时延保证和流隔离监视的调度算法。

5 结论 
本文通过对VC算法和GPS/PGPS算法的分析,提出了一种多队列的VC 算法-MQVC 算法,分析显示该算法保持单队列VC的优点,在具有与单队列VC相同的端到端时延特性的前提下,通过减少系统中分组排序处理,使得单队列VC中系统处理分组排序的复杂度由原来的O(log(m*n))降为MQVC下的O(logm),极大的减小了系统开销,提高了效率,节省了系统资源,使得系统设计简化,为高速路由器的设计开发提供了新的思路。

参考文献 
[1] Demers A, Keshav S, and Shenker S. Analysis and simulation of a fair-queueing algorithm[A]. In Proceedings of ACM SIGCOMM’89[C]. 1989, 19(4) : 1-12.
[2] 王宏宇,顾冠群 (WANG Hong-yu, GU Guan-qun). 集成服务网络中的分组调度算法研究综述(The Research of Packet Scheduling Algorithms within Integrated Services Network: A Survey)[J].计算机学报(Chinese Journal of Computers),1999,22(10): 1090 —1099.
[3] Zhang Lixia, Virtual Clock: A new traffic control algorithm for packet switching networks[A]. Proc ACM SIGCOMM’90[C].New York:The Association for Computeing Machinery,Inc,1990 : 19-29.
[4] Zhang Lixia. A new Architecture for packet Switching Networks Protocols[PhD. Thesis]. Dept. Elect. Eng. And Comput.Sci.,MIT,Aug,1989.
[5] Parekh A K and Gallager R G. A generalized processor sharing approach to flow control in integrated services networks: The single-node case[J]. IEEE/ACM Transactions on Networking, 1993 1(3) : 344—357.
[6] Suri S. Leap forward Virtual Clock: a new fair queuing scheme with guaranteed delays and throughput fairness[A], IEEE Infocom’97[C]. Kobe:IEEE, 1997 : 557-565.
[7] Xie G G, Lam Simon S, Delay Guarantee of VC Server[J], IEEE/ACM Transactions on
- 10 -
Networking, 1995 3(6) : 683-689.
[8] Figueira N R, Pasquale J. An Upper Bound on Delay for the VirtualClock Service Discipline[J]. IEEE/ACM Transactions on Networking, 1995 3(4) : 399—408.
[9] Bennett J , Zhang H. WF2Q: Worst-Case Fair Weighted Fair Queueing[A], Proc. IEEE Infocom’96[C], San Francisco,CA, 1996 : 120-128.
[10] Bennett C R, Zhang H. Hierarchical packet fair queueing algorithms[J] IEEE/ACM Transactions on Networking, 1997, 5(5) : 675-689.
[11] Goyal P, Vin H, and Cheng H. Start-time Fair Queueing: A scheduling algorithm for integrated services packet switching networks[A]. In Proc. ACM SIGCOMM'96[C], Stanford, CA, 1996: 157—168.
[12] 胡刚,何骏,范戈(HU Gang, HE Jun, FAN Ge).改进的前跳虚时钟调度算法(Enhanced Leap Forward Virtual Clock Scheduling Algorithm)[J]. 上海交通大学学报(JOURNAL OF SHANGHAI JIAOTONG UNIVERSITY),2002,36 (6):785-788.
[13] 王振凯,刘斌,徐光祐(WANG Zheng-kai, LIU Bin, XU Guang-you). 核心无状态虚拟时钟调度策略(Core-stateless virtual clock scheduling algorithms)[J].清华大学学报(自然科学版)(Journal Tsinghua University Sci.&Tech.). 2003,43(1):86-89.
[14] 杨帆,刘增基(YANG Fan,LIU Zeng-ji). 基于服务量差值的virtual clock接入允许控制算法(The admission control algorithm based on difference of service for the virtual clock packet scheduling algorithm)[J]. 西安电子科技大学学报(自然科学版)(Journal of XIDIAN University),2002,29(4):429-433.
Multi-queued VC Algorithm Research
WU Shun-xian LIU Yan-heng TIAN Ming Department of Computer Science &Technology, JLU, Changchun 130012
Abstract: In this paper, based on the analysis of VC and GPS/PGPS, we propose an improved VC scheduling algorithm model with GPS scheduling algorithm's characteristics, which is called MQVC. We present the design objectives,improving methods,MQVC model and algorithm description in pseudo-code. It is proved theoretically that this model is much better than single-queued VC and PGPS scheduling algorithm model in such aspects as implementation complexity, system scheduling performances and packet loss. Our experimentations in Network Simulator version 2 showed that the algorithm has an excellent
- 11 -
performance of Quality of Service.
Key words: Scheduling Algorithm, Virtual Clock, MQVC, GPS, Quality of Service.
作者简介:吴舜贤(1979-),男,河南新乡人,吉林大学硕士研究生,主要从事网络协议与移动IP QoS研究,E-Mail:wushxian@126.com;刘衍珩(1958-),男,吉林松原人,吉林大学教授,工学博士,博士生导师,主要从事计算机通信与网络研究 E-Mail: lyh_lb_lk@yahoo.com.cn。

 
- 12 -。

相关文档
最新文档