智聯(lián)物聯(lián)技術(shù)分享之QoS配置

QoS(服務(wù)質(zhì)量)用于為不同的流量提供不同的優(yōu)先級(jí),以控制延遲和抖動(dòng),并降低丟包率。當(dāng)網(wǎng)絡(luò)過載或擁塞時(shí),QoS可以確保關(guān)鍵業(yè)務(wù)流量的正常傳輸,QoS(服務(wù)質(zhì)量)不是一個(gè)技術(shù),是多個(gè)技術(shù)的組合。
QoS是用于控制網(wǎng)絡(luò)中的帶寬,延遲,抖動(dòng)和數(shù)據(jù)包丟失的技術(shù)的組合。所有QoS機(jī)制均設(shè)計(jì)為影響至少一個(gè)或所有上述功能。
影響網(wǎng)絡(luò)質(zhì)量的四個(gè)主要因素包括:
帶寬:網(wǎng)絡(luò)最熟悉的因素是帶寬,它是網(wǎng)絡(luò)鏈路上可用容量的度量,即鏈路的寬度。通常以每秒位數(shù)(bps)為單位。
延遲:也稱為延遲,延遲處理的是數(shù)據(jù)包從發(fā)送方到接收方所花費(fèi)的時(shí)間。當(dāng)然,延遲越大,網(wǎng)絡(luò)“似乎”就越慢。延遲通常以毫秒(ms)為單位。
抖動(dòng):這是數(shù)據(jù)包之間延遲變化的一種度量。例如,如果一個(gè)數(shù)據(jù)包從A點(diǎn)到達(dá)B點(diǎn)需要30ms(即延遲),而另一個(gè)數(shù)據(jù)包從同一點(diǎn)A到達(dá)B點(diǎn)則需要40ms,則抖動(dòng)為10ms(即40ms – 30ms)。
丟包:當(dāng)數(shù)據(jù)包通過網(wǎng)絡(luò)“飛行”時(shí),其中一些可能會(huì)丟失,即無法到達(dá)目的地。
Classification and marking mechanisms 分類和標(biāo)記機(jī)制
Policing and shaping mechanisms 監(jiān)管和整形機(jī)制
Congestion management mechanism 擁塞管理機(jī)制
Congestion avoidance mechanism 擁塞避免機(jī)制
從入口接口進(jìn)入系統(tǒng)后,對(duì)數(shù)據(jù)包進(jìn)行分類和標(biāo)記。在此過程中,監(jiān)管機(jī)制將丟棄某些數(shù)據(jù)包。然后,將根據(jù)其標(biāo)記再次對(duì)數(shù)據(jù)包進(jìn)行分類。擁塞管理和擁塞避免機(jī)制為不同類型的數(shù)據(jù)包賦予不同的優(yōu)先級(jí),以便在網(wǎng)絡(luò)擁塞的情況下,具有較高優(yōu)先級(jí)的數(shù)據(jù)包可以更早地通過網(wǎng)關(guān)。最后,系統(tǒng)將從出口接口發(fā)送經(jīng)過QoS機(jī)制處理過的數(shù)據(jù)包。
擁塞管理
? First-In-First-Out (FIFO)
? Priority Queuing (PQ)
? Custom Queuing (CQ)
? Weighted Fair Queuing (WFQ)
? Class-Based Weighted Fair Queuing (CBWFQ)
? Low-Latency Queuing (LLQ)
?

1、FlFO(先進(jìn)現(xiàn)出隊(duì)列)
先進(jìn)先出隊(duì)列(First In First Out Queuing,簡(jiǎn)稱FIFO)不對(duì)報(bào)文進(jìn)行分類,當(dāng)報(bào)文進(jìn)入接口的速度大于接口能發(fā)送的速度時(shí),F(xiàn)IFO按報(bào)文到達(dá)接口的先后順序讓報(bào)文進(jìn)入隊(duì)列,同時(shí),F(xiàn)IFO在隊(duì)列的出口讓報(bào)文按進(jìn)隊(duì)的順序出隊(duì),先進(jìn)的報(bào)文將先出隊(duì),后進(jìn)的報(bào)文將后出隊(duì)。
2、PQ (優(yōu)先隊(duì)列)----低優(yōu)先級(jí)可能會(huì)“餓死”
PQ使用了4個(gè)子隊(duì)列,優(yōu)先級(jí)分別是high,medium,normal,low。PQ會(huì)先服務(wù)高優(yōu)先級(jí)的子隊(duì)列,若高優(yōu)先級(jí)子隊(duì)列里沒有數(shù)據(jù)后,再服務(wù)中等優(yōu)先級(jí)子隊(duì)列,依次類推。
如果PQ正在服務(wù)中等優(yōu)先級(jí)子隊(duì)列,但是高優(yōu)先級(jí)里又來了數(shù)據(jù)包,則PQ會(huì)中斷中等優(yōu)先級(jí)子隊(duì)列的服務(wù),轉(zhuǎn)而服務(wù)高優(yōu)先級(jí)子隊(duì)列。每一個(gè)子隊(duì)列都有一個(gè)最大隊(duì)列深度(queue-size),如果達(dá)到了最大隊(duì)列深度,則進(jìn)行尾丟棄。
3、CQ(用戶自定義隊(duì)列)---不同優(yōu)先級(jí)獲得不同的帶寬---避免低優(yōu)先級(jí)“餓死”
CQ最多可包含16個(gè)組(即group-number的取值范圍為1~16),在每個(gè)組中指明了什么樣的數(shù)據(jù)包進(jìn)入什么樣的隊(duì)列、各隊(duì)列的長度和每次輪詢各隊(duì)列所能連續(xù)發(fā)送的字節(jié)數(shù)等信息。CQ對(duì)報(bào)文進(jìn)行分類,將所有報(bào)文分成最多至17類,分別屬于CQ的17個(gè)隊(duì)列中的一個(gè),然后,按報(bào)文的類別將報(bào)文進(jìn)入相應(yīng)的隊(duì)列。
CQ的17個(gè)隊(duì)列中,0號(hào)隊(duì)列是PQ隊(duì)列,路由器總是先把0號(hào)隊(duì)列中的報(bào)文發(fā)送完,然后才處理1到16隊(duì)列中的報(bào)文,所以0號(hào)隊(duì)列一般作為系統(tǒng)隊(duì)列把實(shí)時(shí)性要求高的交互式協(xié)議報(bào)文放到0號(hào)隊(duì)列。1到16號(hào)隊(duì)列可以按用戶的定義分配它們能占用接口帶寬的比例,在報(bào)文出隊(duì)的時(shí)候,CQ按定義的帶寬比例分別從1到16號(hào)隊(duì)列中取一定量的報(bào)文在接口上發(fā)送出去。其中,按帶寬比例分別發(fā)送的實(shí)現(xiàn)過程是這樣的,16個(gè)普通隊(duì)列采用輪詢的方式進(jìn)行調(diào)度,當(dāng)調(diào)度到某一個(gè)隊(duì)列時(shí),從這個(gè)隊(duì)列取出一定字節(jié)數(shù)的報(bào)文發(fā)送,用戶通過指定這個(gè)字節(jié)數(shù),就可以控制不同隊(duì)列之間的帶寬分配比例。
4、WFQ(加權(quán)公平隊(duì)列)---相比于CQ不用手工分類
WFQ是一個(gè)復(fù)雜的排隊(duì)過程,可以保證相同優(yōu)先級(jí)業(yè)務(wù)間公平,不同優(yōu)先級(jí)業(yè)務(wù)間加權(quán)。隊(duì)列的數(shù)目可預(yù)先配置,范圍是(16-4096)。
WFQ,在保證公平(帶寬、延遲)的基礎(chǔ)上體現(xiàn)權(quán)值,權(quán)值大小依賴于JP報(bào)文頭中攜帶的IP優(yōu)先級(jí)(Precedence)。WFQ對(duì)報(bào)文按流進(jìn)行分類(相同源IP地址,目的IP地址,源端口號(hào),日的端口號(hào),協(xié)議號(hào),Precedence的報(bào)文屬于同一個(gè)流),每一個(gè)流被分配到一個(gè)隊(duì)列,該過程稱為散列。WFQ入隊(duì)過程采用HASH算法來自動(dòng)完成,盡量將不同的流分入不同的隊(duì)列。在出隊(duì)的時(shí)候,WFQ按流的優(yōu)先級(jí)(precedence)來分配每個(gè)流應(yīng)占有出口的帶寬。優(yōu)先級(jí)的數(shù)值越小,所得的帶寬越少。優(yōu)先級(jí)的數(shù)值越大,所得的帶寬越多。這樣就保證了相同優(yōu)先級(jí)業(yè)務(wù)之間的公平,體現(xiàn)了不同優(yōu)先級(jí)業(yè)務(wù)之間的權(quán)值。
5、CBWFQ(基于類的加權(quán)公平隊(duì)列)
CBWFQ通常使用ACL定義數(shù)據(jù)流類別,并將注入寬帶和隊(duì)列限制等參數(shù)應(yīng)用于這些類別。CBWFQ是網(wǎng)絡(luò)中的一個(gè)隊(duì)列配置方案,其允許通信基于標(biāo)準(zhǔn)分類,例如訪問控制列表,輸入界面名,協(xié)議和服務(wù)質(zhì)量(QoS)標(biāo)志。CBWFQ擴(kuò)展了加權(quán)公平隊(duì)列WFQ功能的標(biāo)準(zhǔn)來提供自定義通信類型支持。
6、LLQ(低延遲隊(duì)列)
LLQ為基于類別的加權(quán)公平排隊(duì)(CBWFQ)提供絕對(duì)優(yōu)先排隊(duì)功能,減少了語音會(huì)話的抖動(dòng)。LLQ相當(dāng)于CBWFQ加上一個(gè)嚴(yán)格優(yōu)先級(jí)隊(duì)列,該隊(duì)列優(yōu)先級(jí)高于其他所有隊(duì)列,非常適合時(shí)延敏感性應(yīng)用。LLQ的嚴(yán)格優(yōu)先級(jí)隊(duì)列是一個(gè)有最小保證帶寬的優(yōu)先級(jí)隊(duì)列,出現(xiàn)擁塞時(shí),該隊(duì)列的數(shù)據(jù)量不能超過所允許的帶寬,否則會(huì)被丟棄。
LLQ具有CBWFQ的所有優(yōu)點(diǎn),包括自定義流量類別,為每種類別的流量提供帶寬保證,并且可以在所有類別的隊(duì)列上應(yīng)用WRED。(嚴(yán)格優(yōu)先級(jí)隊(duì)列除外)
對(duì)于LLQ和CBWFQ來說,任何沒有被顯示分類的流量都被認(rèn)為class-default流量,可以將class-default流量類別隊(duì)列由FIFO改為WFQ,需要時(shí)也可以用WRED。
LLQ最大優(yōu)勢(shì)是可以為時(shí)延和抖動(dòng)敏感型應(yīng)用的流量提供一個(gè)或多個(gè)有帶寬保證的嚴(yán)格優(yōu)先級(jí)隊(duì)列,LLQ并不局限于特定平臺(tái)或傳輸介質(zhì)。
?