QoS(Quality of Service)服务质量【转自微信公众号开源Linux】
QoS(Quality of Service)即服務質量。在有限的帶寬資源下,QoS為各種業務分配帶寬,為業務提供端到端的服務質量保證。例如,語音、視頻和重要的數據應用在網絡設備中可以通過配置QoS優先得到服務。
圖1-1 什么是QoS?QoS是如何工作的?
QoS的重要性
在IP網絡的業務可以分為實時業務和非實時業務。實時業務往往占據固定帶寬,對網絡質量變化感知明顯,對網絡質量的穩定性要求高,例如語音業務。非實時業務所占帶寬難以預測,經常會出現突發流量。突發流量會導致網絡質量下降,會引起網絡擁塞,增加轉發時延,嚴重時還會產生丟包,導致業務質量下降甚至不可用。
解決網絡擁塞的最好的辦法是增加網絡的帶寬,但從運營、維護的成本考慮,這是不現實的,最有效的解決方案就是應用一個“有保證”的策略對網絡流量進行管理。
QoS一般針對網絡中有突發流量時需要保障重要業務質量的場景。如果業務長時間達不到服務質量要求(例如業務流量長時間超過帶寬限制),需要考慮對網絡擴容或使用專用設備基于上層應用去控制業務。
近幾年,視頻的應用出現了爆炸式的增長,現在幾乎每個人都擁有一部能夠隨時隨地拍攝高分辨率視頻的智能手機。同時隨著社交網站的涌現,分享和發布視頻成了每個人的日常行為,人們不論身在何處都可以將自己制作的視頻發布出去與他人分享。對于企業來說,高清視頻會議,高清視頻監控等應用,也在網絡中產生了大量的高清視頻流量。與語音流量相比,視頻流量占用的帶寬更多,也更不穩定,特別是一些交互類視頻,對實時性要求非常高。另外,隨著無線網絡的發展,越來越多的用戶和企業都開始使用無線終端,而無線終端會隨著用戶的移動而不斷變化位置,導致網絡中的流量更加的不可預測。因此QoS方案設計也面臨更多的挑戰。
QoS的度量指標
影響網絡質量的因素包括傳輸鏈路的帶寬、報文傳送時延和抖動、以及丟包率等,它們也就成為了QoS的度量指標。
(1)帶寬
帶寬也稱為吞吐量,是指在一個固定的時間內(1秒),從網絡一端傳輸到另一端的最大數據位數,也可以理解為網絡的兩個節點之間特定數據流的平均速率。帶寬的單位是比特/秒(bit/s)。在網絡中,有兩個常見的與帶寬有關的概念:上行速率和下行速率。上行速率是指用戶向網絡發送信息時的數據傳輸速率,下行速率是指網絡向用戶發送信息時的傳輸速率。例如,用戶通過FTP上傳文件到網絡,影響上傳文件速度的就是上行速率;而從網絡下載文件,影響下載文件速度的就是下行速率。
(2)時延
時延是指一個報文或分組從網絡的發送端到接收端所需要的延遲時間,一般由傳輸延遲及處理延遲組成。以語音傳輸為例,時延是指從說話者開始說話到對方聽到所說內容的時間。一般人們察覺不到小于100毫秒的延遲。當延遲在100毫秒和300毫秒之間時,說話者可以察覺到對方回復的輕微停頓,這種停頓可能會使通話雙方都感覺到不舒服。超過300毫秒,延遲就會很明顯,用戶開始互相等待對方的回復。當通話的一方不能及時接收到期望的回復時,說話者可能會重復所說的話,這樣會與遠端延遲的回復碰撞,導致重復。
(3)抖動
如果網絡發生擁塞,導致通過同一連接傳輸的分組延遲各不相同。抖動用來描述延遲變化的程度,也就是最大延遲與最小延遲的時間差。抖動對于實時性的傳輸是一個重要參數,特別是語音和視頻等實時業務是極不容忍抖動的,抖動會造成話音或視頻的斷續。抖動也會影響一些網絡協議的處理。有些協議是按固定的時間間隔發送交互性報文,抖動過大會導致協議震蕩。所有傳輸系統都有抖動,只要抖動在規定容差之內就不會影響服務質量。利用緩存可以克服過量的抖動,但這將增加時延。
(4)丟包率
丟包率是指在網絡傳輸過程中丟失報文的數量占傳輸報文總數的百分比。少量的丟包對業務的影響并不大,例如,在語音傳輸中,丟失一個比特或一個分組的信息,通話雙方往往注意不到。在視頻的傳輸中,丟失一個比特或一個分組可能造成在屏幕上瞬間的波形干擾,但能很快恢復正常。使用TCP傳送數據可以處理少量的丟包,因為TCP允許丟失的信息重發。但大量的丟包會影響傳輸效率。在QoS中,我們關注的是丟包的統計數據,也就是丟包率。所以正常傳輸時,網絡丟包率應該控制在一定范圍內即可。
QoS的應用場景
以企業辦公為例,除了基本的網頁瀏覽、工作郵件外,在較集中的工作時間段內還需要保證Telnet登錄設備、異地的視頻會議、實時語音通話、FTP文件的上傳和下載,以及視頻播放等業務的網絡質量。對于不同網絡質量要求的業務,可以配置不同的QoS子功能,或者不部署QoS。
(1)網絡協議和管理協議(如OSPF、Telnet)
這類業務要求低時延和低丟包率,但對帶寬的要求不高。因此可以通過QoS的優先級映射功能,為此類報文標記較高的服務等級,使網絡設備優先轉發此類報文。
(2)實時業務(如視頻會議、VoIP)
視頻會議要求高帶寬、低時延和低抖動。因此可以通過QoS的流量監管功能,為視頻報文提供高帶寬;通過QoS的優先級映射功能,適當調高視頻報文的優先級。
VoIP是指通過IP網絡進行實時語音通話,它要求網絡做到低丟包、低時延和低抖動,否則通話雙方可以明顯感知質量受損。因此一方面可以調整語音報文的優先級,使其高于視頻報文;另一方面通過流量監管功能,為語音報文提供最大帶寬,在網絡產生擁塞時,可以保證語音報文優先通過。
(3)大數據量業務(如FTP、數據庫備份、文件轉儲)
大數據量業務是指存在長時間大量數據傳輸行為的網絡業務,這類業務需要盡可能低的網絡丟包率。因此可以為這類報文配置流量整形功能,通過數據緩沖區緩存從接口發送的報文,減少由于突發流量導致擁塞而產生的丟包現象。
(4)流媒體(如在線音頻播放、視頻點播)
由于這些音視頻節目都是提前制作好的,觀看者的終端通常可以先進行緩存再進行播放,因此降低了對網絡時延、丟包和抖動的要求。如果需要降低這類業務的丟包和時延,可以通過QoS的優先級映射功能,適當提高對應報文的優先級。
(5)普通業務(如HTML網頁瀏覽、郵件)
這類業務對網絡無特殊要求、重要性也不高。管理員可以對其保持默認設置,不需要額外部署QoS功能。
QoS的服務模型
如何在網絡中通過部署來保證QoS的度量指標在一定的合理范圍內,從而提高網絡的服務質量呢?這就涉及到QoS模型。需要說明的是,QoS模型不是一個具體功能,而是端到端QoS設計的一個方案。例如,網絡中的兩個主機通信時,中間可能會跨越各種各樣的設備。只有當網絡中所有設備都遵循統一的QoS服務模型時,才能實現端到端的質量保證。
下面介紹主流的三大QoS模型。其中,華為公司的交換機、路由器、防火墻、WLAN等產品均支持配置基于DiffServ服務模型的QoS業務。
(1)Best-Effort服務模型:盡力而為
Best-Effort是最簡單的QoS服務模型,用戶可以在任何時候,發出任意數量的報文,而且不需要通知網絡。提供Best-Effort服務時,網絡盡最大的可能來發送報文,但對時延、丟包率等性能不提供任何保證。Best-Effort服務模型適用于對時延、丟包率等性能要求不高的業務,是現在Internet的缺省服務模型,它適用于絕大多數網絡應用,如FTP、E-Mail等。
(2)IntServ服務模型:預留資源
IntServ模型是指用戶在發送報文前,需要通過信令(Signaling)向網絡描述自己的流量參數,申請特定的QoS服務。網絡根據流量參數,預留資源以承諾滿足該請求。在收到確認信息,確定網絡已經為這個應用程序的報文預留了資源后,用戶才開始發送報文。用戶發送的報文應該控制在流量參數描述的范圍內。網絡節點需要為每個流維護一個狀態,并基于這個狀態執行相應的QoS動作,來滿足對用戶的承諾。
IntServ模型使用了RSVP(Resource Reservation Protocol)協議作為信令,在一條已知路徑的網絡拓撲上預留帶寬、優先級等資源,路徑沿途的各網元必須為每個要求服務質量保證的數據流預留想要的資源,通過RSVP信息的預留,各網元可以判斷是否有足夠的資源可以使用。只有所有的網元都給RSVP提供了足夠的資源,“路徑”方可建立。
(3)DiffServ服務模型:差分服務
DiffServ模型的基本原理是將網絡中的流量分成多個類,每個類享受不同的處理,尤其是網絡出現擁塞時不同的類會享受不同級別的處理,從而得到不同的丟包率、時延以及時延抖動。同一類的業務在網絡中會被聚合起來統一發送,保證相同的時延、抖動、丟包率等QoS指標。
Diffserv模型中,業務流的分類和匯聚工作在網絡邊緣由邊界節點完成。邊界節點可以通過多種條件(比如報文的源地址和目的地址、ToS域中的優先級、協議類型等)靈活地對報文進行分類,對不同的報文設置不同的標記字段,而其他節點只需要簡單地識別報文中的這些標記,即可進行資源分配和流量控制。
與Intserv模型相比,DiffServ模型不需要信令。在DiffServ模型中,應用程序發出報文前,不需要預先向網絡提出資源申請,而是通過設置報文的QoS參數信息,來告知網絡節點它的QoS需求。網絡不需要為每個流維護狀態,而是根據每個報文流指定的QoS參數信息來提供差分服務,即對報文的服務等級劃分,有差別地進行流量控制和轉發,提供端到端的QoS保證。DiffServ模型充分考慮了IP網絡本身靈活性、可擴展性強的特點,將復雜的服務質量保證通過報文自身攜帶的信息轉換為單跳行為,從而大大減少了信令的工作,是當前網絡中的主流服務模型。
基于DiffServ模型的QoS組成
基于Diffserv模型的QoS業務主要分為以下幾大類:
(1)報文分類和標記
要實現差分服務,需要首先將數據包分為不同的類別或者設置為不同的優先級。報文分類即把數據包分為不同的類別,可以通過MQC配置中的流分類實現。報文標記即為數據包設置不同的優先級,可以通過優先級映射和重標記優先級實現。不同的報文使用不同的QoS優先級,例如VLAN報文使用802.1p,IP報文使用DSCP,MPLS報文使用EXP。
(2)流量監管、流量整形和接口限速
流量監管和流量整形可以將業務流量限制在特定的帶寬內,當業務流量超過額定帶寬時,超過的流量將被丟棄或緩存。其中,將超過的流量丟棄的技術稱為流量監管,將超過的流量緩存的技術稱為流量整形。接口限速分為基于接口的流量監管和基于接口的流量整形。
(3)擁塞管理和擁塞避免
擁塞管理在網絡發生擁塞時,將報文放入隊列中緩存,并采取某種調度算法安排報文的轉發次序。而擁塞避免可以監督網絡資源的使用情況,當發現擁塞有加劇的趨勢時采取主動丟棄報文的策略,通過調整流量來解除網絡的過載。
其中,報文分類和標記是實現差分服務的前提和基礎;流量監管、流量整形、接口限速、擁塞管理和擁塞避免從不同方面對網絡流量及其分配的資源實施控制,是提供差分服務的具體體現。
各種QoS技術在網絡設備上的處理順序如下圖所示。
圖1-2?QoS技術處理流程
對比QoS和HQoS
傳統QoS技術可以滿足語音、視頻以及數據等業務的不同服務需求,可以針對不同的業務提供不同的服務。但是隨著網絡設備的高速發展,接入用戶數量和每個用戶的業務量不斷增多,傳統的QoS在應用中遇到了新問題:
傳統QoS是基于端口帶寬進行調度的,因此流量管理可以基于服務等級進行業務區分,卻很難基于用戶進行區分,因此比較適合部署在網絡核心側,但不適合部署在業務接入側。
傳統QoS無法做到同時對多個用戶的多個業務進行流量管理和調度。
圖1-3?傳統QoS vs HQoS調度模型
為了解決上述問題,人們需要一種既能區分用戶流量又能根據用戶業務的優先級進行調度的技術,HQoS(Hierarchical Quality of Service,層次化QoS)應運而生。HQoS通過多級隊列進一步細化區分業務流量,對多個用戶、多種業務等傳輸對象進行統一管理和分層調度,在現有的硬件環境下使設備具備內部資源的控制策略,既能夠為高級用戶提供質量保證,又能夠從整體上節約網絡建設成本。
總結
以上是生活随笔為你收集整理的QoS(Quality of Service)服务质量【转自微信公众号开源Linux】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tkinter向文本框里加内容_给tki
- 下一篇: java 8 把list中对象的属性转成