QoS 工作原理與相關技術細節
摘 要
本文介紹了Qos 工作原理與相關技術細節。
縮略語
QoS:Quality of Service 服務質量
CoS:Class of Service 服務等級
ToS:Terms of Service 服務條款
VPN:Virtual Private Network 虛擬專用網絡
VOIP:Voice Over Internet Protocol 模擬聲音訊號數字化
CAR:Committed Access Rate 承諾訪問速率
FIFO:First In First Out 先進先出
FR:Frame Relay 幀中繼
RSVP:Resource Reservation Protocol 資源預留協議
WRED:Weighted Random Early Detection 加權隨機先期檢測
EF:Expedited Forwarding 無阻塞(快速)轉發服務
GTS:Generic Traffic Shaping 通用流量整形
DSCP:Differentiated Services Code Point 差分服務代碼點
ACL:Access Control List 訪問控制列表
關鍵詞
QoS,Cos,Tos,令牌桶,尾丟包,擁塞,吞吐量,延遲
1.概述
1.1 產生背景
QoS(Quality of Service),服務質量是指允許用戶在吞吐量、延遲抖動、延遲,丟包率等方面獲得可預期的服務水平的一系列技術的集合。
傳統 IP 網絡中,所有的報文都無區別的對待,報文的帶寬、延遲、延遲抖動、丟包率不能預期。人們希望報文的帶寬、延遲、延遲抖動、丟包率能得到一定的保證,既能滿足VoIP,VPN,電子商務等的要求,又能滿足像email 這樣對時間延遲不敏感的應用的需求。為此,QoS 功能應運而生。
1.2 技術優點
① 支持為用戶提供專用帶寬
② 減少報文的丟失率
③ 避免和管理網絡擁塞
④ 流量整形
⑤ 設置報文的優先級
2.QoS 介紹
2.1 QoS 關鍵指標
QoS 關鍵指標主要包括:可用性、吞吐量、時延、時延變化(包括抖動和漂移)和丟失
2.1.1可用性
當用戶需要時網絡即能工作的時間百分比。可用性主要是設備可靠性和網絡存活性相結合的結果。對它起作用的還有一些其他因素,包括軟件穩定性以及網絡演進或升級時不中斷服務的能力。
2.1.2吞吐量
在一定時間段內對網上流量(或帶寬)的度量。對IP 網而言可以從幀中繼網借用一些概念。根據應用和服務類型,服務水平協議(SLA)可以規定承諾信息速率(CIR)、突發信息速率(BIR)和最大突發信號長度。承諾信息速率是應該予以嚴格保證的,對突發信息速率可以有所限定,以在容納預定長度突發信號的同時容納從話音到視像以及一般數據的各種服務。一般講,吞吐量越大越好。
2.1.3時延
時延即一項服務從網絡入口到出口的平均經過時間。許多服務,特別是話音和視像等實時服務都是高度不能容忍時延的。當時延超過200-250 毫秒時,交互式會話是非常麻煩的。為了提供高質量話音和會議電視,網絡設備必須能保證低的時延。
產生時延的因素很多,包括分組時延、排隊時延、交換時延和傳播時延。傳播時延是信息通過銅線、光纖或無線鏈路所需的時間。
2.1.4時延變化
同一業務流中不同分組所呈現的時延不同。高頻率的時延變化稱作抖動,而低頻率的時延變化稱作漂移。抖動主要是由于業務流中相繼分組的排隊等候時間不同引起的,是對服務質量影響最大的一個問題。某些業務類型,特別是話音和視像等實時業務是極不容忍抖動的。分組到達時間的差異將在話音或視像中造成斷續。所有傳送系統都有抖動,只要抖動落在規定容差之內就不會影響服務質量。利用緩存可以克服過量的抖動,但這將增加時延,造成其他問題。漂移是任何同步傳輸系統都有的一個問題。在SDH 系統中是通過嚴格的全網分級定時來克服漂移的。在異步系統中,漂移一般不是問題。漂移會造成基群失幀,使服務質量的要求不能滿足。
2.1.5丟失
不管是比特丟失還是分組丟失,對分組數據業務的影響比對實時業務的影響都大。在通話期間,丟失一個比特或一個分組的信息往往用戶注意不到。在視像廣播期間,這在屏幕上可能造成瞬間的波形干擾,然后視像很快恢復如初。即便是用傳輸控制協議(TCP)傳送數據也能處理丟失,因為傳輸控制協議允許丟失的信息重發。事實上,一種叫做隨機早丟(RED)的擁塞控制機制在故意丟失分組,其目的是在流量達到設定門限時抑制TCP 傳輸速率,減少擁塞,同時還使TCP流失去同步,以防止因速率窗口的閉合引起吞吐量擺動。但分組丟失多了,會影響傳輸質量。所以,要保持統計數字,當超過預定門限時就向網絡管理人員告警。
2.2 QoS 服務模型
服務模型是指一組端到端的Qos 功能,QoS 服務模型包括:
① Best-Effort service,盡力而為服務模型;
② Integrated service(Intserv),綜合服務模型;
③ Differentiated service(Diffserv),區分服務模型
2.2.1 Best-Effort service
Best-Effort 是單一的服務模型,也是最簡單的服務模型。應用程序可任意發送任意報文,不需要事先得到批準或通知網絡,網絡盡最大可能發送這些報文,但對時延、可靠性等性能不提供任保障。
Best-Effort service 是目前 Internet 的缺省服務模型,主要實技術是先進先出隊列,業務量盡快傳送,沒有明確的時間和可靠性保障。
2.2.2 Integrated service
Integrated service 是一個綜合服務模型,它可以滿足多種 Qos 需求。這種服務模型在發送報文前,需要向網絡申請特定服務。請求是通過信令 (signal)來完成的。則只要報文控制在流量參數描述的范圍內,網絡將承諾滿足應用程序的 QoS 需求,并將為每個流維護一個狀態,并基于這個狀態執行報文的分類、流量監管(policing)、排隊及其調度,來滿足對應用程序的承諾,主要實現技術是RSVP(資源預留協議)。
2.2.3 Differentiated service
Diffserv 是一個多服務模型,可以滿足不同的 Qos 需求。應用程序在發出報文前,不需要通知路由器,而且網絡不需要為每個流維護狀態,它根據每個報文指定的QoS,來提供特定的服務,包括進行報文的分類、流量整形、流量監管和排隊。主要實現技術包括CAR、隊列技術。
2.3 相關術語
2.3.1 IP優先級
在IPv4 的報文頭中,TOS 字段是1 字節,如下圖所示。根據RFC1122 的定義,IP 優先級(IP Precedence)使用最高3 比特(第0~3 比特)。
+++++++++++++
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
+++++++++++++
IP 優先級3 比特可以定義8 個等級,8 個優先級的定義如下:
表1 ToS 字段與IP 優先級映射關系
優先級6 和7 一般保留給網絡控制數據使用,比如路由;優先級5 推薦給語音數據使用;優先級4 由視頻會議和視頻流使用;優先級3 給語音控制數據使用;優先級1 和2 給數據業務使用;優先級0 為缺省標記值。在標記數據時,既可以使用數值,也可以使用名稱(英文名稱)。
2.3.2擁塞與擁塞管理
擁塞現象是指到達通信子網中某一部分的分組數量過多,使得該部分網絡來不及處理,以致引起這部分乃到整個網絡性能下降的現象,嚴重時甚至會導致網絡通信業務陷入停頓即出現死鎖現象。
圖1 擁塞情況(1)
圖2 擁塞情況(2)
擁塞管理是指網絡發生擁塞時,如何進行管理和控制,處理的方法是使用隊列技術。擁塞管理的處理包括隊列的創建,報文的分類,將報文送入不同隊列,隊列調度等 。采用排隊技術,使得報文在路由器中按一定的策略暫時排隊,然后再按一定的調度策略把報文從隊列中取出,在接口上發送出去。根據排隊和出隊的策略的不同,擁塞管理技術分為以下幾種:
?FIFO(First In First Out):先進先出隊列
?PQ(Priority Queue):優先級隊列
?CQ(Custom Queue):定制隊列
?WFQ(Weighted Fair Queue):加權公平隊列
?CBWFQ(Class Based WFQ):基于類的加權公平隊列
A .FIFO 先進先出隊列
最簡單的排隊方式,不提供QoS 多級服務。FIFO 不對報文進行分類,當報文進入接口的速度大于接口能發送的速度時,FIFO 按報文到達接口的先后順序讓報文進入隊列,同時FIFO 在隊列的出口讓報文按進隊的順序出隊,先進的報文將先出隊,后進的報文將后出隊。
B .PQ 優先級隊列
PQ 共分成4 個隊列:High、Medium、Normal、Low,PQ 隊列的主要特點是能夠保證高優先級隊列的帶寬和時延且報文入隊列的規則可配置。
圖3 PQ 隊列
C .CQ 定制隊列
CQ 定制隊列,用戶可配置隊列間占用的帶寬比例關系,報文入隊列規則可配置。CQ 共分成17 個隊列:0 號隊列為系統隊列,優先調度;1-16 號隊列為用戶隊列,根據帶寬配額輪詢調度。CQ 隊列兩個重要參數是隊列長度和每次輪循發送的字節數。
圖4 CQ 隊列
CQ 隊列舉例如下:
隊列3 每次發送字節數為1000bytes,發送的報文大小為2000bytes;
第一次發送,發送報文2000bytes, 欠債1000bytes;
第二次發送,發送報文0bytes,還債1000bytes。
D.WFQ 加權公平隊列
WFQ 即加權公平隊列,它是一個復雜的排隊過程,只需要很少的配置,它可以動態檢測應用間的通信流并自動為這些流管理獨立包。WFQ 隊列數目范圍是16-4096,它采用HASH 算法,盡量將不同的流分入不同的隊列,用戶無法配置,分流標準是源地址、目的地址、端口號、協議號和Tos 值。
在保證公平(帶寬、延遲)的基礎上,體現權值依賴于IP 報文頭中攜帶的IP 優先級,例如某接口上每個優先級都有且只有一個流, 則設總帶寬為每個優先級+1 之和, 即1+2+3+4+5+6+7+8=36,那么每個流占有的帶寬為 (優先級+1)/總帶寬,例如優先級為7 的流占有帶寬為(7+1)/36。
圖5 WFQ 隊列
E.CBWFQ 基于類的加權公平隊列
CBWFQ,基于類的加權公平隊列,分類數目配置范圍是1-64,報文流根據用戶配置的規則進入相應的隊列,用戶可配置隊列占用的帶寬;不匹配任何規則的數據流進入缺省隊列,缺省隊列采用WFQ 調度機制或FIFO 調度算法保證隊列獲得預約的帶寬。
圖6 CBWFQ 隊列
表1 擁塞管理技術比較
隊列名稱 |
隊列數 |
優點 |
缺點 |
FIFO |
1 |
(1)不需要配置,易于使用 (2)處理簡單,處理延遲小 |
(1)所有報文同等對待,報文到來的次序決定了可占用的帶寬、報文延時、報文丟失 (2)對時間敏感的實時應用(如VOIP)的延遲得不到保證 |
PQ |
4 |
可對不同的業務數據提供絕對的優先,對時間敏感的實時應用(如VOIP)的延遲可以得到保證。對優先業務的報文的帶寬占用可以優先絕對優先 |
(1)需要配置、處理速度慢 (2)如果不對高優先級的報文帶寬加以限制,會造成低優先級的報文餓死。 |
CQ |
17 |
(1)可對不通業務報文按照比例分配帶寬 (2)當沒有某些類別的報文時,能自動增加現存類別的報文的可占用帶寬 |
需要配置,處理速度慢 |
WFQ |
用戶決定 |
(1)配置容易 (2)可以保護配合的數據源(如TCP報文發送)的帶寬 (3)可以使延遲的抖動減少 (4)可以減少數據量的交互式應用的延遲 (5)可以為不同優先級的流分配不同的帶寬 (6)當流的數目減少時,能自動增加現存流可占用的帶寬 |
處理速度比FIFO要慢,但比PQ、CQ要快。 |
CBWFQ |
用戶決定 |
(1)對報文進行分類,為每類報文提供 |
2.3.3擁塞避免
當緩沖區滿時的丟包策略,最常用的方法是采用尾丟包的方式,而尾丟包的方式和TCP/IP協議的慢啟動管理策略會導致全局同步化,給網絡帶來不良影響,線路利用率不高。擁塞避免的主要技術是WRED (Weighted Random Early Detection),即加權隨機先期檢測。WRED 隨機地丟棄數據包,將避免使多個TCP 連接同時降低發送速度,從而避免了TCP 的全局同步現象。當某個TCP 連接的數據包被丟棄,開始減速發送的時候,其他的TCP 連接仍然有較高的發送速度。這樣,無論什么時候,總有TCP 連接在進行較快的發送,提高了線路帶寬的利用率。
WRED 丟包機制如下:
WRED 基于在接口上排隊的包數目隨機地丟掉包,用戶可以設定隊列的低限和高限。①當隊列的長度小于低限時,不丟棄報文;②當隊列的長度在低限和高限之間時,WRED 開始隨機丟棄數據包。具體程度依賴于當時平均隊列深度和標記概率分母的值。并且,隊列的長度越長,丟棄的概率越高;③當隊列的長度大于高限時,丟棄所有的數據包。
2.3.4 DSCP
DSCP,差分服務代碼點(Differentiated Services Code Point),IETF 于1998 年12 月發布了Diff-Serv(Differentiated Service)的QoS 分類標準。它重新命名了IPv4 報頭中TOS 使用的那1 字節和IPv6 報頭中數據類(Traffic Class)那1 字節,新的名字稱為DS 字段(Differentiated Services Field)。該字段的作用沒有變,仍然被QoS 工具用來標記數據。不同的是IPv4 使用3 比特,而DSCP 使用6 比特,最低2 比特不用。RFC2474 定義最高3 比特為級別/類別選擇代碼(Class Selector Codepoints,CS),其意義和IPv4 報頭中IP 優先級的定義是相同的,CS0~CS7 的級別相等于IP 優先級0~7。但它并沒有定義第3 到第5 比特的具體含義以及使用規則。DSCP 使用6 比特,可以定義64 個優先級(0-63)。
DSCP 值舉例如下:
CS = 6 網間控制(Internetwork Control),DSCP = 48 (110000)
CS = 7 網內控制 (Intranetwork Control),DSCP = 56 (111000)
2.3.5流量整形和速率約定
A .令牌桶
令牌桶是一個控制數據流量的很好的工具,允許數據的突發性傳輸,Linerate,CAR,GTS均是基于令牌桶機制的。
令牌桶的三個參數如下:
①Meanrate(Meanrate=帶寬)單位時間內令牌的注入量②Burst Size令牌桶的大小(Burst Size = Normal burst size +Excess burst size)③Time interval令牌注滿令牌桶所需要的時間
令牌桶工作方式:
①放置令牌:令牌桶按用戶設定的速度恒定的向桶中放置令牌,并且令牌桶有用戶設定的容量。當桶中令牌的量超出桶的容量的時候,令牌的量不再增加。
②發送報文:當令牌桶中充滿令牌的時候,桶中所有的令牌代表的報文都可以被發送;當令牌桶中沒有令牌的時候,報文將不能被發送,只有等到桶中生成了新的令牌,報文才可以發送。
B .物理限速
物理限速的功能是限制物理接口的速率 (帶寬 ),它的三個數值如下:
①平均速率 (Average rate):長期的平均傳送速率,流量低于該數值均可以得到滿足;②正常突發緩沖區的大小 (Normal burst size):在一些通信量受制與"超出活動"(exceed action)之前所允許突發數據緩沖區字節數;③超額突發緩沖區的大小 (Excess burst size):在所有通信遭受超出活動之前,所允許的突發緩沖字節數。
C .速率約定
CAR ,Committed Access Rate 承諾訪問速率。對于ISP(互聯網服務提供商)來說,對用戶送入網絡中的流量進行控制是十分必要的。對于企業網,對某些應用的流量進行控制也是一個有力的控制網絡狀況的工具。網絡管理者可以使用約定訪問速度(以后簡稱CAR)來對流量進行控制。
CAR 的功能:
①控制網絡的負載;
②對報文進行分類,mark 和remark
實現方式:令牌桶
D.流量整形
GTS(Generic Traffic Shaping),流量整形,對報文的流量進行限制,并對超出流量約定的報文進行緩沖,并在合適的時候將緩沖的報文發送出去,從而起到流量整形的目的。
實現方式:令牌桶、隊列緩存
CAR GTS
可應用在入接口和出接口上 只能應用在出接口上沒有緩存有緩存,從而起到流量整形作用可標記報文 不能標記報文,可應用多重策略 不支持多重策略
在normal burst 和extended burst 參數之間提供可控的丟棄策略 不提供可控的丟棄策略支持基于ToS/Mac 的ACL 以及擴展ACL 只支持擴展ACL
3.參考文獻
RFC1884
RFC791
RFC 2460
RFC 2205
RFC 2373
RFC 2374
RFC1122
RFC2474
RFC2597
RFC2598
IEEE802.1p
IEEE802.3x