基于短时公平性的分组反馈调度方法

文档序号:7926745阅读:273来源:国知局
专利名称:基于短时公平性的分组反馈调度方法
技术领域
本发明属于路由器队列管理和分组调度领域,具体涉及一种基于短时公平性的分组反馈调度方法。

背景技术
计算机网络的服务质量(Quality of Service,QoS),指的就是网络在传输数据流的过程当中要求满足的一系列服务请求,具体地可以量化为带宽、数据包延迟、延迟抖动、丢包率、吞吐量等等的指标。
在互联网技术发展的初期,主要的业务范围集中在网页浏览、文件传输协议、电子邮件等一些特定的无时间限制的应用系统,这些业务对于网络的QoS并不敏感,而且当时的网络结构简单,带宽也非常有限。但是,随着高速网络技术和多媒体技术的飞速发展,产生了很多对数据传输实时性要求很高的应用业务(如网络电话、视频会议、电子商务、网络流媒体直播等),人们开始越来越多地提出了各种提高网络QoS的要求。
如今,实时性的业务应用要求网络提供QoS的数据流实时拥塞控制,而这种控制是通过QoS控制机制来实现的。分组调度可以在满足分组服务质量的前提下,合理地管理和控制缓冲区分组离开调度器的顺序和时间,是实现QoS控制机制中的一项关键技术。
由于互联网的规模日渐扩大,各个客户端的数据流在网络中传输的行为,主要是受到各个路由器等的中间节点的影响。路由器在网络当中不但担当快速转发的功能,而且还起到连接广域网关键路径的网关作用。同时,路由器的功能主要由软件系统来实现,便于修改,因此在路由器上实现QoS保证机制更具现实性。但是,路由器只能够对到达的数据包一个一个地转发,所以目前对路由器的QoS保证机制的研究主要集中在分组调度算法的研究和队列管理(缓存管理)两个大方面上。
早期的调度算法只有先进先出(First In First Out,FIFO)排队算法实现的先来先服务。但是这种排队算法既不利于带宽的合理利用,也无法体现各个客户端数据流的公平性,只是一种非常简单的排队方法。后来,产生了优先级排队(Priority Queuing,PQ)算法和通用处理器共享(Generalized ProcessorSharing,GPS)的公平算法等一些分组调度算法。其后,在GPS算法的公平分组调度机制的基础上,众多学者提出了一系列的分组公平队列(packer fairqueuing,PFQ)算法,例如使用最小虚拟完成时间机制(Small virtual Finishtime First,SFF)的加权公平队列算法(Weighted Fair Queuing,WFQ),实用最小虚拟开始时间机制(Small virtual Start time First,SSF)的随即公平队列算法(Stochastic Fair Queuing,SFQ),使用最小合格虚拟完成时间机制(Small Eligible virtual Finish time First,SEFF)的最坏情况加权公平队列算法(Worst-case Fair Weighted Fair Queuing plus,WF2Q)和WF2Q+等。
早在1989年,Demers A等人就提出了WFQ调度机制,随后其他学者在此基础上开发出了WF2Q和WF2Q+等的一系列算法。使加权公平队列的系列算法的性能得到了提高。
目前,WF2Q+调度算法主要集中在保证系统的长期公平性和系统的最大吞吐量。在这个方面,WF2Q+的性能已经得到了不少实践的验证。但是,WF2Q+算法在实现短期公平性上还存在着一个严重的问题 ●WF2Q+算法对新加入的客户端无法在短期内实现其公平服务。
由于网络传输协议大多都为系统带来一定的滞后性,单纯地按照原有权值执行最小合格虚拟完成时间优先的机制进行调度,表面上是一种公平机制。但是,如果仍旧按照预设权值对各个客户端的数据包进行调度,由于已经处于传输状态的客户端占用着带宽,而新加入的客户端要从这些已启动的客户端中抢回带宽,存在一定的困难。
为了要实现对新加入客户端的短期公平服务,增强系统的鲁棒性和自适应性,我们基于WF2Q+内核发明了一种客户端权值在线自动调整的自适应分组调度策略——基于短时公平性的分组反馈调度方法。


发明内容
本发明的目的是提出一种基于短时公平性的分组反馈调度方法。该发明依次含有如下步骤 步骤1)初始化 预设

wi、Wi′、Qi、Qi′、Qsum、α、β 其中,

为客户端i第k个数据包到达系统的虚拟时间;

为客户端i第k个数据包开始发送的虚拟时间;

为客户端i第k个数据包完成发送的虚拟时间; wi为客户端i的预设权值; wi′为从权值调节器中获得的客户端i的调度用权值wi′; Qi为客户端i的期望服务量; Qi′为系统反馈所得的客户端i的实际获得服务量; Qsum为系统反馈所得的系统实时总服务量; α为系统预设的调度权值补偿系数; β为系统预设的调度权值惩罚系数。
步骤2)在路由器上建立一个基于短时公平性的分组反馈调度方法的调度器。
步骤3)当新分组到来时,判别分组所属的客户端,安排到对应客户端所属的缓存队列,如果此时对应客户端的缓存队列不为空,转到步骤4);如果此时对应客户端的缓存队列为空,转到步骤5); 步骤4)判断缓存队列是否有足够空间接纳新分组,如果空间不足直接丢弃;如果空间充足,分组直接进入对应缓存队列,系统不更新


三个值;如果继续有数据包进入队列,回到步骤3); 步骤5)分组进入对应缓存队列后, 更新对应客户端的虚拟开始时间
更新对应客户端的虚拟完成时间
其中,

为客户端i第k个数据包的大小; 更新系统的虚拟时间
其中,

各个客户端中最小的虚拟开始时间,如果继续有数据包进入队列,回到步骤3); 步骤6)当系统的缓存队列当中有数据包时,启动此步骤; 本步骤从虚拟开始时间

不大于系统虚拟时间

的客户端当中选取虚拟完成时间

为最小的客户端; 步骤7)转发该客户端的数据包。
更新客户端i的实际获得服务量Qi′ 更新系统实时总服务量Qsum 步骤8)判断数据包发送完毕后,该客户端的缓存队列是否为空,如果该队列在发送后不为空,转到步骤9);如果该队列在发送后为空,跳过步骤9),直接执行步骤10); 步骤9)更新该客户端的虚拟开始时间
直接把该客户端上一次发送数据包时的虚拟完成时间设为新的虚拟开始时间; 更新该客户端的虚拟完成时间
步骤10)更新系统虚拟时间
其中,

为当前各个客户端的虚拟开始时间中最小的,W表示当前所缓存队列不为空的待发送客户端的预设权值wi的总和。
步骤11)计算各个客户端期望获得的服务量与实际服务量之差ΔQi ΔQi=Qi-Qi′; 其中Qi为客户端期望获得的服务量 Qi=Qsum*wi/W; 步骤12)更新各个客户端在调度器中的调度权值wi′ 步骤13)跳回步骤6),不断循环执行,直到各个客户端的缓存队列均为空。
所述系数α为系统预设的调度权值补偿系数,用来提高未达到期望服务量的客户端的优先级,使其在调度过程中占有更大优势,能够更快获得带宽,一般有α>1。
所述系数β为系统预设的调度权值惩罚系数,用来降低获得超额服务的客户端的优先级,使其在调度过程中受到惩罚,让出带宽给未达到期望服务量的客户端,一般有0<β<1。
本发明与现有的方法最大的不同是系统引用了各个客户端获得的实际服务量作为反馈信息,通过判断客户端是否获得公平服务来调整调度器当中各个客户端的权值wi′。当客户端未达到其预设权值wi所指定的服务量时,系统相应地增大其调度器中的权值wi′,补偿其分配所得带宽;当客户端获得了超过预设权值wi指定的服务量时,系统相应地减少其调度器中的权值wi′,减少其分配所得带宽,实施惩罚。
本发明的自适应性和鲁棒性增强,在新增客户端加入的情况下,能更快地提供新加入客户端的公平服务,而同时对系统总吞吐量影响很小,能够为用户提供更为公平可靠的QoS。
基于网络仿真平台NS-2的性能仿真结果表明本发明对带宽分配的控制能力更强,能够更迅速地使新加入客户端获得其预设权值wi所应当分配的带宽,从而使系统的公平性得到了明显的改善,更好地实现了系统的短期公平性,使网络中的各个客户端能够获得更加公平的QoS。



图1 WF2Q+控制框图。
图2为本发明的基于短时公平性的分组反馈调度方法业务流程框图。
图3为本发明的基于短时公平性的分组反馈调度方法控制框图。
图4为本发明的实验网络拓扑图。
图5为本发明的基于短时公平性的分组反馈调度方法入队列程序流程图。
图6为本发明的基于短时公平性的分组反馈调度方法出队列程序流程图。
具体实施方案 根据现有的WF2Q+算法的文献,我们可以得出WF2Q+算法的控制框图如图1。其中,调度器的内核为WF2Q+的调度机制,使用的是最小合格虚拟完成时间机制。而其输入是各个数据源的预设权值wi,输出是被调度器选中的数据源的数据包

(即数据源i的第k个数据包)。从WF2Q+算法的控制框图,我们可以看到现有的WF2Q+算法是一种开环控制,并没有反馈环节。因此,当缓存队列当中有新的客户端加入时,其非空队列发生变化,WF2Q+控制器并不能及时获得信息,使得系统无法适应,短期公平性较差。
为了增强WF2Q+算法的鲁棒性和适应性,我们针对WF2Q+算法中固定的调度权值进行了重新设计,沿用了SEFF机制作为调度器的运作机制,引入了反馈环节和权值调整器,让系统能够根据目前各个客户端获得服务量的状况,判断其是否达到了期望服务量,然后在线修改其调度权值。本发明的业务流程框图如图2,其运作的步骤如下 步骤1)当有数据包发送到路由器A上时,路由器A先把数据包分别存到各个客户端对应的缓存队列当中,以便于管理,而每个客户端都有各自的预设权值wi来表征其业务请求的重要程度,并且将其预设权值wi输入到资源分配机构和调度执行机构当中。
步骤2)系统的资源分配机构将根据各个客户端的wi和服务量统计器提供的当前系统实际服务量Qsum对各个客户端应当获得带宽进行预估分配,产生各个客户端的期望服务量Qi。
步骤3)服务量判断器根据服务量统计器提供的各个客户端实际获得服务量Qi′和资源分配机构提供的Qi,判断该客户端是否获得了期望服务量,并产生服务量差值ΔQi。
步骤4)调度执行机构根据服务量判断器提供的差值ΔQi,对各个客户端的权值进行修改,产生新的调度用权值wi′,然后根据SEFF机制,从各个缓存队列中选择最优先的客户端,然后将该客户端缓存队列的第一个数据包pi(即其最先发送到路由器A的数据包)进行转发。
步骤5)当数据包pi成功地从路由器A中发出后,服务量统计器将对数据包pi的大小Pi进行累计,分别统计出当前系统实际服务量Qsum和各个客户端实际获得服务量Qi′,并将这两个量分别反馈到资源分配机构和服务量判断器当中。
在本系统当中我们所追求的服务量公平性可以用如下的公式(1)表示 其中,qi和wi分别表示业务流所获得的服务量和权值,i为业务流的流号码。从公式(1)可以看到,我们所追求的公平性就是要使各个客户能够对应其权值获得相应的服务量,也就是根据各个业务流的权值分配相应的带宽。
根据对系统业务流程的设计,我们设计出一个针对数据包管理的分组调度反馈系统,其控制框图如图3。整个反馈控制系统以各个数据源的权值wi作为输入,通过预定服务量分配器,根据当前系统总服务量Qsum,估算各个数据源当前的服务量期望值Qi;然后权值调节器通过期望值Qi和各数据源实际服务量Qi′的比较,对各个数据源的权值进行调整,生成新的调度权值wi′供调度发送器作为调度依据;最后调度发送器根据SEFF机制,按照各个数据源的调度权值进行选择,安排数据包发送的先后顺序。
图3的反馈控制系统的具体实施步骤如下 步骤1)预定服务量分配器从缓存队列中获得队列不为空的数据源的对应预设权值wi。
步骤2)预定服务量分配器根据公式(2) Qi=Qsum*wi/W (2) 算出数据源i的期望服务量Qi。其中,Qsum为系统反馈所得的系统实时总服务量,W是由服务量分配器累计出的当前队列不为空的业务流的权值总和。
步骤3)比较环节根据公式(3), ΔQi=Qi-Qi′ (3) 对期望值和实际值进行比较。其中,ΔQi为i号业务流的服务量期望值和实际值之差,而Qi′则为系统反馈所得的i号业务流的实际获得服务量。
步骤4)权值调节器根据比较环节所得的差值ΔQi,通过公式 实现对调度器中各个数据源的调度用权值进行调节。
●当ΔQi大于零,即数据源i所获得的实际服务量Qi′不满足其期望值的时候,我们把其原来的权值wi乘以补偿系数α,以此作为其新的调度权值wi′,补偿系数α应当选取大于1的值。
●当ΔQi等于零,即数据源i所获得的实际服务量Qi′刚好等于其期望值Qi的时候,wi′只需要保持原有权值wi。
●当ΔQi小于零,即数据源i所获得的实际服务量Qi′超过了其期望值Qi时,我们把原来的权值wi乘以一个惩罚系数β,以此作为新的调度权值wi′,惩罚系数的取值范围应该是(0,1)。
步骤5)调度发送器根据权值调节器所产生各个数据源新的调度权值wi′,沿用SEFF机制来实现对各个数据源缓存队列的调度发送。
步骤6)根据调度器选中的数据包,反馈环节把该数据包的大小分别累计到各服务量统计器和总服务量统计器当中。
各服务量统计器通过公式(5) 对各个数据源的实际服务量进行累计。其中



分别为数据源i的成功转发第k和第k-1个数据包时的实际服务量。
总服务量统计器就会根据一下公式(6),对系统总服务量Qsum进行累计。
上式中,

表示在第k-1个数据包成功转发后的系统总服务量;Lk表示现在刚刚转发成功的第k个数据包的大小;而

则表示第k个数据包成功转发后的系统总服务量。然后,返回步骤1),如此重复执行实现每一个数据包的调度转发。
图5、图6分别给出了本发明的入队列和出队列的程序流程图。
我们在网络仿真平台NS-2上实现了本发明,并且对它进行了一系列的性能测试。NS-2(Network Simulator-2)是近年来对网络协议进行评估与研究的一个主流的模拟工具,作为一个开源软件,它得到了极为广泛的使用,成为通信和计算机网络领域的协议研究的主流平台之一。由于采用开放体系结构,有大量的协议库支持,NS-2已广泛应用于局域网、广域网、自组织网络、蜂窝网和卫星网络模拟。
仿真使用2.33版本的NS-2平台,操作系统未UBUNTU7.04。实验中我们采用n个TCP业务流和m个UDP业务流来模拟实际应用过程中网络中间节点面对的调度问题(如图4所示的网络拓扑结构图),检验系统对不同传输协议的公平性。所有业务流与路由器A之间的链路容量为1Mbps,延迟为20ms,瓶颈链路位于路由器A和路由器B之间,容量为5Mbps,延迟为10ms;路由器A和路由器B之间的链接使用本算法,其余的均实用DropTail;每个客户端发出的业务流的包大小基本不相同。
使用以下一系列的实验来说明本发明对系统的带宽分配能力更强。本组实验通过预设两种算法的参数,设置一部分客户端先启动,另一部分则较迟启动,观察两种算法的短期公平性。
实验内容 设置5个使用FTP服务的客户端(由于FTP服务实用TCP传输协议,以下简称TCP业务流)和2个用CBR流量发生器模拟的UDP业务流,分别设置为0—6号业务流,其中0—4号为TCP业务流,5、6号为UDP业务流(具体模型参照图4)。其中0—3号四个TCP业务流为先启动组,先启动组从0秒开始传输数据,4—6号业务流为后启动组,我们把后启动组开始传输数据的时间设置为10秒、15秒和20秒,分别做3个实验。所有业务流工作到实验结束时间90秒为止。而路由器A分别使用WF2Q+和本发明进行实验。其中,本发明的补偿系数α设置为10,惩罚系数β设置为0.5。
我们通过公式(7),求出后启动组在任意时刻的期望带宽。
其中,Ba(t)为t时刻的后启动组的期望带宽,B(t)为t时刻实际总带宽,wa为该时刻后启动组的各个业务流的权值之和,而W则为该时刻正在传输数据的各个业务流的权值总和。
另外,通过公式(8),可以求出后启动组任意时刻的瞬时带宽与其当时期望值的比值φ(t)。
其中,Ba′(t)为t时刻后启动组各个业务流的带宽总和。通过比值φ(t),我们可以看出后启动组的业务流获得的实际带宽与其期望值相差多少。
通过上面三组对比实验,我们可以得出如下表1的一组实验数据。
表1 不同情况下反馈调度方法和WF2Q+在各时刻与期望值的差距
从上表可以看出,后启动组不论是从10s、15s还是20s的时候开始传输数据,本发明在40s、60s和80s三个采样时间当中,其获得的瞬时带宽与期望带宽的比值,都比使用WF2Q+更加接近100%。在这种情况下,使用本发明能够为后启动组获得期望服务量提供更好的保证,实现更好的短期公平性。使用本发明能够获得更公平的网络服务,更好的QoS。
权利要求
1、一种基于短时公平性的分组反馈调度方法,其特征包括有如下步骤
步骤1)初始化
预设
Qi、Qi′、Qsum、α、β
其中,
为客户端i第k个数据包到达系统的虚拟时间;
为客户端i第k个数据包开始发送的虚拟时间;
为客户端i第k个数据包完成发送的虚拟时间;
wi为客户端i的预设权值;
wi′为从权值调节器中获得的客户端i的调度用权值wi′;
Qi为客户端i的期望服务量;
Qi′为系统反馈所得的客户端i的实际获得服务量;
Qsum为系统反馈所得的系统实时总服务量;
α为系统预设的调度权值补偿系数;
β为系统预设的调度权值惩罚系数;
步骤2)在路由器上建立一个基于短时公平性的分组反馈调度算法的调度器;
步骤3)当新分组到来时,判别分组所属的客户端,安排到对应客户端所属的缓存队列,如果此时对应客户端的缓存队列不为空,转到步骤4);如果此时对应客户端的缓存队列为空,转到步骤5);
步骤4)判断缓存队列是否有足够空间接纳新分组,如果空间不足直接丢弃;如果空间充足,分组直接进入对应缓存队列,系统不更新
三个值;如果继续有数据包进入队列,回到步骤3);
步骤5)分组进入对应缓存队列后,
更新对应客户端的虚拟开始时间
更新对应客户端的虚拟完成时间
其中,
为客户端i第k个数据包的大小;
更新系统的虚拟时间
其中,
各个客户端中最小的虚拟开始时间,如果继续有数据包进入队列,回到步骤3);
步骤6)当系统的缓存队列当中有数据包时,启动此步骤;
本步骤从虚拟开始时间
不大于系统虚拟时间
的客户端当中选取虚拟完成时间
为最小的客户端;
步骤7)转发该客户端的数据包;
更新客户端i的实际获得服务量Qi′
更新系统实时总服务量Qsum
步骤8)判断数据包发送完毕后,该客户端的缓存队列是否为空,如果该队列在发送后不为空,转到步骤9);如果该队列在发送后为空,跳过步骤9),直接执行步骤10);
步骤9)更新该客户端的虚拟开始时间
直接把该客户端上一次发送数据包时的虚拟完成时间设为新的虚拟开始时间;
更新该客户端的虚拟完成时间
步骤10)更新系统虚拟时间
其中,
为当前各个客户端的虚拟开始时间中最小的,W表示当前所缓存队列不为空的待发送客户端的预设权值wi的总和;
步骤11)计算各个客户端期望获得的服务量与实际服务量之差ΔQi
ΔQi=Qi-Qi′;
其中Qi为客户端期望获得的服务量
Qi=Qsum*wi/W;
步骤12)更新各个客户端在调度器中的调度权值wi′
步骤13)跳回步骤6),不断循环执行,直到各个客户端的缓存队列均为空。
2、根据权利要求1所述的基于短时公平性的分组反馈调度方法,其特征在于所述系数α为系统预设的调度权值补偿系数,用来提高未达到期望服务量的客户端的优先级,使其在调度过程中占有更大优势,能够更快获得带宽,一般有α>1。
3、根据权利要求1所述的基于短时公平性的分组反馈调度方法,其特征在于所述系数β为系统预设的调度权值惩罚系数,用来降低获得超额服务的客户端的优先级,使其在调度过程中受到惩罚,让出带宽给未达到期望服务量的客户端,一般有0<β<1。
全文摘要
本发明公开了一种基于短时公平性的分组反馈调度方法,本发明方法引用了各个客户端获得的实际服务量作为反馈信息,通过判断客户端是否获得公平服务来调整调度器当中各个客户端的权值wi′;当客户端未达到其预设权值wi所指定的服务量时,系统相应地增大其调度器中的权值wi′,补偿其分配所得带宽;当客户端获得了超过预设权值wi指定的服务量时,系统相应地减少其调度器中的权值wi′,减少其分配所得带宽,实施惩罚;在本发明中,调度器中的各个客户端权值能够根据其获得的实际服务量状况在线调整,增强了系统的鲁棒性和自适应性,同时提高了系统实现短期公平性的能力,对各个客户端提供更为公平的QoS。
文档编号H04L12/56GK101436996SQ20081022016
公开日2009年5月20日 申请日期2008年12月19日 优先权日2008年12月19日
发明者治 刘, 文俊朝, 杰 倪, 郑国雄, 云 章 申请人:广东工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1