吳名星,康松林,陶志勇,謝英輝
(1.長沙民政職業(yè)技術(shù)學(xué)院軟件學(xué)院,長沙 410004;2.中南大學(xué)信息科學(xué)與工程學(xué)院,長沙 410083)
近期,水下傳感網(wǎng)絡(luò)USNs(Underwater Sensor Networks)被廣泛應(yīng)用于潛艇跟蹤、港口監(jiān)控等水面應(yīng)用[1-2]。USNs由部署于水下的傳感節(jié)點和飄浮于水面的聲納浮標(biāo)組成。傳感節(jié)點感測水下環(huán)境數(shù)據(jù),然后以聲信號傳輸至水面上的浮標(biāo)。收集感測數(shù)據(jù)后,浮標(biāo)再以無線方式傳輸至控制中心。USNs典型的拓撲結(jié)構(gòu)如圖1所示。
水介質(zhì)對無線信號有強的吸收性,無線信號在水域通信環(huán)境衰減快[3]。而光纖通信在水域環(huán)境具有嚴(yán)重散射。因此,光纖和無線射頻通信并不適合水下節(jié)點間的通信。而聲通信被認為是水下節(jié)點間通信的最有效方式。然而,聲通信也存在帶寬有限、動態(tài)傳輸時延、高通信能耗等不足。
圖1 USNs的典型結(jié)構(gòu)
由于聲通信的特性,基于無線網(wǎng)絡(luò)[4]設(shè)計的傳統(tǒng)先應(yīng)式和反應(yīng)式路由協(xié)議在聲通信環(huán)境下的性能差,比如時延大,丟包率高。相比于其他路由協(xié)議,機會路由OR(Opportunistic Routing)被認為是提高鏈路可靠性和數(shù)據(jù)包傳遞率的有效技術(shù)之一[5-6]。OR協(xié)議通過多跳完成數(shù)據(jù)的傳遞。具體而言,依據(jù)一些標(biāo)準(zhǔn),如期望傳輸次數(shù)、數(shù)據(jù)包優(yōu)先權(quán)、時延等,發(fā)送節(jié)點將它的鄰居節(jié)點中一部分節(jié)點作為下一跳轉(zhuǎn)發(fā)節(jié)點,將這些預(yù)備作為下一跳轉(zhuǎn)發(fā)節(jié)點稱為下一跳轉(zhuǎn)發(fā)候選節(jié)點NFCNs(Next-hop Forwarding Candidate Nodes)。隨后,依據(jù)不同的傳輸特性,對NFCNs進行轉(zhuǎn)發(fā)優(yōu)先排序。只有當(dāng)高優(yōu)先權(quán)的節(jié)點都傳輸失敗后,低優(yōu)先權(quán)的節(jié)點才能轉(zhuǎn)發(fā)數(shù)據(jù)包。如果高優(yōu)先權(quán)節(jié)點的傳輸成功,低優(yōu)先權(quán)的節(jié)點也轉(zhuǎn)發(fā)數(shù)據(jù)包,就增加了數(shù)據(jù)包的冗余量,浪費了網(wǎng)絡(luò),也加大節(jié)點能耗。
通過選擇一部分節(jié)點作為NFCNs,OR協(xié)議降低了數(shù)據(jù)包丟失率和數(shù)據(jù)包重傳次數(shù)。原因在于:一旦數(shù)據(jù)包丟失,只有所有的NFCNs節(jié)點都沒有接收到數(shù)據(jù)包,再進行重傳,進而減少了重傳次數(shù),降低了能耗。因此,OR協(xié)議在能量有限的USNs網(wǎng)絡(luò)得到廣泛應(yīng)用。
OR協(xié)議采用機會策略選擇下一跳轉(zhuǎn)發(fā)節(jié)點,若傳輸失敗,通常采用攜帶轉(zhuǎn)發(fā)策略,而不是盲目的重傳。因此,OR協(xié)議降低重傳次數(shù),減少了能耗,但是它并沒有著重強調(diào)傳感節(jié)點的能量消耗問題。事實上,目前多數(shù)基于USNs的OR協(xié)議缺少一個機制:對NFCNs內(nèi)的節(jié)點的轉(zhuǎn)發(fā)優(yōu)先權(quán)進行輪換的機制。若不進行輪換,會導(dǎo)致轉(zhuǎn)發(fā)優(yōu)先權(quán)高的節(jié)點經(jīng)常在轉(zhuǎn)發(fā)數(shù)據(jù)包,這就使得這些節(jié)點的能量容易過早耗盡[7]。因此,必須引用輪換機制,即實時計算節(jié)點的轉(zhuǎn)發(fā)優(yōu)先級,并進行更新,平衡NFCNs內(nèi)的節(jié)點轉(zhuǎn)發(fā)負擔(dān),進而平衡節(jié)點間的能耗。
為此,提出基于輪換轉(zhuǎn)發(fā)優(yōu)先級的機會路由RFP-OR(Rotating Forwarding Priority-based OR)。RFP-OR路由先構(gòu)建候選轉(zhuǎn)發(fā)節(jié)點,再利用數(shù)據(jù)包傳遞率、能耗和水壓值估計節(jié)點的適度值,并設(shè)置各節(jié)點的轉(zhuǎn)發(fā)優(yōu)先級。同時,通過更新節(jié)點適度值,從而實現(xiàn)對節(jié)點轉(zhuǎn)發(fā)優(yōu)先級的輪換。仿真數(shù)據(jù)表明,提出的RFP-OR協(xié)議能夠有效地降低能耗,增加活動節(jié)點數(shù)。
引用圖1所示的網(wǎng)絡(luò)結(jié)構(gòu),整個網(wǎng)絡(luò)的節(jié)點集為N,每個節(jié)點的通信半徑為rc,其中傳感節(jié)點集表示為Nn={n1,n2,…,n|Nn|}、聲納浮標(biāo)集表示為Ns={s1,s2,…,s|Ns|},即N=Nn∪Ns。傳感節(jié)點實時地感測水域數(shù)據(jù),然后周期地將感測數(shù)據(jù)傳輸至浮標(biāo)。而浮標(biāo)再通過無線通信方式將數(shù)據(jù)傳輸至控制中心。
本文引用Urick聲信道模型[8]估計兩通信節(jié)點間的鏈路可靠性,并利用數(shù)據(jù)包傳遞率表征鏈路可靠性,具體過程如下。
依據(jù)此模型,在相距為d,傳輸頻率為f的路徑衰落A(d,f):
A(d,f)=dka(f)
(1)
式中:k為擴頻因子。在實際場景中,一般k=1.5。而a(f)為吸收因子,其定義如式(2)所示[9]:
(2)
接下來,估計在距離d的傳輸信道上的平均信噪比SNR(Signal-to-Noise Ratio):
(3)
式中:Eb表示每比特的平均傳輸能量。N0為加性高斯噪聲信道的噪聲功率密度。依據(jù)文獻[10-11],引用Rayleigh衰落表征尺度衰落,SNR服從式(4)的概率分布:
(4)
因此,產(chǎn)生誤碼的概率可表示為:
(5)
式中:pe(X)表示在信噪比X下的誤碼率的概率。引用BPSK調(diào)制模式。在BPSK中,每個符號攜帶一比特。依據(jù)文獻[12],當(dāng)傳輸距離為d時,產(chǎn)生一個比特誤碼的概率pe(d)為:
(6)
最后,傳輸m比特的數(shù)據(jù)包的傳遞概率p(d,m)定義如式(7)所示,其中d表示傳輸距離、m為比特數(shù)。
p(d,m)=[1-pe(d)]m
(7)
RFP-OR路由通過輪換下一跳轉(zhuǎn)發(fā)候選節(jié)點NFCNs內(nèi)的轉(zhuǎn)發(fā)優(yōu)先權(quán),平衡節(jié)點間的能耗。與其他OR協(xié)議類似,RFP-OR路由主要由NFCNs的構(gòu)建、選擇下一跳轉(zhuǎn)發(fā)節(jié)點和數(shù)據(jù)包的傳輸三個階段構(gòu)成。
RFP-OR路由考慮數(shù)據(jù)包傳遞率、剩余能量和水壓差值三方面信息,構(gòu)建NFCNs。
2.1.1 周期的beacon包
為了收集傳感節(jié)點的相關(guān)信息,傳感節(jié)點周期地傳播beacon包,其包含發(fā)送節(jié)點的ID,節(jié)點的剩余能量和水下深度(水壓)。當(dāng)收到鄰居節(jié)點的beacon包,節(jié)點就利用接收信號強度指標(biāo)RSSI(Received Signal Strength Indicator)或到達時間ToA(Time of Arrial)技術(shù)估計離鄰居節(jié)點距離[13]。距離估計不是本文討論的范圍,在此就不再累述。同時,每個節(jié)點通過接收鄰居節(jié)點的beacon包更新自己鄰居表。
2.1.2 準(zhǔn)候選節(jié)點集
假定傳感節(jié)點ni有數(shù)據(jù)包需要傳輸,而Ni為節(jié)點ni的鄰居節(jié)點集。節(jié)點ni需要從Ni中選擇一個節(jié)點作為下一跳轉(zhuǎn)發(fā)節(jié)點。為此,節(jié)點ni首先計算Ni中每個節(jié)點的適度值Fit,然后選擇最合適的鄰居節(jié)點作為下一跳轉(zhuǎn)發(fā)節(jié)點。
由于浮標(biāo)是浮在水面,傳感節(jié)點總是將數(shù)據(jù)傳輸至浮標(biāo)。因此,傳感節(jié)點總是選擇離浮標(biāo)近的節(jié)點作為下一跳轉(zhuǎn)發(fā)節(jié)點[14]。為此,從Ni中進一步選擇離浮標(biāo)更近的節(jié)點,構(gòu)建準(zhǔn)候選節(jié)點集Ψi。假定節(jié)點j∈Ni,它的水壓值為depth(j)。相應(yīng)地,depth(i)為節(jié)點ni的水壓值,如圖2所示。
水壓值越大,表明離水域距離越遠。節(jié)點ni與節(jié)點j∈Ni的水壓差值Pj:
Pj=depth(i)-depth(j)
(8)
只有Pj>0,節(jié)點j就加入Ψi集。即Ψi←Ψi∪{j}。構(gòu)建了候選節(jié)點集后,再計算Ψi內(nèi)每個節(jié)點的適度值。節(jié)點j∈Ψi的適度值為Fitj,其定義如式(9)所示:
(9)
然后,將Ψi內(nèi)的節(jié)點以適度值進行降序排序。適度值越高,轉(zhuǎn)發(fā)優(yōu)先級越高。假定節(jié)點j的優(yōu)先級為ρj。且ρ值越小,優(yōu)先級越高。即當(dāng)ρ=1時,它的轉(zhuǎn)發(fā)優(yōu)先級最高。
2.1.3 候選節(jié)點集
(10)
算法1:構(gòu)建候選節(jié)點集
一旦構(gòu)成了ψi后,當(dāng)前節(jié)點(傳感節(jié)點ni)就廣播數(shù)據(jù)包Data,其在數(shù)據(jù)包首部嵌入節(jié)點的ID號和Dmax,其中Dmax表示節(jié)點ni離ψi內(nèi)所有節(jié)點的最大距離。
一旦收到數(shù)據(jù)包,ψi內(nèi)的節(jié)點就要設(shè)置定時器。即通過定時器競爭產(chǎn)生數(shù)據(jù)包的轉(zhuǎn)發(fā)節(jié)點。節(jié)點的定時器定時時間與它的優(yōu)先級反比。優(yōu)先級越高,定時時間就越短。通過這種方式,優(yōu)先級最高的節(jié)點能夠最先獲取轉(zhuǎn)發(fā)數(shù)據(jù)包的轉(zhuǎn)發(fā)權(quán)。一旦定時完畢,且在定時過程中,未監(jiān)聽到其他節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包Data,就立即轉(zhuǎn)發(fā)Data,即成為下一跳的數(shù)據(jù)包轉(zhuǎn)發(fā)節(jié)點。反之,當(dāng)監(jiān)聽到其他轉(zhuǎn)發(fā)了數(shù)據(jù)包,說明數(shù)據(jù)包傳輸成功,則放棄轉(zhuǎn)發(fā)數(shù)據(jù)包,從而降低數(shù)據(jù)包冗余。
對于優(yōu)先級為ρ的節(jié)點,它的定時時間為Th(ρ),其定義如式(11)所示:
(11)
式中:?表示在水中的聲傳播速度,約為1 500 m/s。
圖3 RFP-OR協(xié)議數(shù)據(jù)包轉(zhuǎn)發(fā)流程圖
若節(jié)點ni需要傳輸數(shù)據(jù)包,就先形成準(zhǔn)候選節(jié)點集,然后再計算準(zhǔn)候選節(jié)點集內(nèi)各節(jié)點的適度值,并進行排序。再利用數(shù)據(jù)包傳遞率確定候選轉(zhuǎn)發(fā)節(jié)點集。隨后,節(jié)點ni就向候選轉(zhuǎn)發(fā)節(jié)點集傳輸數(shù)據(jù)包Data。收到Data的節(jié)點就依據(jù)式(11)設(shè)置定時器,進入競爭轉(zhuǎn)發(fā)數(shù)據(jù)包的階段。若在定時完畢前,已監(jiān)聽到其他節(jié)點轉(zhuǎn)發(fā)Data,就放棄競爭。若沒有,則定時完畢后,就立即轉(zhuǎn)發(fā)數(shù)據(jù)包Data。整個過程如圖3所示。
利用Aqua-Sim V.1.0[15]軟件分析RFP-OR協(xié)議性能。Aqua-Sim V.1.0軟件是基于NS-2.30軟件的水下傳感網(wǎng)絡(luò)仿真器。同時,考慮1 000 m×1 000 m×1 000 m水下監(jiān)測區(qū)域,并將1 000 m×1 000 m×1 000 m劃分四個子區(qū)域,每個子區(qū)域內(nèi)隨機部署16個浮標(biāo)。之所以劃分子區(qū)域,是為部署浮標(biāo),使得浮標(biāo)能夠近似于平均分布。
此外,考慮兩類場景:(1)|Nn|=150;(2)|Nn|=350。這兩類場景的區(qū)別在于監(jiān)測區(qū)域內(nèi)節(jié)點數(shù)的不同。場景一,傳感節(jié)點數(shù)少,而場景二,傳感節(jié)點數(shù)多。同時,引用多載波監(jiān)聽接入CSMA(Carrier-sense Multiple Access)的媒介接入控制協(xié)議MAC(Medium Access Control)接入信道。具體的仿真參數(shù)如表1所示[4,16]。
表1 仿真參數(shù)
為了更好地分析RFP-OR協(xié)議性能,選擇文獻[4]提出的基于水壓路由DBR(Depth-Based Routing)和文獻[15]提出的空洞感知的壓力路由VAPR(Void-Aware Pressure Routing)作為參照,并分析它們能耗性能、數(shù)據(jù)包傳遞率和平均傳輸次數(shù),其中用活動節(jié)點數(shù)率反映能耗性能?;顒庸?jié)點數(shù)率等于剩余能量不為零的節(jié)點數(shù)與總的節(jié)點數(shù)的之比?;顒庸?jié)點數(shù)越多,能耗越低,性能越好。
圖4 活動節(jié)點數(shù)
3.1.1 活動節(jié)點數(shù)
首先分析活動節(jié)點數(shù)性能,如圖4所示,其中圖4(a)、4(b)分別表示場景一、場景二環(huán)境下的各協(xié)議的活動節(jié)點數(shù)。圖4顯示了各協(xié)議的活動節(jié)點數(shù)?;顒庸?jié)點數(shù)反映了節(jié)點的能耗速度。活動節(jié)點數(shù)越多,說明網(wǎng)絡(luò)的能耗速度越慢,路由能效性能越好。從圖4可知,提出的RFP-OR協(xié)議的活動節(jié)點數(shù)高于DBR和VAPR協(xié)議。并且隨著仿真時間的增長,RFP-OR協(xié)議在活動節(jié)點數(shù)方面上的優(yōu)勢更加突顯。原因在于:RFP-OR協(xié)議輪換節(jié)點的轉(zhuǎn)發(fā)優(yōu)先級,并利用節(jié)點的剩余能量、水壓值和鏈路質(zhì)量信息估計節(jié)點的適度值,進而選擇優(yōu)先級最高的節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包。而DBR協(xié)議和VAPR協(xié)議并沒有輪換節(jié)點的優(yōu)先級,這就導(dǎo)致優(yōu)先級高的節(jié)點一直承擔(dān)數(shù)據(jù)包的轉(zhuǎn)發(fā)任務(wù),這就加劇了這些節(jié)點的能耗速度,使它們的能量消耗殆盡,成為失效節(jié)點,降低了活動節(jié)點數(shù)。
此外,對比圖4(a)和圖4(b)不難發(fā)現(xiàn),場景二的活動節(jié)點數(shù)下降得更快,并且場景一與場景二唯一不同的是節(jié)點數(shù),而通信半徑是相同的。這也說明節(jié)點密度大的環(huán)境加大了節(jié)點能耗。原因在于:在路由決策過程,三個協(xié)議均引用了廣播機制,每個節(jié)點都需要廣播數(shù)據(jù)包,同時,節(jié)點數(shù)越多,路由擁塞的概率也越大,這些原因都加劇了網(wǎng)絡(luò)能耗。
3.1.2 數(shù)據(jù)包傳遞率
圖5顯示了在兩個場景下的數(shù)據(jù)包傳遞率,其中圖5(a)顯示了場景一、場景二環(huán)境下的各協(xié)議的數(shù)據(jù)包傳遞率。從圖5可知,數(shù)據(jù)包傳遞率隨時間增長而下降。原因在于:時間越長,活動節(jié)點數(shù)越少,這就降低了數(shù)據(jù)包傳輸?shù)牧鲿承?導(dǎo)致更低的數(shù)據(jù)包傳遞率。與VAPR和DBR協(xié)議相比,RFP-OR協(xié)議的數(shù)據(jù)包傳遞率得到有效地提高,特別是在場景二(高密度)環(huán)境。例如,在場景二環(huán)境中,當(dāng)時間進行到約28 h,RFP-OR協(xié)議的的數(shù)據(jù)包傳遞率達到0.95,而DBR和VAPR協(xié)議的數(shù)據(jù)包傳遞率分別為0.05、0.10。
圖5 數(shù)據(jù)包傳遞率
圖6 傳輸時延
3.1.3 數(shù)據(jù)傳輸?shù)钠骄鶗r延
最后,分析數(shù)據(jù)包傳輸時延,如圖6所示,其中圖6(a)、6(b)分別表示場景一、場景二環(huán)境下的各協(xié)議的數(shù)據(jù)傳輸?shù)钠骄鶗r延。從圖6可知,相比于DBR協(xié)議,提出的RFP-OR協(xié)議的傳輸時延得到有效控制。但是,RFP-OR協(xié)議的傳輸時延性能并不優(yōu)于VAPR。原因在于:RFP-OR協(xié)議旨于通過輪換節(jié)點轉(zhuǎn)發(fā)優(yōu)先級,降低能耗,并沒有從傳輸時延的角度去設(shè)計路由協(xié)議,這將是后期的工作方向。
此外,對比場景一和場景二不難發(fā)現(xiàn),場景二環(huán)境下的數(shù)據(jù)傳輸時延較大。這主要因為:節(jié)點數(shù)越多,節(jié)點競爭傳輸越激烈,路由擁塞概率也就越大,另外,節(jié)點數(shù)越多,需要消耗更多的時間計算節(jié)點的優(yōu)先級(處理時延)。
針對USNs的數(shù)據(jù)傳輸問題,提出基于輪換轉(zhuǎn)發(fā)優(yōu)先級的機會路由RFP-OR。RFP-OR路由評估節(jié)點的轉(zhuǎn)發(fā)優(yōu)先級,并采用輪換機制,進而平衡節(jié)點間的能耗。利用節(jié)點的剩余能量、鏈路質(zhì)量和水壓值估計節(jié)點適度值,并由適度值設(shè)置節(jié)點轉(zhuǎn)發(fā)的優(yōu)先級。同時,引用定時器機制產(chǎn)生下一跳轉(zhuǎn)發(fā)節(jié)點。仿真數(shù)據(jù)表明,相比于VAPR和DBR協(xié)議,提出的RFP-OR協(xié)議能夠有效地平衡能耗,增加了活動節(jié)點數(shù),進而提高了數(shù)據(jù)包傳遞率。