陳明明, 王 寧,3,陳 亮,陳育智
(1. 廈門華廈學院, 福建 廈門 361026;2. 新一代信息通信技術(shù)與智慧教育福建省高校工程研究中心, 福建 廈門 361026;3. 廈門大學, 福建 廈門 361005;4. 昆明理工大學,云南 昆明 650504)
無線傳感網(wǎng)絡(luò) (Wireless Sensor Networks,WSNs)[1-2]是由微型、低成本的傳感節(jié)點自組連通的網(wǎng)絡(luò)。每個傳感節(jié)點能夠感測、傳輸和接收數(shù)據(jù)。這些節(jié)點是由電池供電。當節(jié)點電池耗盡,不便于補充能量。而一旦節(jié)點能量耗盡,節(jié)點就失效,并無法工作。因此,有效地利用節(jié)點能量成為WSNs的研究熱點之一。
而傳輸數(shù)據(jù)所消耗的能量占據(jù)節(jié)點的80%。因此,高效地完成數(shù)據(jù)傳輸策略能夠降低能耗[3]。傳感節(jié)點需要實時感測數(shù)據(jù),再將數(shù)據(jù)傳輸至信宿。由于傳感節(jié)點失效,網(wǎng)絡(luò)連通率并不高,降低了數(shù)據(jù)包傳遞成功率,這給數(shù)據(jù)傳輸?shù)目煽啃蕴岢隽颂魬?zhàn)。
傳染路由(Gossip)是典型的容錯路由[4]。當傳感節(jié)點需要將數(shù)據(jù)傳輸至控制中心(信宿),它就從鄰居節(jié)點中隨機選擇一個節(jié)點作為下一跳轉(zhuǎn)發(fā)節(jié)點(轉(zhuǎn)發(fā)節(jié)點)。然后,轉(zhuǎn)發(fā)節(jié)點再從它的鄰居節(jié)點中選擇轉(zhuǎn)發(fā)節(jié)點,直到信宿收到數(shù)據(jù)。信宿可能收到來自不同路徑的同一份數(shù)據(jù)多個復(fù)本。這增加了冗余。
此外,由于多個節(jié)點參與轉(zhuǎn)發(fā)/接收數(shù)據(jù),消耗了大量的能量。因此,控制參與節(jié)點數(shù)是十分重要的??赏ㄟ^優(yōu)先策略,只選擇部分節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)。只允許部分節(jié)點傳輸數(shù)據(jù),也減少數(shù)據(jù)在網(wǎng)絡(luò)中的復(fù)本數(shù)。最終,能夠減少能耗,提高網(wǎng)絡(luò)壽命。
目前,有基于概率、計數(shù)和距離產(chǎn)生轉(zhuǎn)發(fā)節(jié)點方案。其中概率方案最簡單、易實施。節(jié)點以一定概率從鄰居節(jié)點選擇轉(zhuǎn)發(fā)節(jié)點。而基于計數(shù)方案是依據(jù)離目的節(jié)點的跳數(shù)選擇轉(zhuǎn)發(fā)節(jié)點?;诰嚯x方案是通過依據(jù)節(jié)點位置信息選擇轉(zhuǎn)發(fā)節(jié)點。
實質(zhì)上,控制參與路由的節(jié)點數(shù)是降低Gossip路由能耗的關(guān)鍵。為此,提出基于能耗均衡的傳染路由(Energy Consumption Balance-Gossip, ECB-G)。ECB-G路由通過鄰居節(jié)點的位置和能量信息選擇轉(zhuǎn)發(fā)節(jié)點,減少參與數(shù)據(jù)包轉(zhuǎn)發(fā)的節(jié)點,進而控制能耗。同時,依據(jù)節(jié)點的距離信息擇優(yōu)選擇下一跳轉(zhuǎn)發(fā)節(jié)點,從而構(gòu)建穩(wěn)定的路由,減少重傳次數(shù),提高帶寬利用率。仿真結(jié)果證實了ECB-G路由在能耗和帶寬利用率方面具有良好的性能。
用連通圖G(V,E)表示W(wǎng)SN拓撲結(jié)構(gòu),其中V為頂點集,表示傳感節(jié)點。而E為邊集,表示節(jié)點間直接連通的鏈路。假定網(wǎng)絡(luò)有N個節(jié)點。令(xi,yi)表示第i個節(jié)點si的位置。
整個ECB-G路由由四個階段構(gòu)成,如圖1所示。首先,發(fā)送請求數(shù)據(jù)包,再計算距離,然后選擇最優(yōu)轉(zhuǎn)發(fā)節(jié)點,最后轉(zhuǎn)發(fā)數(shù)據(jù)。
圖1 ECB-G路由框架
當節(jié)點需要傳輸數(shù)據(jù)Data,就向鄰居節(jié)點發(fā)送請求數(shù)據(jù)包(Request Packet, RQP),旨在收集鄰居節(jié)點的信息。一旦收到RQP,鄰居節(jié)點就回復(fù)數(shù)據(jù)包(Reply Packet, RPP),其包含節(jié)點的剩余能量和位置信息。
再依據(jù)鄰居節(jié)點的能量和位置信息,計算節(jié)點成為轉(zhuǎn)發(fā)節(jié)點概率的分值。再選擇具有最高分值的節(jié)點作為轉(zhuǎn)發(fā)節(jié)點。最后,由轉(zhuǎn)發(fā)節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)。
采用如圖2所示的能耗模型[5]。令Esd(m,d)表示傳輸m比特數(shù)據(jù)、傳輸距離d時節(jié)點消耗的能量:
(1)
圖2 能量消耗模型
令E0表示節(jié)點的初始能量。假定所有節(jié)點具有相同初始能量。令Er(i)表示節(jié)點si的剩余能量。能效均衡因子考慮節(jié)點能量消耗速度以及其鄰居節(jié)點的平均剩余能量。
考慮平均剩余能量的原因在于:若節(jié)點自身具有高的剩余能量,但其鄰居節(jié)點的剩余能量低。這容易使節(jié)點處于“孤立無援”狀態(tài),也無法將數(shù)據(jù)傳輸出去。
令ae(i)表示節(jié)點si的能效均衡因子,其定義如式(2)所示:
(2)
其中ni表示節(jié)點si的鄰居節(jié)點集,而|ni|表示集ni的節(jié)點數(shù)。sj表示節(jié)點si的一個鄰居節(jié)點,sj∈ni。
再依據(jù)距離遠近因子選擇轉(zhuǎn)發(fā)節(jié)點。具體而言,節(jié)點si需從其|ni|個鄰居節(jié)點中選擇具有距離最優(yōu)的節(jié)點作為轉(zhuǎn)發(fā)節(jié)點。
令bd(i,j)表示節(jié)點si離節(jié)點sj的距離遠近因子,其定義如式(3)所示:
(3)
其中di,j表示節(jié)點si離節(jié)點sj的歐式距離。而di,sink、dj,sink分別表示節(jié)點si離信宿sink、節(jié)點sj離信宿sink的歐式距離。如圖3所示。圖中的虛線圓圈表示節(jié)點si的通信范圍。節(jié)點sj為節(jié)點si的一個鄰居節(jié)點。
圖3 距離示意圖
當節(jié)點si需要數(shù)據(jù),就向鄰居節(jié)點發(fā)送RQP,其包含了自己位置。再監(jiān)聽,并收集鄰居節(jié)點回復(fù)RRP包,進而獲取鄰居節(jié)點的位置和能量信息。然后就廣播Datai。
鄰居節(jié)點(假定是節(jié)點sj)先依據(jù)分別式(2)、式(3)計算能效均衡因子和距離遠近因子。再依據(jù)式(4)計算節(jié)點轉(zhuǎn)發(fā)分值。令Fj表示節(jié)點sj的轉(zhuǎn)發(fā)分值:
Fj=ae(i)+bd(i,j)
(4)
為了使具有最高分值的節(jié)點成為轉(zhuǎn)發(fā)節(jié)點。每個節(jié)點(假定是節(jié)點sj)依據(jù)自己的分值設(shè)定定時器,且定時器的時長與分值成反比。一旦定時完畢,且沒有監(jiān)聽到其他節(jié)點轉(zhuǎn)發(fā)Datai,自己就立即轉(zhuǎn)發(fā)Datai。重復(fù)上述過程,直到數(shù)據(jù)包傳輸至信宿。整個流程如圖4所示。
圖4 數(shù)據(jù)轉(zhuǎn)發(fā)流程
利用NS2++軟件建立仿真平臺。傳感節(jié)點分布于80 m×60 m的矩形區(qū)域,信宿位于區(qū)域中心,且位置為(40,30)。節(jié)點傳輸范圍為20 m,所有節(jié)點的初始能量為0.5 J。具體的仿真參數(shù)如表1所示。
表1 仿真參數(shù)
為了更好地分析ECB-G路由性能,選擇傳統(tǒng)的Gossip和文獻[6]提出的基于公平高效的位置Gossip路由(FEL-G)作為參照,并分析它們的傳輸時延、帶寬利用率、網(wǎng)絡(luò)壽命性能。其中,傳輸時延是指成功接收數(shù)據(jù)的平時時延。用式(5)計算帶寬利用率[7]:
λb=(Nme-Nre)/Nme
(5)
其中Nme表示所接收的數(shù)據(jù)包數(shù)。而Nre表示重傳的數(shù)據(jù)包數(shù)。
選擇每個節(jié)點失效的時間和最后一個節(jié)點失效時間評估網(wǎng)絡(luò)壽命[8],且單位為輪(Round)。本文只考慮節(jié)點因能量消耗殆盡所導(dǎo)致的失效[9-10],不考慮其他原因。
首先分析數(shù)據(jù)傳輸時延隨節(jié)點數(shù)的變化情況。從圖5可知,數(shù)據(jù)傳輸時延隨節(jié)點數(shù)增加而上升。原因在于:數(shù)據(jù)傳輸時延隨網(wǎng)絡(luò)尺寸影響。節(jié)點數(shù)越多,導(dǎo)致的時延越長。此外,傳統(tǒng)的Gossip路由的傳輸時延最低。這是主要是因為:傳統(tǒng)的Gossip路由在選擇下一跳節(jié)點時,并沒有進行額外的計算,只是隨機地選擇下一跳轉(zhuǎn)發(fā)節(jié)點。而FEL-G路由和ECB-G路由是通過計算,選擇下一跳轉(zhuǎn)發(fā)節(jié)點,這增加了計算時延。
圖5 平均傳輸時延隨節(jié)點數(shù)的變化情況
3.2.2帶寬利用率
圖6顯示了三個路由協(xié)議的帶寬利用率。從圖6可知,相比于傳統(tǒng)的Gossip路由和FEL-G路由,提出的ECB-G路由的帶寬利用率得到提高。原因在于:ECB-G路由通過能耗均衡因子和距離遠近因子選擇下一跳轉(zhuǎn)發(fā)節(jié)點,提高了路由的穩(wěn)定性,減少了重傳數(shù)據(jù)包次數(shù)。
圖6 帶寬利用率
3.2.3網(wǎng)絡(luò)壽命
圖7、8分別表示三個路由協(xié)議的第一個節(jié)點失效時間和最后一個節(jié)點失效時間。從圖6可知,傳統(tǒng)Gossip路由最早發(fā)生第一個節(jié)點失效,在整個節(jié)點變化的期間,它都是最先出現(xiàn)么一個失效節(jié)點。
圖7 第一個失效節(jié)點出現(xiàn)的時間
圖8 最后一個失效節(jié)點出現(xiàn)的時間
從圖8可知,提出的ECB-G路由的最后一個失效節(jié)點出現(xiàn)的時間最晚,性能優(yōu)于傳統(tǒng)Gossip路由和FEL-G路由。這充分說明,ECB-G路由通過減少重傳次數(shù)、參與路由的節(jié)點,緩解了網(wǎng)絡(luò)能耗的速度。
針對Gossip路由的能耗問題,提出能耗均衡的Gossip路由改進路由ECB-G。ECB-G路由通過控制參與路由的節(jié)點數(shù),減少能耗。利用鄰居節(jié)點的剩余能量和地理位置,選擇下一跳轉(zhuǎn)發(fā)節(jié)點,限定了轉(zhuǎn)發(fā)數(shù)據(jù)包的節(jié)點。仿真結(jié)果表明,相比于Gossip路由,提出的ECB-G路由有效地降低了能耗,并提高了帶寬利用率。