張雅瓊,張 慧
(榆林學(xué)院信息工程學(xué)院,陜西 榆林 719000)
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)作為物聯(lián)網(wǎng)的感知層,主要是實現(xiàn)物聯(lián)網(wǎng)的底層功能即連接物到網(wǎng)絡(luò)。無線傳感器網(wǎng)絡(luò)由部署在監(jiān)測區(qū)域內(nèi)大量的微型傳感器節(jié)點組成,傳感器節(jié)點將監(jiān)測到的數(shù)據(jù)轉(zhuǎn)換成電信號并通過無線多跳的通信方式發(fā)送給匯聚節(jié)點[1]。傳感器節(jié)點監(jiān)測到的數(shù)據(jù)如何沿著其他節(jié)點傳輸,如何到達(dá)匯聚節(jié)點即是路由協(xié)議要解決的問題。無線傳感器網(wǎng)絡(luò)中節(jié)點硬件資源有限、能量有限且無法更換電池使得在設(shè)計路由協(xié)議時必須遵循能量優(yōu)先的原則,盡量節(jié)能以延長節(jié)點的使用壽命[2]。
LEACH協(xié)議是WSN中經(jīng)典的分簇層次型路由協(xié)議,與傳統(tǒng)協(xié)議相比LEACH能較好地降低能量消耗,延長網(wǎng)絡(luò)的生存時間。LEACH協(xié)議中節(jié)點自組織成簇,簇中某個節(jié)點擔(dān)任簇頭[3]。不同簇之間使用CDMA機(jī)制互不干擾,所有簇內(nèi)成員使用TDMA機(jī)制在分配給自己的時隙內(nèi)將數(shù)據(jù)發(fā)送到簇頭,簇頭接收所有簇成員發(fā)送的數(shù)據(jù),然后對各成員的數(shù)據(jù)進(jìn)行融合,之后各個簇頭根據(jù)CSMA機(jī)制將數(shù)據(jù)發(fā)送給遠(yuǎn)方的匯聚節(jié)點。所以簇頭工作量大,比簇成員能耗大[4]。
LEACH協(xié)議是分輪(round)運行的,每輪分為簇的建立和數(shù)據(jù)傳輸2個階段。簇的建立階段主要是選舉簇頭并形成各個簇,數(shù)據(jù)傳輸階段是進(jìn)行數(shù)據(jù)傳輸,包括簇成員發(fā)送數(shù)據(jù)到簇頭以及簇頭發(fā)送數(shù)據(jù)到匯聚節(jié)點。為了使能量消耗小,通常建立階段較短,傳輸數(shù)據(jù)階段持續(xù)時間要比建立階段的時間長。
成簇過程為:傳感器網(wǎng)絡(luò)中所有節(jié)點產(chǎn)生一個隨機(jī)數(shù),隨機(jī)數(shù)的范圍在0~1之間,如果這個數(shù)小于節(jié)點預(yù)設(shè)的閾值T(n),則該節(jié)點成為簇頭節(jié)點,同時該節(jié)點廣播自己成為簇頭的信息。其他節(jié)點根據(jù)收到的簇頭信息能量大小選擇能量較高(距離較近)的簇頭加入[5]。閾值T(n)的表達(dá)式如式(1)所示。
其中,p是期望的簇頭占所有節(jié)點的百分比,即每個節(jié)點成為簇頭的概率,取值范圍在4% ~5%之間,不同應(yīng)用場合略有不同;r是當(dāng)前運行的輪數(shù);G是一個集合,包括在最近1/p輪中還未當(dāng)選過簇頭的節(jié)點。
數(shù)據(jù)傳輸階段,簇成員將數(shù)據(jù)發(fā)送給簇頭,簇頭進(jìn)行數(shù)據(jù)融合然后以單跳的方式發(fā)送給匯聚節(jié)點[6]。
LEACH協(xié)議存在很多優(yōu)點的同時,也存在一些缺點,如LEACH協(xié)議選擇簇頭時并不考慮節(jié)點的剩余能量,這樣可能導(dǎo)致能量較少的節(jié)點擔(dān)任簇頭,使得能量快速耗盡,縮短網(wǎng)絡(luò)生存期。而且簇頭產(chǎn)生時并未考慮簇頭的位置,因此簇頭的分布不一定是合理的,可能導(dǎo)致有的區(qū)域簇頭偏多有的區(qū)域簇頭過少,簇內(nèi)成員的傳輸距離延長導(dǎo)致能耗變大。
網(wǎng)絡(luò)模擬軟件NS2(Network Simulation)中已定義好了無線通信系統(tǒng)中的能耗模型,其模型如圖1所示。模型包含了發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的消耗。
圖1 無線通信能耗模型
發(fā)送數(shù)據(jù)的能耗包括射頻模塊和信號放大器的能耗,接收節(jié)點的能耗僅包括接收電路的能耗。ξfriss-amp是信號放大器的倍數(shù)。信號放大器的能耗根據(jù)收發(fā)雙方之間的距離可以采用自由空間衰落模型和多路徑衰落模型。自由空間衰落模型中,路徑損耗指數(shù)為2,即D2能量損耗;多路徑衰落模型中,路徑損耗指數(shù)為4,即 D4能量損耗[8]。ERF表示發(fā)送或接收1比特數(shù)據(jù)時發(fā)送電路或接收電路的能耗。
假設(shè)信道是對稱的,即節(jié)點1向節(jié)點2發(fā)送數(shù)據(jù)的能耗與節(jié)點2向節(jié)點1發(fā)送數(shù)據(jù)的能耗完全相同。根據(jù)圖1所示的模型,發(fā)送M比特數(shù)據(jù)所消耗的能量如式(2)所示[8]。
ξfriss-amp和 ξtwo-ray-amp與所使用的傳輸放大模型有關(guān),Dc是一個距離常量,可用式(3)表示。
其中:Ls表示系統(tǒng)能耗,與傳輸數(shù)據(jù)量無關(guān);hs是接收節(jié)點天線的長度;ht是發(fā)射節(jié)點天線的長度;λ為載波的波長。
傳輸距離為D,接收M比特數(shù)據(jù)接收方消耗的能量如式(4)所示[9]。
針對LEACH協(xié)議采用完全隨機(jī)的算法產(chǎn)生簇頭這一缺陷來做算法的改進(jìn)。
首先,為均衡網(wǎng)絡(luò)中各個節(jié)點的能量消耗,可以在選擇簇頭時,加入節(jié)點剩余能量的因素,即使得協(xié)議運行時盡量選擇剩余能量較高的節(jié)點為簇頭,避免一些節(jié)點因為過多擔(dān)任簇頭而導(dǎo)致早亡,從而縮短網(wǎng)絡(luò)生命周期。用E’表示節(jié)點的剩余能量,E0表示節(jié)點的初始能量,簇頭選擇公式中增加E’和E0,以便達(dá)到增大當(dāng)前剩余能量較高的節(jié)點被選為簇頭的概率,來均衡能耗,提高網(wǎng)絡(luò)的健壯性。
另外,簇頭選擇公式中加入距離因素。因為簇頭向匯聚節(jié)點傳輸?shù)臄?shù)據(jù)量較簇成員大,而傳輸距離越大能耗越高,故簇頭離匯聚節(jié)點較近可以節(jié)省能耗。用Dmax表示無線傳感器網(wǎng)絡(luò)中最遠(yuǎn)的節(jié)點距匯聚節(jié)點的距離,用Dmin表示最近節(jié)點距匯聚節(jié)點的距離,D表示本節(jié)點距匯聚節(jié)點的距離。增加距匯聚節(jié)點近的節(jié)點成為簇頭的概率。
改進(jìn)后的LEACH-i協(xié)議的簇頭選擇公式如式(5)所示。
NS2是由美國加利福尼亞大學(xué)Berkeley分校等4家教育和研究機(jī)構(gòu)共同開發(fā)的網(wǎng)絡(luò)仿真平臺。它是一種離散事件模擬器,有一個Scheduler類,負(fù)責(zé)記錄當(dāng)前的時間、調(diào)度隊列中的事件并提供函數(shù)產(chǎn)生新的事件,其提供了多種協(xié)議的模擬,并提供了大量的腳本。NS還有豐富的構(gòu)件庫,強大的數(shù)據(jù)采集功能。本文以NS2作為仿真平臺。目前LEACH協(xié)議仿真代碼mit.tar.gz可以從網(wǎng)上獲得,腳本文件中對網(wǎng)絡(luò)的一些設(shè)置參數(shù)如表1所示,假設(shè)所有的節(jié)點都靜止不動。
表1 仿真參數(shù)
仿真對LEACH協(xié)議源代碼進(jìn)行改進(jìn)以實現(xiàn)LEACH-i協(xié)議,設(shè)置相同的腳本進(jìn)行仿真,記錄仿真結(jié)果并使用Origin繪圖進(jìn)行對比分析。
仿真結(jié)果如圖2所示,可以看到在5s的時候LEACH協(xié)議的網(wǎng)絡(luò)開始出現(xiàn)節(jié)點死亡,而使用LEACH-i協(xié)議的網(wǎng)絡(luò)在10s后才開始出現(xiàn)節(jié)點死亡的情況,此時LEACH協(xié)議網(wǎng)絡(luò)中節(jié)點死亡數(shù)量已達(dá)20%。在仿真到20s時,使用LEACH協(xié)議的網(wǎng)絡(luò)中節(jié)點已幾乎全部死亡,而改進(jìn)協(xié)議后網(wǎng)絡(luò)可以存活到25s,生存期延長1/4。
因此LEACH-i協(xié)議對比LEACH協(xié)議可以明顯降低節(jié)點能耗,顯著延長網(wǎng)絡(luò)生存期。
圖2 仿真結(jié)果比較
本文首先分析了LEACH協(xié)議,針對其缺點,在簇頭選擇公式加入節(jié)點能量和距離的因素,提出了改進(jìn)的路由協(xié)議 LEACH-i。NS2仿真結(jié)果表明,LEACH-i協(xié)議比LEACH協(xié)議節(jié)約網(wǎng)絡(luò)能量,延長了網(wǎng)絡(luò)生存期。但LEACH-i協(xié)議仍有缺點,如沒有考慮數(shù)據(jù)傳輸階段的單跳路由,這對于網(wǎng)絡(luò)生命周期的進(jìn)一步延長有很大影響,可做進(jìn)一步的改進(jìn)。
:
[1]鐘永鋒,劉永俊.ZigBee無線傳感器網(wǎng)絡(luò)[M].北京:北京郵電大學(xué)出版社,2011:84-125.
[2]彭愛平,郭曉松,蔡偉,等.基于估計機(jī)制的分簇傳感器網(wǎng)絡(luò)數(shù)據(jù)融合算法[J].傳感技術(shù)學(xué)報,2011,24(1):128-133.
[3]盧建剛,樂紅兵.基于區(qū)域劃分的WSN非均勻分簇算法[J].計算機(jī)工程與設(shè)計,2011,32(8):2639-2642.
[4]蔣暢江,石為人,唐賢倫,等.能量均衡的無線傳感器網(wǎng)絡(luò)非均勻分簇路由協(xié)議[J].軟件學(xué)報,2012,23(5):1222-1232.
[5]李成岳,申鉉京,陳海鵬,等.無線傳感器網(wǎng)絡(luò)中LEACH路由算法的研究與改進(jìn)[J].傳感技術(shù)學(xué)報,2010,23(8):1163-1167.
[6]張榮博,曹建福.利用蟻群優(yōu)化的非均勻分簇?zé)o線傳感器網(wǎng)絡(luò)路由算法[J].西安交通大學(xué)學(xué)報,2010,44(6):33-38.
[7]唐偉,郭偉.無線傳感器網(wǎng)絡(luò)中的最大生命期基因路由算法[J].軟件學(xué)報,2010,21(7):1646-1656.
[8]楊偉,劉潤杰,申金媛.一種基于LEACH的高效節(jié)能協(xié)議[J].傳感技術(shù)學(xué)報,2010,23(8):1153-1157.
[9]張品,姜亞光,陳磊.基于加權(quán)優(yōu)化選擇兩級簇頭的WSN路由協(xié)議[J].傳感技術(shù)學(xué)報,2011,24(3):447-451.
[10]唐毅,梁曉曦,武俊.無線傳感器網(wǎng)絡(luò)最優(yōu)簇首節(jié)點數(shù)量研究[J].通信技術(shù),2007,40(6):30-32.
[11]楊明,許瑞琛,蔣挺.一種基于歷史信息的簇頭選取機(jī)制[J].通信技術(shù),2011,44(11):97-99.
[12]高鐵杠,牛偉偉.一個基于節(jié)點覆蓋的簇頭選舉算法[J].計算機(jī)工程與科學(xué),2011,33(5):1-8.
[13]郭瑞星,王慶生.ZigBee路由算法的研究與改進(jìn)[J].電腦開發(fā)與應(yīng)用,2011,24(5):32-34.
[14]王勝平,胥布工.ZigBee路由發(fā)現(xiàn)廣播策略[J].計算機(jī)工程,2010,36(11):105-107.