一种调整令牌桶桶高的方法和装置的制作方法

文档序号:7957902阅读:219来源:国知局
专利名称:一种调整令牌桶桶高的方法和装置的制作方法
技术领域
本发明涉及通信技术领域,具体涉及一种调整令牌桶高的方法和装置。
背景技术
CAR(Committed Access Rate,约定访问速率)是IP(Internet Protocol,网际协议)网络中重要而有效的带宽管理方式。通常在网络的边沿接口处通过配置CAR来控制IP流量以特定的速率进出网络,从而有利于网络的运营商更好地经营网络,提供有保障的网络服务质量(QoS,Quality of Service)。
CAR对速率的限制是通过令牌桶(Token Bucket Policing)机制实现的。目前,很多网络处理器提供了利用硬件实现CAR控制(以下称作硬件CAR)的功能,硬件CAR的优势在于性能高,但硬件资源毕竟有限,令牌桶的高度(可以用令牌桶的容量表示,即每次突发所允许的最大的流量尺寸,通常设置为承诺突发尺寸(Committed Burst Size,CBS))受到硬件资源的限制,虽然可以进行一定调节,但是最大桶高才为128K,如果报文长度超过桶高,会造成CAR不准。
硬件CAR提供QoS的主要功能是流量监管。当一个报文到达时,触发CAR的处理流程。算法如下首先清算当前需要的令牌数目和清理上次欠债的情况,在得到确切的债务情况和令牌桶中的令牌数目后,开始处理令牌数目和当前接收包的发送关系。满足所需要令牌数目的数据包可以发送,不满足的数据包则被丢弃,或者根据参数的设置,重新设置数据包的优先级。
流量监管需要四个参数,即桶内令牌数(用BT表示)、时戳标记(用Tp表示)、令牌桶高度(用H表示)、令牌注入令牌桶的速率(注入速率),也就是限流速率(用V表示)。硬件CAR的具体算法流程如图1所示
步骤101当某个报文到来时,从时间戳(Time Stamp)里取出目前的时间值Tn(以ms为单位),获得报文长度S。
步骤102取出令牌桶的4个参数,即前述桶内令牌数、时戳标记、令牌桶高度和限流速率。
步骤103计算出DT=Tn-Tp,步骤104记录新的时戳Tp=Tn,步骤105向桶内注入令牌,时间为DT,并计算此时的桶内令牌数BTnBTn=BT+V×DT;步骤106判断BTn是否大于桶高H,如果大于,则执行步骤107,即令令牌数BTn等于桶高H,否则执行步骤108,即保持令牌数不变。具体算法为if BTn>H then//如果溢出,则令牌数等于桶的容量BTn=H;步骤109报文领取令牌,判断令牌数是否大于报文长度,如果大于,则执行步骤110,即允许报文通过,否则执行步骤111,即丢弃该报文。具体算法为if BTn>S then //领到足够的令牌,记录新的桶内令牌数,放行BT=BTn-S; //允许该报文通过;Else //如果领不到丢弃该报文; //BT不变;步骤112更新Tp和BT。
由于硬件CAR的桶高限制的原因,有时不能满足实际的网络需要,便产生了使用软件实现CAR控制(以下称作软件CAR)的现有技术。软件CAR的算法和硬件CAR的算法基本一样,需要由软件预先定义一个表来维护令牌桶的相关信息,利用多线程同时操作令牌桶,同时需要考虑信号量来进行保护,这样便可以调整令牌桶的桶高。但是由于利用软件CAR来调整桶高需要操作内存,多线程操作需要用信号量,这些因素必然会引起性能低下,无法满足实际网络设备的需要。

发明内容
有鉴于此,本发明要解决的技术问题就是为了克服在使用硬件实现CAR控制时,不能大范围调整令牌桶的桶高的缺陷,从而提供一种可以调整令牌桶桶高的方法和装置,在使用硬件实现CAR控制时,利用本发明来调整令牌桶的桶高。
本发明提供了一种调整令牌桶桶高的方法,在利用硬件实现CAR控制时,对网络处理器进行配置,按照相同的比例调整令牌的注入速率和领取速率。
其中,按照相同的比例动态调整令牌的注入速率和领取速率。
本发明还提供了一种调整令牌桶桶高的方法,在利用硬件实现CAR(Committed Access Rate,约定访问速率)控制时,对网络处理器进行配置,按照相同的比例调低令牌的注入速率和领取速率。
较佳地,按照相同的比例动态调低令牌的注入速率和领取速率。
其中,按照用户配置的令牌桶的桶高和所述令牌桶的最大桶高确定所述比例。
本发明还提供了一种调整令牌桶桶高的装置,包括输入端和调整端,其中输入端,用于输入一定比例;调整端,用于根据所述输入比例,同时调整令牌的注入速率和领取速率,将所述调整信息发送给网络处理器。
其中,所述输入端用于动态输入一定比例。
本发明还提供了一种调整令牌桶桶高的装置,包括输入端和调整端,其中输入端,用于输入一定比例;调整端,用于根据所述输入比例,同时调低令牌的注入速率和领取速率,将所述调整信息发送给网络处理器。
其中,所述输入端用于动态输入一定比例。
较佳地,还包括提示端,当用户配置的令牌桶桶高不大于所述令牌桶的最大桶高时,用于提示用户不必进行调整。
由于利用软件CAR来调整桶高需要操作内存,多线程操作需要用信号量,这些因素会造成性能降低。利用本发明所提供的方法和装置,可以在利用硬件CAR的同时,借助于本发明的方案来调整令牌桶的桶高,克服了硬件CAR时令牌桶桶高调节范围过低的弊端,在不需要改变硬件的情况下,使得令牌桶桶高可以低成本进行动态调整,尤其是可以动态底成本地调高令牌桶的桶高,可以在扩大桶高的同时还保持了硬件CAR的性能高的特点。


图1示出了现有技术中利用令牌桶实现CAR控制的流程图。
图2示出了本发明的装置实施例与网络处理器的连接示意图。
具体实施例方式
本发明的核心思想就是用户通过对网络处理器进行配置,按照相同的比例调整令牌的注入速率和领取速率,实现硬件CAR的令牌桶桶高调整。
为了便于理解本发明,下面结合附图对本发明进行进一步说明。
由于硬件CAR的令牌桶桶高的可调节范围很小,一般而言,最大仅为128K,无法进行进一步的调整。而本发明在利用硬件实现CAR控制时,通过对网络处理器进行配置,按照相同的比例调整令牌的注入速率和领取速率,以实现桶高的调整,尤其是,按照相同比例调低令牌的注入速率和领取速率时,便可以调高令牌桶的桶高。
以FTP(File Transfer Protocol,文件传送协议)协议为例,FTP协议是一个简单的网络文件传输协议,该协议是基于TCP(Transfer Control Protocol,传输控制协议)协议的应用层协议,数据报文的确认重传机制依赖于TCP协议而实现,在对FTP流量进行监管时,不可避免的会丢掉FTP报文。由于TCP的超时重发机制,隔一段时间后,会再次重发这个报文。假设超时时间为DT,由上面的公式BTn=BT+V×DT;if BTn>H then//如果溢出,则令牌数等于桶的容量BTn=H;如果令牌桶不够大,则会有BTn>H情况的发生,而在DT时间内,溢出的令牌数为BT+V×DT-H,而这部分也正是丢失的流量,从而会造成FTP流量监管不准。尽管网络处理器的桶高可以进行一定的调节,但是桶高一般最大仅为128K,监管速率误差还是很大。
令牌溢出是由于桶不够高,但是令牌注入速率过快也是一个不容忽视的原因。如果将令牌的注入速率V降低n倍,则令牌的注入速率为 由于注入速率变化为原来的 则桶内的令牌数也相应变为 在DT时间内,注入的令牌数目为 在DT时刻,令牌桶内的令牌数目为Vn×DT+BTn=BT+V×DTn=BTnn]]>报文长度为 则令牌的债务关系并没有发生改变,为 即,仍是BTn和S进行比较,不同的是剩余的令牌数变为原来的 这一具体比例是根据用户配置的令牌桶的桶高和所述令牌桶的最大桶高而确定的。用户配置CAR时,需要配置令牌桶的注入速率和令牌桶高,假设硬件令牌桶的最大桶高为128K,如果用户配置的令牌高小于128K,则不用调整注入速率和报文的领取速率;如果用户配置的桶高大于128K,则自动启动令牌高的调整,调整比例就是用户实际配置的桶高和128K的比值,如果用户要求令牌桶的桶高为1M,则将注入速率和领取速率调低8倍。
例如,将8M的注入速率改为1M,即将注入速率降低到1/8,也就相当于将令牌桶增加到8倍。另一方面,注入速率降低到1/8,领取令牌的速率(即领取速率)也必须降低到1/8,即报文长度也必须降低到1/8,以达到收支平衡。
当然,这样的具体比例还可以进行其他形式的变换,例如用户配置的桶高和令牌桶的最大桶高各加上一定的常数再进行相比等等,但是这些变换都应视作本发明的保护范围。
当然,也可以相应将注入速率和领取速率调高,相应地,令牌桶的桶高也便同比例的降低。比如,将1M的注入速率改为8M,即将注入速率调高8倍,也就相当于将令牌桶桶高降低到1/8倍;另一方面,注入速率调高到原来的8倍,领取令牌的速率(即领取速率)如果也调高到原来的8倍,即报文长度也调高到原来的8倍,就可以达到收支平衡。
利用本发明,令牌桶桶高不是一成不变的,可以进行动态的调整,调整的时候,只需要再次更改这一比例即可。
图2就是本发明的一个装置实施例200与网络处理器300的连接示意图,该装置200包括输入端201和调整端202,从输入端201输入一定比例,该比例是根据用户配置的令牌桶的桶高和所述令牌桶的最大桶高而确定的,可以是大于1,也可以不大于1,然后调整端202根据输入的比例,将令牌的注入速率和领取速率同时进行调整,并将该调整信息发送给网络处理器300,以实现令牌桶桶高的调整。
当然该装置还可以进一步设置成只调低令牌的注入速率和领取速率,并将这样的调整信息发送给网络处理器300,实现令牌桶桶高的调高。
当然,该装置还可以进一步包括提示端203,当用户配置的令牌桶桶高不大于所述令牌桶的最大桶高时,用于提示用户不必进行调整。因为如果用户配置的令牌桶桶高小于令牌高的最大桶高,则这一令牌桶就可以满足用户的需求,而不必再进行桶高调整。
以上的比例并非一成不变,可以动态进行更改,鉴于上文已叙,此处不再赘述。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种调整令牌桶桶高的方法,其特征在于,在利用硬件实现CAR(Committed Access Rate,约定访问速率)控制时,对网络处理器进行配置,按照相同的比例调整令牌的注入速率和领取速率。
2.如权利要求1所述的调整令牌桶桶高的方法,其特征在于,按照相同的比例动态调整令牌的注入速率和领取速率。
3.一种调整令牌桶桶高的方法,其特征在于,在利用硬件实现CAR(Committed Access Rate,约定访问速率)控制时,对网络处理器进行配置,按照相同的比例调低令牌的注入速率和领取速率。
4.如权利要求3所述的调整令牌桶桶高的方法,其特征在于,按照相同的比例动态调低令牌的注入速率和领取速率。
5.如权利要求3或4所述的调整令牌桶桶高的方法,其特征在于,按照用户配置的令牌桶的桶高和所述令牌桶的最大桶高确定所述比例。
6.一种调整令牌桶桶高的装置,其特征在于,包括输入端和调整端,其中输入端,用于输入一定比例;调整端,用于根据所述输入比例,同时调整令牌的注入速率和领取速率,将所述调整信息发送给网络处理器。
7.如权利要求6所述的调整令牌桶桶高的装置,其特征在于,所述输入端用于动态输入一定比例。
8.一种调整令牌桶桶高的装置,其特征在于,包括输入端和调整端,其中输入端,用于输入一定比例;调整端,用于根据所述输入比例,同时调低令牌的注入速率和领取速率,将所述调整信息发送给网络处理器。
9.如权利要求8所述的调整令牌桶桶高的装置,其特征在于,所述输入端用于动态输入一定比例。
10.如权利要求8或9所述的调整令牌桶桶高的装置,其特征在于,还包括提示端,当用户配置的令牌桶桶高不大于所述令牌桶的最大桶高时,用于提示用户不必进行调整。
全文摘要
本发明涉及通信技术领域,具体涉及一种调整令牌桶桶高的方法和装置。在利用硬件实现CAR(Committed Access Rate,约定访问速率)控制时,对网络处理器进行配置,按照相同的比例调整令牌的注入速率和领取速率。借助于本发明提供的方法和装置来调整令牌桶的桶高,克服了硬件CAR时令牌桶桶高调节范围过低的弊端,在不需要改变硬件的情况下,使得令牌桶桶高可以低成本进行动态调整,同时还保持了硬件CAR的性能高的特点。
文档编号H04L12/26GK1968131SQ200610062949
公开日2007年5月23日 申请日期2006年9月29日 优先权日2006年9月29日
发明者任广涛 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1