史培中

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