qos的_QoS 概述
QoS 是一個很大的領(lǐng)域,涉及到網(wǎng)絡(luò)中的多個層次和環(huán)節(jié)。本文僅簡要的談?wù)?Endpoint 側(cè)的 QoS 概念,將這些紛繁的概念名詞串起來,便于理解。
QoS 技術(shù)背景
下圖說明了 QoS workflow 中,各項技術(shù)的位置和關(guān)系
摘自 < 端到端QoS網(wǎng)絡(luò)設(shè)計 >當(dāng)流量進(jìn)入設(shè)備后,它依次經(jīng)過 mark(標(biāo)記)→ meter(計量) → police(管制) → class/dscp(重分類) → queue(隊列) → sharper(整形) → queue priority (優(yōu)先級調(diào)度). meter + police 完成 rate-limit 功能。 而 queue + sharping + priority 完成 congestion manager 功能。sharping 功能屬于可選項。
細(xì)解釋其中的專業(yè)術(shù)語和實現(xiàn)特點
- Classification and marking
- Metering
- Policing
- Shaping
- Scheduling
- Congestion management
- 分類:將數(shù)據(jù)分為不同的類別,稱為分類(classification),分類并不修改原來的數(shù)據(jù)包。
- 標(biāo)記:將數(shù)據(jù)設(shè)置為不同的優(yōu)先級稱為標(biāo)記(marking),而標(biāo)記會修改原來的數(shù)據(jù)包。
- 流量計量:流量計量可以通過漏桶算法(常用于ATM網(wǎng)絡(luò))或令牌桶算法(常用于IP網(wǎng)絡(luò))實現(xiàn)。計量后的數(shù)據(jù)包會根據(jù)不同的整形類別分別保存在緩沖區(qū)中,待滿足對應(yīng)的流量資料后再進(jìn)行發(fā)送。
- 流量管制:丟棄超出帶寬,稱為管制(Policing)。
- 流量整形:將超出的帶寬緩存在內(nèi)存中,等到下一秒再傳遞,這種行為稱為Shaping。典型作用是限制流出某一網(wǎng)絡(luò)的某一連接的流量與突發(fā),使這類報文以比較均勻的速度向外發(fā)送,以符合種給定的“流量資料”(traffic profile)。
- 隊列調(diào)度機(jī)制:在QoS技術(shù)體系中屬于擁塞管理的范疇。
- 擁塞管理:當(dāng)網(wǎng)絡(luò)發(fā)生擁塞后,數(shù)據(jù)還是要被傳遞的,正因為接收到的數(shù)據(jù)遠(yuǎn)多于自身的傳輸能力,所以數(shù)據(jù)被傳輸時就出現(xiàn)了先后順序,而依照什么樣的方式來傳數(shù)據(jù),就需要隊列的指導(dǎo),QOS中的隊列定義了數(shù)據(jù)包被傳輸?shù)南群箜樞颉H绻幚矸绞綖楣苤?#xff0c;那么數(shù)據(jù)包就會被丟棄,通常情況下,網(wǎng)絡(luò)設(shè)備默認(rèn)丟棄后到的數(shù)據(jù)包而傳輸先到的數(shù)據(jù)包,這樣的丟棄方式稱為尾丟棄。
流量整形(traffic shaping)常與流量監(jiān)管(traffic policing)混淆。它們的主要區(qū)別在于,流量整形是一種主動調(diào)整流量輸出速率的措施。流量整形對流量監(jiān)管中需要丟棄的報文進(jìn)行緩存——通常是將它們放入緩沖區(qū)或隊列內(nèi),再根據(jù)特定算法均勻的向外發(fā)送這些被緩存的報文。但這不代表流量整形不會丟棄報文。shaping可能會增加延遲,而policing幾乎不引入額外的延遲。
通常的實現(xiàn)方式
- Marking: fwmark, ToS/IPP/DSCP
- Metering: token bucket, trTCM, mark ToS/IPP/DSCP
- Policing per interface (egress)
- Shaping per interface (egress)
- Scheduling: Priority Queuing
- Congestion management: Taildrop
標(biāo)記方式
實現(xiàn) QoS 的一個最基本的方法就是分類和標(biāo)記。
ToS/IPP/DSCP 是 IP頭部的一個名為 ToS 字段。用于標(biāo)記服務(wù)類型。這個字段隨著發(fā)展,被不斷的賦予了新的定義。見下表:
ToS/IPP:根據(jù)RFC791定義,IP報文頭ToS(Type of Service)域由8個比特組成,其中3個比特的 Precedence 字段標(biāo)識了 IP 報文的優(yōu)先級
DSCP:差分服務(wù)代碼點(Differentiated Services Code Point)RFC2474 重新定義了 IP 報文中的 ToS 域,增加了C比特,表示傳輸開銷(Monetary Cost)。
下圖是RFC1349 定義的每個位的意義:
上圖示例了一些協(xié)議應(yīng)該如何設(shè)置(4~1)位:
到了 RFC2474 , IPP的的意義就發(fā)生了變化。而 DTR位意義不變。IPP 與 DSCP 相應(yīng)存在一個轉(zhuǎn)換關(guān)系。DSCP 可以看成定義了一系列隊列類別,下表列出一部分:
在路由器中,一般都是把 CS6 和CS7 中的數(shù)據(jù)用 PQ 做絕對優(yōu)先處理,無論下面是否有數(shù)據(jù)也是要優(yōu)先來傳遞這兩個隊列中的數(shù)據(jù)。而其他EF到AF1的隊列中是用 WFQ 來做的,保證所有隊列都可以得到帶寬來傳輸。
PQ(Priority Queueing,優(yōu)先隊列):PQ會先服務(wù)高優(yōu)先級的子隊列,若高優(yōu)先級子隊列里沒有數(shù)據(jù)后,再服務(wù)中等優(yōu)先級子隊列,依次類推。如果PQ正在服務(wù)中等優(yōu)先級子隊列,但是高優(yōu)先級里又來了數(shù)據(jù)包,則PQ會中斷中等優(yōu)先級子隊列的服務(wù),轉(zhuǎn)而服務(wù)高優(yōu)先級子隊列。
WFQ(Weighted Fair Queueing,加權(quán)公平隊列):可以保證相同優(yōu)先級業(yè)務(wù)間公平,不同優(yōu)先級業(yè)務(wù)間加權(quán)。
計量算法
令牌桶算法(Token Bucket)
有時人們將漏桶算法與令牌桶算法錯誤地混淆在一起。而實際上,這兩種算法具有截然不同的特性并且為截然不同的目的而使用。它們之間最主要的差別在于:漏桶算法能夠強(qiáng)行限制數(shù)據(jù)的傳輸速率,而令牌桶算法能夠在限制數(shù)據(jù)的平均傳輸速率的同時還允許某種程度的突發(fā)傳輸。
雙速率三色標(biāo)記器(trTCM)
基于令牌桶算法做計量器
管制支持
Ingress policing per interface provided by the Fast Path QoS module. QoS basic 支持對 入口流量做管制。 QoS advance 僅支持對 出口流量做管制。管制也即丟棄。
隊列調(diào)度算法
Priority Queuing
在報文到達(dá)接口后,首先對報文進(jìn)行分類,然后按照報文所屬類別讓報文進(jìn)入所屬隊列尾部,在報文發(fā)送時,按照優(yōu)先級,總是在所有優(yōu)先級較高隊列中報文發(fā)送完畢后,再發(fā)送低優(yōu)先級隊列中報文,這樣,在每次發(fā)送報文時,總是將優(yōu)先級高的報文先發(fā)出去,保證了屬于較高優(yōu)先級隊列報文有較低時延,所以PQ的優(yōu)缺點是很明顯的:優(yōu)點是可以保證高優(yōu)先級隊列的報文可以得到較大帶寬、較低的時延、較小的抖動;缺點是低優(yōu)先級隊列的報文不能得到及時的調(diào)度,甚至得不到調(diào)度,即會出現(xiàn)“餓死”現(xiàn)象。
PQ具有如下特征:
(1) 報文丟棄策略采用 Tail Drop 機(jī)制;
(2) 每個隊列內(nèi)部使用FIFO邏輯;
(3) 當(dāng)從隊列調(diào)度報文時,先從高優(yōu)先級的隊列調(diào)度報文
從上面可以看出,PQ一般的應(yīng)用場合是保證某類流量盡可能得到最好的服務(wù),而不管其它流量的“死活”。
擁塞管理算法
與調(diào)度算法相匹配,使用簡單的尾部丟棄算法(tail drop)
上述的這些實現(xiàn)方式,按照文章中的第一個 workflow 圖,被串起來,對流量進(jìn)行控制。各種 Endpoint QoS 實現(xiàn),都無出本文之右。
總結(jié)
以上是生活随笔為你收集整理的qos的_QoS 概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sp_addlinkedserver o
- 下一篇: c# mvvm模式获取当前窗口_AWTK