桂林電子科技大學 李發飛 彭 剛 蘭 慎
無線傳感器網絡(wireless sensor networks,WSN)已成為國際上備受關注的前沿熱點研究領域,由于無線傳感器節點能量的有限及無法添加,傳感器網絡中節能的路由算法作為通信協議的重要組成部分,已經成為國內外的一個研究熱點。
文獻[1]提出了一中高效節能的無限傳感器網絡協議,傳感器節點保存多條到基站(Base Station)的路由,采取輪循機制讓數據傳輸任務分布在多條路由路徑上,節省了某些節點能量的消耗,從而達到能量均衡的目的;但是靠近基站的圓形區域很容易成為“熱區(Hot Spot)”,容易導致基站附近的節點因為能量耗盡很快的“死亡”。
在這種情況下,本文提出的改進的無線傳感器路由協議,應具有一下特點:1)將無限傳感器網絡分層,靠近基站一定距離范圍d內的節點直接與基站通信,即采用單跳通信;與基站有距離d之外的節點仍然與基站進行多跳通信;2)傳感器節點保存多條到網關節點的路由,每次通信時,采用輪循機制選擇一條路徑,從而將數據傳輸的負載均衡的分配到多條路徑上,達到均衡能耗的目的;3)引入能量控制機制,當與基站距離d的圓周上的節點能量消耗到一定值時,修改d的值重新組網,從而進一步均衡能量的消耗,解決“熱區”問題,延長無線傳感器網絡的生命周期。
假設節點被任意分布在某區域上,節點可以根據其所接收到的信號強弱程度計算出與發送節點的距離,d表示基站與節點的距離,Φ表示節點的剩余能量;基站BS在該區域的中心位置。本協議完成以下基本功能:1)區域內傳感器節點建立一個無線傳感器網絡,并向最近基站傳輸感知到的信息;2)當傳感器節點失效或者能量不足時,傳感器網絡能夠修復路由或者重新組建到達網關的路由;3)當區域內新加入節點時,節點可以加入到傳感器網絡并進行數據傳輸;4)當與BS距離半徑d的圓周上的節點的剩余能量Φ達到某一零界值時,修改d的值,重新組網。
路由骨干網具體定義如下:
路由骨干網包括一個基站節點及多個中間節點。其中基站節點用于連接外部網絡和傳感器網絡,基站沒有父節點,可以有多個子節點;中間節點為傳感器,可以有多個父節點和多個子節點。
初始狀態下,基站節點已經存在,傳感器節點隨機分布在指定區域。路由骨干網按照如下步驟初始化:
1)網關節點廣播Adv消息。
2)在預定時間段內,如果孤立節點(沒有加入到路由骨干網的節點)收到此Adv消息,計算出到基站的實際距離d,d小于D-D0的孤立節點將(如圖1中的節點S1)基站作為父節點,直接與基站通信,不再轉發消息,記錄到基站距離為0跳;d大于D+D0的孤立節點(如圖1中的節點S3)丟棄此消息,仍被視為孤立節點;d大于D-D0且小于D+D0的孤立節點(如圖1中的節點S2)將基站作為父節點,記錄到基站的距離為1跳,并且廣播Adv消息,此Adv消息包含一個以跳為單位的距離參數。

圖1
3)孤立節點查看消息中的距離參數,將距離參數最小的節點作為父節點,將父節點加入到父節點集合,記錄自己到基站的距離,并將距離參數值加1然后繼續廣播此Adv消息;如果已經加入到骨干網的節點接收到Adv消息,則比較Adv消息中的距離參數,選擇距離參數較小的節點加入到父節點集合,記錄自己到基站的距離,將距離參數加1然后繼續廣播此Adv消息。
4)如果處于孤立狀態下的節點在預定時間段內沒有收到任何Adv消息,則節點繼續等待下一個時間段,直到接收到Adv消息。

圖2 路由骨干網初始化
如圖2,在初始狀態下,網關廣播Adv消息,S0接收到消息,將基站作為父節點;節點S1、S2、S3、S4接收到消息,將基站加入到父節點集合,置距離為1跳,并且繼續轉發Adv消息;S5在特定時間段內收到S1、S2、S3和S6轉發來的Adv消息,比較三個消息的距離參數之后將參數距離較小的S1、S2、和S3、S4節點作為其父節點,并將將之加入到父節點集合中;S9收到S6、S7、S8發送來的消息,比較其距離參數,將S6和S7加入到父節點集合中。
當一個新節點S加入到傳感器網絡后,它會按照以下步驟加入到路由骨干網:1)節點S向一跳之內的鄰居節點廣播一條Req消息;2)接收到此Req消息的節點如果已經加入到骨干網,它返回一個Res消息,此消息中包含它到網關節點的距離參數;3)節點S等待特定時間后,查看接收到的Res消息中的距離參數值,選擇距離較近的節點作為自己的父節點,把父節點保存到父節點集合,記錄自己到網關節點的距離參數值(即父節點到網關的距離加1);4)節點S向其鄰居節點廣播Res消息,此消息的內容為節點S的距離參數值,表示節點S已經加入到骨干網。至此,新節點加入到骨干網。
由于傳感器節點的能量是有限的,所以當能量耗盡之后節點會變成失效節點。當傳感器節點S檢測到父節點F失效后,節點S將父節點從父節點集合在刪除。此時,如果父節點不為空,則節點S仍在骨干網中,可以繼續傳輸信息;如果父節點為空,那么節點S進行一下操作:1)節點S向鄰居節點廣播一條Req消息;2)收到此Req消息的節點如果已經加入到骨干網中,而且節點S不在它的父節點集合中,它向節點S返回一個Res消息,包括它的距離參數;3)節點S等待特定時間段后,查看接收到的Res消息的距離參數,然后選擇距離較小的節點作為父節點,將父節點加入到父節點集合中,記錄自己到網關節點的距離(即父節點到網關的距離加1);4)節點S向其鄰居節點廣播Res消息,此消息的內容為節點S的距離參數值,表示節點S已經加入到骨干網。至此,節點失效處理過程結束。
當節點要把感知到的數據信息傳輸到基站時,首先查看自己的父節點集合,采用輪循機制選擇一個父節點F,將數據信息傳輸到節點F后,F節點查看自己的父節點集合,再用輪循機制選擇一個父節點F,并向F,傳輸數據信息,依次類推,直到發送到網關節點為止。當環狀帶內節點的能量值下降到一定閥值時,修改環狀帶的半徑和寬度,重復過程2.1,初始化路由骨干網。
為了解決“熱區”問題,協議采用了兩種方法來均衡能量消耗。首先節點保存多個最短路由,采用輪循機制選擇一條路徑將數據信息傳輸到基站,從而將數據傳輸的任務均衡地分布于多條路由路徑上,節省了節點的能量消耗;由于劃分了環狀帶,環狀帶內的節點成為能量消耗比較多的節點,因此當環狀帶內節點的能量消耗到一定閥值時,減小環狀帶的半徑,轉移了熱點問題,同時擴大環狀帶的寬度,環狀帶外的節點有更多的父節點可以供選擇,從而把能量消耗均衡到更多路徑上,進一步均衡了能量消耗,達到解決“熱區”問題的目的。
[1]王曉喃,高德民,徐江.高效節能的無線傳感器網絡路由協議設計與實現[J].2010.8.
[2]王平,黎峰.無線傳感器網絡基于梯度的分簇路由算法[C].全國計算機網絡與通信學術會議論文集,2011.
[3]秦嶺,胡榮強.無線傳感器網絡節點的有效能耗最小化策略[J].武漢理工大學學報,2010.
[4]李樹華,劉振宇,李迎秋.能量自適應的無線傳感器網絡分簇路由協議[J].計算機工程與設計,2010.