何爲令牌桶算法——QOS

 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次.

因此,令牌桶算法可以描述如下:

CIR=Bc/Tc

Cisco IOS軟件不允許間隔的顯示定義.與此相反,它採用CIR和Bc作爲參數,間隔和每秒的農曆髮量可以根據它們計算得到.興例來說,如果CIR是8000,BC是4000,每秒產生二個突發(Tc=500ms).如果Bc設置爲2000,那麼每秒就產生4個突發(Tc=250ms).如果Bc設置爲1000,每秒就產生8個突發(Tc=125ms).

最早的管制器都使用單一速率雙色標記器和單桶.這種模型中,流量被標記爲二種狀態(對應二種顏色)之一:符合或超過CIR.標記和丟棄動作作用在這二種流量狀態上.該標記器和管制器的類型是相當粗糙的.

1)承諾的訪問速率(CAR)(典型的單速率雙色和單桶應用)


CAR是Cisco IOS軟件中提供的最古老的管制工具,古老原因有:
CAR與DiffServ RFC不兼容.
沒有基本百分比的帶寬規範和分層管制
CAR不能使用MQC語法.
NBAR不能用在CAR中,還有其它方面.

配置清單:


Router# sh run
 interface Hssi0/0/0
  description 45Mbps to Router2
  rate-limit input access-group 101 20000000 24000 32000
   conform-action set-prec-transmit 2 exceed-action set-prec-transmit 0
  rate-limit input access-group 102 10000000 24000 32000
   conform-action set-prec-transmit 2 exceed-action drop
  rate-limit input 8000000 16000 24000 conform-action set-prec-transmit 5
    exceed-action drop
 ip address 200.200.14.250 255.255.255.252

 access-list 101 permit tcp any any eq www
 access-list 102 permit tcp any any eq ftp

訪問列表101定義匹配WEB流量,它把WEB流量的速率限制在20M,正常突發24000字節,過量突發在小在32000字節,符合該速率(少於20)的流量標記IP優先級2;超過速率的流量標記IP優先級0.該語句不丟棄流量.

2)基於類別的管制(policers)(單速率三色和雙桶)
policers突破了前面管制器的所有缺點,在控制流量的精度上極大地增強.該管制器的工作邏輯爲:
policers管制器使遙了單速率三色和雙桶算法.第一個桶中任何未用的令牌都被放入第二個令牌桶中,用做以後臨時突發可能超過CIR的信用證,放置在第二個桶中的令牌供應被稱爲過量突發(BE),當BC滿的時候(第一個桶),令牌的數量被放置在桶裏(第二個桶),當BC未滿時,第二個桶包含了第一個桶未用的令牌.BE是可以超過突發大小的最大位數.

配置清單:


Class Default Policing Example
  Router# sh run
  policy-map RFC2697-POLICER
   class class-default
     police cir 256000 bc 8000 be 8000
       conform-action set-dscp-transmit af31
       exceed-action  set-dscp-transmit af32
       violate-action set-dscp-transmit af33


3)雙速率三色(雙桶)
單速率三色和雙桶基於RFC 2697來定義,而雙速率三色雙桶基於RFC 2698來定義.在單速率三色雙桶中,它爲臨時流量突發提供信用量,但是,過量突發信用量積累數量的變化會引起流量流到某種程度的不可預測性,爲了改進這一點,所以出現了雙速率三色雙桶.此外,雙速率三色標記雙桶允許保持一定速度的過量突發(不需要積累信用量以調節臨時突發),並且允許超過不同突發值的流量採取不同的行動.該類管制器的工作原理爲:

雙速率三色管制器也使用雙桶算法,但其邏輯有少許不同.它不將未用的令牌從一個桶轉移到另外一個桶,該管制器有二個獨立的桶,每個桶都用單獨的令牌速率.第一個桶擁有PIR數量的令牌,第二個桶擁有CIR數量的令牌.在這個模型中,除了第一個桶以外,BE與BC相同.這意味着BE表示可以在亞秒級間隔發送流量的峯值限制.
該邏輯在初始化檢查也有變化,它檢查流量是否在PIR之內.只有這樣,流量才與CIR進行比較.換句話說,首先檢查違約條件,然後是過量條件,最後纔是符合條件,與前面模型的邏輯恰恰相反.

配置清單:
Two-Rate Three-Color Policer Example
 Router# sh run
 policy-map RFC2698-POLICER
  class class-default
    police cir 8000 bc 1000 pir 10000 be 2000
      conform-action set-dscp-transmit af31
      exceed-action  set-dscp-transmit af32
      violate-action set-dscp-transmit af32

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