韓帥帥,王寶林,張德海
(西安電子科技大學電子工程學院,陜西西安 710071)
無線傳感器網(wǎng)絡(luò)技術(shù)與多媒體新應(yīng)用需求的結(jié)合促使了無線多媒體傳感器網(wǎng)絡(luò)[1](WMSNs)技術(shù)的產(chǎn)生[1]。WMSNs通常是異構(gòu)型網(wǎng)絡(luò)。WMSNs技術(shù)在給人們提供豐富的媒體信息帶給感官上的享受的同時也給WMSNs的MAC層帶來了挑戰(zhàn),如嚴格的QoS(Quality of Service)保證和低能耗。
S-MAC協(xié)議[2]是一種典型的基于競爭的隨機訪問MAC協(xié)議,它是建立在IEEE802.11協(xié)議基礎(chǔ)上的,針對傳感器網(wǎng)絡(luò)的節(jié)省能量需求而提出的傳感器網(wǎng)絡(luò)MAC協(xié)議。該協(xié)議具有良好的擴展性,不要求嚴格的時間同步等諸多優(yōu)點。由于無線多媒體傳感器網(wǎng)絡(luò)與無線傳感器網(wǎng)絡(luò)不同,由于加入了多媒體信息,如音頻數(shù)據(jù)、視頻數(shù)據(jù)等,這些數(shù)據(jù)可能引起網(wǎng)絡(luò)數(shù)據(jù)量的劇烈變化,多媒體對信息的傳輸和處理又有著特殊的要求,如對QoS的特殊要求,使SMAC協(xié)議應(yīng)用到無線多媒體傳感器網(wǎng)絡(luò)存在一定的局限性。
S-MAC協(xié)議是一種基于競爭的控制協(xié)議,它主要采用“虛擬簇”機制[3]。每個節(jié)點在時隙開始時廣播含有自己調(diào)度信息的同步包,接收到同步數(shù)據(jù)包的節(jié)點按需要調(diào)整時鐘。這樣具有相同調(diào)度節(jié)點形成一個“虛擬簇”。原則上整個網(wǎng)絡(luò)應(yīng)該工作在同一個“時隙結(jié)構(gòu)”,但由于移動性和調(diào)度機制,在網(wǎng)絡(luò)中可能包含許多“虛擬簇”。
S-MAC協(xié)議的主要目標是減少能耗,為減少數(shù)據(jù)沖突造成的能耗,協(xié)議利用退避機制來競爭信道,完成數(shù)據(jù)的接收與發(fā)送。為減少串音偵聽帶來的能耗,協(xié)議采用自適應(yīng)的偵聽機制以及RTS/CTS的通告機制。每個節(jié)點在傳輸數(shù)據(jù)時,都要經(jīng)歷 RTS/CTS/DATA/ACK的通信過程,從而避免串音偵聽;為減少空閑偵聽的能耗,協(xié)議采用周期性睡眠機制,使不參與發(fā)送或者接收的節(jié)點進入睡眠狀態(tài),從而降低能耗。周期睡眠機制如圖1所示。
圖1 S-MAC的周期性睡眠機制
(1)碰撞避免。由于多個發(fā)送節(jié)點可能要同時發(fā)送數(shù)據(jù)到同一個接收節(jié)點,其需要進行信道資源的競爭,以避免沖突。在S-MAC協(xié)議中繼承了IEEE 802.11中虛擬載波監(jiān)聽、物理載波偵聽和RTS/CTS交換機制。這種方法還可以用在S-MAC中來解決終端隱藏問題。
在傳輸?shù)拿總€數(shù)據(jù)包中有一個持續(xù)時間字段,該值指明了剩余傳輸將持續(xù)的時間。所以,如果節(jié)點串聽到不是發(fā)給自己的數(shù)據(jù)包,通過獲取數(shù)據(jù)包的持續(xù)時間字段,就可以得知自己多長時間不能進行數(shù)據(jù)收發(fā)。節(jié)點記錄該值的變量,稱為網(wǎng)絡(luò)分配向量(NAV),并設(shè)置它的計時器。每次當NAV定時器觸發(fā),該值減1,直到0。節(jié)點進行數(shù)據(jù)發(fā)送之前必須確保NAV值為0,如果其值不為零,則節(jié)點確定信道繁忙,即所謂的虛擬載波偵聽。其過程如圖2所示。
圖2 載波監(jiān)聽
如果一個節(jié)點無法獲得信道,就轉(zhuǎn)入睡眠并等到接收者再次空閑并進行再次聆聽時喚醒。廣播信息包發(fā)送不使用RTS/CTS,在進行單播數(shù)據(jù)時才會使用RTS/CTS/DATA/ACK機制。
(2)S-MAC協(xié)議存在的問題。S-MAC協(xié)議采用周期性的活動/休眠調(diào)度機制,活動時間通常固定不變,而消息速率是變化的[4]。協(xié)議處于活動狀態(tài)的時間長度不能根據(jù)網(wǎng)絡(luò)中業(yè)務(wù)量的變化動態(tài)調(diào)整,不能有效地節(jié)省能量。
通信模塊處于休眠狀態(tài)的節(jié)點,如果檢測到事件,就必須等到通信模塊轉(zhuǎn)換到活動周期才能發(fā)送數(shù)據(jù),中間節(jié)點要轉(zhuǎn)發(fā)數(shù)據(jù)時。下一跳節(jié)點可能處于休眠狀態(tài),此時也必須等到它轉(zhuǎn)換到活動周期,這種由于節(jié)點休眠帶來的延遲會隨著路徑上跳數(shù)的增加成比例增加。
無線多媒體傳感器網(wǎng)絡(luò)的業(yè)務(wù)具有特殊性,對QoS有特殊要求、傳輸效率、傳輸時延、服務(wù)多樣化、媒體數(shù)據(jù)具有流量突發(fā)與不均勻性等特點,固定的占空比已經(jīng)滿足不了多媒體業(yè)務(wù)的需求,若監(jiān)聽狀態(tài)時間過長,網(wǎng)內(nèi)流量較小時,會有過多能量浪費在空閑監(jiān)聽上。若監(jiān)聽時間較短,網(wǎng)內(nèi)負載較大時,緩沖隊列中很多數(shù)據(jù)堆積,引起隊列時延,同時還會引起睡眠時延,網(wǎng)絡(luò)的吞吐量下降,所需要MAC協(xié)議實現(xiàn)動態(tài)的占空比,占空比能適當?shù)馗鶕?jù)網(wǎng)內(nèi)的負載大小變化,提高網(wǎng)絡(luò)吞吐量和能量利用率。
文獻[5]通過統(tǒng)計一段時間內(nèi)節(jié)點收到數(shù)據(jù)包的大小,根據(jù)數(shù)據(jù)量的大小與設(shè)定的幾個吞吐量的閾值進行比較來調(diào)整空閑時間的長短及占空比,監(jiān)聽時間不變;文獻[6]提出的ADC-SMAC協(xié)議通過計算上一次數(shù)據(jù)包的平均時延,當前占空比來調(diào)整占空比;以上文獻均通過計算上一時刻的網(wǎng)絡(luò)負載大小或時延來估計下一時刻網(wǎng)內(nèi)的數(shù)據(jù)流量或需要的時延,從而調(diào)整占空比或者同時調(diào)節(jié)幀周期,無線多媒體傳感器網(wǎng)絡(luò)內(nèi)的數(shù)據(jù)包或負載具有突發(fā)性,上一時刻數(shù)據(jù)量較小,不能保證下一時刻網(wǎng)絡(luò)負載較小,同樣,上一時刻網(wǎng)內(nèi)負載比較大,不能保證下一時刻的網(wǎng)內(nèi)的負載同樣較大,所以動態(tài)調(diào)節(jié)占空比的前提是正確地估計下一時刻網(wǎng)內(nèi)負載的大小?;诖?,本文提出了基于鄰居隊列的動態(tài)占空比調(diào)整算法(QD-MAC,Queue based Design of MAC)。
QD-MAC算法的基本思想。由于網(wǎng)絡(luò)負載用鄰居范圍內(nèi)的待發(fā)送數(shù)據(jù)包的總數(shù)來估計,能表示下一時刻網(wǎng)內(nèi)要傳輸?shù)臄?shù)據(jù)包的數(shù)量,表示將來時刻網(wǎng)絡(luò)負載的大小。定時統(tǒng)計網(wǎng)內(nèi)的所有鄰居節(jié)點的緩沖隊列中的待發(fā)送的數(shù)據(jù)量來估算下一時刻的網(wǎng)內(nèi)負載,新時刻統(tǒng)計的數(shù)據(jù)包與上一時刻的統(tǒng)計結(jié)果進行對比,根據(jù)比較結(jié)果采用相應(yīng)的調(diào)整方案調(diào)整占空比。同時注意收發(fā)器從睡眠狀態(tài)切換到活躍狀態(tài)不是立刻發(fā)生的,因此,希望減少模式切換的頻率。
占空比更新機制。為節(jié)省能量消耗,新占空比通過同步幀進行交換,在所有鄰居節(jié)點范圍內(nèi)的節(jié)點都收到同樣的新的占空比,如果節(jié)點收到的新的占空比小于當前用的占空比,而此時節(jié)點的緩沖隊列中有數(shù)據(jù)待發(fā)送,那么此節(jié)點維持原占空比,在接收到下次新占空比之前,如果節(jié)點的隊列緩沖中的數(shù)據(jù)包已經(jīng)發(fā)送完畢,更換占空比。這種方法基本實現(xiàn)了占空比的同步更換,不存在不同步問題和鄰居節(jié)點之間通信時一個在發(fā)送消息,而另一個處于睡眠狀態(tài)。
采用由UC Berkeley開發(fā)的、面向?qū)ο蟮?、離散事件驅(qū)動的網(wǎng)絡(luò)環(huán)境模擬器NS-2對S-MAC和QDMAC協(xié)議進行了仿真。NS-2仿真軟件[7]以腳本作為輸入,腳本描述了網(wǎng)絡(luò)拓撲結(jié)構(gòu)、網(wǎng)絡(luò)協(xié)議、網(wǎng)絡(luò)負載,以及一些控制參數(shù)。NS-2輸出的是一系列的數(shù)據(jù),如每個數(shù)據(jù)源所發(fā)送的數(shù)據(jù)包數(shù)量,每個網(wǎng)絡(luò)節(jié)點處的延遲等。
為對新協(xié)議QD-MAC與SMAC協(xié)議之間的性能差異進行對比,本文設(shè)置了如圖3所示的拓撲結(jié)構(gòu)。
圖3 基于流量負載的動態(tài)占空比仿真的拓撲圖
節(jié)點0發(fā)送數(shù)據(jù)到節(jié)點2,詳細設(shè)置參數(shù)如表1所示。
表1 功率控制算法仿真參數(shù)設(shè)置
下面分別對S-MAC協(xié)議和QD-MAC在時延、丟包率、吞吐量和能耗的性能方面的對比進行相應(yīng)的分析。
(1)平均時延。由圖4可以看出,QD-MAC與SMAC協(xié)議相比,數(shù)據(jù)包的傳輸延遲明顯降低,首先QD-MAC與S-MAC協(xié)議的延遲都隨著數(shù)據(jù)包傳輸間隔的增大而降低,最后趨于穩(wěn)定的最小值。
圖4 QD-MAC與S-MAC協(xié)議的時延性能比較
在開始網(wǎng)絡(luò)內(nèi)的數(shù)據(jù)包的發(fā)送間隔比較小,網(wǎng)絡(luò)內(nèi)的數(shù)據(jù)量比較大,QD-MAC協(xié)議在負載特別大的時候,占空比調(diào)整為最大值100%,而此時S-MAC是固定占空比30%。由于碰撞,隊列緩存等原因,引起的時延比較大;當網(wǎng)絡(luò)內(nèi)數(shù)據(jù)發(fā)送間隔>0.15 s時,QD-MAC在大占空比下正好可以發(fā)送完緩存隊列中的數(shù)據(jù),S-MAC協(xié)議等到發(fā)送間隔>0.45 s時,才來得及發(fā)送完隊列中的數(shù)據(jù)。數(shù)據(jù)發(fā)送間隔>0.15 s后QD-MAC的占空比開始減小,等到間隔約為0.45 s時跟S-MAC的占空比相當。
(2)網(wǎng)絡(luò)丟包率。QD-MAC與S-MAC協(xié)議的網(wǎng)絡(luò)丟包率比較如圖5所示。
圖5 QD-MAC與S-MAC協(xié)議的丟包率性能比較
QD-MAC協(xié)議的丟包率性能要比S-MAC協(xié)議好很多,QD-MAC在最開始的發(fā)送間隔趨于0的時候丟包率為0.52,而S-MAC協(xié)議達到了0.92,因為此時QD-MAC的占空比達到100%,而S-MAC的占空比固定的30%;在約0.15 s QD-MAC的丟包率已明顯趨于0,而S-MAC協(xié)議等到0.35 s時才開始趨于0。由此可見,在高吞吐量的情況下,QD-MAC的傳輸?shù)目煽啃员萐-MAC協(xié)議強。
(3)網(wǎng)絡(luò)吞吐量。吞吐量對比如圖6所示,從整體上看,隨著數(shù)據(jù)發(fā)送間隔的減小,網(wǎng)絡(luò)吞吐量呈現(xiàn)減小的趨勢。在數(shù)據(jù)發(fā)送間隔<0.35 s的情況下,QDMAC協(xié)議的吞吐量比S-MAC協(xié)議大,因為在發(fā)送間隔<0.35 s的情況下,S-MAC協(xié)議的碰撞嚴重,丟包率高,導致吞吐量較低。在數(shù)據(jù)發(fā)送間隔為0.35 s的情況下,QD-MAC協(xié)議的占空比與S-MAC的相同,兩者吞吐量相當,發(fā)送間隔>0.35 s時網(wǎng)絡(luò)吞吐量的主要決定因素是數(shù)據(jù)的產(chǎn)生速率,隨著數(shù)據(jù)產(chǎn)生速率降低,兩者的吞吐量減少。
圖6 QD-MAC與S-MAC協(xié)議的吞吐量性能比較
(4)網(wǎng)絡(luò)能耗。QD-MAC協(xié)議的能耗在數(shù)據(jù)發(fā)送間隔低于0.35 s時,QD-MAC協(xié)議的占空比比SMAC大,有大量數(shù)據(jù)要發(fā)送會消耗較大的能量。隨著數(shù)據(jù)發(fā)送間隔的減小,緩存隊列中待發(fā)送的數(shù)據(jù)減少,節(jié)能需要QD-MAC減小占空比,到數(shù)據(jù)發(fā)送間隔為0.35 s時兩者的占空比相當,能耗相當。只有QDMAC隨著數(shù)據(jù)產(chǎn)生速率減小繼續(xù)減少占空比,而SMAC保持固定的30%占空比,在緩存隊列中的數(shù)據(jù)發(fā)送完畢后,會有一段時間的空閑監(jiān)聽消耗能量,隨著數(shù)據(jù)產(chǎn)生速率的減小,空閑監(jiān)聽時間越來越長。由于QD-MAC的占空比減小到最小值之后就不會降低,所以消耗的能量不會變?yōu)?,只會穩(wěn)定在一個最小占空比情況下消耗的能量值處,具體能耗表現(xiàn)如圖7所示。
圖7 QD-MAC與S-MAC協(xié)議的能耗能比較
研究了無線多媒體傳感器網(wǎng)絡(luò)MAC層協(xié)議。指出了S-MAC協(xié)議應(yīng)用于無線多媒體傳感器網(wǎng)絡(luò)存在的問題,然后提出了改進方法。統(tǒng)計所有鄰居節(jié)點和自身節(jié)點緩沖隊列中的數(shù)據(jù)量來預測網(wǎng)絡(luò)負載從而調(diào)整占空比來適應(yīng)網(wǎng)絡(luò)內(nèi)流量的變化。針對改進算法在NS2上進行仿真實驗,仿真結(jié)果表明,QD-MAC協(xié)議不僅能使節(jié)點的活動時間適應(yīng)通信負載的動態(tài)變化,還能大幅減少節(jié)點休眠帶來的延遲。
[1]Akyildiz I F,Melodia T,Chowdhury K R.A survey on wireless multimedia sensor networks[J].Computer Networks,2007,51(4):921 -960.
[2]李瑞芳.無線多媒體傳感器網(wǎng)絡(luò)MAC層關(guān)鍵技術(shù)研究[D].長沙:湖南大學,2010.
[3]Akyildiz I F,Melodia T,Chowdury K R.Wireless multimedia sensor networks:A survey [J].Wireless Communications,IEEE,2007,14(6):32 -39.
[4]羅武勝,翟永平,魯琴.無線多媒體傳感器網(wǎng)絡(luò)研究[J].電子與信息學報,2008,30(6):1511 -1516.
[5]Hu H,Min J,Wang X,et al.The improvement of S - MAC based on dynamic duty cycle in wireless sensor network[C].IEEE International Conference on Computer Science and Automation Engineering,2011(1):341 -345.
[6]An Z.Medium access control protocol with dynamic duty cycle in wireless sensor network[J].Jisuanji Gongcheng Computer Engineering,2011,37(24):611 -619.
[7]葉曉國.基于NS-2的無線傳感器網(wǎng)絡(luò)仿真模塊擴展方法的研究[J].計算機研究與發(fā)展,2011,48(z2):302-306.