吳鏡汝,袁 丁,嚴(yán) 清
(1.四川師范大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,四川 成都 610101;2.重慶移通學(xué)院 計(jì)算機(jī)學(xué)院,重慶 400000)
水下無線傳感器網(wǎng)絡(luò)(underwater wireless sensor networks,UWSNs)是一種復(fù)雜的、高效的、基于聲學(xué)傳感器的、可實(shí)現(xiàn)高速數(shù)據(jù)傳輸和高精度計(jì)算的水下監(jiān)測(cè)系統(tǒng)[1-3]。
電磁波在水下網(wǎng)絡(luò)環(huán)境的傳播距離只有50 cm~100 cm,不能作為水下的傳輸介質(zhì)。因此,目前主要采用聲波作為傳輸方式,從無線電的3×108m/s降為1.5×103m/s,這意味著傳輸延遲更大,帶寬更低[4]。再加上多普勒效應(yīng)、多徑效應(yīng)、背景噪聲等多種因素的干擾,進(jìn)一步限制了傳輸帶寬[5]。另外,水下節(jié)點(diǎn)面臨能量問題,因?yàn)檫@些節(jié)點(diǎn)配備了電池作為唯一可用的電源。與地面無線傳感器網(wǎng)絡(luò)相比,由于使用聲波作為通信介質(zhì),UWSNs中的傳輸和接收能耗有所增加[6]。因此,數(shù)據(jù)包的發(fā)送和接收消耗了水下傳感器節(jié)點(diǎn)的大部分能量。水下傳感器節(jié)點(diǎn)的路由是網(wǎng)絡(luò)中負(fù)責(zé)轉(zhuǎn)發(fā)和接收數(shù)據(jù)包的主要部分[7],為保證路由算法的工作效率,降低能耗,減少時(shí)延,選擇最節(jié)能、最可靠的節(jié)點(diǎn)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),必須設(shè)計(jì)高效節(jié)能的路由算法。
DBR[8](depth-based routing for underwater sensor networks)路由協(xié)議是第一個(gè)無本地化的路由協(xié)議,它的優(yōu)點(diǎn)是不需要完整的尺寸位置信息,考慮傳感器節(jié)點(diǎn)的深度信息,從源節(jié)點(diǎn)中選擇具有最小深度的節(jié)點(diǎn)作為轉(zhuǎn)發(fā)器,但是它的缺點(diǎn)是深度小的節(jié)點(diǎn)更早死亡,導(dǎo)致路由網(wǎng)絡(luò)壽命更短;EEDBR[9](energy-efficient depth-based routing protocol for underwater wireless sensor networks)路由協(xié)議主要分為信息獲取階段和數(shù)據(jù)轉(zhuǎn)發(fā)階段。在信息獲取階段,傳感器節(jié)點(diǎn)基于較高的剩余能量和最小的深度找到鄰居,并將其ID存儲(chǔ)在路由表中。在轉(zhuǎn)發(fā)階段,選擇路由表中剩余能量最高和深度最小的節(jié)點(diǎn)進(jìn)行數(shù)據(jù)包轉(zhuǎn)發(fā),降低能量消耗,但它的缺點(diǎn)是沒有考慮鏈路質(zhì)量,導(dǎo)致不穩(wěn)定鏈路帶來更多的能量消耗。REPBR[10](reliable energy-efficient pressure-based routing protocol for underwater wireless sensor network)路由協(xié)議用三角形度量方法估計(jì)鏈路質(zhì)量,考慮鏈路質(zhì)量、深度和剩余能量3個(gè)參數(shù),平衡能耗和可靠的數(shù)據(jù)傳輸,設(shè)計(jì)基于路由代價(jià)計(jì)算的多尺度數(shù)據(jù)轉(zhuǎn)發(fā)算法,但其缺點(diǎn)是過長的路徑轉(zhuǎn)發(fā)提高了網(wǎng)絡(luò)的延時(shí),降低了數(shù)據(jù)包的轉(zhuǎn)發(fā)效率。以上基于無定位路由協(xié)議對(duì)比見表1。
表1 基于無定位路由協(xié)議對(duì)比
REPBR路由協(xié)議是一種無位置、可靠、節(jié)能的壓力路由協(xié)議,它利用深度、剩余能量和鏈路質(zhì)量3個(gè)參數(shù)來選擇下一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)。該協(xié)議由信息獲取階段和數(shù)據(jù)轉(zhuǎn)發(fā)階段構(gòu)成。
信息獲取階段:在此階段,每個(gè)節(jié)點(diǎn)在較小深度的節(jié)點(diǎn)之間交換特定的信息。首先,每個(gè)節(jié)點(diǎn)定期向它的單跳鄰居廣播一個(gè)Hello報(bào)文,Hello報(bào)文里面包括節(jié)點(diǎn)的ID、剩余能量和深度。每個(gè)節(jié)點(diǎn)收到Hello報(bào)文后,提取Hello報(bào)文的深度信息,并與鄰居節(jié)點(diǎn)作比較,如果Hello報(bào)文的深度小于它的深度,它將節(jié)點(diǎn)保存在它的鄰居信息表中,否則丟棄此報(bào)文,完成鄰居信息表的更新。每個(gè)節(jié)點(diǎn)用鏈路質(zhì)量算法計(jì)算每個(gè)鄰居的距離,對(duì)鏈路質(zhì)量進(jìn)行估計(jì),其Hello報(bào)文格式如圖1所示。
圖1 Hello報(bào)文格式
數(shù)據(jù)轉(zhuǎn)發(fā)階段:在此階段,數(shù)據(jù)包從源節(jié)點(diǎn)轉(zhuǎn)發(fā)到sink節(jié)點(diǎn)。源節(jié)點(diǎn)檢索它的鄰居信息表中的節(jié)點(diǎn)信息,并使用公式計(jì)算路由開銷,然后選擇路由開銷最小的節(jié)點(diǎn)作為轉(zhuǎn)發(fā)節(jié)點(diǎn)的最佳候選節(jié)點(diǎn)。然后發(fā)送方將所選節(jié)點(diǎn)的ID嵌入數(shù)據(jù)包進(jìn)行廣播,鄰居節(jié)點(diǎn)只有收到與自己節(jié)點(diǎn)ID相同的才會(huì)接收數(shù)據(jù)包。路由開銷計(jì)算用式(1)表示
(1)
式中:Ei和Einit分別為當(dāng)前節(jié)點(diǎn)i的剩余能量和初始能量,d(x,y) 是發(fā)送節(jié)點(diǎn)和轉(zhuǎn)發(fā)節(jié)點(diǎn)之間計(jì)算出的鏈路質(zhì)量值,dmax是系統(tǒng)參數(shù)值,根據(jù)環(huán)境設(shè)置。
為減少不必要的數(shù)據(jù)轉(zhuǎn)發(fā),選擇最可靠、最高效的節(jié)點(diǎn),本文提出一種在超低通信速率環(huán)境下,基于REPBR跳數(shù)效用轉(zhuǎn)發(fā)的改進(jìn)路由算法(簡(jiǎn)稱HUF),在數(shù)據(jù)包傳輸階段考慮最優(yōu)最短路徑節(jié)點(diǎn)的選擇,跳數(shù)最少的路由可以保證任意節(jié)點(diǎn)的信息沿著最優(yōu)路徑發(fā)送到網(wǎng)關(guān)節(jié)點(diǎn),同時(shí)綜合鏈路質(zhì)量、剩余能量選擇最優(yōu)的下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn),使得整個(gè)信息傳輸過程消耗的總能量最小[11],降低網(wǎng)絡(luò)時(shí)延。
在進(jìn)行海洋資源探索時(shí),水下傳感器網(wǎng)絡(luò)可以采集海洋油氣資源勘探所需的數(shù)據(jù)信息并經(jīng)過水下節(jié)點(diǎn)層層傳輸,最后由基站接收[12]。REPBR路由協(xié)議通過加入鏈路質(zhì)量的計(jì)算提高網(wǎng)絡(luò)的生存時(shí)間,但是該協(xié)議沒有考慮發(fā)送節(jié)點(diǎn)到接收節(jié)點(diǎn)之間的最短路徑,導(dǎo)致時(shí)延增加,不能更快接收海洋數(shù)據(jù)信息。因此為降低網(wǎng)絡(luò)時(shí)延,減少能量消耗,避免不必要的路徑傳輸,本文改進(jìn)路由算法引入效用函數(shù)策略(綜合鏈路質(zhì)量、剩余能量、節(jié)點(diǎn)間的跳數(shù))選擇最優(yōu)的下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn),降低網(wǎng)絡(luò)時(shí)延,提高UWSNs網(wǎng)絡(luò)性能。
HUF路由算法建立了基于節(jié)點(diǎn)理性偏好特征的博弈模型來研究水下無線傳感器網(wǎng)絡(luò)中的路由問題。首先,將博弈模型的3個(gè)要素定義為一個(gè)三元組 (N,S,U)[13]。 其中,N代表博弈中的所有節(jié)點(diǎn)的集合;S代表博弈中各個(gè)節(jié)點(diǎn)到匯聚節(jié)點(diǎn)的路徑集合;U代表博弈中各個(gè)節(jié)點(diǎn)的效用函數(shù),在本文的博弈模型中根據(jù)節(jié)點(diǎn)的效用函數(shù)值確定最優(yōu)轉(zhuǎn)發(fā)節(jié)點(diǎn),并結(jié)合該節(jié)點(diǎn)向基站轉(zhuǎn)發(fā)數(shù)據(jù)時(shí)的跳數(shù)、當(dāng)前剩余能量值和節(jié)點(diǎn)之間的鏈路質(zhì)量給出效用函數(shù),如式(2)所示
U=α(Mhcmax/Mhi)+β(Ei/Einit)+γ(LQ)
(2)
式中:Mhi表示當(dāng)前節(jié)點(diǎn)向基站轉(zhuǎn)發(fā)數(shù)據(jù)路徑上的最小跳數(shù),Mhcmax表示參與節(jié)點(diǎn)與基站的最大跳數(shù),Ei和Einit分別為當(dāng)前節(jié)點(diǎn)i的剩余能量和初始能量,LQ是發(fā)送節(jié)點(diǎn)和轉(zhuǎn)發(fā)節(jié)點(diǎn)之間計(jì)算出的鏈路質(zhì)量值。ɑ,β,γ為權(quán)重因子[14],目的是根據(jù)網(wǎng)絡(luò)的實(shí)際情況,調(diào)整各個(gè)參數(shù)對(duì)博弈結(jié)果的影響程度。
在水下無線傳感器網(wǎng)絡(luò)中,傳感器節(jié)點(diǎn)在數(shù)據(jù)傳輸時(shí),容易受到周圍環(huán)境的影響和干擾[15]。在已有的很多路由協(xié)議的設(shè)計(jì)與仿真中,很多都忽視了對(duì)通信鏈路的鏈路質(zhì)量進(jìn)行評(píng)估,而這種評(píng)估往往是建立在一個(gè)理想鏈路的基礎(chǔ)上。然而,在實(shí)踐中,通信鏈路具有隨機(jī)的波動(dòng)性[16]。這樣的變化會(huì)帶來諸如網(wǎng)絡(luò)吞吐量下降和能耗上升等問題。在實(shí)際中,正確地評(píng)價(jià)鏈接質(zhì)量,是保證可靠的網(wǎng)絡(luò)通訊的前提,具有重要意義。
在本文中,鏈路質(zhì)量的計(jì)算結(jié)合LQI[17]和RSSI[18]兩個(gè)評(píng)估指標(biāo):RSSI是接收信號(hào)指示強(qiáng)度,是指無線傳感器通信過程中的信號(hào)功率;LQI是鏈路質(zhì)量指示器,在硬件設(shè)備的支持下,RSSI和LQI都可以實(shí)時(shí)測(cè)量,并且可以以較低的網(wǎng)絡(luò)成本快速反映鏈路質(zhì)量的變化,LQI和RSSI值之間存在相關(guān)性[19],當(dāng)節(jié)點(diǎn)i向節(jié)點(diǎn)j發(fā)送數(shù)據(jù)時(shí),節(jié)點(diǎn)之間的鏈路質(zhì)量表示為式(3)
(3)
最小跳數(shù)路由協(xié)議(LHR)是在定向擴(kuò)散算法(directed diffulion,DD)[20]和洪泛算法[21](Flooding)的基礎(chǔ)上,引入跳數(shù)的概念而發(fā)展起來。通過發(fā)布洪泛消息,將數(shù)據(jù)分組從全網(wǎng)各個(gè)節(jié)點(diǎn)發(fā)送至Sink節(jié)點(diǎn),并以最短的跳數(shù)將其傳輸至目的地,這一過程包括梯度場(chǎng)構(gòu)建、數(shù)據(jù)分組傳輸、查詢分組傳輸以及路由維護(hù)4個(gè)步驟。通過采用最小跳數(shù)路由算法,可以有效降低開銷,節(jié)省能源,同時(shí)還可以通過路由維護(hù)來提升算法的靈活性,從而更好地適應(yīng)動(dòng)態(tài)網(wǎng)絡(luò)拓?fù)洹?/p>
(1)梯度場(chǎng)建立階段:
1)我們把匯聚節(jié)點(diǎn)的跳躍次數(shù)設(shè)定為0,而對(duì)于其它節(jié)點(diǎn),則把它們的跳躍次數(shù)調(diào)整為255。
2)sink節(jié)點(diǎn)通過洪泛的方法向水下無線傳感器網(wǎng)絡(luò)傳輸數(shù)據(jù)檢索信息,這些信息中包括了匯聚節(jié)點(diǎn)ID、節(jié)點(diǎn)深度以及最小跳躍數(shù)值HC等。
3)在接收到匯聚節(jié)點(diǎn)的相關(guān)信息之后,我們會(huì)把最小跳數(shù)HC+1的新HC值和匯聚節(jié)點(diǎn)內(nèi)部的HC值做對(duì)照,若是新HC值低于原來的HC值,則用新的HC值替換報(bào)文中的HC值,替換原先的發(fā)送節(jié)點(diǎn)ID為代價(jià)節(jié)點(diǎn)ID,接著用廣播的方式將修訂過的查詢信息傳遞給相鄰的節(jié)點(diǎn);若新的HC值超過了原有的值,那么就會(huì)舍棄查詢包并不做任何處理。
4)在其它節(jié)點(diǎn)接收到查詢信息后,再次執(zhí)行之前的處理步驟,最后形成最小跳躍數(shù)梯度場(chǎng)如圖2所示。
圖2 梯度建立階段
(2)數(shù)據(jù)傳輸階段:
數(shù)據(jù)傳輸過程中,一旦接收端的設(shè)備收集了信息,它會(huì)通過Flooding的形式將其傳送至匯總端。在這個(gè)過程中,每一次的HC值都會(huì)降低1,這樣就能將來自接收端的信息傳送至匯總端,并且這個(gè)過程會(huì)按照一個(gè)逐步降低的最低跳數(shù)值進(jìn)行。如圖3所示。
圖3 數(shù)據(jù)傳輸階段
通過以上初始化過程,每個(gè)節(jié)點(diǎn)均獲得到sink節(jié)點(diǎn)的最小跳數(shù),建立了到sink節(jié)點(diǎn)的多條最小跳數(shù)路徑,為數(shù)據(jù)包的路由轉(zhuǎn)發(fā)計(jì)算做好了準(zhǔn)備。
2.4.1 數(shù)據(jù)獲取階段
在此階段,每個(gè)節(jié)點(diǎn)在較小深度的節(jié)點(diǎn)之間交換特定的信息。首先,每個(gè)節(jié)點(diǎn)定期的向它的單跳鄰居廣播一個(gè)Hello報(bào)文,Hello報(bào)文里面包括節(jié)點(diǎn)的跳數(shù)、剩余能量和深度。每個(gè)節(jié)點(diǎn)收到Hello報(bào)文后,提取Hello報(bào)文的深度信息,并與鄰居節(jié)點(diǎn)作比較,如果Hello報(bào)文的深度小于它的深度,它將節(jié)點(diǎn)保存在它的鄰居信息表中。否則丟棄此報(bào)文,完成鄰居信息表的更新,每個(gè)節(jié)點(diǎn)用鏈路質(zhì)量算法計(jì)算節(jié)點(diǎn)鄰居間的鏈路質(zhì)量值,Hello報(bào)文如圖4所示。
如算法1所示,信息獲取階段每個(gè)傳感器節(jié)點(diǎn)在特定的時(shí)間間隔內(nèi)生成一個(gè)新的Hello數(shù)據(jù)包,并將其廣播給它的單跳鄰居,接著調(diào)用了接收Hello數(shù)據(jù)包來檢查信息,并調(diào)用鏈路質(zhì)量算法。
算法1:信息獲取階段
// 生成Hello數(shù)據(jù)包
(1)生成Hello數(shù)據(jù)包
(2)將節(jié)點(diǎn)ID、深度、剩余能量和節(jié)點(diǎn)跳數(shù)加入數(shù)據(jù)包
(3)廣播數(shù)據(jù)包
//接收Hello數(shù)據(jù)包
(4)if 節(jié)點(diǎn)i的深度大于數(shù)據(jù)包的節(jié)點(diǎn)深度 then
(5)if 節(jié)點(diǎn)ID不存在于節(jié)點(diǎn)i的NIT中 then
(6) 將數(shù)據(jù)包的節(jié)點(diǎn)加入節(jié)點(diǎn)i的NIT中
(7)else 更新節(jié)點(diǎn)i的NIT
(8)end if
(9) 計(jì)算節(jié)點(diǎn)i的鏈路質(zhì)量
(10)else
(11) 丟棄Hello數(shù)據(jù)包
(12)end if
在水下無線傳感器網(wǎng)絡(luò)中,節(jié)點(diǎn)的位置是不斷變化的,因此一些節(jié)點(diǎn)可能會(huì)進(jìn)入另一個(gè)節(jié)點(diǎn)的范圍,或者一些現(xiàn)有的鄰居超出了節(jié)點(diǎn)的范圍。所以在特定的時(shí)間間隔內(nèi)周期性地調(diào)用信息獲取階段,以此更新每個(gè)傳感器節(jié)點(diǎn)的NIT。
2.4.2 數(shù)據(jù)轉(zhuǎn)發(fā)階段
在此階段,數(shù)據(jù)包從源節(jié)點(diǎn)轉(zhuǎn)發(fā)到sink節(jié)點(diǎn)。源節(jié)點(diǎn)檢索它的鄰居信息表中的節(jié)點(diǎn)信息,并使用效用函數(shù)式(4)計(jì)算路由效益U,然后選擇路由效益最優(yōu)的節(jié)點(diǎn)作為轉(zhuǎn)發(fā)節(jié)點(diǎn)的最佳候選節(jié)點(diǎn)。然后發(fā)送方將所選節(jié)點(diǎn)的ID嵌入數(shù)據(jù)包進(jìn)行廣播,鄰居節(jié)點(diǎn)只有收到與自己節(jié)點(diǎn)ID相同的才會(huì)接收數(shù)據(jù)包,鄰居信息表如圖5所示
圖5 鄰居信息表
U=α(Mhcmax/Mhi)+β(Ei/Einit)+γ(LQ)
(4)
該方程基于3個(gè)不同的指標(biāo)計(jì)算路由收益,在本文中,深度低于發(fā)送方的節(jié)點(diǎn)具有更高的剩余能量和更好的鏈路質(zhì)量以及路徑最優(yōu),從而使路由效益最大化體現(xiàn)。
如算法2所示,數(shù)據(jù)轉(zhuǎn)發(fā)階段發(fā)送方節(jié)點(diǎn)檢索所有鄰居節(jié)點(diǎn)的信息,并用式(4)計(jì)算路由效益。然后發(fā)送方節(jié)點(diǎn)選擇路由效益最大的節(jié)點(diǎn)作為轉(zhuǎn)發(fā)器節(jié)點(diǎn)的最佳候選節(jié)點(diǎn)。發(fā)送方將所選節(jié)點(diǎn)的ID嵌入數(shù)據(jù)包,并將數(shù)據(jù)包廣播給其單跳鄰居。在接收到分組時(shí),接收節(jié)點(diǎn)將其ID與嵌入分組中的ID進(jìn)行比較,只有找到與其ID和嵌入在數(shù)據(jù)包中的ID匹配的節(jié)點(diǎn)才會(huì)接收數(shù)據(jù)包,而所有其它相鄰節(jié)點(diǎn)都會(huì)丟棄該數(shù)據(jù)包。該過程持續(xù)重復(fù),直到數(shù)據(jù)包到達(dá)其中一個(gè)接收器節(jié)點(diǎn)。此外,發(fā)送方節(jié)點(diǎn)嘗試以最優(yōu)最短的路徑傳輸數(shù)據(jù)包,在保證鏈路質(zhì)量穩(wěn)定的網(wǎng)絡(luò)狀態(tài)下選擇最優(yōu)的路徑,減少了轉(zhuǎn)發(fā)路徑過程中的網(wǎng)絡(luò)時(shí)延、能量消耗,提高了網(wǎng)絡(luò)生命周期。
算法2:數(shù)據(jù)轉(zhuǎn)發(fā)階段
//判斷節(jié)點(diǎn)ID是否匹配
(1)if 節(jié)點(diǎn)i的ID匹配數(shù)據(jù)包中的轉(zhuǎn)發(fā)ID then
//計(jì)算鄰居節(jié)點(diǎn)的路由效益
(2)U=α(Mhcmax/Mhi)+β(Ei/Einit)+γ(LQ)
(3)將節(jié)點(diǎn)的路由效益加入鄰居信息表中
(4)else 丟棄數(shù)據(jù)包
(5)按照節(jié)點(diǎn)的跳數(shù)和路由效益對(duì)鄰居節(jié)點(diǎn)進(jìn)行排序
(6)end if 選擇鄰居節(jié)點(diǎn)中,路由效益最大的節(jié)點(diǎn)作為轉(zhuǎn)發(fā)節(jié)點(diǎn)
在本文中,使用MATLAB實(shí)驗(yàn)平臺(tái)進(jìn)行仿真,分析了針對(duì)UWSNs提出的跳數(shù)協(xié)議的性能,基于實(shí)驗(yàn)環(huán)境,給出了平臺(tái)中的某些參數(shù)的假設(shè),見表2。
表2 實(shí)驗(yàn)平臺(tái)的參數(shù)設(shè)置
對(duì)于實(shí)驗(yàn)中所用到的對(duì)比參數(shù):端到端時(shí)延、數(shù)據(jù)包投遞率、網(wǎng)絡(luò)生命周期、能量消耗,進(jìn)行如下的說明:
(1)端到端時(shí)延(end-to-end delay):數(shù)據(jù)包在網(wǎng)絡(luò)中從源節(jié)點(diǎn)到目的節(jié)點(diǎn)或者目的節(jié)點(diǎn)到源節(jié)點(diǎn)花費(fèi)的時(shí)間,它是源節(jié)點(diǎn)到sink節(jié)點(diǎn)之間每個(gè)鏈路的傳輸延遲、傳播延遲和處理延遲的疊加。
(2)數(shù)據(jù)包投遞率(packet delivery ratio):源節(jié)點(diǎn)生成的數(shù)據(jù)包數(shù)量與接收器的數(shù)據(jù)包數(shù)量之間的比率。
(3)網(wǎng)絡(luò)生命周期(network life time):網(wǎng)絡(luò)與傳感器節(jié)點(diǎn)保持活動(dòng)狀態(tài)的總持續(xù)時(shí)間,它是網(wǎng)絡(luò)啟動(dòng)時(shí)間到網(wǎng)絡(luò)最后一個(gè)節(jié)點(diǎn)停電時(shí)間之間的時(shí)間間隔。
(4)能量消耗(energy consumption):數(shù)據(jù)傳輸后的初始能量與剩余能量之差。
如圖6所示,分別測(cè)量了HUF、REPBR、DBR和EEDBR的網(wǎng)絡(luò)壽命,并與之進(jìn)行比較??梢钥闯鯠BR的生命周期比HUF、REPBR、EEDBR短,這是由于在DBR中沒有考慮剩余能量度量,而是只依賴深度信息進(jìn)行下一個(gè)節(jié)點(diǎn)的選擇。因此較小深度的節(jié)點(diǎn)會(huì)更快地耗盡其能量,導(dǎo)致網(wǎng)絡(luò)崩潰。相比之下,EEDBR的網(wǎng)絡(luò)生存時(shí)間比DBR長,這是由于在EEDBR中利用剩余能量和深度信息,導(dǎo)致節(jié)點(diǎn)間能量消耗均衡。HUF和REPBR在網(wǎng)絡(luò)生存方面的性能優(yōu)于DBR和EEDBR,在REPBR中,每個(gè)發(fā)送節(jié)點(diǎn)都選擇剩余能量更高、鏈路質(zhì)量更好的轉(zhuǎn)發(fā)節(jié)點(diǎn),因此在網(wǎng)絡(luò)拓?fù)渲?,網(wǎng)絡(luò)生存時(shí)間都較長,但是HUF考慮了節(jié)點(diǎn)信息中跳數(shù)最小、剩余能量更高、鏈路質(zhì)量更好的最優(yōu)轉(zhuǎn)發(fā)節(jié)點(diǎn),所以網(wǎng)絡(luò)生存周期比REPBR更長,同時(shí)跳數(shù)的選擇計(jì)算也需要消耗一定的節(jié)點(diǎn)能量,所以HUF的生存時(shí)間略高于REPBR。DBR和EEDBR的網(wǎng)絡(luò)生存時(shí)間都是隨著節(jié)點(diǎn)數(shù)的增加而減少,DBR只利用深度信息來選擇最短路徑,而不考慮剩余能量,總是選擇深度最大的節(jié)點(diǎn),這樣可以更快地耗盡節(jié)點(diǎn)的能量,減少網(wǎng)絡(luò)的生存時(shí)間,EEDBR缺乏鏈路質(zhì)量指標(biāo),導(dǎo)致跳數(shù)增加,進(jìn)一步減少網(wǎng)絡(luò)生存期。REPBR和HUF隨著網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量的增加而獲得更穩(wěn)定的網(wǎng)絡(luò)生存期,這是因?yàn)橄乱粋€(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)的選擇是基于路由效益的,REPBR路由效益通過鏈路質(zhì)量和剩余能量計(jì)算,平衡能量消耗,HUF利用最小跳數(shù)、剩余能量和鏈路質(zhì)量,減少跳數(shù)轉(zhuǎn)發(fā)、平衡能量消耗,因此REPBR的網(wǎng)絡(luò)生存時(shí)間比HUF略短。
圖6 生命周期對(duì)比
如圖7所示,本文測(cè)量DBR、EEDBR、REPBR和HUF的能量消耗,結(jié)果表明,算法的能量消耗隨著節(jié)點(diǎn)數(shù)量的增加而增加。HUF的能耗明顯比DBR、EEDBR低,略低于REPBR。DBR沒有任何能量因子,只利用深度信息來選擇下一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn),是不斷增加能量消耗的主要原因,此外,冗余報(bào)文在DBR中傳輸時(shí),也會(huì)產(chǎn)生較高的能量消耗。EEDBR比DBR能耗低,這是因?yàn)镋EDBR不僅利用剩余能量和深度信息來選擇下一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn),還減少了報(bào)文的傳輸數(shù)量,以此均衡節(jié)點(diǎn)間的能量消耗。REPBR和HUF都具有較好的能量平衡能力,都利用了剩余能量和鏈路質(zhì)量度量,可以平衡節(jié)點(diǎn)之間的能量消耗和最佳的鏈路質(zhì)量,所以在網(wǎng)絡(luò)初始階段節(jié)點(diǎn)數(shù)為100、150、200時(shí),兩者的能量消耗幾乎持平,然后隨著節(jié)點(diǎn)數(shù)量的增加,由于REPBR沒有對(duì)下一轉(zhuǎn)發(fā)節(jié)點(diǎn)的跳數(shù)進(jìn)行處理,故傳輸路徑的長度增加,而HUF根據(jù)協(xié)議選擇跳數(shù)最小的轉(zhuǎn)發(fā)節(jié)點(diǎn),根據(jù)路由效益選擇全局最優(yōu)路徑,減少節(jié)點(diǎn)之間的轉(zhuǎn)發(fā),從而減少能量消耗,所以在節(jié)點(diǎn)數(shù)逐漸增加時(shí),HUF的能耗略低于REPBR,具有更低的能量消耗。
圖7 能量消耗對(duì)比
如圖8所示,可以看出,HUF的端到端時(shí)延比REPBR、EEDBR、DBR低。這是由于HUF減少了源節(jié)點(diǎn)到匯聚節(jié)點(diǎn)之間的轉(zhuǎn)發(fā)跳數(shù),結(jié)合剩余能量和鏈路質(zhì)量,選擇了全局最優(yōu)最短路徑,從而減少整個(gè)端到端網(wǎng)絡(luò)時(shí)延,總體性能優(yōu)于DBR和EEDBR,特別是在網(wǎng)絡(luò)密集,即網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量較多的情況下。隨著傳輸節(jié)點(diǎn)的增加,DBR只依賴深度信息轉(zhuǎn)發(fā)數(shù)據(jù),具有更高的端到端時(shí)延,EEDBR基于剩余能量的數(shù)據(jù)包保持時(shí)間,但是如果第一轉(zhuǎn)發(fā)節(jié)點(diǎn)的數(shù)據(jù)包丟失,接下來的保持節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包會(huì)造成相當(dāng)大的延遲。REPBR具有良好的鏈路質(zhì)量,但是對(duì)于鄰居節(jié)點(diǎn)之間的最短路徑選擇,它并沒有給出任何解決方案,因此,加入轉(zhuǎn)發(fā)過程的節(jié)點(diǎn)數(shù)量隨著節(jié)點(diǎn)數(shù)增加而增加,導(dǎo)致轉(zhuǎn)發(fā)路徑繁雜,跳數(shù)增加,進(jìn)而增加了端時(shí)延。
圖8 端到端時(shí)延對(duì)比
如圖9所示,隨著網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量的增加,HUF的數(shù)據(jù)包投遞率總體上比DBR、EEDBR和REPBR要高。DBR獲得的數(shù)據(jù)包傳遞率幾乎相同,這是因?yàn)楣?jié)點(diǎn)數(shù)量的增加,缺乏鏈路質(zhì)量指標(biāo),所以候選節(jié)點(diǎn)的數(shù)量也會(huì)增加。另外,DBR是基于深度信息,并且是基于接收者的路由方式,故增加了不必要的轉(zhuǎn)發(fā),導(dǎo)致丟包概率高。EEDBR根據(jù)剩余能量來選擇下一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn),導(dǎo)致跳數(shù)增加,進(jìn)而降低了數(shù)據(jù)包的傳遞率。REPBR利用剩余能量和鏈路質(zhì)量來選擇最短路徑,但在高密度網(wǎng)絡(luò)中,選擇最佳轉(zhuǎn)發(fā)節(jié)點(diǎn)的效率較低,導(dǎo)致數(shù)據(jù)包傳遞率相對(duì)偏低。在節(jié)點(diǎn)數(shù)目設(shè)置為150時(shí),HUF的數(shù)據(jù)包投遞率略低于REPBR,但是隨著節(jié)點(diǎn)數(shù)量的增加,HUF獲得了更高的數(shù)據(jù)包投遞率,這是因?yàn)镠UF在路由效益中考慮了鏈路質(zhì)量和可靠的節(jié)能最短路徑選擇,有效地實(shí)現(xiàn)了數(shù)據(jù)包的成功傳遞。例如,在路由效益計(jì)算中,選擇剩余能量最高、鏈路質(zhì)量最好、路徑傳輸最短的節(jié)點(diǎn),可以平衡能量消耗,獲得穩(wěn)定的鏈路,保證數(shù)據(jù)包的轉(zhuǎn)發(fā)。HUF算法選擇最短路徑,抑制不必要的轉(zhuǎn)發(fā),從而在合理的數(shù)據(jù)包投遞率下減少轉(zhuǎn)發(fā)的數(shù)據(jù)包總數(shù)。如圖所示,節(jié)點(diǎn)數(shù)為400時(shí),HUF比DBR、EEDBR、REPBR分別提高了約3%、10%、2%。
圖9 包投遞率對(duì)比
為解決水下無線傳感器網(wǎng)絡(luò)在節(jié)點(diǎn)不斷移動(dòng)和增加的情況下,節(jié)點(diǎn)轉(zhuǎn)發(fā)不是最優(yōu)最短路徑、能量消耗不均衡、端時(shí)延較高等問題,本文提出一種基于REPBR跳數(shù)效用轉(zhuǎn)發(fā)的改進(jìn)路由算法,該算法選擇下一個(gè)最優(yōu)轉(zhuǎn)發(fā)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),與目前最先進(jìn)的技術(shù)相比,顯著提高了UWSNs的性能。實(shí)驗(yàn)結(jié)果表明HUF算法提高了路由效益,數(shù)據(jù)包傳遞率更高、端到端時(shí)延更低、網(wǎng)絡(luò)生存周期更長和能量消耗更低。在未來的工作中,將考慮通過結(jié)合預(yù)計(jì)期望傳輸次數(shù)選擇更合適的轉(zhuǎn)發(fā)節(jié)點(diǎn),進(jìn)一步優(yōu)化路由協(xié)議的性能。