内容摘要:本质上令牌桶算法是测量引擎,跟踪能够发送多少流量来证实指定的流量速率。一个令牌允许该算法发送单个位(某些情况下,可以是一个字节)的流量。这些令牌在某个时间增量开始时得到授权,通常是每秒,根据指定的速率,一般称为承诺的信息速率(CIR)。
CISCO IOS管制器和整形器使用信令牌桶算法建模。本质上令牌桶算法是测量引擎,跟踪能够发送多少流量来证实指定的流量速率。一个令牌允许该算法发送单个位(某些情况下,可以是一个字节)的流量。这些令牌在某个时间增量开始时得到授权,通常是每秒,根据指定的速率,一般称为承诺的信息速率(CIR)。CIR是与服务提供商或维护的服务级约定的访问比特率。
举例来说,如果CIR设置为8000bin/s,那么在每个时间周期 的开始将8000个令牌放入"桶"里(注意,这个描述给出了该算法一个简单观点,在所有情况下并不严格认真,但它说明了桶里面有令牌,该流量就被放行。每放行流量中的一位,就从桶中移除一个令牌。因此,流量可以看成是服务速率的, 因此服从流量的行为得以实现。(通常来说,服从的流量会被发送)当桶里没有令牌的时候,出现的任何额外流量都被视作超出速率,此时就采取超出的动作。(过量流量通常要么被标记,要么被丢弃)
在每秒的最后,都可能有未用的令牌,未使用令牌的处理是各种管制器之间的关键区别。
当对某个接口施加速率限制(或CIR)时,受限制的流量就被分配一个亚秒级时间片,它可以在这个时间片中被发送。亚秒级时间片也可称为间隔(或 TC)。举例来说,如果一个8Kbit/s的CIR作用在一个64Kbit/s的链路上,流量可以以125毫秒(64000bit/s/8000位)的间隔发送。
CIR的总数(8000位)可以一次发送,但这时算法在能够发送更多数据之前(作用到速率限制)就必须等待875毫秒。这样的分组间延迟有可能被看成是过量。因此,为了平滑每秒流出的流量,CIR被分成更小的单位,被称为承诺突发(BC),即每个时间间隔传输持续数量的位。这些更小的单位在单个秒中通过多个实例发送。继续前面的例子,如果BC被设置为1000,每个承诺突发仅需15.6ms(1000位/64000bit/s)以时钟速率将流量送出接口。该算法等待109.4ms(125ms-15.6ms),然后再以15.6ms发送另一组数据。该过程在每秒内重复8次。
责编:豆豆技术应用