一种业务调度方法及装置转让专利

申请号 : CN200710163697.4

文献号 : CN101414958B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 涂晓东李剑谢军蒋章震杨洋

申请人 : 华为技术有限公司

摘要 :

本发明公开了一种业务调度方法,包括:获取各实时业务发送机会的开始时标和结束时标;对该开始时标和结束时标进行排序,生成调度序列,该调度序列确定各实时业务发送机会的实际发送位置;根据该调度序列发送数据。本发明还公开了一种业务调度装置,提高了网络资源的利用率,实现了对变长的分组业务流的整形和调度。

权利要求 :

1.一种业务调度方法,其特征在于,包括以下步骤:

获取各实时业务发送机会的开始时标和结束时标;

对所述开始时标和结束时标进行排序,生成调度序列,具体包括:根据所述开始时标和结束时标,进一步得到所述开始时标小于当前调度表分配时标的发送机会集合,然后对所述发送机会集合按照所述结束时标从小到大的顺序进行排序,根据排序结果,由小到大依次确定所述实时业务发送机会在调度序列的发送时隙,若有多个实时业务发送机会的结束时标都为最小,则从中任意选取一个,调度序列用调度表具体表示;确定实时业务发送机会的发送时隙后,其余发送时隙分配给非实时业务发送机会,生成调度表;所述调度序列确定所述各实时业务发送机会的实际发送位置;

根据所述调度序列发送数据。

2.如权利要求1所述业务调度方法,其特征在于,所述获取各实时业务发送机会的开始时标和结束时标具体包括:根据公式 获取所述各实时业务发送机会的开始时标,根据公式

获取所述各实时业务发送机会的结束时标;

其中, 表示各实时业务的最大分组长度,ri表示预约带宽,i为整数,且0<i≤V,V表示实时业务的个数,k表示实时业务i的第k次发送机会,k为整数,且k≥0, 为实时业务i的第k次发送机会的开始时标; 为实时业务i的第k次发送机会的结束时标。

3.如权利要求1所述业务调度方法,其特征在于,所述对开始时标和结束时标进行排序,生成调度序列,具体包括以下步骤:根据所述各实时业务发送机会的开始时标和结束时标,获取最小开始时标对应的发送机会,如果有多个相同的最小开始时标,则比较所述多个相同的最小开始时标对应的结束时标,得到最小结束时标对应的发送机会k,将所述调度序列Lpos到 的发送时隙分配给所述发送机会k,其中Lpos为所述调度序列的发送起始位置, 为所述发送机会k对应的实时业务的最大分组长度; 将 更新为所述调度序列的发送起始位置,根据公式

更新剩余各实时业务发送机会的开始时标和结束时标;

根据所述更新后的开始时标和结束时标,获得开始时标和结束时标最小的发送机会j,将 到 的发送时隙分配给所述发送机会j, 为所述发送机会j对应的实时业务的最大分组长度;

每分配完一个发送时隙后,就更新所述调度序列的发送起始位置及剩余各实时业务发送机会的开始时标和结束时标,分配发送时隙给开始时标和结束时标最小的发送机会,直至所有实时业务发送机会都分配有发送时隙;

所述所有实时业务发送机会都分配有发送时隙后,将所述调度序列剩余的发送时隙分配给非实时业务发送机会,生成所述调度序列。

4.如权利要求1所述业务调度方法,其特征在于,根据所述调度序列发送数据具体包括:根据所述调度序列和服务长度发送数据,所述服务长度为各实时业务的最大分组长度。

5.如权利要求4所述业务调度方法,其特征在于,所述根据调度序列和服务长度发送数据,具体包括以下步骤:根据所述调度序列的发送时隙顺序依次发送数据;

发送所述调度序列的一个发送时隙对应的实时业务发送机会内的数据包,每发送完一个数据包,从所述服务长度中减去所述数据包的包长,如果服务长度小于下一个数据包的包长或者所述实时业务发送机会队列为空,则停止发送所述发送时隙对应的发送机会内的数据包,开始发送下一个发送时隙对应的发送机会内的数据包。

6.如权利要求5所述业务调度方法,其特征在于,在停止发送所述发送时隙对应的发送机会内的数据包之后,还包括:由计数器记下所述发送机会内剩余的发送字节。

7.如权利要求6所述业务调度方法,其特征在于,在按照所述调度序列周期性轮循,发送所述发送时隙对应的发送机会内的数据包时,根据所述计 数器记下发送机会内剩余的发送字节,继续发送剩余数据包。

8.如权利要求5所述业务调度方法,其特征在于,如果所述实时业务为时延要求严格的实时业务,则当发送时隙对应的发送机会队列为空时,所述发送时隙发送同类型实时业务其他的非空发送机会队列中的数据包;

当所有实时业务发送机会队列为空时,则所述发送时隙发送非实时业务数据包。

9.如权利要求5所述业务调度方法,其特征在于,如果所述实时业务为时延要求不严格的实时业务,则当发送时隙对应的发送机会队列为空时,所述发送时隙发送非实时业务数据包。

10.如权利要求7或8所述业务调度方法,其特征在于,若非实时业务数据包未发送完毕,则将所述调度序列中后续的实时业务数据包插入到所述非实时业务数据包对应的发送时隙内发送。

11.如权利要求1所述业务调度方法,其特征在于,按照所述调度序列周期性轮循发送数据。

12.一种业务调度装置,其特征在于,包括:

时标处理单元,用于获取各实时业务发送机会的开始时标和结束时标;

调度序列生成单元,用于根据所述开始时标和结束时标对所述各实时业务发送机会进行排序,生成调度序列,具体包括:根据所述开始时标和结束时标,进一步得到所述开始时标小于当前调度表分配时标的发送机会集合,然后对所述发送机会集合按照所述结束时标从小到大的顺序进行排序,根据排序结果,由小到大依次确定所述实时业务发送机会在调度序列的发送时隙,若有多个实时业务发送机会的结束时标都为最小,则从中任意选取一个,调度序列用调度表具体表示;确定实时业务发送机会的发送时隙后,其余发送时隙分配给非实时业务发送机会,生成调度表;

数据包处理单元,用于根据所述调度序列和发送数据。

说明书 :

一种业务调度方法及装置

技术领域

[0001] 本发明涉及网络通信技术领域,尤其指一种业务调度方法及装置。

背景技术

[0002] 目前数据转发设备在出口调度业务时都会用到队列调度机制,其按照一定的服务规则对交换节点中因发生冲突而需排队等待的不同输入业务流分别进行调度和服务,使所有的输入业务流能按预定的方式共享交换节点的输出链路带宽并具有QoS(Quality of Service,服务质量)保证。如图1所示,输入业务到达交换节点后,分别暂存到相应的队列中,假设总共有v个队列,队列调度算法的任务是从这v个队列中选择下一个要传输的分组。
[0003] 根据调度算法的服务规则、调度目标及其发展趋势,将目前已出现的队列调度算法大致分为如下四类:基于轮循的调度算法、基于GPS(GeneralizedProcessor Sharing,通用处理机共享)的算法、基于时延的调度算法、基于服务曲线(Service Curve)的算法。基于循环调度的算法是轮流地对每个队列进行服务,其实现简单,但不能对业务提供时延保证,目前主要有WRR(WeightedRound Robin,加权轮循)、DRR(Deficit Round Robin,差额轮循)等。基于GPS的算法包括:PFQ(Packet Fair Queueing,分组公平排队)算法,所有的PFQ算法都是在虚时间函数的基础上按照一定的分组选择策略对队列进行调度,不同之处主要体现在虚时间函数的计算和分组选择策略这两个方面,从而导致了算法在时延特性、公平性和复杂性方面的差异。目前主要有:WFQ(Weighted Fair Queuing,加权公平排队)、SCFQ(Self-Clocked Fair Queuing,自时钟公平排队)、VC(Virtual Clock,虚拟时钟)等,这些算法能提供较好的公平性、时延特性以及对恶意业务流的隔离能力,但当队列数较多时,其实现复杂度较大。
[0004] 以上的队列调度算法都是基于数据包的,包的发送过程不可分割,一旦 开始发送某个数据包,必须在该数据包发送完毕以后才开始启动发送下一个数据包。如果有一个比较长的低优先级包已经开始发送,但是收到一个急需发送的高优先级包,那么高优先级包只能等待该低优先级长数据包发送完毕后再发送,这就增加了高优先级数据包的时延,并且低优先级的包长度越长,数目比例越高,系统的抖动特性越差。
[0005] 现有技术通过基于调度表的轮循算法或ShFRR(shaped fair round robin,整形公平轮循)算法来进行业务数据调度。
[0006] 基于调度表的轮循算法是将时间分成周期性的帧(Frame),每一帧含有L个信元时隙,每个时隙里发送一个连接的信元或者空(NULL)信元,表1是L=8的一种调度表安排方式:
[0007] 表1
[0008]时隙编号 0 1 2 3 4 5 6 7
调度安排 1 2 Null 1 Null 1 2 Null
[0009] 表1中预先安排的信元发送顺序表叫做调度表(schedule table)。在一个帧周期,调度器从调度表的表头执行到表尾。例如在表1中,在时隙0,发送连接1的信元,在时隙1发送连接2的信元,在时隙2发送空信元,如此下去直到表尾。下一个帧周期又从表头开始重复执行。如果在某一时隙要发送的连接的队列为空,则发送空信元。显然,每当接纳一个新连接时,都将重新规划调度表。通过将调度表中的信元时隙合理地分配给各个连接,可以保证连接的预约带宽和时延。然而,即使在某个时隙内没数据发送,仍然会占用所分配的时隙通道,从而使得网络资源的利用率较低。
[0010] 上述基于调度表的轮循其实现简单,但是如何安排调度表来保证连接的预约带宽和时延确十分困难。现有技术中将PFQ算法中的时标概念应用于调度表的安排,提出了ShFRR调度算法。如下:
[0011] 设调度表的表长为L个时隙,编号分别为0,1,...L-1。连接i的预约带宽为k(1≤ni≤L,ni为整数),其中ni为预分配时隙个数,在调度表中,用ci 代表分配给连接ik
的第k(0≤k≤ni-1)个时隙,定义ci 的开始时标为:
[0012]
[0013] 结束时标为:
[0014]
[0015] ShFRR算法利用结束时标和开始时标的信息将调度表中的每个时隙分配给相应的连接。方法为:设 其中V为实时业务队列的最大数目。对调度安排表中k
的每一个时隙T(0≤T≤L-1),首先从所有未安排的ci 中选出开始时标小于或等于T的k k k
ci 组成集合,再从集合中选出结束时标最小的ci。如果有几个ci 的结束时标都最小,则从中任意选取一个。如果集合为空,则将时隙分配给空信元。假设L=10,n1=5,n2=n3k
=...=n6=1,参照公式(1)和(2),ci 的开始时标和结束时标如表2所示:
[0016] 表2
[0017]
[0018] 采用ShFRR算法,并根据表2生成调度表如表3所示:
[0019] 表3
[0020]时隙编号 0 1 2 3 4 5 6 7 8 9
0 0 1 0 2 0 3 0 4 0
调度安排 c1 c2 c1 c3 c1 c4 c1 c5 c1 c6
[0021] 根据表3,在时隙0,发送连接c10的信元,在时隙1发送连接c20的信元,在时隙21
发送c1 信元,如此下去直到表尾。而下一个周期又从表头开始重复执行。
[0022] 现有技术中还存在一种直接插入并发送高优先级数据包的调度方法,在低优先级长分组报文发送过程中,若存在一个高优先级短分组报文需要发送时,则此时发送端首先停止低优先级分组报文的发送,并向接收端发送一个高优先级分组报文开始的控制字符,当高优先级分组报文发送完毕后,再向接收端发送一个高优先级分组报文发送完毕的控制字符,然后再继续发送未发送完毕的低优先级数据包。而对于接收端来说,则根据控制字符信息,进行接收缓冲区的切换和报文的组装。但是这种分组插入调度方法,可能在一个低优先级长数据包中插入多个高优先级短分组包,使得插入的实时业务报文的个数无法统计和控制,而且未充分考虑实时业务和整个网络负载的特点,从而导致经过调度器输出后业务流的突发性比较大。
[0023] 在实现本发明过程中,发明人发现现有技术中至少存在如下问题:基于调度表的轮循调度方法,对于每个业务分配固定的时隙空间进行数据发送,在没有业务发送的情况下,仍然不释放所分配的发送机会,严重影响了网络资源的利用率。ShFRR算法是针对固定长度信元的,时隙长度固定,而在多业务区分服务的分组传送网中,分组长度是变长的,因此,对于变长的分组长度ShFRR算法不适用。至于直接插入并发送高优先级数据包的调度方法,其缺点在于插入的实时业务报文的个数不好统计和控制。
[0024] 发明内容
[0025] 本发明的实施例提供一种业务调度方法,可以解决现有技术中实时业务的时延和抖动的问题,并且提高了网络带宽资源的利用率。
[0026] 本发明实施例提供一种业务调度方法,包括:
[0027] 获取各实时业务发送机会的开始时标和结束时标;
[0028] 对所述开始时标和结束时标进行排序,生成调度序列,具体包括:根据所述开始时标和结束时标,进一步得到所述开始时标小于当前调度表分配时标的发送机会集合,然后对所述发送机会集合按照所述结束时标从小到大的顺序进行排序,根据排序结果,由小到大依次确定所述实时业务发送机会在调度序列的发送时隙,若有多个实时业务发送机会的结束时标都为最小,则从中任意选取一个,调度序列用调度表具体表示;确定实时业务发送机会的发送时隙后,其余发送时隙分配给非实时业务发送机会,生成调度表;所述调度序列确定所述各实时业务发送机会的实际发送位置;
[0029] 根据所述调度序列发送数据。
[0030] 本发明实施例还提供了一种业务调度装置,包括:
[0031] 时标处理单元,用于获取各实时业务发送机会的开始时标和结束时标; [0032] 调度序列生成单元,用于根据所述开始时标和结束时标对所述各实时业务发送机会进行排序,生成调度序列具体包括:根据所述开始时标和结束时 标,进一步得到所述开始时标小于当前调度表分配时标的发送机会集合,然后对所述发送机会集合按照所述结束时标从小到大的顺序进行排序,根据排序结果,由小到大依次确定所述实时业务发送机会在调度序列的发送时隙,若有多个实时业务发送机会的结束时标都为最小,则从中任意选取一个,调度序列用调度表具体表示;确定实时业务发送机会的发送时隙后,其余发送时隙分配给非实时业务发送机会,生成调度表;
[0033] 数据包处理单元,用于根据所述调度序列和发送数据。
[0034] 与现有技术相比,本发明实施例根据发送机会的开始时标和结束时标来生成调度表,并基于生成的调度表实现业务的调度,提高了网络资源的利用率,实现了对变长的分组业务流的整形和调度。
[0035] 附图说明
[0036] 图1是现有技术队列调度算法原理示意图;
[0037] 图2是本发明实施例一种业务调度方法的流程图;
[0038] 图3是本发明实施例一种生成调度表的流程图;
[0039] 图4是本发明实施例一种根据调度表发送数据的流程图;
[0040] 图5是本发明实施例一种调度表的示意图;
[0041] 图6是本发明实施例另一种调度表的示意图;
[0042] 图7是本发明实施例一种业务调度装置的结构示意图。
[0043] 具体实施方式
[0044] 下面结合附图和具体实施例进一步详细说明。
[0045] 如图2所示,是本发明实施例一种业务调度方法的流程图,主要包括以下步骤: [0046] 步骤S201,获取各实时业务发送机会的开始时标和结束时标。
[0047] 根据开始时标和结束时标的计算公式,计算各个实时业务发送机会的开始时标和结束时标。
[0048] 以下是实时业务i的第k次发送机会的开始时标的计算公式:
[0049]
[0050] 结束时标的计算公式为:
[0051]
[0052] 其中,k为整数,且k≥0。 为各实时业务连接的最大分组长度,ri为预约带宽,0<i≤V,V表示实时业务的总个数。 和ri均在业务建立连接的时候给出。 [0053] 步骤S202,对开始时标和结束时标进行排序,生成调度序列,该调度序列确定各实时业务发送机会的实际发送位置。
[0054] 根据步骤S201中计算得到各个实时业务发送机会的开始时标和结束时标,进一步得到开始时标小于当前调度表分配时标的发送机会集合,然后对该集合按照结束时标从小到大的顺序进行排序。根据排序结果,由小到大依次确定实时业务发送机会在调度序列的发送时隙。若有多个实时业务发送机会的结束时标都为最小,则从中任意选取一个。调度序列用调度表具体表示。确定实时业务发送机会的发送时隙后,其余发送时隙分配给非实时业务发送机会。由此,生成调度表。
[0055] 步骤S203,根据调度表,从表头到表尾按照发送时隙依次发送数据包。在发送非实时业务数据包的过程中(尚未发送完毕),如果后续实时业务数据包需要优先发送,则将实时业务数据包插入发送。待实时业务数据包发送完毕后,再继续发送前述非实时业务数据包。
[0056] 针对调度表的生成,结合图3进行详细说明。图3是本发明实施例的一种生成调度表的流程图。生成调度表的具体步骤如下:
[0057] 步骤S301,首先设置每个业务的开始时标Si、结束时标Fi和当前在调度表中所分max配的发送时隙Lpos,令Si=0, Lpos=0。其中Li 为各实时业务的连接的最
大分组长度,ri为预约带宽,0≤i≤V,V表示实时业务的总个数。其中Limax和ri均在业务建立连接的时候给出。
[0058] 步骤S302,判断Lpos是否小于Llist,如果是,则转步骤S304;否则,转步骤S303,其中Llist为调度表长。
[0059] 步骤S303,Lpos大于Llist,则循环进行调度,即从0开始重新计算并调度。 [0060] 步骤S304,由所有St≤Lpos的发送机会组成集合A。
[0061] 步骤S305,判断集合A是否非空,如果是,则转步骤S307;否则,转步骤S306。 [0062] 步骤S306,设置Lpos=Lpos+1,然后转到步骤S302。
[0063] 步骤S307,在集合A中比较所有发送机会的结束时标,找到结束时标最小的发送机会,将Lpos到Lpos+Limax的发送时隙分配给结束时标最小的发送机会。max
[0064] 步骤S308,将新一轮发送时隙更新为Lpos+Li ,并根据公式:更新该实时业务的下一次发送机会的开始时标和结束时标。然后,进入新一
轮发送时隙分配循环,并将下一个发送时隙分配给最小结束时标对应的发送机会,以此类推,给所有发送机会分配发送时隙。
[0065] 步骤S309,将分配完实时业务发送机会后剩余的发送时隙分配给非实时业务。 [0066] 步骤S310,所有实时业务和非实时业务均在调度表中分配了发送时隙,由此,调度表生成。
[0067] 针对数据包的发送,结合图4进行详细说明。图4是本发明实施例的一种根据调度表发送数据的流程图。假设只有一个非实时业务队列,数据包的发送步骤具体如下: [0068] 步骤S401,根据生成的调度表,从表头开始发送数据包。
[0069] 步骤S402,首先判断要发送的数据包是否为实时业务数据包,如果是,则转步骤S403,如果不是,则转步骤S406。
[0070] 步骤S403,判断该数据包是否为时延要求严格的实时业务数据包,如果是,则转步骤S404,如果不是,则转步骤S405。
[0071] 步骤S404,数据包为时延要求严格的实时业务数据包时,如VOIP(Voiceover Internet Protocol,互联网电话技术)业务,如果发送时隙到达时实时业务i的队列为空,那么发送时隙发送同类VOIP实时业务的数据包,当所有的VOIP实时业务队列都为空时才发送非实时业务数据包,非实时业务队列为空时则发送空数据包。
[0072] 步骤S405,数据包为时延要求不严格的实时业务数据包时,如对于IPTV(Internet Protocol Television,交互式网络电视)业务,发送时隙只发送自身的业务数据包,队列为空时发送非实时业务数据包,非实时业务队列也为空则发送空数据包。
[0073] 步骤S406,判断该非实时业务数据包是否有后续实时业务数据包需要插入发送,如果是,则转步骤S407,否则,转步骤S408。
[0074] 步骤S407,在非实时业务数据包未发送完的某字节段后,插入后续实时业务数据包进行发送,待实时业务数据包发送完毕,继续发送非实时业务数据包,直至发送完毕。 [0075] 步骤S408,发送非实时业务数据包。
[0076] 下面结合具体实施例对生成调度表以及按照调度表进行发送数据包进行更进一步的说明。
[0077] 假如当前网络上存在着三种业务,分别是实时业务VOIP网络电话业务、实时业务IPTV网络电视业务和非实时业务WWW电子邮件业务,各种实时业务所占网络资源的比重如下:VOIP:ri=0.2, IPTV:ri=0.2, 且调度表长L=10000,可根据上面公式(1)和公式(2)计算出各实时业务的发送机会的开始时标和结束时标。设每个业务一开始Si=0,且对于VOIP业务来说,其Fi=50/0.2=250(byte),因此第一次发送机会的开始时标S1=0,F1=250;而对第二次发送机会来说,其S2=0+50/0.2=250,F2=
250+50/0.2=500;依次类推,可以计算出该VOIP数据包在整长L调度表中所分配的发送机会。而对于IPTV数据包来说,其第一次发送机会的开始时标S 1=0,其结束时标为F1=0+200/0.2=1000;而第二次发送机会的开始时标S2=0+200/0.2=1000;结束时标是:F2=1000+200/0.2=2000;以此类推,可以计算出在整个长度为L的调度表中各发送机会的开始和结束时标,具体分配过程如表4所示(单位为字节):
[0078] 表4
[0079](S,F) (S,F) (S,F) (S,F) (S,F) .......
VOIP (0,250) (250,500) (500,750) (750,1000) (1000,1250) ....... IPTV (0,1000) (1000,2000) (2000,3000) (3000,4000) (4000,5000) ....... [0080] 首先VOIP和IPTV的第一个发送机会的开始时标均为零,而VOIP的结束时标为
250,IPTV的结束时标为1000,所以第一个发送时隙分配给VOIP的第一个发送机会,因为VOIP的 所以将0到50分配给VOIP的第一个发送机会。第二个发送时隙分配给
IPTV的第一个发送机会,IPTV的 所以将50到250分配给IPTV的第一个发送机会。第三个发送机会的 发送起始位置为250,VOIP的第二个发送机会的开始时标为250,而IPTV的第二个发送机会的开始时标为1000,所以第三个发送时隙分配VOIP的第二个发送机会,从250到300。VOIP的第三个发送机会的开始时标为500,所以从300到500的发送时隙没有需要发送的实时业务数据包,所以用来发送非实时业务数据包,即WWW数据包。以此类推,给所有业务的发送机会安排发送时隙,由此生成调度表,如图5所示。
[0081] 数据包的发送直接根据图5所示调度表的发送顺序,按照差额轮询(DRR)的方式进行发送。针对每个实时业务连接设立一个计数器Mi。以图5所示的调度表为参照,从头k到尾地发送数据包,对于任意一次发送机会Ci,服务长度temp=Limax+Mi。然后根据QoS参数,将实时业务连接粗略分为:时延要求严格和不严格两大类,而不同的连接类采用不同的发送方式:
[0082] 对于时延要求严格的实时业务(如:VOIP业务),如果发送机会Cik到达时,实时业务连接i的队列为空,那该发送机会可以给予同类的其它一个非空的实时业务连接j,当所有的实时业务队列为空时才发送非实时业务数据包,非实时业务队列为空时发送空数据包。
[0083] 对于时延要求不严格的实时业务(如:IPTV业务),发送机会Cik只给予自身的业务连接i,队列为空时发送非实时业务数据包,非实时业务队列为空时就发送空数据包。 [0084] 每服务完实时业务的一个数据包,就从其差额(Deficit)中减去该包的长度,当差额小于该实时业务的下一个包长或者该实时业务队列为空,则停止对该业务的这次服务。
[0085] 首先发送第一个发送时隙对应的VOIP业务,对于VOIP业务的服务长度temp为50,则开始发送一个最大长度为50byte的VOIP数据包,并运用一个计数器M记下VOIP业务所余下的发送字节,以便后续发送VOIP数据包时使用。假设该队列中有3个30大小的数据包,则发送完第一个数据包后,服务长度temp减去30剩余为20,小于该队列的下一个数据包的包长,所以停止发送该队列的数据包,同时由计数器M记下该队列中还有60byte的数据包没有发送,待下次轮循发送时,从第二个数据包开始发送。按照调度表,第 二个发送机会是IPTV业务。根据调度表依次发送各业务数据。
[0086] 在VOIP发送机会中,若队列中没有VOIP数据包时,则首先将该发送机会分配给其他非空的VOIP业务,进行其它实时业务的数据包发送。若其他队列也不存在VOIP数据包时,则将该发送机会用于发送非实时业务数据包。且保证每个实时数据包在其一个发送机会周期内,仅有一次发送机会,以防止当存在大量实时业务数据包时,非实时业务得不到发送的现象。最后,根据调度表进行周期性轮循发送数据。
[0087] 对于上述实施例情况,当分别增加X、Y两个实时业务时,假如X业务:ri =0.2,而Y业务:ri=0.2, 时,则需要对原有的调度表进行重新计算,其各业务的发送机会的开始和结束时标通过公式(1)和公式(2)获得,其发送机会的开始和结束时标如表5所示:
[0088] 表5
[0089]
. . . .
. . . .
. . . .
)F .... .... .... ....
, . . . .
S . . . .
( . . . .

) ) ) )
0 0 0 0
5 0 0 5
2 0 5 7
)F 1,00 5,00 2,00 3,00
, 0 0 0 0
S 1 4 2 3
( ( ( ( (



) ) )
) 0 0 0
0 0 0 0
0 0 0 0
)F 01,0 4,00 2,00 3,05
, 5 0 5 2
S 7 3 1 2
( ( ( ( (



) ) )
0 0 0
) 0 0 5
0 0 5 2
)F 57,0 3,00 1,00 2,00
, 0 0 0 5
S 5 2 1 1
( ( ( ( (



)
0 ) )
) 0 0 0
0 0 0 0
)F 05,0 2,00 01,0 51,0
, 5 0 0 5
S 2 1 5 7
( ( ( ( (



)
)F )052 0001 )005 )057
, , , , ,
S 0 0 0 0
( ( ( ( (





P V
务 I T
O P
业 V I X Y




[0090] 根据各个业务的开始时标和结束时标来生成调度表。首先比较开始时标,VOIP业务、IPTV业务、X业务和Y业务的第一个发送机会的开始时标均为0,小于或等于待分配的发送时隙,然后比较其结束时标,VOIP业务的第一个发送机会的结束时标最小,VOIP业务的所以将0到50的发送时隙分配给VOIP业务的第一个发送机会,然后,在新一轮发送时隙分配中,继续比较剩余发送机会的开始时标和结束时标,将下一个发送时隙分配给X业务的第一个发送机会,X业务的 所以将50到150的发送时隙分配给X业务的
第一个发送机会。以此类推,给所有发送机会都分配发送时隙,生成调度表,如图6所示。 [0091] 根据图6所示调度表依次发送数据。并进行周期性轮循发送。以上调度表中,只要链路带宽资源分配足够,那么在每确定发送周期内,每个业务流的发送次数就是恒定的,从而保证了实时业务的延迟和抖动都很小。
[0092] 图7是本发明实施例的一种业务调度装置的结构示意图,该装置包括时标处理单元51、调度序列生成单元52和数据包处理单元53。时标处理单元5 1根据各个实时业务max的最大分组长度Li 和预约带宽ri,得到所有发送机会的开始时标和结束时标,并将获得的所有发送机会的开始时标和结束时标发送给调度序列生成单元52。调度序列生成单元
52根据接收到的开始时标和结束时标,对所有发送机会进行排序,依次分配最大分组长度字节的时隙给个发送机会,待所有发送机会都分配有发送时隙后,将剩余的发送时隙分配给非实时业务,生成调度序列。调度序列生成单元52将生成的调度序列发送给数据包处理单元53,数据包处理单元53根据调度序列依次发送业务数据。如果业务数据为要求时延严格的实时业务数据,如VOIP业务数据,当发送时隙到达时实时业务发送机会i的队列为空,那么发送时隙发送同类VOIP实时业务的其它一个非空实时业务队列的数据包,当所有的VOIP实时业务队列为空时才发送非实时业务数据包,非实时业务队列为空发送空数据包。如果业务数据为要求时延不严格的实时业务数据,如IPTV业务数据,发送时隙只发送其相应业务队列中的数据包,队列为空发送非实时业务数据包,如果非实时业务队列为空就发送空数据包。若在非实时业务数据包的发送过程中,有新的数据包进入实时业务队列,则在插入特定的表示高优先级数据包发送开始的控制字符后,插入后续实时业务数据包并进行发送,待实时业务数据包发送完毕,继续发送非实时业务数据包,直至发送完毕。 [0093] 通过以上实施例,可以看出本发明的一个实施例通过获取实时业务的开始时标和结束时标,来生成调度表,根据调度表发送业务数据,从而保证了在固定发送周期里,对于每个业务的发送次数是恒定的,进一步保证了实时业务的时延性和抖动性。以最大分组长度作为各业务数据的发送时隙,因而实现了对变长分组数据的发送,保证了实时业务之间的调度的公平性,并对插入到非实时业务数据包中的实时业务分组的个数进行控制,避免了非实时 业务长时间得不到发送而影响业务,提高了网络资源利用率。
[0094] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、网络设备等设备)执行本发明各个实施例所述的方法。
[0095] 以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。