陳君梅,陳潤航
(1.廣州大學華軟軟件學院軟件工程系,廣州 510900;2.廣西師范大學計算機科學與信息工程學院,桂林 541004)
降低能耗是延長傳感器網絡生命周期最主要的方式,目前很多研究者已經提出了很多節約能耗的方法。郝俊峰等人給出了隨機調度算法,該算法的核心思想是通過隨機生成一個概率值,以此決策網絡中所有節點在每一輪中是否需要休眠[1]。該算法的實現相對簡單,能夠快速給出工作和休眠的節點,但使用隨機概率休眠會導致網絡的吞吐量下降且產生覆蓋空洞。
Suraj Sharma等人提出了基于聚類的多路徑路由協議,在該協議的數據傳輸階段,聚類成員在一定時間槽內處于工作狀態,會傳輸生成的數據至聚類頭,其余時間將處于休眠模式,直到下一個時間槽內被喚醒[2]。此機制能夠節約傳感器節點的能耗,但該類設計,若環境突然在節點休眠期間發生巨變,則會因無節點處于感知狀態而造成突變環境的數據丟失的現象。
Nguyen TTN等人提出了一個基于關聯性的聚類,Nguyen TTN認為關聯性高的節點對,一個節點感知到的數據可以代表其他節點,所以為了能效的目的,將能量更高的節點處于工作狀態而其他節點將處于休眠狀態。為了識別出監測環境的突然改變,使用一個閾值去控制收集數據的節點數。即:當工作節點感知到環境突變數據且改變值大于預先定義的閾值,該節點將報告給聚類頭,以此喚醒聚類中其他的休眠節點[3]。該文提出的休眠喚醒機制是一次性的,沒有交替休眠/喚醒過程,能耗節約不明顯。
故本文在文獻[3]的基礎上提出了基于事件驅動的傳感節點狀態轉換協議,并且結合了文獻[2],定期檢查網絡中節點的活性,以此增強網絡的可靠性。
該協議設想運行在面向戶外的預警場景,如圖1所示:營地的周圍部署了很多無線紅外傳感器,這些無線傳感器與營地內的用戶手機形成一個無線傳感器網絡,該網絡中的傳感器節點將人工設置形成一個以營地為中心的兩級監測警戒圈。其中,遠離營地中心的傳感器形成的圈稱為目標識別圈;靠近營地中心的傳感器形成的圈稱為目標警示圈[4]。

圖1 戶外預警的無線傳感場景[4]
整個網絡的工作原理如下:大量傳感器節點組成大小不一的兩個同心圓形分布在營地周圍,按照需求采集區域內的目標信息,并將采集到的數據發送給組播組中的監視手機。目標出現時,目標識別圈的傳感器感知到目標發出的感知信號,然后將傳感數據播發到無線局域網(Wireless Local Area Network,簡稱WLAN),監視手機從WLAN接收消息。當目標持續移動到越過目標警示圈的傳感器時,目標警示圈的傳感器播發消息到WLAN,所有的手機(包括監視手機和待命手機)均從WLAN接收消息。
整個網絡的目標警示圈上的傳感器節點,以及處于待命狀態的待命手機一開始均處于休眠狀態,只有當識別圈的傳感器感知到目標信號時,才喚醒警示圈的傳感器節點;而只有目標進入到警示圈時,監視手機才會喚醒待命狀態的手機。該做法的目標在于節約節點的能耗,從而延長網絡生命周期。
本協議采用了如下的假設條件:
(1)所有的傳感器節點被人工部署成內外兩圈,外層節點一直處于工作狀態,內層節點一開始處于休眠狀態,直到發生突發事件;內外兩圈的節點,其標識不一樣,且每個傳感器節點和手機節點均有唯一的節點標識,即id;
(2)傳感器節點和手機節點均是靜態節點;
(3)所有監視手機均知道所有傳感器節點和其他手機節點的節點標識;
(4)所有待命手機均知道其所在聚類的聚類頭節點標識以及組播組IP地址;
(5)所有的待命手機一開始處于待命狀態,直到發生突發事件才加入組播組。
協議是指通信雙方就如何進行通信的一種約定,不同機器上構成相應層次的實體稱為對等體[5]。即,協議就是一組控制數據通信的規則,定義要傳送什么、怎樣進行通信、以及何時進行通信,協議的三個關鍵要素就是語法、語義與同步[6]。故,本部分將分別闡述節點運行狀態轉換協議的協議體、協議消息以及協議邏輯的設計,從而描述清楚本文協議的語法、語義與同步信息。
本部分將給出節點運行狀態轉換協議中的協議體和協議報文,以及協議報文中的各個字段。如表1所示。
該協議設計了兩個對等協議體:Mobilew和Mobiles,分別標識監視手機和傳感器手機;以及四個協議報文:update_Msg、updateRes_Msg、confirm_Msg、warm_Msg。其中,update_Msg用于查詢傳感器和待命手機活性,或者喚醒待命手機;updateRes_Msg用于響應update_Msg消息;confirm_Msg用于確認updateRes_Msg消息;warm_Msg是監視手機用于發布自己所處的聚類,聚類成員均已死亡的消息。

表1 協議體和協議報文的設計
本部分將詳細給出節點運行狀態轉換協議中,監視手機和待命手機這一對對等協議體處理活性查詢和狀態喚醒的交互和判斷過程。詳細流程如算法1和算法2所示。
(1)監視手機端的算法
算法1:節點運行狀態轉換協議之監視手機的協議邏輯
輸入:警告圈的感知信息or節點活性查詢提示,updateRes_Msg

(2)待命手機端的算法
算法2:節點運行狀態轉換協議之待命手機的協議邏輯


本實驗的目的在于驗證節點的運行狀態轉換能力:令一臺智能手機退出多播組,使其進入待命狀態。當有目標警示圈的傳感器往多播組發送傳感數據時,觀察待命手機是否被監視手機喚醒。也就是,觀察監視手機是否發送喚醒消息給待命手機;以及在收到喚醒消息后,待命手機是否再次加入組播組并回復消息給監視手機。本實驗的實驗原理圖如圖2所示。

圖2 待命手機運行狀態轉換過程
驗證節點運行狀態轉換能力的用例如表2所示。
本節將記錄和分析實驗結果,驗證的是監視手機在接收到目標警示圈的傳感器發送的傳感數據時,喚醒待命手機的能力,實驗結果如圖3、4和5所示。
由圖3、4和5可知:當目標警示圈的傳感器感知并發送傳感數據給監視手機時,監視手機會立即發送喚醒消息給待命手機,待命手機接收到喚醒消息后,會立即加入組播組。待命手機加入組播組成功后,一方面會發送喚醒回應消息給監視手機,監視手機發送確認消息給待命手機以表示接收到回應消息;另一方面,將和監視一樣,接收傳感數據。該實驗表明,當目標進入目標警示圈之后,即危險系數增加時,監視手機能夠成功喚醒休眠中的手機,使其進入監測狀態,從而增加安全性。

表2 運行狀態轉換功能的驗證說明

圖3 模擬目標識別圈和警示圈的傳感器發送傳感數據

圖4 監視手機接收到警示圈傳感數據時喚醒待命手機的過程

圖5 待命手機接收到監視手機的喚醒消息時喚醒自身的過程
本文給出了基于事件驅動的傳感節點狀態轉換協議,該協議以環境突變數據作為喚醒休眠節點的條件,并定期檢查網絡中節點的活性,以此增強了網絡的生命周期和可靠性,具有可行性。