CN100450103C - 流量整形的方法和装置 - Google Patents
流量整形的方法和装置 Download PDFInfo
- Publication number
- CN100450103C CN100450103C CNB2006101530513A CN200610153051A CN100450103C CN 100450103 C CN100450103 C CN 100450103C CN B2006101530513 A CNB2006101530513 A CN B2006101530513A CN 200610153051 A CN200610153051 A CN 200610153051A CN 100450103 C CN100450103 C CN 100450103C
- Authority
- CN
- China
- Prior art keywords
- user
- flywheel
- repeating query
- group
- flywheel group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种流量整形的方法和装置,属于通讯技术领域。为了解决现有技术中漏桶算法控制用户粒度不够精细、双速率配置下无法消除用户之间影响的问题,本发明提供了一种流量整形的方法,包括配置用户飞轮组和用户组飞轮组的步骤,采用SHVC算法轮循飞轮组的步骤,以及输出用户的流队列并刷新用户的QOS信息表的步骤;本发明还提供了一种流量整形的装置,包括配置模块、轮循模块和输出模块;采用本发明所述的技术方案,不仅细化了用户的粒度,还增加了用户组的控制,可以消除恶意用户组长时间大量占用带宽而给其他用户组带来的不良影响。
Description
技术领域
本发明涉及通讯技术领域,特别涉及一种流量整形的方法和装置。
背景技术
一个有效的网络提供的不只是端点间的连接,在添加应用和调整网络工作优先化时,网络必须具有足够的智能,以分辨出任务关键的通信和延迟敏感的通信,并能为它们设定优先顺序。网络的QOS(Quality Of Service,服务质量)是指网络提供更高优先服务的一种能力,即基于重要性和时间性的规则上传递数据的能力。网络必须满足QOS要求才能确保数据传输的适当服务级别。对于QOS的应用,主要有单速率和双速率两种。单速率是指对某用户只配置一个速率,该用户大于所配置速率的部分将得不到调度;双速率是指对某用户配置两个速率,即CIR(Committed Information Rate,承诺信息速率)和PIR(Peak Information Rate,峰值信息速率),其中CIR为承诺的速率,即无论当前网络是否拥塞,必须要保证的那部分速率,PIR为最高速率,即如果当前网络不拥塞时允许被调度的最高速率。
QOS的功能主要是为用户提供专用带宽、减少报文的丢失率、管理和避免网络拥塞、TS(Traffic Shaping,流量整形)以及设置报文的优先级。TS的典型作用是限制流出某一网络的某一连接的流量与突发,使该类报文以比较均匀的速度向外发送。GTS(General TrafficShapping,通用流量整形)可以对不规则或不符合预定流量特性的流量进行整形,以利于网络上下游之间的带宽匹配。
流量整形的现有技术之一是漏桶算法,它将报文信息进行分类并缓存在漏桶内,由调度指令控制报文以恒定的速率从漏桶流出,报文到达漏桶时如果漏桶已满,则将给报文丢弃,如果漏桶未满则将报文加到队尾。
漏桶算法的缺点是:
1、控制用户的粒度不够精细;
2、双速率配置下无法消除用户之间的影响,如果有恶意用户一直占用PIR带宽,会严重影响其他用户的PIR带宽。
发明内容
为了解决现有技术中漏桶算法控制用户粒度不够精细、双速率配置下无法消除用户之间影响的问题,本发明提供了一种流量整形的方法,具体包括以下步骤:
步骤A:设置用户飞轮组和用户组飞轮组,将用户ID分配到所述用户飞轮组中,将用户组ID分配到所述用户组飞轮组中,为每个用户组设置漏桶,设置用户流队列的优先级,并初始化所有用户的QOS信息表;
步骤B:采用SHVC(Shaping virtual Clock,整形虚拟时钟)算法轮循所述用户飞轮组内的每个飞轮(Tunnel),并给轮循出用户ID的用户分配权限值,将所述用户ID和权限值存放在所述用户所属的用户组的漏桶中;
采用SHVC算法轮循所述用户组飞轮组内的每个飞轮,并将轮循出的用户组ID发送给相应的漏桶,所述漏桶收到所述用户组ID后输出用户ID和权限值;
步骤C:根据所述漏桶输出的用户ID找到所述用户的QOS信息表,用所述漏桶输出的权限值刷新所述QOS信息表,并在所述权限值内按照优先级输出所述用户的所有流队列,并将实际输出的流量反馈给所述用户的QOS信息表进行重新刷新。
所述步骤A中的用户飞轮组包括用户第一飞轮组和用户第二飞轮组,所述步骤A还包括:
设置所述用户第一飞轮组内每个飞轮的轮循速率,使所述用户第一飞轮组内的所有飞轮的轮循速率之和为承诺的用户最低速率CIR;
设置所述用户第二飞轮组内每个飞轮的轮循速率,使所述用户第二飞轮组内的所有飞轮的轮循速率之和为允许用户超过CIR速率之外的额外速率;
设置所述用户组飞轮组内每个飞轮的轮循速率,使所述用户组飞轮组内的所有飞轮的轮循速率之和为用户组的峰值速率PIR;为每个用户组建立一个漏桶。
所述步骤B具体包括:
采用SHVC算法以所述用户第一飞轮组内每个飞轮设置的轮循速率轮循相应的飞轮,并给轮循出用户ID的用户分配权限值,采用SHVC算法以所述用户第二飞轮组内每个飞轮设置的轮循速率轮循相应的飞轮,并给轮循出用户ID的用户分配权限值,按优先输出从用户第一飞轮组轮循出的用户ID的原则仲裁后,将所述用户ID和权限值存放在所述用户所属的用户组的漏桶中;
采用SHVC算法以所述用户组飞轮组内每个飞轮设置的轮循速率轮循相应的飞轮,并将轮循出的用户组ID发送给相应的漏桶,所述漏桶收到所述用户组ID后输出用户ID和权限值。
所述步骤A中的用户飞轮组包括用户第一飞轮组和用户第二飞轮组,所述用户组飞轮组包括用户组第一飞轮组和用户组第二飞轮组,所述步骤A还包括:
设置所述用户第一飞轮组内每个飞轮的轮循速率,使所述用户第一飞轮组内的所有飞轮的轮循速率之和为承诺的用户最低速率CIR1;
设置所述用户第二飞轮组内每个飞轮的轮循速率,使所述用户第二飞轮组内的所有飞轮的轮循速率之和为允许用户超过CIR1速率之外的额外速率;
设置所述用户组第一飞轮组内每个飞轮的轮循速率,使所述用户组第一飞轮组内的所有飞轮的轮循速率之和为承诺的用户组最低速率CIR2;
设置所述用户组第二飞轮组内每个飞轮的轮循速率,使所述用户组第二飞轮组内的所有飞轮的轮循速率之和为允许用户组超过CIR2速率之外的额外速率;
为每个用户组建立两个漏桶,第一漏桶和第二漏桶。
所述步骤B具体包括:
采用SHVC算法以所述用户第一飞轮组内每个飞轮设置的轮循速率轮循相应的飞轮,并给轮循出用户ID的用户分配权限值,将所述用户ID和权限值存放在所述用户所属的用户组的第一漏桶中;
采用SHVC算法以所述用户第二飞轮组内每个飞轮设置的轮循速率轮循相应的飞轮,并给轮循出用户ID的用户分配权限值,将所述用户ID和权限值存放在所述用户所属的用户组的第二漏桶中;
采用SHVC算法以所述用户组第一飞轮组内每个飞轮设置的轮循速率轮循相应的飞轮,并将轮循出的用户组ID发送给相应的第一漏桶,所述第一漏桶收到所述用户组ID后输出用户ID和权限值;
采用SHVC算法以所述用户组第二飞轮组内每个飞轮设置的轮循速率轮循相应的飞轮,并将轮循出的用户组ID发送给相应的第二漏桶,所述第二漏桶收到所述用户组ID后输出用户ID和权限值;
按照优先输出第一漏桶内的用户ID和权限值的原则仲裁后,从所述漏桶输出用户ID和权限值。
所述步骤A中初始化所有用户的QOS信息表的步骤具体为在每个用户的QOS信息表中设置用户输出权限最大值和用户当前输出权限的初始值;
所述步骤C中用所述漏桶输出的权限值刷新所述QOS信息表的步骤具体为:
在所述QOS信息表中的用户当前输出权限上累加所述漏桶输出的权限值,如果累加后的结果超出所述QOS信息表中的用户输出权限最大值,则将所述用户当前输出权限设为所述用户输出权限最大值。
所述步骤C中对所述用户的QOS信息表进行重新刷新的步骤具体为在所述QOS信息表中的用户当前输出权限上减去实际输出流量的字节数。
所述步骤C中按照优先级输出所述用户的所有流队列的步骤具体为:按优先级调度机制、加权公平队列调度机制或定制队列调度机制输出所述用户的所有流队列。
本发明还提供了一种流量整形的装置,具体包括:
配置模块,用于设置用户飞轮组和用户组飞轮组并将用户ID分配到所述用户飞轮组中以及将用户组ID分配到所述用户组飞轮组中,还用于设置用户流队列的优先级和初始化所有用户的QOS信息表以及为每个用户组设置漏桶;
轮循模块,用于采用SHVC算法轮循所述配置模块设置的用户飞轮组内的所有飞轮,还用于给轮循出用户ID的用户分配权限值并将所述用户ID和权限值放入所述用户所属的用户组的漏桶中,还用于采用SHVC算法轮循所述配置模块设置的用户组飞轮组内的所有飞轮以及根据轮循出的用户组ID从相应的漏桶中输出用户ID和权限值;
输出模块,用于根据所述漏桶输出的用户ID和权限值刷新所述用户的QOS信息表,还用于按照优先级输出所述用户的所有流队列并反馈实际输出流量给所述用户的QOS信息表。
所述配置模块具体为三飞轮组配置模块,用于设置用户第一飞轮组、用户第二飞轮组和用户组飞轮组,还用于将用户ID分配到所述用户第一飞轮组和第二飞轮组中以及将用户组ID分配到所述用户组飞轮组中,还用于设置所述用户第一飞轮组内所有飞轮的轮循速率之和为承诺的用户最低速率CIR,还用于设置所述用户第二飞轮组内所有飞轮的轮循速率之和为允许用户超出CIR之外的额外速率,还用于设置所述用户组飞轮组内所有飞轮的轮循速率之和为用户组的峰值速率PIR,还用于设置用户流队列的优先级和初始化所有用户的QOS信息表以及为每个用户组设置一个漏桶。
所述轮循模块具体为三飞轮组轮循模块,用于根据所述三飞轮组配置模块配置的速率采用SHVC算法轮循所述用户第一飞轮组和第二飞轮组内的所有飞轮,还用于给从所述用户第一飞轮组轮循出用户ID的用户分配权限值,还用于给从所述用户第二飞轮组轮循出用户ID的用户分配权限值,并按优先输出从用户第一飞轮组轮循出的用户ID的原则仲裁后将所述用户ID和权限值放入所述用户所属的用户组的漏桶中,还用于根据所述三飞轮组配置模块配置的速率采用SHVC算法轮循所述用户组飞轮组内的所有飞轮以及根据轮循出的用户组ID从相应的漏桶中输出用户ID和权限值。
所述配置模块还可以为四飞轮组配置模块,用于设置用户第一飞轮组、用户第二飞轮组、用户组第一飞轮组和用户组第二飞轮组,还用于将用户ID分配到所述用户第一飞轮组和第二飞轮组中以及将用户组ID分配到所述用户组第一飞轮组和第二飞轮组中,还用于设置所述用户第一飞轮组内所有飞轮的轮循速率之和为承诺的用户最低速率CIR1,还用于设置所述用户第二飞轮组内所有飞轮的轮循速率之和为允许用户超出CIR1之外的额外速率,还用于设置所述用户组第一飞轮组内所有飞轮的轮循速率之和为承诺的用户组最低速率CIR2,还用于设置所述用户组第二飞轮组内所有飞轮的轮循速率之和为允许用户组超出CIR2之外的额外速率,还用于设置用户流队列的优先级和初始化所有用户的QOS信息表以及为每个用户组设置第一漏桶和第二漏桶。
相应地所述轮循模块还可以为四飞轮组轮循模块,用于根据所述四飞轮组配置模块配置的速率采用SHVC算法轮循所述用户第一飞轮组内的所有飞轮并给轮循出用户ID的用户分配权限值,还用于将所述用户ID和权限值放入所述用户所属的用户组的第一漏桶中;还用于根据所述四飞轮组配置模块配置的速率采用SHVC算法轮循所述用户第二飞轮组内的所有飞轮并给轮循出用户ID的用户分配权限值,还用于将所述用户ID和权限值放入所述用户所属的用户组的第二漏桶中;还用于根据所述四飞轮组配置模块配置的速率采用SHVC算法轮循所述用户组第一飞轮组内的所有飞轮以及根据轮循出的用户组ID从相应的第一漏桶中输出用户ID和权限值,还用于根据所述四飞轮组配置模块配置的速率采用SHVC算法轮循所述用户组第二飞轮组内的所有飞轮以及根据轮循出的用户组ID从相应的第二漏桶中输出用户ID和权限值,还用于按照优先输出第一漏桶内的用户ID和权限值的原则仲裁后将所述漏桶中的用户ID和权限值输出。
本发明的有益效果是:
1、采用SHVC算法分用户和用户组两个级别进行调度,细化了用户的粒度;
2、采用用户组飞轮组控制漏桶的输出流量,在输出流量时能够区分出最低流量和额外流量,不仅增加了用户组的控制,还可以消除恶意用户组长时间大量占用带宽而给其他用户组带来的不良影响。
附图说明
图1是现有技术SHVC调度算法工作原理图;
图2是本发明实施例一中流量整形的方法原理图;
图3是本发明实施例一中流量整形的方法流程图;
图4是本发明实施例二中流量整形的方法原理图;
图5是本发明实施例二中流量整形的方法流程图;
图6是本发明一种流量整形的装置结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
SHVC调度算法,它是一种抽象的流量模型,参见图1,其工作原理如下:在SHVC模块中定义一个飞轮,用于存储多个用户ID如N个,并为该飞轮设置一个虚拟时钟,虚拟时钟以特定的速率或者说固定的时间间隔ΔT对飞轮中的每个用户ID进行轮循,当轮循到某个用户ID时,只有满足规定条件的情况下,例如系统时间计数大于飞轮虚拟时钟的时间计数时,才将该用户ID输出,输出ID的用户就具有了一定流量的权限。当用户较多时可以定义多个飞轮,相应地每个飞轮都有一个固定的速率,飞轮之间可以任意组合以完成不同用户的不同流量需求。
实施例一
参见图2和图3,本发明提供了一种流量整形的方法,采用用户双飞轮组,用户组单飞轮组的SHVC调度算法结合漏桶算法来实现流量整形,具体包括以下步骤:
步骤101:首先设置用户第一飞轮组、用户第二飞轮组和用户组飞轮,每个飞轮组都包括16个飞轮;设置用户组的数目为128个,并为每个用户组建立一个漏桶,128个用户组则建立128个漏桶;设置用户第一飞轮组和第二飞轮组内的最多用户总数均为1024个,即用户第一飞轮组中只支持1K个用户,用户第二飞轮组中也只支持1K个用户;
设置用户第一飞轮组内每个飞轮的轮循速率使用户第一飞轮组内的16个飞轮的轮循速率之和为承诺的用户最低速率即CIR1,即满足用户的最低要求;
设置用户第二飞轮组内每个飞轮的轮循速率使用户第二飞轮组内的16个飞轮的轮循速率之和为允许用户超过CIR1部分的额外的速率,此速率不做保证,即有可能达到也有可能达不到;
设置用户组飞轮组内每个飞轮的轮循速率使用户组飞轮组内的16个飞轮的轮循速率之和为用户组的峰值速率PIR;
将所有用户ID分配到用户第一飞轮组的16个飞轮和第二飞轮组的16个飞轮中,将128个用户组ID分配到用户组飞轮组的16个飞轮中;实际环境中一个用户ID可以同时分配到用户第一飞轮组和第二飞轮组中,在同一个飞轮组内也可以将一个用户ID同时分配到不同的飞轮中;但是至少应分配到用户第一飞轮组中即保证有最低的速率;如果只分配到用户第二飞轮组中也是可以的,但是用户的速率就无法保证,所以很少出现这种情况;例如将一个用户ID同时分配到用户第一飞轮组中的第一个飞轮T1和第三个飞轮T3以及用户第二飞轮组中的第5个飞轮T5中,假设T1代表1Gbps的流量,T3代表500Mbps的流量,T5代表250Mbps的流量,则表示对用户1最大情况下配置1.75Gbps的流量,最低配置1.5Gbps的流量;
步骤102:设置每个用户的流队列都有4个不同的优先级,设置优先级的目的是为了区分用户的不同格式的流的不同需求,如将视频点播的带宽需求的优先级设为1,将网页浏览的带宽需要的优先级设为4,则输出用户流量时会优先考虑输出视频点播的流量而后输出网页浏览的流量;
步骤103:配置每个用户QOS信息表中的QOS参数:用户输出权限最大值和用户当前输出权限,初始时设置用户当前输出权限值为0,用户输出权限最大值一般根据实际需要来设,如可以设为500M;
上述步骤101至103可以不分先后顺序执行,并且各种参数根据实际需要也可以设置成其它值,如将用户组设为256个,将用户的优先级设为8个等等,但是分配到每个飞轮组的用户ID的总数目不能超过事先设置的最大值1024个;
步骤104:采用SHVC算法进行第一级调度,此级调度是用户队列调度,即对用户第一飞轮组和用户第二飞轮组进行调度,用户第一飞轮组内的每个飞轮的虚拟时钟按预先设置的轮循速率轮循各自的飞轮,符合条件时输出飞轮内的用户ID,并给输出用户ID的用户分配一定字节数的权限值,此权限值代表用户具有权限,可以输出最低保证的流量;
用户第二飞轮组内的每个飞轮的虚拟时钟按预先设置的速率轮循各自的飞轮,符合条件时输出用户ID,并给输出用户ID的用户分配一定字节数的权限值,此权限值代表用户具有权限,可以输出额外的流量;
上述两个权限值具体的字节数根据实际需要来定,太大容易造成流量突发,太小则会增加存储器的访问带宽和实现的压力,一般定义成相等的值如256个字节;
用户第一飞轮组和第二飞轮组输出的用户ID通过仲裁模块来决定输出的先后顺序,一般原则是优先考虑用户第一飞轮组,其次考虑用户第二飞轮组,即首先要保证用户的最低速率其次才给用户提供额外的速率;输出后首先放入FIFO中缓存,得到调度指令后输出到该用户所属的用户组的漏桶中;
步骤105:采用SHVC算法进行第二级别调度,此级调度是用户组队列调度,即对用户组飞轮组进行调度,用户组飞轮组内的每个飞轮的虚拟时钟按预先设置的速率轮循各自的飞轮,符合条件时输出用户组ID给相应的漏桶,此时就相当于向该用户组的漏桶发送一个读指令,读取该用户组的漏桶中的用户ID和权限值,该漏桶就会输出漏桶内的用户ID和权限值,输出后首先放入FIFO中缓存,得到调度指令后将其输出;
上述两个步骤中的第一级调度和第二级调度都是虚拟调度;
步骤106:采用PQ(Priority Queue,优先级队列)调度机制进行第三级调度,此级调度为实际调度,即对输出流量的用户的QOS信息表进行刷新的调度,首先刷新输出用户ID的用户的QOS信息表,在用户当前输出权限上累加漏桶输出的权限值,如果累加后超出用户输出权限最大值,则将用户当前输出权限取为用户输出权限最大值;
在用户当前输出权限值范围内按照优先级的顺序输出该用户的所有流队列,实际输出的字节数只能小于或等于当前输出权限值,然后给QOS信息表一个反馈信息,反馈信息中包含了用户ID和实际输出流量的字节数,因此QOS信息表就会根据反馈信息在用户当前输出权限上减去实际输出流量的字节数,从而重新刷新了QOS信息表;
此步骤中的PQ调度机制也可以替换为WFQ(Werghted Fair Queue,加权公平队列)调度机制或CQ(Custom Queue,定制队列)机制。
实施例二
为了更精细地配置用户组流量以及在输出流量时能够区分出最低流量和额外流量,本实施例采用了用户双飞轮组,用户组双飞轮组的SHVC算法结合漏桶算法来实现流量整形,参见图4,用户组有第一飞轮组和第二飞轮组,相应地漏桶也有第一漏桶和第二漏桶,从用户第一飞轮组中输出的用户ID就放在第一漏桶中,从用户第二飞轮组中输出的用户ID就放在第二漏桶中,用户组第一飞轮组控制第一漏桶的输出流量,用户组第二飞轮组控制第二漏桶的输出流量,参见图5,本发明还提供了另外一种流量整形的方法,具体包括以下步骤;
步骤201:首先设置用户第一飞轮组、用户第二飞轮组和用户组第一飞轮组和用户组第二飞轮组,每个飞轮组内都有16个飞轮,设置用户组的数目为128个,为每个用户组都建立两个漏桶,第一漏桶和第二漏桶,128个用户组则建立128个第一漏桶和128个第二漏桶;设置用户第一飞轮组和第二飞轮组内的最多用户总数均为1024个,即用户第一飞轮组中只支持1K个用户,用户第二飞轮组中也只支持1K个用户;
设置用户第一飞轮组内每个飞轮的轮循速率使用户第一飞轮组内的16个飞轮的轮循速率之和为承诺的用户最低速率即CIR1,即满足用户的最低要求;
设置用户第二飞轮组内每个飞轮的轮循速率使用户第二飞轮组内的16个飞轮的轮循速率之和为允许用户超过CIR1部分的额外的速率,此速率不做保证,即有可能达到也有可能达不到;
设置用户组第一飞轮组内每个飞轮的轮循速率使用户组第一飞轮组内的16个飞轮的轮循速率之和为承诺的用户组的最低速率CIR2;
设置用户组第二飞轮组内每个飞轮的轮循速率使用户组第二飞轮组内的16个飞轮的轮循速率之和为允许用户组超过CIR2部分的额外的速率,此速率不做保证,即有可能达到也有可能达不到;
将所有用户ID分配到用户第一飞轮组的16个飞轮和用户第二飞轮组的16个飞轮中,将128个用户组ID分配到用户组第一飞轮组的16个飞轮和用户组第二飞轮组的16个飞轮中;
步骤202:设置每个用户的流队列都有4个不同的优先级;
步骤203:配置每个用户QOS信息表中的QOS参数:用户输出权限最大值和用户当前输出权限值;
步骤204:采用SHVC算法进行第一级调度,此级调度是用户队列调度,即对用户第一飞轮组和第二飞轮组进行调度,用户第一飞轮组内的每个飞轮的虚拟时钟按预先设置的轮循速率轮循各自的飞轮,符合条件时输出用户ID,并给输出用户ID的用户分配一定字节数的权限值,然后将输出的用户ID和分配的权限值放入FIFO中缓存,得到调度指令后再放入该用户所属的用户组的第一漏桶中;
用户第二飞轮组内的每个飞轮的虚拟时钟按预先设置的轮循速率轮循各自的飞轮,符合条件时输出用户ID,并给输出用户ID的用户分配一定字节数的权限值,然后将输出的用户ID和分配的权限值放入FIFO中缓存,得到调度指令后再放入该用户所属的用户组的第二漏桶中;
步骤205:采用SHVC算法进行第二级别调度,此级调度是用户组队列调度,即对用户组第一飞轮组和用户组第二飞轮组进行调度,用户组第一飞轮组内的每个飞轮的虚拟时钟按预先设置的轮循速率轮循各自的飞轮,符合条件时输出用户组ID给该用户组的第一漏桶,该漏桶就会输出用户ID及权限值;
用户组第二飞轮组内的每个飞轮的虚拟时钟按预先设置的轮循速率轮循各自的飞轮,符合条件时输出用户组ID给该用户组的第二漏桶,该漏桶就会输出用户ID及权限值;
仲裁模块按照优先考虑第一漏桶,其次考虑第二漏桶的原则来决定两个漏桶输出的先后顺序,输出的用户ID和权限值首先放入FIFO中缓存,得到调度指令后将其输出;
上述两个步骤中的第一级调度和第二级调度都是虚拟调度;
步骤206:采用PQ调度机制进行第三级调度,此级调度为实际调度,即对输出流量的用户的QOS信息表进行刷新的调度,首先刷新输出用户ID的用户的QOS信息表,在用户当前输出权限上累加漏桶输出的权限值,如果累加后超出用户输出权限最大值,则将用户当前输出权限取为用户输出权限最大值;
在用户当前输出权限值范围内按照优先级的顺序输出该用户的所有流队列,实际输出的字节数只能小于或等于当前输出权限值,然后给QOS信息表一个反馈信息,反馈信息中包含了用户ID和实际输出流量的字节数,因此QOS信息表就会根据反馈信息在用户当前输出权限上减去实际输出流量的字节数,从而重新刷新了QOS信息表;
此步骤中的PQ调度机制也可以替换为WFQ(Werghted Fair Queue,加权公平队列)调度机制或CQ(Custom Queue,定制队列)机制。
实施例三
参见图6,本发明还提供了一种流量整形的装置,具体包括:
(1)配置模块,用于设置用户飞轮组和用户组飞轮组并将用户ID分配到用户飞轮组中以及将用户组ID分配到用户组飞轮组中,还用于设置用户流队列的优先级和初始化所有用户的QOS信息表以及为每个用户组设置漏桶;
(2)轮循模块,用于采用SHVC算法轮循配置模块设置的用户飞轮组内的所有飞轮,还用于给轮循出用户ID的用户分配权限值并将用户ID和权限值放入用户所属的用户组的漏桶中,还用于采用SHVC算法轮循配置模块设置的用户组飞轮组内的所有飞轮以及根据轮循出的用户组ID从相应的漏桶中输出用户ID和权限值;
(3)输出模块,用于根据漏桶输出的用户ID和权限值刷新用户的QOS信息表,还用于按照优先级输出用户的所有流队列并反馈实际输出流量给用户的QOS信息表。
为了细化控制用户的粒度,可以分用户和用户组两个级别进行调度,即采用两个用户飞轮组和一个用户组飞轮组来配置:
配置模块具体为三飞轮组配置模块,用于设置用户第一飞轮组、用户第二飞轮组和用户组飞轮组,还用于将用户ID分配到用户第一飞轮组和第二飞轮组中以及将用户组ID分配到用户组飞轮组中,还用于设置用户第一飞轮组内所有飞轮的轮循速率之和为承诺的用户最低速率CIR,还用于设置用户第二飞轮组内所有飞轮的轮循速率之和为允许用户超出CIR之外的额外速率,还用于设置用户组飞轮组内所有飞轮的轮循速率之和为用户组的峰值速率PIR,还用于设置用户流队列的优先级和初始化所有用户的QOS信息表以及为每个用户组设置一个漏桶。
相应地轮循模块具体为三飞轮组轮循模块,用于根据三飞轮组配置模块配置的速率采用SHVC算法轮循用户第一飞轮组和第二飞轮组内的所有飞轮,还用于给从用户第一飞轮组轮循出用户ID的用户分配权限值,还用于给从用户第二飞轮组轮循出用户ID的用户分配权限值,并按优先输出从用户第一飞轮组轮循出的用户ID的原则仲裁后将用户ID和权限值放入用户所属的用户组的漏桶中,还用于根据三飞轮组配置模块配置的速率采用SHVC算法轮循用户组飞轮组内的所有飞轮以及根据轮循出的用户组ID从相应的漏桶中输出用户ID和权限值。
为了增强对用户组的控制,消除恶意用户组长时间大量占用带宽给其他用户组带来的不良影响,以及在输出流量时能够区分出最低流量和额外流量,采用两个用户组飞轮组的配置:
配置模块具体为四飞轮组配置模块,用于设置用户第一飞轮组、用户第二飞轮组、用户组第一飞轮组和用户组第二飞轮组,还用于将用户ID分配到用户第一飞轮组和第二飞轮组中以及将用户组ID分配到用户组第一飞轮组和第二飞轮组中,还用于设置用户第一飞轮组内所有飞轮的轮循速率之和为承诺的用户最低速率CIR1,还用于设置用户第二飞轮组内所有飞轮的轮循速率之和为允许用户超出CIR1之外的额外速率,还用于设置用户组第一飞轮组内所有飞轮的轮循速率之和为承诺的用户组最低速率CIR2,还用于设置用户组第二飞轮组内所有飞轮的轮循速率之和为允许用户组超出CIR2之外的额外速率,还用于设置用户流队列的优先级和初始化所有用户的QOS信息表以及为每个用户组设置第一漏桶和第二漏桶。
相应地轮循模块具体为四飞轮组轮循模块,用于根据四飞轮组配置模块配置的速率采用SHVC算法轮循用户第一飞轮组内的所有飞轮并给轮循出用户ID的用户分配权限值,还用于将用户ID和权限值放入用户所属的用户组的第一漏桶中;还用于根据四飞轮组配置模块配置的速率采用SHVC算法轮循用户第二飞轮组内的所有飞轮并给轮循出用户ID的用户分配权限值,还用于将用户ID和权限值放入用户所属的用户组的第二漏桶中;还用于根据四飞轮组配置模块配置的速率采用SHVC算法轮循用户组第一飞轮组内的所有飞轮以及根据轮循出的用户组ID从相应的第一漏桶中输出用户ID和权限值,还用于根据四飞轮组配置模块配置的速率采用SHVC算法轮循用户组第二飞轮组内的所有飞轮以及根据轮循出的用户组ID从相应的第二漏桶中输出用户ID和权限值,还用于按照优先输出第一漏桶内的用户ID和权限值的原则仲裁后将漏桶中的用户ID和权限值输出。
以上所述的实施例,只是本发明较优选的具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (12)
1.一种流量整形的方法,其特征在于,所述方法包括以下步骤:
步骤A:设置用户飞轮组和用户组飞轮组,将用户ID分配到所述用户飞轮组中,将用户组ID分配到所述用户组飞轮组中,为每个用户组设置漏桶,设置用户流队列的优先级,并初始化所有用户的QOS信息表;
步骤B:采用SHVC算法轮循所述用户飞轮组内的每个飞轮,并给轮循出用户ID的用户分配权限值,将所述用户ID和权限值存放在所述用户所属的用户组的漏桶中;
采用SHVC算法轮循所述用户组飞轮组内的每个飞轮,并将轮循出的用户组ID发送给相应的漏桶,所述漏桶收到所述用户组ID后输出用户ID和权限值;
步骤C:根据所述漏桶输出的用户ID找到所述用户的QOS信息表,用所述漏桶输出的权限值刷新所述QOS信息表,并在所述权限值内按照优先级输出所述用户的所有流队列,并将实际输出的流量反馈给所述用户的QOS信息表进行重新刷新。
2.根据权利要求1所述的流量整形的方法,其特征在于,所述步骤A中的用户飞轮组包括用户第一飞轮组和用户第二飞轮组,所述步骤A还包括:
设置所述用户第一飞轮组内每个飞轮的轮循速率,使所述用户第一飞轮组内的所有飞轮的轮循速率之和为承诺的用户最低速率CIR;
设置所述用户第二飞轮组内每个飞轮的轮循速率,使所述用户第二飞轮组内的所有飞轮的轮循速率之和为允许用户超过CIR速率之外的额外速率;
设置所述用户组飞轮组内每个飞轮的轮循速率,使所述用户组飞轮组内的所有飞轮的轮循速率之和为用户组的峰值速率PIR;为每个用户组建立一个漏桶。
3.根据权利要求2所述的流量整形的方法,其特征在于,所述步骤B具体包括:
采用SHVC算法以所述用户第一飞轮组内每个飞轮设置的轮循速率轮循相应的飞轮,并给轮循出用户ID的用户分配权限值,采用SHVC算法以所述用户第二飞轮组内每个飞轮设置的轮循速率轮循相应的飞轮,并给轮循出用户ID的用户分配权限值,按优先输出从用户第一飞轮组轮循出的用户ID的原则仲裁后,将所述用户ID和权限值存放在所述用户所属的用户组的漏桶中;
采用SHVC算法以所述用户组飞轮组内每个飞轮设置的轮循速率轮循相应的飞轮,并将轮循出的用户组ID发送给相应的漏桶,所述漏桶收到所述用户组ID后输出用户ID和权限值。
4.根据权利要求1所述的流量整形的方法,其特征在于,所述步骤A中的用户飞轮组包括用户第一飞轮组和用户第二飞轮组,所述用户组飞轮组包括用户组第一飞轮组和用户组第二飞轮组,所述步骤A还包括:
设置所述用户第一飞轮组内每个飞轮的轮循速率,使所述用户第一飞轮组内的所有飞轮的轮循速率之和为承诺的用户最低速率CIR1;
设置所述用户第二飞轮组内每个飞轮的轮循速率,使所述用户第二飞轮组内的所有飞轮的轮循速率之和为允许用户超过CIR1速率之外的额外速率;
设置所述用户组第一飞轮组内每个飞轮的轮循速率,使所述用户组第一飞轮组内的所有飞轮的轮循速率之和为承诺的用户组最低速率CIR2;
设置所述用户组第二飞轮组内每个飞轮的轮循速率,使所述用户组第二飞轮组内的所有飞轮的轮循速率之和为允许用户组超过CIR2速率之外的额外速率;
为每个用户组建立两个漏桶,第一漏桶和第二漏桶。
5.根据权利要求4所述的流量整形的方法,其特征在于,所述步骤B具体包括:
采用SHVC算法以所述用户第一飞轮组内每个飞轮设置的轮循速率轮循相应的飞轮,并给轮循出用户ID的用户分配权限值,将所述用户ID和权限值存放在所述用户所属的用户组的第一漏桶中;
采用SHVC算法以所述用户第二飞轮组内每个飞轮设置的轮循速率轮循相应的飞轮,并给轮循出用户ID的用户分配权限值,将所述用户ID和权限值存放在所述用户所属的用户组的第二漏桶中;
采用SHVC算法以所述用户组第一飞轮组内每个飞轮设置的轮循速率轮循相应的飞轮,并将轮循出的用户组ID发送给相应的第一漏桶,所述第一漏桶收到所述用户组ID后输出用户ID和权限值;
采用SHVC算法以所述用户组第二飞轮组内每个飞轮设置的轮循速率轮循相应的飞轮,并将轮循出的用户组ID发送给相应的第二漏桶,所述第二漏桶收到所述用户组ID后输出用户ID和权限值;
按照优先输出第一漏桶内的用户ID和权限值的原则仲裁后,从所述漏桶输出用户ID和权限值。
6.根据权利要求1至5中任一权利要求所述的流量整形的方法,其特征在于,所述步骤A中初始化所有用户的QOS信息表的步骤具体为在每个用户的QOS信息表中设置用户输出权限最大值和用户当前输出权限的初始值;
所述步骤C中用所述漏桶输出的权限值刷新所述QOS信息表的步骤具体为:
在所述QOS信息表中的用户当前输出权限上累加所述漏桶输出的权限值,如果累加后的结果超出所述QOS信息表中的用户输出权限最大值,则将所述用户当前输出权限设为所述用户输出权限最大值。
所述步骤C中对所述用户的QOS信息表进行重新刷新的步骤具体为在所述QOS信息表中的用户当前输出权限上减去实际输出流量的字节数。
7.根据权利要求1至5中任一权利要求所述的流量整形的方法,其特征在于,所述步骤C中按照优先级输出所述用户的所有流队列的步骤具体为:按优先级调度机制、加权公平队列调度机制或定制队列调度机制输出所述用户的所有流队列。
8.一种流量整形的装置,其特征在于,所述装置包括:
配置模块,用于设置用户飞轮组和用户组飞轮组并将用户ID分配到所述用户飞轮组中以及将用户组ID分配到所述用户组飞轮组中,还用于设置用户流队列的优先级和初始化所有用户的QOS信息表以及为每个用户组设置漏桶;
轮循模块,用于采用SHVC算法轮循所述配置模块设置的用户飞轮组内的所有飞轮,还用于给轮循出用户ID的用户分配权限值并将所述用户ID和权限值放入所述用户所属的用户组的漏桶中,还用于采用SHVC算法轮循所述配置模块设置的用户组飞轮组内的所有飞轮以及根据轮循出的用户组ID从相应的漏桶中输出用户ID和权限值;
输出模块,用于根据所述漏桶输出的用户ID和权限值刷新所述用户的QOS信息表,还用于按照优先级输出所述用户的所有流队列并反馈实际输出流量给所述用户的QOS信息表。
9.根据权利要求8所述的流量整形的装置,其特征在于,
所述配置模块具体为三飞轮组配置模块,用于设置用户第一飞轮组、用户第二飞轮组和用户组飞轮组,还用于将用户ID分配到所述用户第一飞轮组和第二飞轮组中以及将用户组ID分配到所述用户组飞轮组中,还用于设置所述用户第一飞轮组内所有飞轮的轮循速率之和为承诺的用户最低速率CIR,还用于设置所述用户第二飞轮组内所有飞轮的轮循速率之和为允许用户超出CIR之外的额外速率,还用于设置所述用户组飞轮组内所有飞轮的轮循速率之和为用户组的峰值速率PIR,还用于设置用户流队列的优先级和初始化所有用户的QOS信息表以及为每个用户组设置一个漏桶。
10.根据权利要求9所述的流量整形的装置,其特征在于,
所述轮循模块具体为三飞轮组轮循模块,用于根据所述三飞轮组配置模块配置的速率采用SHVC算法轮循所述用户第一飞轮组和第二飞轮组内的所有飞轮,还用于给从所述用户第一飞轮组轮循出用户ID的用户分配权限值,还用于给从所述用户第二飞轮组轮循出用户ID的用户分配权限值,并按优先输出从用户第一飞轮组轮循出的用户ID的原则仲裁后将所述用户ID和权限值放入所述用户所属的用户组的漏桶中,还用于根据所述三飞轮组配置模块配置的速率采用SHVC算法轮循所述用户组飞轮组内的所有飞轮以及根据轮循出的用户组ID从相应的漏桶中输出用户ID和权限值。
11.根据权利要求8所述的流量整形的装置,其特征在于,
所述配置模块具体为四飞轮组配置模块,用于设置用户第一飞轮组、用户第二飞轮组、用户组第一飞轮组和用户组第二飞轮组,还用于将用户ID分配到所述用户第一飞轮组和第二飞轮组中以及将用户组ID分配到所述用户组第一飞轮组和第二飞轮组中,还用于设置所述用户第一飞轮组内所有飞轮的轮循速率之和为承诺的用户最低速率CIR1,还用于设置所述用户第二飞轮组内所有飞轮的轮循速率之和为允许用户超出CIR1之外的额外速率,还用于设置所述用户组第一飞轮组内所有飞轮的轮循速率之和为承诺的用户组最低速率CIR2,还用于设置所述用户组第二飞轮组内所有飞轮的轮循速率之和为允许用户组超出CIR2之外的额外速率,还用于设置用户流队列的优先级和初始化所有用户的QOS信息表以及为每个用户组设置第一漏桶和第二漏桶。
12.根据权利要求11所述的流量整形的装置,其特征在于,
所述轮循模块具体为四飞轮组轮循模块,用于根据所述四飞轮组配置模块配置的速率采用SHVC算法轮循所述用户第一飞轮组内的所有飞轮并给轮循出用户ID的用户分配权限值,还用于将所述用户ID和权限值放入所述用户所属的用户组的第一漏桶中;还用于根据所述四飞轮组配置模块配置的速率采用SHVC算法轮循所述用户第二飞轮组内的所有飞轮并给轮循出用户ID的用户分配权限值,还用于将所述用户ID和权限值放入所述用户所属的用户组的第二漏桶中;还用于根据所述四飞轮组配置模块配置的速率采用SHVC算法轮循所述用户组第一飞轮组内的所有飞轮以及根据轮循出的用户组ID从相应的第一漏桶中输出用户ID和权限值,还用于根据所述四飞轮组配置模块配置的速率采用SHVC算法轮循所述用户组第二飞轮组内的所有飞轮以及根据轮循出的用户组ID从相应的第二漏桶中输出用户ID和权限值,还用于按照优先输出第一漏桶内的用户ID和权限值的原则仲裁后将所述漏桶中的用户ID和权限值输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101530513A CN100450103C (zh) | 2006-09-20 | 2006-09-20 | 流量整形的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101530513A CN100450103C (zh) | 2006-09-20 | 2006-09-20 | 流量整形的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1929452A CN1929452A (zh) | 2007-03-14 |
CN100450103C true CN100450103C (zh) | 2009-01-07 |
Family
ID=37859241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101530513A Expired - Fee Related CN100450103C (zh) | 2006-09-20 | 2006-09-20 | 流量整形的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100450103C (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119492B (zh) * | 2007-08-20 | 2011-03-16 | 武汉烽火网络有限责任公司 | 一种基于抖动约束的数据缓存整形方法 |
CN101465794B (zh) * | 2007-12-19 | 2011-02-02 | 华为技术有限公司 | 一种分组调度方法和设备 |
CN101741603B (zh) * | 2008-11-11 | 2013-01-16 | 中兴通讯股份有限公司 | 一种基于令牌桶的流量监管方法及设备 |
CN101643075B (zh) * | 2009-06-30 | 2011-08-31 | 卡斯柯信号有限公司 | 一种面向轨道交通车站设备监控信息拥塞的控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1384673A (zh) * | 2001-05-08 | 2002-12-11 | 华为技术有限公司 | 一种适合实现路由器服务质量的综合业务中的调度方法 |
EP1286315A1 (en) * | 2001-08-15 | 2003-02-26 | Eastman Kodak Company | Authentic document and method of making |
US20040233919A1 (en) * | 2001-09-26 | 2004-11-25 | Johann Arnold | Method for operating a switching node in a data network |
CN1726678A (zh) * | 2002-12-12 | 2006-01-25 | 皇家飞利浦电子股份有限公司 | 使用“虚拟时钟”适配多媒体流送服务器的传输速率的系统和方法 |
-
2006
- 2006-09-20 CN CNB2006101530513A patent/CN100450103C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1384673A (zh) * | 2001-05-08 | 2002-12-11 | 华为技术有限公司 | 一种适合实现路由器服务质量的综合业务中的调度方法 |
EP1286315A1 (en) * | 2001-08-15 | 2003-02-26 | Eastman Kodak Company | Authentic document and method of making |
US20040233919A1 (en) * | 2001-09-26 | 2004-11-25 | Johann Arnold | Method for operating a switching node in a data network |
CN1726678A (zh) * | 2002-12-12 | 2006-01-25 | 皇家飞利浦电子股份有限公司 | 使用“虚拟时钟”适配多媒体流送服务器的传输速率的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1929452A (zh) | 2007-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104539440B (zh) | 具有入口控制的业务量管理 | |
CN1881937B (zh) | 将存储空间动态分配给多个队列的方法及设备 | |
CN1781287B (zh) | 用于柔性带宽分配的方法和设备 | |
JP3252823B2 (ja) | Atmネットワークの時間ベース・スケジューラ・アーキテクチャ及び方法 | |
US8339949B2 (en) | Priority-aware hierarchical communication traffic scheduling | |
CN102413063B (zh) | 动态调整出口资源分配阈值的方法及系统 | |
CN100426738C (zh) | 一种数据流量约束控制的实现方法 | |
US8711871B2 (en) | Method and system for weighted fair queuing | |
CN1985482B (zh) | 网络设备和业务量整形方法 | |
JP2014187421A (ja) | 通信装置及びパケットスケジューリング方法 | |
CN102420776B (zh) | 动态调整入口资源分配阈值的方法及系统 | |
CN102368741A (zh) | 支持层次化队列调度和流量整形的方法及装置 | |
JPH10313324A (ja) | 通信ネットワークにおけるパケットの配送装置とその方法 | |
CN104378309A (zh) | OpenFlow网络中实现QoS的方法、系统和相关设备 | |
CN101436987A (zh) | QoS服务的调度配置方法和装置 | |
CN102387076B (zh) | 一种结合整形的分级式队列调度方法 | |
CN102035732A (zh) | 业务调度方法及装置 | |
CN102811176B (zh) | 一种数据流量控制方法和装置 | |
CN100450103C (zh) | 流量整形的方法和装置 | |
CN103379038A (zh) | 一种流量调度的装置及方法 | |
CN101599905B (zh) | 一种实现流量整形令牌添加的方法、装置及系统 | |
CN102780630B (zh) | 一种基于FPGA队列实现QoS队列的方法和设备 | |
CN102594669A (zh) | 数据报文的处理方法、装置及设备 | |
CN101465794B (zh) | 一种分组调度方法和设备 | |
CN109922003A (zh) | 一种数据发送方法、系统及相关组件 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090107 Termination date: 20160920 |