一种基于优先级的令牌桶限速的方法及系统.pdf

上传人:1****2 文档编号:1093045 上传时间:2018-03-31 格式:PDF 页数:15 大小:524.51KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910169411.2

申请日:

2009.08.31

公开号:

CN101997766A

公开日:

2011.03.30

当前法律状态:

授权

有效性:

有权

法律详情:

专利实施许可合同备案的生效IPC(主分类):H04L 12/56合同备案号:2015440020319让与人:中兴通讯股份有限公司受让人:深圳市中兴微电子技术有限公司发明名称:一种基于优先级的令牌桶限速的方法及系统申请日:20090831申请公布日:20110330授权公告日:20120905许可种类:普通许可备案日期:20151123|||授权|||实质审查的生效IPC(主分类):H04L 12/56申请日:20090831|||公开

IPC分类号:

H04L12/56

主分类号:

H04L12/56

申请人:

中兴通讯股份有限公司

发明人:

时彦平

地址:

518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

优先权:

专利代理机构:

北京市浩天知识产权代理事务所 11276

代理人:

许志勇;刘海英

PDF下载: PDF下载
内容摘要

本发明公开了一种基于优先级的令牌桶限速的方法及系统,包括:根据报文的属性配置报文的限速参数,包括限速值,逐个递减的各级令牌桶深,并保证最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和;接收到报文以后,计算将要添加的令牌数;当判断到不用进行优先级限速,利用最高级令牌桶对当前报文进行限速;以及当判断到要进行优先级限速,对于报文优先级数与限速级数相同的报文,利用当前报文级数所对应的令牌桶对当前报文进行限速;对于报文优先级数与限速级数不同的报文,利用最高级令牌桶对当前报文进行限速。本发明使得不同的报文在同一限速条件下有着不同的丢弃概率,提高了网络的服务质量。

权利要求书

1: 一种基于优先级的令牌桶限速的方法, 其特征在于, 包括 : 根据报文的属性配置报文的限速参数, 包括限速值, 逐个递减的各级令牌桶深, 并保证 最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和 ; 接收到报文以后, 计算将要添加的令牌数 ; 当判断到不用进行优先级限速, 则将要添加的令牌数添加进最高级令牌桶中, 利用最 高级令牌桶对当前报文进行限速 ; 以及 当判断到要进行优先级限速, 对于报文优先级数与限速级数相同的报文, 同时将要添 加的令牌数添加进最高级令牌桶及当前报文级数所对应的令牌桶中, 利用当前报文级数所 对应的令牌桶对当前报文进行限速 ; 对于报文优先级数与限速级数不同的报文, 则将要添加的令牌数添加进最高级令牌桶 中, 利用最高级令牌桶对当前报文进行限速。
2: 如权利要求 1 所述的方法, 其特征在于, 所述利用当前报文级数所对应的令牌桶对 当前报文进行限速的步骤之后, 还包括 : 更新最高级令牌桶和当前报文级数所对应的令牌桶中的令牌数。
3: 如权利要求 1 所述的方法, 其特征在于, 利用最高级令牌桶对当前报文进行限速的 步骤之后, 还包括 : 令最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和。
4: 如权利要求 1 所述的方法, 其特征在于, 所述报文的属性是指不同的报文来自不同 的源或者用户。
5: 如权利要求 1 所述的方法, 其特征在于, 所述计算将要添加的令牌数, 包括 : 根据限速值和本次报文与上次同一属性报文的时间差计算将要添加的令牌数。
6: 如权利要求 1 所述的方法, 其特征在于, 所述逐个递减的各级令牌桶深, 包括总令牌 通深和低优先级令牌桶深, 相应的, 当接收一低优先级报文, 判断到需要对其进行低优先级限速, 则根据报文的属性获取 报文的限速参数, 所述参数包括 : 限速值、 总令牌通深、 低优先级令牌桶深 ; 根据获取的限速值, 以及上一报文至当前报文的时间差, 计算出需要添加的令牌数 ; 将计算的添加的令牌数分别添加进低优先级令牌桶和总桶中, 获得当前可用的令牌 数; 将当前低优先级桶中的令牌数与当前报文长度进行比较, 如果令牌数多于当前报文长 度, 则转发该当前报文, 否则视为丢弃当前报文 ; 更新低优先级桶和总桶中的令牌数, 若当前报文丢弃, 低优先级桶和总桶中的令牌数 分别为添加后的可用令牌数, 当添加后的令牌数大于令牌桶深, 则将令牌桶的深度更新为 桶深, 当前报文通过, 则令牌桶中的令牌数为添加后的令牌数与当前报文长度之差 ; 更新总令牌桶和低优先级令牌桶的令牌数。
7: 如权利要求 6 所述的方法, 其特征在于, 当接收到一非低优先级报文, 判断到需要对 其进行低优先级限速, 则根据报文的属性获取报文的限速参数, 所述参数包括 : 限速值、 总 令牌通深、 低优先级令牌桶深 ; 根据获取的限速值, 以及上一报文至当前报文的时间差, 计算出需要添加的令牌数 ; 将所述需要添加的令牌数只添加进总令牌桶中, 获得当前可用的令牌数 ; 2 将当前总令牌桶中的令牌数与当前报文长度进行比较, 如果令牌数多于当前报文长 度, 则转发该当前报文, 否则视为丢弃当前报文 ; 更新总令牌桶中的令牌数, 若当前报文丢弃, 总桶中的令牌数即为添加后的可用令牌 数, 当添加后的令牌数大于令牌桶深, 则将令牌桶的深度更新为桶深, 当当前报文通过, 则 令牌桶中的令牌数为添加后的令牌数与当前报文长度之差 ; 当判断到总令牌桶中的令牌数小于低优先级桶中的令牌数, 则更新低优先级桶的令牌 数与总令牌桶中的令牌数相等。
8: 一种基于优先级的令牌桶限速的系统, 其特征在于, 包括 : 配置模块, 用于根据报文的属性配置报文的限速参数, 包括限速值, 逐个递减的各级令 牌桶深, 并保证最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和 ; 接收模块, 用于接收当前报文 ; 获取模块, 获取与当前报文属性相对应得限速参数 ; 计算模块, 用于接收到报文以后, 计算将要添加的令牌数 ; 第一判断模块, 用于当判断到不用进行优先级限速, 发送第一触发信号 ; 第一处理模块, 用于接收到所述第一触发信号后, 将要添加的令牌数添加进最高级令 牌桶中, 利用最高级令牌桶对当前报文进行限速 ; 第二判断模块, 用于当判断到要进行优先级限速, 并进一步判断到报文优先级数与限 速级数相同时, 发送第二触发信号 ; 第二处理模块, 用于同时将要添加的令牌数添加进最高级令牌桶及当前报文级数所对 应的令牌桶中, 利用当前报文级数所对应的令牌桶对当前报文进行限速 ; 第三判断模块, 用于当判断到要进行优先级限速, 并进一步判断到报文优先级数与限 速级数不同时, 发送第三触发信号 ; 第三处理模块, 用于将要添加的令牌数添加进最高级令牌桶中, 利用最高级令牌桶对 当前报文进行限速。
9: 如权利要求 8 所述的系统, 其特征在于, 所述第二处理模块, 还用于同时更新最高级 令牌桶和当前报文级数所对应的令牌桶中的令牌数。
10: 如权利要求 8 所述的系统, 其特征在于, 所述第三处理模块, 还用于令最高级令牌 桶中的令牌数大于等于其余各级令牌桶中的令牌数之和。
11: 如权利要求 8 所述的系统, 其特征在于, 所述报文的属性是指不同的报文来自不同 的源或者用户。
12: 如权利要求 8 所述的系统, 其特征在于, 所述计算模块, 用于根据限速值和本次报 文与上次同一属性报文的时间差计算将要添加的令牌数。
13: 如权利要求 8 所述的系统, 其特征在于, 所述配置模块用于配置逐个递减的各级令 牌桶深, 包括总令牌通深和低优先级令牌桶深, 相应的, 接收模块, 用于接收一低优先级报文 ; 获取模块, 用于根据报文的属性获取报文的限速参数, 所述参数包括 : 限速值、 总令牌 通深、 低优先级令牌桶深 ; 第二判断模块, 用于判断到需要对其进行低优先级限速, 发送第二触发信号 ; 计算模块, 根据获取的限速值, 以及上一报文至当前报文的时间差, 计算出需要添加的 3 令牌数 ; 第二处理模块, 用于将计算的添加的令牌数分别添加进低优先级令牌桶和总桶中, 获 得当前可用的令牌数 ; 将当前低优先级桶中的令牌数与当前报文长度进行比较, 如果令牌 数多于当前报文长度, 则转发该当前报文, 否则视为丢弃当前报文 ; 同时更新低优先级桶和 总桶中的令牌数, 若当前报文丢弃, 两个桶中的令牌数分别为添加后的可用令牌数, 当添加 后的令牌数大于令牌桶深, 则将令牌桶的深度更新为桶深, 当前报文通过, 则令牌桶中的令 牌数为添加后的令牌数与当前报文长度之差 ; 更新总令牌桶和低优先级令牌桶的令牌数。
14: 如权利要求 13 所述的系统, 其特征在于, 接收模块, 还用于接收一非低优先级报文 ; 获取模块, 用于根据报文的属性获取报文的限速参数, 所述参数包括 : 限速值、 总令牌 通深、 低优先级令牌桶深 ; 根据获取的限速值, 以及上一报文至当前报文的时间差, 计算出需要添加的令牌数 ; 计算模块, 将所述需要添加的令牌数只添加进总令牌桶中, 获得当前可用的令牌数 ; 第三判断模块, 用于当判断到要进行低优先级限速, 发送第三触发信号 ; 第三处理模块, 用于将当前总令牌桶中的令牌数与当前报文长度进行比较, 如果令牌 数多于当前报文长度, 则转发该当前报文, 否则视为丢弃当前报文 ; 更新总令牌桶中的令牌 数, 若当前报文丢弃, 总桶中的令牌数即为添加后的可用令牌数, 当添加后的令牌数大于令 牌桶深, 则将令牌桶的深度更新为桶深, 当当前报文通过, 则令牌桶中的令牌数为添加后的 令牌数与当前报文长度之差 ; 当判断到总令牌桶中的令牌数小于低优先级桶中的令牌数, 则更新低优先级桶的令牌数与总令牌桶中的令牌数相等。

说明书


一种基于优先级的令牌桶限速的方法及系统

    【技术领域】
     本发明涉及数据网络领域, 尤其涉及网络中的报文限速技术。背景技术 在现有的数据网络中, 由于报文流量的突发性, 常常会导致网络拥塞。 避免网络拥 塞的一种方法是, 在接收端对报文进行限速, 如果报文的速率低于规定的速率, 则正常接收 报文 ; 如果报文的速率超过规定的速率, 则将报文丢弃, 或者降低报文的优先级等。
     目前普遍采用的方法是利用令牌桶对报文进行限速。如图 1 所示, 系统按规定的 速率不断地向令牌桶中填充令牌, 直到令牌桶装满为止。 当报文到来时, 将报文的长度跟令 牌桶中的令牌数进行比较, 如果令牌桶中有足够的令牌, 则报文允许通过, 同时从令牌桶中 减去报文长度所对应的令牌数 ; 如果令牌桶中的令牌不够, 则将报文丢弃, 或者降低报文的 发送优先级。
     现有常用的基于令牌桶算法的标准有 RFC2697 和 RFC2698, 即单速率三色双桶和 双速率三色双桶。华为技术有限公司的专利 《基于令牌桶算法的接入速率限制方法》 中国 申请号 : 03135014.3 的申请对基于 RFC2697 的标准算法进行了改进, 运用令牌借贷的方法 使得高优先级报文可以借贷令牌, 低优先级报文则无权借贷, 在一定程度上区别了高低优 先级的服务质量, 但无法满足一个量的区别。
     在上述现有方法中, 令牌的填充速率限制了接收报文的速率, 在网络即将拥塞的 时候, 报文因自身的包长和令牌桶中的令牌数的多少而被随机的丢弃掉, 对于同一个令牌 桶所有的报文被丢弃的机会是均等的, 这样的结果就是使用同一令牌桶的高优先级的用户 和普通用户以及低优先级的用户在被限速的同时, 高优先级用户的服务质量得不到区别体 现。虽然上述专利在一定程度上有所改进, 但是其以令牌数是否大于零为界限来区别对待 高低优先级报文的做法, 由于借贷还贷的负数运算增加设计的复杂度和资源占用, 且在临 界状态, 高低优先级被一刀切, 无法满足设备用户的精确需求。
     因此, 现有技术存在一定的缺陷, 需要进一步改进和发展
     发明内容 本发明所要解决的技术问题是提供一种基于报文优先级的令牌桶限速的方法和 系统, 克服现有技术中存在的用令牌桶方法限速时, 高低优先级报文无区别的问题和缺陷, 提供一种基于优先级的令牌桶限速的方法。
     为了解决上述技术问题, 本发明提供了一种基于优先级的令牌桶限速的方法, 包 括:
     根据报文的属性配置报文的限速参数, 包括限速值, 逐个递减的各级令牌桶深, 并 保证最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和 ;
     接收到报文以后, 计算将要添加的令牌数 ;
     当判断到不用进行优先级限速, 则将要添加的令牌数添加进最高级令牌桶中, 利
     用最高级令牌桶对当前报文进行限速 ; 以及
     当判断到要进行优先级限速, 对于报文优先级数与限速级数相同的报文, 同时将 要添加的令牌数添加进最高级令牌桶及当前报文级数所对应的令牌桶中, 利用当前报文级 数所对应的令牌桶对当前报文进行限速 ;
     对于报文优先级数与限速级数不同的报文, 则将要添加的令牌数添加进最高级令 牌桶中, 利用最高级令牌桶对当前报文进行限速。
     为了解决上述技术问题, 本发明还提供了一种基于优先级的令牌桶限速的系统, 包括 :
     配置模块, 用于根据报文的属性配置报文的限速参数, 包括限速值, 逐个递减的各 级令牌桶深, 并保证最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和 ;
     接收模块, 用于接收当前报文 ;
     获取模块, 获取与当前报文属性相对应得限速参数 ;
     计算模块, 用于接收到报文以后, 计算将要添加的令牌数 ;
     第一判断模块, 用于当判断到不用进行优先级限速, 发送第一触发信号 ;
     第一处理模块, 用于接收到所述第一触发信号后, 将要添加的令牌数添加进最高 级令牌桶中, 利用最高级令牌桶对当前报文进行限速 ; 第二判断模块, 用于当判断到要进行优先级限速, 并进一步判断到报文优先级数 与限速级数相同时, 发送第二触发信号 ;
     第二处理模块, 用于同时将要添加的令牌数添加进最高级令牌桶及当前报文级数 所对应的令牌桶中, 利用当前报文级数所对应的令牌桶对当前报文进行限速 ;
     第三判断模块, 用于当判断到要进行优先级限速, 并进一步判断到报文优先级数 与限速级数不同时, 发送第三触发信号 ;
     第三处理模块, 用于将要添加的令牌数添加进最高级令牌桶中, 利用最高级令牌 桶对当前报文进行限速。
     本方法与当前技术相比, 提供一种可基于优先级的令牌桶限速方法, 使得不同的 报文在同一限速条件下有着不同的丢弃概率, 即高优先级在网络拥塞情况下能够快速通 过, 低优先级的报文具有较高的丢弃概率, 避免了当前技术在应用令牌桶限速时, 网络拥塞 情况下高级别的报文被随机丢弃的问题, 达到了限速的效果, 节省了网络资源, 同时提高了 网络的服务质量。
     附图说明
     图 1 是令牌桶限速示意图。
     图 2 是采用本发明基于优先级的令牌桶限速的方法对低优先级包进行限速的示 意图。
     图 3 是采用本发明的基于优先级的令牌桶限速的方法对非低优先级包限速的示 意图。
     图 4 是本发明的的基于优先级的令牌桶限速的方法流程图。
     图 5 是本发明的的基于优先级的令牌桶限速的系统结构图。具体实施方式
     本发明的主要思想是设置不同限速级数的令牌桶深, 当接收到的当前报文的级数 与将要限速的级数相同时, 用与限速的级数相对应的令牌桶对当前报文进行限速处理 ; 当 接收到的当前报文的级数与将要限速的级数不同时, 利用最高级的令牌桶对当前报文进行 限速处理。具体来说, 包括以下步骤 :
     配置报文的限速参数, 包括限速值, 逐个递减的各级令牌桶深, 并保证最高级令牌 桶中的令牌数大于等于其余各级令牌桶中的令牌数之和 ;
     接收到报文以后, 计算将要添加的令牌数 ;
     判断是否需要进行优先级限速, 如果不用进行优先级限速, 则将要添加的令牌数 添加进最高级令牌桶中, 利用最高级令牌桶对当前报文进行限速 ;
     如果判断到要进行优先级限速, 则进一步判断报文的优先级数, 对于报文优先级 数与限速级数相同的报文, 同时将要添加的令牌数添加进最高级令牌桶及当前报文级数所 对应的令牌桶中, 利用当前报文级数所对应的令牌桶对当前报文进行限速, 之后同时更新 最高级令牌桶和当前报文级数所对应的令牌桶中的令牌数 ;
     对于报文优先级数与限速级数不同的报文, 则将要添加的令牌数添加进最高级令 牌桶中, 利用最高级令牌桶对当前报文进行限速 ; 并保证最高级令牌桶中的令牌数大于等 于其余各级令牌桶中的令牌数之和。 下面结合附图对技术方案的实施作进一步的详细描述 :
     在本发明的第一优选实施例中, 限速级数包括两级 : 低优先级和高优先级, 在本实 施例中的基于优先级的令牌桶限速的方法, 实施的时候需要以下配置 :
     1 配置不同属性报文的限速值, ( 限速值的单位为 bps)。具体数值可以根据实际 需要来设定, 这里限速值的配置是根据不同的用户决定的, 服务级别高的用户分配的带宽 比较大, 那么相应的限速值相比较而言可大一点比如 10M, 一般用户可能是 1M)( 这里的属 性是指不同的报文来自不同的源或者用户 ), 同时应包括是否需要低优先级限速的使能 ;
     2 配置报文限速的令牌桶深度, 包括总桶深度和低优先级令牌桶深度, 需要注意的 是, 低优先级桶深必须要小于总桶的深度, 同时必须大于零 ;
     3 用来实时存储各令牌桶令牌数的存储装置。
     这里通过实例来具体说明本方法的实施方式。
     参照图 2 所示, 例如接收一低优先级报文, 需要对其进行低优先级限速, 其步骤如 下:
     1) 根据报文的属性获取配置, 限速的速率, 总令牌桶桶深, 低优先级桶的桶深, 是 否进行低优先级限速 ;
     由上文叙述可知, 基于之前的配置, 具有不同属性的报文对应不同的配置, 这样, 根据获得到的报文的属性, 就可以获得其相应的配置。例如整个网络服务对象有 100 个, 那 么这 100 个用户可编号 0-99, 每个编号对应一个配置, 每次报文到达时根据编号查找对应 的配置。
     2) 根据获取的限速速率, 以及上一报文至当前报文的时间差, 计算出需要添加的 令牌数 ;
     添加的令牌数是根据同一个属性相邻报文到达的时间差乘以限速的速率而得到
     的, 单位为字节数。
     3) 将计算的添加的令牌数分别添加进低优先级令牌桶和总桶中, 获得当前可用的 令牌数 ;
     4) 将当前低优先级桶中的令牌数与当前报文长度进行比较, 如果令牌数多于报文 长度, 则转发该报文, 否则视为丢弃 ;
     5) 同时更新低优先级桶和总桶中的令牌数, 若当前包丢弃, 两个桶中的令牌数分 别为 4 中添加后的可用令牌数, 对于添加令牌后令牌数大于令牌桶深的, 则将令牌桶的深 度更新为桶深, 对于通过的包的情况, 其桶中的令牌数为可用令牌数与报文长度之差 ;
     流程结束, 对于当前的低优先级报文, 由于低优先级桶深比较浅的缘故, 限制其最 大突发流量, 以相对高的丢弃率换取后续高优先级包的可用令牌数, 提高后续高优先级包 的通过率, 保证网络的服务质量。
     参照图 3 所示, 对于需要进行低优先级限速的非低优先级报文, 则进行以下步骤 :
     1) 根据报文的属性获取配置, 限速的速率, 总令牌桶桶深, 低优先级桶的桶深, 是 否进行低优先级限速 ;
     2) 根据获取的限速速率, 以及上一报文至当前报文的时间差, 计算出需要添加的 令牌数 ; 3) 将计算的添加的令牌数只添加进总桶中, 获得当前可用的令牌数 ; 如图 3 所示
     4) 将当前总令牌桶中的令牌数与当前报文长度进行比较, 如果令牌数多于报文长 度, 则转发该报文, 否则视为丢弃 ;
     5) 更新总令牌桶中的令牌数, 若当前包丢弃, 总桶中的令牌数即为 4 中的可用令 牌数, 对于添加令牌后令牌数大于令牌桶深的, 则将令牌桶的深度更新为桶深, 对于通过包 的情况, 总桶中的令牌数为可用令牌数与当前报文长度之差。 这里需要注意的是, 低优先级 桶中的令牌数永远小于总桶中的令牌数, 因此, 当总令牌桶中的令牌数小于低优先级桶中 的令牌数时, 需要更新低优先级桶的令牌数, 使二者相等。
     流程结束, 对于当前的非低优先级报文, 其虽然被要求以低优先级限速, 但其不属 于低优先级报文, 相对应的允许的最大突发流量是大于低优先级包的, 对于后续的任何报 文, 都是不受当前报文的影响的。
     对于不需要进行低优先级限速的报文, 其实施的步骤即是当前被广泛应用的流 程, 不需要考虑低优先级桶的任何参数, 只应用总令牌桶即可, 当然, 其效果只能是同一属 性的所有级别的报文, 都有着相同的最大突发流量限制, 在网络拥塞的时候, 会被随机性的 丢弃掉。
     图 4 是本发明的的基于优先级的令牌桶限速的方法流程图。即将图 2 所示的流程 和图 3 所示的流程综合起来进行阐述, 包括 :
     步骤 401 : 根据速率计算添加令牌数 ;
     步骤 402 : 判断是否进行低优先级限速 ; 如果是, 执行步骤 403, 如果否, 执行步骤 411 ;
     步骤 403 : 判断数据包是否为低优先级?如果是, 执行步骤 404, 如果否, 执行步骤 407 ;
     步骤 404 : 同时往低优先级桶和总的令牌桶添加令牌 ;
     步骤 405 : 根据低优先级桶进行 RFC2697 标准规定的算法处理 ;
     步骤 406 : 丢弃包, 不进行令牌的减操作, 通过包同时进行总桶和低优先级桶的减 操作, 结束 ;
     步骤 407 : 只进行总的令牌桶的添加, 不进行低优先级桶的添加 ;
     步骤 408 : 根据总的令牌桶, 进行 TrTCM 的算法处理 ;
     步骤 409 : 丢弃包, 不进行令牌的减操作 ; 通过包, 只进行总桶的减操作 ;
     步骤 410 : 当总的令牌桶小于优先级桶时, 必须将低优先级桶的令牌数置为总的 令牌数, 结束 ;
     步骤 411 : 只使用总的令牌桶, 向桶中添加令牌数 ;
     步骤 412 : 进行 RFC2697 标准规定的算法处理, 结束。
     另外, 本发明提供的限速方法还可被扩展为多优先级的限速, 而不仅限于高低优 先级的区别, 例如, 分别是高、 中、 低三级优先级, 在实现三级限速的时候, 与两级限速的区 别就是多用一套参数, 且各套参数之间有一定的关联, 具体实施如下 :
     1 配置不同属性报文的限速速率 ( 这里的属性是指不同的报文来自不同的源或者 用户 ) ;
     2 配置三个令牌桶深度, 分别对应高、 中、 低优先级桶深, 三个桶深的关系应该是 CBS 高> CBS 中> CBS 低, 同时 CBS 中 +CBS 低要不大于 CBS 高, 三个桶深同时包括优先级限 速使能 ; ( 这里的高优先级桶深相当于附图中的总桶深 )
     3 用来实时存储各令牌桶令牌数的存储装置。
     这里通过实例来具体说明多级限速的实施方式 :
     例如接收一中优先级报文, 需要对其进行中优先级限速, 其步骤如下
     1. 根据报文的属性获取配置, 限速的速率, 高优先级令牌桶桶深, 中优先级桶的桶 深, 是否进行中级优先级限速 ;
     2. 根据获取的限速速率, 以及上一报文至当前报文的时间差, 计算出需要添加的 令牌数 ;
     3. 将计算的添加的令牌数分别添加进中级优先级令牌桶和高优先级桶中, 获得当 前可用的令牌数 ;
     4. 将当前中优先级桶中的令牌数与当前报文长度进行比较, 如果令牌数多于报文 长度, 则转发该报文, 否则视为丢弃 ;
     5. 同时更新中优先级桶和高优先级桶中的令牌数, 若当前包丢弃, 两个桶中的令 牌数分别为 4 中的可用令牌数, 对于大于令牌桶深的, 则更新为桶深, 对于通过的包, 其令 牌数为两者之差 ; 这里需要注意的是, 当低优先级桶中的令牌数多于中优先级令牌数时, 必 须更新低优先级桶中的令牌数使其等于中优先级桶中的令牌数 ; 高优先级桶级别最高, 桶 中的令牌数不因其它桶中的令牌数的大小而改变
     流程结束。
     对于需要进行中优先级限速的非中优先级报文, 那么, 可能为低优先级报文或者 是高优先级报文, 如果是低优先级报文, 且同时是低优先级限速使能, 则图 3 中的方法进行 限速。如果低优先级限速也不使能或者该报文为高优先级, 则按照图 2 中的方法进行限速, 高优先级桶对应总桶, 中低优先级桶的更新参照图 2 中的低优先级桶的更新方法。参照图 5 所示, 是本发明的的基于优先级的令牌桶限速的系统结构图。
     配置模块 501, 用于根据报文的属性配置报文的限速参数, 包括限速值, 逐个递减 的各级令牌桶深, 并保证最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之 和;
     接收模块 502, 用于接收当前报文 ;
     获取模块 503, 获取与当前报文属性相对应得限速参数 ;
     计算模块 504, 用于接收到报文以后, 计算将要添加的令牌数 ;
     第一判断模块 505, 用于当判断到不用进行优先级限速, 发送第一触发信号 ;
     第一处理模块 506, 用于接收到所述第一触发信号后, 将要添加的令牌数添加进最 高级令牌桶中, 利用最高级令牌桶对当前报文进行限速 ;
     第二判断模块 507, 用于当判断到要进行优先级限速, 并进一步判断到报文优先级 数与限速级数相同时, 发送第二触发信号 ;
     第二处理模块 508, 用于同时将要添加的令牌数添加进最高级令牌桶及当前报文 级数所对应的令牌桶中, 利用当前报文级数所对应的令牌桶对当前报文进行限速 ;
     第三判断模块 509, 用于当判断到要进行优先级限速, 并进一步判断到报文优先级 数与限速级数不同时, 发送第三触发信号 ; 第三处理模块 510, 用于将要添加的令牌数添加进最高级令牌桶中, 利用最高级令 牌桶对当前报文进行限速。
     在本发明的一个优选实施例中, 所述第二处理模块 508, 还用于同时更新最高级令 牌桶和当前报文级数所对应的令牌桶中的令牌数。
     在本发明的一个优选实施例中, 所述第三处理模块 510, 还用于令最高级令牌桶中 的令牌数大于等于其余各级令牌桶中的令牌数之和。
     所述报文的属性是指不同的报文来自不同的源或者用户。
     所述计算模块 504, 用于根据限速值和本次报文与上次同一属性报文的时间差计 算将要添加的令牌数。
     在本发明的一个优选实施例中,
     所述配置模块 501 用于配置逐个递减的各级令牌桶深, 包括总令牌通深和低优先 级令牌桶深, 相应的,
     接收模块 502, 用于接收一低优先级报文 ;
     获取模块 503, 用于根据报文的属性获取报文的限速参数, 所述参数包括 : 限速 值、 总令牌通深、 低优先级令牌桶深 ;
     第二判断模块 507, 用于判断到需要对其进行低优先级限速, 发送第二触发信号 ;
     计算模块 504, 根据获取的限速值, 以及上一报文至当前报文的时间差, 计算出需 要添加的令牌数 ;
     第二处理模块 508, 用于将计算的添加的令牌数分别添加进低优先级令牌桶和总 桶中, 获得当前可用的令牌数 ; 将当前低优先级桶中的令牌数与当前报文长度进行比较, 如 果令牌数多于当前报文长度, 则转发该当前报文, 否则视为丢弃当前报文 ; 同时更新低优先 级桶和总桶中的令牌数, 若当前报文丢弃, 两个桶中的令牌数分别为添加后的可用令牌数, 当添加后的令牌数大于令牌桶深, 则将令牌桶的深度更新为桶深, 当前报文通过, 则令牌桶
     中的令牌数为添加后的令牌数与当前报文长度之差 ; 更新总令牌桶和低优先级令牌桶的令 牌数。
     在本发明的又一个优选实施例中,
     接收模块 502, 还用于接收一非低优先级报文 ;
     获取模块 503, 用于根据报文的属性获取报文的限速参数, 所述参数包括 : 限速 值、 总令牌通深、 低优先级令牌桶深 ;
     根据获取的限速值, 以及上一报文至当前报文的时间差, 计算出需要添加的令牌 数;
     计算模块 504, 将所述需要添加的令牌数只添加进总令牌桶中, 获得当前可用的令 牌数 ;
     第三判断模块 509, 用于当判断到要进行低优先级限速, 发送第三触发信号 ;
     第三处理模块 510, 用于将当前总令牌桶中的令牌数与当前报文长度进行比较, 如 果令牌数多于当前报文长度, 则转发该当前报文, 否则视为丢弃当前报文 ; 更新总令牌桶中 的令牌数, 若当前报文丢弃, 总桶中的令牌数即为添加后的可用令牌数, 当添加后的令牌数 大于令牌桶深, 则将令牌桶的深度更新为桶深, 当当前报文通过, 则令牌桶中的令牌数为添 加后的令牌数与当前报文长度之差 ; 当判断到总令牌桶中的令牌数小于低优先级桶中的令 牌数, 则更新低优先级桶的令牌数与总令牌桶中的令牌数相等。 本发明提供的方法可以根据用户的需求扩展优先级的数目, 只要遵照一个原则, 最高优先级桶深配置不小于其余次优先级桶深配置的总和, 在更新令牌数存储情况时同样 遵循这个规则, 即低优先级桶中的令牌数不得超过高一级令牌桶的令牌数 ; 这样, 利用本方 法提供的限速说明, 即可达到多级优先级的限速, 提高网络服务质量 (QOS)。
     需要指出的是, 以上所述仅为本发明的较佳实施例, 并非用来限定本发明的实施 范围, 凡是依据本发明所作的等效的变化与修改, 都被本发明的专利范围所覆盖。
    

一种基于优先级的令牌桶限速的方法及系统.pdf_第1页
第1页 / 共15页
一种基于优先级的令牌桶限速的方法及系统.pdf_第2页
第2页 / 共15页
一种基于优先级的令牌桶限速的方法及系统.pdf_第3页
第3页 / 共15页
点击查看更多>>
资源描述

《一种基于优先级的令牌桶限速的方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种基于优先级的令牌桶限速的方法及系统.pdf(15页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN101997766A43申请公布日20110330CN101997766ACN101997766A21申请号200910169411222申请日20090831H04L12/5620060171申请人中兴通讯股份有限公司地址518057广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部72发明人时彦平74专利代理机构北京市浩天知识产权代理事务所11276代理人许志勇刘海英54发明名称一种基于优先级的令牌桶限速的方法及系统57摘要本发明公开了一种基于优先级的令牌桶限速的方法及系统,包括根据报文的属性配置报文的限速参数,包括限速值,逐个递减的各级令牌桶深,并保证最高级令牌。

2、桶中的令牌数大于等于其余各级令牌桶中的令牌数之和;接收到报文以后,计算将要添加的令牌数;当判断到不用进行优先级限速,利用最高级令牌桶对当前报文进行限速;以及当判断到要进行优先级限速,对于报文优先级数与限速级数相同的报文,利用当前报文级数所对应的令牌桶对当前报文进行限速;对于报文优先级数与限速级数不同的报文,利用最高级令牌桶对当前报文进行限速。本发明使得不同的报文在同一限速条件下有着不同的丢弃概率,提高了网络的服务质量。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书7页附图4页CN101997771A1/3页21一种基于优先级的令牌桶限速的方法,其特征在于,包。

3、括根据报文的属性配置报文的限速参数,包括限速值,逐个递减的各级令牌桶深,并保证最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和;接收到报文以后,计算将要添加的令牌数;当判断到不用进行优先级限速,则将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前报文进行限速;以及当判断到要进行优先级限速,对于报文优先级数与限速级数相同的报文,同时将要添加的令牌数添加进最高级令牌桶及当前报文级数所对应的令牌桶中,利用当前报文级数所对应的令牌桶对当前报文进行限速;对于报文优先级数与限速级数不同的报文,则将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前报文进行限速。2如权利要求1所述。

4、的方法,其特征在于,所述利用当前报文级数所对应的令牌桶对当前报文进行限速的步骤之后,还包括更新最高级令牌桶和当前报文级数所对应的令牌桶中的令牌数。3如权利要求1所述的方法,其特征在于,利用最高级令牌桶对当前报文进行限速的步骤之后,还包括令最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和。4如权利要求1所述的方法,其特征在于,所述报文的属性是指不同的报文来自不同的源或者用户。5如权利要求1所述的方法,其特征在于,所述计算将要添加的令牌数,包括根据限速值和本次报文与上次同一属性报文的时间差计算将要添加的令牌数。6如权利要求1所述的方法,其特征在于,所述逐个递减的各级令牌桶深,包括总令牌通。

5、深和低优先级令牌桶深,相应的,当接收一低优先级报文,判断到需要对其进行低优先级限速,则根据报文的属性获取报文的限速参数,所述参数包括限速值、总令牌通深、低优先级令牌桶深;根据获取的限速值,以及上一报文至当前报文的时间差,计算出需要添加的令牌数;将计算的添加的令牌数分别添加进低优先级令牌桶和总桶中,获得当前可用的令牌数;将当前低优先级桶中的令牌数与当前报文长度进行比较,如果令牌数多于当前报文长度,则转发该当前报文,否则视为丢弃当前报文;更新低优先级桶和总桶中的令牌数,若当前报文丢弃,低优先级桶和总桶中的令牌数分别为添加后的可用令牌数,当添加后的令牌数大于令牌桶深,则将令牌桶的深度更新为桶深,当前。

6、报文通过,则令牌桶中的令牌数为添加后的令牌数与当前报文长度之差;更新总令牌桶和低优先级令牌桶的令牌数。7如权利要求6所述的方法,其特征在于,当接收到一非低优先级报文,判断到需要对其进行低优先级限速,则根据报文的属性获取报文的限速参数,所述参数包括限速值、总令牌通深、低优先级令牌桶深;根据获取的限速值,以及上一报文至当前报文的时间差,计算出需要添加的令牌数;将所述需要添加的令牌数只添加进总令牌桶中,获得当前可用的令牌数;权利要求书CN101997766ACN101997771A2/3页3将当前总令牌桶中的令牌数与当前报文长度进行比较,如果令牌数多于当前报文长度,则转发该当前报文,否则视为丢弃当前。

7、报文;更新总令牌桶中的令牌数,若当前报文丢弃,总桶中的令牌数即为添加后的可用令牌数,当添加后的令牌数大于令牌桶深,则将令牌桶的深度更新为桶深,当当前报文通过,则令牌桶中的令牌数为添加后的令牌数与当前报文长度之差;当判断到总令牌桶中的令牌数小于低优先级桶中的令牌数,则更新低优先级桶的令牌数与总令牌桶中的令牌数相等。8一种基于优先级的令牌桶限速的系统,其特征在于,包括配置模块,用于根据报文的属性配置报文的限速参数,包括限速值,逐个递减的各级令牌桶深,并保证最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和;接收模块,用于接收当前报文;获取模块,获取与当前报文属性相对应得限速参数;计算模块,。

8、用于接收到报文以后,计算将要添加的令牌数;第一判断模块,用于当判断到不用进行优先级限速,发送第一触发信号;第一处理模块,用于接收到所述第一触发信号后,将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前报文进行限速;第二判断模块,用于当判断到要进行优先级限速,并进一步判断到报文优先级数与限速级数相同时,发送第二触发信号;第二处理模块,用于同时将要添加的令牌数添加进最高级令牌桶及当前报文级数所对应的令牌桶中,利用当前报文级数所对应的令牌桶对当前报文进行限速;第三判断模块,用于当判断到要进行优先级限速,并进一步判断到报文优先级数与限速级数不同时,发送第三触发信号;第三处理模块,用于将要添加。

9、的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前报文进行限速。9如权利要求8所述的系统,其特征在于,所述第二处理模块,还用于同时更新最高级令牌桶和当前报文级数所对应的令牌桶中的令牌数。10如权利要求8所述的系统,其特征在于,所述第三处理模块,还用于令最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和。11如权利要求8所述的系统,其特征在于,所述报文的属性是指不同的报文来自不同的源或者用户。12如权利要求8所述的系统,其特征在于,所述计算模块,用于根据限速值和本次报文与上次同一属性报文的时间差计算将要添加的令牌数。13如权利要求8所述的系统,其特征在于,所述配置模块用于配置逐个递减的。

10、各级令牌桶深,包括总令牌通深和低优先级令牌桶深,相应的,接收模块,用于接收一低优先级报文;获取模块,用于根据报文的属性获取报文的限速参数,所述参数包括限速值、总令牌通深、低优先级令牌桶深;第二判断模块,用于判断到需要对其进行低优先级限速,发送第二触发信号;计算模块,根据获取的限速值,以及上一报文至当前报文的时间差,计算出需要添加的权利要求书CN101997766ACN101997771A3/3页4令牌数;第二处理模块,用于将计算的添加的令牌数分别添加进低优先级令牌桶和总桶中,获得当前可用的令牌数;将当前低优先级桶中的令牌数与当前报文长度进行比较,如果令牌数多于当前报文长度,则转发该当前报文,否。

11、则视为丢弃当前报文;同时更新低优先级桶和总桶中的令牌数,若当前报文丢弃,两个桶中的令牌数分别为添加后的可用令牌数,当添加后的令牌数大于令牌桶深,则将令牌桶的深度更新为桶深,当前报文通过,则令牌桶中的令牌数为添加后的令牌数与当前报文长度之差;更新总令牌桶和低优先级令牌桶的令牌数。14如权利要求13所述的系统,其特征在于,接收模块,还用于接收一非低优先级报文;获取模块,用于根据报文的属性获取报文的限速参数,所述参数包括限速值、总令牌通深、低优先级令牌桶深;根据获取的限速值,以及上一报文至当前报文的时间差,计算出需要添加的令牌数;计算模块,将所述需要添加的令牌数只添加进总令牌桶中,获得当前可用的令牌。

12、数;第三判断模块,用于当判断到要进行低优先级限速,发送第三触发信号;第三处理模块,用于将当前总令牌桶中的令牌数与当前报文长度进行比较,如果令牌数多于当前报文长度,则转发该当前报文,否则视为丢弃当前报文;更新总令牌桶中的令牌数,若当前报文丢弃,总桶中的令牌数即为添加后的可用令牌数,当添加后的令牌数大于令牌桶深,则将令牌桶的深度更新为桶深,当当前报文通过,则令牌桶中的令牌数为添加后的令牌数与当前报文长度之差;当判断到总令牌桶中的令牌数小于低优先级桶中的令牌数,则更新低优先级桶的令牌数与总令牌桶中的令牌数相等。权利要求书CN101997766ACN101997771A1/7页5一种基于优先级的令牌桶。

13、限速的方法及系统技术领域0001本发明涉及数据网络领域,尤其涉及网络中的报文限速技术。背景技术0002在现有的数据网络中,由于报文流量的突发性,常常会导致网络拥塞。避免网络拥塞的一种方法是,在接收端对报文进行限速,如果报文的速率低于规定的速率,则正常接收报文;如果报文的速率超过规定的速率,则将报文丢弃,或者降低报文的优先级等。0003目前普遍采用的方法是利用令牌桶对报文进行限速。如图1所示,系统按规定的速率不断地向令牌桶中填充令牌,直到令牌桶装满为止。当报文到来时,将报文的长度跟令牌桶中的令牌数进行比较,如果令牌桶中有足够的令牌,则报文允许通过,同时从令牌桶中减去报文长度所对应的令牌数;如果令。

14、牌桶中的令牌不够,则将报文丢弃,或者降低报文的发送优先级。0004现有常用的基于令牌桶算法的标准有RFC2697和RFC2698,即单速率三色双桶和双速率三色双桶。华为技术有限公司的专利基于令牌桶算法的接入速率限制方法中国申请号031350143的申请对基于RFC2697的标准算法进行了改进,运用令牌借贷的方法使得高优先级报文可以借贷令牌,低优先级报文则无权借贷,在一定程度上区别了高低优先级的服务质量,但无法满足一个量的区别。0005在上述现有方法中,令牌的填充速率限制了接收报文的速率,在网络即将拥塞的时候,报文因自身的包长和令牌桶中的令牌数的多少而被随机的丢弃掉,对于同一个令牌桶所有的报文被。

15、丢弃的机会是均等的,这样的结果就是使用同一令牌桶的高优先级的用户和普通用户以及低优先级的用户在被限速的同时,高优先级用户的服务质量得不到区别体现。虽然上述专利在一定程度上有所改进,但是其以令牌数是否大于零为界限来区别对待高低优先级报文的做法,由于借贷还贷的负数运算增加设计的复杂度和资源占用,且在临界状态,高低优先级被一刀切,无法满足设备用户的精确需求。0006因此,现有技术存在一定的缺陷,需要进一步改进和发展发明内容0007本发明所要解决的技术问题是提供一种基于报文优先级的令牌桶限速的方法和系统,克服现有技术中存在的用令牌桶方法限速时,高低优先级报文无区别的问题和缺陷,提供一种基于优先级的令牌。

16、桶限速的方法。0008为了解决上述技术问题,本发明提供了一种基于优先级的令牌桶限速的方法,包括0009根据报文的属性配置报文的限速参数,包括限速值,逐个递减的各级令牌桶深,并保证最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和;0010接收到报文以后,计算将要添加的令牌数;0011当判断到不用进行优先级限速,则将要添加的令牌数添加进最高级令牌桶中,利说明书CN101997766ACN101997771A2/7页6用最高级令牌桶对当前报文进行限速;以及0012当判断到要进行优先级限速,对于报文优先级数与限速级数相同的报文,同时将要添加的令牌数添加进最高级令牌桶及当前报文级数所对应的令牌。

17、桶中,利用当前报文级数所对应的令牌桶对当前报文进行限速;0013对于报文优先级数与限速级数不同的报文,则将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前报文进行限速。0014为了解决上述技术问题,本发明还提供了一种基于优先级的令牌桶限速的系统,包括0015配置模块,用于根据报文的属性配置报文的限速参数,包括限速值,逐个递减的各级令牌桶深,并保证最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和;0016接收模块,用于接收当前报文;0017获取模块,获取与当前报文属性相对应得限速参数;0018计算模块,用于接收到报文以后,计算将要添加的令牌数;0019第一判断模块,用于当判断。

18、到不用进行优先级限速,发送第一触发信号;0020第一处理模块,用于接收到所述第一触发信号后,将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前报文进行限速;0021第二判断模块,用于当判断到要进行优先级限速,并进一步判断到报文优先级数与限速级数相同时,发送第二触发信号;0022第二处理模块,用于同时将要添加的令牌数添加进最高级令牌桶及当前报文级数所对应的令牌桶中,利用当前报文级数所对应的令牌桶对当前报文进行限速;0023第三判断模块,用于当判断到要进行优先级限速,并进一步判断到报文优先级数与限速级数不同时,发送第三触发信号;0024第三处理模块,用于将要添加的令牌数添加进最高级令牌桶。

19、中,利用最高级令牌桶对当前报文进行限速。0025本方法与当前技术相比,提供一种可基于优先级的令牌桶限速方法,使得不同的报文在同一限速条件下有着不同的丢弃概率,即高优先级在网络拥塞情况下能够快速通过,低优先级的报文具有较高的丢弃概率,避免了当前技术在应用令牌桶限速时,网络拥塞情况下高级别的报文被随机丢弃的问题,达到了限速的效果,节省了网络资源,同时提高了网络的服务质量。附图说明0026图1是令牌桶限速示意图。0027图2是采用本发明基于优先级的令牌桶限速的方法对低优先级包进行限速的示意图。0028图3是采用本发明的基于优先级的令牌桶限速的方法对非低优先级包限速的示意图。0029图4是本发明的的基。

20、于优先级的令牌桶限速的方法流程图。0030图5是本发明的的基于优先级的令牌桶限速的系统结构图。说明书CN101997766ACN101997771A3/7页7具体实施方式0031本发明的主要思想是设置不同限速级数的令牌桶深,当接收到的当前报文的级数与将要限速的级数相同时,用与限速的级数相对应的令牌桶对当前报文进行限速处理;当接收到的当前报文的级数与将要限速的级数不同时,利用最高级的令牌桶对当前报文进行限速处理。具体来说,包括以下步骤0032配置报文的限速参数,包括限速值,逐个递减的各级令牌桶深,并保证最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和;0033接收到报文以后,计算将要添。

21、加的令牌数;0034判断是否需要进行优先级限速,如果不用进行优先级限速,则将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前报文进行限速;0035如果判断到要进行优先级限速,则进一步判断报文的优先级数,对于报文优先级数与限速级数相同的报文,同时将要添加的令牌数添加进最高级令牌桶及当前报文级数所对应的令牌桶中,利用当前报文级数所对应的令牌桶对当前报文进行限速,之后同时更新最高级令牌桶和当前报文级数所对应的令牌桶中的令牌数;0036对于报文优先级数与限速级数不同的报文,则将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前报文进行限速;并保证最高级令牌桶中的令牌数大于等于其余各级。

22、令牌桶中的令牌数之和。0037下面结合附图对技术方案的实施作进一步的详细描述0038在本发明的第一优选实施例中,限速级数包括两级低优先级和高优先级,在本实施例中的基于优先级的令牌桶限速的方法,实施的时候需要以下配置00391配置不同属性报文的限速值,限速值的单位为BPS。具体数值可以根据实际需要来设定,这里限速值的配置是根据不同的用户决定的,服务级别高的用户分配的带宽比较大,那么相应的限速值相比较而言可大一点比如10M,一般用户可能是1M这里的属性是指不同的报文来自不同的源或者用户,同时应包括是否需要低优先级限速的使能;00402配置报文限速的令牌桶深度,包括总桶深度和低优先级令牌桶深度,需要。

23、注意的是,低优先级桶深必须要小于总桶的深度,同时必须大于零;00413用来实时存储各令牌桶令牌数的存储装置。0042这里通过实例来具体说明本方法的实施方式。0043参照图2所示,例如接收一低优先级报文,需要对其进行低优先级限速,其步骤如下00441根据报文的属性获取配置,限速的速率,总令牌桶桶深,低优先级桶的桶深,是否进行低优先级限速;0045由上文叙述可知,基于之前的配置,具有不同属性的报文对应不同的配置,这样,根据获得到的报文的属性,就可以获得其相应的配置。例如整个网络服务对象有100个,那么这100个用户可编号099,每个编号对应一个配置,每次报文到达时根据编号查找对应的配置。00462。

24、根据获取的限速速率,以及上一报文至当前报文的时间差,计算出需要添加的令牌数;0047添加的令牌数是根据同一个属性相邻报文到达的时间差乘以限速的速率而得到说明书CN101997766ACN101997771A4/7页8的,单位为字节数。00483将计算的添加的令牌数分别添加进低优先级令牌桶和总桶中,获得当前可用的令牌数;00494将当前低优先级桶中的令牌数与当前报文长度进行比较,如果令牌数多于报文长度,则转发该报文,否则视为丢弃;00505同时更新低优先级桶和总桶中的令牌数,若当前包丢弃,两个桶中的令牌数分别为4中添加后的可用令牌数,对于添加令牌后令牌数大于令牌桶深的,则将令牌桶的深度更新为桶深。

25、,对于通过的包的情况,其桶中的令牌数为可用令牌数与报文长度之差;0051流程结束,对于当前的低优先级报文,由于低优先级桶深比较浅的缘故,限制其最大突发流量,以相对高的丢弃率换取后续高优先级包的可用令牌数,提高后续高优先级包的通过率,保证网络的服务质量。0052参照图3所示,对于需要进行低优先级限速的非低优先级报文,则进行以下步骤00531根据报文的属性获取配置,限速的速率,总令牌桶桶深,低优先级桶的桶深,是否进行低优先级限速;00542根据获取的限速速率,以及上一报文至当前报文的时间差,计算出需要添加的令牌数;00553将计算的添加的令牌数只添加进总桶中,获得当前可用的令牌数;如图3所示005。

26、64将当前总令牌桶中的令牌数与当前报文长度进行比较,如果令牌数多于报文长度,则转发该报文,否则视为丢弃;00575更新总令牌桶中的令牌数,若当前包丢弃,总桶中的令牌数即为4中的可用令牌数,对于添加令牌后令牌数大于令牌桶深的,则将令牌桶的深度更新为桶深,对于通过包的情况,总桶中的令牌数为可用令牌数与当前报文长度之差。这里需要注意的是,低优先级桶中的令牌数永远小于总桶中的令牌数,因此,当总令牌桶中的令牌数小于低优先级桶中的令牌数时,需要更新低优先级桶的令牌数,使二者相等。0058流程结束,对于当前的非低优先级报文,其虽然被要求以低优先级限速,但其不属于低优先级报文,相对应的允许的最大突发流量是大于。

27、低优先级包的,对于后续的任何报文,都是不受当前报文的影响的。0059对于不需要进行低优先级限速的报文,其实施的步骤即是当前被广泛应用的流程,不需要考虑低优先级桶的任何参数,只应用总令牌桶即可,当然,其效果只能是同一属性的所有级别的报文,都有着相同的最大突发流量限制,在网络拥塞的时候,会被随机性的丢弃掉。0060图4是本发明的的基于优先级的令牌桶限速的方法流程图。即将图2所示的流程和图3所示的流程综合起来进行阐述,包括0061步骤401根据速率计算添加令牌数;0062步骤402判断是否进行低优先级限速;如果是,执行步骤403,如果否,执行步骤411;0063步骤403判断数据包是否为低优先级如果。

28、是,执行步骤404,如果否,执行步骤407;0064步骤404同时往低优先级桶和总的令牌桶添加令牌;说明书CN101997766ACN101997771A5/7页90065步骤405根据低优先级桶进行RFC2697标准规定的算法处理;0066步骤406丢弃包,不进行令牌的减操作,通过包同时进行总桶和低优先级桶的减操作,结束;0067步骤407只进行总的令牌桶的添加,不进行低优先级桶的添加;0068步骤408根据总的令牌桶,进行TRTCM的算法处理;0069步骤409丢弃包,不进行令牌的减操作;通过包,只进行总桶的减操作;0070步骤410当总的令牌桶小于优先级桶时,必须将低优先级桶的令牌数置为。

29、总的令牌数,结束;0071步骤411只使用总的令牌桶,向桶中添加令牌数;0072步骤412进行RFC2697标准规定的算法处理,结束。0073另外,本发明提供的限速方法还可被扩展为多优先级的限速,而不仅限于高低优先级的区别,例如,分别是高、中、低三级优先级,在实现三级限速的时候,与两级限速的区别就是多用一套参数,且各套参数之间有一定的关联,具体实施如下00741配置不同属性报文的限速速率这里的属性是指不同的报文来自不同的源或者用户;00752配置三个令牌桶深度,分别对应高、中、低优先级桶深,三个桶深的关系应该是CBS高CBS中CBS低,同时CBS中CBS低要不大于CBS高,三个桶深同时包括优先。

30、级限速使能;这里的高优先级桶深相当于附图中的总桶深00763用来实时存储各令牌桶令牌数的存储装置。0077这里通过实例来具体说明多级限速的实施方式0078例如接收一中优先级报文,需要对其进行中优先级限速,其步骤如下00791根据报文的属性获取配置,限速的速率,高优先级令牌桶桶深,中优先级桶的桶深,是否进行中级优先级限速;00802根据获取的限速速率,以及上一报文至当前报文的时间差,计算出需要添加的令牌数;00813将计算的添加的令牌数分别添加进中级优先级令牌桶和高优先级桶中,获得当前可用的令牌数;00824将当前中优先级桶中的令牌数与当前报文长度进行比较,如果令牌数多于报文长度,则转发该报文,。

31、否则视为丢弃;00835同时更新中优先级桶和高优先级桶中的令牌数,若当前包丢弃,两个桶中的令牌数分别为4中的可用令牌数,对于大于令牌桶深的,则更新为桶深,对于通过的包,其令牌数为两者之差;这里需要注意的是,当低优先级桶中的令牌数多于中优先级令牌数时,必须更新低优先级桶中的令牌数使其等于中优先级桶中的令牌数;高优先级桶级别最高,桶中的令牌数不因其它桶中的令牌数的大小而改变0084流程结束。0085对于需要进行中优先级限速的非中优先级报文,那么,可能为低优先级报文或者是高优先级报文,如果是低优先级报文,且同时是低优先级限速使能,则图3中的方法进行限速。如果低优先级限速也不使能或者该报文为高优先级,。

32、则按照图2中的方法进行限速,高优先级桶对应总桶,中低优先级桶的更新参照图2中的低优先级桶的更新方法。说明书CN101997766ACN101997771A6/7页100086参照图5所示,是本发明的的基于优先级的令牌桶限速的系统结构图。0087配置模块501,用于根据报文的属性配置报文的限速参数,包括限速值,逐个递减的各级令牌桶深,并保证最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和;0088接收模块502,用于接收当前报文;0089获取模块503,获取与当前报文属性相对应得限速参数;0090计算模块504,用于接收到报文以后,计算将要添加的令牌数;0091第一判断模块505,用于。

33、当判断到不用进行优先级限速,发送第一触发信号;0092第一处理模块506,用于接收到所述第一触发信号后,将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前报文进行限速;0093第二判断模块507,用于当判断到要进行优先级限速,并进一步判断到报文优先级数与限速级数相同时,发送第二触发信号;0094第二处理模块508,用于同时将要添加的令牌数添加进最高级令牌桶及当前报文级数所对应的令牌桶中,利用当前报文级数所对应的令牌桶对当前报文进行限速;0095第三判断模块509,用于当判断到要进行优先级限速,并进一步判断到报文优先级数与限速级数不同时,发送第三触发信号;0096第三处理模块510,用。

34、于将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前报文进行限速。0097在本发明的一个优选实施例中,所述第二处理模块508,还用于同时更新最高级令牌桶和当前报文级数所对应的令牌桶中的令牌数。0098在本发明的一个优选实施例中,所述第三处理模块510,还用于令最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和。0099所述报文的属性是指不同的报文来自不同的源或者用户。0100所述计算模块504,用于根据限速值和本次报文与上次同一属性报文的时间差计算将要添加的令牌数。0101在本发明的一个优选实施例中,0102所述配置模块501用于配置逐个递减的各级令牌桶深,包括总令牌通深和低。

35、优先级令牌桶深,相应的,0103接收模块502,用于接收一低优先级报文;0104获取模块503,用于根据报文的属性获取报文的限速参数,所述参数包括限速值、总令牌通深、低优先级令牌桶深;0105第二判断模块507,用于判断到需要对其进行低优先级限速,发送第二触发信号;0106计算模块504,根据获取的限速值,以及上一报文至当前报文的时间差,计算出需要添加的令牌数;0107第二处理模块508,用于将计算的添加的令牌数分别添加进低优先级令牌桶和总桶中,获得当前可用的令牌数;将当前低优先级桶中的令牌数与当前报文长度进行比较,如果令牌数多于当前报文长度,则转发该当前报文,否则视为丢弃当前报文;同时更新低。

36、优先级桶和总桶中的令牌数,若当前报文丢弃,两个桶中的令牌数分别为添加后的可用令牌数,当添加后的令牌数大于令牌桶深,则将令牌桶的深度更新为桶深,当前报文通过,则令牌桶说明书CN101997766ACN101997771A7/7页11中的令牌数为添加后的令牌数与当前报文长度之差;更新总令牌桶和低优先级令牌桶的令牌数。0108在本发明的又一个优选实施例中,0109接收模块502,还用于接收一非低优先级报文;0110获取模块503,用于根据报文的属性获取报文的限速参数,所述参数包括限速值、总令牌通深、低优先级令牌桶深;0111根据获取的限速值,以及上一报文至当前报文的时间差,计算出需要添加的令牌数;0。

37、112计算模块504,将所述需要添加的令牌数只添加进总令牌桶中,获得当前可用的令牌数;0113第三判断模块509,用于当判断到要进行低优先级限速,发送第三触发信号;0114第三处理模块510,用于将当前总令牌桶中的令牌数与当前报文长度进行比较,如果令牌数多于当前报文长度,则转发该当前报文,否则视为丢弃当前报文;更新总令牌桶中的令牌数,若当前报文丢弃,总桶中的令牌数即为添加后的可用令牌数,当添加后的令牌数大于令牌桶深,则将令牌桶的深度更新为桶深,当当前报文通过,则令牌桶中的令牌数为添加后的令牌数与当前报文长度之差;当判断到总令牌桶中的令牌数小于低优先级桶中的令牌数,则更新低优先级桶的令牌数与总令。

38、牌桶中的令牌数相等。0115本发明提供的方法可以根据用户的需求扩展优先级的数目,只要遵照一个原则,最高优先级桶深配置不小于其余次优先级桶深配置的总和,在更新令牌数存储情况时同样遵循这个规则,即低优先级桶中的令牌数不得超过高一级令牌桶的令牌数;这样,利用本方法提供的限速说明,即可达到多级优先级的限速,提高网络服务质量QOS。0116需要指出的是,以上所述仅为本发明的较佳实施例,并非用来限定本发明的实施范围,凡是依据本发明所作的等效的变化与修改,都被本发明的专利范围所覆盖。说明书CN101997766ACN101997771A1/4页12图1图2说明书附图CN101997766ACN101997771A2/4页13图3说明书附图CN101997766ACN101997771A3/4页14图4说明书附图CN101997766ACN101997771A4/4页15图5说明书附图CN101997766A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1