QoS封包原理簡單介紹

自己在寫QoS軟體,但是對於QoS卻是一知半解,趁這個機會把很散亂的資料找齊,最後來做個整理,才不會過沒多久又忘記了!

【定義】

QoS指的意思是Quality of Service,表示在網路環境中,你送出的封包的品質,所謂品質越好,表示有越低的延遲,掉包和抖動現象,並且搭配更高的吞吐量和可靠性。實際上的作法就是利用封包內容的特定欄位的高低,告訴Switch/Router等如何處理封包。是先還是後,直接影響著品質。

第二層(Link Layer)封包是利用VLAN(IEEE 802.1Q) TAG裡頭的Priority(3 bits)欄位,值從0(最低)-7(最高),很簡單沒有什麼特別。重點在於第三層封包。

在第三層(IP)以上的網路環境中,靠得是一個8 bits的優先權欄位,IPv4和IPv6皆有,只是位置不同而已。這個8 bits的欄位有2種型態-ToS以及DS。最簡單來看,就是欄位值越高,代表的就是此IP封包有越高的優先權。

  • Type of Service (ToS) - 定義了資料包的優先順序(Precedence),並指定同樣優先等級下,資料封包的丟棄原則(ToS)。
  • Differentiated Services (DS) - 網路中的每個node,會根據封包中的欄位值,來判斷是否提高優先權,對每個同樣bit設定的包進行調整,配置不同策略。


【相關的RFC】

Type of Service最早定義在RFC-791。之後的RFC-2474則改變了這些區域的代表意義,稱作DS(Differentiated Services)。ToS的定義問題,使得支援性比較低,實際網路上都是用DS,因此在IPv6階段,ToS已經不支援了。後面還有其他RFC文件,提到再帶出。

【圖解-IPv4 Header封包示意圖】


【圖解-IPv6 Header封包示意圖】


【圖解-QoS欄位】


【欄位說明】

IP Precedence(RFC-1112) – 值越高,優先權越高
111
Network Control
110
Internetwork Control
101
Critic/ECP
100
Flash Override
011
Flash
010
Immediate
001
Priority
000
Routine

ToS(RFC-1349) – 同上,值越大,優先權越高。這些值的Or組合是沒有意義的,他們個別獨立。
1000
Minimize Delay
0100
Maximize Throughput
0010
Maximize Reliability
0001
Minimize Monetary Cost
0000
Normal Service(Default)

Differentiated Services Code Point(DSCP, RFC-2474)
細分的話還可以分為2個欄位
Class Selector(3)
Drop Precedence(3)

000 000
Class 0
Best effort
001 000
Class 1
Class 1
001 010
Class 1, AF11
001 100
Class 1, AF12
001 110
Class 1, AF13
010 000
Class 2
Class 2
010 010
Class 2, AF21
010 100
Class 2, AF22
010 110
Class 2, AF23
011 000
Class 3
Class 3
011 010
Class 3, AF31
011 100
Class 3, AF32
011 110
Class 3, AF33
100 000
Class 4
Class 4
100 010
Class 4, AF41
100 100
Class 4, AF42
100 110
Class 4, AF43
101 000
Class 5
Express Forwarding
101 110
Class 5, EF
110 000
Class 6
Stays the same
111 000
Class 7
Stays the same
























  • Class可以想像被定義分配不同的帶寬區域,假設#1-50%, #2-20%, #3-20%, #4-10%,通常class越大,其處理優先權越大,有越大的優先排程,和ToS的IP Precedence相對應。
  • AFxy-Assured Forwarding (x=class, y=drop precedence, RFC2597),被丟棄的機率AFx1<AFx2<AFx3
  • Best effort-此時latency就不是考量因素
  • Expedited Forwarding (RFC-3246)-具有low delay, low loss and low jitter特性,適用於voice, video and other realtime services。通常會嚴格限流,否則overload會影響其他包,典型網路EF traffic通常不大於30%。
  • Class6/7通常只能在確認後才會發送,表示這個服務是保證可用的。一般用在routing traffic。
  • Explicit Congestion Notification(ECN, RFC-3246, RFC-3168, 目前未使用)


0 意見:

搜尋此網誌

總網頁瀏覽量

TK呱呱

Made with by TK