为在网络中路由而利用要以优先级处理的分组的隐式确定来调度分组的方法和设备的制作方法

文档序号:7949573阅读:185来源:国知局
专利名称:为在网络中路由而利用要以优先级处理的分组的隐式确定来调度分组的方法和设备的制作方法
技术领域
本发明的领域是电信网络结构。
本发明的目的尤其在于提供一种低复杂度的调度(ordonnancing)方法、调度设备和多服务数据分组路由器,其目标是改进包含在网络的各种流中的多服务数据分组的传送服务质量。
它尤其可用于互联网络。
背景技术
本文件中所用到的“流”的概念举例来说是在2002年巴黎的世界电信会议中Bonald等人所著的论文“IP traffic and QoS controlthe need for aflow-aware architecture”中所公开的“流感知”的概念。
互联网具有多服务的使命并被要求支持大范围的服务和应用。在互联网上区分了两大主要类型的业务,即实时业务(也称作流式业务),其通常由音频或视频应用所产生,和数据业务(也称作弹性业务),其对应于数字文件的传输。实时业务具有服务质量需求,其对应于保持信号的需求-表征由源产生的信号的特性的比特率的变化必须在信号穿过网络时被保持。数据业务的服务质量是通过文件传输时间来被测量的。该时间,或者在传输期间所达到的相应的平均比特率,取决于从源到目的地的整个通信链。互联网络的服务质量目标可以对数据业务是透明的,而不会在其他地方(服务器、接入网、用户设备)所引入的限制上引入任何额外的比特率减小;在这个意义上来说,网络保持了数据流的比特率。
互联网公众网络向用户客户端在商业上提供传输服务。因此收费问题是重要的。网络结构必须为运营商在投资上提供利润,同时为用户要求的高质量服务提供竞争性的价格。
称为DRR(代表“差额循环法”,deficit round robin)的具有(O(1)级的,也就是与流的数量无关的)低复杂度的现有技术调度方法,在由M.SHREEDHAR和G.VARGHESE所著的“Efficient fair queuing usingdeficit round robin”中被描述,该文献是在1996年6月的IEEE/ACMTransactions on Networking,第4卷,第3期,,第375-385页中。
DRR调度方法是按照“循环法(round robin)”原理以循环(cyclic)方式处理流为基础的。这种方法将每个流与队列相关联,被循环处理的每个队列被授权在每个循环发送达到配额(quota)的分组(例如以字节衡量的数据量)。
该DRR法通过保持差额(deficit)计数器以补偿各种流的分组大小中的任何差异来确保合理的公平度。
DRR方法的变量将某些流的分组关联于优先级处理。
特别地,在上述文献中描述的DRR+方法实现了对时延敏感的流的优先级处理,这不利于“尽力而为”流。在这种方法中,优先的流必须遵守合同,也就是它们不得在预定时期内发送多于一定量的数据。
本申请人的文件FR2854296提出了一种对要以优先级处理的分组的隐式区分的调度方法,并因此能够有利地解除该类型的合同。然而,该文件中描述的“自时钟(self-clock)公平排队”类型的调度方法是O(log n)级的,n是要考虑的流的数量,这在某些类型的路由器中实现它时似乎是一种限制。
本发明的目的是解决上述问题。

发明内容
为此,本发明的第一方面提供一种调度属于不同的流的分组的方法,所述方法包括下列步骤·在与所述分组的流相关联的队列中对每个分组排队;·对每个被循环处理的队列,发送包含在达到所述循环的配额的队列中的分组;·在所述排队步骤前确定分组的优先级,所述优先分组是·首先,非活跃(active)流的第一分组,该非活跃流也就是在循环中没接收到分组的流;及·其次,活跃流的分组,对该活跃流来说,在所述循环中接收到的分组的量小于所述配额;以及·以所述循环中的优先级发送在上述确定步骤中确定为具有优先级的分组。
本发明也提供一种用于调度属于不同的流的分组的设备,所述设备包括·用于在与所述分组的流相关联的队列中对每个分组排队的装置;·用于循环处理每个所述队列的装置,这些处理装置包括用于发送包含在达到循环的配额的队列中的分组的装置;·用于在对分组进行上述排队之前确定该分组的优先级的装置,所述优先分组是·首先,非活跃流的第一分组,该非活跃流也就是在所述循环中没接收到分组的流;及·其次,活跃流的分组,对该活跃流来说,在所述循环中接收的分组的量小于所述配额;以及·用于以所述循环中的优先级发送由那些确定装置确定为具有优先级的分组的装置。
因此,根据本发明的调度不同于现有技术,这是因为它是这样区分流的优先级的根据流的固有比特率特性而不是根据合同或与分组或流关联的特定优先级的外部授予,其保持了与流数量无关的复杂度。
所述调度设备和方法根据按优先级的公平的共享算法而将所述分组置于队列中。“按优先级进行公平共享”类型的调度将优先级给予流的分组,其比特率低于与由总是有分组要发送的流所产生的比特率相对应的动态阈值。
这个调度方法和设备有利地使用上面提到的DRR调度方法。
根据本发明的调度方法的一个特定实现还包括测量拥塞计数器的步骤,所述拥塞计数器适于被处理用来计算用于准入控制的拥塞估计量。
这些拥塞估计量尤其可以用于控制对核心网络的准入。
在一个特定实现中,这些拥塞估计量(或参数)是·公平的比特率值,如果数据流总是有分组要发送,则该比特率值是数据流产生的比特率的测量;及·优先负载值,对应于在时间间隔中发送的所述优先分组的量,所述时间间隔是按照该时间间隔的持续时间来划分的的。
在一个特定实现中,根据本发明的调度与关于每个流的“公平排队”型准入控制相关联。
因此本发明的第二方面是分组路由器,其包括上述调度设备和用于根据由该调度设备测量的拥塞参数来控制分组的准入的模块。
在一个特定实现中,所述准入控制模块还适于直接路由属于受保护流的分组,即从预定时间间隔开始至少有一个分组已经被所述准入模块接收到的流。
这种设备或方法能在接入网的特定情形中在没有准入控制装置的情况下起作用,其中在接入网中拥塞的风险比在核心网中更容易得到控制。
在一个特定实现中,所述调度方法的步骤是由受计算机程序指令控制的计算机来执行的。因此,本发明还在于一种存储在信息介质中的计算机程序,该程序包括指令,该指令在所述程序被载入电子数据处理系统并被其执行时能实现上述调度方法。
本发明还涉及一种信息介质,该信息介质是电子数据处理系统可读的并且可选地全部或部分地可移除,尤其是CD-ROM或磁性介质,例如硬盘或磁盘,或者可传送的介质,例如电的或者光的信号,其包括用于在所述程序被载入电子数据处理系统并被其执行时实现上述调度方法的计算机程序指令。
鉴于所述调度设备、路由器、信息介质及计算机程序的独特优点与上述调度方法的优点是相同的,在这里不再重述。


通过阅读下面对特定实施例的描述,本发明的其他方面及优点变得更加显而易见,所述描述只是作为非限制例子的方式参考附图而给出的,其中图1是说明在根据本发明一个特定实现的调度方法中使用的排队算子的主要步骤的流程图;图2是说明在根据本发明一个特定实现的调度方法中使用的出队算子的主要步骤的流程图;图3A到3F示出图1和2的调度方法的执行实例;图4示出根据本发明一个特定实施例的调度设备;及图5示出根据本发明一个特定实施例的分组处理设备。
具体实施例方式
下面描述根据本发明的调度方法的一个特定实现。这里描述的实例中,所述调度方法由计算机程序PROG_ORD来实现。
根据本发明,该调度方法是DRR型方法,其被修改以实现对流的分组的优先级处理,其比特率不超过公平的比特率。
在这里描述的特定实现中,该调度方法也用于进行拥塞测量,下面参考图4描述的准入控制模块需要该拥塞测量。
下面假设所述调度方法处理属于流i的分组p。
在这里描述的特定实现中,本发明的调度方法使用不同的队列Queue_i来存储每个活跃流i的分组p。
注意,本发明的调度方法允许对于每个流i的不同的配额Q_i,尽管对服务质量的隐式区分所设想的应用假定配额Q_i是相同的并且等于最大分组大小MTU(最大传输单元)。
尽管如此,配额Q_i大于或等于最大分组大小MTU。
在这里描述的详细实例中,对这些队列从1到n进行排号,其中n是活跃流的最大号码。
这里描述的调度方法也使用为假流保留的附加队列,这用于测量公平的比特率,即由总是有分组要发送的数据流产生的比特率。
根据本发明的调度方法还使用优先队列PQ来服务于这样的分组根据其所属的流的内在比特率特性而被确定具有优先级。
在本说明书的余下部分中,将“真”队列(PQ,Queue_1,...,Queue_n)和用于测量公平比特率的“假”队列区别开来。
真队列是本领域技术人员所知道的所有FIFO(先进先出)型队列。
这里描述的调度方法也使用活跃流的列表ActiveList和两个算子InsertActiveList()和RemoveActiveList(),这两个算子分别适于在活跃流列表ActiveList的末端添加流编号和从该列表删除流编号。
该调度方法还使用适于通过拒绝位于最长队列Queue_i之首的分组来释放存储器空间的函数FreeBuffer(),这使用了1991年1月的InternetworkingResearch and Experience第2卷第113-131页中由P.McKenney所著的文章“Stochastic Fairness Queuing”中所描述的方法。
也可以使用用来保持流之间的公平性的其他释放存储器的策略。
如同多数现有技术调度方法,这里描述的本发明的调度方法主要使用两个标准队列处理算子·算子InsertInQueue()用于在队列末端插入分组;·算子RemoveFromQueue()用于从队列之首取回元素。
在最初的初始化步骤中,调度程序PROG_ORD为所有队列Queue_i将差额计数器DC_i初始化为0,并将对应于用来测量公平比特率的假流的编号0插入活跃流列表ActiveList中。
下面参考图1描述Enqueue()算子的主要步骤。
当接收到分组p时,算子Enqueue()执行第一步E10,此期间它测试缓存区(缓冲区)是否饱和,在该缓存区中存储了所有活跃流的分组。
如果所述缓存饱和,则测试E10的结果是肯定的。
该测试之后接着是步骤E20,在这期间通过调用上述函数FreeBuffer()来拒绝位于最长队列Queue_i之首的分组,存储空间得以释放。
存储器释放步骤E20后接着是步骤E30,此期间获取分组p所属的流的号码i。
相反,如果活跃流的列表ActiveList没有满,则上述测试E10的结果是否定的。测试之后接着是上述步骤E30。
获取流编号的步骤E30之后接着是检验分组p的流i是否为活跃的测试E40,即检验流i是否是在活跃流的列表ActiveList中。
如果不是,则测试E40的结果是否定的。该测试之后接着是步骤E42,此期间流i通过调用上述函数InsertActiveList()而被插入活跃流的列表ActiveList中。
该插入步骤E42后接着是步骤E44,此期间将与活跃流i相关联的队列Queue_i的差额计数器DC_i初始化为0。
该差额计数器DC_i类似于本领域技术人员所知道的DRR调度方法的计数器。
根据本发明,在每个循环中,每个新接收到的流能发送达到其配额Q_i的优先数据。
为此,初始化步骤E44后接着是步骤E46,此期间分组p的大小size(p)被存到变量BytesCount_i中,该变量存储了要按优先级处理的流i的分组的字节数。
该分配步骤E46之后接着是步骤E48,此期间利用在队尾插入分组的函数InsertInQueue()将分组p添加到优先队列PQ之尾。
这个插入队列中的步骤E48后接着是E50,此期间变量Silence用布尔值FALSE被初始化,以存储准备发送至少一个分组p这一事实。
如下文所述,这个指示符Silence用于测量不存在业务情况下的公平比特率,不存在业务是通过标识符等于布尔值TRUE这一事实来指示的。
本实施例中,步骤E50终止对分组p排队的过程。
如果正被处理的分组p是活跃流i的分组,则上述测试E40的结果是肯定的。
该测试之后接着是步骤E52,此期间分组p的大小被添加到上述变量BytesCount_i中,该变量是用来存储要按优先级处理的流i的分组字节数的。
这个累积步骤后接着是测试E54,它检验要按优先级处理的流i的分组字节数(即BytesCount_i)是小于还是等于为该流保留的队列Queue_i的配额Q_i。
如果是,则测试E54的结果是肯定的。该测试之后接着是类似于上述排队步骤E48的排队步骤E56,此期间分组p被添加到优先队列PQ之尾。
否则,如果要按优先级处理的流i的字节数BytesCount_i超出该循环中的配额Q_i,则测试E54的结果是否定的。该测试之后接着是在为流i保留的正常(如非优先的)队列Queue_i中对分组p排队的步骤E58。
排队步骤E56和E58终止了该特定实施例的排队过程。
下面参考图2描述从队列提取操作Dequeue()的主要步骤。
用来终止分组处理的这个算子Dequeue()是如下被使用的·在发送分组p的每个操作的结尾;及·当系统为空时在分组到达之后,如果每个队列Queue_i对i从1到n都为空并且队列PQ为空,则满足该第二条件。
在这里描述的实现中,该算子Dequeue()采取包括下面描述的步骤F10至F84的无限循环的形式。
第一步F10检验优先队列PQ是否为空。如果不是,则测试F10后接着是步骤F20,在此期间在列表之首的分组p被从优先队列PQ中提取出来。
该操作是利用适于在队列之首取回元素的函数RemoveFromQueue()来实现的。
该提取步骤F20后接着是类似于已经参考图1描述的步骤E30的、获取分组p的流号i的步骤F22。
获取号码的步骤F22后接着是步骤F24,此期间发送分组p。
该发送步骤F24后接着是步骤F26,此期间分组p的size(p)被从队列Queue_i的差额计数器DC_i中减去,该队列Queue_i与在步骤F20中被从优先队列PQ中移除的分组p的流i相关联。
该减去步骤F26后接着是步骤F28,此期间分组p的大小被添加到变量PB中,变量PB用来存储要按优先级处理的业务量。
该累积步骤F28后接着是已描述的测试F10,其检验优先队列PQ是否为空。因此步骤F10到F28构成了循环,只要在优先队列PQ中存在分组该循环就会继续进行。
在该循环中,与其分组已经按优先级被发送的流i相关联的差额计数器DC_i递减,以防止每个流超出其当前循环中的配额Q_i。
如果优先队列PQ是空的,则测试F10的结果是肯定的。该测试后接着是测试F30,其检验是否至少有一个真流是活跃的。
在这里描述的实施例中,这相当于检验活跃流的列表ActiveList包含不止一个元素,这是因为该列表总是至少包含用于测量公平比特率的假流0。
如果不是,则测试F30的结果是否定的。该测试后接着是测试F30,此期间如上面关于图1的步骤E50所描述的,为变量Silence分配布尔常数TRUE,以说明这样的事实在优先队列PQ中和在任何非优先队列Queue_i中都不再有任何分组要发送。
该分配步骤E32后接着是上述步骤E10,其测试优先队列PQ是否是空的。
如果至少有一个真流是活跃的,则测试F30的结果是肯定的。该测试后接着是步骤F34,其获取在活跃流的列表ActiveList之首的流i的标识符。
获取标识符的这个步骤F34后接着是一组步骤F40到F44,用来测量假流0已发送的字节量FB,这个量FB用来估计公平比特率,如后文所述。
更确切地说,步骤F40测试在前述步骤E34中活跃流的列表ActiveList之首所获取的流是否为假流0。
如果是,则测试F40的结果是肯定的。该测试之后接着是步骤F42,此期间被分配给假流0的配额Q_0被添加到量FB。
该累积步骤F42后接着是步骤F44,此期间,假流0被从循环之首移除并立即被添加到该循环的末尾,这通过使用上述标准操作InsertActiveList()和RemoveActiveList()来实现。
如果在步骤F34中在测试活跃流列表ActiveList时获得的活跃流i是真流,则测试F40的结果是否定的。
该测试之后接着是步骤F50,此期间其配额Q_i针对流i而被添加给差额计数器DC_i的当前值。
更确切地说,测试F60检验差额计数器DC_i是否严格为正以及非优先队列Queue_i是否为空。
如果是,则测试F60的结果是肯定的。该测试之后接着是步骤F61,此期间队列Queue_i之首的分组大小被存储在变量s中。
步骤F61后接着是步骤F62,其检验该大小s是小于还是等于该流的差额计数器DC_i。
如果是,则测试F62的结果是肯定的。该测试之后接着是步骤F64,此期间在利用函数RemoveFromQueue()将分组从队列Queue_i中移除后发送该分组。
发送步骤F64后接着是步骤F66,此期间该分组的大小s被从差额计数器DC_i中减去。
该减去步骤F66后接着是上述测试F60,其检验与流i相关联的队列Queue_i是否不为空以及该队列的差额计数器DC_i是否严格为正。
如果流i的的达到授权配额DC_i的全部分组都已经被发送,则测试F60或测试F62的结果是否定的。
在步骤F70中,流i从活跃流列表ActiveList中利用上述算子RemoveActiveList而被移除。
该移除步骤F70后接着是测试F80,其检验与流i相关联的队列Queue_i是否是空的。
如果是,则与流i相关联的差额计数器DC_i在初始化步骤F82中被被始化为0。
如果不是,则流i在插入步骤F84中利用函数InsertActiveList被插入活跃流列表ActiveList之尾。
初始化差额计数器DC_i的步骤F82和将流i插入活跃流列表ActiveList的步骤F84之后接着是上述测试F10。
本领域的技术人员知道,实际上,活跃流列表ActiveList必须适合于小概率的溢出。
在一个特定实施例中,当接收到新的流的分组并且活跃流列表ActiveList为满时,该分组被置于优先队列PQ中,但它所属的流没有被添加给活跃流列表ActiveList。
然后该分组被发送(步骤F24),但与其所属的流相关联的信息没有被更新。
因此,对其进行异常处理的分组具有优先级,即使它们的流的比特率超过当前的公平比特率。
假设分组到达时对于比特率大于公平比特率的的流而言只有很小的概率保持这种状态,这种违例不成问题。
注意,基于已知DRR方法的根据本发明的调度算法的复杂度是O(1)。
图3A到3F示出了参考图1和图2描述的根据本发明调度方法的执行实例。
该描述假设三个队列Queue_1、Queue_2、Queue_3包含各个流即流1、流2、流3的分组p。这些分组的大小在这些图中被指示。
还假设本方案开始时优先队列PQ是空的。
最后,分配给每个流i的配额Q_i的值假设等于1500。
在这些图中,黑箭头表示循环中的活跃流列表的首部,该循环遵循下面的非优先队列顺序Queue_1、Queue_2、Queue_3、Queue_4。
在每个不同步骤中被服务的分组用阴影显示。
最初,如图3A所示,位于列表首部的流是与队列Queue_1相关联的流1。
其差额计数器DC_1增加配额Q_i,即1500。
因此路由器100可以开始服务该队列Queue_1的第一分组(有阴影的),这里该分组大小为500字节。
图3B假设属于新流4的分组在前一分组服务期间到达。
队列Queue_1被产生并被关联于该流4。
与在传统DRR型调度的情况下相比,这里该分组被插入优先队列PQ中,如上面参考步骤E48所描述的。
然而,流1的处理继续,Queue_1的第二分组的大小(50字节)小于新的差额DC_1(测试F60和F62的结果都是肯定的)。
在图3C所示的步骤中,流1的处理已经完成,这时与队列Queue_1相关联的差额DC_1等于500,该差额小于下一分组的大小1000(测试F62的结果是否定的)。
根据本发明,并且与在传统DRR型调度的情况下相比,包含属于流4的分组的优先队列PQ被服务(测试F10的结果是否定的),流4的差额DC_4递减(见步骤F66)。
在图3D所示的下一步中,优先队列PQ现在是空的(测试F10的结果是肯定的),第一活跃真流被处理(测试F30的结果是肯定的),即与队列Queue_2相关联的流2。
在图3E显示的下一步中,下一个流(流3)被处理,因为队列Queue_2中剩余分组的大小大于与该队列相关联的配额DC_2。
图3F所示的最后一步构成新循环的开始,其中重新开始服务流1。流4不再是活跃的,因为其队列Queue_4是空的,并且因此它不是ActiveList的一部分。
图4示出了根据本发明的调度设备100的一个特定实施例。该调度设备可以典型地被实现在路由器或路由器中使用的处理器或微处理器中。
在传统的方式中,该设备接收分组p,该设备调度该分组以发送它们或者在溢出的情况下拒绝该分组。
在图4中,附图标记34表示分组的出发(步骤F24、F64),附图标记32表示对分组的拒绝(步骤E20)。
调度设备100包括处理器110、只读存储器120、随机存取存储器130及时钟140。
调度设备100还包括硬件和软件通信装置150,其例如包括连接到互联网10的网卡和适于实现TCP/IP通信协议的软件层。
这些通信装置150尤其适于接收分组p并将其存储在随机存取存储器130的区131中,并从该区读取分组p以在互联网10上发送该分组。
调度设备100的不同硬件单元是通过总线系统160互连的。这在现有技术中是已知的。
根据本发明,只读存储器120包含调度程序PROG_ORD,而随机存取存储器130包含用于执行该调度程序PROG_ORD的数据结构170。
该数据结构170是以表的形式来表示的,其中每行对应于与流i相关联的队列Queue_i。更确切地说,在该表中·第一列存储流的编号i;·第二列存储流i的标识符;·第三列存储队列Queue_i的配额Q_i;·第四列存储队列Queue_i的差额计数器DC_i;·第五列用于管理来自活跃流列表ActiveList的流的循环,这是通过在该列表中存储队列Queue_i之后的队列编号来实现的(如在现有技术中已知的,管理这些指针使得流可以被插入活跃流列表ActiveList和从该列表中被提取);及·最后一列给出了在随机存取存储器130中队列Queue_i之首的分组的存储地址(如现有技术中已知的,队列Queue_i中的后续分组可以借助于链式指针的列表来获得)。
在一个特定实施例中,流i的活跃性是通过将流标识符与数据结构1709的第二列内容相比较来被检验的,例如利用内容寻址存储器(CAM,content-addressable memory)。
下面参考图5描述根据本发明一个特定实施例的路由器50。
该路由器50包括与上参考图4描述的调度设备相同或类似的调度设备100。在这里所述的特定实施例中,该路由器还包括用于控制进入流(实箭头31)的每个分组p的准入的模块24。
例如,呈给该模块的分组p由标准路由函数所确定,该函数可以包括通过对流标识符的字段子集应用散列函数而获取的负载共享。
在这里所述的实施例中,该准入控制模块24执行可独立实现的两个级别的控制。
为此,准入控制模块24查询并更新“受保护的”流的列表30,也就是说,被准入控制模块24许可的活跃流(即该流的分组已经针对预定时间间隔而被确定),并且根据受保护的流的这个列表30判定给定流的分组是否应当直接被路由,也就是说,不必检验将该分组路由至所述调度设备的准入条件。
具体来说,受保护流的列表30是指示每个流中最后一个分组的到达时间的流标识符列表。
在一个特定实施例中,为限制每个列表的容量并由此保证扩展性,将每个列表关联于标识符空间的分区。
在该实施例中,如果从接收到该流的最后一个分组起耗用的时间超过了阈值或者超时,则将所述流从标识符列表30中删除。该超时的长度是系统参数,例如几秒钟。
在一个特定实施例中,该列表30适合于限制饱和概率,即所述流应当被置于所述列表中但该列表已满这一情形。
这种饱和的结果是在获取受保护流状态时流被延迟。然而如果拥塞状态允许的话,则该分组被正确路由。如现有技术中已知的,可以通过适当的调整来使得饱和概率足够小。
如果该分组属于受保护的流,则它被直接路由(箭头38)到对应于正确输出接口的调度设备100,该受保护流的最后一个分组的到达时间在标识符列表30中被更新。
如果该流还没有被保护,则必须基于从调度模块接收到的准入条件来进行路由判定。
根据本发明,另一个函数基于由调度设备100执行的拥塞测量来确定准入条件。图5的箭头36指示了这些条件的供应。
在一个特定实施例中,用了两个拥塞估计量,即公平比特率和优先负载CP-公平比特率是对由总是有分组要发送的数据流产生的比特率的测量;及-优先负载是在特定时间间隔中发送的优先分组长度的总和,所述时间间隔是按照该时间间隔的持续时间来划分的。
通过执行周期性测量来实现受控链路的负载状态的连续计数。测量周期对于公平比特率值(例如百毫秒级的)和优先负载值(例如十毫秒级的)典型地是不同的。
这里所述的本发明的特定实施例中,拥塞估计量CP和DE是基于拥塞计数器PB和FB、通过与上述调度过程不同的测量过程来被计算的,所述拥塞计数器是通过步骤F28和F42中的调度过程而被规则地更新的。
此外,该测量过程(或另一模块)包括适于测量总时间Silence_Time的这里未描述的装置,该总时间的逻辑变量Silence等于布尔值TRUE,要记住,该变量Silence在步骤F32中设为值TRUE而在步骤E50中设为值FALSE。
通过对拥塞计数器FB以规则时间间隔进行抽样,该测量过程推断出优先负载的估计,作为在测量时间间隔的开始和末尾所测量的PB值之差,该时间间隔是按照该时间间隔的持续时间来划分的。
该时间间隔的优先负载估计量CP是由以下等式给出的CP(T1,T2)=(PB(T2)-PB(T1))×8/(T2-T1)/C其中·PB(T)是时刻T处PB的值,单位为字节;·(T1,T2)是测量周期(以秒为单位);以及
·C是链路比特率(单位是bps)。
根据本发明,要估计公平比特率DE,假设假流0连续发送固定大小的等于Q_0的分组(该配额与假流0相关联)。
在优先级Q经常被占用的周期中,假流0已经发送的字节数是根据拥塞计数器FB的改变状态来推断的。当队列是空的,假流0已经以链路比特率C进行发送。
通过改变活跃周期和静周期的连续性,根据以下等式推导公平比特率DE的估计DE(T1,T2)=max(Silence_Time×C/(T2-T1),(FB(T2)-FB(T1))×8/(T2-T1))其中·FB(T)是时刻T处的FB值,单位为字节;·(T1,T2)是测量周期;以及·Silence_Time是时间间隔(T1,T2)期间总的静持续时间。
本领域的技术人员很容易理解,在计算公平比特率DE时,如果链路负载较低(因为假流0已使用该链路中可用的全部容量),则第一项占优势,而第二项在活跃周期中占优势,该项近似地测量真流所达到的比特率,该真流总是具有与其关联的队列中的至少一个分组。
然后调度模块100根据拥塞估计量CP(优先负载)和DE(公平比特率)判定准入条件。实际上,该判定可以利用函数Admit(CP,DE)来作出,如果还没有受保护流状态的新流的分组p必须被路由(或被拒绝),则该函数的结果等于1(或0),该准入函数的结果被调度模块100提供给路由器24(箭头36)。
如果准入条件是有利的,则其分组被路由的新流被插入受保护流的列表中并因此获取了受保护流状态。
在该图中,实箭头39代表路由器模块24拒绝新流的第一分组。
在该图中,实箭头38代表将受保护流的分组路由到调度模块100。
所应用的条件可能取决于分组的特定属性,包括IPv6中的“trafficclass”字段的值或IPv4中的字段ToS的值或IP源和目的地址。
准入控制确保所许可流的透明度实时流的信号的保持、数据流的比特率的保持。
实际上,该透明度只是被提供给其(由外部限制所确定的)峰值比特率保持低于特定阈值的流。
关于选择相对于公平比特率的准入阈值和能够实现准入控制以确保流透明度的优先负载的详细内容,本领域技术人员可以参考本申请人的上面提到的文件FR2854296。
在以上描述中,测量过程和调度过程是彼此分离的。测量过程也可以被并入调度过程。
权利要求
1.一种调度属于不同流(i)的分组(p)的方法,所述方法包括·在与所述分组(p)的流相关联的队列(Queue_i)中对每个分组排队的步骤(E58);及·对被循环处理的每个所述队列,发送包含在达到所述循环的配额(Q_i)的所述队列(Queue_i)中的分组的步骤(F64),所述方法的特征在于,它还包括·在所述排队步骤(E58)之前确定所述分组(p)的优先级的步骤(E40,E54),所述优先分组是·首先,非活跃流的第一分组,该非活跃流也就是在所述循环中没接收到分组的流;及·其次,活跃流的分组,对该活跃流来说,在所述循环中接收到的分组的量(BytesCount_i)小于所述配额(Q_i);以及·以所述循环中的优先级发送在所述确定步骤(E40,E54)中确定为具有优先级的分组的步骤(F24)。
2.根据权利要求1的调度方法,其特征在于,它还包括测量拥塞计数器(FB,PB)的步骤(F28,F42),该拥塞计数器适于被处理用来计算用于准入控制的拥塞估计量(CP,DE)。
3.根据权利要求2的调度方法,其特征在于,所述拥塞参数包括·公平比特率值(DE),其是对总有分组要发送的数据流所产生的比特率的测量;及·优先负载值(CP),其对应于在时间间隔中发送的所述优先分组的量,所述时间间隔是按照该时间间隔的持续时间来划分的。
4.一种用于调度属于不同的流(i)的分组(p)的设备,所述设备包括·用于在与所述分组(p)的流相关联的队列(Queue_i)中对每个分组排队的装置;·用于循环处理每个所述队列(Queue_i)的装置,所述处理装置包括用于发送包含在达到所述循环的配额(Q_i)的所述队列(Queue_i)中的分组的装置,所述调度设备的特征在于,它还包括·用于在对所述分组排队之前确定所述分组(p)的优先级的装置,所述优先分组是·首先,非活跃流的第一分组,该非活跃流也就是在所述循环中没接收到分组的流;及·其次,活跃流的分组,对该活跃流来说,在所述循环中接收到的分组的量(BytesCount_i)小于所述配额(Q_i);以及·用于以所述循环中的优先级发送被所述确定装置确定为具有优先级的分组的装置。
5.根据权利要求4的调度设备,其特征在于,它还包括用于测量拥塞计数器(FB,PB)的装置,该拥塞计数器适于被处理用来计算用于准入控制的拥塞估计量(CP,DE)。
6.根据权利要求5的调度设备,其特征在于,所述拥塞参数包括·公平比特率值(DE),其是对总有分组要发送的数据流所产生的比特率的测量;及·优先负载值(CP),其对应于在时间间隔中发送的所述优先分组的量,所述时间间隔是按照该时间间隔的持续时间来划分的。
7.一种分组路由器,其特征在于,它包括根据权利要求5或权利要求6的调度设备(100),和用于根据由所述调度设备测量的拥塞参数来控制所述分组的准入的模块(24)。
8.根据权利要求7的路由器,其特征在于,所述准入模块还适于直接路由属于受保护流的分组,该受保护流即是从预定时间间隔起由所述准入模块接收到至少一个分组的流。
9.一种存储在信息介质中的计算机程序,所述程序包括指令,当该程序被载入电子数据处理系统并被其执行时,所述指令能实现根据权利要求1到3中任一个的调度方法。
10.一种信息介质,该信息介质可被电子数据处理系统读取并且可选地全部地或部分地可移除,其特别是CD-ROM或磁性介质,例如硬盘或软盘,或者是可传输介质,例如电或光信号,其特征在于,该信息介质包括计算机程序指令,当该程序被载入电子数据处理系统并被其执行时,所述计算机程序指令用来实现根据权利要求1到3中任一个的调度方法。
全文摘要
本发明涉及一种调度属于不同流的分组的方法,包括下列步骤在与分组的流关联的队列中对每个分组排队(E58);对被循环处理的每个队列,发送包含在达到该循环的配额的队列中的分组,该方法的特征在于,它还包括下列步骤在排队步骤(E58,E56,E48)之前确定分组优先级(E40,E54),优先分组首先是非活跃流的第一分组,该非活跃流也就是在该循环中没接收到分组的流,其次是活跃流的分组,对于该活跃流,在该循环中接收到的分组的量小于所述配额;以及以该循环中的优先级发送在确定步骤(E40,E54)中确定为具有优先级的分组。
文档编号H04L12/54GK101057481SQ200580039039
公开日2007年10月17日 申请日期2005年11月15日 优先权日2004年11月15日
发明者J·罗伯茨, S·韦斯拉蒂, A·科尔特比 申请人:法国电信公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1