Quality of Service,在帶寬有限的情況下應用一個”有保證”的策略對流量進行管理,並實現不同的流量獲得不同的優先服務。
基本職能:
- 分類和標識
- 擁塞管理
- 限速(監管、整形)
- 鏈路效率
22.1 基本概念
基本參數:
-
帶寬(bandwidth)
木桶理論:最大帶寬等於數據傳輸路徑上的最小帶寬。
-
時延(delay)
端到端傳輸所用的時間,等於所有傳輸時延、處理時延、串行化時延與隊列時延之和。
隊列時延指駐留在出方向隊列的時間。
隊列又分為軟件隊列和硬件隊列(FIFO,先進先出)
-
抖動(jitter)
時延不平穩,不平均
-
丟包(drop)
任何情況下都有可能丟包
Qos的解決方案:
-
如何增加可用帶寬和降低時延
- 優先傳輸重要的報文
- 壓縮幀
- 壓縮報頭
- 隊列
-
如何防止丟包
- 對丟包敏感的數據流提供足夠的帶寬(例如語音流量),采取隊列機制
- 在擁塞發生之前提前丟棄一些不重要的數據包
22.2 服務模型
-
盡力而為模型
默認的,沒有Qos保證
-
綜合/集成服務模型
在發送報文之前需要向網絡申請特定的服務,和RSVP(資源預留協議)聯用。
很強,但實現復雜,應用率不高,且基於軟件,本身沒有Qos保證
-
區別/差分服務模型
通過報頭的Qos信息將網絡中的流量分成多個類,然后為每個類定義相應的行為。
目前應用最廣的模型。
22.3 區別/差分服務模型
-
DS節點:實現DS功能的節點,只需根據DSCP進行轉發。
DSCP:DiffServ Code Point,區分服務代碼點。
3層IPv4頭部有個Tos,其中前3位的IP優先級位,最高優先級是7,
前6位稱為DSCP:
D位表示延遲(0代表正常延遲,1表示低延遲)
T位表示吞吐量(0表示正常吞吐量,1表示高吞吐量)
R位表示可靠性(0代表正常可靠性,1代表高可靠性)
C表示傳輸開銷(0表示正常開銷,1表示低開銷)
一般C和最后一位一般不使用保留給網絡控制信息
-
DS邊界節點:對業務流進行分類和標記的路由器,與沒有DS功能的域直接相連
-
DS域:由采用相同策略和PHB的相同節點組成
PHB(每一條行為),目前定義了4種分類:
Default PHB:默認行為,DSCP為000000
Class-Selector PHB:CS類選擇行為,兼容IP優先級,DSCP的后三位為000
Expedited Forwarding PHB:EF快速轉發,DSCP為101110 ,優先轉發,超出管制流量的則丟棄
Assured Forwarding PHB:AF保證轉發,DSCP格式為aaadd0,DD越大,丟棄的可能性越高
這只是分類,設備具體如何處理,要看后續的策略
22.4 流量監管
流量監管就是對流量進行控制。要實現流量的控制,就要有一種機制可以對設備的流量進行度量
22.4.1 令牌桶技術
系統按照設定好的速度向桶中放置令牌,令牌滿了則溢出,不再增加。桶中令牌的數量作為轉發報文的依據。
現在有兩種常用標記算法:
- 單速率三色標記(單速雙桶算法)算法,主要關注報文尺寸的突發。
- 雙速率三色標記(雙速雙桶算法)算法,主要關注報文速率的突發。
兩種算法都是為報文打上紅、黃、綠三種顏色的標記,Qos根據顏色進行處理。
分為兩種模式,色盲模式和色敏模式,接下來以色盲模式為例。
單速雙筒
- CIR:承諾信息速率,表示向C桶中投放令牌的速率,即C桶允許傳輸或轉發報文的平均速率
- CBS:承諾突發尺寸,表示C桶的容量,即C桶瞬間能夠通過的承諾突發流量
- EBS:超額突發尺寸,表示E桶的容量,即E桶瞬間能夠通過的超出突發流量,
用B表示到達報文的大小:
- 若B≤Tc,報文被標記為綠色,且Tc減少B;
- 若Tc<B≤Te,報文被標記為黃色,且Te減少B;
- 若Tc<B並且Te<B,報文被標記為紅色,且Tc和Te都不減少。
雙速雙桶
- PIR:峰值信息速率,表示向P桶中投放令牌的速率,即P桶允許傳輸或轉發報文的峰值速率,PIR大於CIR;
- CIR:承諾信息速率,表示向C桶中投放令牌的速率,即C桶允許傳輸或轉發報文的平均速率;
- PBS(Peak Burst Size):峰值突發尺寸,表示P桶的容量,即P桶瞬間能夠通過的峰值突發流量;
- CBS:承諾突發尺寸,表示C桶的容量,即C桶瞬間能夠通過的承諾突發流量。
用B表示到達報文的大小:
- 若B>Tp,報文被標記為紅色;
- 若Tc<B≤Tp,報文被標記為黃色,且Tp減少B;
- 若B≤Tp並且B≤Tc,報文被標記為綠色,且Tp和Tc都減少B。
色敏模式
色敏模式下,如果到達報文已被標記顏色,則遵循以下原則:
- 被標記為綠色,與色盲模式一致。
- 已被標記為黃色,則令牌桶根據報文長度和令牌數的大小,為符合流量規定的報文標記為黃色,為不符合的報文標記為紅色。
- 被標記為紅色,則令牌桶直接將到達報文標記為紅色。
22.4.2 流量監管原理
-
Meter:通過令牌桶機制對網絡流量進行度量,向Marker輸出度量結果。
-
Marker:根據Meter的度量結果對報文進行染色,將報文染成green、yellow、red三種顏色。
-
Action:根據染色結果對報文進行動作,動作包括:
- pass:對測量結果為“符合”的報文繼續轉發。
- remark + pass:修改報文內部優先級后再轉發。
- discard:對測量結果為“不符合”的報文進行丟棄。
默認情況下,green報文、yellow報文進行轉發,red報文丟棄。
22.5 流量整形
流量整形是一種主動調整流量輸出速率來限制流量與突發的措施,使報文以均勻的速率發送。
通常使用緩沖區和令牌桶來完成,當報文的發送速度過快時,首先在緩沖區進行緩存,在令牌桶的控制下,再均勻地發送被緩沖的報文。
當下游接口速率不確定時,上游設備無法確定整形參數,這時可以開啟NQA檢測,進行自適應流量整形。
22.6 擁塞避免
通過監視網絡資源的使用情況,在發生擁塞或有產生趨勢時主動丟棄報文。
根據情況可分為
-
尾部丟棄:隊列滿了則丟棄
-
WRED(加權隨機先期檢測):基於參數進行丟棄,可以為不同業務的報文指定不同的丟棄策略
WRED會為每個隊列的長度設置閾值范圍,
-
隊列長度小於閾值下限時不丟棄報文,
-
上下限之間會為每個報文賦予一個隨機數,並將此數與當前隊列的丟棄概率比較,如果大於則丟棄。隊列越長,報文被丟棄的概率越高。
-
隊列長度大於閾值上限時丟棄所有新到的報文
-
22.7 擁塞管理
擁塞管理一般會采用隊列技術,使用不同的調度算法。
設備上每個接口出方向都有4或8個隊列,根據優先級和隊列間的映射關系自動將分類后的報文流送各隊列。
常見調度算法:
-
PQ
針對於關鍵業務類型應用設計,維護一個優先級遞減的隊列,只有高優先級的隊列為空時才服務低優先級隊列,可以使低延時業務及時調度。
缺點:使低優先級隊列中的報文得不到調度機會
-
WRR
加權循環調度算法,在隊列之間進行輪流調度,根據每個隊列的權重來調度各隊列中的報文流。
設備根據每個隊列的權值進行輪循調度。調度一輪權值減一,權值減到零的隊列不參加調度,當所有隊列的權限減到0時,開始下一輪的調度。
缺點:只關心報文,同等調度機會下大報文獲得的實際帶寬要大於小報文獲得的帶寬,低延時需求業務得不到及時調度。
LAN口默認使用WRR。
-
DRR
在調度過程中考慮包長的因素以達到調度的速率公平性。
缺點:解決了WRR的報文問題,但低延時需求業務依然得不到及時調度。
-
WFQ
公平隊列調度算法,盡量公平地分享網絡資源,使所有流地延遲和抖動達到最優。
在報文入列之前對流量進行分類,有兩種分類方式:
- 按報頭中地信息分類:優先級越高,所得帶寬越多
- 按優先級分類:通過優先級映射把流量標記為本地優先級,每個本地優先級對應一個隊列號。每個接口預分配4或8個隊列,報文根據隊列號進入隊列。默認情況,隊列的WFQ權重相同,流量平均分配接口帶寬。用戶可配置權重。
缺點:低延時需求業務得不到優先調度。
WAN口默認使用WFQ。
-
PQ+WRR
-
PQ+DRR
-
PQ+WFQ
-
CBQ算法
基於類的加權公共隊列,是對WFQ的擴展。
根據IP優先級或DSCP優先級、入接口、IP報文的五元組等規則來對報文進行分類,讓不同類別的報文進入不同的隊列。對於不匹配任何類別的報文,送入缺省類。
- EF:高優先級隊列,優先調用,可以對應多類報文,不同類別的報文可設定占用不同的帶寬,滿足低時延需求。其中還有一種時延更低的隊列-LLQ隊列。
- AF:每個隊列對應一類報文,用戶可設置每類報文占用的帶寬,滿足需要關鍵數據業務。
- BE:一般是系統缺省類配置成BE隊列,會尾部丟棄。