桂林電子科技大學 李發(fā)飛 彭 剛 蘭 慎
無線傳感器網絡(wireless sensor networks,WSN)已成為國際上備受關注的前沿熱點研究領域,由于無線傳感器節(jié)點能量的有限及無法添加,傳感器網絡中節(jié)能的路由算法作為通信協議的重要組成部分,已經成為國內外的一個研究熱點。
文獻[1]提出了一中高效節(jié)能的無限傳感器網絡協議,傳感器節(jié)點保存多條到基站(Base Station)的路由,采取輪循機制讓數據傳輸任務分布在多條路由路徑上,節(jié)省了某些節(jié)點能量的消耗,從而達到能量均衡的目的;但是靠近基站的圓形區(qū)域很容易成為“熱區(qū)(Hot Spot)”,容易導致基站附近的節(jié)點因為能量耗盡很快的“死亡”。
在這種情況下,本文提出的改進的無線傳感器路由協議,應具有一下特點:1)將無限傳感器網絡分層,靠近基站一定距離范圍d內的節(jié)點直接與基站通信,即采用單跳通信;與基站有距離d之外的節(jié)點仍然與基站進行多跳通信;2)傳感器節(jié)點保存多條到網關節(jié)點的路由,每次通信時,采用輪循機制選擇一條路徑,從而將數據傳輸的負載均衡的分配到多條路徑上,達到均衡能耗的目的;3)引入能量控制機制,當與基站距離d的圓周上的節(jié)點能量消耗到一定值時,修改d的值重新組網,從而進一步均衡能量的消耗,解決“熱區(qū)”問題,延長無線傳感器網絡的生命周期。
假設節(jié)點被任意分布在某區(qū)域上,節(jié)點可以根據其所接收到的信號強弱程度計算出與發(fā)送節(jié)點的距離,d表示基站與節(jié)點的距離,Φ表示節(jié)點的剩余能量;基站BS在該區(qū)域的中心位置。本協議完成以下基本功能:1)區(qū)域內傳感器節(jié)點建立一個無線傳感器網絡,并向最近基站傳輸感知到的信息;2)當傳感器節(jié)點失效或者能量不足時,傳感器網絡能夠修復路由或者重新組建到達網關的路由;3)當區(qū)域內新加入節(jié)點時,節(jié)點可以加入到傳感器網絡并進行數據傳輸;4)當與BS距離半徑d的圓周上的節(jié)點的剩余能量Φ達到某一零界值時,修改d的值,重新組網。
路由骨干網具體定義如下:
路由骨干網包括一個基站節(jié)點及多個中間節(jié)點。其中基站節(jié)點用于連接外部網絡和傳感器網絡,基站沒有父節(jié)點,可以有多個子節(jié)點;中間節(jié)點為傳感器,可以有多個父節(jié)點和多個子節(jié)點。
初始狀態(tài)下,基站節(jié)點已經存在,傳感器節(jié)點隨機分布在指定區(qū)域。路由骨干網按照如下步驟初始化:
1)網關節(jié)點廣播Adv消息。
2)在預定時間段內,如果孤立節(jié)點(沒有加入到路由骨干網的節(jié)點)收到此Adv消息,計算出到基站的實際距離d,d小于D-D0的孤立節(jié)點將(如圖1中的節(jié)點S1)基站作為父節(jié)點,直接與基站通信,不再轉發(fā)消息,記錄到基站距離為0跳;d大于D+D0的孤立節(jié)點(如圖1中的節(jié)點S3)丟棄此消息,仍被視為孤立節(jié)點;d大于D-D0且小于D+D0的孤立節(jié)點(如圖1中的節(jié)點S2)將基站作為父節(jié)點,記錄到基站的距離為1跳,并且廣播Adv消息,此Adv消息包含一個以跳為單位的距離參數。
圖1
3)孤立節(jié)點查看消息中的距離參數,將距離參數最小的節(jié)點作為父節(jié)點,將父節(jié)點加入到父節(jié)點集合,記錄自己到基站的距離,并將距離參數值加1然后繼續(xù)廣播此Adv消息;如果已經加入到骨干網的節(jié)點接收到Adv消息,則比較Adv消息中的距離參數,選擇距離參數較小的節(jié)點加入到父節(jié)點集合,記錄自己到基站的距離,將距離參數加1然后繼續(xù)廣播此Adv消息。
4)如果處于孤立狀態(tài)下的節(jié)點在預定時間段內沒有收到任何Adv消息,則節(jié)點繼續(xù)等待下一個時間段,直到接收到Adv消息。
圖2 路由骨干網初始化
如圖2,在初始狀態(tài)下,網關廣播Adv消息,S0接收到消息,將基站作為父節(jié)點;節(jié)點S1、S2、S3、S4接收到消息,將基站加入到父節(jié)點集合,置距離為1跳,并且繼續(xù)轉發(fā)Adv消息;S5在特定時間段內收到S1、S2、S3和S6轉發(fā)來的Adv消息,比較三個消息的距離參數之后將參數距離較小的S1、S2、和S3、S4節(jié)點作為其父節(jié)點,并將將之加入到父節(jié)點集合中;S9收到S6、S7、S8發(fā)送來的消息,比較其距離參數,將S6和S7加入到父節(jié)點集合中。
當一個新節(jié)點S加入到傳感器網絡后,它會按照以下步驟加入到路由骨干網:1)節(jié)點S向一跳之內的鄰居節(jié)點廣播一條Req消息;2)接收到此Req消息的節(jié)點如果已經加入到骨干網,它返回一個Res消息,此消息中包含它到網關節(jié)點的距離參數;3)節(jié)點S等待特定時間后,查看接收到的Res消息中的距離參數值,選擇距離較近的節(jié)點作為自己的父節(jié)點,把父節(jié)點保存到父節(jié)點集合,記錄自己到網關節(jié)點的距離參數值(即父節(jié)點到網關的距離加1);4)節(jié)點S向其鄰居節(jié)點廣播Res消息,此消息的內容為節(jié)點S的距離參數值,表示節(jié)點S已經加入到骨干網。至此,新節(jié)點加入到骨干網。
由于傳感器節(jié)點的能量是有限的,所以當能量耗盡之后節(jié)點會變成失效節(jié)點。當傳感器節(jié)點S檢測到父節(jié)點F失效后,節(jié)點S將父節(jié)點從父節(jié)點集合在刪除。此時,如果父節(jié)點不為空,則節(jié)點S仍在骨干網中,可以繼續(xù)傳輸信息;如果父節(jié)點為空,那么節(jié)點S進行一下操作:1)節(jié)點S向鄰居節(jié)點廣播一條Req消息;2)收到此Req消息的節(jié)點如果已經加入到骨干網中,而且節(jié)點S不在它的父節(jié)點集合中,它向節(jié)點S返回一個Res消息,包括它的距離參數;3)節(jié)點S等待特定時間段后,查看接收到的Res消息的距離參數,然后選擇距離較小的節(jié)點作為父節(jié)點,將父節(jié)點加入到父節(jié)點集合中,記錄自己到網關節(jié)點的距離(即父節(jié)點到網關的距離加1);4)節(jié)點S向其鄰居節(jié)點廣播Res消息,此消息的內容為節(jié)點S的距離參數值,表示節(jié)點S已經加入到骨干網。至此,節(jié)點失效處理過程結束。
當節(jié)點要把感知到的數據信息傳輸到基站時,首先查看自己的父節(jié)點集合,采用輪循機制選擇一個父節(jié)點F,將數據信息傳輸到節(jié)點F后,F節(jié)點查看自己的父節(jié)點集合,再用輪循機制選擇一個父節(jié)點F,并向F,傳輸數據信息,依次類推,直到發(fā)送到網關節(jié)點為止。當環(huán)狀帶內節(jié)點的能量值下降到一定閥值時,修改環(huán)狀帶的半徑和寬度,重復過程2.1,初始化路由骨干網。
為了解決“熱區(qū)”問題,協議采用了兩種方法來均衡能量消耗。首先節(jié)點保存多個最短路由,采用輪循機制選擇一條路徑將數據信息傳輸到基站,從而將數據傳輸的任務均衡地分布于多條路由路徑上,節(jié)省了節(jié)點的能量消耗;由于劃分了環(huán)狀帶,環(huán)狀帶內的節(jié)點成為能量消耗比較多的節(jié)點,因此當環(huán)狀帶內節(jié)點的能量消耗到一定閥值時,減小環(huán)狀帶的半徑,轉移了熱點問題,同時擴大環(huán)狀帶的寬度,環(huán)狀帶外的節(jié)點有更多的父節(jié)點可以供選擇,從而把能量消耗均衡到更多路徑上,進一步均衡了能量消耗,達到解決“熱區(qū)”問題的目的。
[1]王曉喃,高德民,徐江.高效節(jié)能的無線傳感器網絡路由協議設計與實現[J].2010.8.
[2]王平,黎峰.無線傳感器網絡基于梯度的分簇路由算法[C].全國計算機網絡與通信學術會議論文集,2011.
[3]秦嶺,胡榮強.無線傳感器網絡節(jié)點的有效能耗最小化策略[J].武漢理工大學學報,2010.
[4]李樹華,劉振宇,李迎秋.能量自適應的無線傳感器網絡分簇路由協議[J].計算機工程與設計,2010.