基于令牌桶算法的接入速率限制方法

文档序号:7568003阅读:335来源:国知局
专利名称:基于令牌桶算法的接入速率限制方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种基于令牌桶算法的接入速率限制方法。
背景技术
在网络通信过程中,通常需要在NP(网络处理器)对用户进行流量控制,所谓的流量控制为针对网络中传送的数据报文采不同的CAR(接入速率限制)进行传输控制。然而,在网络接入设备中,WEB(环球网)用户需要通过下载的控件定时发送心跳报文与Portal server(门户网站服务器)握手,以确定用户是否处于连接状态。这样,当用户传送大流量的心跳报文时,网络处理器无法对数据报文和心跳报文进行区别对待,而是将心跳报文和数据报文统一作CAR处理,导致用户最终被强制下线。
目前,宽带产品大多采用双色单漏桶算法实现流量控制,该算清是利用一个漏桶来实现CAR处理,所述的单漏桶CAR的基本实现算法为公式(1)Ttoken j-1+(Taij-Taij-1) >=Plenj*Ptoken;其中,Ptoken表示令牌的速率,单位为秒/字节,实际应用中可以以网络处理器的定时器的Ticks(时钟周期)为参考单位,即Ptoken的单位为Ticks/字节;Ttoken j-1表示第j-1个包离开时剩余的令牌数,单位为Ticks;Taij、Taij-1分别为第j个、第j-1个包到达时定时器的计时数,单位均为Ticks;Plenj为第j个包的包长,单位为字节。
公式(1)统一在以Ticks为单位上时,其含义为第j个包到达,如果前一个包离开时剩余的令牌数(Ttoken j-1)加上当前定时器与前一个包通过时定时器的差值(Taij-Taij-1)所得之和不小于通过第j个包所需要的令牌数(Plenj*Ptoken),则第j个包即可通过。
因此,现有基于单漏桶算法实现的CAR只能基本满足流量控制的需求,而无法根据报文的优先级实现不同优先级报文的CAR。
为此,提出了一种双漏桶CAR算法,现以普通的三色双漏桶算法为例对双漏桶CAR算法进行说明在双漏桶CAR算法中,是以CIR(流的平均速率)产生令牌,如果有借债,先还借债,剩余部分填充令牌桶,令牌桶容量等于CBS(顺从突发度),超出部分被丢弃。当包到达时,比较漏桶中的令牌数与包的大小,如果包小于漏桶中的令牌数,在漏桶中减少相应的令牌数,并将包标记为绿色。如果包大于漏桶中的令牌数,不足部分产生借债,如果累计借债小于EBS(扩展突发度),则将包标记成黄色,并调整累计借债为新值。否则,将包标记成红色,令牌数和累计借债数维持不变。EBS>=CBS。当EBS=CBS,则退化成两色,即黄色或绿色,对于绿色或黄色的数据包允许进行发送处理,而对于红色的数据包则不允许进行发送处理。
因此,所述的双漏桶CAR算法虽然可以很好地满足流量控制的需求,但其实现需要消耗大量的微码资源,从而导致网络接入设备的整机性能下降较大,给网络接入设备的正常工作带来较大的影响。

发明内容
本发明的目的是提供一种基于令牌桶算法的接入速率限制方法,以实现针对接入用户发生的报文按不同优先级作CAR,同时保证网络接入设备的性能下降最小。
本发明的目的是这样实现的本发明所述的一种基于令牌桶算法的接入速率限制方法,包括A、确定令牌桶中可以使用的令牌数及对待处理的数据包进行转发处理时需要的令牌数;B、当可以使用的令牌数小于对待处理的数据进行转发处理时需要的令牌数时,判断待处理的数据包是否为高优先级的数据包,如果是,则执行步骤C,否则,执行步骤D;C、计令牌桶中可以使用的令牌数为负值,并对待处理的数据包进行转发处理,本次处理过程结束;D、不对待处理的数据包进行转发处理,且本次处理过程结束。
所述的步骤A包括读取计时器当前时间值,并根据上一个数据包离开时,计时器的时间值及令牌桶中剩余的可以使用的令牌数,确定令牌桶中可以使用的令牌数,即令牌楹中可以使用的令牌数等于计时器当前时间值与上一个数据离开时的时间值的差,再加上一个数据包离开时令牌桶中剩余的可以使用的令牌数。
所述的步骤A包括根据令牌的速率和待处理的数据包的包长确定对其进行转发处理需要的令牌数,即对其进行转发处理需要的令牌数等于令牌的速率乘以待处理的数据包的包长。
所述的步骤B包括B1、判断当前令牌桶中可以使用的令牌数是否大于零,如果大于零,则执行步骤B3,否则,执行步骤B2;B2、判断待处理的数据包是否为高优先级的数据包,如果是,则执行步骤B3,否则,执行步骤D;
B3、确定对待处理的数据包进行转发处理时需要使用的令牌数;B4、从令牌桶中减去步骤B3所确定的令牌数,并判断令牌桶中剩余的可以使用的令牌数是否大于零,如果大于零,则对待处理的数据包进行转发处理,否则,执行步骤B5;B5、判断待处理的数据包是否为高优先级,如果是,则执行步骤C,否则,执行步骤D。
其中步骤B4所述的如果大于零,则对待处理的数据包进行转发处理,还包括判断令牌桶中剩余的可以使用的令牌数是否大于突发度,即令牌桶高度,如果大于,则令令牌桶中剩余的可以使用的令牌数等于令牌桶高度,并保存于CAR(承诺接入速率)表中,否则,直接将令牌桶中剩余的可以使用的令牌数保存于CAR表中。
所述的步骤C包括C1、将令牌桶中可以使用的令牌数计为负值,并保存于CAR表中;C2、记录当前计时器的计时值,并保存于CAR表中;C3、对待处理的数据包进行转发处理。
由上述本发明提供的技术方案可以看出,本发明采用了双漏桶的基本算法,但仅使用一令牌桶实现流量控制,从而在保证网络接入设备整机性能下降最小的情况下,实现针对接入用户发生的报文按不同优先级作CAR,以最终实现对接入用户的流量控制。


图1为本发明所述的方法的具体实施流程图。
具体实施例方式
由于实现双漏桶根据网络处理器增加读写内存的次数,对整机性能影响较大,为此,本发明采用了双漏桶的基本算法,但是只用一个令牌桶,允许此令牌桶中令牌为负值用反码表示。
本发明所述的方法的具体实施方式
参见图1所示,包括以下步骤步骤11读取计时器当前时间。
步骤12从CAR表中读取上一个数据包离开时计时器的时间值。
步骤13计算计时器当前时间与上一个数据包离开时计时器的时间值的差值。
步骤14将步骤13所获得的差值加上一个数据包离开时令牌桶中剩余的令牌数,作为令牌桶中可以使用的令牌数。
步骤15判断令牌桶中可以使用的令牌数是否大于零,如果大于零,则执行步骤16,否则,执行步骤17;步骤16计算出新的待处理的数据包需要的令牌数,即采用令牌的速率乘以该数据包的包长作为待处理的数据包需要的令牌数,并执行步骤18。
步骤17判断新的待处理的数据包是否为高优先级的数据包,如果是,则执行步骤18,否则,执行步骤27。
步骤18由于网络处理器不能实现乘除操作,而所有的乘除操作都由上层软件计算后变成位移操作来实现,因此该步骤需要判断令牌桶中的左移位值是否大于零,如果是,则执行步骤19,将令牌桶中的左移位侧左移待处理的数据需要的令处理数位,并执行步骤21,否则执行步骤20,按令牌桶中的右移位值右移待处理的数据需要的令处理数位,并执行步骤21。
步骤21计算令牌桶中处理完成新的待处理的数据包后亲的剩余的令牌数为令牌桶中可以使用的令牌数减去待处理的数据包需要的令牌数。
步骤22判断新的剩余的令牌数是否大于零,如果大于零,则执行步骤24,否则,执行步骤23;
步骤23判断上述待处理的数据包是否高优先级的数据包,如果是,则执行步骤24,否则,执行步骤27。
步骤24判断新的剩余的令牌数是否大于突发度,即令牌桶高度值,如果大于,则执行步骤25,否则,执行步骤26;步骤25令新的剩余的令牌数等于令牌桶高度值,并执行步骤26;步骤26将确定的剩余的令牌数存入CAR表中,并执行步骤28。
步骤27因令牌数不够,将新的待处理的数据包丢弃。
步骤28将当前的计时器时间值作为Departure_Time_stam(当前数据包离开时间)存入CAR表中,即作为数据包离开时间保存于CAR表中。
步骤29转发新的待处理的数据包。
经过上述步骤11至步骤29的处理过程,实现了对网络中传输的数据包的带优先级的CAR限制,且采用的为单漏桶,保证了处理过程的实现对整机性能的影响较小。
权利要求
1.一种基于令牌桶算法的接入速率限制方法,其特征在于包括A、确定令牌桶中可以使用的令牌数及对待处理的数据包进行转发处理时需要的令牌数;B、当可以使用的令牌数小于对待处理的数据进行转发处理时需要的令牌数时,判断待处理的数据包是否为高优先级的数据包,如果是,则执行步骤C,否则,执行步骤D;C、计令牌桶中可以使用的令牌数为负值,并对待处理的数据包进行转发处理,本次处理过程结束;D、不对待处理的数据包进行转发处理,且本次处理过程结束。
2.根据权利要求1所述的基于令牌桶算法的接入速率限制方法,其特征在于,所述的步骤A包括读取计时器当前时间值,并根据上一个数据包离开时,计时器的时间值及令牌桶中剩余的可以使用的令牌数,确定令牌桶中可以使用的令牌数,即令牌楹中可以使用的令牌数等于计时器当前时间值与上一个数据离开时的时间值的差,再加上一个数据包离开时令牌桶中剩余的可以使用的令牌数。
3.根据权利要求1或2所述的基于令牌桶算法的接入速率限制方法,其特征在于,所述的步骤A包括根据令牌的速率和待处理的数据包的包长确定对其进行转发处理需要的令牌数,即对其进行转发处理需要的令牌数等于令牌的速率乘以待处理的数据包的包长。
4.根据权利要求1所述的基于令牌桶算法的接入速率限制方法,其特征在于,所述的步骤B包括B1、判断当前令牌桶中可以使用的令牌数是否大于零,如果大于零,则执行步骤B3,否则,执行步骤B2;B2、判断待处理的数据包是否为高优先级的数据包,如果是,则执行步骤B3,否则,执行步骤D;B3、确定对待处理的数据包进行转发处理时需要使用的令牌数;B4、从令牌桶中减去步骤B3所确定的令牌数,并判断令牌桶中剩余的可以使用的令牌数是否大于零,如果大于零,则对待处理的数据包进行转发处理,否则,执行步骤B5;B5、判断待处理的数据包是否为高优先级,如果是,则执行步骤C,否则,执行步骤D。
5.根据权利要求4所述的基于令牌桶算法的接入速率限制方法,其特征在于,步骤B4所述的如果大于零,则对待处理的数据包进行转发处理,还包括判断令牌桶中剩余的可以使用的令牌数是否大于突发度,即令牌桶高度,如果大于,则令令牌桶中剩余的可以使用的令牌数等于令牌桶高度,并保存于CAR(承诺接入速率)表中,否则,直接将令牌桶中剩余的可以使用的令牌数保存于CAR表中。
6.根据权利要求1或4所述的基于令牌桶算法的接入速率限制方法,其特征在于,所述的步骤C包括C1、将令牌桶中可以使用的令牌数计为负值,并保存于CAR表中;C2、记录当前计时器的计时值,并保存于CAR表中;C3、对待处理的数据包进行转发处理。
全文摘要
本发明涉及一种基于令牌桶算法的接入速率限制方法。该方法的核心为当可以使用的令牌数小于对待处理的数据进行转发处理时需要的令牌数时,根据待处理的数据包是否为高优先级的数据包对其进行相应的处理,如果是对其进行转发处理,并计令牌桶中可以使用的令牌数为负值,否则,丢弃待处理的数据包。本发明采用了双漏桶的基本算法,但仅使用一令牌桶实现流量控制,从而在保证网络接入设备整机性能下降最小的情况下,实现针对接入用户发生的报文按不同优先级作CAR,以最终实现对接入用户的流量控制。
文档编号H04Q3/64GK1601963SQ0313501
公开日2005年3月30日 申请日期2003年9月26日 优先权日2003年9月26日
发明者侯超, 龚钧 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1