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