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的令牌。

單速率三色算法與雙速率三色算法的比較

      單速率三色標記算法採用單桶或雙桶結構,令牌添加方式和報文處理流程比較簡單;雙速率三色記算法採用雙桶結構,令牌添加方式和報文處理流程相對複雜。前者關注報文尺上的突發,後者關注速率上的突發,兩者各有優點。
相對雙速率三色標記算法而言,單速率三色標記算法由於實現簡單等原因,成爲目前業界比較常用流量標記方式。但不同的實現方式決定了其具有一定的性能差異,合理的採用借債方式可以彌補其在丟包率、突發流量處理性能、大小包混合轉發性能、數據轉發平緩程度等性能方面的不足,但當存在較大速率的突發流量時,單速率三色標記算法的借債機制將不能較好的改善性能問題,所以單速率三色標記算法不能完全取代雙速率三色表算法。在實際應用中,應針對不同的流量特徵選擇恰當的標記方式

 

 

 

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