一种基于可信调度的改进队列调度算法

文档序号:7778837阅读:192来源:国知局
一种基于可信调度的改进队列调度算法
【专利摘要】本发明公开了一种基于可信调度的改进队列调度算法,所提出的队列调度算法主要由两部分组成:流量控制器和分组调度器。流量控制器采用区分服务网络最常用的令牌桶算法,主要用来控制EF?PHB业务的流量以控制高优先级业务的调度,防止长时间服务高优先级队列造成低优先级队列饿死。分组调度器则通过在加权循环调度算法基础上的改进算法DWRRI和优先级算法基群速率接口相结合来实现。
【专利说明】—种基于可信调度的改进队列调度算法【技术领域】
[0001]本发明涉及通信【技术领域】,特别设计一种基于可信调度的改进队列调度算法。
【背景技术】
[0002]区分服务正是IETF工作组为了改进之前提出的集成业务模型的可扩展性差而提出的一种IP Q0S模型,它简化了信令,对业务流的分类颗粒度更粗,业界普遍认为区分服务模型是一种未来可行的IP QoS模型。区分服务模型实施的特点是采用流聚合机制将具有相同特性的若干业务流聚合起来,为整个聚合流提供服务,而不再面向单个流。因此,处在区分服务网络边界上的路由器保持每流状态信息,而核心路由器只负责转发数据包而不保持状态信息,因而扩展性较好,可使用于大型网络中。
[0003]区分服务网络中,一个网络有多个不同的区分服务域,不同的区分服务域能够提供不同的区分服务业务。在典型区分服务网络中,每个边缘路由器都与其他的区分服务域的路由器相连,负责对汇聚业务流的整形和策略,也提供流状态信息的保存。各个DS域之间,通常也是运营商之间的连接,可以进行服务质量等级SLA之间的协商。根据实施的QoS机制来区分每一类通信,在边缘路由器处根据业务服务要求对其进行分类及流量控制,并对各个业务提供服务,包括带宽分配预留和队列调度等。核心路由器一般位于区分服务自治域内,一般只负责数据包的高速转发,这是区分服务与集成服务的一个重大区别。集成服务为单个流提供服务,但区分服务将具有相同特性业务的流进行汇聚,且与业务状态没有关系,这样就大大减少了调度算法所处理的队列数,因此对路由资源的消耗也大大降低,具有比集成业务更好的扩展性。核心路由器里定义了一组或多组每跳路由,主要根据DSCP值的不同选择特定调度策略进行转发,在每一传输段逐段保证每跳路由行为。
[0004]用户经由区分服务网络进行通信,需经过以下的过程:
[0005]1.用户首先向自身相连的边界节点发送数据,边界节点负责在网络边缘进行业务分类和流量调整,业务分类可以基于DS域也可以基于其他特征,流量调整则使用测量、标记、丢弃、整形等手段实现;
[0006]2.边界节点识别出业务后,根据业务类型在IP首部DSCP字段打上标记,根据不同DSCP值为各种业务定义每跳路由行为,然后向本DS域内的核心节点转发数据,DS区域的服务提供策略由PHB决定,DS节点根据PHB属性转发,并且只是将具有相同DSCP值的大量业务流汇聚成少数的聚合流根据与DSCP对应的PHB对报文实行简单转发。
[0007]3.若需要经由不同Diffserv网络转发,则内部核心节点转发至本DS域边界节点后,边界节点与其他Diffserv网络边界节点传递信息,由于不同的DS域可有不同的PHB,以实现不同的服务提供策略,边界节点之间需要通过协商来提供跨区域服务,SLA是服务等级协定,协商关于业务流在网络中传递时所应当获得的待遇,TCA是流量调整协定,协商关于业务分类准则、业务模型及相应处理。
[0008]4.经过多次转发之后,数据包由目标网络所联Diffserv网络边界节点转发至目标网络。
【发明内容】

[0009]本发明所解决的技术问题是:
[0010]本发明主要研究在区分服务体系下QoS的调度策略,提出一种基于可信调度的改进队列调度算法。可信调度模型中的分组调度算法是以加权轮循算法为基础,针对DffRR(Deficit weighted Round Robin)算法存在权值固定的缺点,提出了一种改进的算法DffRRI (DWRR Improvement),它针对网络中数据包的流速来改变赋予其的权值,从而实现付出少量代价保证DWRR优点的同时弥补其不足。
[0011]为了解决上述技术问题,本发明所采用的技术方案是:
[0012]基于可信调度的改进队列调度算法,该队列调度算法主要由两部分组成:流量控制器和分组调度器。流量控制器采用区分服务网络最常用的令牌桶算法,主要用来控制EFPHB业务的流量以控制高优先级业务的调度,防止长时间服务高优先级队列造成低优先级队列饿死。分组调度器则通过在WRR算法基础上的改进算法DWRRI和优先级算法PRI相结合来实现。当业务流分组到达时,首先进入边缘路由器,若分组被标记为EF业务,则它必须先通过令牌桶的过滤,如果符合流量要求就会被转入高优先级队列进行转发,否则将被重新标记转到其他队列接收DWRRI算法的调度等待转发。如果到达的分组被标记为AF业务,它首先要接受DWRRI队列调度算法调度,然后发送给低优先级的队列排队等待被转发。这样结合,可以充分利用轮循和优先级算法的优点,克服各自的缺点,尽可能的满足时延和公平性,更好地支持区分服务。
[0013]本发明的有益效果是:
[0014]本算法首先保证高优先级业务的运行,然后让其他业务争用带宽,当某类业务速率超过其规定的最高速率时,算法降低赋予其的权值,从而降低其对带宽的占用,此外,可以充分利用轮循和优先级算法的优点,克服各自的缺点,尽可能的满足时延和公平性,更好地支持区分服务。
【专利附图】

【附图说明】
[0015]图1是本发明在流量控制器设计中令牌桶的处理过程。
[0016]图2是本发明在分组调度器设计中DWRR算法调度示意图。
[0017]图3是本方法在分组调度器设计中DWRR算法功能框图。
[0018]图4是本发明中基于可信调度的改进队列调度算法的策略示意图。
【具体实施方式】
[0019]下面将结合说明书附图,对本发明作进一步的说明。
[0020]流量控制器和分组调度器的设计与实现如下:
[0021]1.流量控制器
[0022]流量监管是监督进入网络的某一流量的规格,把它限制在一个合理的范围之内,或者对超出限制的流量进行惩罚,以保护网络资源和运营商的利益。通常的做法是使用CAR (Committed Access Rate:约定访问速率)来限制某类报文的流量。CAR利用令牌桶进行流量控制,对于进入令牌桶的流量如果符合流量要求就继续正常转发处理,如果令牌桶中已经没有足够的令牌用以发送报文,则丢弃报文。这样通过不断产生的令牌来实现对某类报文的流量控制。本文中,对于到达时令牌桶已经没有令牌用以发送的流量不是采用直接丢弃的原则,而是对这些流量进行DSCP值的重新标记,将其从EF流量标记为AF类流量,让这些流量和普通优先级业务的流量竞争网络资源,这样就限制了高优先级业务的最高流量同时也避免了因直接丢弃超出流量的包而造成的延迟。
[0023]图1显示的是令牌桶的工作过程。令牌的产生速率可以根据用户的需求来设定,令牌桶的容量也可以设置,当令牌产生到一定程度超出桶的容量时,令牌量不再增加,分组通过令牌桶处理后,如果桶内有足够的令牌可以用以发送分组,则分组将被继续发送,相应地,桶中令牌数按处理的分组长度做相应减少,当桶中令牌太少不能再发送分组时,分组将被重新标记,桶内令牌数不变。这样就限制了高优先级业务最多只能被允许发送桶中所有令牌数量的分组数,当高优先级业务突发性不大时,桶中令牌数量足够用来发送数据,当高优先级业务突发性过大或有恶意流抢占资源时,最多只允许发送桶中所有令牌表示的分组数,令牌用完后只有等到新的令牌生成才可以继续发送,这样就实现了控制EF业务流的发送速度小于等于令牌生成速度,达到限制高优先级的EF业务流量的目的。
[0024]这里介绍一下令牌桶的两个主要参数:
[0025]CIR(Committed Information Rate):承诺信息速率,表示向令牌桶中投放令牌的速率,即长时间的端口平均速率。
[0026]CBS (Committed Burst Size):承诺突发尺寸,该参数决定在流量超出CIR之前的最大突发流量,亦即令牌桶的容量。该参数必须设置大于报文的最大长度。
[0027]其实还有一个隐含的参数TI (Time Interval),该值为CBS/CIR,它主要定义了向令牌桶中加入令牌的时间间隔。每隔TI时间就会有新的令牌加入到令牌桶中,加入的数量是CBS的大小。
[0028]对于承诺信息速率CIR,在任意类型的接口上最小粒度都是8000bit,单位是bit/s,即最小的速率只能限制到8000bit/s。对于承诺突发流量CBS,单位为bit,不应小于报文的最大长度。因此将CIR设置为100Kbit/s,CBS则设置为2000kbyte。可以设想令牌桶为一水桶,它的容量是2000L,底部出水流速为200L/S,上部进水流速为100L/S,显然入不敷出。20s内桶内水流完,这时出水流速变为lOOL/s,而20s前流速一直保持200L/s,这就是突发。通过设置令牌桶的CBS参数就可以控制突发流量。
[0029]2.分组调度器
[0030]DWRR算法由WRR算法改进而来,WRR主要适合于分组长固定的网络中,调度时根据设定的权值大小来决定分组的发送顺序,一个轮循周期中,必须严格按照被分配到的权值来传输数据包。在ATM这样的固定分组长度的网络中可以达到完全公平,但在区分服务网络中,各队列之间的数据包是汇聚流,业务都是基于IP传输,数据包大小正常范围在64-1518字节,长度越长的分组占用的带宽越多,从而影响公平性。DWRR引入了差值计数器的概念,将调度时由转发分组变成以字节为单位,不管分组长度如何每次调度能转发的分组大小固定,克服了分组变长带来的不公平性。
[0031]举一个例子说明:如图2所示,队列调度算法有三个待调度队列,权值分别为200,300,100,第一个队列有三个数据包待发送,长度分别为100、100,单位为字节;第二个队列有两个数据包待发送,长度分别为200、150字节;第三个队列有三个数据包待发送,长度分别为50、100、100字节。队列被服务时,首先将权值加到DCi上,依次轮循各个队列。队列O权值为200,此时DCtl为200,队列头部数据长为100字节小于DCtl故调度器转发数据,同时DCtl变成100,大于0,第二个数据包长100刚好等于DCtl继续转发,队列O为空,轮循队列I。队列I头部数据包长200小于DC1,转发,同时DC1变成100,大于0,但第二个数据包长度为150大于DC1,不发送该数据包,轮循队列2,同样转发头部数据包DC2变成50,然后不再发送后面的数据包,开始第二轮循环。第二轮轮循时,由于队列O已为空,不再对其调度,其余队列权值加到DCi上,此时DCi = 400,DC2 = 150,队列I可以完成调度,而队列2则剩余100字节的数据包必须等待下次轮循发送。
[0032]由上例可以看出,DWRR将数据包的输出大小大致使用权值来约束,保证了公平性,同时由于转发的数据单位为字节,因此支持变长数据包,使得调度更加精确。但同样缺点也很明显,在上例中,队列I在一轮调度后只剩一个数据包待发送,但分配给它的权值依然很大,自适应性很差,对于网络资源的分配不够灵活。本文提出的DWRRI改进算法正是为了改进这一缺点在DWR的基础上增加了一个权值更新模块,使其在付出一定复杂性代价基础上尽量保证优点的同时避免缺陷。
[0033]DffRRI的基本思想是给调度算法增加一个测量器和判决器,根据测量器的结果来动态地改变相应队列的权值。其整体模块图如图3所示。该模块由测量器、判决器、队列权值表以及普通的轮循队列调度组成。
[0034]DffRRI算法框图中,每到一个分组(该分组已经过前面DSCP标记模块标记并分类,此处经过该模块的分组仅为AF1-AF4类业务及BE业务),根据分类的结果测量对应服务类别的数据到达率,同时将该分组插入到相应的子队列中,将测量器的结果发送到判决器,供判决器决定如何改变队列权值表中各服务类别对应的权值,从而影响调度行为。
[0035]Qffi代表子队列i的初始化权值,每一次调度完成,QWi作为下一次调度时子队列i的实际权值Wi。定义SWi为分配给队列的固定权值,Affi表示相对于固定权值的增量,由判决器根据测量结果决定,QWi = Sff^AffijRmini表示子队列速率的下限,可以根据实际网络情况决定,相应地,Rfflaxi为队列速率上限。
`[0036]1、确定 QWi;
[0037]当一个分组到达时,首先根据分组的DSCP值将分组插入相应的队列中,然后测量器测量该类业务到达的速率R,判决器根据R值进行如下动作:
【权利要求】
1.一种基于可信调度的改进队列调度算法,其特征在于:这种可信调度的改进队列调度算法主要由两部分组成:流量控制器和分组调度器,流量控制器采用区分服务网络最常用的令牌桶算法,用来控制EF PHB业务的流量以控制高优先级业务的调度,防止长时间服务高优先级队列造成低优先级队列饿死,分组调度器则通过在加权循环调度算法基础上的改进算法DWRRI和优先级算法基群速率接口相结合来实现,当业务流分组到达时,首先进入边缘路由器,若分组被标记为EF业务,则它必须先通过令牌桶的过滤,如果符合流量要求就会被转入高优先级队列进行转发,否则将被重新标记转到其他队列接收DWRRI算法的调度等待转发。如果到达的分组被标记为AF业务,它首先要接受DWRRI队列调度算法调度,然后发送给低优先级的队列排队等待被转发。
【文档编号】H04L12/813GK103888379SQ201310641733
【公开日】2014年6月25日 申请日期:2013年12月3日 优先权日:2013年12月3日
【发明者】洪智 申请人:江苏达科信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1