WFQ介紹
WFQ(weighted fair queuing加權公平排隊)目標:
1為每個活動流提供公平的頻寬分配機制
2為少量互動流提供更快的調度機制
3為高優先權流提供更多的頻寬
WFQ:是一種基於流的排隊算法,到達的數據包被分成多個流,每個流都被分配給一個FIFO佇列。
可以基於IP和TCP或UDP頭中以下欄位標識流:源IP位址 目的IP位址 協定號 TOS 源TCP/UDP連線埠號 目的TCP/UDP連線埠號
WFQ插入和丟棄策略
WFQ有一個保持佇列(hold queue),保持佇列=WFQ系統中數據包占用的所有記憶體之和,數據包到達時,保持佇列已滿,那就丟棄數據包(WFQ主動丟棄WFQ aggressive dropping)
例外:數據包分配到一個空佇列,不會丟棄
WFQ的優缺點
主要優點
WFQ配置簡單,無需顯示分類不會讓任何流得不到處理機會,能夠保證所有流的吞吐量
從最主動的流中丟棄數據包,可以為非主動流提供更快的服務
是一種標準.簡單的排隊機制,大多數CISCO平台和IOS版本都支持
缺點
WFQ的分類和調度機制是不可配置和無法修改的WFQ僅支持低速鏈路(2.048Mbit/s及以下的)
WFQ不能為流量流提供頻寬和時延保證
WFQ系統中多個流量流可能會被分配到同一個對列中去
WFQ的配置和監控
默認情況下,所有低速(2.048Mbit/s及以下)串列接口都啟用WFQ接口模式下: fair-queue [cdt] [dynamic-queues] \\ cdt 為擁塞丟棄門限,dynamic 動態佇列 默認為256
hold-queue max-limit out \\定義保持佇列
CBWFQ基於類別的加權公平排隊
比WFQ更好,因為可以創建用戶自定義的類別,並為所有類別分配專屬佇列,每個佇列都有用戶自定義的(最小)頻寬,而且在有可用頻寬佇列可以使用更多頻寬。
最多可以創建64個用戶自定義類別,每個佇列都是有保證頻寬和最大包門限的FIFO佇列,一旦達到最大,就會產生尾部丟棄。
分類,調度和頻寬保證
頻寬
頻寬百分比
頻寬剩餘百分比
CBWFQ的優點
可以創建用戶自定義的類別,利用MQC的分類映射可以很容易地定義這些流量類別可以基於用戶策略和用戶意願為每種流量類別分配/預留頻寬
可以基於現有網路套用和用戶策略定義最多64個固定類別,從而提供微調手段,而且擴展性更好
缺點:沒有為實時性套用提供合適地佇列(VOIP 和 視頻)無法保證低時延
配置和監控CBWFQ
LLQ包含了一個優先權佇列,使其非常適合時延和抖動敏感型套用
優點:
LLQ具有CBWFQ的所有優點,包括自定義流量類別,為每種類別的流量提供頻寬保證,並且可以在所有類別的佇列上套用WRED。(嚴格優先權佇列除外)
對於LLQ和CBWFQ來說,任何沒有被顯示分類的流量都被認為class-default流量,可以將class-default流量類別佇列由FIFO改為WFQ,需要時也可以用WRED.
LLQ最大優勢 可以為時延和抖動敏感型套用的流量提供一個或多個有頻寬保證的嚴格優先權佇列
LLQ並不局限於特定平台或傳輸介質
配置和監控LLQ