張 馳
(河南財(cái)經(jīng)政法大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,河南 鄭州 450046)
水下傳感網(wǎng)絡(luò)(underwater sensor networks,USNs)通過預(yù)先部署的傳感節(jié)點(diǎn)收集水域環(huán)境數(shù)據(jù),再將數(shù)據(jù)傳輸至飄浮于水面的聲納浮標(biāo),進(jìn)而實(shí)現(xiàn)對(duì)水域環(huán)境的監(jiān)測(cè)[1,2]。
然而,嚴(yán)苛的傳輸環(huán)境,增加了水域環(huán)境中的數(shù)據(jù)傳輸難度,給路由設(shè)計(jì)提出了挑戰(zhàn)。因此,僅依靠單個(gè)傳感節(jié)點(diǎn)難以完成數(shù)據(jù)的傳輸,需多個(gè)節(jié)點(diǎn)間協(xié)作,共同完成數(shù)據(jù)的傳輸。協(xié)作路由就是遵循多節(jié)點(diǎn)協(xié)作,共同完成數(shù)據(jù)傳輸?shù)乃枷搿?/p>
協(xié)作路由利用從一個(gè)或多個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)完成數(shù)據(jù)的傳輸。因此,目的節(jié)點(diǎn)可能會(huì)接收同一個(gè)數(shù)據(jù)包的一個(gè)或兩個(gè)復(fù)本,其中,一個(gè)復(fù)本是直接來自源節(jié)點(diǎn),而其它的復(fù)本來自轉(zhuǎn)發(fā)節(jié)點(diǎn)轉(zhuǎn)發(fā)的。目的節(jié)點(diǎn)融合所接收的數(shù)據(jù)包,然后依據(jù)特定算法處理這些數(shù)據(jù)包,進(jìn)而提取所需的信息,最終保證數(shù)據(jù)包能夠可靠地傳輸至目的節(jié)點(diǎn)[3]。
協(xié)作路由的獨(dú)特特性能夠緩解嚴(yán)苛的傳輸環(huán)境。由于目的節(jié)點(diǎn)融合了兩個(gè)或多個(gè)數(shù)據(jù)包復(fù)本,這就提高了目的節(jié)點(diǎn)成功接收數(shù)據(jù)包的概率,增加了數(shù)據(jù)包傳輸?shù)目煽啃?。然而,UWNs的傳統(tǒng)路由[4-7]協(xié)議在傳輸數(shù)據(jù)包過程中,并沒有引用協(xié)作路由概念。因此,這種策略無法保證數(shù)據(jù)包傳輸?shù)目煽啃浴?/p>
文獻(xiàn)[8-10]提出協(xié)作路由策略。然而,這些策略要求傳感節(jié)點(diǎn)的地理位置、傳感節(jié)點(diǎn)間的時(shí)間同步。在水域環(huán)境估算傳感節(jié)點(diǎn)的位置是非常困難的。
作為典型的基于節(jié)點(diǎn)深度值選擇的路由,能效-深度的路由(energy-efficient depth-based routing,EEDBR)[11]依據(jù)節(jié)點(diǎn)深度值決策路由。深度值越大表明節(jié)點(diǎn)離水面距離越大,將數(shù)據(jù)傳輸至位于水面的信宿的路徑越長(zhǎng)。但是,節(jié)點(diǎn)往往需要通過多跳轉(zhuǎn)發(fā)才能將數(shù)據(jù)傳輸至信宿。若只依據(jù)節(jié)點(diǎn)深度值難以選擇最優(yōu)的數(shù)據(jù)傳輸性能。而文獻(xiàn)[12]提出基于能效的最優(yōu)轉(zhuǎn)發(fā)節(jié)點(diǎn)路由(energy-efficient optimal relay selection,EEORS),其是從能效角度選擇最優(yōu)轉(zhuǎn)發(fā)節(jié)點(diǎn),其立足點(diǎn)是選擇轉(zhuǎn)發(fā)節(jié)點(diǎn)。但轉(zhuǎn)發(fā)節(jié)點(diǎn)的選擇與數(shù)據(jù)包的目的節(jié)點(diǎn)密集相關(guān)。
為此,本文提出基于深度和位置的協(xié)作路由(depth and location-based cooperative routing,DLCR)。DLCR路由依據(jù)節(jié)點(diǎn)的深度和位置信息決策路由。同時(shí),目的節(jié)點(diǎn)通過檢測(cè)信號(hào)的信噪比判斷是否能成功接收數(shù)據(jù)包,進(jìn)而保證數(shù)據(jù)包傳輸?shù)目煽柯?。仿真?shù)據(jù)表明,提出的DLCR路由有效地提高了數(shù)據(jù)包傳遞率。
對(duì)于水下通信數(shù)據(jù)包傳輸和數(shù)據(jù)包接收,引用典型的聲頻調(diào)制解調(diào)器。為此,引用文獻(xiàn)[13]的等式
SNR=SL-TL-NL+DI≥DT
(1)
其中,SNR表示接收端所接收的聲波的信號(hào)強(qiáng)度,單位為dBre μPa。而1 μPa=0.67×10-18Watts/m2。而SL、TL、NL和DI分別表示所發(fā)射聲波的等級(jí)(聲源等級(jí))、傳輸損耗、噪聲和方向指數(shù)。若聲源是全向時(shí),DI=0。
為了保證接收端的聲頻調(diào)制解調(diào)器能正常檢測(cè)聲波信號(hào),信號(hào)的SNR應(yīng)該高于或等于解調(diào)器的檢測(cè)閾值。聲源等級(jí)反映了聲源波的強(qiáng)度。傳輸距離越遠(yuǎn),傳輸損耗、噪聲就越能消弱聲波強(qiáng)度。
SL與信號(hào)強(qiáng)度IT相關(guān),其中IT表示離聲源1 m處的信號(hào)功率值。SL與IT的關(guān)系如式(2)所示
(2)
其中,IT的單位為1 μPa。若單位轉(zhuǎn)換成Watts/m2,而IT可表述為
IT=10SL/10×0.67×10-18
(3)
若傳輸單比特、且傳輸距離為d、聲源水深為H所消耗的功率PT(d)為
PT(d)=4π×d2×H×IT
(4)
因此,若傳輸k比特所消耗的能量ETX(k,d)
ETX(k,d)=PTX(d)×TTX
(5)
其中,TTX表示傳輸k比特?cái)?shù)據(jù)所需的時(shí)間,單位為s。
考慮三維立體化的網(wǎng)絡(luò)。節(jié)點(diǎn)以隨機(jī)方式部署于網(wǎng)絡(luò)。信宿位于網(wǎng)絡(luò)區(qū)域的頂部。傳感節(jié)點(diǎn)實(shí)時(shí)地感測(cè)數(shù)據(jù),然后傳輸至信宿,信宿再將數(shù)據(jù)傳輸至控制中心,如圖1所示。
圖1 網(wǎng)絡(luò)模型
傳感節(jié)點(diǎn)以聲波通信。而信宿既可利用聲波通信,又可利用無線射頻通信。而信宿以無線射頻通信方式向控制中心傳輸數(shù)據(jù)。
最初,信宿廣播HELLO包,其包含信宿的節(jié)點(diǎn)位置。一旦接收了HELLO包,節(jié)點(diǎn)就利用到達(dá)時(shí)間差(time of arrival,ToA)估計(jì)離信宿的距離。然后,節(jié)點(diǎn)利用自身壓力傳感器計(jì)算深度。最后,節(jié)點(diǎn)將自己的ID、深度和距離插入HELLO包,并轉(zhuǎn)播HELLO包,如圖2所示。
圖2 HELLO包格式
當(dāng)節(jié)點(diǎn)轉(zhuǎn)播HELLO包后,它就等待一段時(shí)間t0,并且在這個(gè)等待時(shí)間,監(jiān)聽是否有節(jié)點(diǎn)重播此HELLO包。若在這時(shí)間內(nèi),沒有收到HELLO包,說明自己無鄰居節(jié)點(diǎn)。
一旦收到來自鄰居節(jié)點(diǎn)轉(zhuǎn)播的HEELO包,節(jié)點(diǎn)就從此HELLO包中提取信息,包括鄰居節(jié)點(diǎn)的ID、深度和距離。并將這些信息存在自己的路由表(routing table)。此過程一直重復(fù),直到每個(gè)節(jié)點(diǎn)知曉自己的鄰居節(jié)點(diǎn)信息。
一旦準(zhǔn)備傳輸數(shù)據(jù)包,源節(jié)點(diǎn)首先判斷信宿是否位于自己的通信范圍。如果是,則直接向信宿傳輸;否則的話,源節(jié)點(diǎn)就以多跳方式向信宿傳輸數(shù)據(jù)包。
假定源節(jié)點(diǎn)為i,它的鄰居集為Ni。首先,源節(jié)點(diǎn)i選擇一個(gè)目的節(jié)點(diǎn)。選擇原則:選擇具有低深度、短距離的節(jié)點(diǎn)作為目的節(jié)點(diǎn),并且被選擇的節(jié)點(diǎn)的剩余能量大于零。假定節(jié)點(diǎn)j∈Ni,它的剩余能量為Ej。只有Ej大于零的節(jié)點(diǎn)才可能被選擇為目的節(jié)點(diǎn)和轉(zhuǎn)發(fā)節(jié)點(diǎn)。
此外,選擇低深度、短距離的節(jié)點(diǎn)作為目的節(jié)點(diǎn)和轉(zhuǎn)發(fā)節(jié)點(diǎn),原因在于:距離反映了離源節(jié)點(diǎn)的物理距離。離信宿越近,距離越短。除了考慮距離之后,還考慮了深度是因?yàn)榈途嚯x值不足以表明離信宿的距離。當(dāng)然,距離值包含了節(jié)點(diǎn)的深度信息。但兩節(jié)點(diǎn)間的距離與兩節(jié)點(diǎn)的深度值并不呈比例關(guān)系。本文所指的深度是指節(jié)點(diǎn)離水面的垂直距離。
可能存在這種情況:兩個(gè)或多個(gè)節(jié)點(diǎn)具有相同的深度,但可能它們離信宿距離并不相同。因此,同時(shí)考慮距離和深度值,能選擇最靠近信宿的節(jié)點(diǎn)作為目的節(jié)點(diǎn)。
令Depth(j)、Distance(j)分別表示節(jié)點(diǎn)j∈Ni的深度、離源節(jié)點(diǎn)距離。為此,先依據(jù)深度值對(duì)Ni按升序排序,并保留前5個(gè)節(jié)點(diǎn),假定這5個(gè)節(jié)點(diǎn)構(gòu)成的節(jié)點(diǎn)集為N′i。然后,再?gòu)腘′i中選擇選擇離源節(jié)點(diǎn)最近的節(jié)點(diǎn)作為源節(jié)點(diǎn)i的目的節(jié)點(diǎn)Di。
完成目的節(jié)點(diǎn)Di的選擇之后。接下來,選擇轉(zhuǎn)發(fā)節(jié)點(diǎn)Fi。由于轉(zhuǎn)發(fā)節(jié)點(diǎn)是為了給目的節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包,進(jìn)而完成協(xié)作路由。因此,將從Ni中選擇離目的節(jié)點(diǎn)Di最近的節(jié)點(diǎn)作為轉(zhuǎn)發(fā)節(jié)點(diǎn)。離目的節(jié)點(diǎn)越近,數(shù)據(jù)包到達(dá)目的節(jié)點(diǎn)的時(shí)間越短,這就能降低協(xié)作路由時(shí)延。
一旦完成了目的節(jié)點(diǎn)Di、轉(zhuǎn)發(fā)節(jié)點(diǎn)Fi的選擇后,源節(jié)點(diǎn)i就將目的節(jié)點(diǎn)Di和轉(zhuǎn)發(fā)節(jié)點(diǎn)Fi的ID號(hào)裝入HELLO包,并向鄰居節(jié)點(diǎn)廣播。一旦收到來自源節(jié)點(diǎn)的HELLO包,節(jié)點(diǎn)就檢測(cè)自己的ID號(hào),如果自己既不是轉(zhuǎn)發(fā)節(jié)點(diǎn),也不是目的節(jié)點(diǎn),就不參與路由。反之,若自己成為轉(zhuǎn)發(fā)節(jié)點(diǎn)或目的節(jié)點(diǎn),就參與路由,并轉(zhuǎn)發(fā)數(shù)據(jù)包。
在源節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí),盡管鄰居節(jié)點(diǎn)未參與路由,但是它們可能也會(huì)監(jiān)聽到數(shù)據(jù)包的轉(zhuǎn)發(fā)。但DLCR路由所選擇的轉(zhuǎn)發(fā)節(jié)點(diǎn)和目的節(jié)點(diǎn)參與路由。令ysd表示目的節(jié)點(diǎn)Di從源節(jié)點(diǎn)接收的信號(hào)[14]
(6)
其中,Ps表示源節(jié)點(diǎn)的發(fā)射功率,而x表示所傳輸?shù)男盘?hào)。hsd表示從源節(jié)點(diǎn)至目的節(jié)點(diǎn)的信道增益。nsd為噪聲。
而轉(zhuǎn)發(fā)節(jié)點(diǎn)Fi從源節(jié)點(diǎn)所接收的信號(hào)表示為ysr,其定義如式(7)所示[12]
(7)
相應(yīng)地,hsr、nsr分別表示從源節(jié)點(diǎn)至轉(zhuǎn)發(fā)節(jié)點(diǎn)信道的增益、噪聲。
只要接收到來自源節(jié)點(diǎn)發(fā)送的信號(hào),轉(zhuǎn)發(fā)節(jié)點(diǎn)Fi先對(duì)信號(hào)處理,再向目的節(jié)點(diǎn)轉(zhuǎn)發(fā)。因此,目的節(jié)點(diǎn)將源節(jié)點(diǎn)和轉(zhuǎn)發(fā)節(jié)點(diǎn)轉(zhuǎn)發(fā)的信號(hào)進(jìn)行整合
(8)
其中,yrd表示目的節(jié)點(diǎn)從轉(zhuǎn)發(fā)節(jié)點(diǎn)所接收的信號(hào)。Pr為轉(zhuǎn)發(fā)節(jié)點(diǎn)所發(fā)射的功率,hrd為信道增益,nrd為噪聲。如圖3所示,圖3描述了源節(jié)點(diǎn)、轉(zhuǎn)發(fā)節(jié)點(diǎn)和目的節(jié)點(diǎn)三者之間的信號(hào)傳輸關(guān)系。
圖3 源節(jié)點(diǎn)、轉(zhuǎn)發(fā)節(jié)點(diǎn)和目的節(jié)點(diǎn)間的信號(hào)傳輸
hsd、hsr和hrd均反映無線鏈路的特性,它們?yōu)榱憔档母咚闺S機(jī)變量,且方差為σ2,如式(9)所示[13]
σ2=ηd-α
(9)
其中,d為傳輸距離、α為路徑損耗,而η為信號(hào)傳輸指數(shù)。
此外,式(8)中β為放大系數(shù),其定義如式(10)所示
(10)
目的節(jié)點(diǎn)依據(jù)最大融合技術(shù)(maximum-ratio-combining,MRC)[15],將它直接從源節(jié)點(diǎn)接收的信號(hào)和從轉(zhuǎn)發(fā)節(jié)點(diǎn)轉(zhuǎn)發(fā)的信號(hào)進(jìn)行融合。因此,MRC的輸出SNRγAF,如式(11)所示
(11)
然后,目的節(jié)點(diǎn)將γAF與閾值γth進(jìn)行比較。如果γAF大于γth,則表明目的節(jié)點(diǎn)已成功接收了數(shù)據(jù)包,再向源節(jié)點(diǎn)發(fā)送確認(rèn)包ACK。
首先,進(jìn)行網(wǎng)絡(luò)初始化。完成后,源節(jié)點(diǎn)感測(cè)數(shù)據(jù),然后源節(jié)點(diǎn)發(fā)送HELLO包。再進(jìn)入鄰居節(jié)點(diǎn)發(fā)現(xiàn)階段。隨后,進(jìn)行目的節(jié)點(diǎn)的搜索過程。一旦找到目的節(jié)點(diǎn),就發(fā)現(xiàn)轉(zhuǎn)發(fā)節(jié)點(diǎn)。
一旦確認(rèn)了轉(zhuǎn)發(fā)節(jié)點(diǎn),轉(zhuǎn)發(fā)節(jié)點(diǎn)也向目的節(jié)點(diǎn)傳輸數(shù)據(jù)。最后,目的節(jié)點(diǎn)檢測(cè)信噪比,是否大于閾值。如果大于閾值,表明目的節(jié)點(diǎn)能夠正常接收數(shù)據(jù)包,在這種情況下,目的節(jié)點(diǎn)就向信宿傳輸數(shù)據(jù)包,否則的話,源節(jié)點(diǎn)繼續(xù)向目的節(jié)點(diǎn)傳輸數(shù)據(jù)包。數(shù)據(jù)包傳輸?shù)恼麄€(gè)過程如圖4所示。
圖4 DLCR路由數(shù)據(jù)包轉(zhuǎn)發(fā)流程
利用MATLAB軟件分析DLCR路由性能??紤]500 m×500 m×500 m三維立體區(qū)域,250個(gè)傳感節(jié)點(diǎn)大耳機(jī)分布于監(jiān)測(cè)區(qū)域。每個(gè)節(jié)點(diǎn)引用UWM2000解調(diào)器[14]進(jìn)行通信,且數(shù)據(jù)率為10 kpbs,傳輸模式、接收模式和空閑模式下的功率消耗分別為2 W、0.8 W和8 mW。
每個(gè)節(jié)點(diǎn)的通信半徑為200 m,節(jié)點(diǎn)發(fā)送的HELLO包大小為10字節(jié)。數(shù)據(jù)包尺寸為50字節(jié)。同時(shí),引用802.11-DYNAV作為MAC層協(xié)議。
選擇EEDBR和EEORS路由作為參照,并對(duì)比分析它們的路由性能及能耗。此外,引用基于簇結(jié)構(gòu)的無線傳感網(wǎng)絡(luò)中的輪(Round)概念,將時(shí)間劃分同樣長(zhǎng)的時(shí)段,每一段稱為一輪(Round),每一輪由1000個(gè)時(shí)隙構(gòu)成,每個(gè)時(shí)隙為0.18 s。因此,接下來,分析總體能量消耗、端到端傳輸延時(shí)和數(shù)據(jù)包傳遞率隨輪的變化情況。
3.2.1 端到端傳輸時(shí)延
圖5顯示了DLCR、EECOR和EEDBR路由的端到端傳輸時(shí)延。從圖5可知,當(dāng)進(jìn)行了100輪后,3個(gè)協(xié)議的端到端傳輸時(shí)延趨于穩(wěn)定。相比于EECOR和EEDBR路由,DLCR路由的端到端時(shí)延較高,在運(yùn)行250輪后,DLCR路由的端到端傳輸時(shí)延為3500 s,比EEDBR路由的時(shí)延增加了約400 s。原因在于:DLCR路由屬于協(xié)作路由。協(xié)作路由引用確認(rèn)包機(jī)制,提供了可靠的數(shù)據(jù)包傳輸,這必須增加傳輸時(shí)延。
圖5 端到端傳輸時(shí)延
3.2.2 數(shù)據(jù)包傳遞率
圖6顯示了DLCR協(xié)議的數(shù)據(jù)包傳遞率。從圖6可知,DLCR路由的數(shù)據(jù)包傳遞率最高。原因在于:DLCR路由引用數(shù)據(jù)包傳輸?shù)目煽繖C(jī)制,提高了數(shù)據(jù)包傳輸?shù)目煽柯?。此外,從圖6可知,最初3個(gè)協(xié)議的數(shù)據(jù)包傳遞率較高,當(dāng)運(yùn)時(shí)至50輪后,數(shù)據(jù)包傳遞率快速下降。這主要是因?yàn)椋弘S著時(shí)間的輪移,節(jié)點(diǎn)能耗逐步增加,導(dǎo)致部分節(jié)點(diǎn)能量消耗殆盡。
圖6 數(shù)據(jù)包傳遞率
3.2.3 能量消耗
最后,分析了路由的能量消耗。從圖7可知,DLCR協(xié)議的能耗略高于EEORS和EEDBR路由。結(jié)合圖6可知,DLCR路由以高的能耗換取高的數(shù)據(jù)包傳遞率。此外,注意到,當(dāng)經(jīng)歷了250輪后,3個(gè)協(xié)議的能量消耗一致。
圖7 能量消耗
針對(duì)水下傳感網(wǎng)絡(luò)的數(shù)據(jù)傳輸問題,提出DCLR的協(xié)作路由。通過協(xié)作數(shù)據(jù)傳輸,緩解水域的嚴(yán)苛信道環(huán)境。DCLR路由利用傳感節(jié)點(diǎn)的位置信息、距離以及能量信息,擇優(yōu)選擇轉(zhuǎn)發(fā)節(jié)點(diǎn)和目的節(jié)點(diǎn),進(jìn)而提高協(xié)作通信的性能。相比于EEDBR和EEORS路由,提出的DCLR路由的數(shù)據(jù)包傳遞率得到有效提高。然而,從實(shí)驗(yàn)數(shù)據(jù)可知,DCLR路由的能耗和時(shí)延較高,這將是后期研究的重點(diǎn)。