QOS-CBQ概述
2018年7月7日 19:56
CBQ(基於類的對列)是一種基於QOS policy實現的擁塞管理技術。
-
- CBQ中包含一個LLQ(低延遲隊列),用來支撐EF(快速轉發)類業務被絕對優先發送,保證延遲。
- CBQ中最大包含64個BQ(帶寬保證隊列),用來支撐AF(確保轉發)類業務,保證每一個隊列的帶寬及可控的延遲。
- CBQ中還包含一個默認隊列,對應一個默認分類,用於為默認的BE(盡力傳送)類業務提供服務。其使用WFQ隊列調度,利用接口剩余帶寬進行發送。
CBQ入隊列處理:
EF 隊列:(LLQ隊列)
-
- CBQ最多包含64個EF類,每類EF流量都對應一個虛擬的EF隊列,每個EF隊列都有自己的配置帶寬。(實際上EF隊列的報文進入同一個LLQ隊列)
- 擁塞發生時,各EF類的流量按自己的配置帶寬進行流量監管,超出配置帶寬范圍的流量被丟棄。
- LLQ丟棄策略為尾丟棄,BQ、BE可以為尾丟棄或WRED
AF隊列:(BQ隊列)
-
- CBQ最多包含64個AF類,每個AF類對應一個AF隊列。每個AF隊列實際上是一個BQ,每個BQ都有自己的配置帶寬(最低保證帶寬)
- 擁塞發生時,BQ至少可以獲得此配置帶寬量。BQ使用尾丟棄或WRED丟棄
EF類和AF類配置的帶寬之和稱為CBQ的總配置帶寬。
CBQ將默認流量作為BE類對待,送入BE隊列。BE內部實際上使用WFQ隊列調度,可以使用尾丟棄或WRED丟棄。
CBQ隊列調度:
-
- 當所有BQ隊列為空,或者BQ隊列的出列報文會導致LLQ和BQ的出隊列報文所占帶寬總和超過CBQ的總配置帶寬時,停止BQ隊列調度,開始調度WFQ隊列。
- LLQ隊列在數據隊列中具有絕對高優先級,所以EF類的延遲和抖動都可以降到最低,這為延遲敏感的應用(VoIP業務)提供了良好的服務質量保證
- 當LLQ和BQ隊列流量都不足時,WFQ可以使用剩余全部帶寬
-
- 隊列勢能與隊列中當前報文長度成正比,與隊列的保證帶寬成反比。
- BQ隊列既可以根據用戶需求分配隊列的保證帶寬,又優先照顧了小報文的利益。
QOS最大可用帶寬:
-
- 接口的QOS最大可用帶寬,是指在此接口上CBQ可能占用的最大帶寬
- QOS最大可用帶寬並非接口實際帶寬,允許手工配置
- 配置接口QOS最大可用帶寬:
-
- 不配置時,使用如下缺省值:
- 對於物理接口,其取值為物理接口實際的波特率或速率
- 對於T1/E1、MFR等通過綁定生成的邏輯串口,其取值為綁定通道的總帶寬
- 對於VT、Dialer、BRI、PRI等模板類型的接口,取值為1000000kbps
- 對於其它虛接口(如Tunnel接口),取值為0kbps
- 不配置時,使用如下缺省值:
QOS預留帶寬:
-
- 為了避免缺省類的數據流被“餓死”,CBQ隊列中LLQ和BQ隊列配置帶寬的總和不得超過QOS預留帶寬
- QoS預留帶寬計算公式:
- 預留帶寬=QOS最大可用帶寬*QoS預留百分比
- QoS預留百分比配置命令
-
- QoS預留帶寬建議不要超過接口實際帶寬的80%
QoS配置過程:
系統定義的CBQ:
-
- Default策略是系統定義的CBQ,用戶可以使用,但不能修改和刪除該策略
- Default策略使用系統定義的分類和系統定義的隊列行為,提供缺省的CBQ服務
CBQ隊列配置:
-
- 配置EF隊列:
- 可用絕對值和百分比兩種方式配置分配帶寬
- 絕對值方式:可以直接配置CBS,支持突發
- 百分比方式:通過配合突發因子計算CBS
- CBS=QoS預留帶寬*percentage*ratio/100/100
- 不支持隊列長度配置
- 不能使用系統缺省類:
- 配置EF隊列:
-
- 配置AF隊列:
- 可用絕對值和百分比兩種方式配置保證帶寬
- 可以配置WRED或尾丟棄策略
- 配置AF隊列:
-
- 配置CBQ缺省類使用的WFQ隊列
- 可以配置WRED或尾丟棄策略
- 配置CBQ缺省類使用的WFQ隊列
-
- 配置最大隊列長度:
-
- 顯示與維護:
-
- Available:指尚能繼續給CBQ分配的帶寬。即接口預留帶寬和當前CBQ配置的帶寬之差