摘 要: DBR協(xié)議是水下無線傳感器網(wǎng)絡(luò)中的一個(gè)基于深度信息的路由協(xié)議,該協(xié)議算法采用節(jié)點(diǎn)的深度信息作為轉(zhuǎn)發(fā)數(shù)據(jù)的依據(jù),并通過簡單廣播的形式來轉(zhuǎn)發(fā)數(shù)據(jù)。提出了改進(jìn)算法,引入了局部更新概念,從而增強(qiáng)了DBR協(xié)議的節(jié)能效果,并且在一定程度上防止路由空洞。仿真結(jié)果表明,改進(jìn)后的DBR協(xié)議能有效地減少網(wǎng)絡(luò)耗能,并且沒有出現(xiàn)路由空洞。
關(guān)鍵詞: 水聲傳感器網(wǎng)絡(luò);DBR;局部更新
無線傳感器網(wǎng)絡(luò)是由密集型、低成本、隨機(jī)分布的集成有傳感器、數(shù)據(jù)處理單元和短程無線通信模塊的微小節(jié)點(diǎn)通過自組織方式構(gòu)成的網(wǎng)絡(luò)[1]。借助節(jié)點(diǎn)中內(nèi)置、形式多樣的傳感器可以實(shí)現(xiàn)對生活環(huán)境全方位地監(jiān)測與控制,這也是下一代互聯(lián)網(wǎng)遠(yuǎn)景規(guī)劃中較為重要的組成部分。無線傳感器網(wǎng)絡(luò)的自組織性和密集節(jié)點(diǎn)提供的容錯(cuò)能力,使其不會因?yàn)槟承┕?jié)點(diǎn)的異常而導(dǎo)致整個(gè)系統(tǒng)的崩潰,非常適合在特殊時(shí)刻、特殊環(huán)境中快速構(gòu)建信息基礎(chǔ)設(shè)施,因此有廣闊的應(yīng)用前景[2-3]。
水聲傳感器網(wǎng)絡(luò)是無線傳感器網(wǎng)絡(luò)在水下一個(gè)重要應(yīng)用[4]。水聲傳感器網(wǎng)絡(luò)是指將耗能低、具有一定通信距離的水下傳感器節(jié)點(diǎn)部署到指定海域中,利用節(jié)點(diǎn)的自組織能力自動建立起網(wǎng)絡(luò)[5]。水下傳感器網(wǎng)絡(luò)在海洋管理、資源保護(hù)、災(zāi)害監(jiān)測、海洋工程、海上生產(chǎn)作業(yè)和海洋軍事活動中起到促進(jìn)作用,因此近年來在世界上得到了廣泛關(guān)注。
由于水聲傳感器網(wǎng)絡(luò)采用水聲信道通信,它與傳統(tǒng)的陸上傳感器網(wǎng)絡(luò)相比存在路徑失效、噪聲、多途干擾、傳輸延時(shí)和多普勒效應(yīng)等一系列問題。此外,由于在水聲環(huán)境中節(jié)點(diǎn)的位置會不停地移動以及在水聲環(huán)境中節(jié)點(diǎn)不便于更換,因此節(jié)點(diǎn)部署、定位和低功耗設(shè)計(jì)等問題是水聲傳感器網(wǎng)絡(luò)研究的熱點(diǎn)問題。現(xiàn)存的陸上傳感器網(wǎng)絡(luò)路由協(xié)議不能直接應(yīng)用到水下傳感器網(wǎng)絡(luò)中,需要找到針對水聲通信特點(diǎn)的有效而又可行的路由協(xié)議。
DBR(Depth Based Routing)[6]協(xié)議是水下傳感器網(wǎng)絡(luò)中的一個(gè)基于深度信息的路由協(xié)議,網(wǎng)絡(luò)中所有節(jié)點(diǎn)的決定都取決于節(jié)點(diǎn)的深度信息。相對于其他基于地理位置信息的水下傳感器網(wǎng)絡(luò)路由協(xié)議,DBR不需要知道節(jié)點(diǎn)三維位置信息,只需要知道節(jié)點(diǎn)的局部深度信息。同時(shí),DBR采用的是多Sink節(jié)點(diǎn)網(wǎng)絡(luò)結(jié)構(gòu),繼承了此網(wǎng)絡(luò)節(jié)點(diǎn)的特點(diǎn)并且未帶來額外的網(wǎng)絡(luò)成本。但是它采用洪泛傳播機(jī)制,多次計(jì)算深度信息會消耗網(wǎng)絡(luò)能耗;其次,DBR中如果節(jié)點(diǎn)之間的密度太小,可能出現(xiàn)路由空洞等問題。
本文主要在DBR協(xié)議的基礎(chǔ)上展開研究,提出一種基于局部更新策略的協(xié)議改進(jìn)機(jī)制,并通過實(shí)驗(yàn)證明了采用局部更新策略可以大大降低整個(gè)傳感器網(wǎng)絡(luò)的能量消耗。
1 DBR簡介
DBR采用的是多Sink節(jié)點(diǎn)水下無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)[7],它由水面上的無線傳感器網(wǎng)絡(luò)和水下無線傳感器網(wǎng)絡(luò)兩部分組成,二者結(jié)合為一個(gè)整體網(wǎng)絡(luò)。
DBR采用貪婪轉(zhuǎn)發(fā)策略將數(shù)據(jù)包發(fā)送給水面的Sink節(jié)點(diǎn)[8]。DBR每次轉(zhuǎn)發(fā)數(shù)據(jù)時(shí)試圖選擇離目的節(jié)點(diǎn)最近的節(jié)點(diǎn),即深度最小的節(jié)點(diǎn)為下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn);同時(shí)防止其他鄰節(jié)點(diǎn)轉(zhuǎn)發(fā)同樣的數(shù)據(jù)包來減小能耗。在整個(gè)過程中,數(shù)據(jù)包越接近目的節(jié)點(diǎn),轉(zhuǎn)發(fā)節(jié)點(diǎn)的深度越小。在空洞不存在的情況下,如果減小每一跳轉(zhuǎn)發(fā)節(jié)點(diǎn)的深度,數(shù)據(jù)包可以到達(dá)水面Sink節(jié)點(diǎn)。當(dāng)某個(gè)節(jié)點(diǎn)有數(shù)據(jù)要發(fā)送時(shí),簡單地通過廣播洪泛的形式將數(shù)據(jù)發(fā)送出去。其他節(jié)點(diǎn)收到數(shù)據(jù)之后,借助于深度傳感器來計(jì)算自身的深度信息并且與發(fā)送節(jié)點(diǎn)的深度作比較。如果其深度小于發(fā)送節(jié)點(diǎn)的深度,則具有轉(zhuǎn)發(fā)數(shù)據(jù)的資格,然后它將對收到的數(shù)據(jù)進(jìn)行相應(yīng)的處理,并同樣通過廣播形式將數(shù)據(jù)轉(zhuǎn)發(fā)出去,否則將簡單丟棄數(shù)據(jù)包。
DBR在能量控制方面主要存在以下缺陷:(1)在DBR中,所有的節(jié)點(diǎn)都要時(shí)刻保持工作狀態(tài),隨時(shí)準(zhǔn)備好接收數(shù)據(jù)包并且做出相應(yīng)的處理工作,在節(jié)點(diǎn)密度較大的情況下,這使得能量白白消耗,縮短了網(wǎng)絡(luò)的生存周期;(2)數(shù)據(jù)包轉(zhuǎn)發(fā)采用的是洪泛機(jī)制,如果每個(gè)節(jié)點(diǎn)都參與數(shù)據(jù)的轉(zhuǎn)發(fā),將增加網(wǎng)絡(luò)的復(fù)雜度,產(chǎn)生大量的冗余數(shù)據(jù),導(dǎo)致過多的節(jié)點(diǎn)能量消耗,并且降低了網(wǎng)絡(luò)的寬帶利用率。同時(shí),所有接到數(shù)據(jù)包的節(jié)點(diǎn)每次都計(jì)算自己的深度信息,同樣耗能。
2 引入局部更新后的改進(jìn)算法
在傳統(tǒng)的DBR協(xié)議傳感器網(wǎng)絡(luò)中,滿足深度小于當(dāng)前節(jié)點(diǎn)條件的鄰居節(jié)點(diǎn)都會參與到數(shù)據(jù)包的轉(zhuǎn)發(fā)工作中,這不可避免地造成多個(gè)節(jié)點(diǎn)同時(shí)轉(zhuǎn)發(fā)相同數(shù)據(jù)包,造成數(shù)據(jù)冗余和能耗。本文針對DBR協(xié)議提出一種局部更新策略來減少DBR的能量消耗。
2.1 網(wǎng)絡(luò)體系結(jié)構(gòu)
基于局部更新策略的DBR改進(jìn)機(jī)制采用多Sink節(jié)點(diǎn)體系結(jié)構(gòu),如圖1所示。水面上的為Sink節(jié)點(diǎn),水下的為一般的傳感器節(jié)點(diǎn),以三維立體結(jié)構(gòu)部署在需要監(jiān)測的區(qū)域內(nèi)。Sink節(jié)點(diǎn)彼此之間采用RF調(diào)制解調(diào)器通信,包括將數(shù)據(jù)傳到基站;同時(shí),應(yīng)用水聲調(diào)制解調(diào)器將接收到的水下節(jié)點(diǎn)的信息傳送至基站。每個(gè)水下節(jié)點(diǎn)都配備深度傳感器,可以隨時(shí)確定自己的深度信息。水下節(jié)點(diǎn)主要負(fù)責(zé)數(shù)據(jù)的采集,同時(shí)通過多次轉(zhuǎn)發(fā)最終將數(shù)據(jù)傳送至海面上任意一個(gè)Sink節(jié)點(diǎn)即可。通過RF調(diào)制解調(diào)器,Sink節(jié)點(diǎn)可以高速、準(zhǔn)確地將數(shù)據(jù)包傳送給靠近基站的Sink節(jié)點(diǎn),最終成功將數(shù)據(jù)傳至基站。本文中設(shè)定將數(shù)據(jù)傳至任意一個(gè)Sink節(jié)點(diǎn)即認(rèn)為數(shù)據(jù)成功到達(dá)目的節(jié)點(diǎn)。
2.2 改進(jìn)算法工作機(jī)制
在網(wǎng)絡(luò)部署初期,初始節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)時(shí),通過簡單的洪泛廣播來轉(zhuǎn)發(fā),所有節(jié)點(diǎn)深度比它小的節(jié)點(diǎn)可以進(jìn)行轉(zhuǎn)發(fā),并且通知前一節(jié)點(diǎn)自己進(jìn)行了轉(zhuǎn)發(fā);上一級節(jié)點(diǎn)將返回的信息存儲在一個(gè)消息隊(duì)列中,每隔一段時(shí)間t處理一次,具體為隨機(jī)選取隊(duì)列中的部分節(jié)點(diǎn)并發(fā)送關(guān)閉消息來使其關(guān)閉休眠,其余節(jié)點(diǎn)繼續(xù)參與整個(gè)網(wǎng)絡(luò)的轉(zhuǎn)發(fā)工作。這樣,在經(jīng)過幾輪的轉(zhuǎn)發(fā)過程之后,網(wǎng)絡(luò)中會有相當(dāng)一部分節(jié)點(diǎn)處在睡眠狀態(tài),整個(gè)網(wǎng)絡(luò)的能量消耗減少。當(dāng)網(wǎng)絡(luò)中的某一節(jié)點(diǎn)能量快要耗盡時(shí),它將發(fā)送警告信息通知它的上一跳節(jié)點(diǎn),上一跳節(jié)點(diǎn)將會洪泛一個(gè)消息喚醒它睡眠的鄰居節(jié)點(diǎn)再次參與到網(wǎng)絡(luò)數(shù)據(jù)傳送工作中來。節(jié)點(diǎn)處理數(shù)據(jù)具體流程如圖2所示。
對于水下網(wǎng)絡(luò)中的節(jié)點(diǎn)而言,可以大致分為3類,如圖3所示。圖中實(shí)線表示傳送數(shù)據(jù)包轉(zhuǎn)發(fā)路徑,虛線為返回上級信息包路徑。源節(jié)點(diǎn)向外洪泛數(shù)據(jù)包后,只有深度比該節(jié)點(diǎn)小的鄰居節(jié)點(diǎn)會將數(shù)據(jù)轉(zhuǎn)發(fā)出去并向上級發(fā)送確認(rèn)信息;而源節(jié)點(diǎn)處理消息隊(duì)列后隨機(jī)產(chǎn)生的睡眠節(jié)點(diǎn)將不再參與此次數(shù)據(jù)包的轉(zhuǎn)發(fā)工作。
由于水下無線傳感器網(wǎng)絡(luò)處在水聲環(huán)境中,因此每個(gè)節(jié)點(diǎn)的位置不是固定不變的。因?yàn)楸疚牡乃惴〞P(guān)閉部分節(jié)點(diǎn)來達(dá)到節(jié)能的目的,所以不可避免地會遇到路由空洞的問題。在此提出一個(gè)解決方法:由于存在多個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù),當(dāng)某一節(jié)點(diǎn)數(shù)據(jù)無法再轉(zhuǎn)發(fā)出去時(shí)不能說明整個(gè)網(wǎng)絡(luò)環(huán)境一定存在路由空洞。解決思路為:將數(shù)據(jù)包回退至第一個(gè)轉(zhuǎn)發(fā)超過2個(gè)節(jié)點(diǎn)的節(jié)點(diǎn),并保留一段時(shí)間t,如在時(shí)間t內(nèi)沒有接收到另外幾路分支的回退數(shù)據(jù),則說明其中有一條分支是可以走通,將空洞分支中的所有節(jié)點(diǎn)關(guān)閉并將回退數(shù)據(jù)舍棄;如果同樣收到其余分支的回退數(shù)據(jù),說明此節(jié)點(diǎn)不通,將所有下游節(jié)點(diǎn)全部關(guān)閉并將數(shù)據(jù)回退到上一節(jié)點(diǎn)再繼續(xù)檢測,依次往復(fù)。如果數(shù)據(jù)回退到最下層節(jié)點(diǎn),則說明整個(gè)水下傳感器網(wǎng)絡(luò)存在路由空洞,這時(shí)可以簡單地洪泛一條消息來將所有節(jié)點(diǎn)喚醒,并開始重新生成優(yōu)化網(wǎng)絡(luò)。
3 仿真結(jié)果
本文采用MATLAB來仿真分析傳統(tǒng)DBR路由協(xié)議和基于局部更新的改進(jìn)后協(xié)議的性能,通過在相同環(huán)境下比較二者性能來驗(yàn)證改進(jìn)算法的有效性,重點(diǎn)觀察整個(gè)網(wǎng)絡(luò)在正常工作一段時(shí)間后,整個(gè)網(wǎng)絡(luò)中的傳感器的平均剩余能量。
節(jié)點(diǎn)隨機(jī)部署在500 m×500 m×500 m的三維區(qū)域中,水面Sink節(jié)點(diǎn)數(shù)量為5,假設(shè)節(jié)點(diǎn)在所有場景中都是靜止的,MAC層采用802.11算法,信道帶寬設(shè)為1 Mb/s,數(shù)據(jù)分組的大小為4 KB,節(jié)點(diǎn)的初始能量為1 000 J,傳送和接收數(shù)據(jù)分組消耗1 J。
能耗比較示意圖如圖4所示。可以看出,隨著節(jié)點(diǎn)數(shù)目的增多,由于采用了局部更新算法,非必要傳輸節(jié)點(diǎn)會關(guān)閉節(jié)點(diǎn)以減小能耗,改進(jìn)DBR算法平均耗能明顯小于傳統(tǒng)DBR。
傳輸率比較示意圖如圖5所示。隨著網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量的增加,出現(xiàn)路由空洞機(jī)率減小,改進(jìn)前DBR與改進(jìn)后協(xié)議的傳輸正確率均有提高;而在相同情況下,改進(jìn)后協(xié)議比傳統(tǒng)DBR有明顯優(yōu)勢。
本文研究了一個(gè)基于深度信息的路由協(xié)議DBR,在此基礎(chǔ)上提出了一個(gè)新的局部更新策略,并將兩者結(jié)合運(yùn)用于水聲傳感器網(wǎng)絡(luò)。實(shí)驗(yàn)表明,改進(jìn)后的算法大大降低了整個(gè)網(wǎng)絡(luò)的能量消耗,并且提高了傳輸率,達(dá)到了比較良好的性能。
參考文獻(xiàn)
[1] 金軍,縱芳,梁妙元,等.水下傳感器網(wǎng)絡(luò)路由協(xié)議研究[J].電信科學(xué),2012(2):123-127.
[2] 孫亭,楊永田,李立宏.無線傳感器網(wǎng)絡(luò)技術(shù)發(fā)展現(xiàn)狀[J].電子技術(shù)應(yīng)用,2006,32(6):1-5,11.
[3] 梁玉芬,高德云,牛延超,等.無線傳感器網(wǎng)絡(luò)應(yīng)用系統(tǒng)綜述[J].電子技術(shù)應(yīng)用,2007,33(9):3-5,9.
[4] 竇麗娜.水聲傳感器網(wǎng)絡(luò)研究[D].哈爾濱:哈爾濱工程大學(xué),2008.
[5] AKYILDIZ I F,POMPILI D,MELODIA T.State of the art inprotocol research for underwater acoustic sensor networks[C].Proceedings of the First Workshop on Under Water Network,2006.
[6] Yan Hai,Shi Zhijie,Cui Junhong.DBR:depth-based rout-ing for underwater sensor networks[C].Network 2008,7th International IFIP-7C6,2008:16-1221.
[7] SEAGH W K G,TAN H X.Multipath virtual sink architec-ture for underwater sensor networks[C].Proceedings of Oceans 2006-Asia Pacific,IEEE Press,2006:1-6.
[8] 黃芬,陳名松.水下無線傳感器網(wǎng)絡(luò)DBR路由協(xié)議研究[J].電視技術(shù),2012,36(13):74-77.