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

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

圖2 節(jié)點(diǎn)S預(yù)測(cè)節(jié)點(diǎn)R喚醒時(shí)間的偽代碼
其中,Seed[R]為目標(biāo)接收節(jié)點(diǎn) R的隨機(jī)種子,currentTime[R]為 R的當(dāng)前時(shí)間,Tcur[R]為 R發(fā)送beacon分組的時(shí)間,Tlast[R]為R的最近一次喚醒時(shí)間,nextWakeupTime[R]是預(yù)測(cè)下一次R的喚醒時(shí)間(初始值為R的最近一次喚醒時(shí)間)。

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

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

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

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

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

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

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

圖5 網(wǎng)格網(wǎng)絡(luò)性能參數(shù)對(duì)比
圖 5(e)是 PB-MAC、RI-MAC和 X-MAC協(xié)議在網(wǎng)格網(wǎng)絡(luò)環(huán)境中的分組傳遞率對(duì)比圖。從圖中可以看出,當(dāng)網(wǎng)絡(luò)邊緣節(jié)點(diǎn)大于7時(shí),所有協(xié)議分組傳遞率急劇下降,這與圖 5(d)中網(wǎng)絡(luò)邊緣節(jié)點(diǎn)大于 7后延遲劇增相對(duì)應(yīng)。實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)規(guī)模超過(guò) 7×7(49節(jié)點(diǎn))后,網(wǎng)絡(luò)開(kāi)始出現(xiàn)擁塞。
圖5(f)是PB-MAC、RI-MAC和X-MAC協(xié)議在網(wǎng)格網(wǎng)絡(luò)環(huán)境中的平均和最大消息負(fù)載量對(duì)比圖。在網(wǎng)絡(luò)邊緣節(jié)點(diǎn)數(shù)小于7時(shí),3種協(xié)議的平均消息負(fù)載量基本維持在 20左右。當(dāng)網(wǎng)絡(luò)邊緣節(jié)點(diǎn)數(shù)大于7后,平均消息負(fù)載量急劇上升,也印證了網(wǎng)絡(luò)出現(xiàn)擁塞。
總體來(lái)看,PB-MAC在占空比、發(fā)送消息耗能、碰撞次數(shù)3個(gè)性能上表現(xiàn)出明顯優(yōu)勢(shì)。另外,在網(wǎng)絡(luò)出現(xiàn)擁塞之前,隨著節(jié)點(diǎn)規(guī)模的增大,PB-MAC在占空比、發(fā)送消息耗能、最大碰撞次數(shù)和平均碰撞次數(shù)指標(biāo)上基本呈線性增長(zhǎng),穩(wěn)定性好。在網(wǎng)絡(luò)出現(xiàn)嚴(yán)重?fù)砣?,在占空比、碰撞次?shù)指標(biāo)上,PB-MAC仍優(yōu)于RI-MAC和X-MAC。
4 結(jié)束語(yǔ)
本文著重研究如何優(yōu)化異步MAC協(xié)議來(lái)減少網(wǎng)絡(luò)耗能和提高通信質(zhì)量,提出了一種低占空比、低碰撞的異步無(wú)線傳感器網(wǎng)絡(luò) MAC協(xié)議——PB-MAC協(xié)議。該協(xié)議以共享隨機(jī)種子為基礎(chǔ),通過(guò)預(yù)測(cè)方式估計(jì)鄰居節(jié)點(diǎn)的喚醒時(shí)間表,達(dá)到降低占空比的目的;通過(guò)預(yù)測(cè)重連接機(jī)制和預(yù)測(cè)數(shù)據(jù)重傳機(jī)制,避免數(shù)據(jù)碰撞和實(shí)現(xiàn)高效重傳。仿真結(jié)果表明:在隨機(jī)網(wǎng)絡(luò)和網(wǎng)格網(wǎng)絡(luò)中,PB-MAC協(xié)議在保持低延遲和高傳遞率的情況下,其占空比、碰撞次數(shù)和能耗方面明顯優(yōu)于RI-MAC和X-MAC。
[1] 馬祖長(zhǎng), 孫怡寧, 梅濤. 無(wú)線傳感器網(wǎng)絡(luò)綜述[J]. 通信學(xué)報(bào), 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ú)線多媒體傳感器網(wǎng)絡(luò) MAC協(xié)議研究綜述[J].通信學(xué)報(bào), 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] 胡玉鵬, 林亞平, 周四望. 面向異步通信機(jī)制的無(wú)線傳感器網(wǎng)絡(luò)及其MAC協(xié)議研究[J].計(jì)算機(jī)學(xué)報(bào), 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ú)線傳感器網(wǎng)絡(luò)中時(shí)間同步與測(cè)距協(xié)同算法[J]. 計(jì)算機(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. 計(jì)算機(jī)程序設(shè)計(jì)藝術(shù), 第2卷: 半數(shù)值算法[M]. 北京: 人民郵電出版社, 2010.KNUTH D E. The Art of Computer Programming, Volume 2: Seminumerical Algorithms[M]. Beijing: Posts & Telecom Press, 2010.