CoS & DSCP 映射機(jī)制
對(duì)于CoS和DSCP,只是分類的標(biāo)準(zhǔn),可以自己設(shè)置信任哪個(gè)。而且CoS和DSCP之間有映射,只是標(biāo)識(shí)了包的優(yōu)先級(jí)的不同,根據(jù)包的優(yōu)先級(jí)選擇不同的出隊(duì)列,不同出隊(duì)列所占的帶寬資源,擁塞時(shí)丟棄比例不同。從而實(shí)現(xiàn)服務(wù)質(zhì)量的目標(biāo)。
QoS 的實(shí)現(xiàn)以IETF 的DiffServ 體系為基礎(chǔ)。DiffServ體系規(guī)定每一個(gè)傳輸報(bào)文將在網(wǎng)絡(luò)中被分類到不同的類別,分類信息被包含在了IP 報(bào)文頭中,DiffServ 體系使用了IP 報(bào)文頭中的TOS(Type Of Service)中的前6 個(gè)比特來攜帶報(bào)文的分類信息。當(dāng)然分類信息也可以被攜帶在鏈路層報(bào)文頭上。一般地,附帶在報(bào)文中的分類信息有:
1 幀頭的Tag Control Information 中的前3 個(gè)比特,它包含了8 個(gè)類別的優(yōu)先級(jí)信息,通常稱這三個(gè)比特為為User Priority bits。
2 報(bào)文頭中的TOS 字段前3 個(gè)比特,稱作IP precedence value;或者攜帶在IP 報(bào)文頭中的TOS 字段前6 個(gè)比特,稱作Differentiated Services Code Point (DSCP) value。
在遵循DiffServ 體系的網(wǎng)絡(luò)中,各交換機(jī)和路由器對(duì)包含同樣分類信息的報(bào)文采取同樣的傳輸服務(wù)策略,對(duì)包含不同分類信息的報(bào)文采取不同的傳輸服務(wù)策略。報(bào)文的分類信息可以被網(wǎng)絡(luò)上的主機(jī)、交換機(jī)、路由器或者其它網(wǎng)絡(luò)設(shè)備賦予??梢曰诓煌膽?yīng)用策略或者基于報(bào)文內(nèi)容的不同為報(bào)文賦予類別信息。識(shí)別報(bào)文的內(nèi)容以便為報(bào)文賦予類別信息的做法往往需要消耗網(wǎng)絡(luò)設(shè)備的大量處理資源,為了減少骨干網(wǎng)絡(luò)的處理開銷,一般這種賦予類別信息的方式都使用在網(wǎng)絡(luò)邊界。
交換機(jī)或路由器根據(jù)報(bào)文所攜帶的類別信息,可以為各種交通流提供不同的傳輸優(yōu)先級(jí),或者為某種交通流預(yù)留帶寬,或者適當(dāng)?shù)膩G棄一些重要性較低的報(bào)文、或者采取其他一些操作等等。這些獨(dú)立設(shè)備的這種行為在DiffServ 體系中被稱作每跳行為(per-hop behavior)。如果網(wǎng)絡(luò)上的所有設(shè)備提供了一致的每跳行為,那么對(duì)于DiffServ 體系來說,這個(gè)網(wǎng)絡(luò)就可以構(gòu)成end-to-end QoS solution。
下面幾個(gè)段落將詳細(xì)介紹本交換機(jī)所提供的以DiffServ 體系為基礎(chǔ)的QoS 模型。
QoS入口端動(dòng)作包括Classifying、Policing 和Marking。
Classifying:確保將網(wǎng)絡(luò)交通流劃分成以DSCP值來標(biāo)識(shí)的各個(gè)數(shù)據(jù)流。隨后交換機(jī)將根據(jù)DSCP值來對(duì)各個(gè)數(shù)據(jù)流實(shí)施不同的QoS策略。有關(guān)分類的更詳細(xì)介紹,請(qǐng)參閱Classifying章節(jié)。
Policing:用于約束某個(gè)流的所占用的傳輸帶寬,根據(jù)配置的Policer來決定流中的哪些部分超出了所限制的傳輸帶寬,并將結(jié)果傳遞給下一階段的Marking動(dòng)作。有關(guān)Policing的更詳細(xì)介紹,請(qǐng)參閱Policing章節(jié)。
Marking:決定怎樣處理數(shù)據(jù)流中在Policing動(dòng)作中超限的部分??赡艿奶幚韯?dòng)作有丟棄超限部分和用另外的DSCP值標(biāo)記超限部分。有關(guān)Marking的更詳細(xì)介紹,請(qǐng)參閱Marking章節(jié)。
QoS 出口端動(dòng)作包括Queueing和Scheduling: Queueing:根據(jù)數(shù)據(jù)流的每一個(gè)報(bào)文所附帶的DSCP值來確定將報(bào)文送往端口的哪個(gè)輸出隊(duì)列,有關(guān)Queueing的更詳細(xì)介紹,請(qǐng)參閱Queueing章節(jié)。 Scheduling:確定以什么樣的方式處理被送到端口各個(gè)輸出隊(duì)列中的報(bào)文有關(guān)Scheduling的更詳細(xì)介紹,請(qǐng)參閱Scheduling 章節(jié)。下面的段落將詳細(xì)介紹QoS模型的各個(gè)階段的動(dòng)作。
Classifying
Classifying 即為分類,其過程是根據(jù)信任策略或者根據(jù)分析每個(gè)報(bào)文的內(nèi)容來確定將這些報(bào)文歸類到以DSCP 值來表示的各個(gè)數(shù)據(jù)流中,因此分類動(dòng)作的核心任務(wù)是確定輸入報(bào)文的DSCP 值。分類發(fā)生在端口接收輸入報(bào)文階段,當(dāng)某個(gè)端口關(guān)聯(lián)了一個(gè)表示QoS 策略的policy-map 后,分類就在該端口上生效,它起作用于所有從該端口輸入的報(bào)文。
對(duì)于一般非IP 報(bào)文,交換機(jī)將根據(jù)以下準(zhǔn)則來歸類報(bào)文:
1 1. 如果報(bào)文本身不包含QoS 信息,即報(bào)文的第二層報(bào)文頭中不包含User Priority bits,那么可以根據(jù)報(bào)文輸入端口的缺省CoS值來獲得報(bào)文的QoS信息。端口的缺省CoS值和報(bào)文的UserPriority bits 一樣,取值范圍為0~7。取得報(bào)文的CoS 值之后,再根據(jù)交換機(jī)上配置的CoS-to-DSCP map 來將CoS 轉(zhuǎn)化為DSCP 值。
2. 如果報(bào)文本身包含QoS 信息,報(bào)文的第二層報(bào)文頭中包含User Priority bits,那么可以直接從報(bào)文中獲得CoS 值,然后再根據(jù)交換機(jī)上配置的CoS-to-DSCP map 來將CoS 轉(zhuǎn)化為DSCP值。
注意以上兩種歸類準(zhǔn)則只有當(dāng)端口的QoS 信任模式打開的時(shí)候才起作用。打開端口的QoS 的信任模式意味著不通過分析報(bào)文的內(nèi)容,而直接從報(bào)文中或報(bào)文的輸入端口上獲得報(bào)文QoS信息,從而得到DSCP 值。
2 3. 如果端口關(guān)聯(lián)的policy-map 中使用了基于mac access-list extended 的ACLs 歸類,那么在該端口上,將通過提取報(bào)文的源MAC 地址、目的MAC 地址以及Ethertype 域來匹配關(guān)聯(lián)的ACLs,以確定報(bào)文的DSCP 值。要注意的是,如果端口關(guān)聯(lián)了某個(gè)policy-map,但又沒有為其設(shè)置相應(yīng)的DSCP 值,則交換機(jī)將按照缺省行為為符合這種歸類的報(bào)文分配優(yōu)先級(jí):即根據(jù)報(bào)文第二層報(bào)文頭中包含的優(yōu)先級(jí)信息或端口的缺省優(yōu)先級(jí)。
注意上面三種歸類準(zhǔn)則可能會(huì)同時(shí)作用于一個(gè)端口上。在這種情況下,上面三種歸類準(zhǔn)則按3、2、1 的優(yōu)先級(jí)起作用。即,先根據(jù)ACLs 歸類,在歸類失敗的情況下,才有可能選擇歸類準(zhǔn)則2、1,在這個(gè)時(shí)候,如果端口的QoS 信任模式打開,則根據(jù)準(zhǔn)則2 和1 直接從報(bào)文中或者從端口上獲得QoS 信息;如果端口的QoS 信任模式關(guān)閉,那么那些歸類失敗的報(bào)文將被賦予DSCP 的缺省值0。
對(duì)于IP 報(bào)文,可以將根據(jù)以下準(zhǔn)則來歸類報(bào)文:
1 1. 直接從IP 報(bào)文的TOS 字段中提取出DSCP 值。IETF規(guī)定IP 報(bào)文的TOS 字段的前6 個(gè)比特作為DSCP 值,它的取值范圍為0~63,和交換機(jī)內(nèi)部使用的DSCP 值一一對(duì)應(yīng)。
2. 按照非IP 報(bào)文處理,按照上面介紹的非IP 報(bào)文歸類準(zhǔn)則1、2來確定報(bào)文的DSCP 值。
注意以上幾種歸類準(zhǔn)則只有當(dāng)端口的QoS 信任模式打開的時(shí)候才起作用。打開端口的QoS 的信任模式意味著不通過分析IP 報(bào)文的內(nèi)容,而直接從IP 報(bào)文的TOS 字段中或報(bào)文的輸入端口上獲得QoS 信息,從而得到DSCP 值。
2 3. 如果端口關(guān)聯(lián)的policy-map 中使用了基于ip access-list (extended)的ACLs 歸類,那么該在該端口上,將通過提取報(bào)文的源IP 地址、目的IP 地址、Protocol字段、以及第四層TCP/UDP 端口字段來匹配相關(guān)聯(lián)的ACLs,以確定報(bào)文的DSCP 值。要注意的是,如果端口關(guān)聯(lián)了某個(gè)policy-map,但又沒有為其設(shè)置相應(yīng)的DSCP 值,則交換機(jī)將按照缺省行為為符合這種歸類的報(bào)文分配優(yōu)先級(jí):即根據(jù)報(bào)文第二層報(bào)文頭中包含的優(yōu)先級(jí)信息或端口的缺省優(yōu)先級(jí)。
和非IP 報(bào)文歸類準(zhǔn)則一樣,以上幾種歸類準(zhǔn)則可以同時(shí)作用于一個(gè)端口上。在這種情況下,上面的歸類準(zhǔn)則按照3、2、1的優(yōu)先級(jí)起作用。即先根據(jù)ACLs 歸類,在歸類失敗的情況下,才有可能選擇歸類準(zhǔn)則2、1;在這個(gè)時(shí)候,如果端口選擇QoS 信任模式Trust IP-precedence,那么準(zhǔn)則1 起作用;如果端口選擇QoS 信任模式Trust CoS,那么準(zhǔn)則2 起作用。
有關(guān)上面提到的CoS-to-DSCP map、IP-precedence-to-DSCP map映射表的詳細(xì)描述情常見隨后描述。
Policing
Policing 動(dòng)作發(fā)生在數(shù)據(jù)流分類完成后,它用于約束被分類的數(shù)據(jù)流所占用的傳輸帶寬。Policing動(dòng)作檢查被歸類的數(shù)據(jù)流中的每一個(gè)報(bào)文,如果該報(bào)文超出了作用于該數(shù)據(jù)流的Policer 所允許的限制帶寬,那么該報(bào)文將會(huì)被做會(huì)被作特殊處理,它或者要被丟棄,或者要被賦予另外的DSCP 值。
在QoS 處理流程中,Policing 動(dòng)作是可選的。如果沒有Policing 動(dòng)作,那么被分類的數(shù)據(jù)流中的報(bào)文的DSCP 值將會(huì)不作任何修改,報(bào)文也不會(huì)在送往Marking 動(dòng)作之前被丟棄。
Marking
經(jīng)過Classifying 和Policing 動(dòng)作處理之后,為了確保被分類報(bào)文報(bào)文對(duì)應(yīng)DSCP 值的能夠傳遞給網(wǎng)絡(luò)上的下一跳設(shè)備,需要通過Marking 動(dòng)作將為報(bào)文寫入QoS 信息,可以使用Trust 方式直接保留報(bào)文中QoS 信息,例如,選擇Trust Cos 從而保留802.1Q 報(bào)文頭的Tag Control Information 中的CoS 信息;默認(rèn)情況下,Marking 總是用報(bào)文對(duì)應(yīng)的DSCP 值轉(zhuǎn)化成QoS 信息,然后寫入到報(bào)文CoS字段(對(duì)于非IP 報(bào)文)、DSCP字段或者IP-precedence 字段(對(duì)于IP 報(bào)文)中。
Queueing
Queueing 動(dòng)作負(fù)責(zé)將數(shù)據(jù)流中報(bào)文送往端口的哪個(gè)輸出隊(duì)列中,送往端口的不同輸出隊(duì)列的報(bào)文將獲得不同等級(jí)和性質(zhì)的傳輸服務(wù)策略。
每一個(gè)端口上都擁有8 個(gè)輸出隊(duì)列,通過交換機(jī)上配置的DSCP-to-CoS Map 和Cos-to-Queue Map 兩張映射表來將報(bào)文的DSCP 值轉(zhuǎn)化成輸出隊(duì)列號(hào),以便確定報(bào)文應(yīng)該被送往的輸出隊(duì)列。
Scheduling
Scheduling 動(dòng)作時(shí)QoS 流程的***一個(gè)環(huán)節(jié)。當(dāng)報(bào)文被送到端口的不同輸出隊(duì)列上之后,交換機(jī)將采用WRR 或者SP 輪轉(zhuǎn)算法發(fā)送8 個(gè)隊(duì)列中的報(bào)文。
可以通過設(shè)置輪轉(zhuǎn)算法的權(quán)重值來配置各個(gè)輸出隊(duì)列在輸出報(bào)文的時(shí)候所占用的傳輸帶寬。
原文博客:http://blog.163.com/hlz_2599/blog/static/142378474201151265035648/