無線傳感器網(wǎng)絡(luò)是由部署在監(jiān)測區(qū)域內(nèi)的大量廉價(jià)的微型傳感器節(jié)點(diǎn),通過無線通信的方式形成的一個多跳自組織網(wǎng)絡(luò)系統(tǒng),其目的是協(xié)作地感知、采集和處理覆蓋區(qū)域內(nèi)的事件信息,并發(fā)送給觀察者。由于節(jié)點(diǎn)能量有限且補(bǔ)充困難,無線傳感器網(wǎng)絡(luò)的首要設(shè)計(jì)目標(biāo)是能量[6]的高效利用。本文在原有GEAR[1]路由協(xié)議基礎(chǔ)上提出改進(jìn)方法,從而在路由協(xié)議[4]上節(jié)省無線傳感器節(jié)點(diǎn)有限的能量,并提高整個網(wǎng)絡(luò)的生存周期。
GEAR協(xié)議介紹和改進(jìn)
GEAR[5](Geographical and Energy Aware Routing)路由協(xié)議是根據(jù)事件區(qū)域的地理位置信息,建立匯聚節(jié)點(diǎn)到事件區(qū)域的優(yōu)化路徑,避免了泛洪查詢消息,從而減少了建立路由的開銷。但是傳統(tǒng)的GEAR路由機(jī)制由于缺乏足夠的拓?fù)湫畔,路由過程中會遇到路由空洞[2]的現(xiàn)象。
本文提出了考慮兩跳節(jié)點(diǎn)信息的路由機(jī)制,大大減少了路由空洞出現(xiàn)的概率,降低了每次成功查詢的平均能耗;根據(jù)無線發(fā)射功率和通信半徑的關(guān)系,由通信距離確定發(fā)射功率[3],并在路由選擇時(shí)考慮發(fā)射功率,提出了更加節(jié)省能量的GPEAR路由機(jī)制。
GEAHAR路由機(jī)制
過多的路由空洞會消耗很多不必要的能量,降低整個網(wǎng)絡(luò)的通信效率。為了減少或避免路由空洞,節(jié)點(diǎn)需要知道更多的拓?fù)湫畔,這就是GEAHAR(Geographical energy aware and hole avoid routing)機(jī)制提出的依據(jù);舅枷胧窃诓樵兿r(shí),節(jié)點(diǎn)選擇下一跳節(jié)點(diǎn)不僅僅考慮鄰居一跳節(jié)點(diǎn)的代價(jià)值最小,而是考慮兩跳的信息。
鄰居節(jié)點(diǎn)是指節(jié)點(diǎn)一跳通信范圍內(nèi)可以到達(dá)的所有節(jié)點(diǎn)的集合。如(1)式定義,dmax為節(jié)點(diǎn)最大通信距離,為所有節(jié)點(diǎn)的集合。
NbNi={Nj|d(Nj,Ni)}
≤dmax,Nj∈N}(1)
節(jié)點(diǎn)Ni選擇下一跳Nnext(i)的依據(jù)如(2)式。Nbi為節(jié)點(diǎn)Ni的鄰居節(jié)點(diǎn)集合,NbNbi(j)為節(jié)點(diǎn)Ni的鄰居節(jié)點(diǎn)Nbi(j)的鄰居節(jié)點(diǎn)集合。β為比例系數(shù),取值范圍為0~1。β取值為1,算法退化為一跳的GEAR路由機(jī)制。式中需要注意的是NbNbi(j)(k)≠Ni,即第二跳節(jié)點(diǎn)不能選擇當(dāng)前節(jié)點(diǎn),否則將出現(xiàn)返回路由的現(xiàn)象,這將大量消耗不必要的能量。
Nnext(i)=min(βc(Nbi(j),T)+(1-β)min(c(NBNbj(j)(k),T)))Nbi(j)∈Nbi,NbNbi(j)(K)∈NbNbi(j),NbNb(j)(k)≠Ni(2)
GPEAR路由機(jī)制
在接收靈敏度一定的情況下,無線發(fā)射功率P和接收半徑R之間關(guān)系是P正比于R2~R5,也就是P可能會遠(yuǎn)遠(yuǎn)大于R2。如果在節(jié)點(diǎn)間通信時(shí)考慮通信的距離,適當(dāng)調(diào)整發(fā)射功率,而不是使用相同的發(fā)射功率(這樣的話只能以最大通信距離來發(fā)射),則可以大大降低通信的能耗,延長整個網(wǎng)絡(luò)的壽命,降低每個數(shù)據(jù)包的通信代價(jià)。
GPEAR(Geographical and physical energy aware routing)路由機(jī)制是在傳統(tǒng)GEAR路由機(jī)制作下一跳路由選擇時(shí),考慮物理層發(fā)射功率與通信半徑的關(guān)系,從而做出更加適合的選擇。
假設(shè)無線通信部分能量消耗與通信距離的四次方成正比,并將發(fā)射功率分為5檔,見表1。
表1 發(fā)射功率與通信半徑的關(guān)系
GPEAR路由機(jī)制則是選擇鄰居節(jié)點(diǎn)中代價(jià)值和發(fā)送一跳的通信代價(jià)的聯(lián)合最小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),如式(3)所示:
Nnext(Ni)={Nj|min(h(Ni,Nj,T)=rc(Nj,T)+(1-r)Esend(Ni,Nj)),Nj∈NbNi} (3)
式中,Nnext(Ni)為節(jié)點(diǎn)Ni選擇的下一跳節(jié)點(diǎn);h(Ni,Nj,T)為節(jié)點(diǎn)Ni經(jīng)由Nj到事件區(qū)域T的新代價(jià)值;Esend(Ni,Nj)為節(jié)點(diǎn)Ni到節(jié)點(diǎn)Nj的通信代價(jià),如表1中的歸一化數(shù)值;NbNi為節(jié)點(diǎn)Ni的鄰居節(jié)點(diǎn)集合;r為比例系數(shù),取值范圍為0~1。
仿真環(huán)境
仿真條件假設(shè)
(1)查詢信息中包含了目標(biāo)區(qū)域(即事件區(qū)域)的位置,此處假設(shè)用目標(biāo)區(qū)域的中心位置作為目標(biāo)區(qū)域的位置;
(2)每個節(jié)點(diǎn)都知道自己的位置信息和剩余能量,并且可以通過一個簡單的Hello機(jī)制獲取鄰居節(jié)點(diǎn)的位置信息和剩余能量。節(jié)點(diǎn)的位置信息可以使用低成本的GPS定位機(jī)制或者其他現(xiàn)成的定位機(jī)制獲得;
(3)節(jié)點(diǎn)間的鏈接是雙向的,即如果節(jié)點(diǎn)可以獲得鄰居節(jié)點(diǎn)的訪問,則節(jié)點(diǎn)也可以訪問鄰居節(jié)點(diǎn),這對于一般的MAC協(xié)議,如IEEE 802.11,都是容易實(shí)現(xiàn)的;
(4)節(jié)點(diǎn)每消耗總能量的10%時(shí),通知鄰居節(jié)點(diǎn)自己的剩余能量信息,用于更新鄰居節(jié)點(diǎn)中的鄰居節(jié)點(diǎn)列表信息;當(dāng)節(jié)點(diǎn)剩余能量小于一個閾值時(shí),將通知自己的鄰居節(jié)點(diǎn),將自己從鄰居節(jié)點(diǎn)列表中刪除,表示該節(jié)點(diǎn)已經(jīng)死亡。
仿真參數(shù)
在100m*100m的區(qū)域內(nèi),隨機(jī)分布200個傳感器節(jié)點(diǎn),節(jié)點(diǎn)初始能量為1000J,節(jié)點(diǎn)死亡能量閾值為5J,最大通信距離為25m,最大通信距離通信時(shí),每次消耗1J能量。對于GPEAR算法,通信能耗與通信距離的關(guān)系由表1給出。仿真環(huán)境假設(shè)會聚節(jié)點(diǎn)(Sink)在整個區(qū)域的中心(50,50)處,四個事件區(qū)域在整個區(qū)域的四個角上(0,0)、(0,100)、(100,0)和(100,100),每個事件區(qū)域做100次查詢后,輪流轉(zhuǎn)換。
3 測試標(biāo)準(zhǔn)
(1)查詢成功次數(shù):只有成功的查詢對用戶才是有用的,所以網(wǎng)絡(luò)能夠進(jìn)行的成功查詢次數(shù)可以體現(xiàn)網(wǎng)絡(luò)的生存周期和傳輸可靠性。
(2)每次成功查詢平均消耗的能量:該標(biāo)準(zhǔn)體現(xiàn)了整個網(wǎng)絡(luò)能量的利用效率。
每次查詢的平均消耗能量為整個網(wǎng)絡(luò)消耗能量除以成功查詢的次數(shù),如式(4)所示。
仿真結(jié)果
圖1 衰減指數(shù)對算法性能的影響
圖1的結(jié)果表明,隨著衰減指數(shù)(衰減指數(shù)為2表示發(fā)射能量和通信半徑的二次方成正比,依次類推)的增長, GPEAR算法的性能則改善非常明顯。
圖2最大允許跳數(shù)對算法性能的影響