複製鏈接
請複製以下鏈接發送給好友

流量整形

鎖定
流量整形(traffic shaping)典型作用是限制流出某一網絡的某一連接的流量與突發,使這類報文以比較均勻的速度向外發送。流量整形通常使用緩衝區和令牌桶來完成,當報文的發送速度過快時,首先在緩衝區進行緩存,在令牌桶的控制下再均勻地發送這些被緩衝的報文。
中文名
流量整形
外文名
traffic shaping
概    念
主動調整流量輸出速率的措施

流量整形流量整形的定義

流量整形 流量整形 [1]
流量整形(Traffic Shaping)是一種主動調整流量輸出速率的措施。
一個典型應用是基於下游網絡結點的TP指標來控制本地流量的輸出。流量整形與流量監管的主要區別在於,流量整形對流量監管中需要丟棄的報文進行緩存——通常是將它們放入緩衝區或隊列內,也稱流量整形(Traffic Shaping,簡稱TS)。當令牌桶有足夠的令牌時,再均勻的向外發送這些被緩存的報文。流量整形與流量監管的另一區別是,整形可能會增加延遲,而監管幾乎不引入額外的延遲。
如上圖所示,當報文到達接口時,首先對報文進行分類,按照以下幾種情況進行處理。
  • 對於不參與流量整形的報文,直接繼續發送。
  • 對於參與流量整形的報文,若存在整形隊列,則報文直接進入隊列,等待隊列按照整形算法對報文進行調度轉發。
  • 對於參與流量整形的報文,若不存在整形隊列,則根據整形算法決定報文是否進行發送。
當報文到達接口發現整形隊列已滿時,將報文丟棄。

流量整形流量整形的核心算法

流量整形的核心算法有以下兩種,具體採用的技術為GTS(Generic Traffic Shaping),通用流量整形:

流量整形漏桶算法

漏桶算法(Leaky Bucket)
漏桶算法是網絡世界中流量整形(Traffic Shaping)或速率限制(Rate Limiting)時經常使用的一種算法,它的主要目的是控制數據注入到網絡的速率,平滑網絡上的突發流量。漏桶算法提供了一種機制,通過它,突發流量可以被整形以便為網絡提供一個穩定的流量。

流量整形令牌桶算法

令牌桶算法(Token Bucket)
有時人們將漏桶算法與令牌桶算法錯誤地混淆在一起。而實際上,這兩種算法具有截然不同的特性並且為截然不同的目的而使用。它們之間最主要的差別在於:漏桶算法能夠強行限制數據的傳輸速率,而令牌桶算法能夠在限制數據的平均傳輸速率的同時還允許某種程度的突發傳輸。
在某些情況下,漏桶算法不能夠有效地使用網絡資源。因為漏桶的漏出速率是固定的參數,所以即使網絡中不存在資源衝突(沒有發生擁塞),漏桶算法也不能使某一個單獨的流突發到端口速率。因此,漏桶算法對於存在突發特性的流量來説缺乏效率。而令牌桶算法則能夠滿足這些具有突發特性的流量。通常,漏桶算法令牌桶算法可以結合起來為網絡流量提供更大的控制。

流量整形常見流量整形分類

流量整形GTS 通用流量整形

流量整形通過減少外出流量的速率來強迫流量遵循某種帶寬的分配限制。不象流量監管會丟棄超過突發尺寸的流量,它是將突發的流量放入到流量整形的緩衝區中,當帶寬可用時,再將它發送出去,或者是當緩衝的數據包的數量低於配置的限制時,再將它發送出去。
流量整形使用一種令牌桶的系統來決定是否傳輸、延遲或者丟棄新的數據包。使用這種令牌桶系統,每個接口都有承諾信息速率(CIR),它是在一個時間段內接口能夠傳輸數據包的速率。持續突發速率(Bc)定義了再一個時間間隔內令牌桶可以含有的最大令牌數。當數據包到達一個接口後,它就會從令牌桶中取出一個令牌。當數據包被髮送後,令牌就會釋放。當過了時間間隔(Tc)後,這個令牌就會返回到令牌桶中。如果令牌桶空了,任何新到達那個接口的數據包都會被放到隊列中,直到時間間隔過去,令牌又重新填入。如果CIR持續超過,令牌就會以大於它們添加的速度從令牌桶中挪走,而去填充隊列並且導致數據包被丟棄掉。
流量整形可以應用到一些不同的二層技術中去,例如以太、ATM、HDLC、PPP(ISDN和撥號接口不支持)和幀中繼。除了幀中繼以外,所有的這些技術都支持通用流量整形(GTS)。GTS也可以整形再訪問控制列表中定義的某種類型的流量,通過在流量整形中指定組來實現。
為了配置GTS必須知道對於接口的目的比特速率,即承諾信息速率(CIR),它指的是流量在正常情況下發送的速率。持續突發速率(Bc)指的是在每個時間間隔內流量被允許突發超出正常流量速率的速率,以比特表示。過量突發速率(Be)是指在第一個時間間隔內,流量被允許突發超出持續突發速率的速率。每隔一個時間間隔(Tc),流量會被填充到流量整形的令牌桶中。
Tc=Bc/CIR
流量整形的時間間隔不能小於10ms或者大於125ms。路由器基於Tc=Bc/CIR的公式發現最好的時間間隔。默認的時間間隔是125ms。這個時間間隔是CIR和Bc配置的結果,用於不可配置。思科建議Bc應當是CIR的1/8。它將會在每秒鐘內產生8個125ms的時間間隔。
對所有的接口流量配置GTS,在需要流量整形的接口上使用traffic-shaping rate命令。對於特定的流量,使用traffic-shaping group命令和一個訪問控制列表
traffic-shaping {rate|group access-list-number} target-bit-rate [sustained][excess][buffer-limit]
group access-list-number指定匹配訪問控制列表(1-2699)的所有流量都被整形。
rate指定在這個接口上的所有流量都被整形。
target-bit-rate這個流量將被傳輸的正常速率(CIR),範圍為8000到接口的以每秒比特位表示的完整CIR。
sustained持續比特率(Bc)指的是流量被允許突發的數值,以每個時間間隔內的比特位表示。
excess過量比特率(Be)指的是在第一個時間間隔內突發的超出持續比特速率的流量,以每個時間間隔內的比特位表示。是個可選的參數,它會假設令牌桶已經完全滿了:Be=Bc*2。
buffer用於指定一個緩存的限制,範圍從1~4096。
GTS配置需要兩個步驟:發現流量整形的數值,並在接口上配置流量整形。
1、找到正確的流量整形的數值。CIR、Bc、Be
Bc指定在某個時間間隔內接口可以傳輸的比特位的數量。Bc=CIR*Tc
Be指定當接口填充了足夠的令牌時可以支持的突發的流量,通常時考慮在第一個時間間隔內。Be=Bc*2
如果接口不支持突發,可以使用下面的公式:Be=Bc
2、在接口模式下,使用traffic-shaping命令啓用流量整形。
為了查看GTS的配置,使用show traffic-shaping [statistics]命令

流量整形幀中繼流量整形(FRTS)

在以下4種情況下使用FRTS:1中心高速,分支低速的時候。2單條物理線路承載到不同目的地的眾多VC。3若FR發生了擁塞,想讓路由器將數據流攔住(Throttle)。4需要在同一條FR的VC上傳輸多種協議(IP、SNA)的數據流,並希望每種數據流都能佔到一定BW。
FR中的FECN和BECN用於暗示網絡上發生了擁塞,當收到帶有BECN標記的數據包時,FR 流量整形(FRTS)將動態的對流量進行整形。注意:FRTS只能使用在FR的PVC和SVC上。其中有一種自適應的FRTS,在每個Tc間隔內,進程將檢查是否從幀中繼網絡中收到BECN,如果在一個Tc間隔收到BECN,那麼傳送速率降低25%直到降到CIR的一半為止。當且僅當16個Tc內沒收到BECN,通訊速率恢復到CIR。
FRTS配置步驟
1)建立一個MAP-CLASS,名字區分大小寫。
2)定義流量整形的方法,比如設置平均速率和最高速率。
3)在接口上封裝FRAME-RELAY。
4)在端口上應用MAP-CLASS 5,開啓流量整形,一般用於源端接口。

流量整形流量監管

路由器 A 向 路由器B 發送報文,為了減少報文的無謂丟失,可以在路由器 A的出口對報文進行流量整形處理。將超出流量整形特性的報文緩存在路由器 A 中。當整形算法允許繼續發送下一批報文時,再從緩衝隊列中取出報文進行發送。這樣,發向路由器B 的報文將都符合路由器B 的流量規定。
流量整形與流量監管的主要區別在於:
  • 流量整形對流量監管中超出流量規格的報文進行緩存。當整形算法允許發送報文時,再均勻地向外發送這些被緩存的報文。
  • 流量整形可能會增加延遲,而流量監管幾乎不引入額外的延遲。
參考資料
  • 1.    網絡之路-Qos專題