通信知識第20篇;看本篇請先看上一篇QOS基礎:如何解決網絡帶寬不寬裕問題,通信QOS服務模型原理,通信19篇
本節內容主要對QOS原理認識,接下來的章節會對二層通信知識點進行系統講解。
QOS概念:
應用於在帶寬還不充裕的情況下可以平衡一下各種服務流量佔用的矛盾,如果帶寬足夠的話,QOS是沒有任何使用價值的應用於在帶寬還不充裕的情況下可以平衡一下各種服務流量佔用的矛盾,如果帶寬足夠的話,QOS是沒有任何使用價值的。
DSCP:
這種標記在frame中和packet中本身就存在,frame中存在cos欄位,packet中有tos欄位,只不過在正常的傳輸模型中(例如best-effort)並不使用,而在Diffserv中,數據包的標記作用就體現出來了,並且在packet中,Diffserv提出了一個新的標記,就DSCP(Diffesentiated Services Code Point )區分服務代碼點;
QoS的實現以IETF 的DiffServ 體系為基礎。
DiffServ體系規定每一個傳輸報文將在網絡中被分類到不同的類別,分類信息被包含在了IP 報文頭中,DiffServ 體系使用了IP 報文頭中的TOS(Type Of Service)中的前6個比特來攜帶報文的分類信息。當然分類信息也可以被攜帶在鏈路層報文頭上。
一般地,附帶在報文中的分類信息有:
幀頭的Tag Control Information 中的前3 個比特,它包含了8 個類別的優先級信息,通常稱這三個比特為為User Priority bits。報文頭中的TOS 欄位前3 個比特,稱作IP precedence value;或者攜帶在IP 報文頭中的TOS 欄位前6 個比特,稱作Differentiated Services Code Point (DSCP) value。在遵循DiffServ 體系的網絡中,各交換機和路由器對包含同樣分類信息的報文採取同樣的傳輸服務策略,對包含不同分類信息的報文採取不同的傳輸服務策略。報文的分類信息可以被網絡上的主機、交換機、路由器或者其它網絡設備賦予。可以基於不同的應用策略或者基於報文內容的不同為報文賦予類別信息。識別報文的內容以便為報文賦予類別信息的做法往往需要消耗網絡設備的大量處理資源,為了減少骨幹網絡的處理開銷,一般這種賦予類別信息的方式都使用在網絡邊界。
交換機或路由器根據報文所攜帶的類別信息,可以為各種交通流提供不同的傳輸優先級,或者為某種交通流預留帶寬,或者適當的丟棄一些重要性較低的報文、或者採取其他一些操作等等。這些獨立設備的這種行為在DiffServ 體系中被稱作每跳行為(per-hop behavior)。
如果網絡上的所有設備提供了一致的每跳行為,那麼對於DiffServ體系來說,這個網絡就可以構成end-to-end QoS solution。
下面幾個段落將詳細介紹本交換機所提供的以DiffServ 體系為基礎的QoS模型。
QoS入口端動作包括Classifying、Policing 和Marking。
Classifying:確保將網絡交通流劃分成以DSCP值來標識的各個數據流。隨後交換機將根據DSCP值來對各個數據流實施不同的QoS策略。
Policing:用於約束某個流的所佔用的傳輸帶寬,根據配置的Policer來決定流中的哪些部分超出了所限制的傳輸帶寬,並將結果傳遞給下一階段的Marking動作。
Marking:決定怎樣處理數據流中在Policing動作中超限的部分。可能的處理動作有丟棄超限部分和用另外的DSCP值標記超限部分。
QoS出口端動作包括Queueing和Scheduling:
Queueing:根據數據流的每一個報文所附帶的DSCP值來確定將報文送往埠的哪個輸出隊列,有關Queueing的更詳細介紹,請參閱Queueing章節。 Scheduling:確定以什麼樣的方式處理被送到埠各個輸出隊列中的報文有關Scheduling的更詳細介紹,請參閱Scheduling 章節。下面的段落將詳細介紹QoS模型的各個階段的動作。
Classifying
Classifying 即為分類,其過程是根據信任策略或者根據分析每個報文的內容來確定將這些報文歸類到以DSCP 值來表示的各個數據流中,因此分類動作的核心任務是確定輸入報文的DSCP 值。分類發生在埠接收輸入報文階段,當某個埠關聯了一個表示QoS 策略的policy-map 後,分類就在該埠上生效,它起作用於所有從該埠輸入的報文。
對於一般非IP 報文,交換機將根據以下準則來歸類報文:
如果報文本身不包含QoS 信息,即報文的第二層報文頭中不包含User Priority bits,那麼可以根據報文輸入埠的預設CoS值來獲得報文的QoS信息。埠的預設CoS值和報文的UserPriority bits 一樣,取值範圍為0~7。取得報文的CoS 值之後,再根據交換機上配置的CoS-to-DSCP map 來將CoS 轉化為DSCP 值。如果報文本身包含QoS 信息,報文的第二層報文頭中包含User Priority bits,那麼可以直接從報文中獲得CoS 值,然後再根據交換機上配置的CoS-to-DSCP map 來將CoS 轉化為DSCP值。注意以上兩種歸類準則只有當埠的QoS 信任模式打開的時候才起作用。打開埠的QoS 的信任模式意味著不通過分析報文的內容,而直接從報文中或報文的輸入埠上獲得報文QoS信息,從而得到DSCP 值。如果埠關聯的policy-map 中使用了基於mac access-list extended 的ACLs 歸類,那麼在該埠上,將通過提取報文的源MAC 地址、目的MAC 地址以及Ethertype 域來匹配關聯的ACLs,以確定報文的DSCP 值。要注意的是,如果埠關聯了某個policy-map,但又沒有為其設置相應的DSCP 值,則交換機將按照預設行為為符合這種歸類的報文分配優先級:即根據報文第二層報文頭中包含的優先級信息或埠的預設優先級。
注意上面三種歸類準則可能會同時作用於一個埠上。
在這種情況下,上面三種歸類準則按3、2、1 的優先級起作用。
即,先根據ACLs 歸類,在歸類失敗的情況下,才有可能選擇歸類準則2、1,在這個時候,如果埠的QoS 信任模式打開,則根據準則2 和1 直接從報文中或者從埠上獲得QoS 信息;如果埠的QoS 信任模式關閉,那麼那些歸類失敗的報文將被賦予DSCP 的預設值0。
對於IP 報文,可以將根據以下準則來歸類報文:
直接從IP 報文的TOS 欄位中提取出DSCP 值。IETF規定IP 報文的TOS 欄位的前6 個比特作為DSCP 值,它的取值範圍為0~63,和交換機內部使用的DSCP 值一一對應。按照非IP 報文處理,按照上面介紹的非IP 報文歸類準則1、2來確定報文的DSCP 值。注意以上幾種歸類準則只有當埠的QoS 信任模式打開的時候才起作用。打開埠的QoS 的信任模式意味著不通過分析IP 報文的內容,而直接從IP 報文的TOS 欄位中或報文的輸入埠上獲得QoS 信息,從而得到DSCP 值。如果埠關聯的policy-map 中使用了基於ip access-list (extended)的ACLs 歸類,那麼該在該埠上,將通過提取報文的源IP 地址、目的IP 地址、Protocol欄位、以及第四層TCP/UDP 埠欄位來匹配相關聯的ACLs,以確定報文的DSCP 值。要注意的是,如果埠關聯了某個policy-map,但又沒有為其設置相應的DSCP 值,則交換機將按照預設行為為符合這種歸類的報文分配優先級:即根據報文第二層報文頭中包含的優先級信息或埠的預設優先級。和非IP 報文歸類準則一樣,以上幾種歸類準則可以同時作用於一個埠上。在這種情況下,上面的歸類準則按照3、2、1的優先級起作用。即先根據ACLs 歸類,在歸類失敗的情況下,才有可能選擇歸類準則2、1;在這個時候,如果埠選擇QoS 信任模式Trust IP-precedence,那麼準則1 起作用;如果埠選擇QoS 信任模式Trust CoS,那麼準則2 起作用。
Policing :
Policing動作發生在數據流分類完成後,它用於約束被分類的數據流所佔用的傳輸帶寬。Policing動作檢查被歸類的數據流中的每一個報文,如果該報文超出了作用於該數據流的Policer 所允許的限制帶寬,那麼該報文將會被做會被作特殊處理,它或者要被丟棄,或者要被賦予另外的DSCP 值。在QoS 處理流程中,Policing 動作是可選的。如果沒有Policing 動作,那麼被分類的數據流中的報文的DSCP 值將會不作任何修改,報文也不會在送往Marking 動作之前被丟棄。
Marking:
經過Classifying 和Policing 動作處理之後,為了確保被分類報文報文對應DSCP 值的能夠傳遞給網絡上的下一跳設備,需要通過Marking 動作將為報文寫入QoS 信息,可以使用Trust 方式直接保留報文中QoS 信息,例如,選擇Trust Cos 從而保留802.1Q 報文頭的Tag Control Information 中的CoS 信息;默認情況下,Marking 總是用報文對應的DSCP 值轉化成QoS 信息,然後寫入到報文CoS欄位(對於非IP 報文)、DSCP欄位或者IP-precedence 欄位(對於IP 報文)中。
Queueing :
Queueing 動作負責將數據流中報文送往埠的哪個輸出隊列中,送往埠的不同輸出隊列的報文將獲得不同等級和性質的傳輸服務策略。每一個埠上都擁有8 個輸出隊列,通過交換機上配置的DSCP-to-CoS Map 和Cos-to-Queue Map 兩張映射表來將報文的DSCP 值轉化成輸出隊列號,以便確定報文應該被送往的輸出隊列。
Scheduling :
Scheduling 動作時QoS 流程的最後一個環節。當報文被送到埠的不同輸出隊列上之後,交換機將採用WRR 或者SP 輪轉算法發送8 個隊列中的報文。可以通過設置輪轉算法的權重值來配置各個輸出隊列在輸出報文的時候所佔用的傳輸帶寬。
#程式設計師#,#軟體#,#協議#,#網際網路#,#通信#
上一章:如何解決網絡帶寬不寬裕問題,通信QOS服務模型原理,通信19篇
下一章: QOS介紹3(通信知識21)
感謝其他人一路給我帶來的知識,很慚愧自己一直潛水,於是下定決心,分享自己總結的知識,雖然寫得不好,萬一有人會用到,有錯誤的和需要改進的地方歡迎指正,怕誤導他人。總結一篇看似簡短的文章也非常不容易,隨手點個關注支持一下吧,你的點讚是我持續創作的動力!謝謝啦!(創作不易,搬運請註明出處,「野人谷」)