張利瓊,陶 昆
(貴州師范大學,貴州 貴陽 550014)
傳感器網(wǎng)絡通常由覆蓋一個地區(qū)的若干傳感器節(jié)點組成。每個傳感器節(jié)點獨立進行數(shù)據(jù)收集及處理[1-2],并將得到的數(shù)據(jù)通過無線連接傳送到網(wǎng)關節(jié)點,再由網(wǎng)關節(jié)點向互聯(lián)網(wǎng)發(fā)送。對于傳感器網(wǎng)絡,路由協(xié)議設計是很具挑戰(zhàn)性的。首先,節(jié)點沒有全球唯一的標識符,傳統(tǒng)的互聯(lián)網(wǎng)路由協(xié)議無法應用在傳感器網(wǎng)絡中;第二,傳感器網(wǎng)絡中的所有節(jié)點都是源節(jié)點,向唯一的目的節(jié)點Sink發(fā)送數(shù)據(jù);第三,由于在被測對象內部或附近部署了大量的節(jié)點,它們采集到的數(shù)據(jù)是相同或相近的。這就需要路由協(xié)議具有數(shù)據(jù)融合能力,以節(jié)約電能,提高帶寬利用率;第四,節(jié)點具備處理能力。節(jié)點的電能存儲能力是很有限的,需要強大的資源管理和任務調度能力。因此,傳感器網(wǎng)絡的路由協(xié)議[3]是與傳統(tǒng)網(wǎng)絡截然不同的。
簇的建立和簇頭特定任務的分配對于整個系統(tǒng)的可擴展性、壽命和能量效率起著非常大的作用。聚類路由[4]是降低簇中能量消耗的一種有效方式。LEACH[5](Low-Energy Adaptive Cluster-based Hierarchy)算法是最早的比較成熟的聚類路由算法。
LEACH協(xié)議的隨機簇頭選擇分布不均勻,而且LEACH協(xié)議是根據(jù)節(jié)點曾經(jīng)擔當簇頭的次數(shù)來決定是否擔任簇頭而沒有考慮節(jié)點的剩余能量;同時,LEACH網(wǎng)絡協(xié)議在節(jié)點數(shù)量大的無線傳感器網(wǎng)絡中使用時會采集大量的冗余數(shù)據(jù),這樣會使網(wǎng)絡由于處理大量的冗余數(shù)據(jù)而使網(wǎng)絡能耗大大增加,縮短了網(wǎng)絡的生存周期。
LEACH-C[6](LEACH-centralized) 是集中式的簇頭產(chǎn)生算法,由基站負責挑選簇頭。因為無線傳感器網(wǎng)絡中使用節(jié)點數(shù)量大,節(jié)點覆蓋密度也大,這樣無法避免地使單個節(jié)點采集的數(shù)據(jù)與整個無線傳感器網(wǎng)絡采集的數(shù)據(jù)有很大的關聯(lián)性。而用戶需要的,并不是所有的節(jié)點采集的數(shù)據(jù)(包含冗余數(shù)據(jù)),而只是對發(fā)生事件的描述——利用網(wǎng)絡數(shù)據(jù)集分析出的被觀測區(qū)域正在發(fā)生的事件狀況。
可以對LEACH協(xié)議進行改進,在成簇階段(setupstate)之前,插入一個以節(jié)點能量為判斷標準的篩選過程,將節(jié)點的剩余能量[7]與網(wǎng)絡的平均能量相比較,一旦判斷出本節(jié)點的能量大大的低于網(wǎng)絡的平均能量,宣布節(jié)點在接下來的循環(huán)進入休眠狀態(tài)直至新的成簇階段到來時才重新開啟節(jié)點,并再次進行篩選。同時,對成簇階段的非簇內節(jié)點,在接下來的循環(huán)中使其進入休眠狀態(tài)直至新的成簇階段到來時才重新開啟節(jié)點。
能耗設置方面,作了如下設置:發(fā)送節(jié)點的能耗包括啟動收發(fā)機能耗和放大信號能耗;接受節(jié)點的能耗設置為啟動收發(fā)機能耗。如圖1所示。
圖1 無線傳輸?shù)哪芰磕P?/p>
從圖1可以看出:每處理k個bit的信息,需要消耗的能量為Eelec*k,而信號放大能量需要由信號傳播的距離決定,εamp為放大系數(shù)。我們可以把距離分作兩種:信號在簇內部傳輸時,我們視其為自由空間傳輸,此時信號收發(fā)機的能耗為:ETX(k,d)=Eelec*k+εamp*k*d21;d1為簇間傳輸距離。
在能量篩選算法[8]中,我們指定了一個能量門限(pthresh_)判斷節(jié)點能量在網(wǎng)絡中的地位:
其中Etotal是網(wǎng)絡總能量;N代表網(wǎng)絡中存活節(jié)點的總數(shù);Ei是本節(jié)點的能量。
pthresh_的表達式能夠將本節(jié)點的能量在網(wǎng)絡中的地位清晰地表示出來。當能量門限取1時,意味著本節(jié)點能量遠遠低于網(wǎng)絡中節(jié)點的平均能量。此時我們就可以設置節(jié)電關閉其無線收發(fā)機進入休眠狀態(tài),等到下個循環(huán)再重新開啟,重復能量判斷過程;當門限值取Etotal/N*Ei時,就依照門限大小決定節(jié)點休眠的概率:我們假設根據(jù)改進方法中能量判決門限所篩選出的節(jié)點就是最近周期內剛剛擔任過CH的節(jié)點。進而令其在接下來的循環(huán)中進入休眠,直至新的簇首節(jié)點競爭周期到來。因為剛在最近周期擔任過CH的節(jié)點,在能耗上的確大于其他節(jié)點,其所剩的能量在網(wǎng)絡中必然處于較低的水平。所以在仿真中我們檢測節(jié)點的hasbeench_變量狀態(tài),使每個節(jié)點在發(fā)送信息之前都先判斷一下該變量狀態(tài)(hasbeench_標志著本節(jié)點在上一個循環(huán)是否為CH節(jié)點),如果hasbeench_為l,表示上個循環(huán)中此節(jié)點擔任過CH,則令其在本輪循環(huán)中進入休眠;否則,就產(chǎn)生隨機數(shù)P與pthresh_做比較,一旦P小于門限pthresh_,則關閉節(jié)點,令其休眠;否則繼續(xù)執(zhí)行發(fā)送函數(shù)中的其他指令,向sink節(jié)點發(fā)送信息。同時,對成簇階段的非簇內節(jié)點,在接下來的循環(huán)中使其進入休眠狀態(tài)直至新的成簇階段到來時才重新開啟節(jié)點。
改進型LEACH的每輪循環(huán)分為節(jié)點能量篩選階段、簇形成階段和穩(wěn)定工作階段三個部分:
(1)每輪循環(huán)開始時,首先進行節(jié)點能量篩選,將低能節(jié)點、非簇內節(jié)點以及在上輪循環(huán)中擔當簇頭的節(jié)點令其進入睡眠狀態(tài),直到新的成簇階段到來時才重新開啟節(jié)點;
(2)簇形成階段由 decideClusterHead、advertiseCluster-Head、findBestCluster、informClusterHead、createSchedule 幾個函數(shù)組成,在經(jīng)過該階段后,簇頭節(jié)點和相應的簇內節(jié)點得以選出和形成,同時簇頭節(jié)點將根據(jù)本地信息給簇內節(jié)點分配TDMA時隙,并廣播給簇內所有節(jié)點;
(3)在穩(wěn)定工作階段,簇內各個節(jié)點根據(jù)分配的TDMA時隙將感知的數(shù)據(jù)發(fā)送給簇頭,簇頭將數(shù)據(jù)聚合后發(fā)給基站。經(jīng)過一輪數(shù)據(jù)采集和收集工作后,為了均衡節(jié)點能量,將進行新一輪的節(jié)點能量篩選和簇頭選擇。通常,穩(wěn)定工作階段時間都比前兩階段長。
由圖2分析可知,LEACH協(xié)議的第一節(jié)點死亡時間為410 s,整個網(wǎng)絡失效時間為527 s;LEACH-C協(xié)議的第一節(jié)點死亡時間為380 s,整個網(wǎng)絡失效時間為571 s;改進型協(xié)議的第一節(jié)點死亡時間為280 s,整個網(wǎng)絡失效時間為603 s。改進型協(xié)議第一節(jié)點死亡時間最早,其主要原因是每輪簇形成之前,每個節(jié)點都需要計算自身能量在整個網(wǎng)絡中的狀態(tài),即進行能量篩選,故能耗要稍大些。但是改進型協(xié)議考慮了節(jié)點剩余能量在整個網(wǎng)絡中的水平,不允許低于整個網(wǎng)絡平均能量的節(jié)點擔任簇頭,并將一些低能的數(shù)據(jù)冗余節(jié)點令其進入休眠狀態(tài),這樣節(jié)省了節(jié)點能耗,使網(wǎng)絡生存周期較LEACH協(xié)議延長了14.4%,較LEACH-C協(xié)議延長了5.9%。因此,改進型協(xié)議的網(wǎng)絡生存能力要優(yōu)于LEACH協(xié)議。
由圖3分析可知,改進型協(xié)議不僅將整個網(wǎng)絡各個節(jié)點的能耗進行了平均,而且讓網(wǎng)絡中的節(jié)點輪換休息,對節(jié)點數(shù)量較大、節(jié)點覆蓋密度大的無線傳感器網(wǎng)絡來說,節(jié)約了節(jié)點的能耗,在一定程度上延長了網(wǎng)絡的生存周期。
目前,WSN技術己經(jīng)漸趨成熟和實用,其路由協(xié)議研究也成為一個熱點。經(jīng)典的LEACH具有一定的局限性,通過對LEACH的改進,進行仿真。通過仿真,LEACH的改進,比原LEACH協(xié)議具有更好的網(wǎng)絡生存周期,節(jié)約了節(jié)點能耗。
圖2 網(wǎng)絡生存周期
圖3 平均能量消耗
[1]任豐原,黃海寧,林闖.無線傳感器網(wǎng)絡[J].軟件學報,2003,14(7):1282-1291.
[2]李建中,李金寶,石勝飛.傳感器網(wǎng)絡及其數(shù)據(jù)管理的概念、問題與進展[J].軟件學報,2003,14(10):1717-1727.
[3]Heinzelman W.Application-specific-protocol-architectures for Wireless Networks[D].Ph.D.Dissertstion,Mass.Inst.Technol,Cambridge,2000.
[4]Wendi B.Heinzelman,An Application-Specific-Protocol-Architecture for Wireless Microsensor Networks[C].IEEE Transactions on Wireless Communications,2002,1(4):660-670.
[5]Wendi Rabiner Heizelman,Joanna Kulik,H.ari Balakrishnan.Adaptive Protocols for information dissemination in Wireless Sensor Networks[A].VictorBah1.1999 5th ACM/IE-EE Annual International Conference on Mobile Computing and Networking Proceedings[C].Seattle,WA,USA:ACM,1999.174-185.
[6]柯志亨,程榮祥,鄧德雋.NS2仿真實驗——多媒體和無線網(wǎng)絡通信[M].北京:電子工業(yè)出版社,2009.
[7]王慧斌,俞弦,徐立中.無線傳感器網(wǎng)絡LEACH協(xié)議的改進[J].無線傳感器網(wǎng)及網(wǎng)絡信息處理技術,2006:10176-184.