1. 程式人生 > >ToS、CoS和DSCP介紹

ToS、CoS和DSCP介紹

0x01 ToS(Type of Service)

IP Precedence 和 ToS(Type of Service)都位於IP頭中,共佔一個位元組,8bits。

關於這幾個位元組的作用被不同的標準定義過,分別是RFC791,RFC1122,RFC1349。RFC1349廢除了之前兩個RFC的定義,現在大多裝置都使用RFC1349中的定義,所以對於tos,有如下版本,分別說明如下;

下面是RFC1349中的原話:

在過去,對ToS領域的規模存在一些混淆。RFC791將其定義為三位欄位,包括上圖中的位3-5。它包括MBZ欄位中的第6位。 RFC1122在ToS欄位中添加了第6位和第7位,消除了MBZ欄位。 本備忘錄將ToS欄位重新定義為上圖中顯示的四位。

1.1 RFC1349中的ToS

RFC1349中定義的ToS格式如下:

Bits Meaning
7-5 IP Precedence:
4 1 = Low Delay; 0 = Normal Delay
3 1 = High Throughput; 0 = Normal Throughput
2 1 = High Reliability; 0 = Normal Reliability
1 1 = Minimise monetary cost (RFC 1349)
0 Must be 0

其中,IP Precedence:

client view value
111 Network Control
110 Internetwork Control
101 Critic/ECP
100 Flash Override
011 Flash
010 Immediate
001 Priority
000 Routine

1.2 RFC791中的IP Precedence和ToS

RFC791中定義的ToS格式如下:

Bits Meaning
0-2 IP Precedence
3 Delay (0 = Normal Delay, 1 = Low Delay)
4 Throughput (0 = Normal Throughput, 1 = High Throughput)
5 Reliability (0 = Normal Reliability, 1 = High Reliability)
6-7 Reserved for Future Use.

其中,IP Precedence值同RFC1349。

1.3 RFC1122中的IP Precedence和ToS

“IP PRECEDENCE 為前3bits(0-2),ToS為後5bits(3-7),無保留位MBZ。”

IP報頭中的“服務型別”位元組分為兩部分:優先順序欄位(前3位),以及通常稱為“服務型別”或“TOS”的欄位(後5位)。

0x02 DSCP

DSCP差分服務程式碼點(Differentiated Services Code Point),IETF於1998年12月釋出了Diff-Serv(Differentiated Service)的QoS分類標準。它在每個資料包IP頭部的服務類別ToS標識位元組中,利用已使用的6位元和未使用的2位元,通過編碼值來區分優先順序。

2.1 RFC2474中的DSCP

DSCP使用6位元,最後2位備用,它重新命名了IPv4報頭中ToS使用的那1位元組和IPv6報頭中資料類(Traffic Class)那1位元組,新的名字稱為DS欄位(Differentiated Services Field)。該欄位的作用沒有變,仍然被QoS工具用來標記資料。不同的是IPv4使用3位元,而DSCP使用6位元。

RFC2474定義最高3位元為級別/類別選擇程式碼(Class Selector Codepoints,CS),其意義和IPv4報頭中IP優先順序的定義是相同的,CS0-CS7的級別相等於IP優先順序是我0-7。但它並沒有定義第3到第5位元的具體含義以及使用規則。DSCP使用6位元,可以定義64個優先順序(0-63)。

2.2 轉發分類

PC、路由器都有標記、識別DSCP值並做相應處理的能力。在實施DiffServ的網路中,每一個轉發裝置都會根據報文的DSCP欄位執行相應的轉發行為。

主要包括以下三類轉發行為:

2.2.1 EF(Expedited Forwarding,無阻礙轉發)

EF(Expedited Forwarding,無阻礙轉發)由RFC2598定義,DSCP值為46(101110)。EF服務適用於低丟包率,低延遲,低抖動及保證頻寬的業務,這類業務一般執行一個相對穩定的速率,需要在轉發裝置中進行快速轉發,如VOIP。

2.2.2 AF(Assured Forwarding,保證轉發

AF(Assured Forwarding,保證轉發)由RFC2597對CS1~CS4進行進一步定義。採用此轉發行為的業務在沒有超過最大允許頻寬時能夠確保轉發,一旦超出最大允許頻寬,則將轉發行為分為4類,每類又可劃分為3個不同的丟棄優先順序,其中每一個確保轉發類都被分配了不同的頻寬資源。

它使用第3和第4位元做丟棄優先順序標誌。01-低丟棄優先順序;10-中丟棄優先順序;11-高丟棄優先順序。這樣,在同一類資料中,又根據被丟棄的可能性劃分出3檔。

AF的定義為資料分類提供了方便,比如,運營商可以向用戶提供4中服務協約(SLA):白金,金,銀,銅,併為每一種服務的資料分配一定的頻寬。當然,不同服務的收費標準也是不同的。

0x03 CoS(IEEE802.1p優先順序)

它是位於二層帶標籤的乙太網幀的CoS欄位,和VLAN ID在一起使用,在位元組中的位置如下:

P2 P1 P0 CU V11 V10 V9 V8 V7 V6 V5 V4 V3 v2 V2 V1

其中:

IEEE802.1p優先順序(P2-P0):3bit 未用(CU):1bit VLAN ID(V11-V0):12bit

IEEE802.1p優先順序值有8個(0-7),0優先順序最低,7優先順序最高。

報文分為三種情況:

  • 帶優先順序和VLAN ID的標籤報文,其優先順序值是自身帶的值;
  • 只帶優先順序的標籤報文,此時VLAN ID為0,其優先順序值是自身帶的值;
  • 未帶標籤的報文,一般預設的優先順序值為0,也可以進行更改指定新的優先順序。

0x04 總結

QoS範圍太大,涉及到入口資料流的標記和分類及速率限制,網路骨幹的擁塞避免和擁塞管理,網路出口的佇列排程機制等等。嚴格的說,Cos與Tos只是QoS的一種標記機制。

Cos是二層ISL或者802.1Q資料幀的優先順序標記,3個bit,範圍0-7。

Tos是三層資料包的服務型別標記,也是3個bit,範圍0-7,同樣可當作優先順序標記。另外5個實際指示Delay,Throughput,Reliability等特性的bit位一般沒有使用。

現在為了更好的控制資料流分類,使用DSCP(Differential Services Code Point),擴充套件了Tos的後三個bit,因此,範圍從0-63。

在實施QoS策略時,Cos與ToS或DSCP之間通常要做對映機制。

參考

轉載請註明出處