韓 瀟,郭達(dá)偉,劉 航,李現(xiàn)濤
(西北工業(yè)大學(xué)自動(dòng)化學(xué)院,西安710129)
能量有效性是無線傳感器網(wǎng)絡(luò)MAC協(xié)議設(shè)計(jì)的首要問題[1-3]。降低能耗最常用的方法是使傳感器節(jié)點(diǎn)周期性交替處于低功耗的睡眠狀態(tài)和高功耗的工作狀態(tài)。目前,實(shí)現(xiàn)睡眠到工作狀態(tài)轉(zhuǎn)換的機(jī)制主要?dú)w為三類:按需喚醒機(jī)制、同步喚醒機(jī)制和異步喚醒機(jī)制[5]。與其它兩種機(jī)制相比,異步喚醒不需要額外的喚醒信道,也不需要時(shí)鐘同步;每點(diǎn)可選擇自己的喚醒時(shí)刻,且每個(gè)周期僅需很短的時(shí)間對(duì)信道進(jìn)行采樣,從而大大減少了節(jié)點(diǎn)空閑監(jiān)聽的時(shí)間。當(dāng)節(jié)點(diǎn)需發(fā)送數(shù)據(jù)時(shí),利用前導(dǎo)載波技術(shù)喚醒目標(biāo)節(jié)點(diǎn)。數(shù)據(jù)流量較低的應(yīng)用中,異步喚醒機(jī)制的優(yōu)勢(shì)尤為明顯。本文主要研究基于CSMA競(jìng)爭(zhēng)機(jī)制的異步喚醒MAC協(xié)議,著眼于降低協(xié)議能耗和減少數(shù)據(jù)延遲。
典型的異步喚醒MAC協(xié)議有BMAC[6]、WiseMAC[7-9]、XMAC[10]、DPS-MAC[11]、CSMA-MPS[12]。BMAC用持續(xù)一個(gè)睡眠-工作周期的前導(dǎo)載波來喚醒目標(biāo)節(jié)點(diǎn)。WiseMAC通過學(xué)習(xí)和估算鄰居節(jié)點(diǎn)的喚醒時(shí)間,在鄰居喚醒采樣前才開始發(fā)送前導(dǎo)載波。XMAC協(xié)議將BMAC中較長(zhǎng)的前導(dǎo)載波劃分成一系列短的、帶有間隔的前導(dǎo)載波幀序列,每個(gè)短的前導(dǎo)載波幀都包含目的節(jié)點(diǎn)的ID,從而可避免非目標(biāo)節(jié)點(diǎn)的串音;XMAC還允許目的節(jié)點(diǎn)在前導(dǎo)載波幀的間隔發(fā)送“較早的確認(rèn)包”,以縮短前導(dǎo)載波長(zhǎng)度。DPS-MAC在XMAC的基礎(chǔ)上采用兩次快速前導(dǎo)采樣方法,減少了節(jié)點(diǎn)采樣監(jiān)聽的時(shí)間。CSMA-MPS用一種發(fā)送和接收轉(zhuǎn)換較快的無線發(fā)射器改善了能效和延遲性能。
近年來,針對(duì)無線傳感器網(wǎng)絡(luò)異步MAC協(xié)議的研究越來越多。但關(guān)于異步MAC廣播機(jī)制的文獻(xiàn)并不多。眾所周知,廣播是相當(dāng)重要的一種通信機(jī)制。WiseMAC、XMAC及DPS-MAC等經(jīng)典協(xié)議沒有設(shè)計(jì)廣播機(jī)制,一旦有廣播數(shù)據(jù),則需要向各個(gè)鄰居節(jié)點(diǎn)分別發(fā)送數(shù)據(jù)。既增大了能耗,又增大了數(shù)據(jù)延遲。BMAC雖然實(shí)現(xiàn)了廣播機(jī)制,但每次廣播前需發(fā)送持續(xù)一個(gè)睡眠-工作周期的前導(dǎo)載波,能耗和數(shù)據(jù)延遲都較大。
本文基于 XMAC,設(shè)計(jì)了一種新的廣播機(jī)制——PBMAC。PBMAC補(bǔ)充了 XMAC的廣播機(jī)制,與現(xiàn)有的異步MAC廣播機(jī)制(基于BMAC的廣播機(jī)制)相比,PBMAC能效性和延遲性均較好。
XMAC[10]將BMAC等協(xié)議中較長(zhǎng)的、連續(xù)的前導(dǎo)載波劃分成一系列短的前導(dǎo)載波序列。每個(gè)短的前導(dǎo)載波都包含目的節(jié)點(diǎn)的ID。每個(gè)接收到短前導(dǎo)載波的節(jié)點(diǎn)都能查看其目的節(jié)點(diǎn),如果節(jié)點(diǎn)自身不是目的節(jié)點(diǎn),則該節(jié)點(diǎn)可以提前進(jìn)入睡眠狀態(tài)。另外,XMAC提出在短的前導(dǎo)載波之間插入一些間隙,在這個(gè)間隙里,發(fā)送節(jié)點(diǎn)監(jiān)聽信道,目的接收節(jié)點(diǎn)在采樣到短前導(dǎo)載波后允許發(fā)送一個(gè)“較早的確認(rèn)包”。發(fā)送節(jié)點(diǎn)接收到這個(gè)“較早的確認(rèn)包”后,將停止繼續(xù)發(fā)送短前導(dǎo)載波,而提前發(fā)送數(shù)據(jù)。XMAC協(xié)議示意圖如圖1所示。
圖1 XMAC協(xié)議
PBMAC像XMAC一樣,用多個(gè)短的前導(dǎo)載波單元序列代替較長(zhǎng)的、連續(xù)的前導(dǎo)載波。PBMAC改進(jìn)了每個(gè)前導(dǎo)載波單元,并引入學(xué)習(xí)機(jī)制,創(chuàng)建鄰居信息表。
PBMAC定義了新的前導(dǎo)載波單元序列(PSs)。消息格式如圖2所示。其中包括控制消息類別、目的節(jié)點(diǎn)ID、節(jié)點(diǎn)下一次采樣時(shí)間以及發(fā)送數(shù)據(jù)包的時(shí)間。消息類型定義了PS(0x01);目的節(jié)點(diǎn)ID為廣播地址;源節(jié)點(diǎn)通過“下一次采樣時(shí)間”向鄰居節(jié)點(diǎn)報(bào)告其采樣信息。鄰居節(jié)點(diǎn)根據(jù)“發(fā)數(shù)據(jù)包時(shí)間”域估算接收數(shù)據(jù)的時(shí)間。
圖2 PBMAC消息格式
PBMAC建立一個(gè)鄰居信息表,并為每個(gè)鄰居節(jié)點(diǎn)維護(hù)一個(gè)鄰居表項(xiàng),如表1所示。鄰居信息表包括鄰居ID、下一次喚醒時(shí)刻偏差以及表項(xiàng)更新時(shí)間。下一次喚醒時(shí)刻偏差等于鄰居節(jié)點(diǎn)控制包中報(bào)告的下一次采樣時(shí)間減去節(jié)點(diǎn)自己本周期的起始時(shí)間,用于估算發(fā)送前導(dǎo)載波的時(shí)間。表項(xiàng)更新時(shí)間就是節(jié)點(diǎn)收到鄰居節(jié)點(diǎn)控制包并更新“下一次喚醒時(shí)刻偏差”的時(shí)間。
表1 鄰居信息表
PBMAC根據(jù)鄰居信息表計(jì)算前導(dǎo)載波起始時(shí)間以及發(fā)送數(shù)據(jù)的時(shí)間。在最早進(jìn)入喚醒狀態(tài)的鄰居節(jié)點(diǎn)喚醒前開始發(fā)送PSs,一直持續(xù)到最晚喚醒的鄰居節(jié)點(diǎn)被喚醒后為止。
鄰居節(jié)點(diǎn)接收到PS后,根據(jù)距離數(shù)據(jù)發(fā)送的剩余時(shí)間判斷是否先返回睡眠狀態(tài)。如果剩余時(shí)間內(nèi)監(jiān)聽信道消耗的能量大于關(guān)閉和重新開啟無線電的能耗,則節(jié)點(diǎn)先返回睡眠狀態(tài),在數(shù)據(jù)發(fā)送前重新喚醒,反之亦然。廣播通信中接收節(jié)點(diǎn)不對(duì)PS序列進(jìn)行確認(rèn)。PBMAC的廣播機(jī)制的前導(dǎo)載波持續(xù)時(shí)間最大值為睡眠-喚醒工作周期。圖3所示為PBMAC協(xié)議示意圖。
圖3 PBMAC協(xié)議
PBMAC協(xié)議學(xué)習(xí)機(jī)制包括初始學(xué)習(xí)和過程學(xué)習(xí)。PBMAC協(xié)議定義系統(tǒng)初始化結(jié)束后的第一個(gè)周期為初始鄰居告知周期。在這個(gè)周期內(nèi),所有節(jié)點(diǎn)一直處于工作狀態(tài)。每個(gè)節(jié)點(diǎn)隨機(jī)選擇自己的喚醒采樣偏差,并在初始鄰居告知周期相應(yīng)的時(shí)刻廣播一個(gè)前導(dǎo)載波單元(PS)。其它節(jié)點(diǎn)則處于監(jiān)聽狀態(tài),接收到前導(dǎo)載波單元的鄰居節(jié)點(diǎn)可以學(xué)習(xí)源節(jié)點(diǎn)的采樣時(shí)刻偏差。這個(gè)過程為初始學(xué)習(xí)。
PBMAC協(xié)議在前導(dǎo)載波單元序列中插入“下一次采樣時(shí)間”的信息。源節(jié)點(diǎn)在發(fā)送數(shù)據(jù)前發(fā)送前導(dǎo)載波單元序列,凡是監(jiān)聽到該前導(dǎo)載波單元序列的所有節(jié)點(diǎn),能夠?qū)W習(xí)源節(jié)點(diǎn)的“下一次采樣時(shí)間”,從而更新鄰居信息表中對(duì)應(yīng)項(xiàng),此過程為過程學(xué)習(xí)。由于源節(jié)點(diǎn)發(fā)送的PSs將覆蓋所有鄰居節(jié)點(diǎn)的采樣時(shí)刻,故所有鄰居節(jié)點(diǎn)都可以學(xué)習(xí)并更新源節(jié)點(diǎn)的“下一次采樣時(shí)間”。
PBMAC通過學(xué)習(xí)機(jī)制可以利用鄰居節(jié)點(diǎn)采樣時(shí)間估算發(fā)送PSs和數(shù)據(jù)的起始時(shí)間。
源節(jié)點(diǎn)需要分別對(duì)發(fā)送PSs的起始時(shí)間及發(fā)送數(shù)據(jù)的起始時(shí)間進(jìn)行估算。
假設(shè)源節(jié)點(diǎn)在0時(shí)刻收到來自目的節(jié)點(diǎn)的“下一次喚醒時(shí)刻偏差”消息,希望在目的節(jié)點(diǎn)的采樣時(shí)刻L發(fā)送數(shù)據(jù)包;且假設(shè)所有節(jié)點(diǎn)使用晶體振蕩器作為時(shí)鐘源,晶振的容差會(huì)導(dǎo)致源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間存在時(shí)間偏差,前導(dǎo)載波的持續(xù)時(shí)間必須覆蓋該時(shí)鐘偏差。假設(shè)晶振的容差為±θ,那么前導(dǎo)載波持續(xù)的時(shí)間為[6]:
根據(jù)CSMA/CA,節(jié)點(diǎn)在發(fā)送消息前必須先隨機(jī)監(jiān)聽信道一段時(shí)間,以減少?zèng)_突。PBMAC規(guī)定每個(gè)節(jié)點(diǎn)在發(fā)送第一個(gè)PS前持續(xù)監(jiān)聽信道的時(shí)間為:
設(shè)發(fā)送節(jié)點(diǎn)的鄰居中下一次采樣最早的時(shí)間為,那么發(fā)送PS序列的起始時(shí)間為
設(shè)發(fā)送節(jié)點(diǎn)的鄰居中下一次采樣最晚的時(shí)間為,發(fā)送數(shù)據(jù)的時(shí)間即為PS序列的截止時(shí)間,那么發(fā)送數(shù)據(jù)的時(shí)間為
XMAC和WiseMAC沒有實(shí)現(xiàn)廣播機(jī)制,本文基于NS2對(duì)BMAC和PBMAC協(xié)議進(jìn)行了仿真和比較。本文主要關(guān)注兩個(gè)性能指標(biāo):能耗和延遲。不同睡眠-工作周期以及不同的發(fā)包速率對(duì)節(jié)點(diǎn)性能影響較大,故分別選取不同睡眠-工作周期和發(fā)包間隔進(jìn)行兩組實(shí)驗(yàn)。實(shí)驗(yàn)主要參數(shù)設(shè)置如表2所示。
表2 仿真主要參數(shù)設(shè)置
分別采用5個(gè)節(jié)點(diǎn)和10個(gè)節(jié)點(diǎn)構(gòu)成的星型拓?fù)浣Y(jié)構(gòu),其中一個(gè)節(jié)點(diǎn)為中心節(jié)點(diǎn),其余節(jié)點(diǎn)為它的鄰居節(jié)點(diǎn)。中心節(jié)點(diǎn)為源節(jié)點(diǎn),其余節(jié)點(diǎn)為鄰居節(jié)點(diǎn)。
實(shí)驗(yàn)中,發(fā)包間隔為1,即每秒鐘產(chǎn)生一個(gè)數(shù)據(jù)包,睡眠-工作周期的變化范圍是100 ms到900 ms。圖4、圖5和圖6分別是睡眠-工作周期變化時(shí),BMAC和PBMAC前導(dǎo)載波能耗、源節(jié)點(diǎn)能耗和全網(wǎng)總能耗比較圖。圖7比較了不同睡眠-工作周期下,BMAC和PBMAC延遲性能。BMAC協(xié)議前導(dǎo)載波的長(zhǎng)度等于睡眠-工作周期,因此隨著睡眠-工作周期的增大,BMAC發(fā)送前導(dǎo)載波的能耗隨之增加。不論鄰居節(jié)點(diǎn)的個(gè)數(shù)是多少、其采樣周期如何分布,BMAC均發(fā)送持續(xù)一個(gè)周期長(zhǎng)度的前導(dǎo)載波,因此,增加鄰居節(jié)點(diǎn)個(gè)數(shù),BMAC協(xié)議的前導(dǎo)載波能耗和源節(jié)點(diǎn)能耗不變,但全網(wǎng)整體能耗增大。對(duì)于PBMAC,睡眠-工作周期越大,其需要覆蓋所有鄰居節(jié)點(diǎn)采樣時(shí)刻的前導(dǎo)載波越長(zhǎng),故前導(dǎo)載波能耗也越大。一定時(shí)間內(nèi),睡眠-工作周期越大,空閑監(jiān)聽能耗越小,但發(fā)包能耗大約等于空閑監(jiān)聽能耗的2倍,且實(shí)驗(yàn)中發(fā)包速率較高,空閑監(jiān)聽時(shí)間短,所以源節(jié)點(diǎn)能以及網(wǎng)絡(luò)總能耗都隨著睡眠-工作周期的增加而增加。節(jié)點(diǎn)數(shù)越多,PBMAC平均發(fā)送的前導(dǎo)載波越長(zhǎng),能耗越大。PBMAC發(fā)送的前導(dǎo)載波的最大長(zhǎng)度等于一個(gè)睡眠-工作周期,因此PBMAC能耗不會(huì)大于BMAC能耗。
圖4 前導(dǎo)載波能耗
圖5 源節(jié)點(diǎn)能耗
圖6 全網(wǎng)總能耗
圖7 延遲
實(shí)驗(yàn)中,睡眠-工作周期為200 ms,數(shù)據(jù)包產(chǎn)生的間隔變化范圍是0.5 s~10 s。圖8、圖9和圖10分別是發(fā)包間隔變化時(shí),BMAC和PBMAC前導(dǎo)載波能耗、源節(jié)點(diǎn)能耗和全網(wǎng)總能耗比較圖。發(fā)包間隔越大,一定時(shí)間
圖8 前導(dǎo)載波能耗
內(nèi)產(chǎn)生數(shù)據(jù)包的數(shù)目減少,而睡眠-工作周期一定,每次發(fā)包前的前導(dǎo)載波長(zhǎng)度和能耗一定,故隨著發(fā)包間隔的增大,前導(dǎo)載波能耗、源節(jié)點(diǎn)能耗以及全網(wǎng)總能耗都增減小,而數(shù)據(jù)包延遲不變,數(shù)據(jù)包延遲如圖11所示。
圖9 源節(jié)點(diǎn)能耗
圖10 全網(wǎng)總能耗
圖11 延遲
PBMAC實(shí)現(xiàn)了基于XMAC的廣播機(jī)制。從NS2仿真實(shí)驗(yàn)可看出,與基于BMAC的廣播機(jī)制相比,PBMAC具有較高的能效性和較低的延遲。其優(yōu)勢(shì)主要源自縮短的前導(dǎo)載波和減少的串音。在今后的研究中,還需要對(duì)PBMAC做進(jìn)一步的理論分析和驗(yàn)證,設(shè)計(jì)更加復(fù)雜的仿真和實(shí)驗(yàn)?zāi)P?,并且選取硬件平臺(tái),實(shí)現(xiàn)實(shí)物驗(yà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.