一种队列调度方法及装置制造方法

文档序号:7811883阅读:151来源:国知局
一种队列调度方法及装置制造方法
【专利摘要】本发明公开了一种队列调度方法,所述队列为加权轮询调度WRR队列,该方法包括:建立以队列势能为关键值的完全二叉树,所述完全二叉树的节点与拥塞队列一一对应;在报文入队或者出队时,基于队列势能值对所述队列对应的节点在所述完全二叉树中的位置进行调整,使得完全二叉树上所有父节点的势能值均小于等于子节点的势能值。本发明还公开了一种队列调度装置。采用本发明能够使队列调度更加公平。
【专利说明】一种队列调度方法及装置

【技术领域】
[0001] 本发明涉及网络通信【技术领域】,特别涉及一种队列调度方法及装置。

【背景技术】
[0002] 加权轮询调度(WRR,Weighted Round Robin)队列是数通设备支持的一种队列形 式。其有如下几个特征:1、每组有若干个队列,如1.2…N;2、每个队列可以指定份额,通常 以字节(Byte)为单位,也可以指定权重;3、一组队列可以应用到接口上。
[0003] 现有WRR队列调度采用份额轮询的方式调度,当前队列的份额消耗完后,增加对 应的份额,转而进行下一队列的调度,以到达按配置份额调度的目的。当多个队列配置较大 份额时,每次轮询份额需要消耗完再进行下一轮队列调度,队列可能独自占用较大的时间 片,同一队列再次发送的间隔也较大。从较短的时间片来评估队列,公平性较差。


【发明内容】

[0004] 为实现上述发明目的,本发明提供了一种队列调度方法,所述队列为加权轮询调 度WRR队列,该方法包括 :
[0005] 建立以队列势能为关键值的完全二叉树,所述完全二叉树的节点与拥塞队列一一 对应;
[0006] 在报文入队或者出队时,基于队列势能值对所述队列对应的节点在所述完全二叉 树中的位置进行调整,使得完全二叉树上所有父节点的势能值均小于等于子节点的势能 值。
[0007] 为实现上述发明目的,本发明还提供了一种队列调度装置,所述队列为加权轮询 调度WRR队列,该装置包括 :
[0008] 树建立模块,用于建立以队列势能为关键值的完全二叉树,所述完全二叉树的节 点与拥塞队列 对应;
[0009] 队列调度模块,用于在报文入队或者出队时,基于队列势能值对所述队列对应的 节点在所述完全二叉树中的位置进行调整,使得完全二叉树上所有父节点的势能值均小于 等于子节点的势能值。
[0010] 综上所述,本发明实施例中,采用完全二叉树加权重的方式实现WRR队列调度。通 过本发明的队列调度方式,使得队列独自占用的时间片很短,同一队列再次发送的间隔也 很短,从较短的时间片来评估队列,队列调度更加公平。

【专利附图】

【附图说明】
[0011] 图1为本发明提出一种队列调度方法的流程示意图。
[0012] 图2为本发明提出一种入队调度方法的流程示意图。
[0013] 图3为本发明提出一种出队调度方法的流程示意图。
[0014] 图4为本发明实施例队列调度装置的结构示意图。

【具体实施方式】
[0015] 以下参照附图,对本发明实施例作进一步地详细说明。
[0016] 为更好地说明本发明,下面简单介绍一下有关WRR队列的概念。
[0017] 11^有多个队列〇,各个队列定义为〇[1],〇[2],〇[3],?,〇[刚;
[0018] 每个队列有一个轮询值 V,V[1],V[2],V[3],"·,ν[Ν];
[0019] 每个队列有一个权重值W,W[1],W[2],W[3],"·Ι[Ν],WRR队列公用一个常数C。W 由计算所得,w[l] =C/V[1],W[2] =C/V[2],W[3] =C/V[3],*",W[N] =C/V[N]。(说明: c的取值决定了 C/W的精度,建议C的取值是各队列W最大值的100倍或以上)。
[0020] 每个队列有一个势能P,P[1],P[2],P[3],…,P[N],P是W和L之积的累加值。L 表示一个报文的长度。因此,本发明中队列的势能P由W和L决定,用于作为完全二叉树的 关键值,在报文入队和出队时,根据势能值进行完全二叉树的重构。
[0021] 现有技术中,WRR队列调度采用份额轮询的方式调度,比如,每个报文长度为1000 个字节,两队列分别配置份额100000及200000,则,队列1 =份额100000/1000字节=100 个报文;队列2 = 200000/1000字节=200个报文。也就是说,需要队列1发完100个报文 之后,队列2再发200个报文,必须等待队列2发完200个报文后,才能重新进行队列1的 调度。这样,在长时间来看,两个队列发报文的比例虽然是1 :2,但是在较短的时间内来看, 总是在发同一个队列的报文,因此队列的短期公平性难以体现。
[0022] 本发明为体现短期公平性,采用完全二叉树加权重的方式实现WRR队列调度。WRR 一组拥塞队列以P为关键(Key)值建立一棵完全二叉树,也可将此完全二叉树称之为堆。本 发明中将报文缓冲到一个空队列,该队列就成为拥塞队列,每个拥塞队列作为堆的一个节 点,队列的示意如下;
[0023]

【权利要求】
1. 一种队列调度方法,所述队列为加权轮询调度WRR队列,其特征在于,该方法包括: 建立以队列势能为关键值的完全二叉树,所述完全二叉树的节点与拥塞队列一一对 应; 在报文入队或者出队时,基于队列势能值对所述队列对应的节点在所述完全二叉树中 的位置进行调整,使得完全二叉树上所有父节点的势能值均小于等于子节点的势能值。
2. 如权利要求1所述的方法,其特征在于,在报文入队时,进行入队调度,该方法包括: 将报文缓冲到一个空队列,以使该空队列成为首次拥塞的队列; 将该首次拥塞的队列作为完全二叉树的一个节点,加入到以队列势能为关键值的完全 二叉树的最后一个节点的后面; 基于队列势能值对该首次拥塞的队列对应的节点在所述完全二叉树中的位置进行调 整,使得完全二叉树上所有父节点的势能值均小于等于子节点的势能值。
3. 如权利要求1所述的方法,其特征在于,在报文出队时,进行出队调度,该方法包括: 将根节点队列缓冲的首报文出队,以使该根节点队列成为首报文出队队列; 根据报文长度和首报文出队队列的权重值,更新首报文出队队列的势能值; 判断首报文出队后,该首报文出队队列是否为空,当不为空时, 基于队列势能值对该首报文出队队列对应的节点在所述完全二叉树中的位置进行调 整,使得完全二叉树上所有父节点的势能值均小于等于子节点的势能值。
4. 如权利要求3所述的方法,其特征在于,该方法进一步包括: 当首报文出队后,该首报文出队队列为空,且在将该空的首报文出队队列移出时所述 完全二叉树不为空时: 将该首报文出队队列对应的节点移出,将完全二叉树上最后一个节点移到根节点的位 置; 基于队列势能值对该被移到根节点位置节点在所述完全二叉树中的位置进行调整,使 得完全二叉树上所有父节点的势能值均小于等于子节点的势能值。
5. 如权利要求3所述的方法,其特征在于,该方法进一步包括: 当首报文出队后,该首报文出队队列为空,且在将该空的首报文出队队列移出时所述 完全二叉树也为空时: 将该首报文出队队列对应的节点移出,将该首报文出队队列移除之前对应的更新势能 值作为完全二叉树的初始势能。
6. 如权利要求3或5所述的方法,其特征在于,所述根据报文长度和首报文出队队列的 权重值,更新首报文出队队列的势能值的方法包括: 根据P?s= P+W*L,其中,w表示首报文出队队列的权重值,L表示报文的长度,表 示以该首报文出队队列更新前的势能值进行W和L之积的累加,以P 对首报文出队队列 的势能值进行更新。
7. -种队列调度装置,所述队列为加权轮询调度WRR队列,其特征在于,该装置包括: 树建立模块,用于建立以队列势能为关键值的完全二叉树,所述完全二叉树的节点与 拥塞队列一一对应; 队列调度模块,用于在报文入队或者出队时,基于队列势能值对所述队列对应的节点 在所述完全二叉树中的位置进行调整,使得完全二叉树上所有父节点的势能值均小于等于 子节点的势能值。
8. 如权利要求7所述的装置,其特征在于,在报文入队时,进行入队调度,所述队列调 度模块进一步包括: 缓冲单元,用于将报文缓冲到一个空队列,以使该空队列成为首次拥塞的队列; 入堆调度单元,用于将该首次拥塞的队列作为完全二叉树的一个节点,加入到以队列 势能为关键值的完全二叉树的最后一个节点的后面;基于队列势能值对该首次拥塞的队列 对应的节点在所述完全二叉树中的位置进行调整,使得完全二叉树上所有父节点的势能值 均小于等于子节点的势能值。
9. 如权利要求7所述的装置,其特征在于,在报文出队时,进行出队调度,所述队列调 度模块进一步包括: 首报文出队单元,用于将根节点队列缓冲的首报文出队,以使该根节点队列成为首报 文出队队列; 队列势能更新单元,用于根据报文长度和首报文出队队列的权重值,更新首报文出队 队列的势能值; 确认单元,用于判断首报文出队后,该首报文出队队列是否为空; 出队调度单元,用于在确认单元判断首报文出队后,该首报文出队队列不为空时,基于 队列势能值对该首报文出队队列对应的节点在所述完全二叉树中的位置进行调整,使得完 全二叉树上所有父节点的势能值均小于等于子节点的势能值。
10. 如权利要求9所述的装置,其特征在于, 所述出队调度单元,还用于在确认单元判断首报文出队后,该首报文出队队列为空,且 在将该空的首报文出队队列移出时所述完全二叉树不为空时,将该首报文出队队列对应的 节点移出,将完全二叉树上最后一个节点移到根节点的位置;基于队列势能值对该被移到 根节点位置节点在所述完全二叉树中的位置进行调整,使得完全二叉树上所有父节点的势 能值均小于等于子节点的势能值。
11. 如权利要求9所述的装置,其特征在于, 所述出队调度单元,还用于在确认单元判断首报文出队后,该首报文出队队列为空,且 在将该空的首报文出队队列移出时所述完全二叉树也为空时,将该首报文出队队列对应的 节点移出,将该首报文出队队列移除之前对应的更新势能值作为完全二叉树的初始势能。
12. 如权利要求9或11所述的装置,其特征在于,所述队列势能更新单元具体用于: 根据P?s= P+W*L,其中,w表示首报文出队队列的权重值,L表示报文的长度,表 示以该首报文出队队列更新前的势能值进行W和L之积的累加,以P 对首报文出队队列 的势能值进行更新。
【文档编号】H04L12/863GK104144134SQ201410411353
【公开日】2014年11月12日 申请日期:2014年8月20日 优先权日:2014年8月20日
【发明者】董君 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1