區分服務

區分服務（Differentiated services，或簡寫：DiffServ）是一種電腦網絡架構，它指定了一種現在IP網路上對網路流量進行分類、提供服務質量（QoS）管理的機制。例如可以用於為語音或流媒體等關鍵網路流量提供低延遲轉發，同時為普通網頁流量或文件傳輸等非關鍵服務提供盡力而為的轉發。

DiffServ在IPv6包頭使用6比特位長的區分服務欄位（DS欄位）配合區分服務代碼（differentiated services code point，DSCP）來進行數據包分類，而IPv4標頭中DS欄位與ECN（Explicit Congestion Notification）欄位合併取代了原有的TOS（Type of service）欄位。

## 背景

現代數據網路承載著許多不同類型的服務，包括語言流、影片流、音樂流媒體、網頁、電子郵件等。許多允許這些服務共存的提議性QoS機制，既複雜又無法擴展，以滿足公共網際網路的需求。1998年12月，IETF將IPv4標頭的TOS欄位和IP優先級（IP precedence）欄位合併為新的DS欄位，之後還拆分了低6比特位給ECN使用，DS只使用高6比特位。在IPv6標頭中，DS功能占用流量分類欄位（Traffic Class）的高6比特位。在DS欄位中，8個類選擇器值向後兼容以前IPv4的IP優先級欄位。

如今，DiffServ機制已在很大程度上取到了TOS和其他第3層QoS機制，例如綜合服務（IntServ），成為現時路由器提供QoS的主要架構。

## 流量管理機制

區分服務是一種粗粒度、基於類別的流量管理機制；相比之下，綜合服務是細粒度，基於流的機制。區分服務依靠一些機制對數據包進行分類並將其標記為屬於特定類別。支持區分服務的路由器會實施每跳行為（PHB），該行為定義了與某類流量相關數據包轉發屬性，可以定義不同的PHB提供低丟失或低延遲服務等。

不同於其他基於特定網路流的網路流量控制，區分服務基於數據包的分類，將每個數據包放入到有限數量的流量類別中，然後網路上的每個路由器都配置了根據其類別來區分流量，根據類別的不同進行不同的流量轉發管理，從而確保優先處理網路上優先級較高的流量。區分服務的前提是，邊緣路由器可以在網路邊緣執行數據包分類和監管等複雜功能；由於核心路由器不需要執行分類和監管，因此其功能可以保持簡單，只需要根據數據包的標記，使用調度策略和隊列管理策略組合，對數據包轉發應用PHB特性。

一組實施管理通用定義的區分服務策略的路由器，成為一個區分服務域（DiffServ domain）。

雖然區分服務確實推薦了一組標準化的流量類別，但區分服務架構未包含對哪些類型的流量應優先處理的預定判斷。區分服務僅提供了一個允許分類和差異化處理的框架。下面提到的標準流量類別有助於簡化不同網路和不同供應商設備之間的互操作性。

## 分類與標記

進入區分服務域的網路流量會被分類和調節，流量分類器會檢查傳入數據包的許多不同參數來決定，例如源地址、目標地址或流量類型，給各個數據包分配特定的流量類別。流量分類器可以遵守收到的數據包中的任何區分服務標記，也可以忽略或者覆蓋掉。為了嚴格控制給定類別中的流量類別，網路運營商可以選擇不遵守進入區分服務域入口處的標記。每個類別中的流量可能會受到進一步的調節，方法是將流量置於速率限制器、流量監管器或整形器下。

每跳行為由IP標頭的DS、ECN欄位確定，其中DSCP值占據6個比特位。理論上，有64個可用的DSCP值，網路最多可以劃分64個不同的流量類別。區分服務的RFC建議但不要求使用某些編碼，這給網路營運商在定義流量類別方面提供了極大的靈活性。然後，在實踐上，大多數網路使用以下通常定義的每跳行為：

- 默認轉發（Default Forwarding，DF）PHB——通常是盡力而為的流量
- 加急轉發（Expedited Forwarding，EF）PHB——致力於低丟失、低延遲流量
- 保證轉發（Assured Forwarding，AF）PHB——保證在規定條件下流量交付
- 類選擇器（Class Selector）PHB——與IP優先級欄位保持向後兼容

### 默認轉發

默認轉發（DF）是唯一必需的行為。本質上，任何不滿足任何其他已定義類別要求的流量都會使用DF。通常，DF 具有盡力而為的轉發特性。DF的建議DSCP值為0。

### 加急轉發

IETF在 RFC 3246 定義了加急轉發（EF）行為，EF具有低延遲、低丟失、低抖動的特點，這些特點適合於語音、影片和其他實時通信。EF流量通常會被賦予高於所有其他流量類的優先級隊列。由於EF流量過載會導致排隊延遲並影響類別內的抖動和延遲容差，因此可以對EF流量應用准入控制、流量監管和其他機制。EF的建議DSCP值為46（2）。

### 呼叫准入

IETF在 RFC 5865 定義了呼叫准入（Voice Admit，VA）行為。VA和EF具有類似的特徵，但網路還會使用呼叫准入控制（CAC）來控制接納流量。VA的建議DSCP值為44（2）。

### 保證轉發

IETF 在 RFC 2597 和 RFC 3260 中定義了保證轉發（AF）行為。只要流量不超過某個訂閱速率，保證轉發允許運營商提供轉發交付保證。如果發生擁塞，超過訂閱速率的流量面臨更高的丟棄機率。

AF行為定義了四個單獨的AF類，同一類中的所有流量具有相同的優先級，然後每個類再分為高、中、低三個優先級（優先級越高，則越最先丟棄）。類與優先級組合出由AF11到AF43共12個獨立的DSCP值，如下表。

分類

丟棄機率｜Class 1｜Class 2｜Class 3｜Class 4

低｜AF11：10（2）｜AF21：18（2）｜AF31：26（2）｜AF41：34（2）

中｜AF12：12（2）｜AF22：20（2）｜AF32：28（2）｜AF42：36（2）

高｜AF13：14（2）｜AF23：22（2）｜AF33：30（2）｜AF43：38（2）

不同類別的流量之間定義了一些優先級和比例公平性度量。如果類別之間發生擁塞，則較高類別的流量將獲得優先權。與使用嚴格的優先級排隊相比，更可能使用更平衡的隊列服務演算法，例如公平隊列或加權公平隊列。如果某個類別內發生擁塞，則首先丟棄具有較高丟棄優先級的數據包。為了防止與尾部丟棄相關的問題，通常使用更複雜的丟棄選擇算法，例如隨機早期檢測。

### 類選擇器

服務類型｜DSCP名｜DSCP值｜IP優先級｜應用例子

標準｜CS0（DF）｜0（2）｜0（2）

低優先級數據｜CS1｜8（2）｜1（2）｜文件傳輸（FTP、SMB）

網路營運管理與維護（OAM）｜CS2｜16（2）｜2（2）｜SNMP、SSH、Ping、Telnet、syslog

廣播影片｜CS3｜24（2）｜3（2）｜、RTSP廣播電視、實時音訊和影片流、閉路電視、影片點播

實時互動｜CS4｜32（2）｜4（2）｜遊戲、低優先級影片會議

信令｜CS5｜40（2）｜5（2）｜點對點（SIP、H.323、H.248）、NTP

網路控制｜CS6｜48（2）｜6（2）｜路由協議（OSPF、BGP、IS-IS、RIP）

預留未來使用｜CS7｜56（2）｜7（2）

在區分服務出現之前，IPv4網路已經使用IPv4標頭中的TOS欄位的IP優先級欄位來標記優先級流量，但TOS欄位、IP優先度並未得到廣泛使用。IETF最終同意將TOS欄位（8比特位）重新用作區分服務的DS欄位，之後進一步拆分為DS部分和ECN部分，為了和使用IP優先級的網路設備保持向後兼容性，區分服務定義了類選擇器行為。

類選擇器的代碼點採用二進位式「XXX000」，前三位為IP優先度位，每個IP優先級值可都可以映射到區分服務的類別中，優先度為0則映射到CS0，優先度為1則映射到CS1，如此類推。如果從使用IP優先級標記的數據包進入到區分服務域感知路由器，區分服務域的路由器仍然可以將編碼理解為類選擇器代碼點，來處理流量分類。

RFC 4594 中給出了使用類選擇器代碼點的具體建議。

### 配置指引

RFC 4594 針對代碼點的使用和配置提供了詳細而具體的建議。其他RFC（例如： RFC 8622）也更新了這些建議。

服務類別｜DSCP名稱｜DSCP值｜在區分服務邊界的調節方式｜PHB定義自｜隊列方式｜主動隊列管理

網路控制｜CS6｜48｜RFC 4594，3.1章，用於對等點間交換控制網路資訊必須使用CS6｜RFC 2474｜速率｜需要

電信通話｜EF｜46｜具有突發大小控制的單一速率策略｜RFC 3246｜優先級｜不需要

信令｜CS5｜40｜具有突發大小控制的單一速率策略｜RFC 2474｜速率｜不需要

多媒體會議｜AF41、AF42、AF43｜34、36、38｜雙速率三色標記器（RFC 2698）｜RFC 2597｜速率｜需要，基於每個DSCP

實時互動｜CS4｜32｜具有突發大小控制的單一速率策略｜RFC 2474｜速率｜不需要

多媒體流｜AF31、AF32、AF33｜26、28、30｜雙速率三色標記器（RFC 2698）｜RFC 2597｜速率｜需要，基於每個DSCP

廣播影片｜CS3｜24｜具有突發大小控制的單一速率策略｜RFC 2474｜速率｜不需要

低延遲數據｜AF21、AF22、AF23｜18、20、22｜單速率三色標記器（RFC 2697）｜RFC 2597｜速率｜需要，基於每個DSCP

網路營運管理與維護｜CS2｜16｜具有突發大小控制的單一速率策略｜RFC 2474｜速率｜需要

高通量數據｜AF11、AF12、AF13｜10、12、14｜雙速率三色標記器（RFC 2698）｜RFC 2597｜速率｜需要，基於每個DSCP

低效率流量 低優先流量｜LE（CS1）｜1｜不適用｜RFC 8622｜優先級｜需要

標準｜DF｜0｜不適用｜RFC 2474｜速率｜需要

## 設計注意事項

在區分服務下，所有流量的監管和分類都在區分服務域之間的邊界完成的，這意味著網際網路的核心中，路由器不會受到流量轉發收付或者執行協議的複雜性的阻礙。也就是說，與綜合服務（IntServ）相比，區分服務不需要提前設置或者預留，也不需要為每個流進行耗時的端對端協商。

各個路由器如何處理DS欄位的細節是特定於配置的，因此很難預測端到端的轉發行為。如果數據包到達目的地之前需要跨越多個區分服務域的話，情況會變得更加複雜。從商業角度來看，這意味著不可能向最終使用者出售不同流量等級的端到端連接，因為一個網路提供商提供的高優先級轉發在另一個網路提供商並不對應同樣的服務級別。區分服務或者任何基於IP的QoS標記都不能確保服務質量或者指定的服務級別協議。通過標記數據包，發送者表明它希望將這個數據包視為特定服務，但這並不保證一定會發生這種情況。轉發路徑上的所有網路服務提供商及其路由器都應確保其策略能以適當的方式處理數據包。

## 帶寬代理

區分服務框架下，帶寬代理是以一種了解組織優先級和策略，並根據這些策略分配帶寬的代理。為了實現跨不同域的端對端資源分配，管理域的帶寬代理管必須與其相鄰的對等體進行通信，從而允許根據純雙邊協議構建端對端的連接服務。

## 與區分服務相關的RFC

- — Definition of the differentiated services field (DS field) in the IPv4 and IPv6 headers.
- — An architecture for differentiated services.
- — Assured forwarding PHB group.
- — Differentiated services and tunnels.
- — Definition of differentiated services per-domain behaviors and rules for their specification.
- — Per hop behavior identification codes. (Obsoletes ).
- — An expedited forwarding PHB. (Obsoletes .)
- — Supplemental information for the new definition of the EF PHB (expedited forwarding per-hop behavior).
- — New Terminology and Clarifications for Diffserv. (Updates , and .)
- — Configuration Guidelines for DiffServ Service Classes.
- — A differentiated services code point (DSCP) for capacity-admitted traffic. (Updates and .)
- — A Lower-Effort Per-Hop Behavior (LE PHB) for Differentiated Services. (Updates and , obsoletes .)

### DiffServ管理的RFC

- — Management information base for the differentiated services architecture.
- — An informal management model for differentiated services routers.
- — Differentiated services quality of service policy information base.