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