改进的dwrr调度方法

文档序号:7753719阅读:478来源:国知局
专利名称:改进的dwrr调度方法
技术领域
本发明涉及一种DWRR调度方法,特别涉及一种QoS技术中的DWRR调度方法。
背景技术
QoS全称为“Quality of Service”,中文名为“服务质量”。QoS技术是一种用来解决网络延迟和阻塞等问题的技术。而DWRR调度(deficit weighted round robin差值加权轮询)是QoS领域一种重要的队列调度技术。传统的DWRR调度方法在实现的时候有两组队列链表,active链表和empty链表, 调度方法如下1)将active链表中第一个队列中的当前包的包长和该第一个队列的DC进行比较,如果包长大于等于DC (deficit counter,差值计数器),包不会被发送,将该第一个队列的DC加上相应的额度(quantum)后,将该第一个队列移到active链表尾部;2)如果包长小于DC,包将会被发送出去,将该第一个队列的DC减去该包的包长之后,用类似的方法继续比较该队列中的下一个包的包长与当前DC的大小;3)当一个队列中没有包的时候,将该队列移到empty链表;4)用类似的方法继续对active链表下一个队列进行处理;5)当empty链表的队列有包的时候会插入active链表的尾部;这种调度方法在一定情况下会出现一个问题,当某一个队列对应的DC值比较大的时候,会导致将该队列所有的包都调度完以后,才能调度下一个队列,如果这个队列的包比较多,那么这个队列占用的调度时间会相对比较大,后面的队列等待调度的时间过长,从而导致该队列对应的业务网络延迟过大,阻塞,甚至中断等问题。

发明内容
本发明要解决的技术问题是提供一种改进的DWRR调度方法,其能解决传统DWRR 调度方法中出现的一些队列调度等待时间过长,业务阻塞甚至中断的等问题。为解决上述技术问题,本发明的改进的DWRR调度方法,其特征在于,包括1)将active链表中第一个队列中当前第一个包的包长和所述第一个队列的DC进行比较如果所述包的包长大于等于所述第一队列的DC,该包不会被发送,将所述第一个队列的DC加上相应的额度,后将所述第一个队列移到standby链表尾部;如果该包的包长小于所述第一个队列的DC,该包将会被发送出去,将所述第一个队列的DC减去所述包的包长后,将所述第一个队列移到active链表的尾部,同样的方法继续进行active链表中下一个队列的调度;2)当active链表中所有的包调度完以后,切换到standby链表调度,按上述步骤一的方法对所述standby链表中的包进行处理。本发明提出的改进的DWRR调度方法,在传统调度方法基础上另外增加了一个 standby链表,而可以使调度粒度更细,更公平,解决传统DWRR调度方法中出现的一些队列调度等待时间过长,业务阻塞甚至中断的等问题。


下面结合附图与具体实施方式
对本发明作进一步详细的说明图1为本发明的具体实施链表示意具体实施例方式图1为本发明DWRR调度方法的一个具体链表示意图,本发明的QoS技术中DWRR 调度方法,在原有两个链表的基础上,引入了一个standby链表。DWRR调度方法包括1)将active链表中第一个队列中的当前第一个包的包长和第一个队列的DC进行比较如果该包的包长大于等于第一队列的DC,该包不会被发送,将第一个队列的DC加上相应的额度,后将第一个队列移到standby链表尾部;如果该包的包长小于第一个队列的DC,该包将会被发送出去,将第一个队列的DC减去该包的包长后,将第一个队列移到 active链表的尾部;按照上述方法对所述active链表中下一个队列中的第一个包进行处理,循环调度;2)当active链表中所有的包调度完以后,切换到standby链表调度,按上述步骤一的方法对所述standby链表中的包进行处理;本发明的调度方法中,还包括当一个队列中没有包时,将所述队列移到empty链表中;当empty链表的队列中有包的时候,可设为插入到standby链表的尾部等待调度。在步骤二中切换到standby链表进行调度后,原先的standby链表成为当前的active链表, 而原先的active链表成为当前的standby链表。即本发明的调度方法中,standby链表和 active链表可根据调度情况实现功能互换。本发明的调度方法,不用等到某一队列中所有的包都调度完毕才调度下一队列,可以使调度粒度更细、更公平,防止因调度等待时间过长引起的网络延迟,网路阻塞,业务中断等。
权利要求
1.一种改进的DWRR调度方法,其特征在于,包括1)将active链表中第一个队列中当前第一个包的包长和所述第一个队列的DC进行比较如果所述包的包长大于等于所述第一队列的DC,该包不会被发送,将所述第一个队列的DC加上相应的额度,后将所述第一个队列移到standby链表尾部;如果该包的包长小于所述第一个队列的DC,该包将会被发送出去,将所述第一个队列的DC减去所述包的包长后,将所述第一个队列移到active链表的尾部;按照上述方法对所述active链表中下一个队列中包进行处理;2)当active链表中所有的包调度完以后,切换到standby链表调度,按上述步骤一的方法对所述standby链表中的包进行处理。
2.按照权利要求1所述的DWRR调度方法,其特征在于,进一步包括当一个队列中没有包时,将所述队列移到empty链表中;当empty链表的队列有包的时候,插入到standby 链表的尾部。
3.按照权利要求1所述的DWRR调度方法,其特征在于所述步骤三中切换到standby 链表调度后,原先的standby链表成为当前的active链表,而原先的active链表成为当前的standby链表。
全文摘要
本发明公开了一种QoS技术中改进的DWRR调度方法,包括1)将active链表中第一个队列中包的包长和该队列的DC进行比较如果包的包长大于等于该队列的DC,该包不会被发送,将该队列的DC加上相应的额度,后将该队列移到standby链表尾部;如果该包的包长小于该队列的DC,该包将会被发送出去,将该队列的DC减去包的包长后,将该队列移到active链表的尾部;按照上述方法对active链表中下一个队列中包进行处理;2)当active链表中所有的包调度完以后,切换到standby链表调度,按上述步骤一的方法对standby链表中的包进行处理。本发明的调度方法,调度粒度更细,更公平。
文档编号H04L12/56GK102316009SQ20101022153
公开日2012年1月11日 申请日期2010年7月8日 优先权日2010年7月8日
发明者何运锋, 张荣斌 申请人:创锐讯通讯科技(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1