一、QoS背景
業(yè)務(wù)流量多樣化導(dǎo)致互聯(lián)網(wǎng)流量激增,從而使得網(wǎng)絡(luò)擁堵、數(shù)據(jù)丟包、轉(zhuǎn)發(fā)延時(shí)甚至業(yè)務(wù)不可用。從運(yùn)營(yíng)維護(hù)成本考慮,需要一個(gè)對(duì)網(wǎng)絡(luò)流量進(jìn)行進(jìn)行管理的策略。
二、影響網(wǎng)絡(luò)業(yè)務(wù)的因素舉例
- 網(wǎng)絡(luò)帶寬:網(wǎng)絡(luò)帶寬是指單位時(shí)間內(nèi)傳輸?shù)臄?shù)據(jù)量。
- 時(shí)延:傳輸時(shí)延,一個(gè)數(shù)據(jù)位從從發(fā)送方到達(dá)接收方所需要的時(shí)間,取決于傳輸介質(zhì),與帶寬無(wú)關(guān);串行化時(shí)延,指發(fā)送節(jié)點(diǎn)在傳輸鏈路上開(kāi)始發(fā)送報(bào)文的第一個(gè)比特至發(fā)完最后一個(gè)比特所需要的時(shí)間。該時(shí)延取決于帶寬時(shí)延以及報(bào)文大??;處理時(shí)延,指路由器把報(bào)文從入接口放到出接口所需要的時(shí)間,跟路由器CPU處理性能有關(guān);隊(duì)列時(shí)延,指報(bào)文在隊(duì)列中等待的時(shí)間。它的大小跟報(bào)文的大小和數(shù)量、帶寬以及隊(duì)列機(jī)制有關(guān)。
- 抖動(dòng):預(yù)想的,同一帶寬同一傳輸路徑下,數(shù)據(jù)包到達(dá)目的端時(shí)間是一樣的,但是由于種種原因(單獨(dú)路由、網(wǎng)絡(luò)設(shè)備接收)數(shù)據(jù)包到達(dá)目的端的時(shí)間互相不一致,這就是抖動(dòng)。抖動(dòng)大小跟時(shí)延時(shí)延大小有關(guān),時(shí)延大抖動(dòng)范圍可能更大。
- 丟包率:流量傳播過(guò)程中丟失報(bào)文占傳輸報(bào)文的百分比。
三、QoS三種服務(wù)模型
1. 盡力而為服務(wù)模型(Best-Effort):
用戶可以在任何時(shí)候,發(fā)出任意數(shù)量的報(bào)文,不需要通知網(wǎng)絡(luò)。在此服務(wù)模式下,網(wǎng)絡(luò)盡最大的可能來(lái)發(fā)送報(bào)文,但是對(duì)于時(shí)延、丟包無(wú)法保證。適用于對(duì)于對(duì)于時(shí)延、丟包要求不高業(yè)務(wù),比如FTP、Email??梢酝ㄟ^(guò)增大帶寬等方式優(yōu)化業(yè)務(wù)。
2. 綜合服務(wù)模型(IntServ):
該服務(wù)模型下,用戶發(fā)送報(bào)文之前,需要先發(fā)送信令(signaling)向網(wǎng)絡(luò)描述自己的流量參數(shù),申請(qǐng)?zhí)囟ǖ腝oS服務(wù)。根據(jù)網(wǎng)絡(luò)流量參數(shù),預(yù)留資源以滿足該請(qǐng)求。收到確認(rèn)信息后,確定網(wǎng)絡(luò)已為這個(gè)應(yīng)用程序的報(bào)文預(yù)留了資源后,用戶才開(kāi)始發(fā)送報(bào)文。用戶發(fā)送的報(bào)文應(yīng)該控制在流量參數(shù)描述的范圍之內(nèi)。網(wǎng)絡(luò)節(jié)點(diǎn)需要為每個(gè)流維護(hù)一個(gè)狀態(tài),并基于這個(gè)狀態(tài)執(zhí)行相應(yīng)的Qos動(dòng)作,滿足對(duì)客戶的承諾。
IntServ模型使用了RSVP(Resource Reservation Protocol)協(xié)議作為信令,在一條已知路徑的網(wǎng)絡(luò)拓?fù)渖项A(yù)留帶寬、優(yōu)先級(jí)等資源,路徑沿途的各網(wǎng)元必須為每個(gè)要求服務(wù)質(zhì)量保證的數(shù)據(jù)流預(yù)留想要的資源,通過(guò)RSVP信息的預(yù)留,各網(wǎng)元可以判斷是否有足夠的資源可以使用。只有所有的網(wǎng)元都給RSVP提供了足夠的資源,“路徑”方可建立。
3. (常用)差分服務(wù)模型(DiffServ):
該服務(wù)模型是將網(wǎng)絡(luò)中的流量分為多個(gè)類,每個(gè)類享受不同的處理,尤其是網(wǎng)絡(luò)出現(xiàn)擁塞時(shí)不同的類會(huì)享受不同級(jí)別的處理,從而得到不同的丟包率、時(shí)延、時(shí)延抖動(dòng)。同一類的業(yè)務(wù)在網(wǎng)絡(luò)中會(huì)被聚合起來(lái)同一發(fā)送,保證相同的時(shí)延、抖動(dòng)、丟包率等QoS指標(biāo)。
業(yè)務(wù)流的分類和匯聚工作在網(wǎng)絡(luò)邊緣由邊界節(jié)點(diǎn)完成。邊界節(jié)點(diǎn)可以通過(guò)多種條件(比如報(bào)文的源地址和目的地址、ToS域中的優(yōu)先級(jí)、協(xié)議類型等)靈活地對(duì)報(bào)文進(jìn)行分類,對(duì)不同的報(bào)文設(shè)置不同的標(biāo)記字段,而其他節(jié)點(diǎn)只需要簡(jiǎn)單地識(shí)別報(bào)文中的這些標(biāo)記,即可進(jìn)行資源分配和流量控制
與Intserv模型相比,DiffServ模型不需要信令。在DiffServ模型中,應(yīng)用程序發(fā)出報(bào)文前,不需要預(yù)先向網(wǎng)絡(luò)提出資源申請(qǐng),而是通過(guò)設(shè)置報(bào)文的QoS參數(shù)信息,來(lái)告知網(wǎng)絡(luò)節(jié)點(diǎn)它的QoS需求。網(wǎng)絡(luò)不需要為每個(gè)流維護(hù)狀態(tài),而是根據(jù)每個(gè)報(bào)文流指定的QoS參數(shù)信息來(lái)提供差分服務(wù),即對(duì)報(bào)文的服務(wù)等級(jí)劃分,有差別地進(jìn)行流量控制和轉(zhuǎn)發(fā),提供端到端的QoS保證。DiffServ模型充分考慮了IP網(wǎng)絡(luò)本身靈活性、可擴(kuò)展性強(qiáng)的特點(diǎn),將復(fù)雜的服務(wù)質(zhì)量保證通過(guò)報(bào)文自身攜帶的信息轉(zhuǎn)換為單跳行為,從而大大減少了信令的工作,是當(dāng)前網(wǎng)絡(luò)中的主流服務(wù)模型。
四、基于DiffServ模型的QoS組成
? 報(bào)文分類和標(biāo)記
要實(shí)現(xiàn)差分服務(wù),需要首先將數(shù)據(jù)包分為不同的類別或者設(shè)置為不同的優(yōu)先級(jí)。報(bào)文分類即把數(shù)據(jù)包分為不同的類別,可以通過(guò)MQC配置中的流分類實(shí)現(xiàn);報(bào)文標(biāo)記即為數(shù)據(jù)包設(shè)置不同的優(yōu)先級(jí),可以通過(guò)優(yōu)先級(jí)映射和重標(biāo)記優(yōu)先級(jí)實(shí)現(xiàn)。
? 流量監(jiān)管、流量整形和接口限速
流量監(jiān)管和流量整形可以將業(yè)務(wù)流量限制在特定的帶寬內(nèi),當(dāng)業(yè)務(wù)流量超過(guò)額定帶寬時(shí),超過(guò)的流量將被丟棄或緩存。其中,將超過(guò)的流量丟棄的技術(shù)稱為流量監(jiān)管,將超過(guò)的流量緩存的技術(shù)稱為流量整形。接口限速分為基于接口的流量監(jiān)管和基于接口的流量整形。
? 擁塞管理和擁塞避免
擁塞管理在網(wǎng)絡(luò)發(fā)生擁塞時(shí),將報(bào)文放入隊(duì)列中緩存,并采取某種調(diào)度算法安排報(bào)文的轉(zhuǎn)發(fā)次序。而擁塞避免可以監(jiān)督網(wǎng)絡(luò)資源的使用情況,當(dāng)發(fā)現(xiàn)擁塞有加劇的趨勢(shì)時(shí)采取主動(dòng)丟棄報(bào)文的策略,通過(guò)調(diào)整流量來(lái)解除網(wǎng)絡(luò)的過(guò)載。

五、QoS調(diào)度算法
1. 加權(quán)循環(huán)(WRR):
WRR能夠有效區(qū)分隊(duì)列中所有的業(yè)務(wù)。對(duì)于所有的業(yè)務(wù)流在排隊(duì)等待調(diào)度的隊(duì)列,WRR是根據(jù)每個(gè)隊(duì)列配置的權(quán)值與所有業(yè)務(wù)流在排隊(duì)等待調(diào)度的對(duì)列的權(quán)值總和比來(lái)分配帶寬。因此,在處理多個(gè)用戶的高優(yōu)先級(jí)等級(jí)業(yè)務(wù)時(shí),WRR確保每個(gè)用戶都不會(huì)過(guò)度占用帶寬。
2. 嚴(yán)格優(yōu)先級(jí)(SP):
SP模式按照優(yōu)先級(jí)優(yōu)先級(jí)從高到低的次序有限發(fā)送較高優(yōu)先級(jí)隊(duì)列中的分組,當(dāng)較高優(yōu)先級(jí)隊(duì)列為空時(shí),再發(fā)送較低優(yōu)先級(jí)隊(duì)列中的分組。如此,將關(guān)鍵業(yè)務(wù)的分組放入較高優(yōu)先級(jí)的隊(duì)列,將非關(guān)鍵業(yè)務(wù)的分組放入較低優(yōu)先級(jí)的隊(duì)列,可以保證關(guān)鍵業(yè)務(wù)的分組被優(yōu)先傳輸,非關(guān)鍵業(yè)務(wù)的分組在處理關(guān)鍵業(yè)務(wù)數(shù)據(jù)的空閑間隙被傳送。
六、MQC(Modular QoS Command-Line Interface)
模塊化QoS命令行,可以通過(guò)將某種共同共同特征的的報(bào)文劃分為一類,再為同一類報(bào)文提供相同的服務(wù),或?yàn)椴煌膱?bào)文提供不同的服務(wù).
MQC三要素:
- 流分類:
- 定義流量的匹配規(guī)則,對(duì)報(bào)文進(jìn)行分類
- 流分類中各規(guī)則之間的關(guān)系 為and或or,默認(rèn)為or
- and:當(dāng)流分類中包含ACL規(guī)則時(shí),報(bào)文必須匹配其中一條ACL規(guī)則以及所有非ACL規(guī)則才屬于該分類;當(dāng)流分類中沒(méi)有ACL規(guī)則時(shí),報(bào)文必須匹配所有非ACL規(guī)則才屬于該類。
- or:報(bào)文只需要匹配了流分類中的一個(gè)規(guī)則,該設(shè)備就會(huì)任務(wù)報(bào)文屬于該類。
- 流行為:用來(lái)定義針對(duì)某類報(bào)文所做的動(dòng)作。
- 流策略:將制定的流分類和流行為綁定,對(duì)分類后的報(bào)文執(zhí)行對(duì)應(yīng)流行為中定義的動(dòng)作。
MQC配置流程:
- 配置流分類:按照一定規(guī)則對(duì)報(bào)文進(jìn)行分類,是提供差分服務(wù)的基礎(chǔ)。
- 配置流行為:為符合流分類規(guī)則的報(bào)文指定流量控制動(dòng)作。
- 配置流策略:將指定的流分類和指定的流行為綁定,形成完整的策略。
- 應(yīng)用流策略:按照需要在相應(yīng)的視圖下應(yīng)用流策略。
七、協(xié)議優(yōu)先級(jí)字段
為了有針對(duì)不同的業(yè)務(wù)提供有差別的QoS服務(wù),商定將一些QoS信息記錄在報(bào)文頭中的某些字段下,網(wǎng)絡(luò)中的設(shè)備解析到報(bào)文頭的相應(yīng)字段,根據(jù)字段內(nèi)容確定優(yōu)先級(jí)別,根絕報(bào)文對(duì)應(yīng)優(yōu)先級(jí)為這些報(bào)文提供有差別的服務(wù)。
一. Precedence字段:
IP報(bào)文頭ToS域由8個(gè)比特組成,其中3個(gè)比特的Precedence字段標(biāo)識(shí)了IP報(bào)文的優(yōu)先級(jí)
如圖,網(wǎng)絡(luò)層IPV4報(bào)文頭下的ToS/DiffServ字段,即為QoS優(yōu)先級(jí)字段。

1. ToS優(yōu)先級(jí)分類:
比特0~2表示Precedence字段,代表報(bào)文傳輸?shù)?個(gè)優(yōu)先級(jí),按照優(yōu)先級(jí)從高到低順序取值為7、6、5、4、3、2、1和0。最高優(yōu)先級(jí)是7或6,經(jīng)常是為路由選擇或更新網(wǎng)絡(luò)控制通信保留的,用戶級(jí)應(yīng)用僅能使用0~5。
- 除了Predecence字段外,ToS域中還包括D、T、R、C三個(gè)比特:
- D比特表示延遲要求(Delay,0代表正常延遲,1代表低延遲)。
- T比特表示吞吐量(Throughput,0代表正常吞吐量,1代表高吞吐量)。
- R比特表示可靠性(Reliability,0代表正??煽啃裕?代表高可靠性)。
- C比特表示傳輸開(kāi)銷(Monetary Cost, 0代表正常開(kāi)銷,1代表最小開(kāi)銷)
2. DSCP優(yōu)先級(jí)分類:
DSCP是對(duì)ToS優(yōu)先級(jí)分類的重新定義,其中0-5位定義為DSCP,并且ToS域改為DffServ。DS字段的前6位(0位~5位)用作區(qū)分服務(wù)代碼點(diǎn)DSCP(DS Code Point),后2位(6位、7位)是保留位。DS字段的前3位(0位~2位)是類選擇代碼點(diǎn)CSCP(Class Selector Code Point),相同的CSCP值代表一類DSCP。DS節(jié)點(diǎn)根據(jù)DSCP的值選擇相應(yīng)的PHB(Per-Hop Behavior)。
- DSCP值的兩種表達(dá)形式
- 數(shù)字形式:0-63。
-
關(guān)鍵字表達(dá)方式:關(guān)鍵字表示DSCP值。
思博倫圖
圖片侵刪
AFxy中,x代表不同的類別,根據(jù)不同的分類后續(xù)可以定義進(jìn)入相對(duì)應(yīng)的隊(duì)列,y代表當(dāng)隊(duì)列被裝滿的時(shí)候丟包的概率,例如AF1類中的報(bào)文,其中丟包概率由小到大排序?yàn)锳F11<AF12<AF13。
不同關(guān)鍵字常用于標(biāo)識(shí)不同報(bào)文(可自行定義):
- CS6和CS7默認(rèn)用于協(xié)議報(bào)文,而且是大多數(shù)廠商設(shè)備的硬件隊(duì)列里最高優(yōu)先級(jí)的報(bào)文,因?yàn)槿绻@些報(bào)文無(wú)法接收的話會(huì)引起協(xié)議中斷。
- EF常用于承載語(yǔ)音的流量,因?yàn)檎Z(yǔ)音要求低延遲,低抖動(dòng),低丟包率,是僅次于協(xié)議報(bào)文的最重要的報(bào)文。
- AF4用來(lái)承載語(yǔ)音的信令流量.
- AF3可以用來(lái)承載IPTV的直播流量,直播的實(shí)時(shí)性很強(qiáng),需要連續(xù)性和大吞吐量的保證。
- AF2可以用來(lái)承載VOD(Videoon Demand:視頻點(diǎn)播)的流量,相對(duì)于直播流量來(lái)說(shuō),VOD對(duì)實(shí)時(shí)性要求沒(méi)那么強(qiáng)烈,允許有時(shí)延或者緩沖。
- AF1可以用來(lái)承載普通上網(wǎng)業(yè)務(wù)。
二、VLAN 802.1P優(yōu)先級(jí):
位于VLAN幀頭的優(yōu)先級(jí)字段,常常成為CoS字段,一共3bit。只是簡(jiǎn)單的標(biāo)記了業(yè)務(wù)流量的優(yōu)先級(jí),7-0.

三、MPLS EXP字段:
其中EXP域相當(dāng)于VLAN下的CoS域,7-0

八、內(nèi)外優(yōu)先級(jí)映射
設(shè)備不能直接對(duì)報(bào)文本身的優(yōu)先級(jí)進(jìn)行差分服務(wù),因此需要將報(bào)文本身的外部?jī)?yōu)先級(jí)映射到設(shè)備能夠直接處理的內(nèi)部服務(wù)優(yōu)先級(jí)表。
優(yōu)先級(jí)映射實(shí)現(xiàn)從QoS優(yōu)先級(jí)到內(nèi)部?jī)?yōu)先級(jí)(或者本地優(yōu)先級(jí))或從內(nèi)部?jī)?yōu)先級(jí)到QoS優(yōu)先級(jí)的映射,并利用DiffServ域來(lái)管理和記錄QoS優(yōu)先級(jí)和服務(wù)等級(jí)之間的映射關(guān)系。對(duì)于進(jìn)入設(shè)備的報(bào)文,設(shè)備將報(bào)文攜帶的優(yōu)先級(jí)或者端口優(yōu)先級(jí)映射為內(nèi)部?jī)?yōu)先級(jí),然后根據(jù)內(nèi)部?jī)?yōu)先級(jí)與隊(duì)列之間的映射關(guān)系確定報(bào)文進(jìn)入的隊(duì)列,從而針對(duì)隊(duì)列進(jìn)行流量整形、擁塞避免、隊(duì)列調(diào)度等處理,并可以根據(jù)配置修改報(bào)文發(fā)送出去時(shí)所攜帶的優(yōu)先級(jí),以便其他設(shè)備根據(jù)報(bào)文的優(yōu)先級(jí)提供相應(yīng)的QoS服務(wù)。
學(xué)習(xí)總結(jié)參考:1. https://blog.csdn.net/qq_38265137/article/details/80466737

