
其中,RandNum為每調(diào)用一次rand方法產(chǎn)生的隨機數(shù)。節(jié)點將產(chǎn)生的隨機數(shù)RandNum作為節(jié)點喚醒時間間隔,生成偽隨機時間表。
因此,通過獲取鄰居節(jié)點的隨機種子同樣可以推導出其喚醒時間表的喚醒時間間隔。
2.3 預測目標節(jié)點喚醒時間算法
PB-MAC協(xié)議的報頭(beacon分組)包含節(jié)點的隨機種子Seed、最近一次喚醒時間lastT 和節(jié)點當前時間curT 。節(jié)點根據(jù)收到目標節(jié)點的 beacon分組可據(jù)式(2)和式(3)計算出其下一次喚醒時間NextTimeWakeup。

其中,locT 為本地節(jié)點時間,diffT 為本地節(jié)點與目標節(jié)點的時差。
圖 2是發(fā)送節(jié)點 S通過目標接收節(jié)點 R的beacon分組來預測R下一次喚醒時間的偽代碼。其算法的核心思想是:如果R的相關(guān)參數(shù)未知,則立即偵聽信道;否則根據(jù)R的隨機種子、當前時間和最近一次喚醒時間信息計算R的下一次喚醒時間。

圖2 節(jié)點S預測節(jié)點R喚醒時間的偽代碼
其中,Seed[R]為目標接收節(jié)點 R的隨機種子,currentTime[R]為 R的當前時間,Tcur[R]為 R發(fā)送beacon分組的時間,Tlast[R]為R的最近一次喚醒時間,nextWakeupTime[R]是預測下一次R的喚醒時間(初始值為R的最近一次喚醒時間)。

圖3 發(fā)送節(jié)點與接收節(jié)點數(shù)據(jù)傳輸
如圖3所示,發(fā)送節(jié)點S首次向目標接收節(jié)點R建立連接需要一直醒來偵聽R的beacon分組,S在收到R的beacon分組后向R發(fā)起建立連接傳輸數(shù)據(jù)。當S下一次需要向R發(fā)送數(shù)據(jù)時,根據(jù)式(3)和式(4)來精確推導目標節(jié)點喚醒時間,在此時間喚醒偵聽R的beacon分組,并在收到R的beacon分組后向R發(fā)起建立連接。
綜上所述,PB-MAC報頭beacon分組僅需攜帶2 byte Seed、4 bytelastT 和4 bytecurT 共10 byte的預測信息,即可完成對鄰居節(jié)點喚醒時間的預測,具有報頭短和低開銷的特征。
2.4 預測重建連接機制
針對2個隱藏終端節(jié)點可能同時向目標節(jié)點發(fā)起建立連接請求而導致建立連接失敗的情況,PB-MAC采用隨機延退和釋放預測的方法規(guī)避沖突和提高重連接效率。
隨機延退是指多個發(fā)送節(jié)點收到同一目標接收節(jié)點R的廣播beacon分組后,在[0,cT]內(nèi)各自隨機延退一段時間dT,再向R發(fā)起建立連接,實現(xiàn)規(guī)避沖突,提高連接成功率,dT需滿足

其中,Tdelay為端到端傳輸時延,即 R TT / 2。結(jié)合式(1)和式(5)可得:Td≤RTT/2,因此取Tc=RTT/2。
以圖4為例,在發(fā)送節(jié)點S1和S2同時收到R的beacon分組后不是立即向R發(fā)起建立連接,而是在延退[0, /2RTT ]區(qū)間的隨機時間后再向R發(fā)起建立連接。由于 S2延退時間小于 S1延退時間,所以S2成功與R建立連接。
針對建立連接失敗的節(jié)點,PB-MAC采用釋放預測機制來重建連接。具體預測規(guī)則分以下情況進行計算。

圖4 預測重建連接機制
1) 若收到目標節(jié)點發(fā)送給其他節(jié)點的CTS幀,則目標節(jié)點傳完數(shù)據(jù)后釋放連接的預計時間nextT 為

其中,hT為處理單位數(shù)據(jù)的時間,dIR為目標節(jié)點還需接收數(shù)據(jù)分組的個數(shù),ctsT 為收到目標節(jié)點CTS幀的時間。
2) 若收到目標節(jié)點發(fā)送給其他節(jié)點的Data數(shù)據(jù)分組,則目標節(jié)點傳完數(shù)據(jù)后釋放連接的預計時間nextT 為

其中, I Sd為目標節(jié)點還需發(fā)送數(shù)據(jù)分組的個數(shù),Tdata為收到目標節(jié)點Data數(shù)據(jù)分組的時間。
3) 其他情況,立即進入休眠。如圖4所示發(fā)送節(jié)點S1在建立連接失敗后,收到目標節(jié)點R發(fā)送給節(jié)點S2的CTS幀。S1根據(jù)收到R的CTS幀,依式(6)推導R接收完數(shù)據(jù)釋放的連接時間,并在此時間向R發(fā)起建立連接。
2.5 預測數(shù)據(jù)重傳機制
基于無線網(wǎng)絡的不穩(wěn)定性和網(wǎng)絡去擁塞的時滯性,在出現(xiàn)分組丟失時,PB-MAC要求發(fā)送節(jié)點和接收節(jié)點盡快進入休眠模式,達到降低占空比的目的。
在分組丟失后,發(fā)送節(jié)點和接收節(jié)點的具體表現(xiàn)為:發(fā)送節(jié)點首先啟動2.3節(jié)所述的預測目標喚醒算法計算接收節(jié)點下一次的喚醒時間,然后轉(zhuǎn)入休眠狀態(tài);接收節(jié)點在沒有收到后續(xù)有效數(shù)據(jù)或者數(shù)據(jù)已經(jīng)傳送完畢時進入休眠狀態(tài)。
由于發(fā)送節(jié)點和接收節(jié)點均進入休眠狀態(tài),等待目標節(jié)點下一次醒來再重傳該數(shù)據(jù)。如圖3所示,當S發(fā)送第二個數(shù)據(jù)分組出現(xiàn)分組丟失后馬上進入休眠,在R第3次醒來后再重傳該數(shù)據(jù)。
3 仿真與分析
3.1 仿真參數(shù)與環(huán)境說明
實驗采用OMNet++軟件對比分析了PB-MAC、RI-MAC和X-MAC的性能,采用MATLAB輔助分析實驗數(shù)據(jù)。為了保障3個協(xié)議的可比性,分別對每個協(xié)議進行如表1所示設置。

表1 協(xié)議參數(shù)設置
在PB-MAC中,為保障節(jié)點間隨機種子盡可能不相近,隨機種子產(chǎn)生式的參數(shù)a、c、m分別設置為20、7和999。
實驗模擬運行500 s,節(jié)點每隔[500,1 500] ms產(chǎn)生一個數(shù)據(jù)分組,數(shù)據(jù)傳輸時延設定為5 ms。為了檢測節(jié)點的消息負載量,假設節(jié)點的消息緩沖區(qū)是無限大。仿真中測量以下指標。
1) 平均占空比:節(jié)點處于偵聽狀態(tài)占整個實驗時間的比率。
2) 數(shù)據(jù)傳遞率:基站接收到的數(shù)據(jù)總量占所有節(jié)點產(chǎn)生的數(shù)據(jù)總量的比率。
3) 端到端的數(shù)據(jù)延遲:從節(jié)點產(chǎn)生數(shù)據(jù)或收到數(shù)據(jù)開始到該數(shù)據(jù)成功被下一跳節(jié)點接收的平均時間。
4) 消息負載量:節(jié)點在整個實驗時間中消息隊列的最大數(shù)據(jù)量。
5) 發(fā)送耗能:發(fā)送消息消耗的能量,以發(fā)送單位數(shù)據(jù)消耗1個單位的能量來計量。
6) 碰撞次數(shù):節(jié)點在激活狀態(tài)同時收到2個及以上發(fā)送節(jié)點數(shù)據(jù)的次數(shù)。
3.2 隨機網(wǎng)絡評估
在900 m×900 m的方形區(qū)域內(nèi)隨機部署49個節(jié)點,在中心部署1個基站,節(jié)點通信半徑為200 m。表2為PB-MAC、RI-MAC和X-MAC在消息傳遞率、占空比、端到端延遲、最大消息負載量、發(fā)送數(shù)據(jù)耗能和平均碰撞次數(shù)指標的對比。

表2 隨機網(wǎng)絡性能對比
表2表明,PB-MAC在保持高傳遞率和低延遲的情況下,占空比、平均發(fā)送數(shù)據(jù)耗能和碰撞次數(shù)3個性能分別比RI-MAC降低了68.60%、24.75%、68.05%,比 X-MAC降低了 64.39%、64.05%、70.54%。這是因為PB-MAC通過精確估計目標節(jié)點的喚醒時間,避免像RI-MAC和X-MAC那樣每次醒來偵聽信道,等待與目標節(jié)點建立連接。在隨機網(wǎng)絡中由于節(jié)點分布不均,容易導致數(shù)據(jù)分組丟失,而PB-MAC協(xié)議在數(shù)據(jù)分組丟失后采用2.5節(jié)所示的快速進入休眠狀態(tài)的重傳機制,故在延遲性能上比RI-MAC和X-MAC略高。
當發(fā)送節(jié)點有數(shù)據(jù)需要發(fā)送時,RI-MAC采用被動等待方式,X-MAC采用不斷向目標節(jié)點發(fā)送請求分組的主動建立連接方式,所以RI-MAC的發(fā)送耗能遠小于X-MAC。PB-MAC中的預測機制使得發(fā)送節(jié)點與接收節(jié)點建立起連接的無效請求較少,發(fā)送數(shù)據(jù)耗能也較小。
表2顯示在消息傳遞率相近的情況下,發(fā)送數(shù)據(jù)耗能與碰撞次數(shù)成正相關(guān)。由于RI-MAC碰撞窗口每次從0開始增加,而X-MAC的碰撞窗口固定為32,故RI-MAC的碰撞次數(shù)偏高。PB-MAC采用預測重建連接機制能提高連接的成功率和減少擁塞時的無效傳輸,故碰撞次數(shù)最少。
3.3 網(wǎng)格網(wǎng)絡評估
在網(wǎng)格網(wǎng)絡中,基站處于網(wǎng)絡的中央位置,每個節(jié)點與其鄰居節(jié)點的距離為100 m,節(jié)點通信半徑為100 m。網(wǎng)格規(guī)模從4×4(16節(jié)點)逐步擴大到 9×9(81 節(jié)點)。
圖5是PB-MAC、RI-MAC和X-MAC在網(wǎng)格網(wǎng)絡環(huán)境中的各項性能對比圖。圖5(a)是PB-MAC、RI-MAC和X-MAC協(xié)議在網(wǎng)格網(wǎng)絡環(huán)境中的占空比性能對比圖。由于RI-MAC和X-MAC協(xié)議中發(fā)送節(jié)點平均需醒來等待半個RTT的空閑偵聽時間,才能與目標接收節(jié)點建立起連接,而使用預測機制的PB-MAC等待的偵聽時間接近0。因此,PB-MAC中發(fā)送節(jié)點具有占空比較低的顯著優(yōu)勢。RI-MAC中發(fā)送節(jié)點避免了X-MAC中大量的preamble分組占用信道,信道利用率較高。因此,RI-MAC較X-MAC略占優(yōu)勢。
圖5(b)是PB-MAC、RI-MAC和X-MAC協(xié)議在網(wǎng)格網(wǎng)絡環(huán)境中的平均發(fā)送消息能耗對比圖。由于 PB-MAC采用預測機制使得發(fā)送節(jié)點與目標節(jié)點成功建立連接的幾率較高,僅需要少量的RTS請求分組,失效請求少。因此,平均發(fā)送消息耗能單位在 3個協(xié)議中最少。X-MAC中大量無效的preamble請求分組使耗能較RI-MAC高。
圖5(c)是PB-MAC、RI-MAC和X-MAC協(xié)議在網(wǎng)格網(wǎng)絡環(huán)境中的平均和最大碰撞次數(shù)對比圖。3 種協(xié)議在奇網(wǎng)格(5×5、7×7、9×9)和偶網(wǎng)格(4×4、6×6、8×8)下的平均碰撞次數(shù)分別呈現(xiàn)遞增狀態(tài)。另外,由于基站一直處于偵聽狀態(tài),偶網(wǎng)格中的碰撞次數(shù)要明顯多于奇網(wǎng)格。
圖5(d)是PB-MAC、RI-MAC和X-MAC協(xié)議在網(wǎng)格網(wǎng)絡環(huán)境中的端到端延遲對比圖。3種協(xié)議的端到端延遲隨網(wǎng)格規(guī)模的變化基本保持一致。RI-MAC與X-MAC以付出高占空比的代價減少延遲,而PB-MAC以高效的預測重建連接機制,保障低延遲。

圖5 網(wǎng)格網(wǎng)絡性能參數(shù)對比
圖 5(e)是 PB-MAC、RI-MAC和 X-MAC協(xié)議在網(wǎng)格網(wǎng)絡環(huán)境中的分組傳遞率對比圖。從圖中可以看出,當網(wǎng)絡邊緣節(jié)點大于7時,所有協(xié)議分組傳遞率急劇下降,這與圖 5(d)中網(wǎng)絡邊緣節(jié)點大于 7后延遲劇增相對應。實驗發(fā)現(xiàn),當規(guī)模超過 7×7(49節(jié)點)后,網(wǎng)絡開始出現(xiàn)擁塞。
圖5(f)是PB-MAC、RI-MAC和X-MAC協(xié)議在網(wǎng)格網(wǎng)絡環(huán)境中的平均和最大消息負載量對比圖。在網(wǎng)絡邊緣節(jié)點數(shù)小于7時,3種協(xié)議的平均消息負載量基本維持在 20左右。當網(wǎng)絡邊緣節(jié)點數(shù)大于7后,平均消息負載量急劇上升,也印證了網(wǎng)絡出現(xiàn)擁塞。
總體來看,PB-MAC在占空比、發(fā)送消息耗能、碰撞次數(shù)3個性能上表現(xiàn)出明顯優(yōu)勢。另外,在網(wǎng)絡出現(xiàn)擁塞之前,隨著節(jié)點規(guī)模的增大,PB-MAC在占空比、發(fā)送消息耗能、最大碰撞次數(shù)和平均碰撞次數(shù)指標上基本呈線性增長,穩(wěn)定性好。在網(wǎng)絡出現(xiàn)嚴重擁塞之后,在占空比、碰撞次數(shù)指標上,PB-MAC仍優(yōu)于RI-MAC和X-MAC。
4 結(jié)束語
本文著重研究如何優(yōu)化異步MAC協(xié)議來減少網(wǎng)絡耗能和提高通信質(zhì)量,提出了一種低占空比、低碰撞的異步無線傳感器網(wǎng)絡 MAC協(xié)議——PB-MAC協(xié)議。該協(xié)議以共享隨機種子為基礎,通過預測方式估計鄰居節(jié)點的喚醒時間表,達到降低占空比的目的;通過預測重連接機制和預測數(shù)據(jù)重傳機制,避免數(shù)據(jù)碰撞和實現(xiàn)高效重傳。仿真結(jié)果表明:在隨機網(wǎng)絡和網(wǎng)格網(wǎng)絡中,PB-MAC協(xié)議在保持低延遲和高傳遞率的情況下,其占空比、碰撞次數(shù)和能耗方面明顯優(yōu)于RI-MAC和X-MAC。
[1] 馬祖長, 孫怡寧, 梅濤. 無線傳感器網(wǎng)絡綜述[J]. 通信學報, 2004,25(4):114-123.MA Z C, SUN Y N, MEI T. Survey on wireless sensors network[J].Journal on Communications, 2004, 25(4):114-123.
[2] 李瑞芳, 李仁發(fā), 羅娟. 無線多媒體傳感器網(wǎng)絡 MAC協(xié)議研究綜述[J].通信學報, 2008, 29(8):111-123.LI R F, LI R F, LUO J. Survey of MAC protocol in wireless multimedia sensor networks[J]. Journal on Communications, 2008, 29(8):111-123.
[3] WEI Y, HEIDEMANN J, ESTRIN D. An energy-efficient MAC protocol for wireless sensor networks[A]. Proceedings of the IEEE INFOCOM'02[C]. New York, NY, USA, 2002.1567-1576.
[4] DAM T V, LANGENDOEN K. An adaptive energy-efficient MAC protocol for wireless sensor networks[A]. Proceedings of the First International Conference on Embedded Networked Sensor Systems(SenSys'03)[C]. Los Angeles, CA, USA, 2003.171-180.
[5] WEI Y, SILVA F, HEIDEMANN J. Ultra-low duty cycle MAC with scheduled channel polling[A]. Proceedings of the 4th ACM SenSys Conference(SenSys'06)[C]. Boulder, CO, USA, 2006.321-334.
[6] SUN Y, DU S, GUREWITZ O. DW-MAC: a low latency, energy efficient demand-wakeup mac protocol for wireless sensor networks[A].Proceedings of the 9th ACM International Symposium on Mobile Ad Hoc Networking and Computing(MobiHoc'08)[C]. Hong Kong, China,2008.53-62.
[7] 胡玉鵬, 林亞平, 周四望. 面向異步通信機制的無線傳感器網(wǎng)絡及其MAC協(xié)議研究[J].計算機學報, 2011, 34(8):1163-1477.HU Y P, LIN Y P, ZHOU S W. Asynchronous communication mechanism oriented wireless sensor networks and MAC protocols[J]. Journal on Computers, 2011, 34(8):1163-1477.
[8] 李哲濤,李仁發(fā),魏葉華. 無線傳感器網(wǎng)絡中時間同步與測距協(xié)同算法[J]. 計算機研究與發(fā)展, 2010,47(4):638-644.LI Z T, LI R F, WEI Y H. Coordinated algorithm for time synchronization and distance measurement in wireless sensor networks[J]. Journal of Computer Research and Development, 2010,47(4):638-644.
[9] POLASTRE J, HILL J, CULLER D. Versatile low power media access for wireless sensor networks[A]. Proceedings of the Second ACM SenSys Conference (SenSys’04)[C]. Baltimore, MD, USA, 2004. 95-107.
[10] BUETTNER M, YEE G V, ANDERSON E. X-MAC: a short preamble MAC protocol for duty-cycled wireless sensor networks[A]. Proceedings of the 4th ACM SenSys Conference (SenSys'06)[C]. Boulder, CO,USA, 2006.307-320.
[11] CAO H, PARKER K W, ARORA A. O-MAC: a receiver centric power management protocol[A]. Proceedings of the 14th IEEE International Conference on Network Protocols(ICNP'06)[C]. Santa Barbara, CA,USA, 2006.311-320.
[12] WEI Y, SILVA F, HEIDEMANN J. Ultra-low duty cycle MAC with scheduled channel polling[A]. Proceedings of the 4th ACM SenSys Conference(SenSys'06)[C]. Boulder, CO, USA, 2006.321-334.
[13] SUN Y, GUREWITZ O, JOHNSON D B. RI-MAC: a receiver initiated asynchronous duty cycle MAC protocol for dynamic traffic loads in wireless sensor networks[A]. Proceedings of the 6th ACM SenSys Conference (SenSys'08)[C]. Raleigh, NC, USA, 2008.1-14.
[14] Wireless LAN medium access control (MAC) and physical layer (PHY)specifications[EB/OL]. www.ieee.org, 1997.
[15] KNUTH D E. 計算機程序設計藝術(shù), 第2卷: 半數(shù)值算法[M]. 北京: 人民郵電出版社, 2010.KNUTH D E. The Art of Computer Programming, Volume 2: Seminumerical Algorithms[M]. Beijing: Posts & Telecom Press, 2010.