劉銳軍,孟 俊,劉書敏
(河北建材職業(yè)技術(shù)學院,河北 秦皇島 066004)
目前,水下組網(wǎng)技術(shù)基本都是基于水聲通信實現(xiàn)的[1]。但由于水聲通信的固有特性,尚未出現(xiàn)與小型水中機器人相結(jié)合的水聲通信組網(wǎng)應用,因此采用水下電場通信與水中機器人技術(shù)相結(jié)合的水下組網(wǎng)方法,這是一種潛在研究方向[2]。充分考慮了水中機器人的機動性和自組網(wǎng)的靈活性,網(wǎng)絡(luò)中每個水中機器人(節(jié)點)的功能一致,地位平等[3]。
增強型目的序列距離矢量(Enhance-Destination Sequenced Distance Vector,E-DSDV)路由協(xié)議中,每個節(jié)點需要建立和維護一張路由表,路由表中存儲路由信息。與目的序列距離矢量(Destination Sequenced Distance Vector,DSDV)路由協(xié)議所不同的是,E-DSDV協(xié)議能夠?qū)⑹瞻l(fā)端實時檢測的電壓信號及時轉(zhuǎn)換成與鄰居間的距離信息,同時將鄰居間的距離信息轉(zhuǎn)換成協(xié)議中所需要的序列號[4]。
1.1.1 路由建立與維護
基于水下電場通信的E-DSDV協(xié)議要求每個節(jié)點保存路由表。節(jié)點間通過周期性地發(fā)布路由更新分組來交互路由信息,以保證路由表的準確性[5]。路由的更新遵循以下兩個原則:一是比較該更新分組中攜帶的路由信息和節(jié)點存儲的路由條目,如果節(jié)點收到的路由序列號大于路由表中存儲的路由條目序列號時,將會更新自己路由表中的舊路由信息,采用更新后的路由而刪除原先存儲的舊序列號的路由;二是如果更新分組中路由的序列號與現(xiàn)存路由的序列號相同,網(wǎng)絡(luò)將會比較在相同序列號下節(jié)點的度量(跳數(shù))大小,最終會選擇度量較小的節(jié)點,以此來更新路由信息,同時會刪除舊的路由表。
1.1.2 路由更新方式
更新方式有兩種方式,一種是部分數(shù)據(jù)分組更新,由于E-DSDV是根據(jù)實時采集電壓來獲得鄰居信息,因此根據(jù)接收到的電壓值更改數(shù)據(jù)電壓。另一種是完全更新,該更新方式包含了節(jié)點路由表的所有信息。節(jié)點在網(wǎng)絡(luò)中會優(yōu)先選取序列號較大的路由,如果兩個路由具有相同的序列號,源節(jié)點到目的節(jié)點將會選擇跳數(shù)較少的鏈路。
對數(shù)據(jù)進行分析,從而得到序列號的值。圖1表示了水下電場通信接收端接收到的電壓與通信距離的關(guān)系,其中d表示水下電場通信距離,Ud表示通信范圍內(nèi)對應的接收電壓[6]。經(jīng)過數(shù)據(jù)擬合處理得到了通信距離與接收電壓關(guān)系式為:
圖1 接收電壓與通信距離擬合曲線
在水下電場通信E-DSDV協(xié)議中,節(jié)點每移動一個單位節(jié)點將會增加兩個序列號值,圖2展示了正常通信時序列號的分布情況[7]。當節(jié)點出現(xiàn)故障無法正常通信時,節(jié)點的序列號會增加1。在水下電場通信E-DSDV中,奇數(shù)序列號表示節(jié)點無法正常通信,同時也會將到達該節(jié)點的跳數(shù)設(shè)置為無窮大。由E-DSDV協(xié)議原理可知,路由選擇優(yōu)先會選擇序列號大的節(jié)點作為下一跳節(jié)點,如果通信鏈路中某個節(jié)點序列號變成奇數(shù),則不能進行通信,從而避免了路由環(huán)路現(xiàn)象的產(chǎn)生。
圖2 通信序列號的分布
本實驗主要應用NS2軟件進行仿真實驗。NS2軟件是指一種針對網(wǎng)絡(luò)技術(shù)的模擬軟件,是一種面向?qū)ο蟮木W(wǎng)絡(luò)仿真器[8]。主要針對移動網(wǎng)絡(luò)仿真,如網(wǎng)絡(luò)傳輸協(xié)議、路由隊列管理機制以及路由算法等[9]。對設(shè)計的網(wǎng)絡(luò)進行了仿真測試,圖3展示了NS2軟件仿真結(jié)果,仿真環(huán)境參數(shù)和實驗環(huán)境參數(shù)設(shè)置相同[10]。實驗環(huán)境的長度為300 mm,寬度為200 mm,A、B、C、D表示通信節(jié)點,箭頭表示數(shù)據(jù)鏈路。圖3(a)表示節(jié)點在初始狀態(tài)時各節(jié)點的拓撲結(jié)構(gòu),同時也展示了各節(jié)點通信鏈路情況,圖3(b)表示在第二種拓撲結(jié)構(gòu)下各節(jié)點的通信鏈路情況,圖3(c)表示第三種拓撲結(jié)構(gòu)下的各節(jié)點通信鏈路情況。
圖3 仿真結(jié)果
結(jié)合仿真數(shù)據(jù)進行了實驗驗證,如圖4所示,分別展示了每個狀態(tài)下節(jié)點布置情況,同時標出了數(shù)據(jù)鏈路的通信情況。
圖4 網(wǎng)絡(luò)初始狀態(tài)拓撲結(jié)構(gòu)
圖4(a)展示了初始狀態(tài)各節(jié)點部署情況,表1為網(wǎng)絡(luò)初始狀態(tài)路由表,其中包含接收的目的節(jié)點(Dest)、下一個鄰居節(jié)點(Next),到達目的節(jié)點需要的跳數(shù)(Metric)以及目的節(jié)點的序列號值(Seq),A、B、C、D分別表示路由節(jié)點。當路由表創(chuàng)建完成后,由節(jié)點A向其他3個節(jié)點發(fā)送指令,讓其按照預設(shè)的運動軌跡進行移動。
表1 網(wǎng)絡(luò)初始狀態(tài)路由表
圖4(b)展示了網(wǎng)絡(luò)第一次變更后的拓撲結(jié)構(gòu),根據(jù)仿真實驗效果實現(xiàn)由節(jié)點A向節(jié)點C發(fā)送消息,此過程中路由表的建立如表2所示。從表2中可以觀察到當節(jié)點B脫離網(wǎng)絡(luò)后,跳數(shù)會變成無窮大,節(jié)點序列號將會增加1變?yōu)槠鏀?shù)。根據(jù)協(xié)議要求,奇數(shù)節(jié)點是不能進行通信的,因此B節(jié)點無法進行下一節(jié)點通信,因此脫離通信鏈路,同時其他節(jié)點到達節(jié)點B的跳數(shù)為無窮大。
表2 第二拓撲狀態(tài)路由表
圖4(c)表示網(wǎng)絡(luò)的第三種拓撲結(jié)構(gòu),圖中標出了由節(jié)點A向節(jié)點B發(fā)送消息的鏈路情況。由于節(jié)點B已經(jīng)不在節(jié)點A的通信能力范圍內(nèi),因此節(jié)點A只能通過其他節(jié)點轉(zhuǎn)發(fā)消息至節(jié)點B。此時網(wǎng)絡(luò)中的路由情況如表3所示,表中展示了當源節(jié)點發(fā)送消息不能直接到達目的節(jié)點時,需要經(jīng)過多跳的方式進行轉(zhuǎn)發(fā)路由消息,且在轉(zhuǎn)發(fā)過程中會選擇較大序列號的路由。
表3 第三拓撲狀態(tài)路由表
本文提出了一種面向水下電場通信網(wǎng)絡(luò)的E-DSDV組網(wǎng)協(xié)議,可以實時采集節(jié)點的發(fā)射電壓,通過檢測發(fā)射電壓建立實際通信序列號,再根據(jù)節(jié)點之間的各自廣播路由信息建立路由表。協(xié)議中引入了實時采集電壓并建立實際序列號算法,增強了網(wǎng)絡(luò)系統(tǒng)的魯棒性,可以更好地適應水下實際環(huán)境,確保網(wǎng)絡(luò)系統(tǒng)能夠及時做出相應的決策。通過大量的實驗驗證了該協(xié)議的合理性及有效性,E-DSDV協(xié)議與其他協(xié)議相比主要增進了實時采集和處理信息能力,更加適應于水下環(huán)境無任何基礎(chǔ)設(shè)施的網(wǎng)絡(luò),解決了電場通信在實際水環(huán)境中的組網(wǎng)問題,為今后水下電場通信組網(wǎng)在軍事與民用等相關(guān)領(lǐng)域的勘探和作業(yè)奠定了基礎(chǔ)。