摘 要: 區(qū)分服務(wù)(DiffServ)體系是未來IP QoS研究的主要發(fā)展方向,在區(qū)分服務(wù)的體系下,隊列調(diào)度是實現(xiàn)IP QoS的核心技術(shù)。在深入研究區(qū)分服務(wù)體系下的基本分組調(diào)度算法優(yōu)缺點的基礎(chǔ)上,提出一種改進算法,以隊列分組的延遲特性,保證實時業(yè)務(wù)的實時特性。對改進算法進行了仿真,在多約束下,對性能進行了評價。
關(guān)鍵詞: 服務(wù)質(zhì)量;區(qū)分服務(wù);調(diào)度算法;實時特性
隨著Internet網(wǎng)絡(luò)的迅猛發(fā)展,促使了各種基于Internet應(yīng)用的數(shù)量呈指數(shù)級增長,業(yè)務(wù)種類同時也發(fā)生了很大的變化,已經(jīng)從單一數(shù)據(jù)向集成數(shù)據(jù)、視頻語音、圖像等多種業(yè)務(wù)轉(zhuǎn)變,例如:語音(VoIP)、VoD(Video on Demand)以及視頻會議等。這些新應(yīng)用對網(wǎng)絡(luò)的帶寬、延遲、抖動等都有一定的要求,而傳統(tǒng)的盡力而為網(wǎng)絡(luò)不能較好地滿足這些新業(yè)務(wù)在帶寬和時延等方面的具體需求?;诖耍疚奶岢鍪褂肣oS技術(shù)來保證網(wǎng)絡(luò)的傳輸質(zhì)量。QoS 技術(shù)并沒有擴充網(wǎng)絡(luò)的帶寬,只是根據(jù)業(yè)務(wù)的需求以及網(wǎng)絡(luò)狀況來管理帶寬,實現(xiàn)帶寬的優(yōu)化。IETF在1997年9月制定了有關(guān)QoS 定義和服務(wù)的一系列RFC 標(biāo)準(zhǔn),并提出了區(qū)分服務(wù)(DiffServ)[1]模型的解決方案。在此模型中,它將IP服務(wù)類型(ToS)字段改名為DS,并用它承載IP包服務(wù)所要求的信息,是嚴(yán)格意義上的第三層技術(shù)。區(qū)分業(yè)務(wù)主要通過兩個機制來完成:DS標(biāo)記和一個包轉(zhuǎn)發(fā)處理庫集合的每跳行為PHB(Per-Hop-Behavior)。通過對一個包DS字段的不同標(biāo)記以及基于DS字段的處理,就能夠產(chǎn)生一些不同的服務(wù)級別。IP包頭中的DSCP(區(qū)分服務(wù)標(biāo)記字段)是DS區(qū)域的邊緣節(jié)點和核心節(jié)點之間傳遞流匯聚信息的媒介,是連接邊界的傳輸分類和調(diào)節(jié)機制與內(nèi)部PHB的橋梁。
網(wǎng)絡(luò)QoS控制的實質(zhì)在于資源的管理,即控制緩沖隊列、鏈路帶寬等網(wǎng)絡(luò)資源的分配與使用。隊列管理在網(wǎng)絡(luò)傳輸控制中發(fā)揮著相當(dāng)大的作用,是網(wǎng)絡(luò)QoS控制的核心技術(shù)之一,也是實現(xiàn)網(wǎng)絡(luò)擁塞控制的重要手段,是當(dāng)前QoS研究的熱點。本文采取DWRR_PQ的調(diào)度算法可以為EF業(yè)務(wù)提供低延遲、低抖動及對帶寬的要求的服務(wù),將EF業(yè)務(wù)和其他業(yè)務(wù)進行很好的隔離,避免BE業(yè)務(wù)可能出現(xiàn)的“饑餓”現(xiàn)象。
1 基于DiffServ的隊列調(diào)度策略
目前最常使用的隊列調(diào)度算法有PQ、WRR、DWRR等。PQ算法的高優(yōu)先級隊列的分組總是優(yōu)先得到調(diào)度,低優(yōu)先級隊列的分組只能在高優(yōu)先級隊列分組被調(diào)度結(jié)束之后才會得到服務(wù),否則是得不到服務(wù)的。所以該算法能夠給優(yōu)先級高的業(yè)務(wù)數(shù)據(jù)報文提供低延遲和低抖動網(wǎng)絡(luò)性能,而低優(yōu)先級的報文可能出現(xiàn)“饑餓”現(xiàn)象。WRR算法:對于所有的業(yè)務(wù)流在排隊等待調(diào)度的隊列WRR是根據(jù)每個隊列配置的權(quán)值與所有的業(yè)務(wù)流在排隊等待調(diào)度的隊列的權(quán)值總和的比來平等地分配帶寬的,克服了PQ調(diào)度算法的低優(yōu)先級隊列可能出現(xiàn)長期的“饑餓”現(xiàn)象。同時WRR還可以提供類似公平隊列算法的公平性、實現(xiàn)過程比較簡單和算法的復(fù)雜度只有O(1),且適用在高速網(wǎng)絡(luò)下。但是由于該算法輪詢服務(wù)的特征,從而不能保證EF業(yè)務(wù)的低延遲、低抖動的性能,不能支持包長度的變化,一旦調(diào)度長度不一樣的數(shù)據(jù)包就會導(dǎo)致分組長的隊列會得到更多的帶寬資源,出現(xiàn)不公平的現(xiàn)象。DWRR算法:是基于WRR的一種算法,它分配給每一個隊列的權(quán)值不是分組的個數(shù),而是分組的比特數(shù),當(dāng)前輪詢剩下的比特數(shù)會留到下一次的輪詢中去。基本的調(diào)度過程與WRR算法是一樣的,但是它提供的帶寬分配細度會更加公平,而它的復(fù)雜度與WRR一樣。DWRR與WRR有同樣的缺點,即對于在同一個隊列的報文沒有優(yōu)先級的區(qū)分,對于這種“微公平”性沒有很好的保證,并且對EF業(yè)務(wù)的低延時和低抖動也沒有很好的保證[2]。
本文的調(diào)度算法主要由流量調(diào)節(jié)器和DWRR_PQ分組調(diào)度器兩部分組成。為了避免EF業(yè)務(wù)流量霸占過多的帶寬資源,采用了令牌桶算法作為流量調(diào)節(jié)器來控制EF業(yè)務(wù)的流量。同時為了滿足EF業(yè)務(wù)的低延時抖動的性能還是采用了優(yōu)先級算法,能夠為最高優(yōu)先級的EF業(yè)務(wù)提供最佳的服務(wù)。但是由PQ算法的缺點可以看出,這樣做有可能會使低優(yōu)先級的業(yè)務(wù)長時間得不到服務(wù),處于“饑餓”的狀態(tài)[3]。因此,分組調(diào)度器的算法是通過將DWRR算法和優(yōu)先級算法相結(jié)合來實現(xiàn)的,區(qū)分服務(wù)模型是將大量的復(fù)雜性工作放在邊緣路由器中來完成以達到伸縮性強的特點。邊緣路由器雖然會降低流量的容量但是并不會減少流的數(shù)目,同時使服務(wù)基于匯聚流,從而使核心路由器的工作僅限于簡單的業(yè)務(wù)判斷并轉(zhuǎn)發(fā)匯聚數(shù)據(jù)流。所以該調(diào)度策略適用于邊緣路由器的隊列調(diào)度,而核心路由器的調(diào)度策略就是該調(diào)度策略的簡化,即不會包括令牌桶的流量調(diào)節(jié)器[4]。當(dāng)分組到達區(qū)分服務(wù)域時,邊緣路由器首先會對該分組進行分類和調(diào)度。如果該分組被標(biāo)記為EF業(yè)務(wù),那么它就必須經(jīng)過流量控制的令牌桶過濾,若令牌桶中有令牌則符合流量要求,就會通過PQ調(diào)度,被送到高優(yōu)先級隊列進行轉(zhuǎn)發(fā);否則該分組就會被降級處理重新標(biāo)記,并且同時轉(zhuǎn)到其他隊列中去接受DWRR算法的調(diào)度。如果到達的分組數(shù)據(jù)包被標(biāo)記為其他的非EF業(yè)務(wù),那么它首先就要接受DWRR算法的調(diào)度,被DWRR調(diào)度后再會被發(fā)送到PQ算法中的優(yōu)先級或低優(yōu)先級隊列中進行排隊調(diào)度等待優(yōu)先級調(diào)度器的調(diào)度。在上述算法原理分析中,最高優(yōu)先級的EF業(yè)務(wù)分組總是優(yōu)先得到服務(wù),但是由于它的流量會受到令牌桶算法的控制,并不會占用整個帶寬的資源,因此低優(yōu)先級業(yè)務(wù)的隊列并不會出現(xiàn)“饑餓”狀態(tài)。本文調(diào)度算法提高了網(wǎng)絡(luò)的性能,滿足了QoS對EF業(yè)務(wù)在低延時、低抖動和公平性及對低優(yōu)先級的業(yè)務(wù)的資源分配不合理現(xiàn)象[5]的要求。
DWRR-PQ算法調(diào)度原理如圖1所示。
2.1 調(diào)度算法對EF業(yè)務(wù)吞吐量的仿真
利用網(wǎng)絡(luò)仿真軟件OPNET實現(xiàn)了該算法。由圖3可知,DWRR_PQ調(diào)度算法對EF業(yè)務(wù)的吞吐量與PQ算法非常接近,一般都是在500 packets處上下波動,波動范圍較小。而在WRR算法下的EF業(yè)務(wù)吞吐量波動較大,范圍在494 paeket~502 paeket之間。DWRR_PQ算法對EF業(yè)務(wù)的吞吐量的支持率比WRR要好。
2.2 調(diào)度算法對EF業(yè)務(wù)延遲抖動的仿真
在網(wǎng)絡(luò)中傳輸EF業(yè)務(wù)時要求其具有低延遲和低抖動的性能。由圖4所示可以看出,PQ調(diào)度和DWRR_PQ調(diào)度的端到端延遲都是在11.6 ms上下波動,而WRR的延遲比較高,在17 ms~18 ms之間波動。由這些數(shù)據(jù)可知,PQ和DWRR_PQ算法端到端的延遲比WRR算法低7 ms~8 ms左右,性能有很大的提高。同時由圖4還可以看出三種調(diào)度算法下EF業(yè)務(wù)通信量的延遲抖動的情況。PQ算法和DWRR_PQ算法下,EF業(yè)務(wù)通信量的延遲變化范圍一般是在0.1 ms左右,而WRR算法的延遲的變化大約在0.2 ms??梢奃WRR_PQ算法對EF業(yè)務(wù)的隊列延遲和抖動有很好的保證。
2.3 調(diào)度算法對BE業(yè)務(wù)支持的仿真
由圖5可知,PQ調(diào)度算法沒有數(shù)據(jù)(只有DWRR_PQ算法和WRR算法有數(shù)據(jù)),這是由PQ算法的特點決定的,當(dāng)有BE業(yè)務(wù)流時,PQ調(diào)度器會將該業(yè)務(wù)分配給最低的優(yōu)先級,再有高優(yōu)先級時不會對低優(yōu)先級的業(yè)務(wù)進行調(diào)度,使低優(yōu)先級的業(yè)務(wù)處于“饑餓”狀態(tài),采集不到BE的數(shù)據(jù),從而使PQ算法的接收方不會接收到BE的數(shù)據(jù)。同時從圖中還可以看出,WRR算法對BE通信量的支持比DWRR_PQ方案還要好。
經(jīng)過對仿真結(jié)果的分析,就EF業(yè)務(wù)隊列的吞吐量、延遲和延遲抖動而言,DWRR_PQ算法的調(diào)度性能都要好于WRR算法;與PQ機制相比,DWRR_PQ降低了BE業(yè)務(wù)有可能處于“饑餓”狀態(tài)的問題。
本文提出了一種基于區(qū)分服務(wù)(DiffServ)的擁塞管理的隊列調(diào)度策略,滿足了區(qū)分服務(wù)業(yè)務(wù)的EF業(yè)務(wù)流對網(wǎng)絡(luò)的性能要求。仿真結(jié)果顯示了本算法實現(xiàn)了為EF業(yè)務(wù)提供低延遲、低抖動及對帶寬要求的服務(wù),將EF業(yè)務(wù)和其他業(yè)務(wù)進行很好的隔離,避免了BE業(yè)務(wù)可能出現(xiàn)的“饑餓”現(xiàn)象,說明了本文提出的調(diào)度策略對區(qū)分服務(wù)體系的隊列調(diào)度有較好的支持。
參考文獻
[1] 林闖.計算機網(wǎng)絡(luò)的服務(wù)質(zhì)量(QoS)[M].北京:科學(xué)出版社,2004.
[2] PITSILLIDES A, IAMBERT J. Adaptive congestion control in ATM based networks: Quality of service and high utilixation[J]. Computer, Communication, 1997(20):1239-1258.
[3] PETERSON L L, DAVIE B S. Computer networks: a system approach(second wdition)[M]. 北京: 機械工業(yè)出版社, 2002.
[4] GUFFENS V, BASTIN G. Fluid flow network modeling for hop-by-hop feedback control of a multicast stream[C]. Benelux Meeting, 2003.
[5] GOYAL P, VIN H M, CHEN H. Start-time fair queuing: a scheduling algorithm for integrated services[J]. IEEE/ACM Transactions on Networking, 1997,5(5):690-704.