一种服务质量调度方法和装置的制造方法

文档序号:9670710阅读:278来源:国知局
一种服务质量调度方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据通信技术领域,具体涉及一种服务质量(QOS,Quality OfService)调度方法和装置。
【背景技术】
[0002]目前,随着网络通信技术的飞速发展和多媒体技术的日益深入及普及,对网络的服务质量、性能以及多样性灵活性提出了更高且更加差异化的要求。为了支持具有不同服务需求的业务或者用户,要求网络能够区分不同的通信,进而为之提供相应的服务,QOS技术的出现便致力于解决这个问题。
[0003]QOS技术中QOS的调度算法有很多种,轮询调度(RR,Round-Robin)算法最简单,其基本思想就是轮流调度各个队列,调度过程中,各个队列被调度的机会是均等的,这种方法适合于所有用户的重要性和允许的流量完全相同的情况。
[0004]但在实际应用过程中,经常出现各个用户的权重不一样、或者允许的流量不相同,甚至各个内部支持不同优先级的队列,此时,RR算法则不能满足用户需要。针对各种应用情况,出现了各种各样的调度算法。比如,针对各个用户权重不一样的情况,出现了加权循环调度(WRR,Weighted Round Robin)算法。还有动态加权循环调度(DWRR,Dynamic WeightedRound-Robin)算法、修正差额循环调度(MDRR, Modified Deficit Round Robin)算法、加权随机早期检测(WRED, Weighted Random Early Detect1n)算法以及更加均衡的加权公平队列(WFQ, Weighted Fair Queuing)调度算法等等。
[0005]传统的DWRR调度方法的主要原理为:当某队列可调度且轮询到此队列,则将此队列的服务计数器与所配置的服务量子相加,相加结果再赋值给服务计数器,其中,服务量子为DWRR所配置的D值,单位是字节,表示允许调度输出的数据总字节数;然后此队列当前第一个包的包长和所述队列的服务计数器比较,如果所述包的包长大于等于此队列的服务计数器,该包本次轮询将不会被发送,需要等后续被轮询到再进行比较;如果该包的包长小于所述队列的服务计数器,则包将会被发送出去,服务器计数器减去包长,相减后的值再赋给服务计数器;相继此队列的第二个包变成了当前第一个包,再与所述队列的服务计数器比较,如果所述包的包长大于等于此队列的服务计数器,该包将不会被发送,结束本次轮询,否则再用服务器计数器减去包长,如此直到跳出本次轮询。
[0006]然而,采用上述DWRR调度算法时,如果某队列出现多次服务计数器累加的情况,这个队列的服务计数器会达到最大值,那么可能会出现某时间此队列连续出很多包,长时间的调度此队列的情况。这样,长时间调度一个队列,将使为用户提供的服务不够合理。

【发明内容】

[0007]为了解决现有存在的技术问题,本发明实施例期望提供一种服务质量调度方法和
目-ο
[0008]本发明实施例提供了一种服务质量调度方法,所述方法包括:
[0009]当一个活动队列被调度时,判断所述活动队列的服务计数器值是否小于等于0,并在判断结果为是时,用所述活动队列的服务量子和所述服务计数器值相加得到的值更新所述服务计数器值;
[0010]判断更新后的服务计数器值是否大于0,并在判断结果为是时,根据所述更新后的服务计数器值执行所述活动队列中数据包的调度过程。
[0011]上述方案中,在一个活动队列被调度之前,所述方法还包括:
[0012]预先设置所述活动队列的服务计数器值和服务量子值。
[0013]上述方案中,当队列满足以下条件时确定所述队列为活动队列:
[0014]所述队列有数据包需要调度、且所述队列整形通过。
[0015]上述方案中,根据所述更新后的服务计数器值执行对所述活动队列的数据包的调度过程,包括:
[0016]步骤1:发送当前数据包,并用当前服务计数器值减去所述发送的数据包的包长得到的值更新服务计数器值;
[0017]步骤2:判断所述更新后的服务计数器值是否大于O ;
[0018]如果判断结果为否,则跳出本次调度,执行下一次调度;
[0019]如果确认所述更新后的服务计数器值大于0,则重复步骤I和步骤2,直到跳出本次调度,执行下一次调度。
[0020]上述方案中,当所述活动队列的服务计数器值大于O时,所述方法还包括:
[0021 ] 根据所述服务计数器值执行数据包调度过程。
[0022]上述方案中,所述根据服务计数器值执行数据包调度过程,包括:
[0023]步骤1:发送当前数据包,并用所述服务计数器值减去所述发送的数据包的包长得到的值更新服务计数器值;
[0024]步骤2:判断所述更新后的服务计数器值是否大于O ;
[0025]如果判断结果为否,则跳出本次调度,执行下一次调度;
[0026]如果确认所述更新后的服务计数器值大于0,则重复步骤I和步骤2,直到跳出本次调度,执行下一次调度。
[0027]本发明实施例还提供了一种服务质量调度装置,所述装置包括:判断模块、服务计数器更新模块及调度模块;其中,
[0028]所述判断模块,用于判断活动队列的服务计数器值是否小于等于0,并在判断结果为是时触发服务计数器更新模块;还用于被服务计数器更新模块触发时,判断更新后的服务计数器值是否大于0,并在大于O时触发调度模块,并将所述更新后的服务计数器值发送给调度模块;
[0029]所述服务计数器更新模块,用于被判断模块触发时,用所述活动队列的服务量子和所述服务计数器值相加得到的值更新所述服务计数器值,并在更新完成后触发判断模块;
[0030]所述调度模块,用于被判断模块触发时,根据接收到的所述更新后的服务计数器值执行所述活动队列中数据包的调度过程。
[0031]所述装置还包括:设置模块,用于设置所述活动队列的服务计数器值和服务量子值。
[0032]上述装置中,所述调度模块,用于通过以下方式执行所述活动队列中数据包的调度过程:
[0033]步骤1:发送当前数据包,并用当前服务计数器值减去所述发送的数据包的包长得到的值更新服务计数器值;
[0034]步骤2:判断所述更新后的服务计数器值是否大于O ;
[0035]如果判断结果为否,则跳出本次调度,执行下一次调度;
[0036]如果确认所述更新后的服务计数器值大于0,则重复步骤I和步骤2,直到跳出本次调度,执行下一次调度。
[0037]上述装置中,所述判断模块,还用于确定所述活动队列的服务计数器值大于O时,触发调度模块,并将所述服务计数器值发送给调度模块;
[0038]所述调度模块,还用于被判断模块触发时,根据接收到的服务计数器值执行所述活动队列中数据包的调度过程。
[0039]上述装置中,所述所述调度模块,用于通过以下方式执行所述活动队列中数据包的调度过程:
[0040]步骤1:发送当前数据包,并用所述服务计数器值减去所述发送的数据包的包长得到的值更新服务计数器值;
[0041]步骤2:判断所述更新后的服务计数器值是否大于O ;
[0042]如果判断结果为否,则跳出本次调度,执行下一次调度;
[0043]如果确认所述更新后的服务计数器值大于0,则重复步骤I和步骤2,直到跳出本次调度,执行下一次调度。
[0044]本发明实施例所提供的一种服务质量调度方法和装置,当一个活动队列被调度时,判断所述活动队列的服务计数器值是否小于等于0,并在判断结果为是时,用所述活动队列的服务量子和所述服务计数器值相加得到的值更新所述服务计数器值;判断所述更新后的服务计数器值是否大于0,并在判断结果为是时,根据所述更新后的服务计数器值执行所述活动队列中数据包的调度过程。如此,能够避免DWRR调度算法中,容易出现的由于某队列出现多次服务计数器累加的情况,而使这个队列的服务计数器达到最大值,从而长时间调度一个队列的情况;本发明实施例提供的方法,能够保证各个队列被均匀轮询调度,从而为用户提供更为合理和人性化的服务。
【附图说明】
[0045]图1为本发明实施例提供的服务质量调度方法流程图;
[0046]图2为本发明实施例提供的轮询原理图;
[0047]图3为本发明实施例提供的活动队列基本结构图;
[0048]图4为本发明实施例提供的服务质量调度装置的基本结构图。
【具体实施方式】
[0049]本发明实施例中,当一个活动队列被调度时,判断所述活动队列的服务计数器值是否小于等于0,并在判断结果为是时,用所述活动队列的服务量子和所述服务计数器值相加得到的值更新所述服务计数器值;判断所述更新后的服务计数器值是否大于0,并在判断结果为是时,根据所述更新后的服务计数器值执行所述活动队列中数据包的调度过程。
[0050]下面通过附图及具体实施例对本发明做进一步的详细说明。
[0051]实施例一
[0052]本发明实施例一提供了一种服务质量调度方法,如图1所示,
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1