qos----令牌桶算法

令牌桶算法一般指的是单/双速三色标记法。

srTCM的英文全称是Single Rate Three Color Marker,单速率三颜色标记

该算法要预先在系统中设定三个参数,三个参数如下:

  • Committed Information Rate(CIR),提交信息率。
  • Committed Burst Size(CBS),提交Burst大小。
  • Excess Burst Size(EBS),超量Burst大小。

CIR用于表示每秒IP包的字节数。CBS和EBS以字节为单位。必须被设置。推荐值:它们之一必须大于0,且若大于0的CBS和EBS,值要大于MTU。

颜色有三种:绿、黄、红。简单来说,颜色与参数的对应关系是这样的:

  • 如果没有超过CBS就是绿的。
  • 超过了CBS但没有超过EBS就是黄的。
  • 超过了EBS就是红的。

在实际应用中,具体的逻辑因不同的具体设定而异(例如,红色丢包,黄色正常发送,绿色往特定队列发送等)。而且限速器会对每一个packet进行计算,将得到的结果交给标记器。标记器收到的是每一个packet和其对应的结果值,根据计算结果在所有packet的IP header的DS field中标记上不同的“颜色”(上色,mark,或者说tag)。

限速器有两种工作模式:

  1. 色盲模式(Color-Blind mode),假定所有incoming packet是无色的。
  2. 非色盲模式(Color-Aware mode),假定所有incoming packet已经被先前的网络元素上了色。如果工作在非色盲模式,它会认为每一个packet都有一种颜色,要么绿要么黄要么红。

标记器由两个令牌桶来表示(C和E)。C和E有共同的CIR。令牌桶的C的size是CBS,E的size是EBS。

用Tc(t)表示t时刻,令牌桶C中有的令牌数量,Te(t)同理。起始时C桶和E桶都是满的,Tc(0)=CBS,Te(0)=EBS。

之后,每秒钟都执行CIR次如下操作:若令牌桶不满,则令牌数量自增1,先增加C桶,C桶满了后再增加E桶:

如果工作在色盲模式下,假设到达的报文长度为B。若报文长度B小于C桶中的令牌数Tc,则报文被标记为绿色,且C桶中的令牌数减少B;若Tc<B <Te,则标记为黄色,E桶中的令牌数减少B;若B >Te,标记为红色,两桶总令牌数都不减少。

如果工作在非色盲模式下,若报文已被标记为绿色或B <Tc,则报文被标记为绿色,Tc减少B;若报文已被标记为黄色或Tc<B <Te,则标记为黄色,且Te减少B;若报文已被标记为红色或B >Te,则标记为红色,Tc和Te都不减少。

trTCM全称 Two Rate Three Color Marker ,双速率三颜色标记。基本思路和srTCM相同,有一些细节上的差异。

trTCM有四个参数

  1. Peak Information Rate (PIR),峰值信息率。
  2. Peak Burst Size (PBS),峰值Burst大小。
  3. Committed Information Rate (CIR),提交信息率。
  4. Committed Burst Size (CBS),提交Burst大小。

PIR和CIR用于表示每秒IP包的字节数。PBS和CBS以字节为单位,必须大于0,推荐设置成大于当前路径MTU。

与单速率三色标记算法不同,双速率三色标记算法的两个令牌桶C桶和P桶填充令牌的速率不同,C桶填充速率为CIR,P桶为PIR;两桶的容量分别为CBS和PBS。用Tc和Tp表示两桶中某时刻的令牌数目,初始状态时两桶是满的,即Tc和Tp初始值分别等于CBS和PBS。

简单来说,packet的颜色和四个参数的对应关系是:若packet超过PIR,则标记为红色。若没有超过PIR,则看packet是否超过了CIR,若超过,则标记为黄色;若没有超过则标记为绿色。

如果工作在色盲模式下,且大小为B字节的包在t时间到达,算法工作如下:若令牌桶P不足以让B通过,则tag为红色,否则:若令牌桶C不足以让B通过,则tag为黄色且扣除桶P的令牌;若令牌桶C足以让B通过,则tag为绿色且同时扣除桶C和桶P的令牌。

如果工作在非色盲模式下,大小为B字节的包在t时间到达,算法工作如下:若先前tag成红色,或令牌桶P不足以让B通过,则tag为红色,否则:若先前tag成黄色,或令牌桶C不足以让B通过,则tag为黄色且扣除桶P的令牌;若令牌桶C足以让B通过且先前标记成绿色,则tag为绿色且同时扣除桶C和桶P的令牌。

单速率三色算法与双速率三色算法的比较

      单速率三色标记算法采用单桶或双桶结构,令牌添加方式和报文处理流程比较简单;双速率三色记算法采用双桶结构,令牌添加方式和报文处理流程相对复杂。前者关注报文尺上的突发,后者关注速率上的突发,两者各有优点。
相对双速率三色标记算法而言,单速率三色标记算法由于实现简单等原因,成为目前业界比较常用流量标记方式。但不同的实现方式决定了其具有一定的性能差异,合理的采用借债方式可以弥补其在丢包率、突发流量处理性能、大小包混合转发性能、数据转发平缓程度等性能方面的不足,但当存在较大速率的突发流量时,单速率三色标记算法的借债机制将不能较好的改善性能问题,所以单速率三色标记算法不能完全取代双速率三色表算法。在实际应用中,应针对不同的流量特征选择恰当的标记方式

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章