無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:對(duì)無(wú)線傳感器網(wǎng)絡(luò)經(jīng)典的LEACH路由算法作了分析,提出了一種改進(jìn)型算法。通過(guò)仿真,改進(jìn)后的LEACH算法提高了傳感器網(wǎng)絡(luò)的能效,延長(zhǎng)了系統(tǒng)的工作壽命。
關(guān)鍵詞:無(wú)線傳感器;路由協(xié)議;LEACH
0 引言
傳感器網(wǎng)絡(luò)通常由覆蓋一個(gè)地區(qū)的若干傳感器節(jié)點(diǎn)組成。每個(gè)傳感器節(jié)點(diǎn)獨(dú)立進(jìn)行數(shù)據(jù)收集及處理,并將得到的數(shù)據(jù)通過(guò)無(wú)線連接傳送到網(wǎng)關(guān)節(jié)點(diǎn),再由網(wǎng)關(guān)節(jié)點(diǎn)向互聯(lián)網(wǎng)發(fā)送。對(duì)于傳感器網(wǎng)絡(luò),路由協(xié)議設(shè)計(jì)是很具挑戰(zhàn)性的。首先,節(jié)點(diǎn)沒(méi)有全球唯一的標(biāo)識(shí)符,傳統(tǒng)的互聯(lián)網(wǎng)路由協(xié)議無(wú)法應(yīng)用在傳感器網(wǎng)絡(luò)中;第二,傳感器網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都是源節(jié)點(diǎn),向唯一的目的節(jié)點(diǎn)Sink發(fā)送數(shù)據(jù);第三,由于在被測(cè)對(duì)象內(nèi)部或附近部署了大量的節(jié)點(diǎn),它們采集到的數(shù)據(jù)是相同或相近的。這就需要路由協(xié)議具有數(shù)據(jù)融合力,以節(jié)約電能,提高帶寬利用率;第四,節(jié)點(diǎn)具備處理能力。節(jié)點(diǎn)的電能存儲(chǔ)能力是很有限的,需要強(qiáng)大的資源管理和任務(wù)調(diào)度能力。因此,傳感器網(wǎng)絡(luò)的路由協(xié)議是與傳統(tǒng)網(wǎng)絡(luò)截然不同的。
1 LEACH協(xié)議
簇的建立和簇頭特定任務(wù)的分配對(duì)于整個(gè)系統(tǒng)的可擴(kuò)展性、壽命和能量效率起著非常大的作用。聚類路由是降低簇中能量消耗的一種有效方式。LEACH(Low-Energy Adaptive Cluster-based Hierarchy)算法是最早的比較成熟的聚類路由算法。
LEACH協(xié)議的隨機(jī)簇頭選擇分布不均勻,而且LEACH協(xié)議是根據(jù)節(jié)點(diǎn)曾經(jīng)擔(dān)當(dāng)簇頭的次數(shù)來(lái)決定是否擔(dān)任簇頭而沒(méi)有考慮節(jié)點(diǎn)的剩余能量;同時(shí),LEACH網(wǎng)絡(luò)協(xié)議在節(jié)點(diǎn)數(shù)量大的無(wú)線傳感器網(wǎng)絡(luò)中使用時(shí)會(huì)采集大量的冗余數(shù)據(jù),這樣會(huì)使網(wǎng)絡(luò)由于處理大量的冗余數(shù)據(jù)而使網(wǎng)絡(luò)能耗大大增加,縮短了網(wǎng)絡(luò)的生存周期。
LEACH-C(LEACH-centralized)是集中式的簇頭產(chǎn)生算法,由基站負(fù)責(zé)挑選簇頭。因?yàn)闊o(wú)線傳感器網(wǎng)絡(luò)中使用節(jié)點(diǎn)數(shù)量大,節(jié)點(diǎn)覆蓋密度也大,這樣無(wú)法避免地使單個(gè)節(jié)點(diǎn)采集的數(shù)據(jù)與整個(gè)無(wú)線傳感器網(wǎng)絡(luò)采集的數(shù)據(jù)有很大的關(guān)聯(lián)性。而用戶需要的,并不是所有的節(jié)點(diǎn)采集的數(shù)據(jù)(包含冗余數(shù)據(jù)),而只是對(duì)發(fā)生事件的描述——利用網(wǎng)絡(luò)數(shù)據(jù)集分析出的被觀測(cè)區(qū)域正在發(fā)生的事件狀況。
2 LEACH協(xié)議的改進(jìn)
可以對(duì)LEACH協(xié)議進(jìn)行改進(jìn),在成簇階段(setupstate)之前,插入一個(gè)以節(jié)點(diǎn)能量為判斷標(biāo)準(zhǔn)的篩選過(guò)程,將節(jié)點(diǎn)的剩余能量與網(wǎng)絡(luò)的平均能量相比較,一旦判斷出本節(jié)點(diǎn)的能量大大的低于網(wǎng)絡(luò)的平均能量,宣布節(jié)點(diǎn)在接下來(lái)的循環(huán)進(jìn)入休眠狀態(tài)直至新的成簇階段到來(lái)時(shí)才重新開(kāi)啟節(jié)點(diǎn),并再次進(jìn)行篩選。同時(shí),對(duì)成簇階段的非簇內(nèi)節(jié)點(diǎn),在接下來(lái)的循環(huán)中使其進(jìn)入休眠狀態(tài)直至新的成簇階段到來(lái)時(shí)才重新開(kāi)啟節(jié)點(diǎn)。
能耗設(shè)置方面,作了如下設(shè)置:發(fā)送節(jié)點(diǎn)的能耗包括啟動(dòng)收發(fā)機(jī)能耗和放大信號(hào)能耗;接受節(jié)點(diǎn)的能耗設(shè)置為啟動(dòng)收發(fā)機(jī)能耗。如圖1所示。
從圖1可以看出:每處理k個(gè)bit的信息,需要消耗的能量為Eelec*k,而信號(hào)放大能量需要由信號(hào)傳播的距離決定,εamp為放大系數(shù)。我們可以把距離分作兩種:信號(hào)在簇內(nèi)部傳輸時(shí),我們視其為自由空間傳輸,此時(shí)信號(hào)收發(fā)機(jī)的能耗為:為簇間傳輸距離。
在能量篩選算法中,我們指定了一個(gè)能量門(mén)限(pthresh_)判斷節(jié)點(diǎn)能量在網(wǎng)絡(luò)中的地位:
其中Etotal是網(wǎng)絡(luò)總能量;N代表網(wǎng)絡(luò)中存活節(jié)點(diǎn)的總數(shù);Ei是本節(jié)點(diǎn)的能量。
pthresh_的表達(dá)式能夠?qū)⒈竟?jié)點(diǎn)的能量在網(wǎng)絡(luò)中的地位清晰地表示出來(lái)。當(dāng)能量門(mén)限取1時(shí),意味著本節(jié)點(diǎn)能量遠(yuǎn)遠(yuǎn)低于網(wǎng)絡(luò)中節(jié)點(diǎn)的平均能量。此時(shí)我們就可以設(shè)置節(jié)電關(guān)閉其無(wú)線收發(fā)機(jī)進(jìn)入休眠狀態(tài),等到下個(gè)循環(huán)再重新開(kāi)啟,重復(fù)能量判斷過(guò)程;當(dāng)門(mén)限值取Etotal/N* Ei時(shí),就依照門(mén)限大小決定節(jié)點(diǎn)休眠的概率:我們假設(shè)根據(jù)改進(jìn)方法中能量判決門(mén)限所篩選出的節(jié)點(diǎn)就是最近周期內(nèi)剛剛擔(dān)任過(guò)CH的節(jié)點(diǎn)。進(jìn)而令其在接下來(lái)的循環(huán)中進(jìn)入休眠,直至新的簇首節(jié)點(diǎn)競(jìng)爭(zhēng)周期到來(lái)。因?yàn)閯傇谧罱芷趽?dān)任過(guò)CH的節(jié)點(diǎn),在能耗上的確大于其他節(jié)點(diǎn),其所剩的能量在網(wǎng)絡(luò)中必然處于較低的水平。所以在仿真中我們檢測(cè)節(jié)點(diǎn)的hasbeench_變量狀態(tài),使每個(gè)節(jié)點(diǎn)在發(fā)送信息之前都先判斷一下該變量狀態(tài)(hasbcench_標(biāo)志著本節(jié)點(diǎn)在上一個(gè)循環(huán)是否為CH節(jié)點(diǎn)),如果hasbeench_為1,表示上個(gè)循環(huán)中此節(jié)點(diǎn)擔(dān)任過(guò)CH,則令其在本輪循環(huán)中進(jìn)入休眠;否則,就產(chǎn)生隨機(jī)數(shù)P與pthresh_做比較,一旦P小于門(mén)限pthresh_,則關(guān)閉節(jié)點(diǎn),令其休眠;否則繼續(xù)執(zhí)行發(fā)送函數(shù)中的其他指令,向sink節(jié)點(diǎn)發(fā)送信息。同時(shí),對(duì)成簇階段的非簇內(nèi)節(jié)點(diǎn),在接下來(lái)的循環(huán)中使其進(jìn)入休眠狀態(tài)直至新的成簇階段到來(lái)時(shí)才重新開(kāi)啟節(jié)點(diǎn)。
3 仿真設(shè)計(jì)
改進(jìn)型LEACH的每輪循環(huán)分為節(jié)點(diǎn)能量篩選階段、簇形成階段和穩(wěn)定工作階段三個(gè)部分:
(1)每輪循環(huán)開(kāi)始時(shí),首先進(jìn)行節(jié)點(diǎn)能量篩選,將低能節(jié)點(diǎn)、非簇內(nèi)節(jié)點(diǎn)以及在上輪循環(huán)中擔(dān)當(dāng)簇頭的節(jié)點(diǎn)令其進(jìn)入睡眠狀態(tài),直到新的成簇階段到來(lái)時(shí)才重新開(kāi)啟節(jié)點(diǎn);
(2)簇形成階段由decideClusterHead、advertiseClusterHead、findBestCluster、informClusterHead、createSchedule幾個(gè)函數(shù)組成,在經(jīng)過(guò)該階段后,簇頭節(jié)點(diǎn)和相應(yīng)的簇內(nèi)節(jié)點(diǎn)得以選出和形成,同時(shí)簇頭節(jié)點(diǎn)將根據(jù)本地信息給簇內(nèi)節(jié)點(diǎn)分配TDMA時(shí)隙,并廣播給簇內(nèi)所有節(jié)點(diǎn);
(3)在穩(wěn)定工作階段,簇內(nèi)各個(gè)節(jié)點(diǎn)根據(jù)分配的TDMA時(shí)隙將感知的數(shù)據(jù)發(fā)送給簇頭,簇頭將數(shù)據(jù)聚合后發(fā)給基站。經(jīng)過(guò)一輪數(shù)據(jù)采集和收集工作后,為了均衡節(jié)點(diǎn)能量,將進(jìn)行新一輪的節(jié)點(diǎn)能量篩選和簇頭選擇。通常,穩(wěn)定工作階段時(shí)間都比前兩階段長(zhǎng)。
4 仿真結(jié)果
4.1 網(wǎng)絡(luò)生存周期
由圖2分析可知,LEACH協(xié)議的第一節(jié)點(diǎn)死亡時(shí)間為410 s,整個(gè)網(wǎng)絡(luò)失效時(shí)間為527 s;LEACH-C協(xié)議的第一節(jié)點(diǎn)死亡時(shí)間為380 s,整個(gè)網(wǎng)絡(luò)失效時(shí)間為571 s;改進(jìn)型協(xié)議的第一節(jié)點(diǎn)死亡時(shí)間為280 s,整個(gè)網(wǎng)絡(luò)失效時(shí)間為603 s。改進(jìn)型協(xié)議第一節(jié)點(diǎn)死亡時(shí)間最早,其主要原因是每輪簇形成之前,每個(gè)節(jié)點(diǎn)都需要計(jì)算自身能量在整個(gè)網(wǎng)絡(luò)中的狀態(tài),即進(jìn)行能量篩選,故能耗要稍大些。但是改進(jìn)型協(xié)議考慮了節(jié)點(diǎn)剩余能量在整個(gè)網(wǎng)絡(luò)中的水平,不允許低于整個(gè)網(wǎng)絡(luò)平均能量的節(jié)點(diǎn)擔(dān)任簇頭,并將一些低能的數(shù)據(jù)冗余節(jié)點(diǎn)令其進(jìn)入休眠狀態(tài),這樣節(jié)省了節(jié)點(diǎn)能耗,使網(wǎng)絡(luò)生存周期較LEACH協(xié)議延長(zhǎng)了14.4%,較LEACH-C協(xié)議延長(zhǎng)了5.9%。因此,改進(jìn)型協(xié)議的網(wǎng)絡(luò)生存能力要優(yōu)于LEACH協(xié)議。
4.2 平均能量消耗
由圖3分析可知,改進(jìn)型協(xié)議不僅將整個(gè)網(wǎng)絡(luò)各個(gè)節(jié)點(diǎn)的能耗進(jìn)行了平均,而且讓網(wǎng)絡(luò)中的節(jié)點(diǎn)輪換休息,對(duì)節(jié)點(diǎn)數(shù)量較大、節(jié)點(diǎn)覆蓋密度大的無(wú)線傳感器網(wǎng)絡(luò)來(lái)說(shuō),節(jié)約了節(jié)點(diǎn)的能耗,在一定程度上延長(zhǎng)了網(wǎng)絡(luò)的生存周期。
5 結(jié)束語(yǔ)
目前,WSN技術(shù)已經(jīng)漸趨成熟和實(shí)用,其路由協(xié)議研究也成為一個(gè)熱點(diǎn)。經(jīng)典的LEACH具有一定的局限性,通過(guò)對(duì)LEACH的改進(jìn),進(jìn)行仿真。通過(guò)仿真,LEACH的改進(jìn),比原LEACH協(xié)議具有更好的網(wǎng)絡(luò)生存周期,節(jié)約了節(jié)點(diǎn)能耗。