CISCO IOS管制器和×××器使用信令牌桶算法建模。本质上令牌桶算法是测量引擎,跟踪可以发送多少流量来证明指定的流量速率。一个令牌容许该算法发送单个位(某些状况下,能够是一个字节)的流量。这些令牌在某个时间增量开始时获得受权,一般是每秒,根据指定的速率,通常称为承诺的信息速率(CIR)。CIR是与服务提供商或维护的服务级约定的访问比特率。算法
举例来讲,若是CIR设置为8000bin/s,那么在每一个时间周期的开始将8000个令牌放入"桶"里(注意,这个描述给出了该算法一个简单观点,在全部状况下并不严格认真,但它说明了桶里面有令牌,该流量就被放行。每放行流量中的一位,就从桶中移除一个令牌。所以,流量能够当作是服务速率的, 所以服从流量的行为得以实现。(一般来讲,服从的流量会被发送)当桶里没有令牌的时候,出现的任何额外流量都被视做超出速率,此时就采起超出的动做。(过量流量一般要么被标记,要么被丢弃)ide
在每秒的最后,均可能有未用的令牌,未使用令牌的处理是各类管制器之间的关键区别。工具
当对某个接口施加速率限制(或CIR)时,受限制的流量就被分配一个亚秒级时间片,它能够在这个时间片中被发送。亚秒级时间片也可称为间隔(或 TC)。举例来讲,若是一个8Kbit/s的CIR做用在一个64Kbit/s的链路上,流量能够以125毫秒(64000bit/s/8000位)的间隔发送。spa
CIR的总数(8000位)能够一次发送,但这时算法在可以发送更多数据以前(做用到速率限制)就必须等待875毫秒。这样的分组间延迟有可能被当作是过量。所以,为了平滑每秒流出的流量,CIR被分红更小的单位,被称为承诺突发(BC),即每一个时间间隔传输持续数量的位。这些更小的单位在单个秒中经过多个实例发送。继续前面的例子,若是BC被设置为1000,每一个承诺突发仅需15.6ms(1000位/64000bit/s)以时钟速率将流量送出接口。该算法等待109.4ms(125ms-15.6ms),而后再以15.6ms发送另外一组数据。该过程在每秒内重复8次。接口
所以,令牌桶算法能够描述以下:ci
CIR=Bc/Tc路由
Cisco IOS软件不容许间隔的显示定义。与此相反,它采用CIR和BC做为参数,间隔和每秒的农历发量能够根据它们计算获得。兴例来讲,若是CIR是8000, BC是4000,每秒产生二个突发(TC=500ms)。若是BC设置为2000,那么每秒就产生4个突发(TC=250ms)。若是BC设置为 1000,每秒就产生8个突发(TC=125ms)。get
最先的管制器都使用单一速率双色标记器和单桶。这种模型中,流量被标记为二种状态(对应二种颜色)之一:符合或超过CIR.标记和丢弃动做做用在这二种流量状态上。该标记器和管制器的类型是至关粗糙的。it
1)承诺的访问速率(CAR)(典型的单速率双色和单桶应用)io
CAR是CISCO IOS软件中提供的最古老的管制工具,古老缘由有:
CAR与DiffServ RFC不兼容。
没有基本百分比的带宽规范和分层管制
CAR不能使用MQC语法。
NBAR不能用在CAR中,还有其它方面。
RFC中定义了两种令牌桶算法——单速率三色标记算法和双速率三色标记算法,其评估结果都是为报文打上红、黄、绿三色标记。
QoS会根据报文的颜色,设置报文的丢弃优先级,其中单速率三色标记比较关心报文尺寸的突发,而双速率三色标记则关注速率上的突发,
两种算法均可工做于色盲模式和非色盲模式。
如下结合这两种工做模式介绍一下RFC中所描述的这两种算法。
单速率三色标记算法
IETF的RFC文件[2]定义了单速率三色标记算法,评估依据如下3个参数:承诺访问速率(CIR),即向令牌桶中填充令牌的速率;承诺突发尺寸(CBS),即令牌桶的容量,每次突发所容许的最大流量尺寸(注:设置的突发尺寸必须大于最大报文长度);超额突发尺寸(EBS)。
通常采用双桶结构:C桶和E桶。Tc表示C桶中的令牌数,Te表示E桶中令牌数,两桶的总容量分别为CBS和EBS。初始状态时两桶是满的,即Tc和Te初始值分别等于CBS和EBS。令牌的产生速率是CIR,一般是先往C桶中添加令牌,等C桶满了,再往E桶中添加令牌,当两桶都被填满时,新产生的令牌将会被丢弃。
色盲模式下,假设到达的报文长度为B。若报文长度B小于C桶中的令牌数Tc,则报文被标记为绿色,且C桶中的令牌数减
少B;若Tc<B <Te,则标记为×××,E和C桶中的令牌数均减小B;若B >Te,标记为红色,两桶总令牌数都不减小。
在非色盲模式下,若报文已被标记为绿色或B <Tc,则报文被标记为绿色,Tc减小B;若报文已被标记为×××或Tc<B <Te,则标记为×××,且Te减小B;若报文已被标记为红色或
B >Te,则标记为红色,Tc和Te都不减小。
双速率三色标记算法
IETF的RFC文件[3]定义了双速率三色算法,主要是根据4种流量参数来评估:CIR、CBS、峰值信息速率(PIR),峰值突发尺寸(PBS)。前两种参数与单速率三色算法中的含义相同,PIR这个参数只在交换机上才有,路由器没有这个参数。该值必须不小于CIR的设置值,若是大于CIR,则速率限制在CIR于PRI之间的一个值。
与单速率三色标记算法不一样,双速率三色标记算法的两个令牌桶C桶和P桶填充令牌的速率不一样,C桶填充速率为CIR,P桶为PIR;两桶的容量分别为CBS和PBS。用Tc和Tp表示两桶中的令牌数目,初始状态时两桶是满的,即Tc和Tp初始值分别等于CBS和PBS。
色盲模式下,若是到达的报文速率大于PIR,超过Tp+Tc部分没法获得令牌,报文被标记为红色,未超过Tp+Tc而从P桶中获取令牌的报文标记为×××,从C桶中获取令牌的报文被标记为绿色;当报文速率小于PIR,大于CIR时,报文不会得不到令牌,但超过Tp部分报文将从P桶中获取令牌,被标记为×××报文,从C桶中获取令牌的报文被标记为绿色;当报文速率小于CIR时,报文所需令牌数不会超过Tc,只从C桶中获取令牌,因此只会被标记为绿色报文。
在非色盲模式下,若是报文已被标记为红色或者超过Tp+Tc部分没法获得令牌的报文,被标记为红色;若是标记为×××或者超过Tc未超过Tp部分报文记为×××;若是报文被标记为绿或未超过Tc部分报文,被标记为绿色。