八、QOS队列调度与报文丢弃
QOS隊列調(diào)度與報文丟棄
- QOS隊列調(diào)度與報文丟棄
- 1、擁塞管理
- 2、擁塞管理技術(shù)
- 2.1、PQ調(diào)度
- 2.2、WRR調(diào)度
- 2.3、DRR調(diào)度
- 2.4、WFQ調(diào)度
- 3、擁塞管理應(yīng)用場景
- 4、擁塞避免
- 5、擁塞避免應(yīng)用場景
—————————————————
QOS隊列調(diào)度與報文丟棄
前面的優(yōu)先級映射或MQC對報文進(jìn)行分類和標(biāo)記,分類之后要做什么?就是根據(jù)分類的結(jié)果對報文進(jìn)行流量控制處理。擁塞管理和擁塞避免就是兩種流量控制手段。
如下:當(dāng)LSW1上行流量大于接口帶寬時,那么在出方向就有可能發(fā)生網(wǎng)絡(luò)擁塞,此時就需要配置擁塞管理和擁塞避免。
——————————————————————————————————————————————————
1、擁塞管理
當(dāng)網(wǎng)絡(luò)硬件設(shè)備能力無法承載各種應(yīng)用對帶寬的需求時,網(wǎng)絡(luò)擁塞無法避免。擁塞管理就是在網(wǎng)絡(luò)發(fā)生擁塞時,通過隊列技術(shù)對流量進(jìn)行管理和控制,優(yōu)先保證某類報文的時延等QOS服務(wù)質(zhì)量。
隊列就好比我們平時去銀行辦理業(yè)務(wù)時需要排隊,假設(shè)銀行只提供一個窗口服務(wù),當(dāng)出現(xiàn)VIP,VIP的業(yè)務(wù)被優(yōu)先處理,當(dāng)VIP辦理完畢,普通用戶才能繼續(xù)辦理業(yè)務(wù)。
——————————————————————————————————
2、擁塞管理技術(shù)
擁塞管理技術(shù)的基礎(chǔ)是隊列技術(shù),交換機上每個出接口都有8個列隊,分別為0-7,每個列隊可以緩存一定的報文數(shù)量。當(dāng)網(wǎng)絡(luò)發(fā)生擁塞時,報文會根據(jù)本地優(yōu)先級與隊列之間的映射關(guān)系,自動將報文流送入不同的隊列。不同的擁塞管理技術(shù)就可以根據(jù)各自的調(diào)度算法,實現(xiàn)對隊列流量按照優(yōu)先級發(fā)送。
下面介紹常用的兩種調(diào)度方式。PQ調(diào)度、WRR調(diào)度。
——————————————————————————————————
2.1、PQ調(diào)度
優(yōu)先隊列PQ(Priority Queuing)調(diào)度。嚴(yán)格按照隊列優(yōu)先級的高低順序進(jìn)行調(diào)度。只有高優(yōu)先級隊列報文全部調(diào)度完畢,低優(yōu)先級才有調(diào)度機會。配置PQ調(diào)度后,按照7-0的優(yōu)先級依次進(jìn)行調(diào)度,發(fā)送報文。
假設(shè)銀行只有一個窗口服務(wù),用戶根據(jù)自己銀行卡的額度取號排隊時,分為A、B、C三種號,按照級別規(guī)定優(yōu)先級A>B>C。即A號段的顧客優(yōu)先服務(wù),當(dāng)沒有A,B號段的顧客獲得服務(wù),依次進(jìn)行。這種方式缺點也很明顯,B和C號段的用戶可能因為長時間得不到服務(wù)而產(chǎn)生強烈不滿。
如圖:隊列優(yōu)先級1>2>3,報文出隊的時候,首先讓高優(yōu)先級中的報文發(fā)送,直到高優(yōu)先級報文發(fā)送完,然后發(fā)送中等優(yōu)先級報文,直到發(fā)送完,在發(fā)送低優(yōu)先級列隊。
如果中級優(yōu)先級在等待過程中,高優(yōu)先級隊列還有報文不停的進(jìn)入隊列,則中優(yōu)先級始終處于等待狀態(tài)。
如果高優(yōu)先級發(fā)送完畢,中優(yōu)先級隊列中報文4、5已經(jīng)發(fā)送完畢,在報文6被發(fā)送之前,高優(yōu)先級隊列又有報文進(jìn)入隊列,則優(yōu)先處理高優(yōu)先級報文。
——————————————————————————————————
2.2、WRR調(diào)度
加權(quán)輪詢調(diào)度WRR(Weight Round Robin)在隊列之間進(jìn)行輪流調(diào)度,根據(jù)每個隊列的權(quán)重來調(diào)度各隊列中的報文流。
如果銀行有3個窗口工作且采用WRR調(diào)度方式,三個窗口權(quán)重比例:50、25、25,按照業(yè)務(wù)熟練程度,VIP窗口處理2位客戶時,另外兩個窗口分別處理一個客戶,這樣保證所有窗口的客戶都可以得到服務(wù),但是VIP客戶排隊時間更短。
交換機根據(jù)每個隊列的權(quán)值進(jìn)行輪詢調(diào)度。調(diào)度一輪計數(shù)器減1,計數(shù)器減到0的隊列不參加調(diào)度。當(dāng)所有隊列的計數(shù)器減到0時,開始新一輪調(diào)度。詳細(xì)過程如下:
首先計數(shù)器初始化:Count [1] =2,Count [2] =1 ,Conut [3] =1。
第一次輪詢:
從隊列1取出報文1發(fā)送,Count [1] =1;從隊列2取出報文5發(fā)送,Count [2] =0,從隊列3取出報文8發(fā)送,Conut [3] =0。
第二次輪詢:
從隊列1取出報文2發(fā)送,Count [1] =0;由于Count [2] =0,Conut [3] =0。隊列2和隊列3不參與次輪調(diào)度。
此時,Count [1] =0;由于Count [2] =0,Conut [3] =0,計數(shù)器重新初始化:Count [1] =2,Count [2] =1 ,Conut [3] =1。
第三次輪詢:
從隊列1取出報文3發(fā)送,Count [1] =1;從隊列2取出報文6發(fā)送,Count [2] =0,從隊列3取出報文9發(fā)送,Conut [3] =0。
第四個輪詢:
從隊列1取出報文4發(fā)送,Count [1] =0,由于Count [2] =0,Conut [3] =0。隊列2和3不參與次輪調(diào)度。
此時,Count [1] =0,Count [2] =0,Conut [3] =0。將計數(shù)器重新初始化:Count [1] =2,Count [2] =1 ,Conut [3] =1。
從以上統(tǒng)計看,各隊列中的報文被調(diào)度的次數(shù)與該隊列的權(quán)值成正比,權(quán)值越大被調(diào)度的次數(shù)相對越多。如果該端口帶寬為100Mbit/s,則可以保證最低權(quán)重的隊列至少獲得25Mbit/s帶寬,避免了采用PQ調(diào)度時,低優(yōu)先級中的報文可能很長時間得不到服務(wù)的缺點。但是WRR調(diào)度無法保證對時延要求高的業(yè)務(wù)報文優(yōu)先發(fā)送。
PQ調(diào)度和WRR調(diào)度各有優(yōu)缺點,WRR調(diào)度可以根據(jù)相對公平的調(diào)度機制,保證各業(yè)務(wù)都能得到一定的服務(wù),但是對低時延業(yè)務(wù)無法保證及時調(diào)度。PQ調(diào)度可以保證低時延業(yè)務(wù)及時調(diào)度,但是存在低優(yōu)先級業(yè)務(wù)一直無法被調(diào)度情況。因此,實際組網(wǎng)中通常使用PQ WRR混合調(diào)度方式來實現(xiàn)擁塞管理。通常將對時延要求較高的業(yè)務(wù)流量進(jìn)入的隊列配置PQ調(diào)度,其他隊列配置為WRR調(diào)度。當(dāng)PQ隊列有流量時,優(yōu)先處理。PQ隊列沒有流量在按照WRR隊列進(jìn)行調(diào)度。
對于盒式交換機,如果配置PQ WRR混合調(diào)度,只需要將配置PQ調(diào)度的隊列權(quán)重配置為0即可。
假設(shè)需要配置隊列1為PQ調(diào)度,隊列2和隊列5為WRR調(diào)度。以S5720EI為例。
[LSW1] interface GigabitEthernet 0/0/3
[LSW1-GigabitEthernet0/0/3] qos wrr
[LSW1-GigabitEthernet0/0/3] qos queue 1 wrr weight 0 //配置隊列1為PQ調(diào)度
[LSW1-GigabitEthernet0/0/3] qos queue 2 wrr weight 40
[LSW1-GigabitEthernet0/0/3] qos queue 5 wrr weight 60
對于框式交換機,如果要配置PQ WRR混合調(diào)度,只需要將對應(yīng)的隊列設(shè)置為PQ調(diào)度。
[LSW1] interface GigabitEthernet 1/0/3
[LSW1-GigabitEthernet1/0/3] qos pq 1 //配置隊列1為PQ調(diào)度
[LSW1-GigabitEthernet1/0/3] qos queue 2 wrr weight 40
[LSW1-GigabitEthernet1/0/3] qos queue 5 wrr weight 60
除了上述調(diào)度,交換機還支持DRR、WFQ等多種擁塞管理方法。
——————————————————————————————————
2.3、DRR調(diào)度
DRR(Deficit Round Robin)調(diào)度也是循環(huán)調(diào)度,但是相對于WRR只考慮報文個數(shù)的問題。DRR同時考慮報文的大小,在調(diào)度過程中考慮包長因素以達(dá)到調(diào)度速率公平性。DRR調(diào)度中,Deficit表示隊列的帶寬赤子,初始值為0。每次調(diào)度前,系統(tǒng)按權(quán)重為各隊列分配帶寬,計算Deficit值,如果隊列的Deficit值大于0。則不參與調(diào)度。
假如我們規(guī)定銀行3個窗口根據(jù)現(xiàn)金額度來辦理業(yè)務(wù),按照2:1:1權(quán)重為VIP窗口和兩個普通窗口分配現(xiàn)金,現(xiàn)在每輪為VIP客戶分配5000元現(xiàn)金,為普通窗口分配2500元現(xiàn)金。
第一輪:VIP客戶提取10000元,但是2個普通用戶分別提取2000元,則VIP窗口在辦完第一輪業(yè)務(wù)后剩余額度為-5000,普通窗口額度分別為500元。
第二輪:VIP窗口分配5000元,額度為0,普通分配2500元額度為3000。因此在第二輪VIP窗口不辦理業(yè)務(wù),普通窗口辦理業(yè)務(wù)。
如此循環(huán)調(diào)度的話,DRR調(diào)度還是沒能解決WRR調(diào)度中低延時需求業(yè)務(wù)得不到及時調(diào)度的問題。
單采用DRR調(diào)度的話,對于時延需求的業(yè)務(wù)如語音視頻,得不到優(yōu)先調(diào)度,如果將兩種方式結(jié)合起來PQ+WDRR調(diào)度,不僅能發(fā)揮兩種調(diào)度優(yōu)勢,還能克服兩種調(diào)度的各自缺點。
和PQ+WRR調(diào)度一樣,接口上的8個隊列可以分為兩組,用戶可以指定其中的某幾組隊列進(jìn)行PQ調(diào)度,其他進(jìn)行WDRR調(diào)度。
在調(diào)度時,首先按照PQ優(yōu)先調(diào)度7-5隊列,等全部調(diào)度完畢,才開始以DRR調(diào)度4-0。
——————————————————————————————————
2.4、WFQ調(diào)度
公平隊列FQ(Fair Queuing)的目的是盡可能公平的分項網(wǎng)絡(luò)資源,使所有流的延遲和抖動達(dá)到最優(yōu)。
不同的隊列獲得公平的調(diào)度機會,總體上均衡各個流的延遲。短報文和長報文獲得公平調(diào)度,如果不同隊列間同時存在多個長報文和短報文等待發(fā)送。讓短報文優(yōu)先獲得調(diào)度,總體上減少各個流的報文間的抖動。
與FQ相比,WFQ(Weighted Fair Queue)在計算報文調(diào)度次序時增加了優(yōu)先權(quán)方面的考慮,從統(tǒng)計上,WFQ使高優(yōu)先權(quán)的報文獲得優(yōu)先調(diào)度的機會多于低優(yōu)先級的報文。
WFQ調(diào)度在報文入隊列之前,先對流量進(jìn)行分類,兩種方式分類:
1、按流的會話信息分類
根據(jù)報文的協(xié)議類型、源和目的TCP或UDP端口號、源和目的IP地址,ToS域中的優(yōu)先級位等自動進(jìn)行分類,并且盡可能多的提供隊列,以將每個流均勻的放入不同的隊列中,從而在總體上均衡各個流的延遲,在出隊列時,WFQ按流的優(yōu)先級來分配每個流應(yīng)占有的帶寬。優(yōu)先級越小,獲得帶寬越少,反之。這種方式只有CBQ的Default-class支持。
2、按優(yōu)先級分類
通過優(yōu)先級映射把流量標(biāo)記為本地優(yōu)先級,每個本地優(yōu)先級對應(yīng)一個隊列號,每個接口預(yù)分配8個隊列,報文根據(jù)隊列號進(jìn)入隊列。默認(rèn),隊列的WFQ權(quán)重相同,流量平均分配接口帶寬。用戶可以修改權(quán)重,高優(yōu)先權(quán)和低優(yōu)先權(quán)按權(quán)重比例分配帶寬。
WFQ調(diào)度圖
PQ+WFQ調(diào)度和PQ+WRR相似,采用PQ,低優(yōu)先列隊中報文長期得不到帶寬,而單純采用WFQ調(diào)度時對時延需求業(yè)務(wù)語音得不到優(yōu)先調(diào)度。
PQ+WFQ調(diào)度
在調(diào)度時,首先按照PQ方式優(yōu)先調(diào)度7-5隊列中報文流,只有這些隊列報文全部調(diào)度完畢,才開始以WFQ方式調(diào)度4-0隊列中的報文流。4-0隊列包含自己的權(quán)值。
——————————————————————————————————
3、擁塞管理應(yīng)用場景
擁塞管理可以實現(xiàn)對不同的業(yè)務(wù)按照不同的優(yōu)先級進(jìn)行調(diào)度,在QOS方案部署中比較常用。
在企業(yè)網(wǎng)絡(luò)中,當(dāng)共享同一網(wǎng)絡(luò)的多種業(yè)務(wù)競爭相同的資源時,可能會產(chǎn)生擁塞,高優(yōu)先級業(yè)務(wù)無法得到保證,此時用戶可以為語音、視頻和數(shù)據(jù)等多種不同業(yè)務(wù)標(biāo)記不同的優(yōu)先級,報文根據(jù)不同優(yōu)先級進(jìn)入不同隊列的調(diào)度算法,實現(xiàn)業(yè)務(wù)的差分服務(wù)。
——————————————————————————————————
4、擁塞避免
擁塞避免(Congestion Avoidance)是指通過監(jiān)視網(wǎng)絡(luò)資源(如隊列或內(nèi)存緩沖區(qū))的使用情況,在擁塞發(fā)生或有加劇的趨勢時主動丟棄報文,通過調(diào)整網(wǎng)絡(luò)的流量來解除網(wǎng)絡(luò)過載的一種流控機制。
兩種丟棄報文方式:尾部丟包策略和WRED
1、傳統(tǒng)的尾部丟包策略
傳統(tǒng)的丟包策略采用尾部丟棄(Tail-Drop)的方法。當(dāng)隊列的長度達(dá)到最大值后,所有新入隊列的報文(緩存在隊列尾部)都將被丟棄。
這種丟棄策略會引發(fā)TCP全局同步現(xiàn)象,導(dǎo)致TCP連接始終無法建立。所謂TCP全局同步現(xiàn)象如圖,三種顏色表示三條TCP連接,當(dāng)同時丟棄多個TCP連接的報文時,將造成多個TCP連接同時進(jìn)入擁塞避免和慢啟動狀態(tài)而導(dǎo)致流量降低,之后又會在某個時間同時出現(xiàn)流量高峰,如此反復(fù),使網(wǎng)絡(luò)流量忽大忽小。
2、WRED
為避免TCP全局同步現(xiàn)象,出現(xiàn)了RED(Random Early Detection)技術(shù)。RED通過隨機地丟棄數(shù)據(jù)報文,讓多個TCP連接不同時降低發(fā)送速度,從而避免了TCP的全局同步現(xiàn)象。使TCP速率及網(wǎng)絡(luò)流量都趨于穩(wěn)定。
流隊列支持基于DSCP或IP優(yōu)先級進(jìn)行WRED丟棄。每一種優(yōu)先級都可以獨立設(shè)置報文丟包的上下門限及丟包率。當(dāng)隊列中報文的總長度達(dá)到丟棄的下限時,開始丟包。隨著隊列中報文總長度的增加,丟包率不斷增加,最高丟包率不超過設(shè)置的丟包率。直至隊列中報文的總長度達(dá)到丟棄的上限,報文全部丟棄。這樣按照一定的丟棄概率主動丟棄隊列中的報文,從而在一定程度上避免擁塞問題。
——————————————————————————————————
5、擁塞避免應(yīng)用場景
擁塞避免可以在網(wǎng)絡(luò)產(chǎn)生擁塞、或者擁塞加劇時,主動丟棄優(yōu)先級較低的報文,調(diào)整網(wǎng)絡(luò)流量,緩解網(wǎng)絡(luò)壓力,以保證高優(yōu)先級報文正常通過。
當(dāng)兩個局域網(wǎng)用戶需要通過廣域網(wǎng)進(jìn)行通信時,由于廣域網(wǎng)帶寬小于局域網(wǎng)的帶寬,位于廣域網(wǎng)和局域網(wǎng)之間的邊緣交換機將發(fā)生擁塞,此時可以通過配置擁塞避免,主動丟棄優(yōu)先級較低的報文(比如數(shù)據(jù)報文等),減少網(wǎng)絡(luò)的擁塞,保證高優(yōu)先級業(yè)務(wù)正常運行。
總結(jié)
以上是生活随笔為你收集整理的八、QOS队列调度与报文丢弃的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业微信消息多久可以撤回?企业微信怎么查
- 下一篇: 【历史上的今天】6 月 5 日:洛夫莱斯