楊遜豪,何加銘,董義旺,吳 剛
(1.寧波大學通信技術研究所,浙江寧波 315211;2.浙江省移動網應用技術重點實驗室,浙江寧波 315211;3.中國電信股份有限公司寧波分公司,浙江寧波 315001)
無線傳感器網絡(Wireless Sensor Networks,WSNs)作為新一代傳感器系統(tǒng),能夠實時監(jiān)測、感知、采集各種環(huán)境或監(jiān)測對象的信息,并對這些信息加以處理,以便獲取詳盡、準確的信息[1]。但由于其受功能、特性及應用背景的影響巨大,因此設計具有最大化生存周期、最小化網絡能耗的無線傳感器網絡,保證網絡的連通性和有效減低能耗具有十分重要的意義。
媒體訪問控制協(xié)議(Medium Access Control,MAC)[2],處于無線傳感器網絡底層,是保證無線傳感器網絡高效通信的關鍵協(xié)議之一,盡可能延長無線傳感器網絡壽命十分重要。目前無線傳感器網絡的MAC協(xié)議設計中還存在許多缺陷需要去解決[3-4]。因此設計無線傳感器網絡MAC協(xié)議應該在確保低能耗的前提下,具有盡可能高的吞吐量、盡可能小的時延、數據無誤傳輸以及支持多種業(yè)務需要等特性以滿足用戶需求。
針對不同應用場合對無線傳感器網絡要求不盡相同的特點,MAC協(xié)議分為基于競爭協(xié)議、基于調度協(xié)議和混合 MAC 協(xié)議[5]。S-MAC 協(xié)議[6]是一種基于競爭機制的典型MAC協(xié)議,專門針對事件通知應用場景,可以較好地適應這種場景中的數據流變化。在沒有數據時節(jié)點基本處于休眠狀態(tài),節(jié)省自身的能量;而在突發(fā)事件觸發(fā)大量數據傳輸時,又可以自適應增加節(jié)點喚醒次數,從而加快數據傳輸。S-MAC的主要工作機制如下。
S-MAC協(xié)議最主要的運行機制為周期性偵聽/休眠機制。它將時間分為多個工作周期,每個工作周期又分為偵聽階段和休眠階段。在偵聽階段,節(jié)點完成與相鄰節(jié)點間通信。在休眠狀態(tài),節(jié)點為了減少能耗,直接關閉發(fā)射接收器。若此時存在需要處理的數據,則執(zhí)行緩存操作,待到節(jié)點處于偵聽狀態(tài)時再進行處理。
節(jié)點每隔一段偵聽周期廣播一次同步信息,鄰居節(jié)點同樣采用該策略,從而使得整個網絡形成了若干個采用不同策略的虛擬簇。不同的虛擬簇之間通過簇間邊界節(jié)點進行數據交換,通過虛擬簇機制,新節(jié)點很容易加入到現(xiàn)有網絡中去。但是這些邊界節(jié)點為了能夠保證簇與簇之間能夠順利地進行數據傳輸,保存了多個調度,這樣在每個調度規(guī)定的時刻都會被喚醒。但這種機制存在節(jié)點能量過度消耗的情況。
S-MAC使用了802.11的沖突避免機制,即虛擬載波監(jiān)聽和物理載波監(jiān)聽結合的RTS-CTS通告機制,協(xié)議規(guī)定每個節(jié)點控制一個時間幀,當節(jié)點有數據包要發(fā)送時,先進行等待,直到屬于該節(jié)點的幀到來時,先廣播帶有接收節(jié)點和包長度的控制報頭消息,然后傳送數據。收到報頭消息的節(jié)點如果不是接收節(jié)點,則關閉射頻模塊,較好地解決了隱藏終端問題和暴露終端問題。
在S-MAC協(xié)議初始化階段,調度的同步十分重要。但是S-MAC協(xié)議的同步只能在較小范圍內完成,導致了在全網范圍內存在多個不同調度表的簇。簇邊界上的節(jié)點,為了能夠順利與鄰簇節(jié)點進行通信,需要在該節(jié)點上保存多個調度信息,因此邊界節(jié)點會在每個調度表的監(jiān)聽時段醒來,相較于其他節(jié)點較少進入休眠階段,能量消耗較大,導致了網絡整體壽命的縮短。
為了解決這個問題,對現(xiàn)有的SS-MAC協(xié)議[7]進行改進,設計了一種算法規(guī)則,采用優(yōu)先級標準作為依據,使得相鄰的虛擬簇進行合并,最終實現(xiàn)整個網絡調度的統(tǒng)一,消除邊界節(jié)點,從而解決了不同虛擬簇間邊界節(jié)點能耗過快的問題。
整個虛擬簇用樹來表示,把創(chuàng)建根節(jié)點稱為樹根,簇中每個節(jié)點都存在一個權值,表示節(jié)點距離根節(jié)點的跳數,根節(jié)點的權值為零,其余節(jié)點在接入網絡之前,權值預設為一個較大的初始值。算法采用從根節(jié)點到虛擬簇邊界的最大權值來表示優(yōu)先級,生成樹統(tǒng)計模型如圖1所示。改進后的 MAC協(xié)議稱為TS-MAC協(xié)議,在每個節(jié)點上保存變量列表ValueList,包括某一虛擬簇全簇節(jié)點總數 Total、最大權值ValueMax、本節(jié)點權值 ValuePoint、父節(jié)點標識Father、子節(jié)點標識 Son[i]、同步包到達時間 ArriveTime[i]以及對應節(jié)點的下級節(jié)點總數SonNum[i]。
在文獻[8]中介紹了一種GAF改進算法,在該算法的基礎上設計了一種根節(jié)點選擇策略。假設每個節(jié)點能夠隨時查詢自身ID以及剩余能量,同時賦予剩余能量最大的節(jié)點為根節(jié)點,剩余能量次大的節(jié)點作為候選根節(jié)點,當根節(jié)點剩余能量達到閾值時,候選根節(jié)點將接替成為根節(jié)點,避免由于根節(jié)點能量耗盡引起節(jié)點間通信質量的下降。
算法初始階段,節(jié)點按照ID依次發(fā)送和接收通知消息 M(N1,N2,Emax,Esub),其中 Emax 為現(xiàn)有虛擬簇內剩余能量最大值,Esub為剩余能量次大值,N1、N2為與此相對應的ID。
假設某虛擬簇內共有N個節(jié)點,任意一個節(jié)點ID為Nn,能量為En,Tr為初始時間,Ts為發(fā)送消息所需時間,具體根節(jié)點選舉算法實現(xiàn)如下:
圖1 生成樹統(tǒng)計模型
這樣所有節(jié)點均將獲悉根節(jié)點的ID和剩余能量,完成根節(jié)點的選舉。
創(chuàng)建生成樹,統(tǒng)計簇內節(jié)點信息,實現(xiàn)虛擬簇內節(jié)點瞬時同步,算法實現(xiàn)如下:
根據生成樹信息,進行簇的合并,算法實現(xiàn)如下:
針對無線傳感器網絡所存在的特性,必須考慮由于網絡拓撲變化造成樹結構變化的情況。對于新加入的節(jié)點,可以通過監(jiān)聽網絡中其余節(jié)點的同步請求報文,獲取周期T(取3~5個同步周期)內收到的具有最小權值的鄰居節(jié)點作為自身父節(jié)點,并將權值加1作為自身權值,保證了生成樹總是擁有最新的拓撲,增強了魯棒性。當節(jié)點因某些原因與網絡失去聯(lián)系時,若該節(jié)點不屬于根節(jié)點,則按照上述方法進行拓撲調整。本算法規(guī)則采用消息開始發(fā)送到無線信道的時刻作為同步消息時間戳,消除了時延誤差,提高了時間同步的精度。
如圖2所示,在實際傳輸中存在著傳輸時延、接收時延等不確定性因素,則 4 個時刻 T1、T2、T3、T4實際應該滿足如下關系:
式中,εtrans12是消息由節(jié)點1傳輸到節(jié)點2的傳輸時延,εrecv2則是節(jié)點2接收消息時產生的隨機誤差;a12為節(jié)點2相對于節(jié)點1的局部誤差。從上式中可以看到,報文間隔時間過長會造成同步精度的影響。因此,要求應答包返回的時間間隔不能太長,同時應答包一次所包含的同步信息也不能太多。
圖2 消息交換機制誤差
本文采用OMNET++仿真工具[9-10]對TS-MAC協(xié)議進行仿真分析。OMNET++是一款開源的網絡仿真系統(tǒng),近年來在科學和工業(yè)領域里逐漸流行,主要用于通信網絡和分布式系統(tǒng)的仿真。
OMNET++進行TS-MAC協(xié)議建模仿真流程如圖3所示。
圖3 TS-MAC仿真建模流程
通過以上對TS-MAC協(xié)議的剖析和對OMNET++編程模式的理解,定義如下仿真環(huán)境。
仿真的節(jié)點拓撲如圖4所示,N個節(jié)點呈線性分布,其中節(jié)點N-1為目標節(jié)點,節(jié)點0為源節(jié)點,相鄰節(jié)點間隔為200 m。從源節(jié)點處開始發(fā)送數據包至目的節(jié)點,發(fā)送速率為n個/s。
圖4 節(jié)點網絡拓撲
主要仿真參數如表1所示。
表1 主要仿真參數
3.3.1 能耗分析
如圖4所示模型進行仿真,得到邊界節(jié)點消耗能量隨時間變化的曲線,如圖5所示。由于邊界節(jié)點在300 s開始接收到2個調度表信息,因此其能量消耗速率較之前快一倍。而TS-MAC與SS-MAC協(xié)議下邊界節(jié)點始終只有一個調度表,因此其能量消耗速率保持不變。但TS-MAC協(xié)議較SS-MAC協(xié)議在完成全網同步時間上要少得多,因此能量消耗幅度始終低于SS-MAC協(xié)議。從仿真輸出結果可以看出,TS-MAC與SS-MAC協(xié)議下數據流持續(xù)時間都比S-MAC協(xié)議下要長,網絡連通性較好。
圖5 邊界節(jié)點能耗
3.3.2 實時性分析
采用多次仿真取平均值的方法如圖6所示,由圖可以看出,SS-MAC協(xié)議在仿真時間達到3200 s處實現(xiàn)全網同步,TS-MAC協(xié)議在1600 s時實現(xiàn)全網同步,說明TS-MAC協(xié)議較之SS-MAC協(xié)議具有更好的實時性。
圖6 協(xié)議實時性比較
針對 S-MAC協(xié)議中邊界節(jié)點能耗過快,SSMAC協(xié)議中全局同步時間過長,無法快速實現(xiàn)全局同步的問題,提出了一種新的TS-MAC協(xié)議,通過設定優(yōu)先級標準來確定虛擬簇的最大權值,利用生成樹來完成根節(jié)點與下級節(jié)點的時間同步,以達到局部時間同步,并以此為標準在簇間邊界節(jié)點上進行調度表的取舍,從而實現(xiàn)簇的合并和全網調度的同步,消除了邊界節(jié)點。仿真結果驗證了該算法能夠有效地控制節(jié)點的能耗,提高了網絡的連通性。
[1]馬祖長,孫怡寧,梅濤,等.無線傳感器網絡綜述[J].通信學報,2004,25(4):114-124.
[2]蹇 強,龔正龍,朱培棟,等.無線傳感器網絡MAC協(xié)議研究進展[J].軟件學報,2008,19(2):389-403.
[3]KUNTZ R,GALLAIS A,NOEL T.From Versatility to Auto-adaptation of the Medium Access Control in Wireless Sensor networks[J].Journal of Parallel and Distributed Computing,2011,71(9):1236-1248.
[4]BOKAREVA T,HU Wen,KANHERE S,et al.Wireless Sensor Networks for Battlefield Surveillance[C]∥Proc of Land Warfare Conference,LWC-2006,Australia,2006:1-5.
[5]YAHYA B,BEN-OTHMAN J.Towards a Classification of Energy Aware MAC Protocols for Wireless Sensor Networks[J].Wireless Communications and Mobile Computing,2009,9(12):1572-1607.
[6]YE W,HEIDEMANN J,ESTRIN D.An Energy-efficientMAC Protocol for Wireless Sensor Networks[C]∥Proc of IEEE INFOCOM 2002,New York,USA,2002:1567-1576.
[7]劉 冰,楊 昀,張惠民,等.一種高效的無線傳感器網絡的 MAC層方案[J].無線電工程,2007,37(3):11-13.
[8]SANTI P.Silenceis Golden with High Probability:Maintaining a Connected Backbone in Wireless Sesor Networks[C]∥Proc of European Workshop on WSN,Berlin,2004:106-121.
[9]馮友宏,關可.基于OMNET的無線傳感器網絡算法的改進[J].傳感技術學報,2010,23(6):859-862.
[10]楊永康,王永斌,劉宏波.基于Mixim模塊的無線移動網絡仿真[J].計算機與數字工程,2011,39(9):101-104.