令牌桶算法

   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部分報文,被標記爲綠色。

相關文章
相關標籤/搜索