區分服務(Differentiated services,或簡寫:DiffServ)是一種電腦網絡架構,它指定了一種現在IP網絡上對網絡流量進行分類、管理及提供服務質素(QoS)的機制。例如可以用於為語音或串流媒體等關鍵網絡流量提供低延遲轉發,同時為普通網頁流量或檔案傳輸等非關鍵服務提供盡力而為的轉發。
DiffServ在IPv6包頭使用6位區分服務欄位(DS欄位)使用區分服務代碼(differentiated services code point,DSCP)來進行封包分類,而IPv4檔頭中DS欄位與ECN(Explicit Congestion Notification)欄位合併取代了原有的TOS(Type of service)欄位。[rfc 1]
背景
現代數據網絡承載着許多不同類型的服務,包括語言流、影片流、音樂串流媒體、網頁、電子郵件等。許多允許這些服務共存的提議QoS機制,肌膚咋又無法擴充,以滿足公共互聯網的需求。1998年12月,IETF將IPv4檔頭的TOS欄位和IP優先級(IP precedence)欄位合併為新的DS欄位,之後還拆分了低6位元位給ECN使用,DS只使用高6位元位。[rfc 2]在IPv6檔頭中,DS功能佔用流量分類欄位(Traffic Class)的高6位元位。[rfc 2][rfc 3]在DS欄位中,8個類選擇器值向下相容以前IPv4的IP優先級欄位。
如今,DiffServ機制已在很大程度上取到了TOS和其他第3層QoS機制,例如綜合服務(IntServ),成為現時路由器提供QoS的主要架構。
流量管理機制
區分服務是一種粗粒度、類別為基別的流量管理機制;相比之下,綜合服務是細粒度,基於流的機制。區分服務依靠一些機制對封包進行分類並將其標記為屬於特定類別。支援區分服務的路由器會實施每跳行為(PHB),該行為定義了與某類流量相關封包轉發屬性,可以定義不同的PHB提供低遺失或低延遲服務等。
不同於其他基於特定網絡流的網絡流量控制,區分服務基於流量的分類,將每個封包放入到有限數量的流量類別中,然後網絡上的每個路由器都組態了根據其類別來區分流量,根據類別的不同進行不同的流量轉發管理,從而確保優先處理網絡上優先級較高的流量。區分服務的前提是,邊緣路由器可以在網絡邊緣執行封包分類和監管等複雜功能,由於核心路由器不需要執行分類和監管,因此其功能可以保持簡單,只需要根據封包的標記,使用排程策略和佇列管理策略組合,對封包轉發應用PHB行為。
一組實施通用管理定義的區分服務策略的路由器,成為一個區分服務域(DiffServ domain)。[1]
雖然區分服務確實推薦了一組標準化的流量類別,但區分服務架構未包含對那些類型的流量應優先處理的預定判斷。區分服務僅提供了一個允許分類和差異化處理的框架。下面提到的標準流量類別有助於簡化不同網絡和不同供應商裝置之間的互操作性。
分類與標記
進入區分服務域的網絡流量會被分類和調節,流量分類器會檢查傳入封包的許多不同參數來決定,例如源地址、目標地址或流量類型,給各個封包分配特定的流量類別。流量分類器可以遵守收到的封包中的任何區分服務標記,也可以忽略或者覆蓋掉。為了嚴格控制給定類別中的流量類別,網絡營辦商可以選擇不遵守進入區分服務域入口處的標記。每個類別中的流量可能會收到進一步的調節,方法是將流量置於速率限制器、流量監管器或整形器下。[rfc 4]
每條行為由IP檔頭的DS、ECN欄位確定,其中DS性價比佔據6個位元位。理論上,有64個可用的DS性價比,網絡最多可以劃分64個不同的流量類別。區分服務的RFC建議但不要求使用某些編碼,這給網絡營運商在定義流量類別方面提供了極大的靈活性。然後,在實踐上,大多數網絡使用以下通常定義的每跳行為:
- 預設轉發(Default Forwarding,DF)PHB——通常是盡力而為的流量
- 加急轉發(Expedited Forwarding,EF)PHB——致力於低遺失、低延遲流量
- 保證轉發(Assured Forwarding,AF)PHB——保證在規定條件下流量交付
- 類選擇器(Class Selector)PHB——與IP優先級欄位保持向下相容
預設轉發
預設轉發(DF)是唯一必需的行為。本質上,任何不滿足任何其他已定義類別要求的流量都會使用DF。通常,DF 具有盡力而為的轉發特性。DF的建議DS性價比為0。
加急轉發
IETF在 RFC 3246 定義了加急轉發(EF)行為,EF具有低延遲、低遺失、低抖動的特點,這些特點適合於語音、影片和其他即時通訊。EF流量通常會被賦予高於所有其他流量類的優先級佇列。由於EF流量過載會導致排隊延遲並影響類別內的抖動和延遲容差,因此可以對EF流量應用准入控制、流量監管和其他機制。EF的建議DS性價比為46(101110(2)、2E(16))。
呼叫准入
IETF在 RFC 5865 定義了呼叫准入(Voice Admit,VA)行為。VA和EF具有類似的特定,但網絡還會呼叫准入控制(CAC)來控制接納流量。VA的建議DS性價比為44(101100(2)、2C(16))。
保證轉發
IETF 在 RFC 2597 和 RFC 3260 中定義了保證轉發(AF)行為。只要流量不超過某個訂閱速率,保證轉發允許運營商提供轉發交付保證。如果發生擁塞,超過訂閱速率的流量面臨更高的丟棄概率。
AF行為定義了四個單獨的AF類,同一類中的所有流量具有相同的優先級,然後每個類再分為高、中、低三個優先級(優先級越高,則越最先丟棄)。類與優先級組合出由AF11到AF43共12個獨立的DS性價比,如下表。
分類 | ||||
---|---|---|---|---|
丟棄概率 | Class 1 | Class 2 | Class 3 | Class 4 |
低 | AF11:10(001010(2)) | AF21:18(010010(2)) | AF31:26(011010(2)) | AF41:34(100010(2)) |
中 | AF12:12(001100(2)) | AF22:20(010100(2)) | AF32:28(010010(2)) | AF42:36(100100(2)) |
高 | AF13:14(001110(2)) | AF23:22(010110(2)) | AF33:30(011110(2)) | AF43:38(100110(2)) |
不同類別的流量之間定義了一些優先級和比例公平性度量。如果類別之間發生擁塞,則較高類別的流量將獲得優先權。與使用嚴格的優先級排隊相比,更可能使用更平衡的佇列服務演算法,例如公平佇列或加權公平佇列加權公平排隊。如果某個類別內發生擁塞,則首先丟棄具有較高丟棄優先級的封包。為了防止與尾部丟棄相關的問題,通常使用更複雜的丟棄選擇演算法,例如隨機早期檢測。
類選擇器
服務類型 | DSCP名 | DS性價比 | IP優先級 | 應用例子 |
---|---|---|---|---|
標準 | CS0(DF) | 0(000000(2)) | 0(000(2)) | |
低優先級數據 | CS1 | 8(001000(2)) | 1(001(2)) | 檔案傳輸(FTP、SMB) |
網絡營運管理與維護(OAM) | CS2 | 16(010000(2)) | 2(010(2)) | SNMP、SSH、Ping、Telnet、syslog |
廣播影片 | CS3 | 24(011000(2)) | 3(011(2)) | |
即時互動 | CS4 | 32(100000(2)) | 4(100(2)) | 遊戲、低優先級視像會議 |
信令 | CS5 | 40(101000(2)) | 5(101(2)) | 對等(SIP、H.323、H.248)、NTP |
網絡控制 | CS6 | 48(110000(2)) | 6(110(2)) | 路由協定(OSPF、BGP、IS-IS、RIP) |
預留未來使用 | CS7 | 56(111000(2)) | 7(111(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名稱 | DS性價比 | 在區分服務邊界的調節方式 | 每條行為 | 佇列方式 | ACM |
---|---|---|---|---|---|---|
網絡控制 | 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 | 1 | 不適用 | RFC 8622 | 優先級 | 需要 |
標準 | DF | 0 | 不適用 | RFC 2474 | 速率 | 需要 |
設計注意事項
在區分服務下,所有流量的監管和分類都在區分服務域之間的邊界完成的,這意味着互聯網的核心中,路由器不會受到流量轉發收付或者執行協定的複雜性的阻礙。也就是說,與綜合服務(IntServ)相比,區分服務不需要提前設置或者預留,也不需要為每個留進行耗時的端對端協商。
各個路由器如何處理DS欄位的細節是特定於組態的,因此很難預測端到端的轉發行為。如果封包到達目的地之前需要跨越多個區分服務域的話,情況會變得更加複雜。從商業角度來看,這意味着不可能向終端使用者出售不同流量等級的端到端連接,因為一個網絡提供商提供的高優先級轉發在另一個網絡提供商並不對應同樣的服務級別。區分服務或者任何基於IP的QoS標記都不能確保服務質素或者指定的服務級別協定。通過標記封包,傳送者表明它希望將這個封包視為特定服務,但這並不保證一定會發生這種情況。轉發路徑上的所有網絡服務提供商及其路由器都應確保其策略能以適當的方式處理封包。
頻寬代理
區分服務架構下,頻寬代理是以一種了解組織優先級和策略,並根據這些策略分配頻寬的代理。[rfc 6]為了實現跨不同域的端對端資源分配,管理域的頻寬代理管必選與其相鄰的對等體進行通訊,從而允許根據純雙邊協定構建端對端的連接服務。
與區分服務相關的RFC
參考資料
- RFC
- ^ Grossman, Daniel B. New Terminology and Clarifications for Diffserv (RFC 3260). 2002-04-01 [2024-11-14].
- ^ 2.0 2.1 Baker, Fred; Black, David L.; Nichols, Kathleen; Blake, Steven L. Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers. 1998-12 [2024-11-17].
- ^ Floyd, Sally; Ramakrishnan, K. K.; Black, David L. The Addition of Explicit Congestion Notification (ECN) to IP. 2001-09 [2024-11-17].
- ^ Weiss, Walter; Heinanen, Juha; Baker, Fred; Wroclawski, John T. Assured Forwarding PHB Group. 1999-06 [2024-11-17].
- ^ Baker, Fred; Babiarz, Jozef; Chan, Kwok Ho. Configuration Guidelines for DiffServ Service Classes. 2006-08 [2024-11-17].
- ^ Zhang, Lixia; Jacobson, Van; Nichols, Kathleen. A Two-bit Differentiated Services Architecture for the Internet. 1999-07 [2024-11-17].
- 其他
- ^ S3700HI Ethernet Switches Configuration Guide - QoS, Huawei: 7, [2016-10-07],
A DiffServ domain is composed of a group of interconnected DiffServ nodes that use the same service policy and PHBs.