王 彥
[摘要]介紹DiffServ模型的體系結構,并重點研究DiffServ實現的核心機制擁塞管理機制。在實際設計隊列調度算法時,應根據網絡中不同的QoS要求,平衡影響調度算法設計的各種因素,進行合理的選擇。
[關鍵詞]服務質量區分服務擁塞管理隊列調度
中圖分類號:TP3文獻標識碼:A文章編號:1671—7597(2009)0210047-01
一、概述
QoS是指網絡通信過程中,允許用戶業務在丟包率、延遲和帶寬等方面獲得可預期的服務水平。更簡單地說:QoS就是針對各種不同的需求,提供不同服務質量的網絡服務。這就要求QoS機制能夠:在網絡輕載運行時,通過某種測量和監管機制,控制不同業務享受不同服務水平;在網絡擁塞時,通過采取某種調度策略,保證重要業務仍然能獲得持續穩定的服務保障。
IP QoS的體系結構包括綜合服務模型(IntServ)和區分服務模型(DiffServ)兩種。其中,DiffServ具有良好的可擴展性,適合于在大型主干網上提供QoS服務。而擁塞管理機制是保證DiffServ實現的核心機制之一,是解決多個業務競爭共享資源問題的有效手段。
二、DiffServ模型體系結構
DiffServ采用聚集傳輸控制模式,服務的對象是流聚集而不是單流,單流信息只在域邊界保存和處理。
其具體的過程是:首先,在網絡的邊緣進行不同業務的分類,并打上不同的DSCP值。分類的依據可以是報文攜帶的四層、三層或二層的信息。如報文的源IP地址、目的IP地址、源MAC地址、目的MAC地址,TCP或UDP端口號等。然后,在網絡的內部,根據DSCP值在每一跳上進行相應的轉發處理,比如。對實時業務提供快速轉發處理,對普通業務提供盡力而為轉發處理。
三、擁塞管理機制
擁塞管理是指網絡在發生擁塞時,如何進行管理和控制,包括隊列的創建、報文的分類、將報文送入不同的隊列、隊列調度等。在一個接口沒有發生擁塞的時候,報文在到達接口后立即就被發送出去,但是在報文到達的速度超過接口發送報文的速度時,接口就發生了擁塞。擁塞管理就是對這些報文進行分類,送入不同的隊列,然后用隊列調度對不同優先級的報文進行分別處理,優先級高的報文會得到優先處理。常用的隊列調度算法有FIFO、PQ,WFQ,DWRR等,下面分別對這幾種典型的算法進行分析。
(一)先進先出隊列(Fi rst In Fi rst Out Gueuing,FIFO)調度算法
FIFO不對報文進行分類,當報文進入接口的速度大于接口能發送的速度時,FIFO按報文到達接口的先后順序讓報文進入隊列,同時,在隊列的出口讓報文按進隊的順序出隊,即先進的報文先出隊,后進的報文后出隊。
(二)優先級隊列(Priority Oueuing,PQ)調度算法
PQ的4個隊列分別為高優先隊列(high)、中優先隊列(medium)、正常優先隊列(normal)和低優先隊列(low)。發送報文時按照等級順序依次發送,即先發送完所有high隊列中的報文,再發送所有medium隊列中的報文,然后再發送所有normal隊列中的報文,最后才發送10w隊列中的報文。這樣較高優先級隊列的報文將會得到優先發送,并且較低優先級的報文將會在發生擁塞時被較高優先級的報文搶先,使得關鍵業務(如視頻業務)的報文能夠得到優先處理。PQ能保證高優先級的業務,但是會出現低優先級業務得不到服務的情況。
(三)公平隊列(Fai r Oueuing,F0)調度算法
FQ的基本原理是:分組在進入網絡時被分類,每個隊列對應一種流,發送報文時循環掃描隊列,從每個隊列取出一個分組發送。這種調度算法的問題是:大分組的隊列比小分組的隊列獲得較多的帶寬,而且不具備優先級的調度。但是在某些情況下,某些隊列需要更高的優先級,例如視頻流類型的隊列應該比文件傳輸類型的隊列具有更高的優先級,以獲得更大的帶寬和更小的延遲。
(四)加權公平隊列(Weighted Fai r Queuing,WFQ)調度算法
FFQ是對FQ的一種改進的隊列調度算法。它通過為每個隊列施加不同的權重,來實現不同的帶寬和時間約束,提高相應流的服務質量。WFQ可以保證相同優先級業務間公平,不同優先級業務間加權。它在保證公平的基礎上又體現了權值,而權值的大小依賴于IP報文頭中攜帶的IP優先級。WFQ按照流的優先級來分配每個流應占出口的帶寬。優先級的數值越小,所得的帶寬越少。優先級的數值越大,所得的帶寬越多。
(五)加權輪詢隊列(Weighted Round Robin,WRR)調度算法
WRR在隊列之間輪流調度,保證每個隊列都能得到一定的服務時間。它可為每個隊列配置一個加權值(依次為w3、w2、w1、Wo),加權值表示獲取資源的比重。如一個100M的端口,配置它的WRR隊列調度算法的加權值為50、30、10、10,這樣可以保證最低優先級隊列至少獲得10Mbps的帶寬,避免了采用PQ調度時低優先級隊列中的報文可能長時間得不到服務的缺點。WRR還有一個優點是:雖然多個隊列的調度是輪詢進行的,但對每個隊列不是固定地分配服務時間片,也就是說,如果某個隊列為空,那么馬上換到下一個隊列調度,這樣帶寬資源可以得到充分的利用。不過當分組的大小不相同時,WRR會對分組較小的隊列帶來不公平性。
(六)差值加權輪詢隊列(Defioit Weighted Round Robin,DWRR)調度算法
為解決WRR不能支持長度不同的包而出現帶寬分配不公平以及計算復雜的缺點,提出了DWRR調度算法,該算法給每一個隊列分配的權值不是基于分組的個數,而是基于比特數。它結合了WFQ和WRR的優點,能夠在輸出端口按隊列的權值為流提供相應的帶寬分配,而且能夠支持長度變化的流,特別是突發流,并且該算法實現較簡單。
四、結束語
IP網絡的QoS管理是針對不同的需求提供不同的服務質量。上面提到的幾個隊列調度算法有著各自的優點和缺點,孰優孰劣并不能一概而論,而應該根據網絡中不同的QoS要求,平衡影響調度算法設計的各種因素,進行合理的選擇。如當要求算法復雜度低,不用對數據流區別對待,以便于高速處理時,可以選擇FIFO算法,但這樣就不能對可靠性和傳輸時延提供保證;當需要為某業務提供絕對保障時,可以選擇PQ算法,但低優先級業務可能得不到服務;當需要公平分配帶寬,并且對某些應用要求提供較小的時延時,可以選擇WFQ算法,但是它比較復雜;既要公平分配帶寬,又要算法相對簡單,可以選擇DWRR算法。隨著網絡技術的發展,相信會不斷涌現更多算法,從而更好地滿足不同網絡條件下對不同業務需求的支持。