趙德騰,王 敏,2+,劉 淳
(1.云南師范大學(xué) 信息學(xué)院,云南 昆明 650500;2.云南師范大學(xué) 民族教育信息化教育部重點(diǎn)實(shí)驗(yàn)室,云南 昆明 650500)
近些年,隨著人類社會對海洋資源勘探和開發(fā)的興趣越來越大,水下傳感器網(wǎng)絡(luò)(underwater sensor networks,UWSNs)作為一種新型的無線傳感器網(wǎng)絡(luò),在諸多水下應(yīng)用中發(fā)揮重要作用[1,2]。UWSNs是由大量傳感器節(jié)點(diǎn),包括普通節(jié)點(diǎn)和目的節(jié)點(diǎn)(又稱sink節(jié)點(diǎn))組成的無線自組網(wǎng)絡(luò),主要通過聲波傳輸數(shù)據(jù)。相比于陸地環(huán)境,水下條件惡劣[3,4],更換節(jié)點(diǎn)電池的難度很大[5,6],均衡和降低節(jié)點(diǎn)能耗[7,8]以延長網(wǎng)絡(luò)壽命[9]尤為重要。
為了降低網(wǎng)絡(luò)能耗,Xie P等提出了VBF,該協(xié)議采用源節(jié)點(diǎn)到sink節(jié)點(diǎn)的路由管道限制可轉(zhuǎn)發(fā)數(shù)據(jù)包的節(jié)點(diǎn),有效減少了網(wǎng)絡(luò)中的重復(fù)數(shù)據(jù)包,從而降低了網(wǎng)絡(luò)能耗,但是提前預(yù)定的路由管道半徑,不能很好地適應(yīng)不同規(guī)模的網(wǎng)絡(luò)。為了均衡節(jié)點(diǎn)能耗,Xiao X等提出了LE-VBF,通過感知相鄰節(jié)點(diǎn)的能量信息,根據(jù)節(jié)點(diǎn)的剩余能量來決定是否參與傳輸,如果該節(jié)點(diǎn)的剩余能量超過其鄰居節(jié)點(diǎn)的平均剩余能量,則轉(zhuǎn)發(fā)數(shù)據(jù)包,否則,丟棄數(shù)據(jù)包,但是相鄰節(jié)點(diǎn)間的頻繁通信會產(chǎn)生較高的能耗和數(shù)據(jù)碰撞。Wei B等提出了ES-VBF,該協(xié)議按照節(jié)點(diǎn)剩余能量與原始能量的比值采用不同函數(shù)設(shè)置發(fā)包等待時(shí)間,比值較高的節(jié)點(diǎn)優(yōu)先發(fā)包,以均衡節(jié)點(diǎn)能耗,但無法均衡采用同一函數(shù)設(shè)置發(fā)包等待時(shí)間的節(jié)點(diǎn)之間的能耗。為了降低能耗和提高投遞率,文獻(xiàn)[10]提出了依賴于環(huán)境大小、節(jié)點(diǎn)傳輸范圍和節(jié)點(diǎn)總數(shù)的可變管道,根據(jù)網(wǎng)絡(luò)密度按比例改變路由管道半徑,從而在節(jié)點(diǎn)密集的網(wǎng)絡(luò)中降低能耗,在節(jié)點(diǎn)稀疏的網(wǎng)絡(luò)中提高投遞率,但由于網(wǎng)絡(luò)中的節(jié)點(diǎn)分布是不均勻的,可能無法達(dá)到較好的效果。Yu H等提出了AHH-VBF,通過逐跳改變路由管道的方向和半徑,保證節(jié)點(diǎn)稀疏區(qū)域的傳輸可靠性,減少節(jié)點(diǎn)密集區(qū)域的重復(fù)數(shù)據(jù)包,但每一跳的計(jì)算量較大。ALRP[11]將節(jié)點(diǎn)通信范圍內(nèi)面向sink節(jié)點(diǎn)方向的區(qū)域作為候選轉(zhuǎn)發(fā)區(qū)域,在候選轉(zhuǎn)發(fā)區(qū)域內(nèi),越靠近sink節(jié)點(diǎn)的節(jié)點(diǎn),被選為下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn)的可能性越大,ALRP不需要尋找最優(yōu)管道半徑,但是候選轉(zhuǎn)發(fā)區(qū)域的大小固定,難以適應(yīng)不同規(guī)模的網(wǎng)絡(luò)。
為了增加協(xié)議的動(dòng)態(tài)適應(yīng)性,部分研究人員將強(qiáng)化學(xué)習(xí)(reinforcement learning,RL)應(yīng)用到UWSNs[12-14],利用Q學(xué)習(xí)算法,將網(wǎng)絡(luò)中的狀態(tài)與采取的行為構(gòu)建成一張Q表來存儲Q值,然后根據(jù)Q值來選取能夠獲得最大收益的動(dòng)作,具有較強(qiáng)的適應(yīng)性,但每次都需要更新和存儲Q值,增加了復(fù)雜性,能耗較大[15],這對計(jì)算能力和能量有限且難以更換電池的UWSNs來說是一個(gè)挑戰(zhàn)。
為了進(jìn)一步均衡和降低UWSNs的能耗,以延長網(wǎng)絡(luò)壽命。本文提出能耗均衡與節(jié)能的自適應(yīng)水下路由協(xié)議(energy consumption balanced and energy saving adaptive underwater routing protocol,ECBES)。首先,構(gòu)建雙區(qū)非均勻分層拓?fù)?。其次,基于能耗均衡因子,利用拓?fù)浜凸?jié)點(diǎn)剩余能量計(jì)算出節(jié)點(diǎn)轉(zhuǎn)發(fā)優(yōu)先級,實(shí)現(xiàn)自適應(yīng)轉(zhuǎn)發(fā)節(jié)點(diǎn)選擇。與此同時(shí),利用策略迭代思想逐步確定最優(yōu)候選轉(zhuǎn)發(fā)區(qū)域。
本文UWSNs由多個(gè)普通節(jié)點(diǎn)和單個(gè)sink節(jié)點(diǎn)組成。普通節(jié)點(diǎn)分為兩種,一種固定在水底,另一種在監(jiān)測區(qū)域中隨機(jī)移動(dòng)。普通節(jié)點(diǎn)具有唯一的ID號,可以感知自己的位置以及進(jìn)行簡單的信息處理。普通節(jié)點(diǎn)的計(jì)算能力、數(shù)據(jù)傳輸能力、原始能量大小完全相同。sink節(jié)點(diǎn)的能量看作無限,其位于水面,用來接收水下傳來的數(shù)據(jù)包,并最終將數(shù)據(jù)包傳遞到陸地基站。sink節(jié)點(diǎn)配備了聲學(xué)調(diào)制解調(diào)器和無線電調(diào)制解調(diào)器,聲學(xué)鏈路用于水下通信,無線電鏈路用于地面通信。網(wǎng)絡(luò)模型如圖1所示。
圖1 網(wǎng)絡(luò)模型
傳統(tǒng)路由協(xié)議一般通過比較節(jié)點(diǎn)剩余能量的大小,選擇高剩余能量的節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包,以此來均衡能耗,但是容易陷入局部最優(yōu),從而導(dǎo)致不同區(qū)域間節(jié)點(diǎn)的剩余能量相差較大。同時(shí),節(jié)點(diǎn)的候選轉(zhuǎn)發(fā)區(qū)域大小固定,難以適應(yīng)不同規(guī)模的網(wǎng)絡(luò),若候選轉(zhuǎn)發(fā)區(qū)域太大,不斷運(yùn)動(dòng)的低優(yōu)先級節(jié)點(diǎn)可能無法收到抑制發(fā)包的消息,從而產(chǎn)生大量的重復(fù)數(shù)據(jù)包,導(dǎo)致高能耗。
本文針對傳統(tǒng)水下路由協(xié)議能耗不均衡和能量有限的問題,提出能耗均衡與節(jié)能的自適應(yīng)水下路由協(xié)議ECBES。
ECBES的數(shù)據(jù)包包頭包括數(shù)據(jù)包唯一標(biāo)識(ID)、節(jié)點(diǎn)三維位置(position)、節(jié)點(diǎn)所處層次(layers)、節(jié)點(diǎn)剩余能量(residual energy)以及統(tǒng)計(jì)變量range(i)_count字段(僅存在于首輪數(shù)據(jù)包,在2.5.1節(jié)中具體介紹)。包頭格式如圖2所示。
圖2 數(shù)據(jù)包包頭
為了從全局角度緩解能耗不均,減少部分節(jié)點(diǎn)因能量耗盡而提前死亡的情況,ECBES構(gòu)建水下雙區(qū)非均勻分層拓?fù)?。圖3是以sink節(jié)點(diǎn)為中心的拓?fù)淇v向剖面圖,圖中的監(jiān)測區(qū)域被縱向劃分為主區(qū)和副區(qū),水平方向上采用非均勻分層,其中主區(qū)用以sink節(jié)點(diǎn)為球心的若干球面進(jìn)行劃分,副區(qū)采用平行分層。
圖3 拓?fù)淇v向剖面
如圖3所示,為避免數(shù)據(jù)轉(zhuǎn)發(fā)集中于某些路徑和區(qū)域,造成能耗不均,主區(qū)和副區(qū)節(jié)點(diǎn)采用不同的轉(zhuǎn)發(fā)方向,主區(qū)節(jié)點(diǎn)優(yōu)先朝sink節(jié)點(diǎn)方向轉(zhuǎn)發(fā),副區(qū)節(jié)點(diǎn)優(yōu)先向副區(qū)的上層轉(zhuǎn)發(fā),并在接近水面時(shí),改朝sink節(jié)點(diǎn)方向轉(zhuǎn)發(fā),以緩解縱向上的節(jié)點(diǎn)能耗不均。此外,靠近水面的層中參與轉(zhuǎn)發(fā)的節(jié)點(diǎn)更易集中于sink節(jié)點(diǎn)附近,需要有更多節(jié)點(diǎn)參與數(shù)據(jù)轉(zhuǎn)發(fā),以緩解橫向上的節(jié)點(diǎn)能耗不均,因此靠近水面的層,體積較大,則候選轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)多。同時(shí)考慮到主區(qū)和副區(qū)節(jié)點(diǎn)轉(zhuǎn)發(fā)方向的特點(diǎn),主區(qū)用以sink節(jié)點(diǎn)為球心的若干球面進(jìn)行劃分,副區(qū)采用平行分層。
為了均衡網(wǎng)絡(luò)能耗,ECBES從全局拓?fù)浜凸?jié)點(diǎn)剩余能量兩方面計(jì)算節(jié)點(diǎn)轉(zhuǎn)發(fā)優(yōu)先級,并根據(jù)優(yōu)先級和隨機(jī)小數(shù)設(shè)置動(dòng)態(tài)等待時(shí)間,以抑制低優(yōu)先級節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包,并降低同等優(yōu)先級節(jié)點(diǎn)的重復(fù)數(shù)據(jù)包。
2.4.1 節(jié)點(diǎn)轉(zhuǎn)發(fā)優(yōu)先級
ECBES的節(jié)點(diǎn)轉(zhuǎn)發(fā)優(yōu)先級取決于:①層次大小,使數(shù)據(jù)包往sink節(jié)點(diǎn)方向或較淺方向傳輸;②是否與上一跳節(jié)點(diǎn)同區(qū),避免數(shù)據(jù)轉(zhuǎn)發(fā)集中于某些路徑和區(qū)域;③剩余能量大小,均衡局部節(jié)點(diǎn)間的能耗。在同一剩余能量情況下,所屬分層的層次越小,轉(zhuǎn)發(fā)優(yōu)先級越高,在同一分層情況下,與上一跳節(jié)點(diǎn)同區(qū)的節(jié)點(diǎn),轉(zhuǎn)發(fā)優(yōu)先級較高。
ECBES將節(jié)點(diǎn)通信范圍內(nèi),面向sink節(jié)點(diǎn)的上半球區(qū)域作為節(jié)點(diǎn)的候選轉(zhuǎn)發(fā)區(qū)域。如圖4所示,節(jié)點(diǎn)A1和A2的候選轉(zhuǎn)發(fā)區(qū)域?yàn)樘摼€半球區(qū)域,其被雙區(qū)非均勻分層拓?fù)浞指?,其中的阿拉伯?dāng)?shù)字是不考慮節(jié)點(diǎn)剩余能量情況下,各區(qū)域節(jié)點(diǎn)的轉(zhuǎn)發(fā)優(yōu)先程度,數(shù)字越小,轉(zhuǎn)發(fā)優(yōu)先級越高。
圖4 轉(zhuǎn)發(fā)節(jié)點(diǎn)選擇
計(jì)算出節(jié)點(diǎn)轉(zhuǎn)發(fā)優(yōu)先級Pselect之后,與一個(gè)隨機(jī)數(shù)RN∈[β,1) 進(jìn)行比較,β的最小取值為0,Pselect大則成為候選轉(zhuǎn)發(fā)節(jié)點(diǎn),否則丟棄。因此Pselect越大,成為轉(zhuǎn)發(fā)節(jié)點(diǎn)的可能性越大,其值考慮能耗均衡,在ECBES中通過能耗均衡因子α1和α2來綜合設(shè)置。Pselect的計(jì)算如式(1)所示
(1)
其中,α1考慮全局拓?fù)鋵用娴哪芎木猓渲等缡?2)所示,α2考慮局部節(jié)點(diǎn)間的能耗均衡,其值如式(3)所示。α1的取值考慮節(jié)點(diǎn)所屬分層層次、與上一跳節(jié)點(diǎn)是否同區(qū),α2的取值考慮上下兩跳節(jié)點(diǎn)的剩余能量
(2)
其中,layer為候選轉(zhuǎn)發(fā)節(jié)點(diǎn)所屬的分層層次,layerlast為上一跳節(jié)點(diǎn)所屬的分層層次,K為非負(fù)實(shí)數(shù)。特別地,當(dāng)處于主區(qū)一層的節(jié)點(diǎn)收到來自副區(qū)二層節(jié)點(diǎn)傳來的數(shù)據(jù)包時(shí)α1為1.0
(3)
其中,E為候選轉(zhuǎn)發(fā)節(jié)點(diǎn)的剩余能量,Elast為上一跳節(jié)點(diǎn)的剩余能量,λ1和λ2為候選轉(zhuǎn)發(fā)節(jié)點(diǎn)與上一跳節(jié)點(diǎn)剩余能量之比的閾值,剩余能量之比大于λ1的節(jié)點(diǎn)在局部區(qū)域相對于其它節(jié)點(diǎn)能量充足,小于λ2的節(jié)點(diǎn)則能量不足,放棄轉(zhuǎn)發(fā)資格。
2.4.2 動(dòng)態(tài)等待時(shí)間
為了抑制低優(yōu)先級節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包,并降低同等優(yōu)先級節(jié)點(diǎn)的重復(fù)數(shù)據(jù)包,ECBES根據(jù)節(jié)點(diǎn)轉(zhuǎn)發(fā)優(yōu)先級和隨機(jī)小數(shù)設(shè)置動(dòng)態(tài)等待時(shí)間T。優(yōu)先級Pselect越大,動(dòng)態(tài)等待時(shí)間T越小,同等優(yōu)先級的節(jié)點(diǎn)通過隨機(jī)小數(shù)Trn來區(qū)分。在動(dòng)態(tài)等待時(shí)間T內(nèi),如果收到其它節(jié)點(diǎn)傳來相同的數(shù)據(jù)包,則取消等待時(shí)間并丟棄該包,否則,時(shí)間T到期發(fā)包。動(dòng)態(tài)等待時(shí)間T的計(jì)算如式(4)所示
(4)
此外,每一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)建立已發(fā)送列表,將發(fā)送過的數(shù)據(jù)包ID寫入已發(fā)送列表,每次收到數(shù)據(jù)包后進(jìn)行對比,如果已發(fā)送過此包,則直接丟棄,以防止節(jié)點(diǎn)循環(huán)轉(zhuǎn)發(fā)此包。
候選轉(zhuǎn)發(fā)區(qū)域的大小與網(wǎng)絡(luò)規(guī)模以及網(wǎng)絡(luò)中節(jié)點(diǎn)的分布情況有關(guān),需要根據(jù)網(wǎng)絡(luò)動(dòng)態(tài)設(shè)置。ECBES基于策略迭代思想,通過有限次迭代確定最優(yōu)候選轉(zhuǎn)發(fā)區(qū)域。
ECBES將節(jié)點(diǎn)通信范圍內(nèi),面向sink節(jié)點(diǎn)的上半球區(qū)域作為節(jié)點(diǎn)原始候選轉(zhuǎn)發(fā)區(qū)域,如圖5中平面S以上的半球區(qū)域,平面S稱為原始候選轉(zhuǎn)發(fā)平面。為了能夠盡快找到最優(yōu)候選轉(zhuǎn)發(fā)區(qū)域,加速收斂,ECBES通過分析首輪數(shù)據(jù)包傳遞期間節(jié)點(diǎn)候選轉(zhuǎn)發(fā)區(qū)域各分區(qū)域中節(jié)點(diǎn)參與轉(zhuǎn)發(fā)數(shù)據(jù)包的比例,確定次優(yōu)候選轉(zhuǎn)發(fā)區(qū)域,并將其作為初始策略,通過多次迭代,確定最優(yōu)候選轉(zhuǎn)發(fā)區(qū)域,以較低的實(shí)現(xiàn)復(fù)雜度減少不同網(wǎng)絡(luò)規(guī)模中重復(fù)轉(zhuǎn)發(fā)的數(shù)據(jù)包,降低網(wǎng)絡(luò)的整體能耗。
圖5 節(jié)點(diǎn)轉(zhuǎn)發(fā)模型
本節(jié)共有兩個(gè)算法,分別為:次優(yōu)候選轉(zhuǎn)發(fā)區(qū)域確定算法和最優(yōu)候選轉(zhuǎn)發(fā)區(qū)域確定算法。表1對本節(jié)算法所用到的部分參數(shù)進(jìn)行介紹。
表1 算法參數(shù)
2.5.1 次優(yōu)候選轉(zhuǎn)發(fā)區(qū)域確定
在原始候選轉(zhuǎn)發(fā)區(qū)域的基礎(chǔ)上,ECBES進(jìn)一步確定次優(yōu)候選轉(zhuǎn)發(fā)區(qū)域。對于首輪數(shù)據(jù)包的傳遞,節(jié)點(diǎn)的轉(zhuǎn)發(fā)優(yōu)先級設(shè)定參考文獻(xiàn)[11],即在候選轉(zhuǎn)發(fā)區(qū)域內(nèi)越靠近sink節(jié)點(diǎn)的節(jié)點(diǎn)轉(zhuǎn)發(fā)優(yōu)先級越高(僅限首輪,其余輪次采用2.4.1節(jié)所計(jì)算的優(yōu)先級)。
首輪數(shù)據(jù)包傳遞期間,range(i)_count字段用來統(tǒng)計(jì)原始候選轉(zhuǎn)發(fā)區(qū)域各個(gè)分區(qū)域(range(i)區(qū)域)中的節(jié)點(diǎn)參與轉(zhuǎn)發(fā)數(shù)據(jù)包的次數(shù)。range(i)區(qū)域劃分如圖5所示,每個(gè)range(i)代表一個(gè)區(qū)域范圍,候選轉(zhuǎn)發(fā)節(jié)點(diǎn)收到數(shù)據(jù)包后根據(jù)距離上一跳節(jié)點(diǎn)原始候選轉(zhuǎn)發(fā)平面的距離d_initial確定自己處于哪一區(qū)域,并對數(shù)據(jù)包包頭中對應(yīng)的range(i)_count字段值加1。
首輪數(shù)據(jù)包傳遞結(jié)束后,sink節(jié)點(diǎn)利用收到的數(shù)據(jù)包中的range(i)_count信息,計(jì)算各個(gè)range(i)區(qū)域中節(jié)點(diǎn)參與轉(zhuǎn)發(fā)數(shù)據(jù)包的比例,并與閾值TH∈[0,1) 進(jìn)行比較,最終確定次優(yōu)候選轉(zhuǎn)發(fā)區(qū)域。range(i)區(qū)域節(jié)點(diǎn)轉(zhuǎn)發(fā)比例的計(jì)算如式(5)所示
(5)
從range(n)_ratio開始向下對每個(gè)區(qū)域轉(zhuǎn)發(fā)比例逐一進(jìn)行累加,當(dāng)累加值大于閾值TH時(shí),參與累加的區(qū)域即為次優(yōu)候選轉(zhuǎn)發(fā)區(qū)域,如圖5所示,以平面S’為底面的球冠區(qū)域即為次優(yōu)候選轉(zhuǎn)發(fā)區(qū)域。確定次優(yōu)候選轉(zhuǎn)發(fā)區(qū)域后,sink節(jié)點(diǎn)將此信息廣播到網(wǎng)絡(luò)中。算法1以圖5為示例,給出次優(yōu)候選轉(zhuǎn)發(fā)區(qū)域確定的主要步驟。
算法1:次優(yōu)候選轉(zhuǎn)發(fā)區(qū)域確定
輸入:(原始候選轉(zhuǎn)發(fā)區(qū)域)
輸出:(次優(yōu)候選轉(zhuǎn)發(fā)區(qū)域)
范圍:(首輪數(shù)據(jù)包傳遞期間)
(1)/*候選轉(zhuǎn)發(fā)節(jié)點(diǎn)收到數(shù)據(jù)包后的處理方案*/
(2)若候選轉(zhuǎn)發(fā)節(jié)點(diǎn)C收到A發(fā)來的數(shù)據(jù)包, 如圖5所示, 則計(jì)算節(jié)點(diǎn)C到節(jié)點(diǎn)A的原始候選轉(zhuǎn)發(fā)平面的距離
(3)根據(jù)計(jì)算出的d_initialCA確定節(jié)點(diǎn)C所屬的區(qū)域range(i)之后, 將數(shù)據(jù)包包頭中對應(yīng)的range(i)_count字段值加1
(4)/*sink節(jié)點(diǎn)收到數(shù)據(jù)包后的處理方案*/
(5)IF (condition1)
(6) 讀取包中的range(i)_count信息并存儲
(7)ELSE
(8) 丟棄數(shù)據(jù)包
(9)IF (condition2)
(10) 計(jì)算各range(i)區(qū)域中節(jié)點(diǎn)參與轉(zhuǎn)發(fā)數(shù)據(jù)包的比例
(11) IF (range(n)_ratio>TH)
(12) range(n)為次優(yōu)候選轉(zhuǎn)發(fā)區(qū)域
(13) ELSE IF (range(n)_ratio+range(n-1)_ratio>TH)
(14) range(n)+range(n-1)為次優(yōu)候選轉(zhuǎn)發(fā)區(qū)域
(15) ……
(16) ELSE IF(range(n)_ratio+…+range(2)_ratio>TH)
(17) range(n)+…+range(2)為次優(yōu)候選轉(zhuǎn)發(fā)區(qū)域
(18) ELSE
(19)原始候選轉(zhuǎn)發(fā)區(qū)域?yàn)榇蝺?yōu)候選轉(zhuǎn)發(fā)區(qū)域
2.5.2 最優(yōu)候選轉(zhuǎn)發(fā)區(qū)域確定
策略迭代思想是通過不斷迭代獲得最優(yōu)策略的一種思想。為了加快收斂,ECBES將上一節(jié)中確定的次優(yōu)候選轉(zhuǎn)發(fā)區(qū)域作為初始策略。
算法2:最優(yōu)候選轉(zhuǎn)發(fā)區(qū)域確定
輸入:(次優(yōu)候選轉(zhuǎn)發(fā)區(qū)域)
輸出:(最優(yōu)候選轉(zhuǎn)發(fā)區(qū)域)
范圍:(第2輪及以后數(shù)據(jù)包傳遞期間)
(1) /*節(jié)點(diǎn)的候選轉(zhuǎn)發(fā)區(qū)域設(shè)置方案*/
(3) /*sink節(jié)點(diǎn)收到數(shù)據(jù)包后的處理方案*/
(4)IF (condition1)
(5)pk_count本輪++
(6)ELSE
(7) 丟棄數(shù)據(jù)包
(8)IF (condition2)
(9) IF (pk_count本輪! (10)pk_count上輪=pk_count本輪 (11)pk_count本輪=0 (12) ELSE (13) 結(jié)束, 上一輪候選轉(zhuǎn)發(fā)區(qū)域確定為最優(yōu)候選轉(zhuǎn)發(fā)區(qū)域 本文通過仿真軟件OPNET 14.5對VBF、ES-VBF、ALRP和ECBES的節(jié)點(diǎn)死亡率、數(shù)據(jù)包投遞率、網(wǎng)絡(luò)能耗以及端到端時(shí)延進(jìn)行實(shí)驗(yàn)分析。仿真物理層采用水聲信道。發(fā)包節(jié)點(diǎn)固定在水底,每輪發(fā)包間隔15 s,總共發(fā)包15輪。移動(dòng)節(jié)點(diǎn)分布在240m×240m×120m的監(jiān)測區(qū)域內(nèi),隨水流進(jìn)行0~3 m/s的隨機(jī)水平移動(dòng)。主要實(shí)驗(yàn)參數(shù)見表2。 表2 仿真參數(shù) 本實(shí)驗(yàn)設(shè)置主區(qū)為一個(gè)底面半徑60 m,高120 m的圓柱區(qū)域,監(jiān)測區(qū)域其余部分為副區(qū),主區(qū)分為4層,分別用半徑60 m,90 m和120 m的同心球隔開。副區(qū)分層為以主區(qū)同心球分層與主副區(qū)邊界交點(diǎn)為界限的平行分層,拓?fù)淇v向剖面圖如圖3所示。候選轉(zhuǎn)發(fā)區(qū)域分區(qū)數(shù)n=4, 分別為range(1)、range(2)、range(3)、range(4),每個(gè)區(qū)域厚度為10 m,迭代步長H為2 m,最多迭代次數(shù)為4。 在本小節(jié)中,將對UWSNs路由協(xié)議VBF、ES-VBF、ALRP和ECBES進(jìn)行性能評估。評估指標(biāo)包括節(jié)點(diǎn)死亡率、數(shù)據(jù)包投遞率、網(wǎng)絡(luò)能耗以及端到端時(shí)延。 3.2.1 節(jié)點(diǎn)死亡率 圖6為VBF、ES-VBF、ALRP和ECBES仿真完成后的節(jié)點(diǎn)死亡率隨節(jié)點(diǎn)個(gè)數(shù)增加的變化曲線。結(jié)果表明,ECBES在不同節(jié)點(diǎn)個(gè)數(shù)下均沒有出現(xiàn)節(jié)點(diǎn)死亡。當(dāng)節(jié)點(diǎn)個(gè)數(shù)低于500時(shí),VBF、ES-VBF、ALRP的節(jié)點(diǎn)死亡率為0,當(dāng)節(jié)點(diǎn)個(gè)數(shù)增加到500時(shí),出現(xiàn)節(jié)點(diǎn)死亡,且隨著節(jié)點(diǎn)個(gè)數(shù)的增加,節(jié)點(diǎn)死亡率也在增加。原因是節(jié)點(diǎn)的廣播特性導(dǎo)致隨著節(jié)點(diǎn)個(gè)數(shù)的增加,節(jié)點(diǎn)間通信的機(jī)會和次數(shù)也大大增加,從而導(dǎo)致部分節(jié)點(diǎn)因能量耗盡而死亡。 圖6 不同節(jié)點(diǎn)個(gè)數(shù)下的節(jié)點(diǎn)死亡率 VBF和ES-VBF均采用源節(jié)點(diǎn)到sink節(jié)點(diǎn)的路由管道限制可轉(zhuǎn)發(fā)數(shù)據(jù)包的節(jié)點(diǎn),這導(dǎo)致管道內(nèi)外節(jié)點(diǎn)能耗不均,管道內(nèi)的節(jié)點(diǎn)能耗較大。雖然ES-VBF按照節(jié)點(diǎn)剩余能量與原始能量的比值采用兩種不同函數(shù)設(shè)置發(fā)包等待時(shí)間,剩余能量超過原始能量60%的節(jié)點(diǎn)優(yōu)先發(fā)包,但是無法均衡采用同一函數(shù)設(shè)置發(fā)包等待時(shí)間的節(jié)點(diǎn)間的能耗,而且剩余能量很低的節(jié)點(diǎn)雖然轉(zhuǎn)發(fā)優(yōu)先級低,但在動(dòng)態(tài)網(wǎng)絡(luò)中,可能無法抑制其轉(zhuǎn)發(fā)數(shù)據(jù)包。ALRP中的節(jié)點(diǎn)根據(jù)其當(dāng)前位置決定轉(zhuǎn)發(fā)方向,始終面向sink節(jié)點(diǎn)方向傳遞數(shù)據(jù)包,導(dǎo)致網(wǎng)絡(luò)各區(qū)域間能耗不均。 ECBES在不同節(jié)點(diǎn)個(gè)數(shù)下的節(jié)點(diǎn)死亡率均為0。主要原因是ECBES在全局利用雙區(qū)非均勻分層拓?fù)渚饽芎?,在局部?jié)點(diǎn)間通過上下兩跳節(jié)點(diǎn)剩余能量的大小關(guān)系均衡能耗,且為了緩解動(dòng)態(tài)網(wǎng)絡(luò)中可能無法抑制低能量節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包的情況,設(shè)定當(dāng)候選轉(zhuǎn)發(fā)節(jié)點(diǎn)與上一跳節(jié)點(diǎn)剩余能量的比值低于0.3時(shí),主動(dòng)放棄數(shù)據(jù)包的轉(zhuǎn)發(fā)。 3.2.2 數(shù)據(jù)包投遞率 圖7為VBF、ES-VBF、ALRP和ECBES的數(shù)據(jù)包投遞率隨節(jié)點(diǎn)個(gè)數(shù)增加的變化曲線。結(jié)果表明,當(dāng)節(jié)點(diǎn)個(gè)數(shù)增加時(shí),4個(gè)協(xié)議的數(shù)據(jù)包投遞率逐漸增加。從圖7可知,節(jié)點(diǎn)個(gè)數(shù)在700~800時(shí),ECBES的數(shù)據(jù)包投遞率明顯高于其它3個(gè)協(xié)議,主要是因?yàn)镋CBES在數(shù)據(jù)包傳遞期間沒有節(jié)點(diǎn)死亡,因此,所有節(jié)點(diǎn)都處于正常工作狀態(tài)。 圖7 不同節(jié)點(diǎn)個(gè)數(shù)下的數(shù)據(jù)包投遞率 3.2.3 網(wǎng)絡(luò)能耗 圖8為VBF、ES-VBF、ALRP和ECBES的網(wǎng)絡(luò)能耗隨節(jié)點(diǎn)個(gè)數(shù)增加的變化曲線。結(jié)果表明,當(dāng)節(jié)點(diǎn)個(gè)數(shù)增加時(shí),4個(gè)協(xié)議的網(wǎng)絡(luò)能耗逐漸增加。原因是節(jié)點(diǎn)的廣播特性導(dǎo)致隨著節(jié)點(diǎn)個(gè)數(shù)的增加,節(jié)點(diǎn)間通信的機(jī)會和次數(shù)也大大增加,從而導(dǎo)致能耗增加。 圖8 不同節(jié)點(diǎn)個(gè)數(shù)下的網(wǎng)絡(luò)能耗 VBF和ES-VBF均采用冗余傳輸,即允許有限多個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包,這會產(chǎn)生不必要的能耗。ALRP雖然采用單個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包,但每一跳節(jié)點(diǎn)的候選轉(zhuǎn)發(fā)區(qū)域太大,占到了節(jié)點(diǎn)通信范圍的一半,在動(dòng)態(tài)網(wǎng)絡(luò)中難以抑制部分重復(fù)數(shù)據(jù)包的轉(zhuǎn)發(fā),從而造成較高的能耗。 從圖8可知,ECBES在不同節(jié)點(diǎn)個(gè)數(shù)下的網(wǎng)絡(luò)能耗基本都低于其它3個(gè)協(xié)議。由圖7與圖8對比可知,ECBES在投遞率基本不低于其它3個(gè)協(xié)議的同時(shí),能耗大大降低。主要原因是ECBES利用策略迭代思想確定最優(yōu)候選轉(zhuǎn)發(fā)區(qū)域,保證投遞率的同時(shí)減少了不同網(wǎng)絡(luò)規(guī)模中重復(fù)數(shù)據(jù)包的轉(zhuǎn)發(fā),降低了網(wǎng)絡(luò)的整體能耗。 3.2.4 端到端時(shí)延 圖9是不同節(jié)點(diǎn)個(gè)數(shù)下4個(gè)協(xié)議的端到端時(shí)延。VBF、ES-VBF、ALRP和ECBES在節(jié)點(diǎn)個(gè)數(shù)為100~300時(shí),sink節(jié)點(diǎn)未收到數(shù)據(jù)包,因此沒有端到端時(shí)延數(shù)據(jù)。從圖中可知,ECBES在4個(gè)協(xié)議中保持了不錯(cuò)的端到端時(shí)延。主要是因?yàn)镋CBES將網(wǎng)絡(luò)劃分為雙區(qū)非均勻分層拓?fù)?,使得各個(gè)節(jié)點(diǎn)的負(fù)載相對均衡,從而降低了排隊(duì)的可能性以及根據(jù)不同的情況對發(fā)包等待時(shí)間進(jìn)行動(dòng)態(tài)調(diào)整,去除了多余的等待時(shí)間。 圖9 不同節(jié)點(diǎn)個(gè)數(shù)下的端到端時(shí)延 本文針對水下傳感器網(wǎng)絡(luò)(UWSNs)中節(jié)點(diǎn)能耗不均衡和能量有限的問題,提出了能耗均衡與節(jié)能的自適應(yīng)水下路由協(xié)議ECBES。在雙區(qū)非均勻分層拓?fù)涞幕A(chǔ)上,基于能耗均衡因子計(jì)算出節(jié)點(diǎn)轉(zhuǎn)發(fā)優(yōu)先級,實(shí)現(xiàn)自適應(yīng)轉(zhuǎn)發(fā)節(jié)點(diǎn)選擇,均衡網(wǎng)絡(luò)能耗。同時(shí),利用策略迭代思想逐步確定最優(yōu)候選轉(zhuǎn)發(fā)區(qū)域,減少了重復(fù)數(shù)據(jù)包的轉(zhuǎn)發(fā),降低了網(wǎng)絡(luò)的整體能耗。 本文基于OPNET分析對比了4個(gè)協(xié)議在不同節(jié)點(diǎn)數(shù)量下的節(jié)點(diǎn)死亡率、數(shù)據(jù)包投遞率、網(wǎng)絡(luò)能耗以及端到端時(shí)延。仿真結(jié)果表明,ECBES相比于VBF、ES-VBF和ALRP,在不同節(jié)點(diǎn)數(shù)量下,節(jié)點(diǎn)死亡率均最低,在保證數(shù)據(jù)包投遞率的同時(shí),能耗最少。 在未來的研究中,將嘗試多sink節(jié)點(diǎn)的架構(gòu)來進(jìn)一步擴(kuò)展和研究本文所提出的方案,以擴(kuò)展使用場景。3 實(shí)驗(yàn)結(jié)果與分析
3.1 仿真設(shè)置
3.2 性能評估
4 結(jié)束語