文獻標識碼: A
文章編號: 0258-7998(2011)02-0099-03
無線傳感器網絡節點通過飛機播撒部署在人跡罕至的地方進行環境監測,或者部署在敵區。人們無法對節點進行電池更換。即使人類能進入的區域,對龐大數量的節點進行充電或者更換電池,也是一項非常艱巨的工作。無線傳感器網絡的節能問題成為研究無線傳感器網絡的熱點。為了有效地對無線傳感器網絡節點進行管理,設計一種節能的路由協議迫在眉睫。
典型的自組網(Ad_hoc)網絡的路由協議,沒有充分考慮到無線傳感器網絡節點能量有限的特點,不再適用于無線傳感網網絡。國內外針對無線傳感網網絡的特點設計的路由協議分為平面路由協議和層次路由協議。其中典型的代表是層次路由協議中的LEACH協議。
1 LEACH算法
LEACH協議分為簇頭建立階段和數據傳輸階段。在簇頭建立階段,每個節點在第r輪,產生一個隨機數x,x∈[0,1]與閾值T(n)進行比較決定是否當選為簇頭。如果x≤T(n),該節點在當前輪被選舉為簇頭;否則,該節點在該輪為非簇頭節點[1]。
其中,p為簇頭數在所有節點當中占的百分比;G為在最近1/p輪沒當選過簇頭的節點集合;在1/p-1輪后,T(n)=1,所有在最近1/p輪中沒有被當選過簇頭的節點均被當選為簇頭。當某一輪選舉完后,被當選為簇頭的節點以相同的能量采用載波偵聽多路訪問_介質訪問控制CSMA_ MAC(Carrier Sense Multiple Access_Medium Access Control)協議的方式向周圍節點廣播。簇頭建立起來后,非簇頭節點根據感知到的信號強度決定要加入哪個簇。同時非簇頭節點采用CSMA_MAC方式通知要加入的簇頭。簇頭節點采用時分多址TDMA(Time Division Multiple Access)的方式為簇內節點分配傳輸數據的時隙,避免簇內節點發送數據占用信道產生沖突。不同的簇采用碼分多址CDMA(Code Division Multiple Access),以便區分不同簇發送的數據,避免簇間干擾[1]。
LEACH協議采用“輪”的方式進行簇頭選舉,有利于負載均衡,延長了無線傳感器網絡的生命周期。LEACH協議仍然存在一些缺點需要改進:LEACH協議簇頭選舉時,由于選舉的簇頭是個隨機過程,容易產生累積誤差,造成選舉簇頭數目偏離期望的最佳值。由于簇頭選舉的隨機性,對于大規模網絡容易造成簇頭在場景中分布位置不合理,部分區域過密,部分區域過稀和邊緣分布,影響整個網絡的生命。簇頭節點和基站之間采用單跳傳輸,造成簇頭節點能耗大,容易過早死亡。簇頭選舉時沒有充分考慮到節點剩余能量和到基站的距離對均衡網絡負載的影響[1]。
2 E-LEACH算法理論分析
2.1 改進簇頭選舉算法
LEACH協議中在一輪循環當中,每個節點按照概率分布充當1次簇頭,N/k-1次非簇頭。網絡運行一段時間后,節點能量不再相等。按照LEACH協議簇頭選舉算法,較低能量節點和較高能量節點具有相同的概率當選為簇頭。如果較低能量節點被當選為簇頭,則能量很快耗盡,節點很快死亡,不利于整個網絡的生存。改進算法考慮到剩余能量較高的節點具有較大概率成為簇頭,有利于延長網絡的生命周期。對閾值公式進行改進,如式(2)所示,其中Einit表示節點初始化能量,rs為該節點連續沒有被選為簇頭的輪數;Eres為該節點當前剩余能量。當節點能量低于本區域內節點平均能量時,該節點在本輪循環中不參加選舉簇頭。簇頭建立階段算法流程如圖1所示[2]。
2.2 簇頭節點多跳傳輸數據
當一輪選舉結束且簇頭接收到簇內成員數據后,簇頭之間建立傳輸數據的路由樹,通過路由方式把簇頭數據多跳轉發至基站[3]。當新的一輪簇頭選舉完成后,在開始發送數據到基站前,利用新當選的簇頭節點更新路由樹。在簇頭節點給下一跳節點傳輸數據的同時,下一跳節點接收簇內成員的數據,會產生信道占用沖突。本方案中采用CSMA的方式解決數據沖突。
采用LEACH協議中引入的無線通信能量傳播損耗模型,傳輸l bit數據到距離d處所消耗的能量如式(3)所示。接收l bit數據所需要的能量如式(4)所示[4,5]。
從以上分析可以看出,在以AB為直徑的圓內的簇頭節點作為中繼節點有利于減少數據傳輸過程的能量損耗。在多徑衰減模型當中,由于數據傳輸能量損耗正比于傳播距離的四次方,采用中繼更有利于節約傳輸數據能量。考慮到中繼節點要進行數據轉發和數據融合,會消耗一部分能量。頻繁的中繼轉發會增加能量損耗,選取在如圖2所示的虛線圓(虛線圓的半徑R′=0.7R) 內的簇頭節點作為中繼節點。如果中繼節點能量比較低,則會導致中繼節點能量衰竭的現象,在簇頭選舉階段,只有剩余能量大于平均能量的節點才能當選為簇頭。簇頭節點傳輸數據流程如圖3所示。
3 仿真實驗
本實驗在Linux radhat9系統下安裝的ns-allinone-2.27+MIT安裝包中的LEACH協議進行修改得到E-LEACH,增加findnexthop子函數實現尋找最佳下一跳路由,每搜尋一次下一跳路由消耗能量 $opt(nn_)*1e-9J($opt(nn_)為仿真區域內節點數);增加sendtoNextHop子函數,實現發送數據到下一跳節點;增加 recvNeighbore子函數,實現為鄰居簇頭中繼數據。基站位置設置在(50,175),其他參數采用LEACH協議默認的值。NS2仿真得到的數據采用Matlab進行繪圖分析。圖4為LEACH協議和E-LEACH協議生命周期比較圖。
從圖4可以看出LEACH協議的第一節點死亡時間FND(First Node Dead)為410s,E-LEACH的FND為670 s, 相比之下E-LEACH提高率為63.41%。LEACH協議的半數節點死亡時間HND(Half Node Dead)為500 s, E-LEACH的HND為900 s, 相比之下E-LEACH提高率為80.00%。 LEACH協議的最后節點死亡時間LND(Last Node Dead)為551.7 s,E-LEACH的LND為1 040 s, 相比之下E-LEACH提高率為88.51%。圖5為兩種網絡協議基站接收到的數據包和生存節點個數關系比較圖,從圖5可以看出,E-LEACH在發送50 000個數據包時,存活節點數為100,而LEACH協議在發送50 000個數據包時,節點全部死亡。結果說明在發送數據量和延長網絡生命周期上E-LEACH明顯優于LEACH,仿真結果與理論分析一致,驗證了理論的正確性。
消耗單位能量到達基站的數據量越多,說明能量有效利用率越高。基站接收的數據量越多,監測的精度越高。圖6為LEACH協議和E-LEACH協議基站接收的數據包總量比較圖。在消耗200 J能量時, LEACH協議基站接收到46 730個數據包, E-LEACH協議基站接收到60 870個數據包,相比較E-LEACH提高率為30.25%。
基站在(50,100)位置的兩種協議比較情況如表1、表2所示。
總結以上分析數據,在提高網絡生命周期方面E-EACH方案在基站距離比較遠的時候效果更明顯些。基站在距離節點近時,轉發數據和數據融合消耗能量占的比重比較大,通過中繼起不到很好的節能效果,所以基站距離遠時,多跳優勢充分體現,仿真結果與理論分析是一致的。
本文改進了LEACH協議,簇間通信調度時間收發數據,不可避免存在部分數據沖突,仿真結果不是十分穩定。有效解決潛在的隱藏終端問題,避免數據沖突,將為進一步提高無線傳感器網絡的性能提供可能。
參考文獻
[1] HEINZLMAN W B, CHANDRAKASAN A P, BALAKRIS-HNAN H. An application-specific protocol architecture for wireless microsensor networks[C]. Wireless Communications, IEEE Transactions on, 2002.10.1(4).
[2] SOREANU P, VOLKOVICH Z, BARZILY Z. Energy-efficient predictive jamming holes detection protocol for wireless sensor networks[C].The Second International Conference on Sensor Technologies and Applications, 2008.
[3] PRABHU A. Clustering with tree-based architecture:protocol to extend life time of sensor networks[D]. Southern Illinois University at Carbondale;Electrical and Computer Engineering.2007.
[4] FAN Yi Ming, YU Jian Jun. The communication protocol for wireless sensor network about LEACH[C]. International Conference on Computational Intelligence and Security Work shops, 2007.
[5] MARZIAH V. Energy efficient clustering and routing protocols for wireless sensor networks[D].San Jose State University.2005.