一种基于承诺接入速率的带宽统计复用方法

文档序号:7906230阅读:242来源:国知局
专利名称:一种基于承诺接入速率的带宽统计复用方法
技术领域
本发明涉及网络带宽的管理技术,特别是指一种基于承诺接入速率(CAR,Committed Access Ratio)的带宽统计复用方法。
背景技术
带宽是一种重要的网络资源,因此需要对带宽进行统计复用来合理分配网络各端口带宽,充分利用网络资源。
CAR是一种带宽管理机制,通过配置CAR,网络管理员可以为不同的业务、用户分配不同的带宽,定义业务占用的带宽超过分配额度时的处理策略,通过限制通过路由器某一端口的流量,可以很好地保证整个网络的服务质量(QoS),CAR既可以用于交换网的入口也可用于交换网的出口。
现有技术大多在交换网的入端口或出端口单独作CAR,例如参见图1所示,一个交换网的入端口1、2、3共享一个出端口4,在该交换网的入端口采用CAR处理报文流量。在计算出各入端口流量的带宽之后,还需在共享同一出端口的入端口之间分配剩余的带宽。假设端口1、2、3进来的报文都是从端口4送出,可以为端口1、2、3建立一个带宽使用记录表,该表格式可以如下表1

表2

其中带宽单位为Mbps;剩余带宽=实际占用带宽-分配带宽,这里实际占用带宽是指上一次计算时该端口占用的带宽;总剩余带宽=各端口剩余带宽之和;可使用带宽=实际占用带宽+借用带宽。
一般,将总剩余带宽分配给剩余带宽为负数的端口,作为它们的借用带宽。端口的剩余带宽为负数说明该端口已经多占用了带宽、或需要更多带宽。
例如在表1中,端口3的实际使用带宽有剩余,则将端口3的剩余带宽平均分配给端口1和2。而在表2中,端口3的流量上升,需要索回本应当属于自己的带宽,于是端口3的剩余带宽为零,导致总剩余带宽出现负数-2,端口1和2的平均分配总剩余带宽为-2,因此端口1和2的借用带宽各为-1,将借用带宽加上它们各自的实际占用带宽就是目前可以使用的带宽。
从上面的例子中可以看出现有的带宽统计复用方法,只是在交换网出端口或者入端口中配置CAR。因此在处理一个端口的同时还需综合考虑其它端口的情况,不利于各端口独立本端口的业务流量,使计算量增加,特别是剩余带宽的计算和分配非常繁琐,需要在几个共享出端口带宽的入端口之间统一分配剩余的带宽。并且由于计算的是过去的平均带宽,不能及时反应带宽的动态变化情况,需要保存的关于报文到达时间、包长等信息较多,不适合处理速度要求高的场合。另外端口之间没有共享机制,如果一个端口分配的带宽没有用完,其它端口无法共享尚未用完的带宽,造成带宽资源浪费。

发明内容
有鉴于此,本发明的主要目的在于提供一种基于承诺接入速率的带宽统计复用方法。以简化带宽统计复用的计算量,及时反映带宽的动态变化情况,减少需要保存的报文信息。
为达到上述目的本发明的技术方案是这样实现的一种基于承诺接入速率的带宽统计复用方法,在交换网的入端口和出端口分别采用CAR处理报文流量;在入端口对报文的处理过程包括a1)获取入端口的当前可用令牌数;b1)计算入端口发送当前报文需消耗的令牌数;c1)比较发送当前报文需消耗的令牌数与当前可用令牌数,如果当前可用令牌数大于发送当前报文需消耗的令牌数,则将当前报文加上基本带宽标记向交换网内部转发,否则,将该报文加上额外带宽标记向交换网内部转发,返回步骤a1);在出端口对报文的处理包括a2)预先建立负债令牌数的记录;b2)获取出端口的当前可用令牌数;c2)获取负债令牌数,比较当前可用令牌数与负债令牌数,如果当前可用令牌数大于负债令牌数,则更改当前可用令牌数为当前可用令牌数减去负债令牌数,更改负债令牌数的值为零,并进入下一步,否则,更改可用令牌数的值为零,更改负债令牌数为负债令牌数减去可用令牌数的值,并进入下一步;d2)计算得到发送当前报文需消耗的令牌数;e2)判断当前报文是否带有基本带宽标识,如果是,将负债令牌数加上发送当前报文需消耗的令牌数作为负债令牌数保存,去掉报文的基本带宽标识转发,返回步骤b2),否则,进入步骤f2);f2)判断负债令牌数是否为零,如果不为零,进入步骤g2),否则比较当前可用令牌数与发送当前报文需消耗的令牌数,如果当前可用令牌数大于当前报文需消耗的令牌数,则去掉该报文的额外带宽标记转发,返回步骤b2),否则,进入步骤g2);g2)丢弃当前报文,返回步骤b2)。
该方法所述步骤c1)中如果当前可用令牌数大于发送当前报文需消耗的令牌数,则进一步包括将当前可用令牌数减去发送当前报文需消耗的令牌数作为剩余令牌数,将当前报文到达时间作为上一个报文到达时间保存。
该方法所述步骤a1)具体包括读取入端口当前报文到达时间,从入端口读取上一个报文到达时间,将当前报文到达时间减去上一个报文到达时间得到新获得的令牌数;读取入端口剩余令牌数,将新获得的令牌数加上剩余令牌数得到当前可用令牌数。
该方法所述步骤e2)中如果当前报文带有基本带宽标识,则进一步包括将当前可用令牌数作为剩余令牌数保存;步骤f2)中如果当前可用令牌数大于当前报文需消耗的令牌数,则将当前可用令牌数减去发送当前报文需消耗的令牌数作为剩余令牌数保存,将当前报文到达时间作为上一个报文到达时间保存;步骤g2)进一步包括将当前可用令牌数作为剩余令牌数保存,将当前报文到达时间作为上一个报文到达时间保存。
该方法所述步骤b2)具体包括读取出端口当前报文到达时间,从出端口读取上一个报文到达时间,将当前报文到达时间减去上一个报文到达时间得到新获得的令牌数;读取出端口剩余令牌数,将新获得的令牌数加上剩余令牌数得到当前可用令牌数。
该方法所述步骤b1)具体包括获取入端口的令牌速率,将当前报文长度乘以令牌速率得到发送当前报文需消耗的令牌数。
该方法所述步骤d2)具体包括获取出端口的令牌速率,将当前报文长度乘以令牌速率得到发送当前报文需消耗的令牌数。
该方法在入端口的报文处理过程中预先增加令牌桶大小的项目,则步骤a1)后进一步包括比较当前可用令牌数与令牌桶大小,如果当前可用令牌数大于令牌桶大小,则将当前可用令牌数更改为令牌桶大小的值,进入步骤b1),否则直接进入步骤b1)。
该方法在出端口的报文处理过程中预先增加令牌桶大小的项目,则步骤b2)后进一步包括比较当前可用令牌数与令牌桶大小,如果当前可用令牌数大于令牌桶大小,则将当前可用令牌数更改为令牌桶大小的值,进入步骤c2),否则直接进入步骤c2)。
该方法一个以上的所述入端口共享一个出端口。
由上述方案可以看出,本发明所提供的一种基于承诺接入速率的带宽统计复用方法,在交换网的出端口和入端口分别做CAR,使交换网的几个入端口共享一个出端口,从而大大简化了带宽统计复用的算法,能够及时反映带宽的动态变化情况,减少了CAR参数表中需要保存的报文信息,同时各入端口之间相互独立,在实现CAR的带宽限制功能的同时实现了带宽的统计复用。


图1为现有技术计算带宽直接方法的示意图;图2为本发明实施例两个入端口共享一个出端口的示意图;图3为基于CAR的带宽统计复用示意图;图4为本发明实施例的入端口CAR处理流程图;图5为本发明实施例的出端口CAR处理流程图。
具体实施例方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明是一种基于CAR算法的带宽统计复用方法,可在实现CAR的基本功能的同时实现不同用户之间的带宽统计复用。其思想可以概括为通过做CAR的方式在保证用户基本带宽,即承诺接入速率的前提下实现不同用户或业务间的带宽统计复用。具体地说是在交换网的出端口和入端口分别做CAR处理,在入端口做CAR时,先区分基本带宽报文和额外带宽报文,报文送入交换网之前在报文前面加上不同的标识以示区别,在出端口做CAR时,基本带宽报文采用欠令牌的方式无条件通过,额外带宽报文则视令牌剩余情况酌情通过。
CAR的算法公式为Ttokenj-1+(Taij-Taij-1)≥Plenj×Ptoken(1)其中,Ttokenj-1表示第j-1个包离开时剩余的令牌数,单位为Ticks,Tick是处理器的定时器的最小时间单位。Taij、Taij-1分别为第j个、第j-1个包到达时Timer的计时数,可从定时器获得,单位均为Ticks,差值(Taij-Taij-1)即为新获得的令牌。Plenj为第j个包的包长,单位为Byte。Ptoken表示令牌速率,单位为秒/字节,实际应用中以处理器的定时器Timer的Ticks为单位,则为Ticks/Byte,令牌速率是一个与基本带宽有关的量,它其实与带宽成倒数关系,表示通过一个字节的报文所需要的时间。这样,计算公式被统一在以Ticks为单位上。上述公式的意义可以表述为第j个包到达,如果前一个包离开(通过)时剩余的令牌数(Ttokenj-1)加上当前Timer与前一个包通过时Timer的差值(Taij-Taij-1)所得之和,即现有的令牌数不小于通过第j个包所需要的令牌数(Plenj×Ptoken),则第j个包即可通过;也可以表述为如果现有的令牌数(Ticks)大于发送当前报文需消耗的令牌数,则报文能够通过。在进行公式(1)的比较之前需用令牌桶(Burst_Size)来限制Ttokenj-1+(Taij-Taij-1)的最大值,目的是为了防止令牌的过渡积累导致大流量到来时冲击设备的处理能力,令牌桶值的大小可以根据允许的突发带宽和突发时间来确定。
参见图2所示,入端口1和端口2共享出端口3,端口1和端口2的承诺接入带宽,即基本带宽之和等于端口3的出口带宽。当端口1或端口2中进来报文的带宽不够基本带宽或一个端口没有报文进来时,另外一个端口能部分或全部使用该端口的带宽,但保证总的带宽不变;如果两个入端口的带宽都超过了承诺接入速率,则两者都按承诺速率接入;也就是说只要入口报文的带宽之和大于出口带宽,出端口3的带宽就是恒定的。
举例来说,假定图2中端口1、端口2的承诺接入带宽都限定为10Mbps,出端口3的限定带宽是20Mbps。基于CAR的带宽统计复用过程参见图3所示。
在入端口做CAR处理时,将满足公式(1),且报文大小在10Mbps的带宽范围以内的打上基本带宽标记送入交换网,否则,报文打上额外带宽的标记送交换网,这样做的目的是为了保证用户的基本带宽,也就是报文按带宽分类全部进入交换网。需要注意的是以额外带宽通过的报文不能占用令牌,送入交换网时也不需要保存剩余令牌数和当前报文的离开时间,否则在出端口做CAR时无法实现带宽统计复用。报文按照端口的设置带宽分类并打上基本带宽或额外带宽标识后全部进入交换网,也就是说在入端口是不限制报文流量的。
对于出端口的CAR处理,需要预先在普通的CAR参数表中增加负债令牌项目,这是由于带基本带宽标记的报文是无条件通过的,即使令牌欠缺也要通过,因此必须先让此类报文通过,再待其通过后将该报文所消耗的令牌数累加在负债令牌数内。在每次处理报文获得新的令牌并加上剩余令牌之后,首先用于补偿负债令牌数。在出端口做CAR处理时,如果处理的是带基本带宽标记的报文,则计算该报文通过需消耗的令牌数,并将该值累加在负债令牌数上,然后报文直接从出端口转发。如果处理的是带额外带宽标记的报文,则首先计算现有的令牌数Ttokenj-1+(Taij-Taij-1),接下来用该值抵消欠缺令牌,如果抵消之后欠缺令牌数仍不为零,则将该报文丢弃,丢弃的报文仍可等待令牌数充足的时候通过;如果抵消之后令牌有剩余,则再看剩下的令牌是否足够发送该报文,即是否满足公式(1),如果足够,则报文通过,否则报文丢弃,丢弃之前需保存补偿之后的剩余令牌数和离开时间。另外,如果额外带宽报文能通过,也需要消耗令牌,并更新和保存剩余令牌数和离开时间,这点与入端口的CAR过程不一样。
入端口和出端口的参数表需要的参数参见表3所示表3

其中,令牌速率和令牌桶大小的值在报文处理过程中较为固定。令牌速率可根据出端口和入端口的带宽大小换算得出。令牌桶用于防止用户长时间没有报文进来导致令牌积累过多,一旦有大业务量到来时冲击其它端口,因此通过设置令牌桶的方式将获得的令牌数限制为令牌桶大小之内,令牌桶大小可根据端口所在网络的报文处理能力进行确定。
本发明实施例的交换网入端口CAR处理的具体步骤流程参见图4所示步骤401,读取当前正在处理的报文到达时间Current_Timer,再从入端口CAR参数表中读取上一次报文到达时间Last_Timer,计算它们的时间差值ΔT=Current_Timer-Last_Timer,此即为新获得的令牌数。
步骤402,从入端口的CAR参数表中读取剩余令牌数Rest_Token,将新获得的令牌数ΔT与剩余令牌数相加计算出可用令牌数Used_Token,即Used_Token=ΔT+Rest_Token。
步骤403,从入端口的CAR参数表中读取令牌桶大小Burst_Size,将可用令牌数与令牌桶大小比较,如果Used_Token>Burst_Size,则将可用令牌数取为令牌桶大小的值,即取Used_Token=Burst_Size,并进入下一步,否则,直接进入下一步。
步骤404,从入端口的CAR参数表中读取令牌速率Ptoken,计算发送当前报文需消耗的令牌数P_Token,由上述可知P_Token=Plen×Ptoken。
步骤405,比较可用令牌数Used_Token与发送当前报文需消耗的令牌数P_Token的值,如果可用令牌数比发送当前报文需消耗的令牌数大,即它们的差值ΔToken=Used_Token-P_Token 0,则进入下一步,否则,说明可用令牌数不够,则在该报文前面加上额外带宽标记转发,返回步骤401。
步骤406,将ΔToken作为本次处理后的剩余令牌数Rest_Token存入CAR参数表,将当前正在处理的报文到达时间Current_Timer作为上一次报文到达时间Last_Timer存入CAR参数表,并将该报文前面加上基本带宽标记向交换网转发,返回步骤401。
其中,基本带宽的标记和额外带宽的标记可以任意表示,比如在基本带宽的报文前面加上aa,即10101010,在额外带宽的报文前面加上55,即01010101。
交换网出端口CAR处理的具体步骤流程参见图5所示步骤501,读取当前正在处理的报文到达时间Current_Timer,从出端口CAR参数表中读取上一次报文到达时间Last_Timer,计算它们的差值ΔT=Current_Timer-Last_Timer,即为新获得的令牌数。
步骤502,从出端口的CAR参数表中读取剩余令牌数Rest_Token,再将新获得令牌数ΔT与剩余令牌数相加计算出现在的可用令牌数Used_Token,即Used_Token=ΔT+Rest_Token,读出负债令牌数Delt_Token。
步骤503,从出端口的CAR参数表中读取负债令牌数Delt_Token,比较可用令牌数Used_Token与负债令牌数,如果Used_Token>Delt_Token,则更改可用令牌数为Used_Token=Used_Token-Delt_Token,并更改负债令牌数Delt_Token为0保存在CAR参数表,进入下一步,否则更改可用令牌数Used_Token为0,更改负债令牌数Delt_Token=Delt_Token-Used_Token并保存在CAR参数表,进入下一步。
步骤504,从出端口的CAR参数表中读取令牌桶大小Burst_Size,判断可用令牌数Used_Token是否大于令牌桶大小,如果是,将可用令牌数设置为令牌桶大小的值,即Used_Token=Burst_Size,并进入下一步,否则直接进入下一步。
步骤505,计算发送当前报文需消耗的令牌数P_Token=Plen×Ptoken。
步骤506,根据报文前面的标识判断该报文是否为基本带宽报文,如果是,计算现在负债令牌数Delt_Token=Delt_Token+P_Token,并将其存入CAR参数表;将可用令牌数Used_Token作为剩余令牌数Rest_Token存入CAR参数表;将当前正在处理的报文到达时间Current_Timer作为上一个报文到达时间Last_Timer存入CAR参数表;去掉报文前面的基本带宽标记向外转发,返回步骤501,否则进入下一步。
步骤507,判断负债令牌数Delt_Token是否为零,如果不为零,则进入步骤507,如果为零,则比较可用令牌数与发送当前报文需消耗的令牌数的大小,即判断是否它们的差值ΔToken=Used_Token-P_Token≥0,如果是,则将该差值ΔToken作为剩余令牌数Rest_Token存入CAR参数表;将当前正在处理的报文到达时间Current_Time作为上一个报文到达的时间Last_Time存入CAR参数表;并去掉该报文前面的额外带宽标记转发,返回步骤501,否则,进入步骤507。
步骤508,将可用令牌数Used_Token作为剩余令牌数Rest_Token存入CAR参数表;将当前正在处理的报文到达时间Current_Time作为上一个报文到达的时间Last_Time存入CAR参数表,并丢弃该报文,返回步骤501。
本发明方法通过在交换网的出端口和入端口分别进行CAR处理,使两个或多个端口各自分配了一定的带宽,并且共享一个网络通道作为出端口,如果一个端口分配的带宽没有用完,其它端口可以共享其尚未用完的带宽。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于承诺接入速率(CAR)的带宽统计复用方法,其特征在于,在交换网的入端口和出端口分别采用CAR处理报文流量;在入端口对报文的处理过程包括a1)获取入端口的当前可用令牌数;b1)计算入端口发送当前报文需消耗的令牌数;c1)比较发送当前报文需消耗的令牌数与当前可用令牌数,如果当前可用令牌数大于发送当前报文需消耗的令牌数,则将当前报文加上基本带宽标记向交换网内部转发,否则,将该报文加上额外带宽标记向交换网内部转发,返回步骤a1);在出端口对报文的处理包括a2)预先建立负债令牌数的记录;b2)获取出端口的当前可用令牌数;c2)获取负债令牌数,比较当前可用令牌数与负债令牌数,如果当前可用令牌数大于负债令牌数,则更改当前可用令牌数为当前可用令牌数减去负债令牌数,更改负债令牌数的值为零,并进入下一步,否则,更改可用令牌数的值为零,更改负债令牌数为负债令牌数减去可用令牌数的值,并进入下一步;d2)计算得到发送当前报文需消耗的令牌数;e2)判断当前报文是否带有基本带宽标识,如果是,将负债令牌数加上发送当前报文需消耗的令牌数作为负债令牌数保存,去掉报文的基本带宽标识转发,返回步骤b2),否则,进入步骤f2);f2)判断负债令牌数是否为零,如果不为零,进入步骤g2),否则比较当前可用令牌数与发送当前报文需消耗的令牌数,如果当前可用令牌数大于当前报文需消耗的令牌数,则去掉该报文的额外带宽标记转发,返回步骤b2),否则,进入步骤g2);g2)丢弃当前报文,返回步骤b2)。
2.根据权利要求1所述方法,其特征在于,所述步骤c1)中如果当前可用令牌数大于发送当前报文需消耗的令牌数,则进一步包括将当前可用令牌数减去发送当前报文需消耗的令牌数作为剩余令牌数,将当前报文到达时间作为上一个报文到达时间保存。
3.根据权利要求2所述方法,其特征在于,所述步骤a1)具体包括读取入端口当前报文到达时间,从入端口读取上一个报文到达时间,将当前报文到达时间减去上一个报文到达时间得到新获得的令牌数;读取入端口剩余令牌数,将新获得的令牌数加上剩余令牌数得到当前可用令牌数。
4.根据权利要求1所述方法,其特征在于,所述步骤e2)中如果当前报文带有基本带宽标识,则进一步包括将当前可用令牌数作为剩余令牌数保存;步骤f2)中如果当前可用令牌数大于当前报文需消耗的令牌数,则将当前可用令牌数减去发送当前报文需消耗的令牌数作为剩余令牌数保存,将当前报文到达时间作为上一个报文到达时间保存;步骤g2)进一步包括将当前可用令牌数作为剩余令牌数保存,将当前报文到达时间作为上一个报文到达时间保存。
5.根据权利要求4所述方法,其特征在于,所述步骤b2)具体包括读取出端口当前报文到达时间,从出端口读取上一个报文到达时间,将当前报文到达时间减去上一个报文到达时间得到新获得的令牌数;读取出端口剩余令牌数,将新获得的令牌数加上剩余令牌数得到当前可用令牌数。
6.根据权利要求1所述方法,其特征在于,所述步骤b1)具体包括获取入端口的令牌速率,将当前报文长度乘以令牌速率得到发送当前报文需消耗的令牌数。
7.根据权利要求1所述方法,其特征在于,所述步骤d2)具体包括获取出端口的令牌速率,将当前报文长度乘以令牌速率得到发送当前报文需消耗的令牌数。
8.根据权利要求1所述方法,其特征在于,在入端口的报文处理过程中预先增加令牌桶大小的项目,则步骤a1)后进一步包括比较当前可用令牌数与令牌桶大小,如果当前可用令牌数大于令牌桶大小,则将当前可用令牌数更改为令牌桶大小的值,进入步骤b1),否则直接进入步骤b1)。
9.根据权利要求1所述方法,其特征在于,在出端口的报文处理过程中预先增加令牌桶大小的项目,则步骤b2)后进一步包括比较当前可用令牌数与令牌桶大小,如果当前可用令牌数大于令牌桶大小,则将当前可用令牌数更改为令牌桶大小的值,进入步骤c2),否则直接进入步骤c2)。
10.根据权利要求1~9所述方法,其特征在于,一个以上的所述入端口共享一个出端口。
全文摘要
本发明公开了一种基于承诺接入速率(CAR)的带宽统计复用方法,该方法在交换网的入端口和出端口分别采用CAR处理报文流量,在入端口做CAR时,先区分基本带宽报文和额外带宽报文,报文送入交换网之前在报文前面加上不同的标识以示区别,在出端口做CAR时,基本带宽报文采用欠令牌的方式无条件通过,额外带宽报文则视令牌剩余情况酌情通过。本发明方案大大简化了带宽统计复用的算法,并能够及时反映带宽的动态变化情况,减少了CAR参数表中需要保存的报文信息,同时几个入端口可共享一个出端口,如果一个端口分配的带宽没有用完,其它端口可以共享其尚未用完的带宽,从而充分有效利用了的网络资源。
文档编号H04L12/24GK1534926SQ0312127
公开日2004年10月6日 申请日期2003年4月1日 优先权日2003年4月1日
发明者刘明伟, 李大为 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1