带宽控制方法及带宽控制装置转让专利

申请号 : CN200710153848.8

文献号 : CN101127721B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 余卉

申请人 : 杭州华三通信技术有限公司

摘要 :

本发明公开了一种带宽控制方法及装置,应用于包括多接口的路由交换设备。该方法包括:根据物理组网结构对接口进行域划分,其中,任一域包括一组内接口和一组外接口,且每一组接口数目至少为一个;为每一域制定域带宽策略;当从一接口接收到报文时,根据所属域的域带宽策略进行带宽控制,并将通过带宽控制的报文发送到所属域的另一组接口。通过本发明公开的方法及装置,充分考虑到了接口硬件限制因素和逻辑管理因素,从而既摆脱了对单一接口的依赖,又有利于保证会话个体带宽的稳定性,以及,有利于实现多层次、细粒度的接口带宽控制。

权利要求 :

1.一种带宽控制方法,应用于包括多接口的路由交换设备,其特征在于,包括以下步骤:根据物理组网结构对接口进行域划分,其中,任一域包括一组内接口和一组外接口,且每一组接口数目至少为一个;

为接口进行接口管道划分,设置每一接口管道与一应用对应,且所述接口管道为该接口所属域中对应应用的传输路径;

为每一域制定域带宽策略,包括:分别在内接口到外接口方向和外接口到内接口方向上为每一域制定域允许带宽;在每一方向上,根据用户信息制定第一允许带宽;并根据应用信息制定第二允许带宽,所述第二允许带宽与相应应用的接口管道适配;

当从一接口接收到报文时,根据所属域的域带宽策略进行带宽控制,包括:识别所属域当前方向上的使用带宽是否超出域允许带宽,是则丢弃所述报文,否则执行步骤a;步骤a:识别当前方向上的所属用户使用带宽是否超出第一允许带宽,是则丢弃所述报文,否则执行步骤b;步骤b:识别当前方向上所属应用使用带宽是否超出第二允许带宽,是则丢弃所述报文,否则,将通过带宽控制的报文发送到所属域的另一组接口。

2.根据权利要求1所述的带宽控制方法,其特征在于,根据应用信息制定第二允许带宽包括:制定一应用的允许连接总数、新建连接速率和/或连接带宽限制;所述识别当前方向上的所属应用使用带宽是否超出第二允许带宽包括:识别所述报文是否由新建连接传输;

对于新建连接,识别是否超过所属应用的允许连接总数、是否超出所属应用的新建连接速率和/或是否超出所属应用的连接带宽限制,是则丢弃所述报文,否则为所述报文分配共享优先级和业务接口管道标识,并将报文发送到所属域的另一组接口;

对于非新建连接,识别是否超出所属应用的连接带宽限制,是则丢弃所述报文,否则为所述报文分配共享优先级和业务接口管道标识,将报文发送到所属域的另一组接口。

3.根据权利要求2所述的带宽控制方法,其特征在于,根据应用信息制定第二允许带宽还包括:制定该应用的承诺速率、峰值速率;所述识别当前方向上的所属应用使用带宽是否超出第二允许带宽还包括:识别当前报文速率;

如果当前报文速率小于承诺速率,则将所述报文标记为第一报文;

如果当前报文速率小于峰值速率但大于承诺速率,则将所述报文标记为第二报文;

如果当前报文速率大于峰值速率,则丢弃所述报文。

4.根据权利要求3所述的带宽控制方法,其特征在于,所述将报文发送到所属域的另一组接口包括:根据所述报文携带的业务接口管道标识,确定相应的接口管道;

对于第一报文,将其发送到相应接口管道的直接发送队列;

对于第二报文,根据其携带的共享优先级确定相应的优先级队列后,将其发送到相应接口管道的相应优先级队列。

5.根据权利要求4所述的带宽控制方法,其特征在于,还包括根据所述另一组接口的总带宽情况,从接口队列中调度所述报文,并调用物理发送;发送失败,则将所述报文重新送回所述接口队列。

6.根据权利要求5所述的带宽控制方法,其特征在于,从接口队列中调度所述报文包括:按照定时器周期轮询各个接口管道,并根据接口总带宽计算可以发送的报文数;

调度各个接口管道下的直接发送队列的报文;

在未超出所述报文数的情况下,轮询调度各个接口管道下具有较高共享优先级的优先级队列报文;

在未超出所述报文数的情况下,轮询调度各个接口管道下具有较低共享优先级的优先级队列报文。

7.一种带宽控制装置,应用于包括多接口的路由交换设备,其特征在于,包括:

域划分保存单元,用于保存根据物理组网结构对接口进行域划分的结果,其中,任一域包括一组内接口和一组外接口,且每一组接口数目至少为一个;

任一所述接口包括多个接口管道,每一接口管道与一应用对应,为所属域中对应应用的传输路径;

域带宽策略保存单元,用于保存每一域的域带宽策略,其包括:域带宽保存模块,用于保存在内接口到外接口方向和外接口到内接口方向上每一域的域允许带宽;第一带宽保存模块,用于保存在每一方向上基于用户信息制定的第一允许带宽;第二带宽保存模块,用于保存在每一方向上基于应用信息制定的第二允许带宽,所述第二允许带宽与相应应用的接口管道适配;

带宽控制单元,用于分别与所述域划分保存单元和域带宽策略保存单元连接,用于对接口接收到的报文,根据所属域的域带宽策略进行带宽控制,并将通过带宽控制的报文发送到与所述接口相应的另一组接口,该带宽控制单元包括:域带宽识别模块,所述域带宽识别模块与所述域带宽保存模块连接,用于在识别所属域当前方向上的使用带宽未超出域允许带宽的情况下将所述报文发送到第一带宽识别模块,否则丢弃所述报文;与第一带宽保存模块连接的第一带宽识别模块,用于接收所述域带宽识别模块输出的报文,并在识别当前方向上所属用户使用带宽未超出第一允许带宽的情况下,将所述报文发送到第二带宽识别模块;否则丢弃所述报文;第二带宽识别模块,与所述第二带宽保存模块连接,用于接收所述第一带宽识别模块输出的报文,并在识别当前方向上所属应用使用带宽未超出第二允许带宽的情况下,将所述报文发送到所属域的另一组接口,否则丢弃所述报文。

8.根据权利要求7所述的带宽控制装置,其特征在于,所述第二带宽识别模块包括识别处理模块、共享优先级标记模块和业务接口管道标记模块;通过所述识别处理模块识别新建连接,对于新建连接未超过所属应用的允许连接总数、未超出所属应用的新建连接速率和/或未超出所属应用的连接带宽限制的报文,以及对于非新建连接未超出所属应用的连接带宽限制的报文,调用共享优先级标记模块和业务接口管道标记模块,为所述报文分配共享优先级和业务接口管道标识;将其他报文丢弃。

9.根据权利要求8所述的带宽控制装置,其特征在于,所述第二带宽识别模块还包括报文标记模块,受识别处理模块调用,用于将当前报文速率小于承诺速率的报文标记为第一报文,将当前报文速率小于峰值速率但大于承诺速率的报文标记为第二报文,将当前报文速率大于峰值速率报文丢弃。

10.根据权利要求9所述的带宽控制装置,其特征在于,所述带宽控制单元还包括接口管道分配模块,用于根据所述报文携带的业务接口管道标识,确定相应的接口管道;对于第一报文,将其发送到相应接口管道的直接发送队列;对于第二报文,根据其携带的共享优先级确定相应的优先级队列后,将其发送到相应接口管道的相应优先级队列。

11.根据权利要求10所述的带宽控制装置,其特征在于,还包括报文发送单元,用于根据接口的总带宽情况,从接口队列中调度所述报文并发送所述报文。

12.根据权利要求11所述的带宽控制装置,其特征在于,所述报文发送单元包括报文调度模块和报文发送模块;

所述报文调度模块用于周期轮询各个接口管道,并根据接口总带宽计算可以发送的报文数;还用于调度各个接口管道下的直接发送队列的报文;在未超出所述报文数的情况下,轮询调度各个接口管道下具有较高共享优先级的优先级队列报文;在未超出所述报文数的情况下,轮询调度各个接口管道下具有较低共享优先级的优先级队列报文;

所述报文发送模块用于对从接口队列中调度的报文调用物理发送,并将发送失败的报文重新送回接口队列。

说明书 :

技术领域

本发明涉及网络通信技术领域,特别涉及一种带宽控制方法及带宽控制装置。

背景技术

随着宽带网络技术的发展,如何有效管理和控制带宽,以控制日趋严重的带宽滥用、误用,从而提高网络资源利用率,一直是一个比较热门的话题。
目前多数用于路由器和交换机产品中的带宽控制解决方案所采用的都是基于物理层面的、扁平化的带宽控制方案,即以一个接口上的转发流量为核心,对进入同一个接口的流量按照不同的指标分配不同的带宽,如图1所示:所有从同一接口转发的流量按照不同的指标,通过队列调度算法划分到不同的队列中,并调度发送。可以看出,根据不同的指标,这种方案能够实现在一个接口上按照不同的用户或者应用或者会话等实现带宽控制。这种技术方案的优势在于易于实现,但由于一个接口下接入的用户或者服务之间彼此将产生带宽竞争,因此难以为用户或者服务提供稳定的带宽保证,即无法实现细粒度的带宽管理。
为了克服这一问题,近来出现了不依赖于硬件接口的带宽管理方法。
其中,名为“一种带宽控制方法及系统”的中国专利申请CN1859195A公开了如下技术方案:统计各用户使用的各业务类型实际占用的带宽,针对超出最大允许使用带宽的业务类型,按照带宽控制策略对该业务类型的带宽占用进行调整。
名为“基于接入用户的带宽控制方法”的中国专利申请CN1518279A公开了如下技术方案:在接入用户进行网络访问过程中,根据该用户的可占用带宽信息进行带宽控制。
可以看出,上述两种带宽控制方法不再将接口硬件情况纳入考虑,而是从逻辑层面对用户带宽或者业务带宽进行控制。虽然这种方案能够保证用户或者应用会话个体所占用带宽的稳定性;但同时,在用户数量较多或者应用会话数较多的情况下,往往会造成网络整体不堪重负的情况,影响到实际带宽控制的效果。
由于在运营商或者企业用户的网络中,网络带宽资源非常宝贵,因此,为了实现合理利用网络带宽资源,需要一种能够综合考虑到物理层面和逻辑层面需要,多层次、细粒度的进行有效带宽控制的技术方案。

发明内容

本发明的目的在于克服现有技术的缺陷,提供一种控制带宽的技术方案,以实现同时满足物理层面和逻辑层面需求的带宽管理。
为实现上述目的,本发明的实施例提供了一种带宽控制方法,应用于包括多接口的路由交换设备,包括以下步骤:
根据物理组网结构对接口进行域划分,其中,任一域包括一组内接口和一组外接口,且每一组接口数目至少为一个;
为接口进行接口管道划分,设置每一接口管道与一应用对应,且所述接口管道为该接口所属域中对应应用的传输路径;
为每一域制定域带宽策略,包括:分别在内接口到外接口方向和外接口到内接口方向上为每一域制定域允许带宽;在每一方向上,根据用户信息制定第一允许带宽;并根据应用信息制定第二允许带宽,所述第二允许带宽与相应应用的接口管道适配;
当从一接口接收到报文时,根据所属域的域带宽策略进行带宽控制,包括:识别所属域当前方向上的使用带宽是否超出域允许带宽,是则丢弃所述报文,否则执行步骤a;步骤a:识别当前方向上的所属用户使用带宽是否超出第一允许带宽,是则丢弃所述报文,否则执行步骤b;步骤b:识别当前方向上所属应用使用带宽是否超出第二允许带宽,是则丢弃所述报文,否则,将通过带宽控制的报文发送到所属域的另一组接口。
本发明的实施例还提供了一种带宽控制装置,应用于包括多接口的路由交换设备,包括域划分保存单元,用于保存根据物理组网结构对接口进行域划分的结果,其中,任一域包括一组内接口和一组外接口,且每一组接口数目至少为一个;
任一所述接口包括多个接口管道,每一接口管道与一应用对应,为所属域中对应应用的传输路径;
域带宽策略保存单元,用于保存每一域的域带宽策略,其包括:域带宽保存模块,用于保存在内接口到外接口方向和外接口到内接口方向上每一域的域允许带宽;第一带宽保存模块,用于保存在每一方向上基于用户信息制定的第一允许带宽;第二带宽保存模块,用于保存在每一方向上基于应用信息制定的第二允许带宽,所述第二允许带宽与相应应用的接口管道适配;带宽控制单元,用于分别与域划分保存单元和域带宽策略保存单元连接,用于对接口接收到的报文,根据所属域的域带宽策略进行带宽控制,并将通过带宽控制的报文发送到与该接口相应的另一组接口,该带宽控制单元包括:域带宽识别模块,所述域带宽识别模块与所述域带宽保存模块连接,用于在识别所属域当前方向上的使用带宽未超出域允许带宽的情况下将所述报文发送到第一带宽识别模块,否则丢弃所述报文;与第一带宽保存模块连接的第一带宽识别模块,用于接收所述域带宽识别模块输出的报文,并在识别当前方向上所属用户使用带宽未超出第一允许带宽的情况下,将所述报文发送到第二带宽识别模块;否则丢弃所述报文;第二带宽识别模块,与所述第二带宽保存模块连接,用于接收所述第一带宽识别模块输出的报文,并在识别当前方向上所属应用使用带宽未超出第二允许带宽的情况下,将所述报文发送到所属域的另一组接口,否则丢弃所述报文。
由上述技术方案可知,本发明根据物理组网结构划分接口域,采用根据域带宽策略进行带宽控制的技术方案,具有以下有益效果:
1、通过划分接口域,既充分考虑到了接口硬件限制因素,保证了接口硬件对会话的支持能力,又摆脱了对单一接口的依赖;
2、通过对域带宽策略的制定,将逻辑管理因素纳入考量,有利于进一步保证会话个体带宽的稳定性;
3、综合考虑接口硬件限制因素和逻辑管理因素,有利于实现多层次、细粒度的接口带宽控制。

附图说明

图1为现有技术中带宽控制方案的示意图;
图2为本发明带宽控制方法一实施例的流程图;
图3为接口与域之间关系的一个具体实例示意图;
图4为本发明带宽控制方法另一实施例的流程图;
图5为接口与接口管道之间关系的一个具体实例示意图;
图6为识别当前方向上所属应用使用带宽是否超出第二允许带宽的一实施例流程图;
图7为识别当前方向上所属应用使用带宽是否超出第二允许带宽的另一实施例流程图;
图8为基于图7所示实施例,将通过带宽控制的报文发送到所属域的另一组接口相应接口管道的一个实施例流程图;
图9为基于图7所示实施例,从接口队列中调度报文并发送的一个实施例的流程图;
图10为本发明带宽控制方法又一实施例的流程图;
图11为本发明带宽控制方法一具体实施例的流程图;
图12为本发明带宽控制装置一实施例的框图;
图13为本发明带宽控制装置另一实施例的框图;
图14为本发明带宽控制装置又一实施例的框图;
图15为本发明带宽控制装置再一实施例的框图。

具体实施方式

现有技术中的带宽控制方案,有的是基于单一接口的硬件进行带宽管理,有的是抛开硬件限制,单独从逻辑层面进行带宽管理,因此存在着各种缺陷。为了保证带宽资源被合理利用,本发明结合物理组网结构和逻辑层面的因素,提供了一种带宽控制方案。下面结合附图和实施例,对本发明的技术方案进行详细描述。
实施例1:
本实施例1所提供的带宽控制方法应用于包括多接口的路由交换设备,比如路由器和网关设备;请参考图2,包括以下步骤:
S1-1、根据物理组网结构对接口进行域划分,其中,任一域包括一组内接口和一组外接口,且每一组接口数目至少为一个;
所谓接口(interface),通常所指都是一个物理接口,例如路由器或者交换机的网络接口,能够提供100Mbps或者1Gbps的带宽。
在本步骤中,接口被按照物理组网结构进行域(segment)划分。比如,当物理组网结构为企业内部网a和企业内部网b通过路由交换设备连接到Internet网络时,就可以为该路由交换设备创建两个域,即企业内部网a到Internet网络的域1和企业内部网b到Internet网络的域2。当域1创建后,将连接企业内部网a的接口定义为该域1的内接口,将对应的连接Internet的接口定义为该域1的外接口,就真实反映了企业内部网a与Internet网络之间的物理组网结构:从企业内部网a发送的报文经由内接口-->外接口路由转发给Internet,从Internet发送的报文经由外接口-->内接口路由转发给企业内部网a。同理,当域2创建后,将连接企业内部网b的接口定义为该域2的内接口,将对应的连接Internet的接口定义为该域2的外接口,就真实反映了企业内部网b与Internet网络之间的物理组网结构:从企业内部网b发送的报文经由内接口-->外接口路由转发给Internet,从Internet发送的报文经由外接口-->内接口路由转发给企业内部网b。
可以看出,一个域可以理解成由内接口和外接口构成的物理组网模型,该模型包括一对或者多对接口;作为一个具体实例,接口与域之间的关系请参见图3。在图3中,域1包含两对接口:Interface A和InterfaceB构成了这个域的内接口,而Interface D和Interface E构成了这个域的外接口;域2包含一对接口:Interface C构成这个域的外接口,InterfaceF构成这个域的内接口。
需要注意的是,在图3中,输入接口和输出接口具有一一对应的关系,但在实际使用中,也可以是组和组之间的对应关系,比如,从InterfaceA和Interface B输入的报文,能够Interface D和Interface E的任何一个发出。
同时,对于一个接口来说,它可能同时是一个域的内接口和另一个域的外接口,也可能同时是两个域的外接口或者内接口。仍以企业内部网a和b为例,路由交换设备中连接企业内部网b的接口是域2的内接口,但也同时可以作为企业内部网a和企业内部网b之间域的外接口。具体接口是属于域的哪一端由组网结构决定,不是本文讨论的重点。
S1-2、为每一域制定域带宽策略;
当接口划分完成,那么每一个域的接口总能力就确定下来,因此,可以根据该域的硬件接口能力来制定域带宽策略,从而将逻辑层面纳入考量。
较佳的,是一个接口只属于一个域,这样域一端的带宽上限就是接口带宽上限之和;或者,在一个接口不只属于一个域的情况下,可以由系统管理员根据实际情况配置域带宽上限,比如,当一个接口同时属于两个域的情况下,可将其一半带宽分别计入所属域的带宽上限。
另外,由于每一个域都存在两组接口,因此为每一域制定域带宽策略可以包括:分别在内接口到外接口方向和外接口到内接口方向上为每一域制定域允许带宽;一般来说,内接口到外接口方向的域允许带宽由外接口的硬件能力决定,外接口到内接口方向的域允许带宽由内接口的硬件能力决定。
可以看出,根据域的接口能力来制定域带宽策略,能够实现不同物理组网之间的带宽隔离,防止带宽被滥用、误用。同时,通过域允许带宽限定了通过域的总流量,提供了最大可用带宽限制。
进一步的,域带宽策略还可以从逻辑层面加以层次化和细粒化设置,以保证会话个体的稳定性,这将在后续的实施例2~实施例6中加以描述。
S1-3、当从一接口接收到报文时,根据所属域的域带宽策略进行带宽控制,通过带宽控制则执行步骤S1-4,否则丢弃该报文;
依本实施例1所设置的域带宽策略,本步骤具体为识别所属域当前方向上的使用带宽是否超出域允许带宽,是则丢弃该报文,否则执行步骤S1-4。
可以看出,通过带宽控制的报文,其所占用带宽与所在域本方向的当前带宽之和一定不会超过预设的域允许带宽,使实际使用带宽不致超过接口的实际支持能力而造成网络瘫痪。
S1-4、将通过带宽控制的报文发送到所属域的另一组接口;
具体发送给哪一个接口根据进行域划分时的定义确定。比如,如果按照图3所示情况进行域划分,则由于内-外接口之间具有一一对应的关系,则从一个接口接收的报文,必然被发送到其相应的接口;否则,如果只是内-外接口组相对应,则可以任意发送给另一组中的接口。
较佳的,当接口被根据应用进行了接口管道划分时,其发送目的地就会得到进一步限定,这将在后续的实施例2中进行详细探讨。
可以看出,通过本发明实施例1提供的带宽控制方法,基于物理组网结构进行域划分,既满足域中接口的硬件要求,不再依赖于对单一接口的管理,又将逻辑管理因素纳入考虑,为进一步进行细粒度、多层次的带宽管理提供了广阔的空间。
由于实施例1所提供的技术方案从域整体硬件条件的角度,为带宽控制提供了保证;因此,在实施例1的基础上,通过在域中进行用户和应用带宽的限制,能够实现多层次、细粒度的带宽管理。具体的,本发明实施例2~实施例4进一步提供了基于域上不同应用的带宽控制方案。
实施例2:
请参考图4,本实施例2包括以下步骤:
S2-1、根据物理组网结构对接口进行域划分,其中,任一域包括一组内接口和一组外接口,且每一组接口数目至少为一个;
S2-2、为接口进行接口管道划分,设置每一接口管道与一应用对应;
通常的,一个接口可以划分成多个接口管道(pipeline),每个接口管道可以具有不同的带宽,接口管道的带宽之和为接口带宽。
各个接口管道在创建时,可以用于对应不同的应用,例如点对点应用(peer-to-peer,简称P2P)、IP电话(Voice over Internet Protocol,简称VoIP)等。其中,接口管道为该接口所属域中对应应用的传输路径。其中,该接口管道可以是该接口所属域中对应应用的唯一传输路径,也可以是该接口所属域中对应应用的多个传输路径之一,或者,当域中接口具有一一对应关系时,也可以为所在接口中对应应用的唯一传输路径或者传输路径之一。如图5所示,为接口和接口管道之间关系的一个示意图,其中,接口A可以划分成四个接口管道,分别为:接口管道A1、A2、A3和A4。每一个接口管道都具有一个带宽值,所有通过此接口管道的流量都受此带宽值的限制。
S2-3、分别在内接口到外接口方向和外接口到内接口方向上为每一域制定域允许带宽;
S2-4、在每一方向上,根据应用信息制定第二允许带宽,所述第二允许带宽与相应应用的接口管道适配;
其中,本步骤所指的与接口管道适配有两种情况:
第一、接口管道不允许超过带宽限制,则第二允许带宽不能大于接口管道的带宽值限制,从而实现真正的带宽隔离,防止滥用和误用;
第二、接口管道允许超过带宽限制,则第二允许带宽可设为大于接口管道的带宽值限制,当本接口管道中实际带宽超出时,该接口管道可以从其他接口管道借用剩余带宽。
S2-5、当从一接口接收到报文时,识别所属域当前方向上的使用带宽是否超出域允许带宽,是则丢弃所述报文,否则执行步骤S2-6;
通过本步骤,实现物理组网上的带宽隔离,保证了物理接口不致拥堵。
S2-6、识别当前方向上所属应用使用带宽是否超出第二允许带宽,是则丢弃所述报文,否则执行步骤S2-7;
通过本步骤,实现了应用级别的带宽隔离,保证了每一应用会话带宽的稳定性。
S2-7、将通过带宽控制的报文发送到所属域的另一组接口的相应接口管道中。
可以看出,本实施例2基于接口管道和域,实现带宽控制的分层管理,从而实现基于硬件限制和逻辑处理的多层次带宽控制。特别的,当对第二允许带宽进行细化设置时,能够实现更细粒度的带宽控制,如实施例3中所描述。
实施例3:
为了实现细粒度的带宽控制,在本实施例中,根据应用信息制定第二允许带宽可以包括:制定一应用的允许连接总数、新建连接速率和/或连接带宽限制等。
则,参见图6,实施例2中步骤S2-6可具体包括:
S3-6-1、识别所述报文是否为新建连接,是则执行步骤S3-6-2,否则执行S3-6-4;
S3-6-2、识别所述报文是否超过所属应用的允许连接总数,是则执行步骤S3-6-6,否则执行S3-6-3;
S3-6-3、识别所述报文是否超出所属应用的新建连接速率,是则执行步骤S3-6-6,否则执行S3-6-4;
S3-6-4、识别所述报文是否超出所属应用的连接带宽限制,是则执行步骤S3-6-6,否则执行步骤S3-6-5;
S3-6-5、为所述报文分配共享优先级和业务接口管道标识,本步骤结束,向下执行后续步骤S2-7;
其中,在本实施例中,共享优先级可以具有多个等级,数值越大级别越高,表示该报文在所属的接口管道中可以得到更多的带宽保证;业务接口管道标识用于在出接口上将报文送入合适的接口管道,例如VoIP的应用接口管道。
S3-6-6、丢弃该报文,产生带宽管理日志。
显然,通过上述步骤,能够实现对于接口带宽的细粒度管理。
进一步的,为了避免接口管道借用影响了原本带宽充足的应用报文的影响,还可以区分应用报文的发送级别,如实施例4所描述。
实施例4:
在实施例3的基础上,在本实施例中,根据应用信息制定第二允许带宽还包括:制定该应用的承诺速率、峰值速率等。
当第二允许带宽按上述内容设置时,参见图7,实施例2中步骤S2-6可具体包括:
S4-6-1、识别所述报文是否为新建连接,是则执行步骤S4-6-2,否则执行S4-6-4;
S4-6-2、识别所述报文是否超过所属应用的允许连接总数,是则执行步骤S4-6-10,否则执行S4-6-3;
S4-6-3、识别所述报文是否超出所属应用的新建连接速率,是则执行步骤S4-6-10,否则执行S4-6-4;
S4-6-4、识别所述报文是否超出所属应用的连接带宽限制,是则执行步骤S4-6-10,否则执行步骤S4-6-5;
S4-6-5、为所述报文分配共享优先级和业务接口管道标识;
S4-6-6、识别当前报文速率是否超出当前应用的承诺速率,是则执行步骤S4-6-7,否则执行步骤S4-6-8;
S4-6-7、识别当前报文速率是否超出当前应用的峰值速率,是则执行步骤S4-6-10,否则执行步骤S4-6-9;
S4-6-8、将所述报文标记为第一报文,本步骤结束,向下执行后续步骤S2-7;
S4-6-9、将所述报文标记为第二报文,本步骤结束,向下执行后续步骤S2-7;
S4-6-10、丢弃该报文,产生带宽管理日志,结束。
此外,第二允许带宽可以定义丰富的带宽参数,比如还可以包括:允许并发的会话总数、每个会话的上行平均带宽和下行会话带宽等。其具体控制过程与上述内容类似,在此不再赘述。
在上述实施例中设置了第二允许带宽时,请参考图8,实施例2中的步骤S2-7包括:
S4-7-1、根据所述报文携带的业务接口管道标识,确定相应的接口管道;
S4-7-2、识别报文携带的报文标记,对于第一报文执行步骤S4-7-3,对于第二报文执行步骤S4-7-4;
S4-7-3、将该报文发送到相应接口管道的直接发送队列,本步骤S2-7结束;
S4-7-4、根据该报文携带的共享优先级确定相应的优先级队列;
S4-7-5、将该报文发送到相应接口管道的相应优先级队列。
实施例5:
进一步的,上述实施例1~实施例4中将报文发送到另一组接口之后,还可以包括:根据所述另一组接口的总带宽情况,从接口队列中调度报文并发送。
具体的,当接口能够发送报文时,从接口队列中调度所述报文,并调用物理发送;如果物理发送成功,则不作任何处理,如果物理发送失败,则报文重新进入队列,等待下一个发送周期。因此,本步骤可以理解为基于出接口的带宽整形,以便和网络的下一跳设备进行带宽适配。
进一步的,当报文按照步骤S4-7-1至S4-7-4的步骤发送给相应接口管道时,为了保证直接发送队列中的报文被优先发送,以及较高共享优先级的报文被优先发送,步骤2-7之后还包括:
S4-8-1、按照定时器周期轮询各个接口管道,并根据接口总带宽计算可以发送的报文数;
S4-8-2、调度各个接口管道下的直接发送队列的报文;
S4-8-3、查看是否超出计算的报文数,是则结束,否则执行步骤S4-8-4;
S4-8-4、轮询调度各个接口管道下具有较高共享优先级的优先级队列报文;
S4-8-5、查看是否超出计算的报文数,是则结束,否则执行步骤S4-8-6;
S4-8-6、轮询调度各个接口管道下具有较低共享优先级的优先级队列报文;
即,从最高一级优先级起,依次类推。这样,能够实现域内基于应用的最小带宽保证和最大可用带宽限制,以及该应用的总带宽限制。
实施例6:
上述实施例2~5详细描述了从应用角度进行带宽控制的技术方案。较佳的,是在上述实施例2~5中进一步基于域上不同用户进行带宽控制,以增加带宽管理的层次,本实施例提供了一个具体的实现方式。
请参考图10,在本实施例6包括以下步骤:
S5-1、根据物理组网结构对接口进行域划分,其中,任一域包括一组内接口和一组外接口,且每一组接口数目至少为一个;
S5-2、为接口进行接口管道划分,设置每一接口管道与一应用对应;
S5-3、分别在内接口到外接口方向和外接口到内接口方向上为每一域制定域允许带宽;
S5-4、在每一方向上,根据用户信息制定第一允许带宽;其中,不同的用户或者用户组,可以配置不同的带宽策略。一个已定义好的第一允许带宽可以应用在当前域的两个方向上,例如内接口-->外接口,或者外接口-->内接口,用于限制一个域上的属于某一用户群组的来源于不同两端接口的流量带宽。假如该域当前连接的两端分别是企业内部网a和Internet网络,则可以通过此功能,可限制用户a1的访问internet网络的流量总带宽为2Mbps,而限制用户a2的访问internet网络的流量总带宽为4Mbps。
S5-5、在每一方向上,根据应用信息制定第二允许带宽,所述第二允许带宽与相应应用的接口管道适配;
S5-6、当从一接口接收到报文时,识别所属域当前方向上的使用带宽是否超出域允许带宽,是则丢弃所述报文,否则执行步骤S5-7;
S5-7、识别当前方向上的所属用户使用带宽是否超出第一允许带宽,是则丢弃所述报文,否则执行步骤S5-8;
在本步骤中,可以通过提取报文的IP信息查找所属的用户,从而防止用户级别的带宽滥用和误用。
S5-8、识别当前方向上所属应用使用带宽是否超出第二允许带宽,是则丢弃所述报文,否则执行步骤S5-9;
S5-9、将通过带宽控制的报文发送到所属域的另一组接口的相应接口管道中;
S5-10、根据所述另一组接口的总带宽情况,从接口队列中调度报文并发送。
需要指出,上述步骤5-4和步骤5-5,步骤5-7和步骤5-8描述了一个较佳的时序关系,即先进行用户级别带宽控制,再进行应用级别的带宽控制。但需要指出,步骤5-4和步骤5-5以及步骤5-7和步骤5-8之间的时序关系并不绝对,也可以先进行应用级别的带宽控制(即先执行步骤5-6),也就是在一个域内,为指定应用,继续细分用户。但由于用户的数量一般较多,针对应用进行用户限定实现难度较大,因此,较佳的技术方案如本实施例6所示,为针对指定用户或者用户组的流量,继续细分应用。
可以看出,通过本实施例6提供的方法,在域内进一步实现了用户级别的带宽控制;因此对于任一报文而言,依次通过了域级带宽控制-->用户级别的带宽控制-->应用级别的带宽控制,从而实现了细粒度、多层次且多维度的带宽控制功能。下面通过一个具体实施例7加以进一步描述。
实施例7:
请参见图11,为本实施例的流程示意图。
假设我们已经创建了一个域1,并且为这个域分配了两端的接口,E0/1为内接口,E0/4为外接口;其中,箭头线表示这个域1上的报文流,一个报文在经过该域时的基本处理步骤如下:
1)报文接入:报文从内接口E0/1进入路由交换设备,根据该接口确定报文所属的域为域1;
2)基于域的带宽管理:根据域上配置的域允许带宽,决定当前报文是否能够通过该域;如果带宽不足,则直接丢弃该报文,如果带宽足够,报文被继续向下处理;
3)基于域上不同用户的带宽管理:在所属域1上基于IP信息查找所属的用户组,并根据用户组的不同,决定当前报文是否能够通过;如果带宽不足,则直接丢弃该报文,如果带宽足够,报文被继续向下处理;
4)基于应用的带宽管理:根据所属的应用,例如VoIP应用、网页浏览器(Web Browsing)应用,查找该应用的承诺速率、峰值速率、共享优先级、业务接口管道标识等带宽参数。承诺速率和峰值速率用于判断报文颜色以及是否应该丢弃:如果当前报文速率<承诺速率,则报文被标记绿色;如果承诺速率<当前报文速率<峰值速率,则报文标记黄色;如果当前报文速率>峰值速率,则报文标记为丢弃。共享优先级共有10个等级,数值越大,级别越高,表示该报文在所属的业务接口管道中可以得到更多的带宽保证。业务接口管道标识用于在出接口上将报文送入合适的业务队列,例如VoIP业务的队列;
5)报文被送到出接口:根据E0/1<->E0/4的转发关系,报文被送到出接口E0/4;
6)基于应用的总带宽管理:根据报文携带的业务接口管道标识、共享优先级和报文颜色(黄色或绿色)进入对应业务的物理队列。每个接口管道下都有两类队列:优先级队列和直接发送队列,其中优先级队列用于存储与发送黄色报文,而直接发送队列用于存储与转发绿色报文。优先级队列根据共享优先级的10个等级,划分成10个不同的队列,黄色报文按照共享优先级进入当前接口管道的对应优先级队列;绿色报文将进入当前接口管道下的直接发送队列。
7)基于出接口的带宽整形:当按照定时器周期轮循到各个接口管道时,根据出接口总带宽计算各个接口管道可以发送的报文数,并优先调度各个接口管道下的直接发送队列;如果该队列发送完毕,且仍然有剩余令牌可用,则继续轮循调度10个优先级队列中的报文,并按照共享优先级计算各个队列能够发送的报文数。报文一旦从队列中被调度出来,就调用接口发送,如果接口总带宽足够,则直接调用物理发送,否则返回发送失败。如果物理发送成功,不作任何处理;如果物理发送失败,则报文重新进入队列,并等待下一个定时器周期发送。
本领域普通技术人员可以理解,实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,应用于包括多接口的路由交换设备;该程序在执行时,包括如下步骤:
根据物理组网结构对接口进行域划分,其中,任一域包括一组内接口和一组外接口,且每一组接口数目至少为一个;
为每一域制定域带宽策略;
当从一接口接收到报文时,根据所属域的域带宽策略进行带宽控制,并将通过带宽控制的报文发送到所属域的另一组接口。
所述的存储介质包括:ROM/RAM、磁碟或者光盘等。
相应的,本发明提供了带宽控制装置,下面通过实施例8~实施例11加以具体描述。
实施例8:
本实施例所提供的带宽控制装置应用于包括多接口100的路由交换设备(如路由器、网关设备等)中,请结合图12,包括:
域划分保存单元200,用于保存根据物理组网结构对接口100进行域划分的结果,其中,任一域包括一组内接口和一组外接口,且每一组接口数目至少为一个;
域带宽策略保存单元300,用于保存每一域的域带宽策略;
带宽控制单元400,用于分别与域划分保存单元200和域带宽策略保存单元300连接,用于对接口100接收到的报文,根据所属域的域带宽策略进行带宽控制,并将通过带宽控制的报文发送到与所述接口相应的另一组接口。
可以看出,本实施例通过划分接口域,充分考虑到了接口硬件限制因素,从而保证了接口硬件对会话的支持能力;同时,通过对域带宽策略的制定,对逻辑管理因素加以考量,能够进一步保证会话个体带宽的稳定性。
较佳的,本装置还可以包括报文发送单元500,用于根据接口100的总带宽情况,从接口队列中调度所述报文并发送报文,从而实现接口带宽整形。
综上所述,本装置能够综合考虑接口硬件限制因素和逻辑管理因素,进而实现多层次、细粒度的接口带宽控制,如实施例9描述了结合了域级控制和应用级控制的带宽控制装置,实施例10进一步描述了结合了域级控制、应用级控制和用户级控制的带宽控制装置。
实施例9:
请结合图13,在实施例7的基础上,进一步包括:
任一接口100包括多个接口管道101,每一接口管道101与一应用对应,为所属域中对应应用的传输路径。
域带宽策略保存单元300包括域带宽保存模块301,用于保存在内接口到外接口方向和外接口到内接口方向上每一域的域允许带宽;还包括第二带宽保存模块302,用于保存在每一方向上基于应用信息制定的第二允许带宽,所述第二允许带宽与相应应用的接口管道101适配;
带宽控制单元400包括域带宽识别模块401,与域带宽保存模块301连接,用于在识别所属域当前方向上的使用带宽未超出域允许带宽的情况下将报文发送到所属域的另一组接口,否则丢弃报文;还包括第二带宽识别模块402,与第二带宽保存模块302连接,用于接收域带宽识别模块401输出的报文,并在识别当前方向上所属应用使用带宽未超出第二允许带宽的情况下,将报文发送到所属域的另一组接口,否则丢弃报文。
可以看出,通过域带宽识别模块401具体进行了域级别的带宽控制,使域内的总带宽不至于超出域接口的总能力;通过第二带宽识别模块402实现了基于应用级别的带宽控制,使域内为各个应用提供最小的带宽保证和最大带宽限制;从而,实现了基于硬件层面和逻辑层面的多层次带宽控制。
实施例10:
在实施例8或者实施理9的基础上,请结合图14,还包括:
域带宽策略保存单元300还包括第一带宽保存模块303,用于保存在每一方向上基于用户信息制定的第一允许带宽;
则带宽控制单元400还包括与第一带宽保存模块303连接的第一带宽识别模块403,用于接收所述域带宽识别模块401输出的报文,在本实施例中,报文先通过第一带宽识别模块403再进入第二带宽识别模块402;以及,第二带宽识别模块402在识别当前方向上所属用户的应用带宽未超出第二允许带宽的情况下,将所述报文发送到所属域的另一组接口;否则丢弃所述报文。
可以看出,本实施例通过第一带宽识别模块403进一步进行了用户级别的带宽控制,从而,实现了多层次、多维度的带宽控制。
实施例11:
为了进一步实现细粒度的带宽控制,请结合图15,本实施例进一步包括:
第二带宽识别模块402包括识别处理模块4021、共享优先级标记模块4022和业务接口管道标记模块4023;通过识别处理模块4021识别新建连接,对于新建连接未超过所属应用的允许连接总数、未超出所属应用的新建连接速率和/或未超出所属应用的连接带宽限制的报文,以及对于非新建连接未超出所属应用的连接带宽限制的报文,调用共享优先级标记模块4022和业务接口管道标记模块4023,为所述报文分配共享优先级和业务接口管道标识;将其他报文丢弃。
第二带宽识别模块402还包括报文标记模块4024,受识别处理模块4021的调用,用于将当前报文速率小于承诺速率的报文标记为第一报文,将当前报文速率小于峰值速率但大于承诺速率的报文标记为第二报文,将当前报文速率大于峰值速率报文丢弃。
带宽控制单元400还包括接口管道分配模块404,与所述第二带宽识别模块402连接,用于根据所述报文携带的业务接口管道标识,确定相应的接口管道;对于第一报文,将其发送到相应接口管道的直接发送队列;对于第二报文,根据其携带的共享优先级确定相应的优先级队列后,将其发送到相应接口管道的相应优先级队列。
报文发送单元500包括报文调度模块501和报文发送模块502;
该报文调度模块501用于周期轮询各个接口管道,并根据接口总带宽计算可以发送的报文数;还用于调度各个接口管道下的直接发送队列的报文;在未超出所述报文数的情况下,轮询调度各个接口管道下具有较高共享优先级的优先级队列报文;在未超出所述报文数的情况下,轮询调度各个接口管道下具有较低共享优先级的优先级队列报文,从而保证直接发送队列中的报文能够优先发送,以及保证共享优先级较高的报文能够被优先发送。
报文发送模块502用于对从接口队列中调度的报文调用物理发送,并将发送失败的报文重新送回接口队列,以保证报文不会丢失。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。