摘 要:提出一種基于優先級業務分類的Ad hoc網絡QoS模型,它能夠為多種優先級多種類別的業務提供不同等級的服務。源端判斷業務是否允許接入,中間節點只負責轉發允許接入的業務。在資源不足的情況下,能為最高優先級業務提供相對穩定的帶寬資源,高優先級業務能獲得比低優先級業務更高的調度權限。通過OPNET下的仿真,證明該模型能滿足不同級別QoS的要求。
關鍵詞:Ad hoc網; 服務質量; 優先級; 接入控制; 分組調度
中圖分類號:TP393文獻標志碼:A
文章編號:1001-3695(2010)06-2280-03
doi:10.3969/j.issn.10013695.2010.06.081
Basedpriority QoS model for Ad hoc network
LIANG Ziyuan, YU Jingdong
(National Key Laboratory of Science Technology on Communications, University of Electronic Science Technology of China, Chengdu 611731, China)
Abstract:This paper presented a new basedpriority QoS model for Ad hoc network to provide different level service for multiple priority and multiple class traffic. The source terminals decides if access the traffic stream or not, the intermediate nodes just transmit the admitted traffic. In insufficient bandwidth network the highest priority traffic stream maintain the relative stable bandwidth resource. According OPNET simulation, the QoS model was proved to satisfy the demand.
Key words:Ad hoc network; QoS; priority; admission; scheduling
0 引言
隨著信息技術的發展和多媒體應用的普及,在移動Ad hoc網絡中傳輸有QoS要求的實時業務和多媒體業務已成為一項熱點研究問題。與傳統有線網絡不同,Ad hoc網由于其拓撲結構和鏈路容量的多變性、可用帶寬估計的復雜性、節點能源的有限性等特點,使得在Ad hoc網中提供有QoS保證的業務較為復雜和困難,需要考慮很多方面的問題。
以Ad hoc網絡中的一個節點為例,為了提供QoS服務,其需要實現的功能包括:在應用層,區分業務類型;在網絡層,具有帶寬探測和預留機制,尋找符合QoS要求的路由,并能獲得下層資源信息;在鏈路層,根據優先級和業務類別分組調度,并進行隊列管理;此外,還必須有相應的帶寬估計機制,獲得鏈路中的可用帶寬。
現有的Ad hoc網QoS模型,按照復雜度區分,有只對業務類型進行了簡單劃分的低復雜度SWAN模型[1],有定義了四種PHB的中復雜度CLAD模型[2],以及結合了傳統IP網IntServ模型與DiffServ模型的高復雜度FQMM模型[3]和HQMM模型[4]。此外,其他文獻也提出了一些QoS的相關技術,如文獻[5]的模型重點考慮了接入控制機制,而文獻[6]則提出了一種資源預留的方法。
本文提出一種基于優先級分類的Ad hoc網絡QoS模型PQMA(priority QoS model for Ad hoc network),它能夠為多種優先級、多種類別的業務提供不同等級的服務。對帶寬和時延有要求的業務在源端判斷是否允許接入,在節點需要發送多種不同等級業務的情況下,高優先級業務能獲得優先調度,即使在鏈路帶寬不足的情況下,也能為最高優先級業務提供相對穩定的帶寬資源。
1 提出的QoS模型
本文提出的PQMA模型主要考慮網絡層與MAC之間的操作,如圖 1所示。上層業務流到達之后,首先將其映射為分類標記模塊定義的業務類別。之后,對帶寬有要求的RT包和STR包進入接納控制模塊探測路徑上帶寬是否足夠,允許接入的RT包、STR包和不必進行接入控制的BE包進入路由模塊,依據已建立的路由發往下一跳節點。速率控制模塊根據本節點的帶寬占用情況調整數據包發往下層的速率。分組調度模塊優先調度優先級高的數據包。擁塞控制模塊在鏈路擁塞的情況下標記數據包的ECN位,上層采用相應的機制降低或終止BE包的發送速率。帶寬估計模塊作為獨立的模塊周期性估計鏈路中的可用帶寬,估計出的值可以被其他模塊讀取。
1.1 業務分類標記模塊
應用層業務流在本模塊中以等長數據包的形式發送。IP報文的DS域用于定義發送行為,一旦中間節點收到包,將檢測DS域以區分不同的業務類別,判斷是否符合接入條件。
定義了三個類別和四個優先級——實時業務(realtime class):對帶寬、時延和延遲抖動均有嚴格的要求;流業務(streaming class):對帶寬有一定要求,對時延和延遲抖動要求不高;盡力而為業務(best effort class):對帶寬和時延沒有特別要求。
優先級分為routine、priority、immediate、flash,其優先級依次升高,對于緊急的、突發的、重要的任務,可手動將其標記為高優先級,保證在網絡中優先發送。
在DS域中以DSCP值對應相應的優先級和業務類別,其值分配如圖2所示。
其具體值對應的優先級和業務類別如表 1所示。
表1 優先級和業務類型與DSCP值的對應關系
優先級000001010011routinepriorityimmediateflash業務類型000001010RT classSTR classBE class
應用層會產生多種類型的業務:文件傳輸業務(如FTP、email等),文本圖片交互
式瀏覽業務(如WWW)、流媒體業務、多媒體業務、實時業務(如VoIP、視頻會議等)、無保證業務等。ITU13組建議的Y.1541[7]依據業務對延遲、延遲抖動、丟包率、錯誤率的要求不同,將其分為六類,分別以class 0~class 5標志,其優先級依次遞減。將應用層業務映射到本模塊定義的優先級類別之中,參考Y.1541,其劃分如表2所示。
表2 業務映射
業務名稱業務特征對應Y.1541類別優先級
FTPemail丟包率低、時延高、延遲抖動高class 4STrroutine
WWW丟包率中等、時延和延遲抖動中等class 3STRpriority
streammedia丟包率低、時延中等,延遲抖動高class 3 class 4STRimm
ediate
multimedia丟包率低、時延低,延遲抖動中等class 1class 2RTimmediate
voIPvideo session丟包率很低、時延低,延遲抖動很低class 0RTflash
besteffort無特殊要求class 5BEroutine
新生成的流暫存于待發送隊列。根據流的長度生成固定大小的IP報文依次發往下層。
1.2 接入控制模塊
上層數據包到達之后,首先存入緩存區。每隔一定的時間間隔,從緩存區頭部讀取包,此時讀取的包可能有以下幾種類型:
a)BE包。無須進行接入控制,直接發送。
b)RT包或STR包。若是新的數據流,發送探測包,若不是則檢查該流是否已預留帶寬;若是,直接發送;否則,直接丟棄。
由下層傳遞上來的包可能有以下幾種類型:
a)探測包。判斷本節點是否有足夠的帶寬可以接入該數據流。
探測包的源節點、目的節點、DSCP值由IP報文直接復制;探測包與回復包有四個特殊的域:maxBW、minBW、linkBW和flag。其中,maxBW和minBW分別代表傳輸業務的足夠帶寬和最小帶寬,對于不同的數據流,其帶寬要求也各不相同;linkBW表示網絡中的瓶頸帶寬,它的初始值與maxBW相同,之后根據中間節點的可用帶寬情況修改該值;flag域可能有0、1、2三個值。其中,0表示鏈路中有足夠的帶寬;1表示在探測包中本優先級帶寬不足,需要釋放低優先級帶寬;在回復包中表示已釋放了適量的低優先級帶寬,該業務流可以接入;2表示在探測包中該優先級業務在本節點中的優先級帶寬占用率已超過門限值;在回復包中該節點即使釋放了低優先級帶寬仍不能滿足帶寬要求。
當節點收到探測包后,需要將包中的maxBW和minBW與本節點的可用帶寬進行比較,每個節點中,均維持著一張帶寬信息表,內容包括已用帶寬、最小帶寬、優先級帶寬占用率等。探測包沿路由表中到目的節點的路由依次探測可用帶寬,若小于minBW,標記flag位為1,直接以BE方式發送至目的節點;若大于maxBW,linkBW域等于maxBW,繼續向前發送。若在minBW與maxBW之間,進行如下操作:
(a)查詢帶寬信息表,若該優先級業務的優先級帶寬占用率已超過門限值,標記flag位為2,以BE方式送至目的節點;
(b)未超過門限值,且剩余帶寬大于minBW,linkBW域等于minBW,繼續向前發送;
(c)未超過門限值,但剩余帶寬小于minBW,linkBW域等于minBW,標記flag位為1,繼續向前發送。
b)回復包。判斷本節點是否允許接入該數據流。
在目的節點生成回復包,中間節點根據flag域的值進行低優先級帶寬的釋放和本業務的帶寬預留,并更新各優先級帶寬占用情況。每個節點維持著一張帶寬預留表,如表3所示。
表3 節點帶寬預留表
源節點序列號DSCP
預約帶寬最小帶寬預約時間
當節點決定接入該業務,需要根據回復包來填寫帶寬預留表。其中,序列號由fragment域的seq位獲得,優先級由DSCP值決定,預留帶寬和最小帶寬分別對應setBW域和minBW域的值。帶寬預留表的作用為:當有帶寬要求的非首數據包到達節點時,只需查詢該業務流是否已被預約,而無須再次進行接入控制;當某一已預留帶寬的業務長時間沒有包到達或收到標記為業務流的最后一個數據包時,則認為該業務流已發完,預留的帶寬可以釋放。
中間節點在完成更新flag域值和預留帶寬之后,將回復包繼續發往下一節點。如果已回到源節點,則需要判斷是否允許接入該業務流,根據業務類別的不同,這又分成兩種情況:
a)STR流。無須判斷是否超時,只需檢查flag域的值,若為0或1,允許接入,若為2,則拒絕接入。
b)RT流。除了判斷flag域的值外,還需判斷是否延遲,若當前時間與探測包發送時間的差值,再加上路徑中每個節點的平均排隊時延大于實時數據流所規定的門限,即timeETE_start_time+schd_time>RT_threshold,則拒絕接入。
c)預留更新包。當路由模塊收到了數據包,則向接入控制模塊發送一個預留更新包(而不將數據包發送上來)更新帶寬預留表信息,逐條記錄檢查該表,若有該條記錄,則認定這是一個已預約業務流,更新該條記錄的預留時間值;若不符合,則判斷該條記錄是否超時,將超時的預留帶寬釋放。
1.3 隊列管理分組調度模塊
在本模塊中,主要執行分組調度和隊列管理的功能。其中,分組調度又分為針對優先級的WF2Q調度和針對業務類別的EDF調度,隊列管理采用經過改進的能夠為不同優先級隊列提供不同丟包概率的隨機早期丟棄RED算法。
改進的RED算法在傳統RED算法的基礎上為不同優先級業務分配了不同的權值。高優先級業務擁有更高的權值,更高的丟棄長度門限,在固定大小的緩沖區中,允許容納更多數量的高優先級業務。其中一種能夠區分優先級的RED算法為多色RED算法[8]。
上層到達的數據在經過RED算法檢測之后依據其優先級排入相應隊列,進行第一次WF2Q調度。為了保證即使在擁塞狀況下,最高優先級業務也能得到相對充足的帶寬,調度算法在最高優先級業務隊列有數據包時必須保證其優先發送,其他優先級業務以WF2Q算法按比例分享剩余帶寬。它在等待調度的所有隊列中選擇開始服務時間小于虛擬服務時間的分組,然后再在這些分組中選取完成服務時間最小的隊列發送。系統預先為除最高優先級業務外的其他業務權值帶寬分配權值,保證調度完成后每一優先級業務實際占用的帶寬與分配的帶寬相符。經過WF2Q調度的數據包需要進行第二次針對業務類型的EDF調度,在EDF調度時,任務的優先級根據任務的截止時間動態分配。截止時間越短,優先級越高,數據包要在最晚時間發送門限之前發送出去。數據包在到達本模塊時記錄到達時間,為每一類業務都設置最長等待門限,每次發送前計算每一類業務的等待時間與等待門限之差,選擇最接近截止時間的數據包發送。
分組調度隊列管理過程如圖 3所示。
1.4 帶寬估計模塊
帶寬估計模塊需要知道MAC層的使用情況。在固定的時間周期T內對信道的忙閑狀態進行采樣,以估算出的信道利用率與信道數據率的乘積作為信道帶寬。已用帶寬的計算公式為
Bused=Tbusy/T×D=R×D
其中:R=Tbusy/T表示信道利用率;T為估算的時間周期;Tbusy表示非空閑時間;D是信道數據率。
用信道總帶寬,即為信道數據率D減去已用帶寬Bused即可得到節點的可用帶寬Bavailable。為了防止抖動,用一個平滑參數對估計出的可用帶寬進行處理:
Bavailable=(1-α)×Bavaiable+α×Bavaiable
這樣得到的就是經過加權的平均可用帶寬。
1.5 速率控制模塊
占用帶寬的計算公式為
B=Lpacket×N=Lpacket/Tpacketing
其中:Lpacket表示包長度;N表示每秒鐘發送的包數;Tpacketing表示打包周期,Tpacketing=1/N。將其變形即可得到理想的打包周期Tpacketing=Lpacket/B。理論上,已知了包長度Lpacket和節點當前的可用帶寬B計算出的發送速率是適應當前網絡的。上層到達的包在緩沖區中排隊,并記錄下到達時間。Tpacketing值實時更新。若收到ECN位被標記的數據包,降低本節點中BE包的發送速率,具體方法是:每個時間間隔Tpacketing判斷一次是否達到BE包發送周期,若否,讀取一個緩沖區中的數據包,此包若不是BE包,直接發送至下層;若是BE包,存入BE發送隊列。若當前值與上次BE包發送時間之差超過BE包發送周期,則取出BE隊列中的包發送。
1.6 擁塞控制模塊
判斷此時鏈路中的可用帶寬與總帶寬的比值是否低于門限值,若低于門限值,則認為此時鏈路發生擁塞,需要降低數據包的發送速率,對數據包的DSCP值最后一位ECN位進行標記,然后將數據包傳遞給上層;若比值未低于門限值,則無須標記,直接將數據包傳遞給上層。上層模塊收到ECN位被標記的數據包將自動調整應用層產生數據流的速度,避免生成大量的數據包被丟棄。
2 仿真結果及分析
在OPNET仿真工具中對提出的Ad hoc網QoS模型進行仿真。仿真場景為500 m×500 m平面網,16個節點,數據鏈路層采用IEEE 802.11b協議,物理信道帶寬為5.5 Mbps,仿真時間為2 400 s。仿真結果表明,在輕負載的情況下,各模塊處理包的速率高于上層包到達的速率,此時,每個數據包到達分組調度模塊都立即被發送,不能體現出優先級區別,反而由于接入控制和各個QoS模塊的處理時延使得數據包的發送時延比未采用QoS控制時更大。
當發生網絡擁塞或應用層突然加大數據流發送速率時,上層包的到達速率大于發送速率,這時,數據包在緩沖區中排隊,節點大量地丟棄報文,并且選擇優先級高的業務優先發送。圖 4顯示了這種情況下不同優先級業務的報文投遞率,可以看出,其值隨著優先級的增高依次增大。
對于不同類別的業務,圖5顯示出其業務延遲的不同。其中,RT業務明顯低于BE和STR業務,因為在接入控制模塊對RT業務進行了鏈路延遲是否超過延遲門限的判斷,因此對于超時業務在源節點就將其拋棄,避免無效業務流占用帶寬;圖6顯示了BE、STR、RT業務的報文投遞率,進一步表明了RT業務的投遞率低于對延遲要求不高的STR業務。當BE業務作為無保障的業務,在擁塞的情況下首先推遲或終止其發送,導致了BE業務的報文投遞率低于RT和STR業務。
3 結束語
本文提出了一種基于Ad hoc網絡的QoS模型,它包括了能提供QoS保證的所有模塊,并對每一模塊都進行了相應的設計。通過仿真,表明其能完成預計的功能,在重負載的情況下,對不同優先級的業務提供不同的調度次序和報文丟棄率,保證高優先級業務能得到優先調度。對帶寬或延遲有要求業務,也能通過接入控制保證滿足鏈路要求的業務才能接入網絡,避免了無效的業務占用網絡資源。本文的QoS模型還提出了針對分級網的改進,在后續的研究工作中需要搭建不同的場景,對分級網以及不同規模、不同負載的情況進行仿真及優化。
參考文獻:
[1]AHN G S, CAMPBELL A T, VERES A, et al.SWAN: service differentiation in stateless wireless ad hoc networks[C]//Proc of IEEE INFOCOM. New York: Institute of Electrical and Electronics Engineers Inc, 2002:457-466.
[2]ZHOU Bosheng,MARSHALL A,LEE T H. A crosslayer architecture for diffServ in mobile Ad hoc networks[C]//Proc of International Conference on Wireless Networks Communications and Mobile Computing. Maui:Institute of Electrical and Electronics Engineers Computer Society, 2005:833-838.
[3]XIAO H N, SEAH W K G, LO A, et al. A flexible QoS model for mobile Ad hoc network[C]//Proc of Vehicular Technology Conference. Tokyo: IEEE, 2000:445-449.
[4]HE Yan, ABDELWAHAB H. HQMM:a hybrid QoS model for mobile Ad hoc networks[C]//Proc of International Symposium on Computers and Communications. Cagliari, Italy: Institute of Electrical and Electronics Engineers Inc,2006: 194-200.
[5]HAQ M A ,MATSUMOTO M ,BORDIM J L. Admission control and service differentiation based QoS provisioning for mobile Ad hoc network[C]//Proc of the 60th IEEE Vehicular Technology Conference, VTC2004Fall: Wireless Technologies for Global Security. Los Angeles:Institute of Electrical and Electronics Engineers Inc, 2004:2712-2718.
[6]FAROOQ M O,AZIZ S. Stateless and controlled reservation based DiffServ model for mobile Ad hoc network[C]//Proc of the 4th International Conference on Wireless and Mobile Communication. Athens, Greece:Inst of Elec and Elec Eng Computer Society, 2008:389-394.
[7]ITUT Recommendation Y.1541, Network performance objectives for IPbased services [S].2003.
[8]董世強,萬建成,趙剛.基于區分服務模型擁塞控制的改進RED算法[J].計算機系統應用,2005(2):30-37.