QoS

QoS(Quality of Service)是一種控制機制
針對不同用戶或不同數據流或應用程序的要求,用相應不同的優先順序,保證數據流性能達到一定的水準
QoS的需求在連線時便決定,且一直使用到連線結束為止
QoS對容量有限的網路十分重要,特別是串流多媒體應用,ex:voice over IP,IP電視,…等
ps:若是沿途設備無法滿足QoS需求時,就很難發揮功效

資料流需求主要參數
可靠性:傳送的所有位元需正常
延遲:等待時間
時基誤差:不規律情況產生
頻寬:

數據傳輸會面對到的問題
latency(延遲):數據傳輸時目地所需等待的時間
jitter(抖動):不同的latency,
 若影音不能以固定速率傳輸,則會感覺會斷斷續續
loss(丟失):在忙碌及錯誤較高的網路會將數據丟掉
 影音數據可接受少部份loss
 使用TCP可減緩此問題,但會增加latency

ps:
qos的硬體為packetsharper(頻寬管理器),功能如下: 
 Classify of Traffic(分類)
 Analyze Traffic(分析)
 Control Traffic(控制)
 Report(報告) 

###################################################################

QoS策略

常見的qos策略
Best-effort delivery
用最快的方式傳輸所有數據,但不考慮數據類別與優先權
Integrated services model
將數據會用到路徑之頻寬保留,使數據可快速通過
ex:rfc1633的RSVP 
Differentiated services model
網路上的各節點會依據數據的tag判斷是否要提高優先權
ex:dscp,ieee802.1p

……… 

flow-based(資料流基準)演算法/IIS(integrated service,整合式服務)
用在unicast(單點傳送)及multicast(多點傳送)
主要協定:RSVP(Resource Reservation Protocol,資源預留協定)
允許多個傳送端傳輸到多個接收群組,各別用戶可切換頻道,並將頻寬利用最佳化
做法:
  1先採用擴展樹之多點傳送路由法
  2接收端藉著擴展樹送出(用逆向路徑轉送法)預留訊息到傳送端
  3若成功則沿著擴展樹獲得預留頻寬,若無頻寬可用則失敗
缺點:
 資料流過多難以調整,禁不起路由器固障,需對路由器程式碼大量修改

RSVP(Resource Reservation Protocol,資源預留協定)
 第三層的通訊協定,用來設定router保證某一個service(服務)可取得固定傳輸速率QOS的protocol(通訊協定)
 一種連結導向技術,要求網路節點儲存網路所有連線的狀態資訊,擴充性較差,不易隨網路連線增加而擴大規模
 Receiver-oriented(訊息接收者導向):頻寬預留的工作由接收端傳連線所需的服務品質參數,保留網路上的資源
 Soft-state protocol(軟性狀態):網路提升效能記錄的狀態資訊,增加網路運作的效能而不會影響網路的正常運作與否(需週期性更新)
功能
 能與已執行的路由協定配合並且支援數個網路層的通訊協定,當然包含TCP/IP
 支援多點傳送與單點傳送
 頻寬保留的訊息傳送給需要的網路設備,如路由器或是交換器等等,以維護傳送端與接收端之間能保有欲設定好的頻寬值
 維護每個節點的頻寬保留資訊
 對過不支援RSVP協定的網路設備就無條件地通過它

…….

以class-based(等級為基準服務)/differentiated services(差別式服務)
實作方式有dscp,ieee802.1p
簡單,易實做在路由器上,不需預先設立和資源預留,不用為各資料流進行end-to-end協商
可由一組路由器組成管理領域,管理單位定義一組服務類別及各別轉送原則

DSCP(Differentiated Services Code Point,差別服務編碼點)
屬於layer3 qos
以不同方式解釋ip header的tos欄位
用六個位元來定義不同等級的封包,在一個節點中最多可以支援64個不同的等級(2^6)
封包PHB是根據DSCP碼
PHB(Per-Hop-Behavior,逐點傳送行為),在送封包時提供可量測得到的訊務特性,ex:Bandwidth,Delay,Jitter,Packet Loss等
依其類別對其採取適當的封包排程行為
 expedited forwarding(迅速轉送):提供一般(大部份流量)及快速兩種服務等級
  將路由器輸出線路提供兩個輸出佇列,一個用於快速封包,另個用於一般封包
  類似整合式服務架構中的保証服務,被稱為premium service(特級服務)或是virtual lease line(虛擬專線)
  能提供lowdelay(低傳送延遲)、low loss(低封封包遺失率)、low jitter(低延遲變動率)及保證頻寬的服務
 assured forwarding(保證轉送):提供四種優先等級,在分三種丟棄機率,共用12個組合(DSCP,PHB)
  封包>分類器>標記器>調整/丟棄過濾器>送入路由
 BE(Best Effort,盡力轉送)
 CS(Class Selector,類選擇型)
DSCP格式如下
Class Selector:3bit,可定義8種類型
 0:default,盡力轉送
 1-4:AF(Assured Forward,保證轉送),數字越高優先權越高
 5:EF(Expedited Forwarding,加速轉送),通常用在像影音等對時間較敏感的數據
 6:internetwork control,用在route協定或是stp等控制網路的數據
 7:network control,同類別6
Drop Precedence:3bit,
 分為低(1)中(2)高(3)丟棄優先權,在相同的class selector中高丟棄優先權,被丟棄的可能性越高

 

IEEE 802.1p的CoS(Class of Service):
屬於layer2 qos
將frame加上tag,讓特定的封包可以有較為優先的傳輸權利,進而達到優化網路的效果
優先權為0-7,以3bit表示
802.1p可實作在
 802.1q:在vlan tag裡的pri欄位
 cisco ISL:在user filed後面的3bit
 MPLS label裡的tos欄位
ps:
但有些廠商只有2組CoS可用,有些則是4種可設,實際上的使用仍需經實際操作才能確認 

 

########################################################## 

 QoS相關技術

過度供給:提供極大路由器容量,緩衝區空間,頻寬..等,但代價昂貴
緩衝儲存:資料流送出前先儲存在接收端緩衝區中,可將基頻時差撫平
traffic shaping(流量調整):藉由流量調整可減少雍塞
  調整伺服器資料傳輸平均速率
  用戶和業者達成service level agreement(服務等級協議) 
    規範所提供服務的最低可接受性,含Availability(可用性),Security(安全性),Performance(效能性),客戶服務
  監看資料流量程序,流量監督,traffic policing
資源預留:
  來源端和目地端間建立虛擬通道(資料流封包須採該路徑)
  並沿著該路徑預留資源(頻寬,緩衝區空間,cpu週期)
  為達良好品質,特定資料要保留緩衝區空間,以免該資料流和其他競爭
  為確保即時處理每個封包,須讓路由器cpu不過度負荷
存取控制:
  資料流規格:讓傳送端,接收端,路由器等參與者用可協商的特定參數描述資料流
   token bucket rate(記號桶速率),byte/sec 可傳送最大速率
   token bucket size(記號桶大小)
   peak data rate(尖峰資料速率),傳送端不可超過速率
   最小及最大封包長度
  隨著該規格在路徑上傳播,所經節點將根據需要修改參數(減少資料流)
比例式路由:
  用本地擁有資訊,將送往每個目地端的流量分散到不同路徑上

leaky bucket algorithm(漏水桶演算法):1986 turner
  將不規則的流量轉變成規律速度流量注入網路,可減少雍塞
  漏水桶含有限長度佇列,當封包扺達進入佇列,若己滿則丟棄,每一時序可送一封包
  不允許預存
token bucket algorithm(記號桶演算法):
  以某速率產生記號,被傳送封包需取得並銷毀一個記號
  允許預存,存量可達記號桶最大容量
  若桶內裝滿及丟棄記號
  可緩合路由器之間流量  

封包排程:
fair queueing(公平排隊演算法) 1987nagle
 以循環方式round robin檢視路由器每個輸出線路的各別佇列,取出下個佇列第一個封包
 因大封包主機比用小封包主機佔更大頻寬,所以將封包改為以位元組為單位 1990demers
 主機優先性完全相同
weighted fair queueing(權重公平排隊)演算法
 每個時序可傳兩個或更多位元組
 主機優先性不同

Queuing Congestion Manager(雍塞管理)
當Queue滿了就會執行Tial-Drop(尾端丟棄)的動作
雍塞發生時,TCP會使用Window Size減半的機制來控制雍塞

Congestion Aviodauce(雍塞避免)
使用RED或WRED的機制
在雍塞發生前先把不重要的封包丟棄

Link Efficiency(切割,壓縮)
避免大封包傳輸過久導致Voice的封包被Delay
利用IP封包的Identify/Offset/more Fragment/Inter-Frame-Leaving欄位達到避免大封包Delay到Voice的封包