尹 鵬,葉 玲
(1.湖北工程學院,湖北 孝感 432000;2.湖北工程學院,湖北 孝感 432000)
近期,水下傳感網(wǎng)絡(Underwater Sensor Networks, USNs)被廣泛應用于潛艇跟蹤、港口監(jiān)控等水面應用[1-2]。USNs由部署于水下的傳感節(jié)點和飄浮于水面的聲納浮標組成。傳感節(jié)點感測水下環(huán)境數(shù)據(jù),然后以聲信號傳輸至水面上的浮標(信宿)。收集感測數(shù)據(jù)后,浮標再以無線方式傳輸至控制中心。
水域通信對無線射頻信號有嚴重的衰落影響。因此,需要利用無線射頻通信和聲通信兩種方式完成數(shù)據(jù)傳輸。此外,考慮到水域通信的嚴厲傳輸環(huán)境,只有單一節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包難以成功傳輸數(shù)據(jù)包。而由多個節(jié)點協(xié)作轉(zhuǎn)發(fā)數(shù)據(jù)能夠提高數(shù)據(jù)包傳輸?shù)某晒β省⒂啥鄠€節(jié)點協(xié)作轉(zhuǎn)發(fā)的路由,也稱為協(xié)作路由。
在協(xié)作路由中,接收節(jié)點能夠從兩個不同的節(jié)點接收到同一個數(shù)據(jù)包,一個為數(shù)據(jù)包本身,另一個數(shù)據(jù)包為數(shù)據(jù)包的復本。但是傳統(tǒng)的UWNs路由并沒有引用協(xié)作概念[4-7]。
文獻[8-10]針對USNs環(huán)境,提出了通過轉(zhuǎn)發(fā)節(jié)點協(xié)作傳輸數(shù)據(jù)包。但是這些策略在決策路由時,需要節(jié)點的位置信息,并且要求節(jié)點同步。這增加了路由開銷,特別在是水域環(huán)境獲取節(jié)點位置是非常困難的。
此外,Wahid等[12]提出了能量效率和水壓 (Energy-Efficient Depth-based Routing, EED) 路由。EED路由通過節(jié)點的水壓值選擇轉(zhuǎn)發(fā)節(jié)點。水壓越大,表明離水面越遠,數(shù)據(jù)傳輸路徑就越長,這不利于數(shù)據(jù)包的傳輸。因此,可將節(jié)點水壓值作為決策路由的參數(shù)。
然而,EED路由只考慮了節(jié)點的水壓值。只依據(jù)節(jié)點水壓值選擇轉(zhuǎn)發(fā)節(jié)點,并不能最優(yōu)性能。類似地,Khan等[13]提出能效的最優(yōu)轉(zhuǎn)發(fā)節(jié)點 (Energy-Efficient Optimal Relay Selection, EOS) 路由。EOS路由從傳感節(jié)點的能量信息,選擇轉(zhuǎn)發(fā)節(jié)點,避免選擇能量過低的節(jié)點作為轉(zhuǎn)發(fā)節(jié)點。但是,EED和EOS并沒有引用協(xié)作路由概念。
為此,結合EED和EOS路由的優(yōu)勢,提出基于轉(zhuǎn)發(fā)節(jié)點協(xié)作的數(shù)據(jù)傳輸策略FCT。FCT策略先利用傳感節(jié)點的水壓和距離信息,選擇下一跳轉(zhuǎn)發(fā)節(jié)點,然后從依據(jù)所選擇的轉(zhuǎn)發(fā)節(jié)點,尋找它的協(xié)作轉(zhuǎn)發(fā)節(jié)點,再由這兩個轉(zhuǎn)發(fā)節(jié)點共同完成數(shù)據(jù)包的傳輸,進而克服水域環(huán)境中低的數(shù)據(jù)包傳輸成功率的困境。實驗數(shù)據(jù)表明,提出的FCT策略能夠有效地提高數(shù)據(jù)包傳輸成功率。
考慮如圖1所示的網(wǎng)絡模型,在水域環(huán)境Ω內(nèi)隨機部署m個傳感節(jié)點s={s1,s2,…,sm}。這些傳感節(jié)點以聲通信方式傳輸數(shù)據(jù)。它們實時地感測數(shù)據(jù),并向位于水位的信宿傳輸。當信宿接收了數(shù)據(jù)后,就向控制中心傳輸。
圖1 網(wǎng)絡模型
引用聲頻調(diào)制解調(diào)器[13]分析水域環(huán)境的數(shù)據(jù)傳輸,如式(1)所示:
ρSNR=λSL-λTL-λNL+λDI
(1)
其中ρSNR表示接收端所接收的聲波的信噪比,且單位為dBreμPa(1μPa=0.67×10-18Watts/m2)。λSL、λTL、λNL和λDI分別表示聲源等級、傳輸損耗、噪聲和方向指數(shù)。如果是全向傳輸信號,則λDI等于1,否則為零。
當ρSNR大于TSNR,則接收端能正常解調(diào)信號,獲取原始信號,其中TSNR表示信號檢測閾值。
用單位信號強度IT表示λSL,如式(2)所示。其中IT表示離發(fā)送端(聲源)為1 m時的信號強度,且單位為1 μPa。
(2)
如果引用Watts/m2單位,結合式(2)可得:
IT=10SL/10×0.67×10-18
(3)
接下來,分析節(jié)點的能耗。令H表示聲源的深度。若聲信號(單比特數(shù)據(jù))從聲源開始,傳輸了d米后,消耗了功率PT(d)可表示為:
PT(d)=4π×d2×H×IT
(4)
PT(d)表示傳輸單比特數(shù)據(jù),所消耗的能量??捎檬?5)計算傳輸k比特所消耗的能量ETX(k,d):
ETX(k,d)=PTX(d)×t
(5)
其中t表示傳輸時間。
最初,信宿周期地廣播Hello包,其包含信宿ID(Sink_ID)和位置(Sink_P)。傳感節(jié)點(假定為傳感節(jié)點si)一旦接收了Hello包,就利用信號的強度RSSI值估計離信宿距離(di),其中i=1,2,…,m。
隨后,傳感節(jié)點si依據(jù)壓力傳感節(jié)點獲取水壓值pi,并將水壓值pi插入到Hello包。同時,也將距離di插入到Hello包。再轉(zhuǎn)播此Hello包,其格式如表1所示。其中ID_S表示傳感節(jié)點ID號、Depth表示傳感節(jié)點的水壓(深度)。而Distance表示離信宿距離。
表1 Hello包格式
轉(zhuǎn)播Hello包有兩個目的:(1)獲取信宿信息;(2)獲取周邊鄰居節(jié)點的信息。傳感節(jié)點si轉(zhuǎn)播了Hello包,就進入監(jiān)聽狀態(tài)。若收到其他節(jié)點轉(zhuǎn)播的Hello包,就記錄該節(jié)點的ID_S、Depth,并將它們存在于鄰居表中,并將相應的鄰居節(jié)點加入鄰居集Ni中。其中Ni表示傳感節(jié)點si的鄰居集。
當傳感節(jié)點有數(shù)據(jù)Data要傳輸時,首先判斷自己是否位于信宿一跳通信范圍內(nèi)。仍以傳感節(jié)點si為例。令Datai表示傳感節(jié)點si需要傳輸?shù)臄?shù)據(jù)。首先,傳感節(jié)點si判斷式(6),若滿足式(6)就直接向信宿傳輸,不需要再尋找下一跳轉(zhuǎn)發(fā)節(jié)點。
di (6) 若不滿足式(6),則表明需要通過多跳通信方式傳輸數(shù)據(jù)。因此,需要尋找下一跳轉(zhuǎn)發(fā)節(jié)點。 (7) 一旦選擇了下一跳轉(zhuǎn)發(fā)節(jié)點sf、協(xié)作節(jié)點sc,傳感節(jié)點si就將sf和sc載入數(shù)據(jù)包的首部,如表2所示。然后,傳感節(jié)點si就轉(zhuǎn)發(fā)數(shù)據(jù)Datai。 表2 數(shù)據(jù)包格式 一旦給數(shù)據(jù)包指定了轉(zhuǎn)發(fā)節(jié)點和協(xié)作節(jié)點,該數(shù)據(jù)包只能由這兩個節(jié)點轉(zhuǎn)發(fā)。即只能由這兩個節(jié)點參與該數(shù)據(jù)包的轉(zhuǎn)發(fā),如圖2所示。 圖2 協(xié)作轉(zhuǎn)發(fā)示意圖 從圖2可知,下一跳轉(zhuǎn)發(fā)節(jié)點從兩條路徑收到數(shù)據(jù)包Datai。接下來,從信號角度分析這兩條路徑的信道增益。首先,令yd表示轉(zhuǎn)發(fā)節(jié)點sf從傳感節(jié)點si直接接收的信號,如式(8)所示[14]: (8) 其中Pi表示傳感節(jié)點si傳輸數(shù)據(jù)包的的功率。hif表示直接傳輸通道的沖激響應。而x、nd分別表示信號、噪聲。 相應地,令yc表示協(xié)作節(jié)點sc從傳感節(jié)點si所接收的信號,其定義如式(9)所示[15]: (9) 類似地,hic、nc分別表示協(xié)作傳輸通道的信道增益和噪聲。協(xié)作節(jié)點再將信號yc傳輸?shù)较乱惶D(zhuǎn)發(fā)節(jié)點sf。因此,下一跳轉(zhuǎn)發(fā)節(jié)點從協(xié)作節(jié)點所接收的信號ycf: (10) 其中Pc、hcf分別表示協(xié)作節(jié)點sc的轉(zhuǎn)發(fā)功率、從協(xié)作節(jié)點至下一跳轉(zhuǎn)發(fā)節(jié)點的通道增益,且ncf為通道噪聲。而β為放大系數(shù),可通過式(11)計算: β=(Pc|hcf|2+σ2)-1/2 (11) 其中σ為噪聲變量的方差?;仡櫟绞?8)、(9)和(10),它們式中的增益(hif、hic、hcf)反映信道特性。假定它們?yōu)楦咚闺S機變量,且服從零均值、方差為σ2的分布。 最后,下一跳轉(zhuǎn)發(fā)節(jié)點將從兩路所接收的信號進行融合。引用最大融合技術(Maximum-ratio-combining, MRC)原則[16],將兩路信號SNR進行融合。令ρMRC表示融合后的SNR: (12) 其中ρif、ρic和ρcf分別表示傳感節(jié)點si至轉(zhuǎn)發(fā)節(jié)點sf、傳感節(jié)點si至協(xié)作節(jié)點sc和協(xié)作節(jié)點sc至轉(zhuǎn)發(fā)節(jié)點sf的信噪比,它們的定義如式(13)所示: (13) 轉(zhuǎn)發(fā)節(jié)點sf就將ρMRC與閾值TMRC進行。如果ρMRC大于TMRC,則說明轉(zhuǎn)發(fā)節(jié)點成功接收了數(shù)據(jù)包。否則,要求重傳。 為了更好地分析FCT路由,利用Matlab建立仿真平臺。在Ω=5003m3區(qū)域內(nèi)隨機部署N=250個傳感節(jié)點。具體的仿真參數(shù)如表3所示。 表3 仿真參數(shù) 選擇EED路由和EOS路由作為參考,并進行同步仿真。分析EED、EOS和FCT路由的路由性能和能耗。 將時間劃分不同輪(Round)。所謂Round是指一個或多個節(jié)點向信宿傳輸數(shù)據(jù)包的時間。因此,接下來,分析總體能量消耗、端到端傳輸時和數(shù)據(jù)包傳遞率隨輪的變化情況。 首先,分析FCT路由的數(shù)據(jù)包傳輸時延。從圖3可知,數(shù)據(jù)包傳輸時延隨輪數(shù)的增加而上升,當運行了100輪后,F(xiàn)CT路由的傳輸時延趨于穩(wěn)定,接近于3500 s。相比于EOS和EED路由,F(xiàn)CT路由的傳輸時延有一定幅度地增加。例如,在運行至150輪時,F(xiàn)CT路由的傳輸時延為3500 s,而EOS和EED路由的傳輸時延分別約2750 s和約3100 s。造成FCT路由時延增加大的原因在于:FCT路由引用協(xié)作轉(zhuǎn)發(fā)概念,每個數(shù)據(jù)包都需要兩路傳輸,這增加了一定的傳輸時延。 圖3 端到端傳輸時延 接下來,分析三個路由的數(shù)據(jù)包傳遞率。從圖4可知,相比EOS和EED路由,F(xiàn)CT路由的數(shù)據(jù)包傳遞率得到有效提高。當運行了100輪后,三個路由的數(shù)據(jù)包傳遞率趨于穩(wěn)定。EOS路由、EED路由和FCT路由的數(shù)據(jù)包傳遞率分別趨于約0.43、約0.375和約0.558。數(shù)據(jù)包傳遞率的提高,這要歸功于FCT路由采用了協(xié)作路由。通過協(xié)作節(jié)點的轉(zhuǎn)發(fā),提高了數(shù)據(jù)包傳遞率。 圖4 數(shù)據(jù)包傳遞率 最后,分析各路由中傳感節(jié)點的能量消耗。從圖5可知,隨著運行輪數(shù)的增加,能耗逐漸增加,特別是在初期(前100輪),能耗增加迅速。但運行了150輪后,三個路由協(xié)議的能量消耗趨于平衡。相比EOS和EED路由的能耗,F(xiàn)CT路由的能耗略有增加。原因在于:FCT路由采用了重傳機制,當數(shù)據(jù)包傳輸不成功時,就需重傳數(shù)據(jù)包。這加大了能量消耗。 針對USNs的數(shù)據(jù)傳輸問題,提出基于轉(zhuǎn)發(fā)節(jié)點的協(xié)作路由FCT。FCT路由利用鄰居節(jié)點的水壓值和位置值擇優(yōu)選擇下一跳轉(zhuǎn)發(fā)節(jié)點,再依據(jù)轉(zhuǎn)發(fā)節(jié)點選擇協(xié)作節(jié)點。通過協(xié)作節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包,提高數(shù)據(jù)包的傳輸成功率。仿真數(shù)據(jù)表明,相比于同類路由,F(xiàn)CT的數(shù)據(jù)包傳遞率得到有效提高。 此外,觀察仿真數(shù)據(jù)不難發(fā)現(xiàn),F(xiàn)CT路由的數(shù)據(jù)傳輸時延、能耗性能并沒有得到提升。后期,將優(yōu)化路由,控制數(shù)據(jù)傳輸時延及能耗,這將是后期的工作方向。2.3 協(xié)作轉(zhuǎn)發(fā)
3 性能分析
3.1 仿真環(huán)境
3.2 端到端傳輸時延
3.3 數(shù)據(jù)包傳遞率
3.4 能耗
4 結束語