史培中
摘 要:文章針對低功耗WSN的多跳廣播問題,擺脫異步睡眠調(diào)度下利用單播實現(xiàn)廣播的轉(zhuǎn)發(fā)模式,給出基于TinyOS的低功耗WSN廣播協(xié)議的設(shè)計,包括低功耗WSN廣播主干構(gòu)建、廣播轉(zhuǎn)發(fā)條件判定、廣播的時延保障和基于睡眠調(diào)度可調(diào)的廣播優(yōu)化。該協(xié)議的各組件可通過連接的方式應(yīng)用于現(xiàn)有協(xié)議的集成或開發(fā),也可用于廣播支持的研究,比如低功耗WSN的網(wǎng)絡(luò)配置控制信息廣播、低功耗WSN的事件通知和低功耗WSN的密鑰管理與分發(fā)等。
關(guān)鍵詞:無線傳感器網(wǎng)絡(luò);低功耗;TinyOS;廣播
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSN)作為新型無線網(wǎng)絡(luò),是當(dāng)前國際上非常關(guān)注的、一種多學(xué)科交叉技術(shù),具有相當(dāng)廣泛的應(yīng)用前景[1]。在能量受限制的無線傳感器網(wǎng)絡(luò)中,為了盡量延長網(wǎng)絡(luò)的生命周期,往往引入睡眠調(diào)節(jié)的節(jié)能機制[2],即低功耗WSN。該網(wǎng)絡(luò)中節(jié)點周期性地進行監(jiān)聽和睡眠狀態(tài),發(fā)送節(jié)點需等待接收節(jié)點喚醒后進行數(shù)據(jù)包的轉(zhuǎn)發(fā),節(jié)點之間的連接呈現(xiàn)間歇性特征。因此,該節(jié)能機制對數(shù)據(jù)傳輸造成不可忽略的影響,如單次廣播可能會由于某些節(jié)點處于睡眠狀態(tài)而接收失敗,無法保障廣播的覆蓋率。
1 低功耗WSN廣播協(xié)議設(shè)計的必要性
廣播是無線傳感器網(wǎng)絡(luò)中的一項重要服務(wù),特別是對于代碼更新、遠(yuǎn)程網(wǎng)絡(luò)配置和路徑發(fā)現(xiàn)等起到關(guān)鍵的作用。然而,無線信道的廣播特性不能被很好地利用,導(dǎo)致已有的廣播優(yōu)化算法不能保證廣播的覆蓋性。根據(jù)節(jié)點間睡眠調(diào)度時間是否需要同步,可分為同步和異步兩種調(diào)度方式。相比與同步方式,異步睡眠調(diào)度節(jié)能機制開銷非常小,靈活性高而且操作非常方便,能夠有效地減少能量的消耗,非常適合在動態(tài)變化的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中使用,并且在低流量網(wǎng)絡(luò)中能展現(xiàn)其能效性優(yōu)勢。
已有的相關(guān)廣播協(xié)議普遍采用仿真工具進行測試,在真實環(huán)境中的性能有待于進一步驗證。作為一個面向WSN應(yīng)用的實用性協(xié)議,它必須能夠很好地被集成于現(xiàn)有的網(wǎng)絡(luò)協(xié)議框架中。因此,為了更好地滿足實際應(yīng)用的需求,利用了加州大學(xué)伯克利分校為嵌入式無線傳感器網(wǎng)絡(luò)設(shè)計開發(fā)的開源系統(tǒng)TinyOS[3-4],采用基于組件的MAC協(xié)議體系結(jié)構(gòu)來完成協(xié)議的設(shè)計,方便開發(fā)者快速將其集成于所需要的MAC協(xié)議中,滿足特定應(yīng)用具體需求。
2 低功耗WSN廣播協(xié)議設(shè)計
2.1 廣播主干的構(gòu)建
為了減少整個網(wǎng)絡(luò)中多跳廣播的廣播次數(shù)、避免冗余傳輸和節(jié)約能耗,一種最行之有效的方法就是盡可能選擇很少的轉(zhuǎn)發(fā)節(jié)點來承擔(dān)廣播轉(zhuǎn)發(fā)任務(wù),避免由于通常所采用的盲目泛洪(Blind Flooding)引起的廣播風(fēng)暴問題(Broadcast Storm)。已有的方法是將該類問題歸約為NP-Complete的最小連通支配集(Minimum Connecting Dominating Set,MCDS)問題。然而,靜態(tài)的MCDS不適用于間歇性連接的低功耗WSN的廣播主干構(gòu)建。本文采用SHI等[5]提出的分布式廣播主干構(gòu)造算,其主要思想是:網(wǎng)絡(luò)中每個節(jié)點從鄰居節(jié)點中選擇節(jié)點度最大的節(jié)點作為父節(jié)點,該父節(jié)點必須是已經(jīng)完成其父節(jié)點選擇的節(jié)點。為了構(gòu)造網(wǎng)絡(luò)的廣播主干,網(wǎng)絡(luò)初時化階段中的所有節(jié)點保持喚醒狀態(tài),并仍然在喚醒計時器過期時發(fā)送一個喚醒信標(biāo)報文,用于通知鄰居節(jié)點。
2.2 廣播轉(zhuǎn)發(fā)條件的判定
針對低功耗WSN的多跳廣播問題,相關(guān)研究采用單播的轉(zhuǎn)發(fā)策略。該廣播機制本質(zhì)上是以若干次的重復(fù)單播轉(zhuǎn)發(fā)為代價,來保證間隔性喚醒的節(jié)點廣播接收。但對于大規(guī)模的低功耗WSN而言,這種單播的替代方案并不能很好地減少廣播次數(shù),將直接導(dǎo)致廣播干擾和碰撞,甚至廣播風(fēng)暴問題。本文采用延遲廣播轉(zhuǎn)發(fā)策略[5],其廣播轉(zhuǎn)發(fā)判定條件的可表示為:
(1)
(2)
其中,T(k)表示此次廣播轉(zhuǎn)發(fā)過程中,自第k-1個鄰居節(jié)點喚醒后,估計第k個鄰居節(jié)點喚醒的平均時間;Tw(k)表示等待第k個鄰居節(jié)點喚醒的實際等待時間;Ptx和Pidle分別表示節(jié)點處于傳輸狀態(tài)和空閑監(jiān)聽狀態(tài)的單位時間能耗;Ts表示節(jié)點的睡眠調(diào)度時間間隔;k表示此次延遲廣播轉(zhuǎn)發(fā)中已經(jīng)喚醒的節(jié)點數(shù)量;Tb和Tp分別表示喚醒信標(biāo)報文和短前導(dǎo)報文的傳輸時間;α(α≥1)表示等待時間ΔT(k+1)的收益比,使得廣播轉(zhuǎn)發(fā)節(jié)點判定此次延遲廣播轉(zhuǎn)發(fā)是值得的。當(dāng)α值設(shè)置足夠大時,該延遲廣播轉(zhuǎn)發(fā)策略將退化為單播轉(zhuǎn)發(fā)模式。從式(1)和(2)給出的延遲廣播轉(zhuǎn)發(fā)策略的判定條件主要與5個因素相關(guān):從廣播轉(zhuǎn)發(fā)節(jié)點接收到廣播報文后的總活躍時間Ta(a);廣播轉(zhuǎn)發(fā)節(jié)點的孩子節(jié)點數(shù)量|CN(ni)|;已經(jīng)處于喚醒狀態(tài)的孩子節(jié)點數(shù)量Nw;已經(jīng)處于喚醒狀態(tài)等待該廣播報文p的節(jié)點數(shù)量;廣播報文的傳輸時間T0。
2.3 廣播時延的保障
面向QoS需求的低功耗WSN,時延作為網(wǎng)絡(luò)性能的性能指標(biāo)之一,要求廣播報文在設(shè)定的時間內(nèi)廣播到整個網(wǎng)絡(luò)。對于廣播主干任意兩點節(jié)點ni和節(jié)點nj之間可容忍的時延Tdelay(ni,nj)可以利用廣播報文的剩余的TTL值來估計:
(3)
其中,TTL(p)表示廣播報文p的剩余TTL值;hb(nj)表示通過廣播轉(zhuǎn)發(fā)節(jié)點nj離最遠(yuǎn)的葉子結(jié)點的廣播轉(zhuǎn)發(fā)跳數(shù)。因此,廣播報文在QoS時延約束的可容忍時延Tdelay(ni,nj)下,式(1)轉(zhuǎn)化為廣播時延保障的延遲廣播轉(zhuǎn)發(fā)判定條件:
(4)
其中,Test表示估計的傳輸時間,且Test=Ta(k)+ΔT(k+1)+T0。第一種情況表示廣播轉(zhuǎn)發(fā)等待時間ΔT(k+1)能夠被節(jié)點ni和節(jié)點nj之間的時延約束Tdelay(ni,nj)所容忍。第二種情況則表示節(jié)點ni無法容忍等待時間ΔT(k+1),將立刻執(zhí)行廣播轉(zhuǎn)發(fā)。
2.4 基于睡眠調(diào)度可調(diào)的廣播優(yōu)化
上述廣播轉(zhuǎn)發(fā)策略基于節(jié)點睡眠調(diào)度固定且不可調(diào)的情況下,根據(jù)2.2節(jié)中式(1)和(2)廣播轉(zhuǎn)發(fā)判定條件或2.3節(jié)中式(4)廣播時延保障的廣播轉(zhuǎn)發(fā)判定條件實現(xiàn)廣播轉(zhuǎn)發(fā)。然而,如果當(dāng)節(jié)點的睡眠調(diào)可調(diào)(這里的可調(diào)指的是節(jié)點的睡眠調(diào)度時間間隔Ts不變,通過調(diào)整節(jié)點之間的喚醒間隔和喚醒順序,使節(jié)點之間的喚醒保持某種同步的狀態(tài)),可使式(1)、(2)和式(4)的判定條件盡可能被滿足,則廣播代價隨之減少,實現(xiàn)廣播轉(zhuǎn)發(fā)策略進一步得到優(yōu)化。本文采用先前提出的基于睡眠調(diào)度可調(diào)的分布式準(zhǔn)同步廣播算法[6],實現(xiàn)廣播轉(zhuǎn)發(fā)節(jié)點和其接收節(jié)點之間的自適應(yīng)睡眠調(diào)度調(diào)整,包括早睡節(jié)點處理、晚醒節(jié)點處理和孤立節(jié)點處理。endprint
3 低功耗WSN廣播協(xié)議實現(xiàn)
TinyOS是專為嵌入式無線傳感網(wǎng)絡(luò)設(shè)計的基于構(gòu)件(Component-based)的操作系統(tǒng),可以將開發(fā)的組件連接到相應(yīng)的組件中,實現(xiàn)協(xié)議的集成和整合完成所需要的功能,同時使協(xié)議快速更新成為可能。基于TinyOS的低功耗WSN廣播協(xié)議設(shè)計如圖1所示,其中包括各組件之間的連接關(guān)系。
(1)低功耗監(jiān)聽的睡眠調(diào)度:MacControlC組件提供了LowPowerListening接口的實現(xiàn),為應(yīng)用層提供接口,實現(xiàn)應(yīng)用層的睡眠調(diào)度周期Ts(睡眠間隔)的設(shè)置。MacControlC組件使用SenderC組件使用的LowPowerListening接口,該接口的具體實現(xiàn)則是由組件LplPacketC組件來提供,通過調(diào)用ChannelPoller接口的命令來實現(xiàn)。ChannelPoller接口的具體實現(xiàn)由ChannelPollerC組件來提供。另外,當(dāng)喚醒時刻到來時,ChannelPollerC組件通過調(diào)用LplBeaconC組件的BeaconControl接口啟動喚醒信標(biāo)報文的發(fā)送。
(2)處理和發(fā)送來自應(yīng)用層的報文:SenderC組件使用AsyncSend接口監(jiān)聽來自應(yīng)用層的報文,并負(fù)責(zé)緩存單播和廣播報文。對于緩存隊列中的廣播轉(zhuǎn)發(fā)報文,SenderC組件將調(diào)用BroadcastForwarderC組件的BroadcastSend接口中的Send命令,則BroadcastForwarderC組件將啟動廣播轉(zhuǎn)發(fā)處理過程,LplBeaconC組件開始等待即將到來的信標(biāo)通知報文。LplBeaconC組件主要用于負(fù)責(zé)喚醒報文(Wakeup Beacon)的發(fā)送,其中發(fā)送時刻是當(dāng)ChannelPollerC組件中喚醒計時器WakeupTimer到期。喚醒計時器WakeupTimer則是通過調(diào)用BeaconControl接口的start命令來啟動和運行。
(3)接收和處理來自底層無線信道的報文:對于收到的信標(biāo)報文,LplBeaconC組件主要負(fù)責(zé)兩部分任務(wù):鄰居表的更新及維護和父節(jié)點的選擇及更新。當(dāng)路由更新計時器UpdateTimer過期時(即當(dāng)節(jié)點發(fā)送完信標(biāo)報文后的Ts時刻,其中Ts為睡眠間隔),將運行分布式廣播主干構(gòu)造算法。廣播主干中的廣播轉(zhuǎn)發(fā)節(jié)點對于收到的廣播報文,利用ListenerC組件中的Receive事件通知上層,并且調(diào)用BroadcastForwarderC組件中BroadcastSend接口的Send命令轉(zhuǎn)發(fā)接收到的廣播報文。
(4)本文將2.4節(jié)中基于分布式的準(zhǔn)同步機制實現(xiàn)在該協(xié)議框架內(nèi)的LplBeaconC組件中,基于收到廣播接收節(jié)點的信標(biāo)報文,通知其調(diào)整睡眠調(diào)度,使得廣播接收節(jié)點喚醒時間晚于廣播轉(zhuǎn)發(fā)節(jié)點,時間差可控制在一定隨機退避時間內(nèi),達到偽同步的狀態(tài)。該隨機退避時間可根據(jù)式(1)和(2)中的判定因素來設(shè)置,比如喚醒時間間隔和廣播轉(zhuǎn)發(fā)節(jié)點的孩子節(jié)點數(shù)量。
4 結(jié)語
節(jié)能是無線傳感器網(wǎng)絡(luò)的首要設(shè)計目標(biāo),低功耗WSN通過引入睡眠調(diào)度機制延長網(wǎng)絡(luò)壽命具有的應(yīng)用前景。本文擺脫了異步睡眠調(diào)度下利用單播實現(xiàn)廣播的轉(zhuǎn)發(fā)模式,給出基于TinyOS的低功耗WSN廣播協(xié)議的設(shè)計與實現(xiàn),可通過組件連接的方式應(yīng)用于現(xiàn)有協(xié)議的集成或開發(fā),具有一定的實用性價值。下一步將從事低功耗WSN下以廣播為支撐的相關(guān)研究,比如低功耗WSN的網(wǎng)絡(luò)配置控制信息廣播、低功耗WSN的事件通知和低功耗WSN的密鑰管理與分發(fā)等。
[參考文獻]
[1]向鳳紅,孔慶平,毛劍琳,等.基于ZigBee的低功耗無線傳感器網(wǎng)絡(luò)改進協(xié)議[J].傳感器與微系統(tǒng),2017(3):33-36.
[2]柴韜.低功耗技術(shù)在無線傳感器網(wǎng)絡(luò)中的研究與設(shè)計[J].無線互聯(lián)科技,2017(8):16-17.
[3]LEVIS P,MADDEN S,POLASTRE J,et al. TinyOS:an operating system for sensor networks[J].Ambient Intelligence,2004(5):383-396.
[4]潘浩,董啟芬,張貴軍,等.無線傳感器網(wǎng)絡(luò)操作系統(tǒng)TinyOS[M].北京:清華大學(xué)出版社,2011.
[5]SHI PZ,WANG Y,LI K,et al. Delay-constrained and energy-balanced broadcasts for low duty-cycled wireless sensor networks[J].Local Computer Networks,2014(2):284-287.
[6]WANG Y,SHI PZ,LI K,et al. DQSB:A reliable broadcast protocol based on distributed quasi-synchronized mechanism for low duty-cycled wireless sensor networks[J].International Journal of Wireless & Mobile Networks,2012(3):65-85.endprint