QoS 服務質量


一、QoS
QoS: Quality of Service(服務質量)
是指網絡通信過程中,允許用戶業務在丟包率、延遲、抖動和帶寬等方面獲得可預期的服務水平。更簡單地說:QoS就是針對各種不同需求,提供不同服務質量的網絡服務。
IP QoS目標:
避免並管理IP網絡擁塞
減少IP報文的丟失率
調控IP網絡的流量
為特定用戶或特定業務提供專用帶寬
支撐IP網絡上的實時業務

在傳統IP網絡中,對所有報文都無區別地等同對待,每個路由器對所有報文都采用先入先出的策略(FIFO)處理,也就是說:它盡力而為(Best-effort)地將報文送到目的地,但是對報文的吞吐量、延遲、延遲抖動、丟包率等都不能預期,可能很好,也可能極差,一切都要視網絡狀況而定。隨着計算機網絡的高速發展,對帶寬、延遲、抖動敏感的且實時性強的語音、圖像、重要數據同時在網上傳輸,使得網絡資源極大地豐富。但是同時人們對於網絡傳輸數據質量的要求也越來越高,人們期望報文在吞吐量、延遲、延遲抖動、丟包率等方面獲得一定程度上的服務保證,期望可以根據客戶類型提供有差別的服務。解決這些問題的一個途徑是增加網絡的帶寬,但帶寬的增加畢竟是有限的,且代價昂貴,它也只能在一定程度上緩解這個問題。提供QoS將是人們對未來IP網絡的基本要求。

二、IP QoS 三種模型
服務模型,是指一組端到端的QoS功能,通常QoS提供以下三種服務模型:
+Best-Effort service (盡力而為服務模型)
是目前Internet的缺省服務模型,主要實現技術是先進先出隊列(FIFO)
+Intergrated service(綜合服務模型,簡稱Intserv)
業務通過信令向網絡申請特定的QoS服務,網絡在流量參數描述的范圍內,預留資源以承諾滿足該請求
+Differentiated service(區分服務模型,簡稱Diffserv)
當網絡出現擁塞時,根據業務的不同服務等級約定,有差別地進行流量控制和轉發來解決擁塞問題

1.Best-Effort模型
+Best-Effort是單一的服務模型,也是最簡單的服務模型
+應用程序可任意發送任意報文,不需要事先得到批准或通知網絡
+網絡盡最大可能發送這些報文,但對時延,可靠性等新能不提供任何保障
+Best-Effort service是目前Internet的缺省服務模型,主要實現技術是先進先出隊列(FIFO)
適用於絕大多數網絡應用,如FTP、E-Mail等

2.IntServ模型
+為應用提供可控制的、端到端的服務
+網絡單元支持QoS的控制機制
+應用程序向網絡申請特定的QoS服務
+信令協議在網絡中部署QoS請求
+RSVP是主要使用的信令協議

Integrated service是一個綜合服務模型,可滿足多用戶的QoS需求,這種服務模型在發送報文前,需要向網絡申請特定的服務。這個請求是通過信令(signal)來完成的,應用程序先通知網絡發送報文的流量參數和所需的服務質量請求(如帶寬、時延等)。應用程序在收到網絡預留資源的確認信息后,才開始發送報文,發送報文被控制在流量參數規定的范圍內。集成服務模型常常被用在網絡邊緣路由器上,傳送QoS請求信令采用的是資源預留協議RSVP。
網絡在收到應用程序的資源請求后,執行資源分配檢查(Admission control),即基於應用程序的資源申請和網絡現有的資源情況,判斷是否為應用程序分配資源。一旦網絡確認為應用程序的報文分配了資源,則只要應用程序的報文控制在流量參數描述的范圍內,網絡將承諾滿足應用程序的QoS需求。而網絡將為每個流(flow,由兩端的IP地址、端口號、協議號確定)維護一個狀態,並基於這個狀態執行報文的分類、流量監管(policing)、排隊及其調度,來實現對應用程序的承諾。
在Integrated service服務模型中,負責傳送QoS請求的信令是RSVP(Resource Reservation Protocol,資源預留協議),它通知路由器應用程序的QoS需求。
Integrated service可以提供以下兩種服務:
保證服務(Guaranteed service):它提供保證的帶寬和時延限制來滿足應用程序的要求。如VoIP應用可以預留10M帶寬和要求不超過1秒的時延。
負載控制服務(Controlled-Load service):它保證即使在網絡過載(overload)的情況下,能對報文提供近似於網絡未過載類似的服務,即在網絡擁塞的情況下,保證某些應用程序的報文低時延和高通過。

三、RSVP原理

RSVP是第一個標准QoS信令協議,它用來動態地建立端到端的QoS,它允許應用程序動態地申請網絡帶寬等。RSVP協議不是一個路由協議,相反,它按照路由協議規定的報文流的路徑為報文申請預留資源,在路由發生變化后,它會按照新路由進行調整,並在新的路徑上申請預留資源。RSVP只是在網絡節點之間傳遞QoS請求,它本身不完成這些QoS的要求實現,而是通過其他技術如WFQ等來完成這些要求的實現。
RSVP信令在網絡節點之間傳送資源請求,而網絡節點在收到這些請求后,需要為這些請求分配資源,這就是資源預留。網絡節點比較資源請求和網絡現有的資源,確定是否接受請求,在資源不夠的情況下,這個請求可以被拒絕。
可以對每個資源請求設置不同的優先級,這樣,優先級較高的資源請求可以在網絡資源不夠的情況下,搶占較低優先級的預留資源,來優先滿足高優先級的資源請求。
資源預留判斷是否接受資源請求,並承諾對接受了的資源請求提供請求的服務。但資源預留本身不實現承諾的服務,需要通過隊列等其他技術來實現。

四、RSVP的問題
+要求端到端所有設備支持這一協議
+網絡單元為每個應用保存狀態信息,可拓展性差
+周期性同相鄰單元交換狀態信息,協議報文開銷大
+不適合在大型網絡中使用

基於信令實現的RSVP協議,目前在實施過程中遇到了很多問題,主要是RSVP要求端到端所有設備支持這一協議,對於一個從源地址到目的地址要經過很多設備的IP包來講,做到這點是相當困難的,因為IP網本質是一個沒有信令無連接網絡,所以RSVP經過了幾年的實踐並不能在網絡上真正實現。采用RSVP協議的另外一個困難是很難對各種應用預留帶寬。隨着網絡帶寬快速增加和各種新應用的不斷出現,DiffServ逐漸成為QoS關鍵所在。

五、DiIFServ模型體系結構

Differentiated -Service即*差分服務模型_,它可以滿足用戶不同的QoS需求。與Integrated Service不同,它不需要信令,即在一個業務發出報文前,不需要通知路由器。對Differentiated Service,網絡不需要為每個流維護軟狀態,它根據每個報文指定的QoS標記(着色結果),來提供特定的服務。當網絡出現擁塞時,根據不同的服務等級要求,有差別地進行流量控制和轉發來解決擁塞。采用相對優先權機制,有區別地控制不同信息流的分組聚類和轉發行為,從而在保證服務質量和解決擁塞之間取得一個良好的折衷。業務在進入DS(DiffServ)網絡時, 基於優先級(DSCP(DiffServ CodePoint)或IP優先級)進行業務流聚合,會聚成一個行為集合(BA,Behavior Aggregate)。
PHB(per-hop behavior):DS節點對特定的行為集合(BA)使用的轉發行為,DS節點通過判別分組頭中的DSCP來執行PHB。
具體的過程是:
首先,在網絡的邊緣進行不同業務的分類,打上不同的QoS標記(着色)。分類的依據可以是報文攜帶的四層、三層或二層的信息。如報文的源IP地址、目的IP地址、源MAC地址、目的MAC地址,TCP或UDP端口號等。
然后,在網絡的內部,根據着色的結果在每一跳上進行相應的轉發處理。比如通過擁塞管理機制,對實時業務提供快速轉發處理,對普通業務提供盡力而為轉發處理。流量整形,流量監管,擁塞避免等處理也類似,根據着色的結果,再逐跳的作相應的區別處理,從而獲得網絡兩端業務不同業務類別的QoS保障。
Differentiated Service的端到端QoS保障通過以下一些技術來實現:
CAR:它根據報文所攜帶的信息進行分類,並利用Precedence或DSCP(DiffServ Coding Point)進行着色。CAR同時也完成流量的度量和監管。
GTS:對通過網絡節點,指定的業務或所有業務進行流量整形,使其符合期望的流量指標。
隊列機制:通過FIFO、PQ、CQ、WFQ等隊列技術,在網絡擁塞時進行擁塞管理,對不同業務的報文按用戶指定的策略進行調度。
擁塞避免:主要使用WRED,對網絡的擁塞情況進行預測,並在此基礎上采取隨機丟棄部分TCP報文的方式,達到擁塞避免,並避免全球TCP同步現象的發生。

報文的分類及標記

+報文分類及白偶記是QoS執行服務的基礎
+報文分類使用技術: ACL和IP優先級
+根據分類結果交給其他模塊處理或打標記(着色)供核心網絡分類使用

報文分類可以把有相似QoS要求的業務的報文聚合成相應的類。分類的結果就是給報文打上某種標記,即着色。如果使用IP報文頭的Precedence字段(TOS的高3個bit)進行着色,用戶可以將報文最多分成8類。當然也可以按照RFC2474的定義,用DSCP(TOS的高6個bit)進行着色。報文着色以后,就可以方便下游節點進行相應的QoS處理,如擁塞管理、流量整形等。
網絡管理者可以設置報文分類的策略,這個策略可以包括物理接口、源地址、目的地址、MAC地址、IP協議或應用程序的端口號等。一般的分類算法都局限在IP報文的頭部所攜帶的信息,使用如鏈路層(Layer 2)、網絡層(layer 3)、甚至傳輸層(layer 4)的信息。所以,它可以是一個由五元組(源地址、源端口號、協議號、目的地址、目的端口號)確定的流這樣狹小的范圍,也可以是到某某網段的所有報文。通常我們可以使用ACL來實現。
一般在網絡邊界,對報文進行着色,在網絡的內部則簡單的使用着色的結果作為隊列調度、流量整形等處理的依據。QoS中用CAR來實現報文的分類及着色功能。下游(Downstream)網絡可以選擇接受上游(Upstream)網絡的着色結果,也可以按照自己的分類標准重新進行着色。CAR是支持報文分類的主要技術,它同時承擔流量監管的功能。用戶可以通過不同的配置,讓CAR只進行着色功能,讓CAR只進行流量監管功能,或讓CAR在進行流量監管的同時進行着色。CAR可以使用Precedence或DSCP進行着色。

流量監管與整形

一、流量監管-CAR

+CAR(Committed Access Rate):約定訪問速率
+令牌桶算法
+對流量進行控制
整形(shaping)做業務流輸出的速率符合業務模型的規定
丟棄(droping)根據特定規則丟棄分組
打標記(marking)設置報文的DS域(或IP優先級)

流量監管(traffic policing)的典型作用是限制進入某一網絡的某一連接的流量與突發。在報文滿足一定的條件時,如某個連接的報文流量過大,流量監管就可以對該報文采取不同的處理動作,例如丟棄報文,或重新設置報文的優先級等。通常的用法是使用CAR來限制某類報文的流量。 CAR使用IP頭部的ToS字段來對報文進行分類,對於不同分類的流量,采取不同的動作。
CAR利用令牌桶(Token Bucket, TB)進行流量控制。
令牌桶按用戶設定的速度向桶中放置令牌,並且,令牌桶有用戶設定的容量,當桶中令牌的量超出桶的容量的時候,令牌的量不再增加。當令牌桶中充滿令牌的時候,桶中所有的令牌代表的報文都可以瞬間被發送,這樣可以允許數據的突發性傳輸。當令牌桶中沒有令牌的時候,報文將不能被發送(丟棄),只有等到桶中生成了新的令牌,報文才可以發送,這就可以限制報文的流量只能是小於等於令牌生成的速度,達到限制流量的目的。
首先報文被分類,如果通過分類器識別出報文是某類要處理的報文,則進入令牌桶中進行處理。如果令牌桶中有足夠的令牌可以用來發送報文,則認為是Conform,如果令牌不夠,則認為是Exceed。然后在后面的動作機制中,可以分別對Conform的報文進行發送、丟棄、着色等處理。對Exceed的報文也可以進行發送、丟棄、着色等處理。當報文被令牌桶處理的時候,如果有一個報文被按Conform處理了,令牌桶中的令牌量按報文的長度做相應的減少。當報文被按Exceed處理了,令牌桶中的令牌不減少。
當CAR用作流量監管時,一般配置為: Conform的報文進行發送,對Exceed的報文進行丟棄。也就是令牌桶中的令牌足夠時報文被發送,不夠時報文被丟棄。這樣,就可以對某類報文的流量進行控制。
CAR還可以進行報文的標記(Mark)或重新標記(Re-Mark)或者說着色與重着色。CAR可以通過Precedence或者DSCP來標記報文。

二、流量整形-GTS

通用流量整形(Generic Traffic Shaping,GTS)
利用CAR可以控制報文的流量特性,對流量加以限制,對不符合流量特性的報文進行丟棄。如果對需要丟棄的報文進行緩沖,將可以減少報文的丟棄,同時滿足報文的流量特性,這就是通用流量整形(以后簡稱GTS)。
當報文到來的時候,首先對報文進行分類,如果分類器識別出報文需要進行GTS處理,則將報文送入GTS隊列。如果GTS隊令牌桶中令牌足夠,則直接發送報文。如果令牌桶中的令牌不夠,則進入隊列中緩存。當隊列中有報文的時候,GTS按一定的周期從隊列中取出報文進行發送。每次發送報文時,將把GTS令牌桶中的令牌代表的數據量都發送出去。
GTS可以對不規則或不符合預定流量特性的流量進行整形,以利於網絡上下游之間的帶寬匹配。
每個接口,GTS選擇下列兩種方式之一來處理報文:
對接口所有流進行處理:此時若接口發送隊列為空,且報文在單位時間內的流量未超過限制,報文被立即發送,否則報文進入接口發送緩存隊列中。
對接口不同的流進行處理:將不同的流分別與流進行匹配,當規則匹配並且接口發送隊列為空,且報文在單位時間內的流量未超過限制,報文被立即發送,否則報文進入接口發送緩存隊列中。
為減少報文的無謂丟失,應在上游路由器出口對報文進行GTS處理,對於超出GTS流量特性的報文,緩存在上游路由器的接口緩沖區中。當網絡擁塞消除時,GTS再從緩沖隊列中取出報文繼續發送。這樣,發向下游路由器的報文將都符合路由器的流量規定,從而減少報文在下游路由器被丟棄的情況。若不在上游路由器出口做GTS處理,則所有超出下游路由器的CAR規定流量的報文將被下游路由器丟棄。
由於對GTS可能對報文進行緩存,那么使用GTS有可能增加報文的延遲。

三、物理接口總速率限制-LR

+LP(Line Rate):在一個物理接口上,限制接口發送報文(包括緊急報文)的總速率
+LR采用了令牌桶進行流量控制,所有經由接口發送的報文首先要經過LR的令牌桶進行處理
+利用QoS豐富的隊列來緩存報文

物理接口限速(Line rate, LR)
LR的處理過程仍然采用令牌桶進行流量控制。如果用戶在路由器的某個接口上配置了LR ,規定了流量特性,則所有經由該接口發送的報文首先要經過LR的令牌桶進行處理。如果令牌桶中有足夠的令牌可以用來發送報文,則報文可以發送。如果令牌桶中的令牌不滿足報文的發送條件,則報文入QOS隊列進行擁塞管理。這樣,就可以對通過該物理接口的報文流量進行控制。
LR的處理過程采用了令牌桶控制流量,當令牌桶中積存有令牌時,可以允許報文的突發性傳輸。當令牌桶中沒有令牌的時候,報文將不能被發送,只有等到桶中生成了新的令牌,報文才可以發送,這就可以限制報文的流量只能是小於等於令牌生成的速度,具有限制流量,同時允許突發流量通過的目的。
LR相比較於CAR,能夠限制在物理接口上通過的所有報文。CAR由於在IP層實現,對於不經過IP層處理的報文不起作用。較之於GTS,LR 不但能夠對超過流量限制的報文進行緩存,並且利用QoS豐富的隊列來緩存報文,而GTS則是將報文緩存在GTS隊列中。由於CAR和GTS是在IP層實現的,所以對於不經過IP層處理的報文不起作用。

四、擁塞管理

+網絡擁塞時,保證不同優先級的報文得到不同的QoS待遇,包括時延、帶寬等
+將不同優先級的報文入不同的隊列,不同隊列將得到不同的調度優先級、概率或帶寬保證
+算法:

對於網絡單元,當分組到達的速度大於該接口傳送分組的速度時,在該接口處就會產生擁塞。如果沒有足夠的存儲空間來保存這些分組,它們其中的一部分就會丟失。分組的丟失又可能會導致發送該分組的主機或路由器因超時而重傳此分組,這將導致惡性循環。
造成擁塞的因素有很多。比如,當分組流從高速鏈路進入路由器,由低速鏈路傳送出去時,就可能產生擁塞;分組流同時從多個接口進入路由器、由一個接口轉發出去或處理器速度慢也可能會產生擁塞。
擁塞管理是指網絡在發生擁塞時,如何進行管理和控制。處理的方法是使用隊列技術。將所有要從一個接口發出的報文 進入多個隊列,按照各個隊列的優先級進行處理。不同的隊列算法用來解決不同的問題,並產生不同的效果。常用的隊列有FIFO、PQ,CQ,WFQ等。
擁塞管理的處理包括隊列的創建、報文的分類、將報文送入不同的隊列、隊列調度等。在一個接口沒有發生擁塞的時候,報文在到達接口后立即就被發送出去,在報文到達的速度超過接口發送報文的速度時,接口就發生了擁塞。擁塞管理就會將這些報文進行分類,送入不同的隊列;而隊列調度對不同優先級的報文進行分別處理,優先級高的報文會得到優先處理。

五、擁塞避免

+傳統的尾丟包在網絡發生擁塞時對報文全部丟棄,並不加以區分
+TCP慢起動導致全局同步化
+進行擁塞避免,在網絡沒有發生擁塞以前根據隊列狀態進行有選擇的丟包
+算法: RED、WRED

擁塞避免技術通過監控網絡流量負載情況,盡力在網絡擁塞發生之前預計並且避免在普通的網路上擁塞的發生。這些技術用來為不同優先級別的流量種類提供處理,在發生擁塞的情況下使得網絡的吞吐量和利用效率最大化,並且使報文丟棄和延遲最小化。WRED就是一種避免擁塞的方法。
路由器允許在擁塞發生時期將輸出流量存放在緩沖區中,在沒有配置WRED的情況下使用尾部丟棄的方式來解決擁塞問題。由於內存資源的有限,傳統的處理方法是,當隊列的長度達到規定的最大長度時,所有到來的報文都被丟棄。尾部丟棄同等地對待所有的通信,不對服務等級進行區分。在擁塞發生期間,隊列尾部的數據包將被丟棄,直到擁塞解決。對於TCP報文,由於大量的報文被丟棄,將造成TCP超時,從而引發TCP的慢啟動和擁塞避免機制,使TCP減少報文的發送。當隊列同時丟棄多個TCP連接的報文時,將造成多個TCP連接同時進入慢啟動和擁塞避免,稱之為:TCP全局同步。這樣多個TCP連接發向隊列的報文將同時減少,使得發向隊列的報文的量不及線路發送的速度,減少了線路帶寬的利用。並且,發向隊列的報文的流量總是忽大忽小,使線路上的流量總在極少和飽滿之間波動。
為了避免擁塞,在網絡沒有發生擁塞以前根據隊列狀態進行有選擇的丟包,當某個TCP連接的報文被丟棄,開始減速發送的時候,其他的TCP連接仍然有較高的發送速度。這樣,無論什么時候,總有TCP連接在進行較快的發送,提高了線路帶寬的利用率。RED(Random Early Detection )隨機早期檢測和WRED(Weighted Random Early Detection)加權隨機早期檢測就是用於的避免擁塞的方法。WRED與RED的區別在於前者引入IP優先權來區別丟棄策略,WRED在實際的應用中更為廣泛。

加權早期隨機檢測—WRED

+WRED(weighted Random Early Detection): 加權隨機早期檢測
采用隨機丟棄的策略,避免了尾部丟棄的方式二引起TCP全局同步
根據當前隊列的深度來預測擁塞的情況
根據優先級定義不同的丟棄策略,定義上限閥值和下限閥值
相同的優先級不同的隊列,隊列長度越長丟棄概率越高

QoS配置

一、CAR配置
+定義規則
qos carl car-index { precedence precedence-value | mac mac-address }
+在接口上應用CAR策略或ACL
qos car {inbound | oubound }{ any | acl acl-index | carl carl-index } cir committed-rate cbs burst-size ebs excess-burst-size conform action exceed action
在每個接口上(inbound和outbound方向上),一共可應用100條CAR策略
在應用策略前,應該先禁止快速轉發功能

二、GTS配置
+為某一類別流配置整形參數
qos gts acl acl-index cir committed-rate [cbs burst-size [ebs excess-burst-size [quence-length queue-length]]]
+為所有的流配置整形參數
qos gts any cir committed-rate [cbs burst-size [ebs excess-burst-size [queue-length queue-length]]]
這兩條命令不能在同一接口使用
配置整形參數之前,應先關閉快速轉發功能
Queue length 的默認值為50

三、LR的配置
+LR的配置命令
qos lr cir committed-rate [ cbs burst-size [ebs excess-burst-size ]]

四、FIFO配置
+配置FIFO隊列中可容納包的個數
qos fifo queue-length queue-length
+產看接口配置的隊列策略
display interface interface-type interface-number

五、PQ配置
+配置優先隊列
根據接口配置優先隊列
qos pql pql-index inbound-interface type number queue { top | middle | normal | bottom }
根據網路層協議配置優先隊列
qos pql pql-index protocol protocol-name queue-option queue { top | middle | normal | bottom }
配置缺省優先隊列
qos pql pql-index default-queue { top | middle | normal | bottom }
在接口上應用優先隊列組
qos pq pql pql-index
指定每一個優先隊列的隊列長度
qos pql pql-index queue { top | middle | normal | bottom } queue-length queue-length

六、PQ配置

七、CQ配置
+配置定制隊列
根據接口配置定制隊列
qos cql cql-index inbound-interface type number queue queue-number
根據網絡層協議配置定制隊列
qos cql cql-index protocol protocol-name queue-option queue queue-number
配置缺省定制隊列
qos cql pql-index default-queue queue-number
在接口上應用定制隊列組
qos cq cql cql-index
配置定制隊列的隊列長度
qos cql cql-index queue queue-number queue-length queue-length
配置定制隊列連續發送字節數
qos cql cql-index queue queue-number serving byte-count

八、WFQ配置
+命令
qos wfq [ quene-length max-quenue-length [queue-number total-queue-number]]
Max-queue-length的缺省值為64個報文
Total-queue-number的缺省值為256個動態隊列

九、WRED配置
+使能WRED
qos wred
+配置WRED計算平均隊長的指數(可選)
qos wred weighting-constant exponent
+配置WRED個優先級參數(可選)
qos wred ip-precedence ip-precedence low-limit low-limit high-limit high-limit discard-probability discard-prob

www.huawei.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM