丁鈺瑩,郝 琨,李 成
天津城建大學(xué)計(jì)算機(jī)與信息工程學(xué)院,天津 300384
目前,水下傳感器網(wǎng)絡(luò)(underwater sensor networks,UWSN)[1-3]在海洋管理、資源保護(hù)、災(zāi)害監(jiān)測和海洋軍事活動等領(lǐng)域中頗受關(guān)注[4-5]。與陸地傳感器網(wǎng)絡(luò)一樣,路由協(xié)議是UWSN的研究熱點(diǎn)之一,其目的是在水域中建立一條從源節(jié)點(diǎn)到水面浮標(biāo)的數(shù)據(jù)傳輸路徑。由于水域環(huán)境的特殊性,UWSN采用水聲通信。然而,水聲信道具有帶寬窄、比特誤碼率高和傳輸速率低等特點(diǎn)[6-7],這使得UWSN實(shí)現(xiàn)數(shù)據(jù)傳輸將面臨更多困難與挑戰(zhàn)。同時(shí),水下節(jié)點(diǎn)的電池能量受限[8],且節(jié)點(diǎn)電池不易更換,為了避免節(jié)點(diǎn)因電池耗盡而失效,UWSN需優(yōu)化節(jié)點(diǎn)能耗來提高網(wǎng)絡(luò)傳輸性能。因此,設(shè)計(jì)一種高效可靠的路由協(xié)議對于推動UWSN的發(fā)展具有重要意義[9]。
現(xiàn)有的UWSN路由協(xié)議可分為基于單跳和多跳傳輸?shù)穆酚煞椒?。單跳傳輸主要是以自主水下航行器(autonomous underwater vehicle,AUV)輔助[10-12]的路由協(xié)議,定期充電的AUV自由航行在水下區(qū)域,當(dāng)AUV移動到距離某一節(jié)點(diǎn)較近時(shí),節(jié)點(diǎn)將監(jiān)測區(qū)域采集到的數(shù)據(jù)發(fā)送給AUV,AUV再將數(shù)據(jù)傳輸?shù)剿娓?biāo),從而降低網(wǎng)絡(luò)能耗,延長網(wǎng)絡(luò)壽命。多跳傳輸主要以地理路由和機(jī)會路由[13-14]為代表,其優(yōu)點(diǎn)是聲速比AUV的運(yùn)動速度快,總傳輸時(shí)延比AUV短。但多跳傳輸存在能量消耗不平衡的問題,距離水面浮標(biāo)較近的節(jié)點(diǎn)耗能較快,容易導(dǎo)致網(wǎng)絡(luò)出現(xiàn)路由空洞[15]。
近年來,專家學(xué)者針對UWSN路由協(xié)議進(jìn)行了大量研究?;诙嗵鴤鬏?shù)穆酚煞椒ㄖ?,簡單、易擴(kuò)展的地理路由[16-17]是UWSN最有效的路由協(xié)議之一。與主動和被動路由相比,地理路由無需建立或維護(hù)完整的路由,且無需發(fā)送路由消息。數(shù)據(jù)傳輸時(shí),節(jié)點(diǎn)將數(shù)據(jù)包轉(zhuǎn)發(fā)到距離水面浮標(biāo)最近的最優(yōu)下一跳節(jié)點(diǎn)。文獻(xiàn)[18]提出基于向量的轉(zhuǎn)發(fā)協(xié)議(vector-based forwarding protocol,VBF),VBF定義了源節(jié)點(diǎn)到目的節(jié)點(diǎn)的路由向量,節(jié)點(diǎn)根據(jù)轉(zhuǎn)發(fā)矢量的距離決策是否轉(zhuǎn)發(fā)數(shù)據(jù)包。節(jié)點(diǎn)通過預(yù)設(shè)的虛“路由管”傳輸數(shù)據(jù)包,避免數(shù)據(jù)冗余轉(zhuǎn)發(fā),提高網(wǎng)絡(luò)能源效率。在低密度場景下,虛“路由管”中可能不存在合適的下一跳節(jié)點(diǎn),導(dǎo)致網(wǎng)絡(luò)出現(xiàn)路由空洞,從而增加了網(wǎng)絡(luò)時(shí)延和能量消耗。文獻(xiàn)[19]提出基于深度的路由協(xié)議(depth-based routing protocol,DBR),節(jié)點(diǎn)利用壓力傳感器獲得自身深度,通過深度差進(jìn)行路由調(diào)度。DBR在密集網(wǎng)絡(luò)中性能良好,但在稀疏網(wǎng)絡(luò)中可能出現(xiàn)多個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)同一個(gè)數(shù)據(jù)包,或當(dāng)前節(jié)點(diǎn)找不到下一跳的現(xiàn)象,造成數(shù)據(jù)冗余發(fā)送和傳輸延遲。
機(jī)會路由中[20-22],數(shù)據(jù)包被廣播到由部分鄰居節(jié)點(diǎn)組成的候選集中,候選集內(nèi)節(jié)點(diǎn)進(jìn)行傳輸優(yōu)先級的排序,當(dāng)較高優(yōu)先級節(jié)點(diǎn)未能成功轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí),正確接收數(shù)據(jù)包的優(yōu)先級較低節(jié)點(diǎn)才轉(zhuǎn)發(fā)數(shù)據(jù)包,通過節(jié)點(diǎn)的機(jī)會轉(zhuǎn)發(fā),提高了數(shù)據(jù)傳輸性能。文獻(xiàn)[23]提出基于層級的水下傳感器網(wǎng)絡(luò)自適應(yīng)地理路由協(xié)議(level-based adaptive geo-routing protocol for underwater sensor network,LB-AGR),節(jié)點(diǎn)采用不同路由決策,根據(jù)候選節(jié)點(diǎn)的復(fù)合轉(zhuǎn)發(fā)因子確定最佳路由,將上行路由單播傳送,以減少節(jié)點(diǎn)碰撞和能量消耗。發(fā)送節(jié)點(diǎn)因未收到確認(rèn)包(acknowledgement,ACK)而多次發(fā)送最后一幀,導(dǎo)致節(jié)點(diǎn)層級無窮增加,Sink節(jié)點(diǎn)因無法廣播和接收數(shù)據(jù)包,導(dǎo)致網(wǎng)絡(luò)出現(xiàn)狀態(tài)死鎖。文獻(xiàn)[24]提出路由空洞感知協(xié)議(voidaware pressure routing protocol,VAPR),利用節(jié)點(diǎn)的深度決策路由,節(jié)點(diǎn)通過周期性信標(biāo)建立通往Sink節(jié)點(diǎn)的有向路徑,通過貪婪轉(zhuǎn)發(fā)數(shù)據(jù)包,導(dǎo)致網(wǎng)絡(luò)出現(xiàn)路由空洞。為了解決路由空洞,節(jié)點(diǎn)需要周期性地維護(hù)和更新有向路徑,使網(wǎng)絡(luò)能量快速消耗。
基于單跳的路由方法中,文獻(xiàn)[25]提出AUV輔助的路由協(xié)議(AUV-aided underwater routing protocol,AURP),AURP通過使用AUV作為中繼節(jié)點(diǎn)來實(shí)現(xiàn)高傳輸率和低能量消耗,數(shù)據(jù)按分層信息傳輸?shù)絽R聚節(jié)點(diǎn),再由AUV高速率近距離收集數(shù)據(jù),并將數(shù)據(jù)運(yùn)送到水面浮標(biāo)。該協(xié)議考慮了AUV收集路徑對網(wǎng)絡(luò)性能的影響,但對動態(tài)拓?fù)溥m應(yīng)性不強(qiáng),沒有充分發(fā)揮AUV的能動性。文獻(xiàn)[26]提出貪婪和自適應(yīng)AUV尋路協(xié)議(greedy and adaptive AUV path-finding,GAAP),AUV根據(jù)反映水下事件重要性與時(shí)效性的數(shù)據(jù)信息值(value of information,VOI)的大小從節(jié)點(diǎn)收集數(shù)據(jù),節(jié)點(diǎn)通過光通信將數(shù)據(jù)傳輸?shù)紸UV,AUV通過水聲通信進(jìn)行數(shù)據(jù)傳輸。另外,GAAP定義了一個(gè)整數(shù)線性規(guī)劃公式,該公式可以精確地對所考慮的場景進(jìn)行建模,從而得出一條最優(yōu)路徑。但光通信僅達(dá)到每秒幾兆比特,傳輸范圍非常有限。
基于以上分析,本文結(jié)合地理路由和機(jī)會路由設(shè)計(jì)高效的地理-機(jī)會混合型路由協(xié)議,提高數(shù)據(jù)傳輸性能;設(shè)計(jì)間距不等的分層網(wǎng)絡(luò),降低網(wǎng)絡(luò)時(shí)延,節(jié)省網(wǎng)絡(luò)能耗;考慮到普通節(jié)點(diǎn)的電池充電難度大和費(fèi)用高等特點(diǎn),采用能量不受限制的AUV與節(jié)點(diǎn)及水面浮標(biāo)協(xié)調(diào)運(yùn)作,從而提高網(wǎng)絡(luò)吞吐量。
因此,本文提出AUV輔助的水下地理機(jī)會路由協(xié)議(geographic and opportunistic hybrid routing protocol for UWSN based on AUV,GOHRP)。GOHRP主要包括初始階段和路由階段:(1)初始階段,為了簡化網(wǎng)絡(luò)模型,均衡網(wǎng)絡(luò)能耗,GOHRP基于普通節(jié)點(diǎn)的深度將UWSN劃分為間距不等的分層網(wǎng)絡(luò)。普通節(jié)點(diǎn)根據(jù)剩余能量、鄰居密度和數(shù)據(jù)包傳輸率選擇每層的代理節(jié)點(diǎn),且每輪通信開始時(shí)重新確定代理節(jié)點(diǎn),以避免代理節(jié)點(diǎn)在一定通信時(shí)間后過早死亡,從而降低網(wǎng)絡(luò)能耗,延長網(wǎng)絡(luò)壽命。(2)路由階段,普通節(jié)點(diǎn)通過機(jī)會路由策略,基于與鄰居節(jié)點(diǎn)的距離和剩余能量選擇下一跳節(jié)點(diǎn),下一跳節(jié)點(diǎn)將普通節(jié)點(diǎn)采集到的數(shù)據(jù)和VOI轉(zhuǎn)發(fā)給代理節(jié)點(diǎn)。AUV采用基于收益函數(shù)的動態(tài)路由策略,在避免遠(yuǎn)距離訪問代理節(jié)點(diǎn)的同時(shí),優(yōu)先選擇發(fā)送VOI值最大的代理節(jié)點(diǎn)作為當(dāng)前訪問目標(biāo),并將代理節(jié)點(diǎn)上的數(shù)據(jù)傳輸?shù)剿娓?biāo)。仿真結(jié)果表明,GOHRP在保證高效穩(wěn)定的數(shù)據(jù)傳輸率的同時(shí),降低了網(wǎng)絡(luò)能耗,延長了網(wǎng)絡(luò)壽命。
假設(shè)網(wǎng)絡(luò)模型中部署了N個(gè)普通節(jié)點(diǎn)和S個(gè)水面浮標(biāo)監(jiān)測UWSN,普通節(jié)點(diǎn)處于不同分層結(jié)構(gòu)中,通過多跳聲通信將周圍事件的數(shù)據(jù)和VOI發(fā)送給代理節(jié)點(diǎn),AUV通過動態(tài)訪問代理節(jié)點(diǎn),將收集到的數(shù)據(jù)傳輸?shù)剿娓?biāo),水面浮標(biāo)通過無線鏈路或衛(wèi)星將數(shù)據(jù)傳輸?shù)奖O(jiān)測中心進(jìn)行數(shù)據(jù)分析。網(wǎng)絡(luò)模型如圖1所示。
Fig.1 Network model圖1 網(wǎng)絡(luò)模型
(1)一輪數(shù)據(jù)收集:指數(shù)據(jù)從普通節(jié)點(diǎn)傳輸?shù)剿娓?biāo)的過程,該過程包括初始階段和路由階段。
(2)普通節(jié)點(diǎn):部署在海洋底部,負(fù)責(zé)監(jiān)測水下數(shù)據(jù),id唯一,位置已知,受弱電池能量約束。
(3)代理節(jié)點(diǎn):每層選擇一個(gè)普通節(jié)點(diǎn)作為代理節(jié)點(diǎn),代理節(jié)點(diǎn)的選擇由普通節(jié)點(diǎn)的剩余能量、鄰居密度和數(shù)據(jù)包傳輸率組成的權(quán)重大小決定,權(quán)重最大的普通節(jié)點(diǎn)當(dāng)選為該層的代理節(jié)點(diǎn)。代理節(jié)點(diǎn)的選擇主要取決于剩余能量,每輪重新選擇代理節(jié)點(diǎn),代理節(jié)點(diǎn)接收并保存普通節(jié)點(diǎn)發(fā)送的數(shù)據(jù)和VOI。
(4)AUV:AUV作為匯聚節(jié)點(diǎn),具有自主移動性,負(fù)責(zé)將數(shù)據(jù)從代理節(jié)點(diǎn)傳輸?shù)剿娓?biāo)。高效靈活的AUV攜帶多個(gè)傳感器和水聲通信模塊,可較好地?cái)U(kuò)展UWSN的活動監(jiān)測范圍,有效提高網(wǎng)絡(luò)通信效率。隨著AUV的移動,遠(yuǎn)距離傳輸被短距離傳輸所取代,使數(shù)據(jù)傳輸性能顯著提升。
(5)水面浮標(biāo):部署在水面作為目的節(jié)點(diǎn),負(fù)責(zé)水下和陸上通信。
(6)不等層網(wǎng)絡(luò)結(jié)構(gòu):GOHRP采用動態(tài)分層的方式,根據(jù)普通節(jié)點(diǎn)的深度將網(wǎng)絡(luò)劃分為間距不等的分層結(jié)構(gòu),從而使普通節(jié)點(diǎn)沿著分層的階梯方向朝水面浮標(biāo)傳輸數(shù)據(jù)。
假設(shè)水下監(jiān)測區(qū)域依據(jù)普通節(jié)點(diǎn)的深度將UWSN劃分為L層,一組E事件E1,E2,…,E|E|發(fā)生在L層水域內(nèi),其中|E|為事件數(shù),若普通節(jié)點(diǎn)i在tk時(shí)刻監(jiān)測到事件Ek(1 ≤k≤|E|),則通過普通節(jié)點(diǎn)i采集到事件Ek的數(shù)據(jù)信息值VOI為
式中,t為每輪數(shù)據(jù)收集的時(shí)間,tk,i為普通節(jié)點(diǎn)i采集到事件Ek的時(shí)間,βk(0 ≤βk≤1)表示重要性和時(shí)效性之間的信息權(quán)重,∈R+(正實(shí)數(shù))和f(t-tk,i)分別表示事件Ek的重要性和時(shí)效性。f(t-tk,i)表示為的指數(shù)函數(shù),當(dāng)t=tk,i時(shí),普通節(jié)點(diǎn)i采集到事件Ek的最大,接著隨時(shí)間衰減,當(dāng)衰減為最小值時(shí),普通節(jié)點(diǎn)上的數(shù)據(jù)將被丟棄,停止數(shù)據(jù)傳輸;當(dāng)tk,i=0時(shí),F(xiàn)Ek=1,f(t-tk,i)=e-t。
距離為d的任意一對節(jié)點(diǎn)傳輸m比特的數(shù)據(jù)包傳輸率為p(d,m),該傳輸率用于初始階段代理節(jié)點(diǎn)的選擇。
水聲信道具有信道容量低、可靠性差以及可用帶寬窄的特點(diǎn),使得水聲信道上的高速通信不僅復(fù)雜,還具有路徑損耗的特點(diǎn)。路徑損耗是指由于大規(guī)模衰落,頻率為f的信號在距離d上的無阻礙衰減。GOHRP采用水聲信號的衰減模型[28-29],對于頻率為f的信號,距離為d的任意一對節(jié)點(diǎn)在水聲信道中發(fā)生的路徑損耗為:
式中,s為擴(kuò)散因子(圓柱為1,實(shí)用為1.5,球面為2),在仿真實(shí)驗(yàn)中,s取1.5。吸收因子a(f)為:
距離為d的平均信噪比(signal-to-noise ratio,SNR)為:
式中,Eb和N0為常數(shù),分別表示單位比特的平均能量消耗和噪聲功率密度。
GOHRP采用二進(jìn)制相移鍵控(binary phase shift keying,BPSK)調(diào)制模式[30],在BPSK中,每個(gè)符號攜帶1 bit。距離為d的任意一對節(jié)點(diǎn)的誤比特概率為:
因此,距離為d的任意一對節(jié)點(diǎn)傳輸m比特的數(shù)據(jù)包傳輸率p(d,m)為:
4.1.1 不等層網(wǎng)絡(luò)
為了簡化網(wǎng)絡(luò)模型,均衡網(wǎng)絡(luò)能耗,GOHRP基于普通節(jié)點(diǎn)的深度將UWSN劃分為間距不等的分層結(jié)構(gòu)。不等層結(jié)構(gòu)如圖2所示。
Fig.2 Unequal layer structure圖2 不等層結(jié)構(gòu)
設(shè)Di為普通節(jié)點(diǎn)i的深度,GOHRP根據(jù)節(jié)點(diǎn)深度將UWSN由上到下化分為L層,第l層的間距記為rl(l=1,2,…,L),第一層普通節(jié)點(diǎn)i滿足Di<r1,rl+1滿足rl+1=rl+Δr(其中Δr為常數(shù)),普通節(jié)點(diǎn)i通過向上取整函數(shù)計(jì)算其所在的層級Li:
式中,Rc為普通節(jié)點(diǎn)的通信半徑。
相比于等層網(wǎng)絡(luò),不等層網(wǎng)絡(luò)結(jié)構(gòu)的層間距由上到下逐漸增大,網(wǎng)絡(luò)層級數(shù)目減少,使普通節(jié)點(diǎn)到水面浮標(biāo)的傳輸跳數(shù)減少,降低了網(wǎng)絡(luò)傳輸時(shí)延;避免了靠近水面浮標(biāo)的節(jié)點(diǎn)因承擔(dān)過多的轉(zhuǎn)發(fā)任務(wù)而快速消耗能量,進(jìn)而導(dǎo)致其過早死亡的問題,有利于延長網(wǎng)絡(luò)生命周期;每輪通過在同一層選擇不同的代理節(jié)點(diǎn),均衡了層內(nèi)節(jié)點(diǎn)的網(wǎng)絡(luò)能耗,有效解決能耗熱區(qū)問題。因此,不等層網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化了網(wǎng)絡(luò)性能,其路由效果更佳。
4.1.2 代理節(jié)點(diǎn)選擇
普通節(jié)點(diǎn)根據(jù)自身深度估計(jì)所在層級后,GOHRP基于普通節(jié)點(diǎn)的剩余能量、鄰居密度和數(shù)據(jù)包傳輸率動態(tài)選擇每層的代理節(jié)點(diǎn),代理節(jié)點(diǎn)負(fù)責(zé)從普通節(jié)點(diǎn)收集數(shù)據(jù)并傳輸?shù)紸UV。為了避免代理節(jié)點(diǎn)在一定通信時(shí)間后過早死亡,GOHRP將在下一輪通信開始時(shí)重新選擇代理節(jié)點(diǎn),通過選擇高效可靠的代理節(jié)點(diǎn),從而降低網(wǎng)絡(luò)能耗,延長網(wǎng)絡(luò)壽命。
第l層普通節(jié)點(diǎn)i的權(quán)重大小A(l,i)為:
式中,α1+α2+α3=1,α1,α2,α3∈[0,1],α1、α2、α3分別為能量因子、密度因子和傳輸因子,仿真中取α1=0.5,α2=0.2,α3=0.3,Eres(l,i) 和Einit(l,i) 分別是第l層普通節(jié)點(diǎn)i的剩余能量和初始能量,N(l,i)是第l層節(jié)點(diǎn)i的鄰居節(jié)點(diǎn)數(shù)目,N(l)是第l層普通節(jié)點(diǎn)總數(shù),pi(d,m)是節(jié)點(diǎn)i的數(shù)據(jù)包傳輸率,是第l層普通節(jié)點(diǎn)的平均剩余能量。
由于普通節(jié)點(diǎn)是隨機(jī)分布的,為了節(jié)省能量,降低時(shí)延,每層選擇代理節(jié)點(diǎn)時(shí),若普通節(jié)點(diǎn)i的剩余能量Eres(l,i)小于該層平均剩余能量,則普通節(jié)點(diǎn)i停止參與代理節(jié)點(diǎn)的選擇。因此,GOHRP選擇權(quán)重最大的普通節(jié)點(diǎn)作為該層代理節(jié)點(diǎn)。
4.2.1 機(jī)會路由策略
普通節(jié)點(diǎn)向每層代理節(jié)點(diǎn)發(fā)送數(shù)據(jù)和VOI時(shí),采用機(jī)會路由策略決策下一跳節(jié)點(diǎn)。若普通節(jié)點(diǎn)i的鄰居節(jié)點(diǎn)u滿足d(u,j)<d(i,j),則第l層節(jié)點(diǎn)i將節(jié)點(diǎn)u的信息保存在如下鄰居節(jié)點(diǎn)信息表中。
其中,uid為鄰居節(jié)點(diǎn)u的序列號;Eres(l,u)為第l層鄰居節(jié)點(diǎn)u的剩余能量;d(u,j)為鄰居節(jié)點(diǎn)u與代理節(jié)點(diǎn)j的距離;d(i,j)為普通節(jié)點(diǎn)i與代理節(jié)點(diǎn)j的距離。
基于與鄰居節(jié)點(diǎn)的距離與剩余能量,普通節(jié)點(diǎn)的機(jī)會路由選擇函數(shù)L(i,u)為:
式中,ε∈[0,1]為剩余能量和距離的信息權(quán)重,仿真中取ε=0.6。Einit(u)和Eres(u)分別為鄰居節(jié)點(diǎn)u的初始能量和剩余能量。普通節(jié)點(diǎn)i選擇Eres(u)最大和d(u,j)最小的鄰居節(jié)點(diǎn),即L(i,u)值最小的鄰居節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),下一跳節(jié)點(diǎn)將數(shù)據(jù)和VOI轉(zhuǎn)發(fā)到該層代理節(jié)點(diǎn)。
4.2.2 AUV動態(tài)路由策略
普通節(jié)點(diǎn)通過機(jī)會路由策略將采集到的數(shù)據(jù)和VOI轉(zhuǎn)發(fā)給代理節(jié)點(diǎn)后,每個(gè)代理節(jié)點(diǎn)通過單跳聲通信向AUV廣播消息數(shù)據(jù)包,該包包括代理節(jié)點(diǎn)的位置坐標(biāo)和其接收的VOI。其中,代理節(jié)點(diǎn)的通信范圍是AUV在固定傳輸功率下的最大可達(dá)距離。假設(shè)代理節(jié)點(diǎn)的通信范圍已知,AUV接收到消息包后,通過動態(tài)路由策略訪問代理節(jié)點(diǎn),并定期浮出水面,將收集到的數(shù)據(jù)傳輸?shù)剿娓?biāo)。
根據(jù)式(1),任意普通節(jié)點(diǎn)i發(fā)送給代理節(jié)點(diǎn)的VOI為Ci(t)。
式中,普通節(jié)點(diǎn)i∈{1,2,…,N},事件數(shù)k∈{1,2,…,|E|},xk,i表示普通節(jié)點(diǎn)i與事件Ek的二元變量,若普通節(jié)點(diǎn)i采集到事件Ek,則取1;否則為0。表示普通節(jié)點(diǎn)i在tk時(shí)刻采集到事件Ek的VOI。
由式(10)得,各代理節(jié)點(diǎn)j接收到的VOI為RCj(t):
式中,代理節(jié)點(diǎn)j∈[]1,2,…,L,yj,i表示代理節(jié)點(diǎn)j與VOI的二元變量,若代理節(jié)點(diǎn)j接收到普通節(jié)點(diǎn)i發(fā)送的VOI,則為1;否則為0。
每個(gè)代理節(jié)點(diǎn)通過廣播消息包向AUV發(fā)送VOI,AUV接收到各層代理節(jié)點(diǎn)發(fā)送的VOI為RCAUV(t):
式中,j∈{}1,2,…,L,zAUV,j表示AUV與消息包的二元變量,若AUV接收到代理節(jié)點(diǎn)j的消息包,則為1;否則為0。RCj(t)為代理節(jié)點(diǎn)j接收到的VOI。
GOHRP定義AUV的收益函數(shù)RF(t)為:
式中,距離d(t)={d1(t),d2(t),…,dL(t)},j∈{1,2,…,L},dj(t)∈R+(正實(shí)數(shù))為AUV到代理節(jié)點(diǎn)j的距離,γ∈R+為常量。
AUV接收到VOI后,選擇使其收益函數(shù)RF(t)最大的代理節(jié)點(diǎn)作為當(dāng)前訪問目標(biāo),RF(t)越大,訪問優(yōu)先級越高。即,在訪問時(shí)間段t[0,T]內(nèi),AUV收集數(shù)據(jù)時(shí)需避免距離AUV較遠(yuǎn)的代理節(jié)點(diǎn),并且根據(jù)VOI的大小優(yōu)先訪問發(fā)送VOI值最大的代理節(jié)點(diǎn),再依次訪問其他代理節(jié)點(diǎn)。
另外,為避免重復(fù)訪問,AUV訪問完當(dāng)前代理節(jié)點(diǎn)后,將其數(shù)據(jù)值重置為零。而AUV垂直移動的時(shí)間對于收集下一個(gè)代理節(jié)點(diǎn)上的數(shù)據(jù)至關(guān)重要,則AUV更新的數(shù)據(jù)收集時(shí)間TU為:
式中,T為AUV的最大訪問時(shí)間;DAUV為AUV的深度;Vver為AUV的垂直移動速度。
AUV根據(jù)各個(gè)代理節(jié)點(diǎn)的VOI值大小,以及代理節(jié)點(diǎn)與AUV的距離,實(shí)現(xiàn)其動態(tài)選擇過程。AUV動態(tài)路由策略的具體過程由算法1所示。
算法1AUV動態(tài)路由策略
假設(shè)AUV接收到各代理節(jié)點(diǎn)的VOI值為RC1(t)=0,RC2(t)=0.5+0.001t,RC3(t)=0.66,RC4(t)=2,其中t=[0,2 000]。由于代理節(jié)點(diǎn)1的VOI值為0,AUV無需訪問此代理節(jié)點(diǎn)。如圖3所示,AUV通過分析VOI的大小,以及各代理節(jié)點(diǎn)與AUV的距離計(jì)算其收益函數(shù)的大小,從而確定依次訪問的代理節(jié)點(diǎn)。因此,AUV的動態(tài)路徑軌跡為2 →4 →3。
Fig.3 Dynamic path trajectory of AUV圖3 AUV動態(tài)路徑軌跡
GOHRP采用NS-3仿真模擬器,實(shí)現(xiàn)GOHRP的性能驗(yàn)證,并與VBF和LB-AGR在平均端到端時(shí)延、數(shù)據(jù)包傳輸率、網(wǎng)絡(luò)能耗、網(wǎng)絡(luò)壽命和網(wǎng)絡(luò)吞吐量等性能參數(shù)上進(jìn)行對比分析。NS-3中包含水聲通信網(wǎng)絡(luò)模塊(underwater acoustic network,UAN),UAN通過水聲信道接口、聲學(xué)調(diào)制解調(diào)器、通信性能模塊接口和MAC協(xié)議接口,模擬水下網(wǎng)絡(luò)通信[31-32]。主要實(shí)驗(yàn)參數(shù)如表1所示。
圖4為VBF、LB-AGR和GOHRP的平均端到端時(shí)延隨節(jié)點(diǎn)個(gè)數(shù)增加的變化曲線。結(jié)果表明,隨著節(jié)點(diǎn)數(shù)目的增加,平均端到端時(shí)延逐漸降低。其中,LB-AGR的時(shí)延小于VBF,因?yàn)閂BF在稀疏網(wǎng)絡(luò)中虛“路由管”內(nèi)可能找不到合適的下一跳節(jié)點(diǎn),導(dǎo)致網(wǎng)絡(luò)出現(xiàn)路由空洞,使網(wǎng)絡(luò)時(shí)延較高。LB-AGR采用抑制時(shí)間的轉(zhuǎn)發(fā)機(jī)制,明顯降低了端到端時(shí)延。相比于VBF和LB-AGR,GOHRP的平均端到端時(shí)延分別降低了0.20和0.08。這是因?yàn)镚OHRP通過設(shè)計(jì)間距不等的分層網(wǎng)絡(luò),使網(wǎng)絡(luò)層級數(shù)目減少,普通節(jié)點(diǎn)到水面浮標(biāo)的傳輸跳數(shù)減少,降低了端到端網(wǎng)絡(luò)時(shí)延;每層選擇代理節(jié)點(diǎn)時(shí),只有當(dāng)普通節(jié)點(diǎn)的剩余能量大于該層平均剩余能量,才可入選代理節(jié)點(diǎn),以節(jié)省能量,降低時(shí)延;在機(jī)會路由策略中普通節(jié)點(diǎn)的機(jī)會轉(zhuǎn)發(fā)避免了數(shù)據(jù)包的循環(huán)傳輸,從而降低網(wǎng)絡(luò)時(shí)延;AUV訪問完代理節(jié)點(diǎn)后,將該代理節(jié)點(diǎn)上的數(shù)據(jù)重置為零,以避免重復(fù)訪問。
Table 1 Experimental parameter list表1 實(shí)驗(yàn)參數(shù)列表
Fig.4 Average end-to-end delay圖4 平均端到端時(shí)延
圖5為VBF、LB-AGR和GOHRP的數(shù)據(jù)包傳輸率隨節(jié)點(diǎn)個(gè)數(shù)增加的變化曲線。數(shù)據(jù)包傳輸率表示水面浮標(biāo)成功接收的數(shù)據(jù)包數(shù)量與源節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包數(shù)量的比率。結(jié)果表明,隨著節(jié)點(diǎn)數(shù)目的增加,三種協(xié)議的數(shù)據(jù)包傳輸率隨之增加。原因在于VBF定義了源節(jié)點(diǎn)到目的節(jié)點(diǎn)的路由向量,節(jié)點(diǎn)通過預(yù)設(shè)的虛“路由管”傳輸數(shù)據(jù)包,避免數(shù)據(jù)冗余轉(zhuǎn)發(fā),提高數(shù)據(jù)傳輸效率。LB-AGR中節(jié)點(diǎn)采用分層路由決策,根據(jù)候選節(jié)點(diǎn)的復(fù)合轉(zhuǎn)發(fā)因子確定最佳路由,將上行路由單播傳送;在機(jī)會路由策略中,依據(jù)普通節(jié)點(diǎn)與鄰居節(jié)點(diǎn)的距離和剩余能量選擇最優(yōu)的下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn),提高了數(shù)據(jù)傳輸性能。
Fig.5 Packet transmission rate圖5 數(shù)據(jù)包傳輸率
圖6為VBF、LB-AGR和GOHRP的平均能量消耗隨節(jié)點(diǎn)個(gè)數(shù)增加的變化曲線。結(jié)果表明,當(dāng)節(jié)點(diǎn)個(gè)數(shù)增加時(shí),三種協(xié)議的平均能量消耗逐漸降低。其中,VBF的平均能量消耗最高,GOHRP最低。因?yàn)閂BF在虛“路由管”傳輸數(shù)據(jù)包時(shí),避免數(shù)據(jù)冗余轉(zhuǎn)發(fā),但路由空洞的出現(xiàn),導(dǎo)致網(wǎng)絡(luò)能耗較高。LBAGR中節(jié)點(diǎn)因多次發(fā)送最后一幀,使節(jié)點(diǎn)層級增加無窮大。由于靠近水面浮標(biāo)的節(jié)點(diǎn)需要轉(zhuǎn)發(fā)大量來自其他節(jié)點(diǎn)的數(shù)據(jù)而負(fù)擔(dān)過重,過早耗盡自身能量而失效,造成網(wǎng)絡(luò)“熱區(qū)”問題,降低網(wǎng)絡(luò)生命周期。GOHRP通過設(shè)計(jì)一種層間距由上到下逐漸增大的網(wǎng)絡(luò)結(jié)構(gòu),使靠近水面浮標(biāo)的層間距小于遠(yuǎn)離水面浮標(biāo)的層間距。因此,靠近水面浮標(biāo)的代理節(jié)點(diǎn)可以為層內(nèi)的數(shù)據(jù)轉(zhuǎn)發(fā)節(jié)省能量,從而優(yōu)化了網(wǎng)絡(luò)中各節(jié)點(diǎn)的能量消耗。
Fig.6 Average energy consumption varies with nodes圖6 平均能量消耗隨節(jié)點(diǎn)變化
圖7為VBF、LB-AGR和GOHRP的平均能量消耗隨仿真時(shí)間增加的變化曲線。結(jié)果表明,隨著仿真時(shí)間的增加,三種協(xié)議的平均能量消耗逐漸增加。其中,GOHRP的平均能量消耗最低,且有穩(wěn)定的上升趨勢。相比于VBF和LB-AGR,GOHRP的平均能量消耗分別降低了0.38和0.19。這是由于GOHRP中不等層的網(wǎng)絡(luò)結(jié)構(gòu)減少了數(shù)據(jù)從源節(jié)點(diǎn)到水面浮標(biāo)的傳輸跳數(shù),使節(jié)點(diǎn)能耗較低,且每層代理節(jié)點(diǎn)的周期性選擇均衡了網(wǎng)絡(luò)能量消耗;轉(zhuǎn)發(fā)過程中數(shù)據(jù)定向傳輸,數(shù)據(jù)傳輸?shù)酱砉?jié)點(diǎn)后,AUV通過動態(tài)路由策略將數(shù)據(jù)傳輸?shù)剿娓?biāo),使能耗的增加速率較其他協(xié)議明顯降低。
Fig.7 Average energy consumption varies with time圖7 平均能量消耗隨時(shí)間變化
如圖8所示,通過運(yùn)行25輪仿真,實(shí)現(xiàn)了GOHRP在每一輪網(wǎng)絡(luò)中所有節(jié)點(diǎn)之間所消耗能量的方差。結(jié)果顯示,GOHRP在每一輪網(wǎng)絡(luò)中,各個(gè)節(jié)點(diǎn)之間所消耗能量的方差較小,并且輪與輪之間曲線的波動較小,這說明GOHRP能夠較好地均衡網(wǎng)絡(luò)中所有節(jié)點(diǎn)之間的能量消耗。這是因?yàn)镚OHRP在設(shè)計(jì)上考慮了各個(gè)節(jié)點(diǎn)之間的負(fù)載差異,并且為了避免代理節(jié)點(diǎn)在一定通信時(shí)間后過早死亡,GOHRP將在下一輪通信開始時(shí)重新選擇代理節(jié)點(diǎn),通過選擇高效可靠的代理節(jié)點(diǎn),使層內(nèi)節(jié)點(diǎn)間能耗的不均衡問題從根本上解決。
Fig.8 Energy consumption variance of GOHRP圖8 GOHRP能耗方差
圖9為VBF、LB-AGR和GOHRP的節(jié)點(diǎn)存活率隨仿真時(shí)間增加的變化曲線。隨著仿真時(shí)間的增加,節(jié)點(diǎn)存活率逐漸降低。其中,VBF的節(jié)點(diǎn)存活率低于GOHRP和LB-AGR,原因是VBF中傳輸功率的增加導(dǎo)致部分節(jié)點(diǎn)能耗過高,使節(jié)點(diǎn)死亡率上升,存活率降低。當(dāng)仿真時(shí)間為1 000 s時(shí),VBF的節(jié)點(diǎn)存活率低于0.8,LB-AGR的節(jié)點(diǎn)存活率低于0.9,而GOHRP的節(jié)點(diǎn)存活率大于0.9;當(dāng)仿真時(shí)間從1 500 s增加到2 000 s時(shí),LB-AGR的節(jié)點(diǎn)存活率從0.74降低到0.33,其原因是LB-AGR中Sink節(jié)點(diǎn)因無法廣播和接收數(shù)據(jù)包,導(dǎo)致網(wǎng)絡(luò)出現(xiàn)狀態(tài)死鎖,使節(jié)點(diǎn)存活率較低。GOHRP的節(jié)點(diǎn)存活率最高,其原因是GOHRP為了避免代理節(jié)點(diǎn)在一定通信時(shí)間后過早死亡,普通節(jié)點(diǎn)將在下一輪通信開始時(shí)重新選擇高效可靠的代理節(jié)點(diǎn),并且普通節(jié)點(diǎn)在選擇代理節(jié)點(diǎn)和下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn)時(shí)考慮了其剩余能量,從而延長了網(wǎng)絡(luò)壽命。與VBF和LB-AGR相比,GOHRP的節(jié)點(diǎn)存活率分別提高了0.43和0.21。
Fig.9 Node survival rate圖9 節(jié)點(diǎn)存活率
圖10為VBF、LB-AGR和GOHRP的網(wǎng)絡(luò)吞吐量隨節(jié)點(diǎn)個(gè)數(shù)增加的變化曲線。網(wǎng)絡(luò)吞吐量是AUV在網(wǎng)絡(luò)運(yùn)行期間發(fā)送給水面浮標(biāo)的總字節(jié)數(shù)。結(jié)果表明,隨著節(jié)點(diǎn)數(shù)目的增加,三種協(xié)議的網(wǎng)絡(luò)吞吐量也隨之增加,其中GOHRP的網(wǎng)絡(luò)吞吐量高于VBF和LB-AGR。因?yàn)镚OHRP中AUV通過動態(tài)路由策略優(yōu)先訪問使其收益函數(shù)最大的代理節(jié)點(diǎn),并將收集到的數(shù)據(jù)傳輸?shù)剿娓?biāo),提高了網(wǎng)絡(luò)吞吐量。
Fig.10 Network throughput圖10 網(wǎng)絡(luò)吞吐量
實(shí)驗(yàn)結(jié)果表明,本文提出的GOHRP協(xié)議具有以下優(yōu)點(diǎn):(1)通過設(shè)計(jì)層間距由上到下逐漸增大的不等層結(jié)構(gòu),使網(wǎng)絡(luò)傳輸時(shí)延明顯降低;(2)每輪依據(jù)普通節(jié)點(diǎn)的權(quán)重大小選擇每層的代理節(jié)點(diǎn),有效均衡了網(wǎng)絡(luò)能耗;(3)普通節(jié)點(diǎn)采用機(jī)會路由策略決策傳輸數(shù)據(jù)到代理節(jié)點(diǎn)的下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn),提高了數(shù)據(jù)包傳輸率;(4)剩余能量作為選擇下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn)和每層代理節(jié)點(diǎn)的決定性因素,使節(jié)點(diǎn)的存活率得以提高,從而延長了網(wǎng)絡(luò)壽命;(5)AUV根據(jù)其收益函數(shù)的大小依次訪問各個(gè)代理節(jié)點(diǎn),并將采集到的數(shù)據(jù)直接傳輸?shù)剿娓?biāo),使網(wǎng)絡(luò)吞吐量顯著提升。
本文主要研究了如何在復(fù)雜的UWSN中實(shí)現(xiàn)高效可靠的路由協(xié)議,提出AUV輔助的水下地理機(jī)會路由協(xié)議GOHRP。GOHRP設(shè)計(jì)了間距不等的分層網(wǎng)絡(luò),從而簡化了網(wǎng)絡(luò)模型,均衡了網(wǎng)絡(luò)能耗;每層的普通節(jié)點(diǎn)通過自身權(quán)重大小動態(tài)選擇代理節(jié)點(diǎn),有效解決了能耗熱區(qū)問題。利用優(yōu)化后的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),普通節(jié)點(diǎn)通過機(jī)會路由策略將采集到的數(shù)據(jù)和VOI轉(zhuǎn)發(fā)給代理節(jié)點(diǎn),提高了數(shù)據(jù)傳輸性能;AUV通過動態(tài)路由策略,根據(jù)其收益函數(shù)的大小,依次訪問各層的代理節(jié)點(diǎn),并將代理節(jié)點(diǎn)上的數(shù)據(jù)傳輸?shù)剿娓?biāo)。仿真結(jié)果表明,GOHRP在網(wǎng)絡(luò)能耗、數(shù)據(jù)傳輸率、網(wǎng)絡(luò)時(shí)延、網(wǎng)絡(luò)吞吐量和網(wǎng)絡(luò)壽命方面均優(yōu)于VBF和LB-AGR。
在未來的工作中,將結(jié)合水域環(huán)境的鏈路特性,進(jìn)一步研究UWSN的其他重要特性。包括如何深入優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)以提高UWSN通信質(zhì)量,如何解決轉(zhuǎn)發(fā)過程中出現(xiàn)的失效節(jié)點(diǎn)問題。