QOS-QOS(服務質量)概述
2018年7月7日 20:29
概述及背景:
1. 引入:
-
- 傳統IP網絡僅提供“盡力而為”的傳輸服務,網絡有可用資源就轉發,資源不足時就丟棄
- 新一代IP網絡承載了 語音、視頻等實時互動信息,要求網絡能提供有保證的服務質量
- QOS允許用戶在丟包、延遲、抖動和 帶寬等方面獲得可預期的服務水平
2.網絡性能衡量的參數:
帶寬:
-
- 是鏈路上單位時間所能通過的最大數據流量,其單位為bps
- 在一條端到端的鏈路中,最大 可用帶寬等於路徑上帶寬最低的鏈路的帶寬
延遲:是標識數據包穿越網絡所用時間的指標
-
- 處理延遲
- 交換延遲:路由器查表時
- 排隊延遲:數據包在出接口排隊的延遲
- 傳播延遲:數據在鏈路上傳播的時間
- 處理延遲
抖動:
-
- 是指數據包穿越網絡時延遲的變化,是衡量網絡延遲穩定性的指標
- 是由於延遲的隨機性造成的,主要原因是數據包排隊延遲的不確定性
丟包率:
-
- 丟包是指數據包扎傳輸過程中的丟失,是衡量網絡可靠性的重要指標
- 丟包的主要原因:
- 網絡擁塞時,當隊列滿了后,后續的報文將由於無法入隊而被丟棄
- 流量超過限制時,設備對其進行丟棄
- 丟包以丟包率作為衡量指標
- 丟包率=被丟包報文數量/全部報文數量
注意:
-
- 語音需要低帶寬,低延時,低抖動的網絡
- 數據流量需要高帶寬,低丟包率的網絡
- 視頻流量需要高帶寬,低延時,低抖動的網絡
QOS不能參加先有的帶寬,只能將現有的帶寬優化。
3.QOS提高服務質量的方法:
-
- 提供物理帶寬
- 增加緩沖
- 對數據包進行壓縮
- 優先轉發某些數據流的包
- 分片和叫錯
4.QOS的功能:
-
- 盡力避免網絡擁塞
- 在不能避免擁塞時對帶寬進行有效管理
- 降低報文丟包率
- 調控IP網絡流量
- 為 特定用戶 或特定業務提供專用帶寬
- 支撐網絡上的實事業務
- Qos不能創造帶寬,只能是帶寬的 分配更加合理
5.QOS模型:
Best Effort模型介紹:
-
- 是最簡單的而服務模型,網絡盡最大可能來發送報文 ,對延遲、丟包等不提供任何保證“盡力而為”。
- 是Internet的缺省服務模型
- 通過FIFO(先入先出)隊列實現。
FIFO隊列:
-
- 所有數據進入同一隊列,按先進先出原則調度
- 隊列滿后,后續報文被丟棄
優點:
實現簡單
節省處理資源,處理速度快
缺點:
所有數據流同等對待
所有數據流的帶寬、延遲、抖動、丟包等都不可控
DiffServ模型:(區分服務類型)屬於互聯網部署最廣泛的模型
-
- 對網絡中不同的業務進行分類
- 不需要跟蹤每一數據流,資源占用少,擴展性強
- 不能提供精確的QoS,難以提供端到端的QoS
模型組件:
邊界節點與內部節點:
DS區:由多個DS域組成
DS域:整條QOS流水線
DS的邊界節點
分類
標記
丟棄
整形
DS的內部節點
根據邊界節點的行為聚合,做PHB(逐條行為)
擁塞管理
擁塞避免
頭部壓縮
邊界行為:
-
- 分類器:
- BA分類器(根據行為進行分類)
- MF分類器(根據字符段進行分類,IP五元組,IP協議字段)
- 調節器
- 測量器(令牌桶)
- 標記器器(CAR和 Map-table(QOS的映射表))
- 整形器(GTS,LR)
- 丟棄器(CAR)
- 分類器:
令牌桶 :通過令牌桶算法對流量進行評估,以確定其實是否超出了承諾的速率。
令牌桶是網絡設備的內部存儲池,而令牌則是以給定速率填充令牌桶的虛擬信息包。每個到達的令牌都會從數據隊列領出相應的數據包進行發送,發送完數據后令牌被刪除。是網絡設備衡量數據有沒有超過額定帶寬的工具,從而給出對數據的處理方式。
無突發令牌桶算法:
CIR(承諾信息速率):以承諾的每秒字節數來衡量
CBS(承諾突發尺寸):以字節數來衡量,取值大於0,並且至少應該等於最大的分組長度。
-
- 每個報文進行一次評估,當報文長度大於Tc時標記為超出承諾速率流量,反之為承諾速率以內流量
帶突發的單速率雙令牌桶算法:(兩個令牌桶,一個速率投放令牌)
CIR:以承諾的每秒字節數來衡量
CBS:以字節數來衡量,取值大於0,並且至少應該大於等於最大的分組長度。桶的容量,C桶=CBS
EBS(超額突發尺寸):以字節數來衡量,取值大於0,並且至少應該大於等於最大的分組長度。也是桶的容量,E桶=CBS+EBS
假設某一時刻一個大小為B字節的報文到達,在對其進行評估時:
-
- 如果Tc>B,則報文被標記為“承諾突發內”,進行傳輸
- 如果Tc<B<Te,則報文標記為“超額突發內”,進行傳輸
- 如果Tc<Te<B,則報文被標記為“超出超額突發”,不進行傳輸,直接丟棄
帶突發的雙速率雙令牌桶算法:
假設某一時刻一個大小為B字節的報文到達,在對其進行評估時,遵循以下規則:
-
- TP<B,則報文被標記為“超出峰值速率”,直接丟棄
- TC<B<Tp,報文被標記為“峰值速率內”,Tp桶傳輸
- B<TC<Tp,報文被標記為“承諾速率內”,Tc和Tp都傳輸
-
- PHB:是指DS節點對行為聚合應用的可由外部觀測到的轉發行為。PHB是DS節點對行為 聚合分配資源的方法。
- Default PHB:稱BE(盡力而為)是默認的PHB。提供盡力而為的服務,服務沒有任何保證
- Class Selector(類選擇符)PHB:一個 Class Selector代碼點的值越高,其重要性和優先級越高,也就應該獲得更好、更及時的服務。
- EF(加速轉發):此類PHB提供低延遲、低抖動、低丟包率和保證帶寬的優先轉發服務,主要用於語音、視頻等對延遲和抖動敏感的業務
- AF(確保轉發):PHB提供有保證的帶寬服務
- PHB:是指DS節點對行為聚合應用的可由外部觀測到的轉發行為。PHB是DS節點對行為 聚合分配資源的方法。
隊列是PHB的核心,通過隊列之間的調度來為其轉發資源:
-
- PQ(優先隊列)PQ按照優先級從高到低提供了Top、Medium、Normal和Low4個隊列
- CQ:(定制隊列)CQ給每個隊列提供不同的權重,各隊列之間采用輪詢機制,CQ保證每個隊列都能得到一定的調度機會,但不能保證任何一個隊列優先獲得調度
- WFQ:(加權公平隊列)依據IP五元組、ToS字段、MPLS EXP等參數區分數據流,為數據東泰監理隊列;調度時依據不同的IP Precedence或DSCP值確定數據流的權重,並為其提供相應比例的資源
- CBQ:(基於類的隊列)CBQ允許用戶根據IP優先級或者DSCP、輸入接口、IP報文的五元組,以及用戶定義的ACL等規則來對報文進行分類
- WRR:(加權循環)允許以較小的計算開銷在若干隊列之間根據權重提供轉發服務。
令牌桶默認大小是cir速率的一半,為什么呢?
答:因為1s內拿兩次令牌,半秒拿一次,cir一秒投一次。
假設cir速率為1000kbps,那么cbs默認為62500Byte。一秒之后令牌桶內的令牌數回到初始狀態
令牌桶(cbs)最小為CIR的6.25倍。
答:假如cir 為64kbps,那么CBS最小值為64*6.25=400Byte。
IntServ模型:(綜合服務)
在這種模型中,節點在發送報文前需要向網路申請所需資源。這種請求是通過RSVP(資源預留協議)信令來完成的。
Intserv可以提供一下兩種服務:
-
- 保證服務:它提供保證的帶寬和延遲來滿足應用程序的需求
- 負載控制服務:它保證即使在網絡過載的情況下也能對對報文提供與網絡未過載時類似的服務,即網絡擁塞時也能保證某些應用程序報文的低延遲和優先通過
-
- RSVP介紹:
用於在一條路徑的各節點上進行資源預留。RSVP工作在傳輸層。
從第一跳路由器開始用Path消息逐跳進行資源請求,到達目的后再用Resv消息反向逐跳進行資源預留。由接收者發起對資源預留的請求,並維護資源預留信息。
優點:
-
- 提供絕對的、准確的QOS保障,不會隨網絡狀態的變化而受到影響
- 提供端到端的QOS服務
缺點:
-
- 需要跟蹤 和記錄每一個流的狀態,因而擴展性很差
應用:
-
- 和DiffServ模型相結合
- 在網絡的邊緣利用IntServ模型進行精細的Qos控制
- 在網絡骨干部分則利用DiffServ模型進行簡單高效的Qos控制
- 和MPLS TE相結合
- 可以根據網絡擁塞情況,引導流量的均勻化分部
- 和DiffServ模型相結合
配置QoS邊界行為:
分類:
自動分類:根據入接口上配置的信任類型分類。包括信任端口優先級或者信任報文優先級。
手動分類:通過ACL等手段匹配報文的IP地址、端口號、MAC地址、入接口、協議類型、Vlan號、CoS、EXP、IP Precedence、DSCP等
流量監管:
-
- 定義:
流量監管:為網絡服務提供者提供了 一種對用戶流量進行監督的 能力,以使其能嚴格地符合SLA。
CAR(承諾訪問速率)是一種基本的流量監管工具。CAR可以區分報文的類型,使用令牌桶技術對各類數據流量進行測量,測量后的報文可以采取放行、丟棄、重標記、轉入下一級監管等多種操作。
-
- 位置:
-
- 工作於網絡層,對網絡層報文進行流量監管
- 既可以應用在入方向,也可以應用在出方向
在入方向:CAR處理在轉發模塊之前,只有被CAR放行的報文才能進入轉發,就CAR丟棄的報文將不能進入轉發。
在出方向:CAR的處理在接口其他Qos機制之前。當擁塞未發生時,即用戶隊列為空且發送隊列未滿時,被CAR放行的報文將直接進入出接口的發送隊列進行轉發。當擁塞時,即發送隊列已滿,被CAR放行的報文將進入出接口的用戶隊列調度。
用戶隊列:由軟件或硬件實現的隊列
發送隊列:由接口硬件實現
最好用在入方向,如果用在出方向,要經過查表的過程,查到最后被丟了,不合理
CAR的原理:(減小CIR(投放令牌速率)可以限速)
當存在多條CAR規則時,報文被依次與每一規則的分類條件相對比,符合條件的即屬於本規則確定的類。
-
- 放行(PASS):指允許相應的報文通過CAR,進入下一步的隊列調度或轉發 處理
- Didscard(丟棄):指丟棄相應的報文
- Continue(繼續):指將相應的報文提交給下一條CAR規則進行處理
CAR配置命令:
配置CARL:(匹配數據流)
subnet:子網網段
range:IP地址范圍
pre-address 表示這個網段每個地址
shared-bandwidth:共享帶寬
在接口應用基於CARL或ACL的CAR規則:
流量整形:
-
- 用於保證輸出到下游網絡的流量符合某種限制標准,使流量更加平滑,會增加數據包的延遲。
- 是一種主動調整流量輸出速率的措施。一個典型應用是基於與下游網絡節點的SLA/TCA協定來控制本地流量的輸出
- 流量整形通過GTS實現
- 以令牌桶算法測量流量
- 對於超出承諾速率的報文會放入一個隊列緩存
-
- GTS只能應用於接口的出方向
- GTS位於隊列調度機制之前
GTS的原理:
-
- GTS對符合承諾速率的報文放行,將超出承諾速率的報文入隊緩存,當有足夠令牌時再進行發送
- 當緩存隊列未滿時后續報文直接入隊,緩存隊列滿時后續報文被直接丟棄
GTS將每一類報文分別送入各自的令牌桶中進行測量,評估其流量是否符合既定的限度,符合的報文放行,進入下一步的隊列調度或轉發處理,不符合被緩存在隊列里,待有足夠令牌時再繼續發送。
基於ACL的GTS:
在接口上基於隊列的GTS:(在交換機中,基於隊列的GTE命令可對出接口的指定隊列中的流量進行整形。其中queue queue-number表示對指定隊列上的數據包進行流量整形,queue-number為指定隊列號)
在接口上配置對接口上全部流量進行整形:
顯示流量整形配置運行信息:
接口限速:
-
- 接口限速(LR):限制了從一個接口發向下游的報文的總速率
- LR在令牌桶中引入了隊列緩存的機制,因而減小了丟包,平滑了流量,但同時也增大了延遲
- LR位於鏈路層,在用戶隊列之后,發送隊列之前,對從該接口發出的所有IP和非IP報文(緊急報文除外)均能生效,接口全局生效。
- LR只能應用於接口的出方向,運用在接口鏈路層。
原理:
-
- 由於令牌不夠而不能發送的報文會被再次送到用戶隊列,經過隊列調度后再進入令牌桶進行評估
- 與GTS中簡單緩存隊列不同 ,LR的緩存幾乎可以利用QoS擁塞管理中的所有隊列機制
接口下的接口限速配置:
查看接口的LR配置和統計信息:
CAR:可以針對每個流量進行限速、標記、丟棄
LR:物理接口限速
GTS:減小流量的波動,使流量更加平滑(相當於限速)
常見錯誤:
-
- 物理層接口混亂
- 二層鏈路不通
- 網絡不通做QOS
- 方向錯誤
- 流抓錯誤
- QOS功能理解錯誤