QOS調度技術
1、 FIFO排隊:即先入先出,分組進入隊列的順序被傳輸的順序相同,沒有分流機制,既不能使高優先級的流進行優先,又不能爲具有相同優先級的流提供公平和保護。
2、 WFQ:加權公平隊列:利用的是L3的TOS字段,動態的分配帶寬比例。(小於2M的端口自動開啓WFQ,例如串行端口)。
權重=32768/(IP優先級+1),隊列的出棧順序參照序列號屬性,序列號的值爲分組的權重與字節數大小的乘積。
相關命令:接口下fair-queue。
Sh interface e0/0
會有如下顯示:Queueing strategy: weighted fair。可見,動態分配帶寬的WFQ已經在端口隊列上開啓。
show queue ethernet 0/0
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: weighted fair
Output queue: 0/1000/64/0 (size/max total/threshold/drops)
Conversations 0/0/256 (active/max active/max total)
Reserved Conversations 0/0 (allocated/max allocated)
Available Bandwidth 7500 kilobits/sec
基於流的WFQ:自動動態的分配帶寬,分配給流的帶寬與數據流的權重成反比,根據上述的公式可以得出,流的帶寬與(優先級+1)成正比。例如,存在0-7 八種數據流,此時分配給優先級爲0的帶寬爲1/(1+2+3+4+5+6+7+8)即分配給優先級爲0的數據流的帶寬比例是1/36.優先級爲1的分配的帶寬是2/36,以此類推。
注意:僅當輸出端口發生擁塞時,纔會計算到達接口的分組的序列號
3、 CBWFQ:基於類的加權公平隊列。使用CBWFQ的好處:1、靈活多元化,針對每種不同協議劃分不同的帶寬。2、人爲的爲不同類別的協議設定帶寬的大小。
CBWFQ爲每個通信類分配不同的子隊列,而不像WFQ那樣爲每個數據流分配一個子隊列,因此可以使用已有的基於流的WFQ實現來提供分佈式和非分佈式兩種運行模式的CBWFQ。
特點:爲特定的類(class)分配特定的最小帶寬bandwidth。
一、案例:根據特定應用協議分配端口帶寬
詳細配置:我們分別爲PING 、TELNET、HTTP、VOICE、VIDEO這些應用服務設置不同的與保留帶寬爲10 ,500 ,100 ,2000,1500Kbps。
配置步驟:1、分類:使用class-map進行分類
class-map match-all telnet
match protocol telnet
class-map match-all ping
match protocol icmp
class-map match-all http
match protocol http
class-map match-all video
match protocol rtp video
class-map match-all voice
match protocol rtp audio
1、 策略:使用policy-map
policy-map CBWFQ
class voice
bandwidth 2000
class video
bandwidth 1500
class http
bandwidth 100
class telnet
bandwidth 500
class ping
bandwidth 10
2、 掛載接口:在接口模式下 service-policy out CBWFQ。
利用SHOW命令檢查配置:
1、R1#sh policy-map CBWFQ
Policy Map CBWFQ
Class voice
Bandwidth 2000 (kbps) Max Threshold 64 (packets)
Class video
Bandwidth 1500 (kbps) Max Threshold 64 (packets)
Class http
Bandwidth 100 (kbps) Max Threshold 64 (packets)
Class telnet
Bandwidth 500 (kbps) Max Threshold 64 (packets)
Class ping
Bandwidth 10 (kbps) Max Threshold 64 (packets)
Class class-default
Flow based Fair Queueing
Bandwidth 0 (kbps) Max Threshold 64 (packets)
2、R1#sh class-map
Class Map match-all telnet (id 2)
Match protocol telnet
Class Map match-all ping (id 1)
Match protocol icmp
Class Map match-all http (id 3)
Match protocol http
Class Map match-any class-default (id 0)
Match any
Class Map match-all class-map (id 6)
Match none
Class Map match-all video (id 5)
Match protocol rtp video
Class Map match-all voice (id 4)
Match protocol rtp audio