一种数据网络中的队列调度方法及装置的制作方法

文档序号:7599445阅读:167来源:国知局
专利名称:一种数据网络中的队列调度方法及装置的制作方法
技术领域
本发明涉及数据通信技术领域,尤其涉及一种对数据网络中的多个队列的数据进行加权轮循调度的队列调度方法及装置。
背景技术
当前网络处理的数据量越来越大,网络拥塞极为常见。拥塞使流量不能及时获得资源,是造成服务性能下降的源头,拥塞有可能会引发以下的负面影响拥塞增加了报文传输的延迟和延迟抖动,过高的延迟会引起报文重传;拥塞使网络的有效吞吐率降低,造成网络资源的损害;拥塞加剧会耗费大量的网络资源(特别是存贮资源),不合理的资源分配甚至可能导致系统陷入资源死锁而崩溃。网络发生拥塞时必须对其进行管理和控制,常见方法是使用队列技术,亦可称为排队策略。这些策略用来处理对带宽的要求超出了网络能提供的总带宽的情况。
在上述排队策略中用到的关键技术一般是优先级队列(PQ,Priority Queue)或加权公平队列(WRR,Weighted Round Robin)。其中PQ是对报文进行分类,按报文的类别将报文送入相应的队列。分类时属于较高优先级队列的报文将会得到优先发送,而较低优先级的报文将会在发生拥塞时被较高优先级的报文抢先,其特点是保证每个队列的绝对优先级,但在网络繁忙时,可能低优先级的队列长期得不到服务。
另外,WRR是按照对QOS的需求不同将数据分为不同的类,同一类QOS需求的数据使用同一个队列。其特点是给每个队列设定一个权值,队列之间按照权值分配调度机会,对于速率、延迟等QOS要求高的队列分配较大的权值,要求低的队列分配较小的权值。这样就能保证每个队列都能得到服务。
目前,在按照WRR调度队列数据出队发送时,一般有两种通行的方法,第一种方法是在一个调度周期中对一个队列的报文进行连续调度,直到该队列的报文发送完,则继续下一队列报文的调度,如此反复完成一个加权调度周期的队列按权值轮循的数据调度。以具体例子来说,假如有4个队列A、B、C、D,权值分别为5、3、2、1,按照所述方法队列采用下面的次序调度AAAAABBBCCDAAAAABBBCCD,即先将一个队列按照权值规定的发送机会连续调度发送,在此队列的发送机会耗尽后,再按照下一个队列的权值连续轮循。
采用所述的方法明显存在如下的缺点一个队列连续发送,然后长时间不发送,最后的结果是出现瞬间突发大量的包,然后停止等待,然后又瞬间突发大量的数据包,突发很大,数据包的发送延迟抖动很大,权值越大的队列造成的突发较大,抖动也较大。
另外,第二种WRR调度方法是按照队列顺序进行间插调度,即首先调度一个队列的报文,然后按照顺序调度另一个队列的报文,对于已经耗尽权值机会的队列的数据包不再调度,而是顺序往下调度下一队列的数据包。以具体例子来说,假设有4个队列A、B、C、D,权值分别为5、3、2、1。按照所述方法队列采用下面的次序调度ABCDABCABAAABCDABCABAA,即队列按照权值规定的发送机会连续轮循,在此队列的发送机会耗尽后,剩余队列继续按照相应的权值继续轮循。
上述第二种WRR调度方法相比第一种方法有很大的改善,队列数据的调度发送间隔已经比较均匀了。但在调度周期的后期还存在一个队列的数据连续发送的情况,最后的结果是调度周期后期出现瞬间突发包,突发还是比较大,数据包的发送延迟抖动也大,虽然有改善,但对权值越大的队列,调度周期后期的突发较大,抖动也较大。

发明内容
本发明解决的技术问题是提供一种数据网络中的队列调度方法及装置,以降低数据突发,使数据抖动较小。
为解决上述问题,本发明的数据网络中的队列调度方法,包括步骤a、确定各个队列加权调度的权值,并根据各个队列的权值确定其在一个加权调度周期中的相应权重调度间隔;b、根据所述确定的各个队列的权重调度间隔相应调度各个队列数据出队发送。
其中,步骤b包括b1、将各个队列权值总和作为加权调度周期的调度时隙计数总数,并设置各个队列初始调度时隙值为加权调度周期的初始调度时隙计数值;b2、检查是否有队列的调度时隙值小于等于当前调度时隙计数值,若是,执行步骤b3,否则,执行步骤b4;b3、从该队列调度数据出队发送,并将该队列的调度时隙值修改为当前调度时隙计数值与该队列的权重调度间隔之和,然后将调度时隙计数值加一,返回步骤b2继续该加权调度周期的数据调度;b4、返回步骤a重新确定各个队列的相应权值进行下一加权轮循调度。
其中,步骤b2按照权值从大到小排序检查队列的调度时隙值是否小于等于当前调度时隙,在检查到一个队列的调度时隙值小于等于当前调度时隙计数值后不再继续检查排序在后的队列。
其中,步骤b3返回步骤b2继续调度之前还包括判断步骤判断当前调度时隙计数值是否大于一个加权调度周期的时隙计数总数,若是,返回步骤a重新确定各个队列的相应权值进行下一加权轮循调度;否则,返回步骤b2继续该加权调度周期的数据调度。
其中,还包括预先将待调度的队列分为优先级队列和加权队列;步骤a确定队列的权值时,将优先级队列的权值和相应权重调度间隔设置为0,加权队列设置为相应的权值和权重调度间隔;
步骤b2之前还包括优先调度权值为0的优先级队列的数据,待所述优先级队列的数据全部调度完后才执行步骤b2进行加权队列数据的调度;步骤b3每个加权调度时隙调度一个加权队列的数据后,返回重新执行步骤b2之前首先检查优先级队列是否有数据发送,若有,则将优先级队列数据调度完后再继续执行步骤b2进行加权队列数据调度;若没有,直接执行步骤b2进行加权队列的数据调度。
其中,对优先级队列数据调度包括如下步骤1)检查当前优先级队列是否有数据发送,若有,则执行2),否则执行3)2)将该优先级队列的数据调度出队发送;3)判断是否调度完所有优先级队列,若是,结束优先级队列调度,执行加权队列调度,否则,转到下一级优先级队列,返回1)继续调度。
相应地,本发明的数据网络中的队列调度装置,包括加权调度参数保存装置,用于保存根据各个队列的权值预先确定的其在一个加权调度周期中的相应权重调度间隔;调度控制装置,用于根据所述保存的预先确定的各个队列的权重调度间隔相应调度各个队列数据出队发送。
其中,所述调度控制装置包括计数设置保存装置,用于保存一个加权调度周期中各个队列的调度时隙值,其中一个加权调度周期的调度时隙计数总数为各个队列权值总和,各个队列初始调度时隙值为加权调度周期的初始调度时隙计数值;第一检查装置,用于检查是否有队列的调度时隙值小于等于当前调度时隙计数值,若是,交由调度装置处理,否则,交由加权调度参数保存装置重新设置保存各个队列的权值及相应权重调度间隔以进行下一加权轮循调度;调度装置,用于从队列调度数据出队发送,并将该队列的调度时隙值修改为当前调度时隙计数值与该队列的权重调度间隔之和交由计数设置保存装置保存,然后将调度时隙计数值加一,重新交由第一检查装置处理。
其中,所述第一检查装置按照权值从大到小排序检查队列的调度时隙值是否小于等于当前调度时隙,在检查到一个队列的调度时隙值小于等于当前调度时隙计数值后不再继续检查排序在后的队列。
其中,所述调度装置还包括判断装置,用于判断当前调度时隙计数值是否大于一个加权调度周期的时隙总数,若是,交由加权调度参数保存装置重新设置保存各个队列的权值及相应权重调度间隔以进行下一加权轮循调度;否则,交由第一检查装置处理。
其中,待调度的队列分为优先级队列和加权调度队列;所述调度装置包括优先级队列调度装置,用于优先调度优先级队列的数据;加权队列调度装置,在优先级队列的数据全部调度完后进行加权队列数据的调度;第二检查装置,在每次加权队列调度装置调度一个加权队列的数据后检查优先级队列是否有数据发送,若有,则通知优先级调度装置调度数据,并在优先级队列数据发送完后通知加权队列调度装置继续进行加权队列数据调度;若没有,直接通知加权队列调度装置进行加权队列数据调度。
其中,所述优先级队列调度装置包括第三检查装置,用于检查当前优先级队列是否有数据发送;数据发送装置,在第三检查装置检查到当前优先级队列有数据时,将该优先级队列的数据调度出队发送;判断装置,判断是否调度完所有优先级队列,若是,结束优先级队列调度,执行加权队列调度,否则,转到下一级优先级队列,交由第三检查装置处理。
与现有技术相比,本发明具有以下有益效果
首先,本发明根据各个队列的权值确定其在一个加权调度周期中的相应权重调度间隔,然后根据所述确定的各个队列的权重调度间隔相应调度各个队列数据出队发送,由于各个队列都按照权重调度间隔进行调度,尽量保证每个队列的调度机会均匀分布,因此,每个队列得到的发送机会几乎都是均匀的,队列调度发送的数据比较均匀,数据的突发和抖动降低了;其次,本发明在按照权重调度间隔进行调度时还按照权值大小优先调度权值大的队列,由于对影响突发较大的权值大的队列进行优先调度,彻底根除了一个队列连续发包的问题,因此,可保证权值大的队列不会集中在调度周期的后期发送,可有效降低数据突发和抖动;再次,本发明还结合优先级调度策略,预先将待调度的队列分为优先级队列和加权队列,调度时,优先调度优先级队列的数据,待优先级队列的数据全部调度完后才进行加权队列数据的调度,从而保证QoS要求较高的数据在优先级队列中优先发送,其他QoS要求稍低的队列也可按照权值大小进行加权调度,可满足不同QoS业务数据报文的发送要求。


图1是本发明队列调度方法的主要流程图;图2是本发明队列调度方法应用的一种网络结构示意图;图3是本发明队列调度方法的第一实施例流程图;图4是本发明结合优先级调度的队列调度方法第二实施例流程图;图5是图4所示优先级队列调度的流程图;图6是本发明队列调度装置的组成示意图;图7是图6所示调度控制装置的一种组成示意图;图8是图7所示调度装置的一种组成示意图;
图9是图8所示优先级队列调度装置的一种组成示意图;图10本发明与现有技术比较的效果对比示意图。
具体实施例方式
本发明在数据网络中实现队列加权调度的核心在于根据各个队列的权重调度间隔进行,所谓权重调度间隔即在一个调度周期中,每个队列根据其权值大小确定的、可保证该队列的数据调度尽量均匀的数值,根据该数值进行队列调度可尽量保证每个队列的调度机会均匀分布,保证抖动尽可能的小,使每个队列得到的发送机会几乎都是均匀的,数据发送的延迟抖动都将非常小,下面进行详细说明。
参考图1,该图是本发明队列调度方法的主要流程图,主要包括以下步骤在步骤10,确定各个队列加权调度的权值,具体实现时,对于网络中的数据按照对QoS的需求不同分为不同的类,同一类QoS需求的数据使用同一个队列,然后相应确定每个队列加权调度的权值;由于一个队列权重越大,其发送频率越高,也即相应各个队列的权值其发送间隔也不同,为此,实现队列均匀加权调度的关键点,在步骤11,根据各个队列的权值确定其在一个加权调度周期中的相应权重调度间隔;最后,在步骤12,根据所述确定的各个队列的权重调度间隔相应调度各个队列数据出队发送。
由于队列是根据权重调度间隔相应进行调度的,因此,本发明中数据的突发和延迟抖动等都可以得到很好的改善,需要说明的是,在根据权重调度间隔进行调度时优先调度权值大的队列的数据可以取得更好的有益效果。
参考图2,该图是本发明队列调度方法应用的网络结构示意图。
本发明中,队列调度主要分为三部分初始化部分、优先级调度部分和加权轮循调度部分,其中初始化部分经初始化后保存相应的权值调度参数,调度时,权值调度部分根据权值调度参数相应进行出队列操作,优先级调度部分则在需要优先调度时进行相应优先级队列的数据调度,上述中加权轮循调度部分是本发明的核心部分,优先级调度部分可根据实际情况设置,也可以不设置。
另外,如图2所示,本发明中还包括入队列操作部分和出队列操作部分,所述入队列操作部分从外部接口得到数据包,进行入队列操作,将数据包存放在队列中;所述出队列操作部分从调度部分得到出队列消息,从队列中调度数据包出队列,并交外部发送模块发送,其它未在图中示出的部分不涉及本发明范围,这里不做详细描述。
参考图3,该图是本发明调度方法的第一实施例流程图。
本实施例中将各个队列权值WQ(Weight)总和作为加权调度周期的调度时隙计数总数,并设置各个队列初始调度时隙值为加权调度周期的初始调度时隙计数值。
具体实现时,权值调度参数包括了所有队列的调度信息,包括每个队列的权值WQ(Weight),队列号Q(Queue),所有队列的权值之和WS(WeightSum)。将所有队列按照权值大小依次排序后各个队列序号I,调度时按照排序的顺序进行,从i为0开始,找到一个调度时隙Ni小于或等于当前时隙计数值S的队列进行调度。
另外,相应所述队列排序序号i,所述权值调度参数还包括当前队列在当前调度周期中剩余发送次数计数Ci,其初始值等于队列权值WQi(Weight),该队列数据每调度一次,所述发送次数计数Ci要减1,还有队列号Qi(Queue),调度时隙Ni,当前队列权重调度间隔Ri(即总权值WS与当前队列权值WQ的比值[WS/WQi]取整)。
每个调度周期中,调度时隙计数值S从0到WS-1。S每次归0后,完成一个完整的调度周期,所有参数都要重新更新,N和C在一个加权调度周期后根据如下公式动态计算更新
Ci=WQiRi=[WS/WQi](WQi为0时,Ri为0)Ni=S+Ri时(N初始值为0)每次调度周期开始时,先执行初始化,将所有队列按照权值进行排序,i为0的表项中存放权值最大的队列的参数。依次类推,并按照上述公式计算R、C参数。写入相应序号i从0开始的调度参数表中。初始化时,所有表项的N初始值全部为0。在一个周期的调度过程中,每个队列的数据每调度一次,该队列的调度时隙值N按照上述公式进行更新,序号为i的表项内容具体如表一所示。
表一

还请参考图3,本实施例加权轮循调度详细流程包括如下步骤首先计算各个队列的总权值WS并将调度时隙值置为0,然后将队列按权值进行排序并计算调度参数,其中各个队列的初始调度时隙N全部置为0,然后置调度表项i等于0,即从i等于0的队列开始检查,判断该该队列的Ci是否等于0,若为否,继续检查该队列的调度时隙Ni是否大于当前调度时隙计数值S,若仍为否,则确定当前时隙要调度的队列号为Qi,修改该队列的加权调度参数,其中将该队列的Ci减1,调度时隙值修改为当前调度时隙计数值与该队列的加重调度发送间隔Ri之和;然后进一步判断该Qi队列是否有数据包发送,若该Qi队列有数据包发送,则向出队列部分发送出队列消息并附带队列号Qi,然后将当前调度时隙计数值加1,重新进行下一次调度,若该Qi队列没有数据包发送,则直接将当前调度时隙计数值加1,重新进行下一次调度。
上述在检查到Ci等于0时,即排序在前的权值较大的队列发送次数已经耗尽,这是需将调度表索引置1,继续检查下一排序在后的队列的Ci是否等于0,直到检查到最末的队列Ci等于0,则说明全部队列都已经调度完,重新计算各个队列的权值及相应权重调度间隔开始新的加权轮循调度。
另外,在检查到队列的调度时隙Ni大于当前调度时隙S时,需要继续检查排序在后的下一队列的调度时隙是否小于等于当前调度时隙计数值,以免排序在前的队列总是抢占调度机会,在所有的队列都检查过,调度时隙均大于当前调度时隙计数值,则说明已经调度了一个加权调度周期,需要重新计算各个队列权值及相应权重调度间隔开始新的加权轮循调度。
本发明中还可以将优先级调度和加权轮循调度有效的结合起来。即将待调度的队列分为优先级队列和加权队列,首先初始化加权调度的参数,设置优先级队列的权值和权重调度间隔为0,即利用权值为0表示队列按优先级进行调度。
参考图4,调度时,对权值为0的队列进行优先级调度,直到优先级队列中没有数据包可发送才转到加权队列调度。加权队列调度中每次最多只调度发送一个包,然后再次进行优先级调度。当加权调度完成一个调度周期后,直接回到起始处重新初始化调度参数,进入下一次加权轮循调度,这样处理保证了优先级队列的及时调度。
具体对优先级队列的调度参考图5所示。
调度时按照绝对优先级进行调度,只有将高优先级队列的包发送完,才发送低一级优先级的队列。
具体的,从最高优先级队列开始,首先检查当前优先级队列是否有数据发送,若有,则将该优先级队列的数据调度出队发送;否则,继续判断是否调度完所有优先级队列,若已经全部调度完所有的优先级队列,则结束优先级队列调度,执行加权队列调度,否则,转到下一级优先级队列,继续调度。
需要说明的是,在从一个优先级调度一个数据包,需要重新按照优先级检查高优先级队列是否有数据包要发送,若有,则先发送完高优先级队列的数据包,若没有,才进行低优先级队列的数据包调度。
下面说明本发明另一方面的队列调度装置。
参考图6,该图是本发明队列调度装置的组成示意图。
如图6所示,本发明的队列调度装置中加权调度参数保存装置60,主要用于保存根据各个队列的权值预先确定的其在一个加权调度周期中的相应权重调度间隔;所述权重调度间隔参考前述说明,这里不再详细说明。
调度控制装置61,主要用于根据所述保存的预先确定的各个队列的权重调度间隔相应调度各个队列数据出队发送。
参考图7所示,该图是上述调度控制装置61的一种组成示意图。
具体的,计数设置保存装置611,用于保存一个加权调度周期中各个队列的调度时隙值,其中一个加权调度周期的调度时隙计数总数为各个队列权值总和,各个队列初始调度时隙值为加权调度周期的初始调度时隙计数值;第一检查装置612,用于检查是否有队列的调度时隙值小于等于当前调度时隙计数值,若是,交由调度装置613处理,否则,交由加权调度参数保存装置60重新设置保存各个队列的权值及相应权重调度间隔以进行下一加权轮循调度;调度装置613,用于从该队列调度数据出队发送,并将该队列的调度时隙值修改为当前调度时隙计数值与该队列的权重调度间隔之和,然后将调度时隙计数值加一,重新交由第一检查装置处理。
具体实现时,所述第一检查装置检查时,最好按照权值从大到小排序检查队列的调度时隙值是否小于等于当前调度时隙,在检查到一个队列的调度时隙值小于等于当前调度时隙计数值后不再继续检查排序在后的队列,也即优先调度权值大的队列的数据,由于权值大的队列的数据优先调度,从而在加权调度周期的后期不会出现大的数据突发。
需要说明的是,在一个加权调度周期后,需要返回重新进行新的加权轮循调度,为此,本实施例所述调度装置613还包括判断装置,用于判断当前调度时隙计数值是否大于一个加权调度周期的时隙总数,若是,交由加权调度参数保存装置60重新设置保存各个队列的权值及相应权重调度间隔以进行下一加权轮循调度;否则,交由第一检查装置612处理。
另外,参考前述说明,本发明中可结合优先级队列技术,即将待调度的队列分为优先级队列和加权调度队列,对于优先级队列的数据优先调度,待优先级队列的数据全部调度完后才进行加权队列数据的调度,参考图8,为此本实施例中所述调度装置613进一步包括优先级队列调度装置6131,用于优先调度优先级队列的数据;加权队列调度装置6132,在优先级队列的数据全部调度完后进行加权队列数据的调度;第二检查装置6133,在每次加权队列调度装置调度一个加权队列的数据后检查优先级队列是否有数据发送,若有,则通知优先级调度装置调度数据,并在优先级队列数据发送完后通知加权队列调度装置继续进行加权队列数据调度;若没有,直接通知加权队列调度装置进行加权队列数据调度。
优先级队列调度装置6131根据队列的优先级进行调度,参考图9,该图是优先级队列调度装置的一种组成示意图,其中第三检查装置6131a,用于检查当前优先级队列是否有数据发送;数据发送装置6131b,在第三检查装置检查到当前优先级队列有数据时,将该优先级队列的数据调度出队发送;判断装置6131c,判断是否调度完所有优先级队列,若是,结束优先级队列调度,执行加权队列调度,否则,转到下一级优先级队列,交由第三检查装置处理。
下面结合具体的例子,并对比现有技术进一步说明本发明的技术效果。
假如有8个队列A、B、C、D、E、F、G、H,权值分别为10、7、5、3、2、1、1、1,可以对比一下现有两种队列调度技术方案和本发明队列调度方法最后调度结果的不同。
先看第一种现有技术的调度方法,按照现有第一种技术方案,对8个队列的调度结果是AAAAAAAAAABBBBBBBCCCCCDDDEEFGH。其中队列A的调度时隙间隔分别为1、21,即最短1个时隙调度一次,最长21个时隙调度一次;队列B的调度时隙间隔分别为1、24,即最短1个时隙调度一次,最长24个时隙调度一次;队列C的调度时隙间隔分别为1、26,即最短1个时隙调度一次,最长26个时隙调度一次;队列D的调度时隙间隔分别为1、28,即最短1个时隙调度一次,最长28个时隙调度一次;队列E的调度时隙间隔分别为1、29,即最短1个时隙调度一次,最长28个时隙调度一次;队列F的调度时隙间隔为30,即30个时隙调度一次;队列G的调度时隙间隔为30,即30个时隙调度一次;队列H的调度时隙间隔为30,即30个时隙调度一次。
再看第二种现有技术的调度方法,如果按照第二种现有技术方案,对8个队列的调度结果是ABCDEFGHABCDEABCDABCABCABABAAA。其中队列A的调度时隙间隔分别为1、2、3、4、5、8,即最短1个时隙调度一次,最长8个时隙调度一次;队列B的调度时隙间隔分别为2、3、4、5、8,即最短2个时隙调度一次,最长8个时隙调度一次;队列C的调度时隙间隔分别为3、4、5、8、10,即最短3个时隙调度一次,最长10个时隙调度一次;队列D的调度时隙间隔分别为5、8、17,即最短5个时隙调度一次,最长17个时隙调度一次;队列E的调度时隙间隔分别为8、22,即最短8个时隙调度一次,最长22个时隙调度一次;队列F的调度时隙间隔为30,即30个时隙调度一次;队列G的调度时隙间隔为30,即30个时隙调度一次;队列H的调度时隙间隔为30,即30个时隙调度一次。
而如果按照本发明队列调度的方法,对8个队列的调度结果是ABCADBAECABFAGBACDABHACBAECABD。队列A的调度时隙间隔为3,即最短3个时隙调度一次,最长也是3个时隙调度一次;队列B的调度时隙间隔分别为4、5、4、5、4、5、3,即最短3个时隙调度一次,最长5个时隙调度一次;队列C的调度时隙间隔分别为6、8、6、4、6,即最短4个时隙调度一次,最长8个时隙调度一次;队列D的调度时隙间隔分别为13、12、5,即最短5个时隙调度一次,最长13个时隙调度一次;队列E的调度时隙间隔分别为18、12,即最短12个时隙调度一次,最长18个时隙调度一次;队列F的调度时隙间隔为30,即30个时隙调度一次;队列G的调度时隙间隔为30,即30个时隙调度一次;队列H的调度时隙间隔为30,即30个时隙调度一次。
参考图10本发明与上述两种方案进行队列调度的对比效果表,其中最左边矩形代表第一种现有技术方案,中间的矩形代表第二种现有技术方案,最右边的矩形代表本发明的方案,采用本发明的队列调度方法后,各队列的调度间隔抖动大大缩小,往一个点收敛,说明调度间隔趋于均匀。
以上所述仅为本发明的优选实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
权利要求
1.一种数据网络中的队列调度方法,用于对所述数据网络中的多个队列的数据进行加权轮循调度,其特征在于,包括步骤a、确定各个队列加权调度的权值,并根据各个队列的权值确定其在一个加权调度周期中的相应权重调度间隔;b、根据所述确定的各个队列的权重调度间隔相应调度各个队列数据出队发送。
2.如权利要求1所述的数据网络中的队列调度方法,其特征在于,步骤b包括b1、将各个队列权值总和作为加权调度周期的调度时隙计数总数,并设置各个队列初始调度时隙值为加权调度周期的初始调度时隙计数值;b2、检查是否有队列的调度时隙值小于等于当前调度时隙计数值,若是,执行步骤b3,否则,执行步骤b4;b3、从该队列调度数据出队发送,并将该队列的调度时隙值修改为当前调度时隙计数值与该队列的权重调度间隔之和,然后将调度时隙计数值加一,返回步骤b2继续该加权调度周期的数据调度;b4、返回步骤a重新确定各个队列的相应权值进行下一加权轮循调度。
3.如权利要求2所述的数据网络中的队列调度方法,其特征在于,步骤b2按照权值从大到小排序检查队列的调度时隙值是否小于等于当前调度时隙,在检查到一个队列的调度时隙值小于等于当前调度时隙计数值后不再继续检查排序在后的队列。
4.如权利要求2或3所述的数据网络中的队列调度方法,其特征在于,步骤b3返回步骤b2继续调度之前还包括判断步骤判断当前调度时隙计数值是否大于一个加权调度周期的时隙计数总数,若是,返回步骤a重新确定各个队列的相应权值进行下一加权轮循调度;否则,返回步骤b2继续该加权调度周期的数据调度。
5.如权利要求4所述的数据网络中的队列调度方法,其特征在于,还包括预先将待调度的队列分为优先级队列和加权队列;步骤a确定队列的权值时,将优先级队列的权值和相应权重调度间隔设置为0,加权队列设置为相应的权值和权重调度间隔;步骤b2之前还包括优先调度权值为0的优先级队列的数据,待所述优先级队列的数据全部调度完后才执行步骤b2进行加权队列数据的调度;步骤b3每个加权调度时隙调度一个加权队列的数据后,返回重新执行步骤b2之前首先检查优先级队列是否有数据发送,若有,则将优先级队列数据调度完后再继续执行步骤b2进行加权队列数据调度;若没有,直接执行步骤b2进行加权队列的数据调度。
6.如权利要求5所述的数据网络中的队列调度方法,其特征在于,对优先级队列数据调度包括如下步骤1)检查当前优先级队列是否有数据发送,若有,则执行2),否则执行3)2)将该优先级队列的数据调度出队发送;3)判断是否调度完所有优先级队列,若是,结束优先级队列调度,执行加权队列调度,否则,转到下一级优先级队列,返回1)继续调度。
7.一种数据网络中的队列调度装置,用于对所述数据网络中的多个队列的数据进行加权轮循调度,其特征在于,包括加权调度参数保存装置,用于保存根据各个队列的权值预先确定的其在一个加权调度周期中的相应权重调度间隔;调度控制装置,用于根据所述保存的预先确定的各个队列的权重调度间隔相应调度各个队列数据出队发送。
8.如权利要求7所述的数据网络中的队列调度装置,其特征在于,所述调度控制装置包括计数设置保存装置,用于保存一个加权调度周期中各个队列的调度时隙值,其中一个加权调度周期的调度时隙计数总数为各个队列权值总和,各个队列初始调度时隙值为加权调度周期的初始调度时隙计数值;第一检查装置,用于检查是否有队列的调度时隙值小于等于当前调度时隙计数值,若是,交由调度装置处理,否则,交由加权调度参数保存装置重新设置保存各个队列的权值及相应权重调度间隔以进行下一加权轮循调度;调度装置,用于从队列调度数据出队发送,并将该队列的调度时隙值修改为当前调度时隙计数值与该队列的权重调度间隔之和交由计数设置保存装置保存,然后将调度时隙计数值加一,重新交由第一检查装置处理。
9.如权利要求8所述的数据网络中的队列调度装置,其特征在于,所述第一检查装置按照权值从大到小排序检查队列的调度时隙值是否小于等于当前调度时隙,在检查到一个队列的调度时隙值小于等于当前调度时隙计数值后不再继续检查排序在后的队列。
10.如权利要求8或9所述的数据网络中的队列调度装置,其特征在于,所述调度装置还包括判断装置,用于判断当前调度时隙计数值是否大于一个加权调度周期的时隙总数,若是,交由加权调度参数保存装置重新设置保存各个队列的权值及相应权重调度间隔以进行下一加权轮循调度;否则,交由第一检查装置处理。
11.如权利要求10所述的数据网络中的队列调度装置,其特征在于,待调度的队列分为优先级队列和加权调度队列;所述调度装置包括优先级队列调度装置,用于优先调度优先级队列的数据;加权队列调度装置,在优先级队列的数据全部调度完后进行加权队列数据的调度;第二检查装置,在每次加权队列调度装置调度一个加权队列的数据后检查优先级队列是否有数据发送,若有,则通知优先级调度装置调度数据,并在优先级队列数据发送完后通知加权队列调度装置继续进行加权队列数据调度;若没有,直接通知加权队列调度装置进行加权队列数据调度。
12.如权利要求11所述的数据网络中的队列调度装置,其特征在于,所述优先级队列调度装置包括第三检查装置,用于检查当前优先级队列是否有数据发送;数据发送装置,在第三检查装置检查到当前优先级队列有数据时,将该优先级队列的数据调度出队发送;判断装置,判断是否调度完所有优先级队列,若是,结束优先级队列调度,执行加权队列调度,否则,转到下一级优先级队列,交由第三检查装置处理。
全文摘要
本发明公开了一种数据网络中的队列调度方法,该方法主要包括步骤a.确定各个队列加权调度的权值,并根据各个队列的权值确定其在一个加权调度周期中的相应权重调度间隔;b.根据所述确定的各个队列的权重调度间隔相应调度各个队列数据出队发送。另外,本发明还公开了一种相应的队列调度装置。由于按照权重调度间隔进行调度,尽量保证了每个队列的调度机会均匀分布,因此,本发明中每个队列得到的发送机会几乎都是均匀的,队列调度发送的数据比较均匀,数据的突发和抖动降低了。
文档编号H04L12/56GK1773955SQ20041009091
公开日2006年5月17日 申请日期2004年11月10日 优先权日2004年11月10日
发明者马继彬 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1