韓 瀟,郭達偉,劉 航,李現(xiàn)濤
(西北工業(yè)大學自動化學院,西安710129)
能量有效性是無線傳感器網(wǎng)絡MAC協(xié)議設計的首要問題[1-3]。降低能耗最常用的方法是使傳感器節(jié)點周期性交替處于低功耗的睡眠狀態(tài)和高功耗的工作狀態(tài)。目前,實現(xiàn)睡眠到工作狀態(tài)轉換的機制主要歸為三類:按需喚醒機制、同步喚醒機制和異步喚醒機制[5]。與其它兩種機制相比,異步喚醒不需要額外的喚醒信道,也不需要時鐘同步;每點可選擇自己的喚醒時刻,且每個周期僅需很短的時間對信道進行采樣,從而大大減少了節(jié)點空閑監(jiān)聽的時間。當節(jié)點需發(fā)送數(shù)據(jù)時,利用前導載波技術喚醒目標節(jié)點。數(shù)據(jù)流量較低的應用中,異步喚醒機制的優(yōu)勢尤為明顯。本文主要研究基于CSMA競爭機制的異步喚醒MAC協(xié)議,著眼于降低協(xié)議能耗和減少數(shù)據(jù)延遲。
典型的異步喚醒MAC協(xié)議有BMAC[6]、WiseMAC[7-9]、XMAC[10]、DPS-MAC[11]、CSMA-MPS[12]。BMAC用持續(xù)一個睡眠-工作周期的前導載波來喚醒目標節(jié)點。WiseMAC通過學習和估算鄰居節(jié)點的喚醒時間,在鄰居喚醒采樣前才開始發(fā)送前導載波。XMAC協(xié)議將BMAC中較長的前導載波劃分成一系列短的、帶有間隔的前導載波幀序列,每個短的前導載波幀都包含目的節(jié)點的ID,從而可避免非目標節(jié)點的串音;XMAC還允許目的節(jié)點在前導載波幀的間隔發(fā)送“較早的確認包”,以縮短前導載波長度。DPS-MAC在XMAC的基礎上采用兩次快速前導采樣方法,減少了節(jié)點采樣監(jiān)聽的時間。CSMA-MPS用一種發(fā)送和接收轉換較快的無線發(fā)射器改善了能效和延遲性能。
近年來,針對無線傳感器網(wǎng)絡異步MAC協(xié)議的研究越來越多。但關于異步MAC廣播機制的文獻并不多。眾所周知,廣播是相當重要的一種通信機制。WiseMAC、XMAC及DPS-MAC等經(jīng)典協(xié)議沒有設計廣播機制,一旦有廣播數(shù)據(jù),則需要向各個鄰居節(jié)點分別發(fā)送數(shù)據(jù)。既增大了能耗,又增大了數(shù)據(jù)延遲。BMAC雖然實現(xiàn)了廣播機制,但每次廣播前需發(fā)送持續(xù)一個睡眠-工作周期的前導載波,能耗和數(shù)據(jù)延遲都較大。
本文基于 XMAC,設計了一種新的廣播機制——PBMAC。PBMAC補充了 XMAC的廣播機制,與現(xiàn)有的異步MAC廣播機制(基于BMAC的廣播機制)相比,PBMAC能效性和延遲性均較好。
XMAC[10]將BMAC等協(xié)議中較長的、連續(xù)的前導載波劃分成一系列短的前導載波序列。每個短的前導載波都包含目的節(jié)點的ID。每個接收到短前導載波的節(jié)點都能查看其目的節(jié)點,如果節(jié)點自身不是目的節(jié)點,則該節(jié)點可以提前進入睡眠狀態(tài)。另外,XMAC提出在短的前導載波之間插入一些間隙,在這個間隙里,發(fā)送節(jié)點監(jiān)聽信道,目的接收節(jié)點在采樣到短前導載波后允許發(fā)送一個“較早的確認包”。發(fā)送節(jié)點接收到這個“較早的確認包”后,將停止繼續(xù)發(fā)送短前導載波,而提前發(fā)送數(shù)據(jù)。XMAC協(xié)議示意圖如圖1所示。
圖1 XMAC協(xié)議
PBMAC像XMAC一樣,用多個短的前導載波單元序列代替較長的、連續(xù)的前導載波。PBMAC改進了每個前導載波單元,并引入學習機制,創(chuàng)建鄰居信息表。
PBMAC定義了新的前導載波單元序列(PSs)。消息格式如圖2所示。其中包括控制消息類別、目的節(jié)點ID、節(jié)點下一次采樣時間以及發(fā)送數(shù)據(jù)包的時間。消息類型定義了PS(0x01);目的節(jié)點ID為廣播地址;源節(jié)點通過“下一次采樣時間”向鄰居節(jié)點報告其采樣信息。鄰居節(jié)點根據(jù)“發(fā)數(shù)據(jù)包時間”域估算接收數(shù)據(jù)的時間。
圖2 PBMAC消息格式
PBMAC建立一個鄰居信息表,并為每個鄰居節(jié)點維護一個鄰居表項,如表1所示。鄰居信息表包括鄰居ID、下一次喚醒時刻偏差以及表項更新時間。下一次喚醒時刻偏差等于鄰居節(jié)點控制包中報告的下一次采樣時間減去節(jié)點自己本周期的起始時間,用于估算發(fā)送前導載波的時間。表項更新時間就是節(jié)點收到鄰居節(jié)點控制包并更新“下一次喚醒時刻偏差”的時間。
表1 鄰居信息表
PBMAC根據(jù)鄰居信息表計算前導載波起始時間以及發(fā)送數(shù)據(jù)的時間。在最早進入喚醒狀態(tài)的鄰居節(jié)點喚醒前開始發(fā)送PSs,一直持續(xù)到最晚喚醒的鄰居節(jié)點被喚醒后為止。
鄰居節(jié)點接收到PS后,根據(jù)距離數(shù)據(jù)發(fā)送的剩余時間判斷是否先返回睡眠狀態(tài)。如果剩余時間內監(jiān)聽信道消耗的能量大于關閉和重新開啟無線電的能耗,則節(jié)點先返回睡眠狀態(tài),在數(shù)據(jù)發(fā)送前重新喚醒,反之亦然。廣播通信中接收節(jié)點不對PS序列進行確認。PBMAC的廣播機制的前導載波持續(xù)時間最大值為睡眠-喚醒工作周期。圖3所示為PBMAC協(xié)議示意圖。
圖3 PBMAC協(xié)議
PBMAC協(xié)議學習機制包括初始學習和過程學習。PBMAC協(xié)議定義系統(tǒng)初始化結束后的第一個周期為初始鄰居告知周期。在這個周期內,所有節(jié)點一直處于工作狀態(tài)。每個節(jié)點隨機選擇自己的喚醒采樣偏差,并在初始鄰居告知周期相應的時刻廣播一個前導載波單元(PS)。其它節(jié)點則處于監(jiān)聽狀態(tài),接收到前導載波單元的鄰居節(jié)點可以學習源節(jié)點的采樣時刻偏差。這個過程為初始學習。
PBMAC協(xié)議在前導載波單元序列中插入“下一次采樣時間”的信息。源節(jié)點在發(fā)送數(shù)據(jù)前發(fā)送前導載波單元序列,凡是監(jiān)聽到該前導載波單元序列的所有節(jié)點,能夠學習源節(jié)點的“下一次采樣時間”,從而更新鄰居信息表中對應項,此過程為過程學習。由于源節(jié)點發(fā)送的PSs將覆蓋所有鄰居節(jié)點的采樣時刻,故所有鄰居節(jié)點都可以學習并更新源節(jié)點的“下一次采樣時間”。
PBMAC通過學習機制可以利用鄰居節(jié)點采樣時間估算發(fā)送PSs和數(shù)據(jù)的起始時間。
源節(jié)點需要分別對發(fā)送PSs的起始時間及發(fā)送數(shù)據(jù)的起始時間進行估算。
假設源節(jié)點在0時刻收到來自目的節(jié)點的“下一次喚醒時刻偏差”消息,希望在目的節(jié)點的采樣時刻L發(fā)送數(shù)據(jù)包;且假設所有節(jié)點使用晶體振蕩器作為時鐘源,晶振的容差會導致源節(jié)點和目的節(jié)點之間存在時間偏差,前導載波的持續(xù)時間必須覆蓋該時鐘偏差。假設晶振的容差為±θ,那么前導載波持續(xù)的時間為[6]:
根據(jù)CSMA/CA,節(jié)點在發(fā)送消息前必須先隨機監(jiān)聽信道一段時間,以減少沖突。PBMAC規(guī)定每個節(jié)點在發(fā)送第一個PS前持續(xù)監(jiān)聽信道的時間為:
設發(fā)送節(jié)點的鄰居中下一次采樣最早的時間為,那么發(fā)送PS序列的起始時間為
設發(fā)送節(jié)點的鄰居中下一次采樣最晚的時間為,發(fā)送數(shù)據(jù)的時間即為PS序列的截止時間,那么發(fā)送數(shù)據(jù)的時間為
XMAC和WiseMAC沒有實現(xiàn)廣播機制,本文基于NS2對BMAC和PBMAC協(xié)議進行了仿真和比較。本文主要關注兩個性能指標:能耗和延遲。不同睡眠-工作周期以及不同的發(fā)包速率對節(jié)點性能影響較大,故分別選取不同睡眠-工作周期和發(fā)包間隔進行兩組實驗。實驗主要參數(shù)設置如表2所示。
表2 仿真主要參數(shù)設置
分別采用5個節(jié)點和10個節(jié)點構成的星型拓撲結構,其中一個節(jié)點為中心節(jié)點,其余節(jié)點為它的鄰居節(jié)點。中心節(jié)點為源節(jié)點,其余節(jié)點為鄰居節(jié)點。
實驗中,發(fā)包間隔為1,即每秒鐘產(chǎn)生一個數(shù)據(jù)包,睡眠-工作周期的變化范圍是100 ms到900 ms。圖4、圖5和圖6分別是睡眠-工作周期變化時,BMAC和PBMAC前導載波能耗、源節(jié)點能耗和全網(wǎng)總能耗比較圖。圖7比較了不同睡眠-工作周期下,BMAC和PBMAC延遲性能。BMAC協(xié)議前導載波的長度等于睡眠-工作周期,因此隨著睡眠-工作周期的增大,BMAC發(fā)送前導載波的能耗隨之增加。不論鄰居節(jié)點的個數(shù)是多少、其采樣周期如何分布,BMAC均發(fā)送持續(xù)一個周期長度的前導載波,因此,增加鄰居節(jié)點個數(shù),BMAC協(xié)議的前導載波能耗和源節(jié)點能耗不變,但全網(wǎng)整體能耗增大。對于PBMAC,睡眠-工作周期越大,其需要覆蓋所有鄰居節(jié)點采樣時刻的前導載波越長,故前導載波能耗也越大。一定時間內,睡眠-工作周期越大,空閑監(jiān)聽能耗越小,但發(fā)包能耗大約等于空閑監(jiān)聽能耗的2倍,且實驗中發(fā)包速率較高,空閑監(jiān)聽時間短,所以源節(jié)點能以及網(wǎng)絡總能耗都隨著睡眠-工作周期的增加而增加。節(jié)點數(shù)越多,PBMAC平均發(fā)送的前導載波越長,能耗越大。PBMAC發(fā)送的前導載波的最大長度等于一個睡眠-工作周期,因此PBMAC能耗不會大于BMAC能耗。
圖4 前導載波能耗
圖5 源節(jié)點能耗
圖6 全網(wǎng)總能耗
圖7 延遲
實驗中,睡眠-工作周期為200 ms,數(shù)據(jù)包產(chǎn)生的間隔變化范圍是0.5 s~10 s。圖8、圖9和圖10分別是發(fā)包間隔變化時,BMAC和PBMAC前導載波能耗、源節(jié)點能耗和全網(wǎng)總能耗比較圖。發(fā)包間隔越大,一定時間
圖8 前導載波能耗
內產(chǎn)生數(shù)據(jù)包的數(shù)目減少,而睡眠-工作周期一定,每次發(fā)包前的前導載波長度和能耗一定,故隨著發(fā)包間隔的增大,前導載波能耗、源節(jié)點能耗以及全網(wǎng)總能耗都增減小,而數(shù)據(jù)包延遲不變,數(shù)據(jù)包延遲如圖11所示。
圖9 源節(jié)點能耗
圖10 全網(wǎng)總能耗
圖11 延遲
PBMAC實現(xiàn)了基于XMAC的廣播機制。從NS2仿真實驗可看出,與基于BMAC的廣播機制相比,PBMAC具有較高的能效性和較低的延遲。其優(yōu)勢主要源自縮短的前導載波和減少的串音。在今后的研究中,還需要對PBMAC做進一步的理論分析和驗證,設計更加復雜的仿真和實驗模型,并且選取硬件平臺,實現(xiàn)實物驗證。
[1]Akyildiz I F,Su W,Sankarasubramaniam Y,et al.A Survey on Sensor Networks[J].IEEE Communications Magazine,2002,40(8):102-114.
[2]Tseng Y C,Hsu C S,Hsieh T Y.Power-Saving Protocols for IEEE 802.11-Based Multi-Hop Ad Hoc Networks[J].Computer Networks,2003,43(3):317-337.
[3]Langendoen K.Medium Access Control in Wireless Sensor Networks[J].Medium Access Control in Wireless Networks,2008,2:535-560.
[4]Zheng R,Hou J C,Sha L.Asynchronous Wakeup for Ad Hoc Networks[Z].ACM,2003:35-45.
[5]Park T R,Park K J,Lee M J.Design and Analysis of Asynchronous Wakeup for Wireless Sensor Networks[J].IEEE Transactions on Wireless Communications,2009,8(11):5530-5541.
[6]Polastr J,Hill J,Culler D.Versatile Low Power Media Access for Wireless Sensor Networks[Z].In The Second ACM Conference on Embedded Networked Sensor Systems(SenSys),November,2004:95-107.
[7]El-Hoiydi A,Decotignie J D.WiseMAC:An Ultra Low Power MAC Protocol for Multi-Hop Wireless Sensor Networks[J].Algorithmic Aspects of Wireless Sensor Networks,2004:18-31.
[8]Amre El-Hoiydi,Jean-Dominique Decotignie,Jean Hernandez.Low Power MAC Protocols for Infrastructure Wireless Sensor Networks[Z].In Proc.European Wireless(EW'04),Barcelona,Spain,F(xiàn)eb 2004:563-569.
[9]Hurni P,Braun T.Evaluation of WiseMAC on Sensor Nodes[J].10th IFIP International Conference on Mobile and Wireless Communications Networks.Toulouse,2008:187-198.
[10]Buettner M,Yee G V,Anderson E,et al.X-MAC:A Short Preamble MAC Protocol for Duty-Cycled Wireless Sensor Networks[Z].4th ACM Conference on Embedded Networked Sensor Systems,2006:307-320.
[11]Wang H,Zhang X,Na T-Abdesselam F,et al.Dps-Mac:An Asynchronous Mac Protocol for Wireless Sensor Networks[Z].In Proc.14th IEEE International Conference on High performance Computing(IEEE HiPC)Goa,India,December 2007:18-21.
[12]Mahlhecht S,Vienna I,Bock M.CSMA-MPS:A Minimum Preamble Sampling MAC Protocol for Low Power Wireless Sensor Networks[J].In IEEE Int.Workshop on Factory Communication Systems,2004:73-80.