葛志遠(yuǎn),張森林,劉妹琴
(1.浙江大學(xué)電氣工程學(xué)院,浙江杭州 310027;2.浙江大學(xué)工業(yè)控制技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,浙江杭州 310027)
海洋面積廣闊、資源豐富.近年來,隨著水聲通信技術(shù)的發(fā)展,水聲移動(dòng)傳感器網(wǎng)絡(luò)因其廣泛的應(yīng)用而受到越來越多的關(guān)注,如海洋數(shù)據(jù)收集、資源和污染監(jiān)測(cè)、水下環(huán)境探測(cè)、輔助導(dǎo)航和戰(zhàn)術(shù)監(jiān)視等海洋資源探索監(jiān)測(cè)和安全防護(hù)領(lǐng)域[1-3].同時(shí),水下環(huán)境的復(fù)雜性和多變性、資源有限性等為水聲移動(dòng)傳感器網(wǎng)絡(luò)協(xié)議設(shè)計(jì)與發(fā)展帶來了巨大的挑戰(zhàn)[4-5].
水聲移動(dòng)傳感器網(wǎng)絡(luò)(mobile underwater acoustic sensor network,MUASN)主要由多個(gè)水聲通信傳感器節(jié)點(diǎn)構(gòu)成,單個(gè)水聲通信傳感器節(jié)點(diǎn)都承載了數(shù)據(jù)采集及傳輸?shù)墓δ?水聲移動(dòng)傳感器網(wǎng)絡(luò)的特點(diǎn)主要有:1)傳播時(shí)延高且不定.聲波在水中的傳播速度約為1500 m/s,與無線電波的傳輸速率相比低5個(gè)數(shù)量級(jí)[6],因此,水聲移動(dòng)傳感器網(wǎng)絡(luò)節(jié)點(diǎn)之間的水聲通信存在較大的傳播時(shí)延.且水聲通信時(shí)受海水物理特性,如溫度、壓強(qiáng)等的影響,聲波受到的傳輸衰減不同,存在時(shí)空不定性,因此,聲波通信傳播時(shí)延具有不確定性.2)可用帶寬窄.聲波傳輸衰減受傳輸距離和聲波頻率的共同限制.同時(shí),水下環(huán)境中低中頻噪聲普遍存在,極大影響了聲波傳輸?shù)臏?zhǔn)確性.因此,MUASN的可用帶寬窄,典型水聲通信節(jié)點(diǎn)的工作頻率在幾赫茲到幾十千赫茲之間.3)傳輸不穩(wěn)定且誤碼率高.受聲源節(jié)點(diǎn)和接收端節(jié)點(diǎn)的相對(duì)運(yùn)動(dòng)造成的多普勒效應(yīng)及海底海面反射產(chǎn)生的多條傳播路徑的多徑效應(yīng)影響,聲波信號(hào)會(huì)產(chǎn)生畸變并受到嚴(yán)重的碼間干擾[7],造成水聲通信時(shí)傳輸不穩(wěn)定性,進(jìn)而導(dǎo)致較高的誤碼率.4)能量受限.受水下惡劣環(huán)境影響,水下傳感器及水聲通信節(jié)點(diǎn)一般采用一次性電池供電且電池難以更換,若節(jié)點(diǎn)電池能量不足以完成收發(fā)數(shù)據(jù),將導(dǎo)致節(jié)點(diǎn)宕機(jī)脫離網(wǎng)絡(luò),使得MUASN形成網(wǎng)絡(luò)黑洞,進(jìn)而導(dǎo)致網(wǎng)絡(luò)癱瘓[8].
路由作為MUASN中在源節(jié)點(diǎn)與接收節(jié)點(diǎn)中選擇合適路徑轉(zhuǎn)發(fā)數(shù)據(jù)包并進(jìn)行路徑維護(hù)的一個(gè)基本問題,將直接影響到水聲通信的穩(wěn)定性和能量利用的高效性和均衡性,進(jìn)而影響MUASN的各項(xiàng)性能指標(biāo).對(duì)MUASN來說,水聲移動(dòng)傳感器網(wǎng)絡(luò)易受到水下環(huán)境噪音影響的特性、節(jié)點(diǎn)隨機(jī)移動(dòng)及其帶來的多普勒效應(yīng)影響,導(dǎo)致路由路徑發(fā)生斷裂,進(jìn)而需進(jìn)行路由修復(fù)甚至再次路由發(fā)現(xiàn),進(jìn)一步占用大量帶寬,消耗巨額能量,造成網(wǎng)絡(luò)擁堵,使得網(wǎng)絡(luò)各項(xiàng)性能指標(biāo)降低,如吞吐量下降、時(shí)延增大、丟包率增大和網(wǎng)絡(luò)生命周期減短等[9-10].因此,在路由選擇機(jī)制中應(yīng)充分考慮鏈路穩(wěn)定性的影響.而網(wǎng)絡(luò)路由路徑的穩(wěn)定性往往取決于網(wǎng)絡(luò)節(jié)點(diǎn)之間的相對(duì)距離.而且,在MUASN中,電池更換難度高,且頻繁更換電池會(huì)使得設(shè)備維護(hù)代價(jià)增大,故網(wǎng)絡(luò)節(jié)點(diǎn)在各種狀態(tài)下及各種狀態(tài)下的轉(zhuǎn)換,都由有限電量的一次性電池供應(yīng).因此,如何避免鏈路斷裂以高效地利用有限能源顯得尤為重要.同時(shí),能量的極端利用會(huì)導(dǎo)致網(wǎng)絡(luò)黑洞的形成,影響水聲移動(dòng)傳感器網(wǎng)絡(luò)的正常功能.如AODV協(xié)議采用的最小跳數(shù)路由選擇機(jī)制.在水聲通信節(jié)點(diǎn)收發(fā)功率固定的網(wǎng)絡(luò)中,節(jié)點(diǎn)的聲波通信范圍固定,故最小跳數(shù)算法往往選取的路由路徑是在所有可用的路由路徑中最小跳數(shù)路徑是總傳輸功率最低的傳輸路徑.因此,最小跳數(shù)算法易造成某一關(guān)鍵位置節(jié)點(diǎn)的能量過分消耗,從而脫離網(wǎng)絡(luò)[11].對(duì)于拓?fù)鋭?dòng)態(tài)變化的稀疏網(wǎng)絡(luò)中,節(jié)點(diǎn)的移動(dòng)很難形成節(jié)點(diǎn)的交換,一旦網(wǎng)絡(luò)中的某些關(guān)鍵位置節(jié)點(diǎn)過早耗盡能量,形成網(wǎng)絡(luò)黑洞,節(jié)點(diǎn)的移動(dòng)也很難補(bǔ)足網(wǎng)絡(luò)黑洞的空缺.因此,MUASN中的路由路徑選擇機(jī)制也應(yīng)充分考慮水聲傳感器內(nèi)部剩余能量的影響.在選擇路由路徑時(shí)通過盡量避免節(jié)點(diǎn)剩余能量較少的節(jié)點(diǎn)來作為下一跳節(jié)點(diǎn),盡可能最大化延長(zhǎng)整個(gè)網(wǎng)絡(luò)的壽命周期.
優(yōu)化MUASN路由協(xié)議,提高有限能量的利用率,加強(qiáng)網(wǎng)絡(luò)路徑穩(wěn)定性,也成為眾多學(xué)者研究的重點(diǎn).在能量均衡方面,文獻(xiàn)[12]提出了一種基于節(jié)能路徑的路由協(xié)議,通過在初始能量中減去計(jì)算得到的收發(fā)和丟失的能量得到節(jié)點(diǎn)剩余能量,并通過剩余能量進(jìn)行路由選擇.由于網(wǎng)絡(luò)節(jié)點(diǎn)本身存在能量消耗,因此采用這種方法會(huì)導(dǎo)致節(jié)點(diǎn)能量誤差累加,并不能有效獲取路由路徑上節(jié)點(diǎn)能量的準(zhǔn)確信息.文獻(xiàn)[13]提出了一種基于能量平衡改進(jìn)路由協(xié)議,該協(xié)議將能量成本函數(shù)引入路由選擇機(jī)制中,并采用改進(jìn)HELLO報(bào)文,通過次優(yōu)多跳路徑,有效地延長(zhǎng)了整個(gè)網(wǎng)絡(luò)的生命周期.在路由鏈路穩(wěn)定方面,文獻(xiàn)[14]提出了MDAAODV(mobilityanddirectionawaread-hocondemand distance vector routing protocol)路由協(xié)議,該協(xié)議在不考慮路由能量和性能的因素下,主要基于節(jié)點(diǎn)速度和方向進(jìn)行路由選擇,避免選擇高速移動(dòng)或移動(dòng)至遠(yuǎn)處的節(jié)點(diǎn)加入路由.這種方式有效地保證了路由路徑的穩(wěn)定,但是并不適用于稀疏的且拓?fù)渥兓^快的網(wǎng)絡(luò).為了綜合考慮能量均衡及路徑穩(wěn)定性,文獻(xiàn)[15]采用了能量與移動(dòng)感知路由,降低了網(wǎng)絡(luò)穩(wěn)定性和節(jié)點(diǎn)移動(dòng)的復(fù)雜性.該協(xié)議主要通過多點(diǎn)中繼的選擇,保障了高速率地從源節(jié)點(diǎn)到目的節(jié)點(diǎn)的網(wǎng)絡(luò)鏈路連接和網(wǎng)絡(luò)穩(wěn)定性.文獻(xiàn)[16]根據(jù)節(jié)點(diǎn)傳輸信息,采用指數(shù)平滑的方式對(duì)節(jié)點(diǎn)間鏈路質(zhì)量進(jìn)行預(yù)測(cè),并通過由節(jié)點(diǎn)剩余能量和鏈路質(zhì)量決定的節(jié)點(diǎn)質(zhì)量因子選擇鄰居節(jié)點(diǎn),有效提高節(jié)點(diǎn)傳輸成功率,均衡網(wǎng)絡(luò)能量.但是由于沒有考慮跳數(shù)問題,無法達(dá)到該鏈路功耗的相對(duì)最優(yōu).
本文主要對(duì)MUASN中的按需平面距離向量路由協(xié)議(ad hoc on-demand distance vector routing,AODV)進(jìn)行研究,在原協(xié)議的基礎(chǔ)上引入了存在能量閾值的能量指標(biāo)和以距離為基準(zhǔn)的距離指標(biāo),并綜合考量了能量指標(biāo)、距離指標(biāo)與跳數(shù),對(duì)網(wǎng)絡(luò)路由路徑的狀態(tài)進(jìn)行綜合評(píng)估.當(dāng)節(jié)點(diǎn)能量低于能量閾值時(shí),節(jié)點(diǎn)將不參與路由協(xié)議的路由發(fā)現(xiàn)過程.仿真結(jié)果表明,該方法有效地提升網(wǎng)絡(luò)整體的數(shù)據(jù)量,均衡了水聲移動(dòng)傳感器網(wǎng)絡(luò)各節(jié)點(diǎn)的能量消耗,延長(zhǎng)了網(wǎng)絡(luò)的生存周期.
AODV是一種為快速移動(dòng)分布式自組網(wǎng)絡(luò)設(shè)計(jì)的按需反應(yīng)式路由協(xié)議.當(dāng)源節(jié)點(diǎn)存在通信需求時(shí),源節(jié)點(diǎn)以多播形式向網(wǎng)絡(luò)中的節(jié)點(diǎn)發(fā)送路由控制幀.中間節(jié)點(diǎn)接收到源節(jié)點(diǎn)發(fā)送的路由控制幀后,判斷是否存在到目的節(jié)點(diǎn)的路由路徑或是否本身是目標(biāo)節(jié)點(diǎn),根據(jù)判斷結(jié)果返回路由回應(yīng)或轉(zhuǎn)發(fā)路由控制幀.在路由目的節(jié)點(diǎn)可達(dá)時(shí),建立相應(yīng)路由路徑,若非出現(xiàn)路由路徑斷裂導(dǎo)致目的節(jié)點(diǎn)不可達(dá)或路由存在時(shí)間超過該路由路徑的生存周期的情況,路由路徑將一直被設(shè)定為可用狀態(tài).在該協(xié)議中,節(jié)點(diǎn)無需記錄整個(gè)網(wǎng)絡(luò)的拓?fù)錉顟B(tài),只需記錄與所有目的節(jié)點(diǎn)間的路由信息和相鄰節(jié)點(diǎn)的連通狀態(tài).
本文主要以二維動(dòng)態(tài)拓?fù)涞腗UASN為研究對(duì)象.每個(gè)水聲通信傳感器節(jié)點(diǎn)在水下固定區(qū)域內(nèi)隨機(jī)分布,每個(gè)節(jié)點(diǎn)存在內(nèi)置能量電池,其主要設(shè)定為:1)每個(gè)水聲通信傳感器節(jié)點(diǎn)存在獨(dú)立的ID號(hào),ID號(hào)用于在通信過程中唯一確認(rèn)發(fā)送方和接收方,且每個(gè)水聲通信機(jī)都可以作為主機(jī)或路由器使用[17];2)每個(gè)水聲通信傳感器節(jié)點(diǎn)都以半雙工方式收發(fā)數(shù)據(jù);3)除了用于與終端連接作為接收節(jié)點(diǎn)與數(shù)據(jù)發(fā)送節(jié)點(diǎn)外,其余節(jié)點(diǎn)在MUASN中的地位相同,都有可能成為中間節(jié)點(diǎn);4)每個(gè)水聲通信傳感器節(jié)點(diǎn)初始能量相同;5)每個(gè)水聲通信傳感器節(jié)點(diǎn)收發(fā)數(shù)據(jù)的功率為定值,且每個(gè)節(jié)點(diǎn)設(shè)定的接收功率相同,節(jié)點(diǎn)的接收功率與文獻(xiàn)[18]設(shè)定的網(wǎng)絡(luò)能耗相同;6)若聲波功率高于水聲通信傳感器節(jié)點(diǎn)的載波監(jiān)聽接收閾值功率,則該接收節(jié)點(diǎn)可正常接收聲波信號(hào);7)每個(gè)水聲通信傳感器節(jié)點(diǎn)都在設(shè)定區(qū)域內(nèi)隨機(jī)分布并以隨機(jī)的速度與方向移動(dòng);8)水聲通信傳感器節(jié)點(diǎn)的移動(dòng)速度受限于一定速度范圍,且最大速度遠(yuǎn)小于聲波速度,因此忽略聲波的多普勒頻移影響.
AODV路由協(xié)議通過對(duì)路由請(qǐng)求幀RREQ、路由應(yīng)答幀RREP、路由應(yīng)答幀RREP-ACK、路由錯(cuò)誤幀RERR和HELLO鏈路監(jiān)測(cè)幀這4種路由控制消息幀的協(xié)調(diào)控制,實(shí)現(xiàn)路由路徑的發(fā)現(xiàn)、鏈路維護(hù)等功能.當(dāng)源節(jié)點(diǎn)不存在達(dá)到目的節(jié)點(diǎn)的有效路由時(shí),將發(fā)出路由請(qǐng)求幀,其中以源節(jié)點(diǎn)記錄下的目的節(jié)點(diǎn)序列號(hào)大1作為新的鏈路請(qǐng)求序列號(hào),避免形成環(huán)路.中間節(jié)點(diǎn)以自身記錄下的相應(yīng)目的節(jié)點(diǎn)序列號(hào)是否大于路由請(qǐng)求幀中序列號(hào)來判斷是否更新自身路由表.RREP應(yīng)答幀是由目的節(jié)點(diǎn)或存在到達(dá)目的節(jié)點(diǎn)有效路由的中間節(jié)點(diǎn)發(fā)出的,以便中間節(jié)點(diǎn)和源節(jié)點(diǎn)建立指向目的節(jié)點(diǎn)的前向路由.RREP-ACK幀用于回復(fù)RREP幀以確認(rèn)自身節(jié)點(diǎn)收到了發(fā)送節(jié)點(diǎn)的RREP路由應(yīng)答幀.當(dāng)節(jié)點(diǎn)路由鏈路斷裂或鄰居節(jié)點(diǎn)不可達(dá)時(shí),節(jié)點(diǎn)通過單播、重復(fù)單播或廣播的形式發(fā)送RERR錯(cuò)誤幀來進(jìn)行路由鏈路的修復(fù).HELLO幀用于發(fā)現(xiàn)維護(hù)本地節(jié)點(diǎn)的相鄰節(jié)點(diǎn)及其連接狀態(tài)信息,是一個(gè)TTL為1的路由應(yīng)答幀.其中路由請(qǐng)求幀格式如表1所示.
表1 RREQ路由數(shù)據(jù)幀格式Table 1 Routing data frame format of RREQ
路由請(qǐng)求幀格式主要包括了類型、標(biāo)志位、跳數(shù)、目的節(jié)點(diǎn)的IP地址和節(jié)點(diǎn)序列號(hào)、源節(jié)點(diǎn)的IP地址和節(jié)點(diǎn)序列號(hào).RREP應(yīng)答幀與RREQ請(qǐng)求幀類似.
AODV路由路徑建立過程主要如下:
1)當(dāng)MUASN中的源節(jié)點(diǎn)存在到達(dá)網(wǎng)絡(luò)中某一節(jié)點(diǎn)的數(shù)據(jù)傳輸需求時(shí),若該節(jié)點(diǎn)不存在到目的節(jié)點(diǎn)的有效路由,則源節(jié)點(diǎn)將產(chǎn)生ID值和源節(jié)點(diǎn)序列號(hào)加1作為新的序列號(hào)的路由請(qǐng)求幀,并洪泛廣播至各個(gè)鄰居節(jié)點(diǎn).源節(jié)點(diǎn)若在固定時(shí)間內(nèi)沒有接收到相應(yīng)的路由應(yīng)答幀,將多次發(fā)送路由請(qǐng)求幀,且每次發(fā)送時(shí)增加TTL,擴(kuò)大請(qǐng)求幀傳輸范圍.
2)中間節(jié)點(diǎn)在收到源節(jié)點(diǎn)發(fā)送的路由請(qǐng)求幀后,若路由請(qǐng)求幀的序列號(hào)大于該中間節(jié)點(diǎn)記錄的到目的節(jié)點(diǎn)的序列號(hào),則將路由請(qǐng)求幀中的信息,如跳數(shù)、序列號(hào)、源節(jié)點(diǎn)IP和序列號(hào)等,寫入到達(dá)相應(yīng)目的節(jié)點(diǎn)的路由表中,建立到源節(jié)點(diǎn)IP地址的反向路由,以便在接收到RREP應(yīng)答幀時(shí)使用.否則,表示該路由請(qǐng)求幀中的信息陳舊落后或已經(jīng)接收到過該路由請(qǐng)求幀,中間節(jié)點(diǎn)將丟棄該路由幀信息.若在路由發(fā)現(xiàn)時(shí)間內(nèi)重復(fù)收到相同信息的路由請(qǐng)求幀,則選擇路由請(qǐng)求幀內(nèi)跳數(shù)更少的路由信息,寫入到相應(yīng)目的節(jié)點(diǎn)的路由表中.
3)在中間節(jié)點(diǎn)建立反向路由后,若該節(jié)點(diǎn)為目的節(jié)點(diǎn),則該節(jié)點(diǎn)將自身序列號(hào)加1作為路由應(yīng)答幀的序列號(hào),并根據(jù)建立的反向路由單播回送跳數(shù)為0的路由應(yīng)答幀以建立正向路由.若節(jié)點(diǎn)存在到達(dá)目的節(jié)點(diǎn)的路由路徑,且該路徑記錄的目的節(jié)點(diǎn)序列號(hào)有效且大于信宿節(jié)點(diǎn)的序列號(hào),該節(jié)點(diǎn)將路由表中記錄的目的節(jié)點(diǎn)序列號(hào)作為路由應(yīng)答幀的序列號(hào),根據(jù)反向路由單播跳數(shù)為到達(dá)目的節(jié)點(diǎn)跳數(shù)的路由應(yīng)答幀.否則,該中間節(jié)點(diǎn)將更新路由請(qǐng)求幀的跳數(shù),繼續(xù)洪泛轉(zhuǎn)發(fā)路由請(qǐng)求幀.
4)當(dāng)中間節(jié)點(diǎn)接收到路由應(yīng)答幀時(shí),該節(jié)點(diǎn)將路由應(yīng)答中的信息,如跳數(shù)、序列號(hào)、目的節(jié)點(diǎn)IP和序列號(hào)等,寫入到以目的節(jié)點(diǎn)為目標(biāo)的路由表中,建立到目的節(jié)點(diǎn)IP地址的正向路由.并根據(jù)之前建立的反向路由繼續(xù)單播路由應(yīng)答幀,直到源節(jié)點(diǎn).
5)若中間節(jié)點(diǎn)通過反向路由轉(zhuǎn)發(fā)一個(gè)可能錯(cuò)誤或者為單向的路由應(yīng)答幀,則該節(jié)點(diǎn)將標(biāo)記標(biāo)志位以提醒正向路由中該節(jié)點(diǎn)上一跳的節(jié)點(diǎn)在接收路由應(yīng)答幀后回復(fù)RREP-ACK幀以確認(rèn)收到路由應(yīng)答幀.在源節(jié)點(diǎn)接收到路由應(yīng)答幀后,若接收到多個(gè)不同路徑的路由應(yīng)答幀,將比較各路由應(yīng)答幀的跳數(shù),選擇其中跳數(shù)最小的路徑作為發(fā)送數(shù)據(jù)包的路由路徑.
圖1為AODV路由路徑建立過程示意圖,在圖1中,設(shè)定節(jié)點(diǎn)1為發(fā)送節(jié)點(diǎn),若節(jié)點(diǎn)1沒有到節(jié)點(diǎn)8的路由,且節(jié)點(diǎn)1有數(shù)據(jù)包需要發(fā)送至節(jié)點(diǎn)8,節(jié)點(diǎn)1通過廣播路由請(qǐng)求幀到節(jié)點(diǎn)2、節(jié)點(diǎn)3、節(jié)點(diǎn)4中.假設(shè)以上3個(gè)節(jié)點(diǎn)中,只有節(jié)點(diǎn)2與節(jié)點(diǎn)3在通信范圍內(nèi),則以上3個(gè)節(jié)點(diǎn)由于不是目的節(jié)點(diǎn),會(huì)繼續(xù)轉(zhuǎn)發(fā)路由請(qǐng)求幀到相鄰節(jié)點(diǎn)中,其中節(jié)點(diǎn)2會(huì)繼續(xù)轉(zhuǎn)發(fā)路由請(qǐng)求幀到節(jié)點(diǎn)3中,若中間節(jié)點(diǎn)都沒有到達(dá)節(jié)點(diǎn)9的路由路徑,則路由請(qǐng)求幀會(huì)由節(jié)點(diǎn)6和節(jié)點(diǎn)7分別到達(dá)目的節(jié)點(diǎn)8,總共可能會(huì)建立6條反向路由.根據(jù)這6條反向路由,目的節(jié)點(diǎn)會(huì)單播回復(fù)路由應(yīng)答報(bào)文,通過各路徑的中間節(jié)點(diǎn)到達(dá)源節(jié)點(diǎn)1.其中6條路徑對(duì)應(yīng)跳數(shù)分別為3,4,5.源節(jié)點(diǎn)將選擇最短路徑,即跳數(shù)為3的路徑,作為發(fā)送數(shù)據(jù)包的路徑.
圖1 AODV路由路徑建立過程Fig.1 Establishment of AODV route path
對(duì)于MUASN而言,路由路徑的平均長(zhǎng)度與路由的穩(wěn)定性緊密相連.常規(guī)AODV路由協(xié)議通常采用最小跳數(shù)作為選擇路由路徑的依據(jù),而這常常代表著該路由路徑的平均長(zhǎng)度最長(zhǎng),故路由路徑上相鄰節(jié)點(diǎn)可能處于或靠近節(jié)點(diǎn)通信范圍臨界點(diǎn)處.當(dāng)兩個(gè)節(jié)點(diǎn)的相對(duì)距離接近節(jié)點(diǎn)的通信半徑時(shí),節(jié)點(diǎn)隨機(jī)移動(dòng)產(chǎn)生的微小位移都可能影響路由鏈路,導(dǎo)致其發(fā)生斷裂.因此,跳數(shù)最小路由路徑選擇機(jī)制很可能會(huì)導(dǎo)致選擇路徑穩(wěn)定性較差的路由路徑,進(jìn)而造成網(wǎng)絡(luò)性能下降.由于路由路徑穩(wěn)定性與相鄰節(jié)點(diǎn)的相對(duì)距離有直接關(guān)系,采用相鄰節(jié)點(diǎn)的相對(duì)距離定量表示相鄰節(jié)點(diǎn)之間的傳輸穩(wěn)定性.本文利用路由路徑質(zhì)量指標(biāo)(link quality index,LQI)來反應(yīng)相鄰節(jié)點(diǎn)之間數(shù)據(jù)傳輸?shù)姆€(wěn)定性,其值越大則該相鄰節(jié)點(diǎn)之間的傳輸穩(wěn)定性越高.由節(jié)點(diǎn)相對(duì)距離決定的路由路徑指標(biāo)如下:
其中:Dij表示相鄰節(jié)點(diǎn)之間的歐式距離;R表示節(jié)點(diǎn)的最大通信距離半徑.
在式(1)中,相鄰節(jié)點(diǎn)之間的相對(duì)距離(用歐式距離表示)越短,路由路徑的質(zhì)量指標(biāo)值越高,穩(wěn)定性越強(qiáng).當(dāng)相鄰節(jié)點(diǎn)的歐式距離大于最大通信距離半徑時(shí),說明相鄰節(jié)點(diǎn)數(shù)據(jù)傳輸不可達(dá),相應(yīng)路徑穩(wěn)定性為0.為表示整條路由路徑的穩(wěn)定性,將對(duì)該路由路徑上每一跳的路徑質(zhì)量指標(biāo)進(jìn)行疊加.
在MUASN中,根據(jù)路由路徑選擇機(jī)制的不同,可以將路由的能量?jī)?yōu)化改進(jìn)策略分為兩種.第1種是根據(jù)每條路徑所消耗的能量大小選擇路由.在不考慮數(shù)據(jù)包重傳的情況下,這種算法以路由路徑花費(fèi)的傳輸功率為選擇標(biāo)準(zhǔn),在所有可用路由路徑中,選擇傳輸能耗最低的一條作為傳輸路徑.第2種是根據(jù)網(wǎng)絡(luò)生存周期選擇路由.這種算法主要以MUASN中某一時(shí)刻節(jié)點(diǎn)的剩余能量為依據(jù),在選擇路由路徑時(shí)選擇相對(duì)能量較多的節(jié)點(diǎn)為下一跳節(jié)點(diǎn),從而避免處于關(guān)鍵位置的節(jié)點(diǎn)過早耗盡能量,延長(zhǎng)網(wǎng)絡(luò)的生存時(shí)間.本文主要以上述兩種能量?jī)?yōu)化策略并存的方式來研究路由協(xié)議的能量?jī)?yōu)化.
對(duì)于單個(gè)節(jié)點(diǎn)而言,本文引入了能量閾值u來表示該節(jié)點(diǎn)的能量狀態(tài),當(dāng)節(jié)點(diǎn)的剩余能量低于能量閾值時(shí),該節(jié)點(diǎn)將不參與路由發(fā)現(xiàn)過程,即不會(huì)加入網(wǎng)絡(luò)中任何一條新建立的路由路徑中,只保持該節(jié)點(diǎn)路由表中的已有路由路徑進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā).將節(jié)點(diǎn)剩余能量高于能量閾值的能量稱為能量裕度,能量裕度與總能量高于能量閾值的能量之比為能量裕度值,其值越高,則該節(jié)點(diǎn)的能量越充裕.其表達(dá)式為
其中:E表示能量裕度值;u表示能量閾值;Eres表示該節(jié)點(diǎn)當(dāng)前能量值;Etoal表示該節(jié)點(diǎn)的能量總量.為表示整條路由的能量狀態(tài),將對(duì)該路由路徑上除源節(jié)點(diǎn)外的每一個(gè)節(jié)點(diǎn)的能量狀態(tài)進(jìn)行疊加.
為了綜合考慮路由路徑穩(wěn)定與網(wǎng)絡(luò)能量均衡問題并平衡能量與路徑穩(wěn)定兩個(gè)因素的比重問題,給路徑質(zhì)量指標(biāo)LQI和反應(yīng)節(jié)點(diǎn)能量狀態(tài)的能量裕度值E分配了不同的權(quán)值.將不同權(quán)值下節(jié)點(diǎn)路徑質(zhì)量指標(biāo)和能量裕度值構(gòu)成的值稱為單跳支持值EL,其表達(dá)式如下:
其中β和α值分別是路徑質(zhì)量指標(biāo)LQI和能量裕度值E的權(quán)重.
將路由上的每一跳形成的支持值累積得到路徑支持值ELN.為了考慮在能量充裕且鏈路較短時(shí)的整體鏈路的能量消耗,即根據(jù)傳輸功率選擇路由機(jī)制,引入了跳數(shù)限制.其表達(dá)式如下:
其中:ELH為綜合考慮了能量裕度值、鏈路穩(wěn)定和跳數(shù)的路由支持值;HOP為該路由路徑的跳數(shù).路由支持值越大,則表示該路由路徑更容易被選擇.
在動(dòng)態(tài)拓?fù)涞南∈鐼UASN中,對(duì)于短路由而言,由于源節(jié)點(diǎn)與目的節(jié)點(diǎn)可以在小跳數(shù)內(nèi)實(shí)現(xiàn)雙向鏈,源節(jié)點(diǎn)因路由斷裂產(chǎn)生的洪泛現(xiàn)象相較于長(zhǎng)路由來說不明顯,所以優(yōu)先考慮短路由下的路由傳輸功率問題.如式(4)所示,對(duì)于跳數(shù)較短的路由路徑來說,當(dāng)跳數(shù)增加一跳時(shí),將會(huì)顯著降低路由支持值ELH,若跳數(shù)相同時(shí),相對(duì)剩余能量多且鏈路較為穩(wěn)定的路由鏈路將決定路由支持值ELH的大小.由于稀疏網(wǎng)絡(luò)中相鄰節(jié)點(diǎn)的相對(duì)方向改變不大,鏈路斷裂的主要原因在于相鄰節(jié)點(diǎn)的歐氏距離大于節(jié)點(diǎn)通信距離半徑.而長(zhǎng)路由的斷裂會(huì)導(dǎo)致以源節(jié)點(diǎn)為中心的大面積網(wǎng)絡(luò)信息洪泛.因此,對(duì)長(zhǎng)路由而言,選擇相對(duì)剩余能量較多且鏈路較為穩(wěn)定的路由更為重要.在上式中:若在跳數(shù)值較高時(shí)增加一跳,對(duì)于路由支持值ELH的影響并不明顯,而能量裕度值和路徑質(zhì)量指標(biāo)將主要決定路由支持值.
改進(jìn)后,節(jié)點(diǎn)在接收RREQ的流程如圖2所示.改進(jìn)路由協(xié)議路徑建立的簡(jiǎn)要過程如下:
圖2 節(jié)點(diǎn)接收RREQ流程圖Fig.2 Flow diagram of receivng RREQ
1)MUASN中源節(jié)點(diǎn)想發(fā)送數(shù)據(jù)包給沒有有效路由的目的節(jié)點(diǎn),將廣播自身序列號(hào)加一的路由請(qǐng)求幀RREQ給各鄰居節(jié)點(diǎn)來尋找目的節(jié)點(diǎn).
2)中間節(jié)點(diǎn)在收到源節(jié)點(diǎn)發(fā)出的RREQ消息后,首先通過hello消息維護(hù)的鄰居節(jié)點(diǎn)距離信息計(jì)算出上一跳節(jié)點(diǎn)與自身節(jié)點(diǎn)的路徑質(zhì)量指標(biāo),通過自身節(jié)點(diǎn)的剩余能量計(jì)算出自身節(jié)點(diǎn)的能量裕度值,并加權(quán)結(jié)合兩個(gè)指標(biāo)后與存于RREQ消息中的從源節(jié)點(diǎn)到上一跳節(jié)點(diǎn)的路徑支持值相加,得到從源節(jié)點(diǎn)到該節(jié)點(diǎn)的路徑支持值.若RREQ序列號(hào)大于中間節(jié)點(diǎn)到目的節(jié)點(diǎn)的序列號(hào)或者序列號(hào)相等但路徑支持值更大時(shí),記錄下RREQ中信息并建立反向路由.
3)建立反向路由后,若中間節(jié)點(diǎn)為目的節(jié)點(diǎn)或中間節(jié)點(diǎn)有到目的節(jié)點(diǎn)的路由路徑時(shí),以傳統(tǒng)AODV協(xié)議改變的序列號(hào)寫入路由應(yīng)答幀RREP中,并將該節(jié)點(diǎn)到目的節(jié)點(diǎn)的路由支持值轉(zhuǎn)換為路徑支持值寫入RREP中.
4)若中間節(jié)點(diǎn)不是源節(jié)點(diǎn),則當(dāng)中間節(jié)點(diǎn)接收到RREP消息時(shí),將自身節(jié)點(diǎn)的能量裕度值與和發(fā)送RREP消息節(jié)點(diǎn)間的路徑質(zhì)量指標(biāo)值加權(quán)到RREP消息中的路徑支持值中.
5)當(dāng)源節(jié)點(diǎn)接收到目的節(jié)點(diǎn)發(fā)送的RREP消息時(shí),將RREP消息中的路徑支持值與跳數(shù)根據(jù)上述公式計(jì)算出路由支持值,并從中選擇路由支持值最大的路由路徑作為發(fā)送數(shù)據(jù)包的路由路徑.改進(jìn)后RREQ路由幀格式如表2所示.
表2 改進(jìn)后RREQ數(shù)據(jù)幀格式Table 2 Improved protocol RREQ data frame format
路由請(qǐng)求幀格式主要包括了類型、標(biāo)志位、跳數(shù)、目的節(jié)點(diǎn)的IP地址和節(jié)點(diǎn)序列號(hào)、源節(jié)點(diǎn)的IP地址、節(jié)點(diǎn)序列號(hào)、請(qǐng)求幀生存時(shí)間以及路由支持值.關(guān)于RREP應(yīng)答幀和RRER錯(cuò)誤幀的改動(dòng)與RREQ請(qǐng)求幀類似.
本節(jié)在NS2網(wǎng)絡(luò)仿真平臺(tái)上,面向各節(jié)點(diǎn)隨機(jī)移動(dòng)的MUASN運(yùn)動(dòng)場(chǎng)景,對(duì)AODV路由和基于能量與鏈路優(yōu)化策略的改進(jìn)AODV路由協(xié)議進(jìn)行對(duì)比仿真分析.本文將從網(wǎng)絡(luò)平均剩余能量和同一時(shí)刻下節(jié)點(diǎn)的宕機(jī)數(shù)量?jī)蓚€(gè)方面對(duì)常規(guī)AODV協(xié)議[16]及改進(jìn)協(xié)議對(duì)比分析.其中仿真的硬件環(huán)境為Inter Core I5-8400 CPU 2.8 GHz,編程環(huán)境包括ns 2.35平臺(tái)、python 3.5.2、C++等.
將由50個(gè)傳感器節(jié)點(diǎn)組成的水聲移動(dòng)傳感器網(wǎng)絡(luò)置于600×600的正方形海域范圍內(nèi).網(wǎng)絡(luò)中的50個(gè)節(jié)點(diǎn)在區(qū)域隨機(jī)分布并向隨機(jī)方向以一定速度范圍內(nèi)的隨機(jī)速度進(jìn)行移動(dòng).每個(gè)節(jié)點(diǎn)的性能參數(shù)相同,其中初始能量均為200 J,發(fā)送功率為2 w,接收功率為0.75 w,待機(jī)功率為8 mw.每個(gè)發(fā)送節(jié)點(diǎn)發(fā)送的每個(gè)數(shù)據(jù)包長(zhǎng)度為50個(gè)字節(jié),以固定波特率的方式進(jìn)行發(fā)送,仿真時(shí)間為1000 s.
本節(jié)通過ns2中的 flowmonitor對(duì)仿真過程中產(chǎn)生的數(shù)據(jù)及節(jié)點(diǎn)狀態(tài)的變換情況進(jìn)行記錄.在實(shí)驗(yàn)過程中,當(dāng)水聲通信機(jī)節(jié)點(diǎn)的能量不能維持1 s內(nèi)的數(shù)據(jù)接收時(shí),則認(rèn)為該節(jié)點(diǎn)已宕機(jī)并脫離網(wǎng)絡(luò),節(jié)點(diǎn)宕機(jī)數(shù)量隨時(shí)間的變化如圖3所示.其中:圖中橫坐標(biāo)為仿真時(shí)間,縱坐標(biāo)為節(jié)點(diǎn)宕機(jī)數(shù)量.
圖3 網(wǎng)絡(luò)剩余節(jié)點(diǎn)數(shù)量Fig.3 Number of remaining nodes on the network
從圖3網(wǎng)絡(luò)剩余節(jié)點(diǎn)的變化中可以明顯看出,在大多數(shù)的時(shí)間段,改進(jìn)后協(xié)議的網(wǎng)絡(luò)節(jié)點(diǎn)宕機(jī)數(shù)量都低于常規(guī)AODV協(xié)議.在仿真初期,改進(jìn)AODV路由協(xié)議由于受到能量均衡路由選擇機(jī)制的影響,網(wǎng)絡(luò)中第一個(gè)宕機(jī)節(jié)點(diǎn)出現(xiàn)的時(shí)間會(huì)慢于常規(guī)AODV路由協(xié)議.在網(wǎng)絡(luò)有節(jié)點(diǎn)宕機(jī)后,改進(jìn)路由協(xié)議中,處于關(guān)鍵位置的網(wǎng)絡(luò)節(jié)點(diǎn)宕機(jī)數(shù)量下降速率會(huì)比常規(guī)AODV路由協(xié)議稍緩,而在接收接節(jié)點(diǎn)宕機(jī)后,網(wǎng)絡(luò)節(jié)點(diǎn)宕機(jī)數(shù)量仍少于常規(guī)AODV路由協(xié)議.具體來看,AODV路由的首個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)宕機(jī)時(shí)間為250 s左右,仿真結(jié)束后,網(wǎng)絡(luò)中共有10個(gè)節(jié)點(diǎn)死亡;而基于穩(wěn)定傳輸和能量均衡的改進(jìn)路由協(xié)議首次出現(xiàn)網(wǎng)絡(luò)節(jié)點(diǎn)宕機(jī)時(shí)間為432 s左右,比常規(guī)AODV路由協(xié)議出現(xiàn)宕機(jī)節(jié)點(diǎn)的時(shí)間晚了約70%,且仿真結(jié)束后,網(wǎng)絡(luò)中宕機(jī)節(jié)點(diǎn)只有6個(gè).在通信網(wǎng)絡(luò)中,節(jié)點(diǎn)ID為20的節(jié)點(diǎn)作為接收節(jié)點(diǎn),在傳統(tǒng)協(xié)議中宕機(jī)時(shí)間為261 s,而在改進(jìn)協(xié)議中宕機(jī)時(shí)間為886 s,極大延緩了接收節(jié)點(diǎn)的宕機(jī)時(shí)間.顯然,改進(jìn)協(xié)議在首個(gè)節(jié)點(diǎn)宕機(jī)時(shí)間和網(wǎng)絡(luò)中存活節(jié)點(diǎn)數(shù)量中的表現(xiàn)都優(yōu)于AODV路由協(xié)議.
為了進(jìn)一步定量描述網(wǎng)絡(luò)中的能量,本節(jié)采用了網(wǎng)絡(luò)中節(jié)點(diǎn)的平均剩余能量對(duì)其進(jìn)行定量表示.每隔100 s對(duì)流量監(jiān)控器中記錄下的各節(jié)點(diǎn)能量進(jìn)行疊加并除以節(jié)點(diǎn)數(shù),求得每百秒下的節(jié)點(diǎn)平均剩余能量.其仿真結(jié)果如圖4所示,其中:橫坐標(biāo)為仿真時(shí)間,縱坐標(biāo)為節(jié)點(diǎn)平均剩余能量.
圖4 節(jié)點(diǎn)平均剩余能量Fig.4 Average residual energy of nodes
如圖4所示,改進(jìn)后,網(wǎng)絡(luò)中節(jié)點(diǎn)的平均剩余能量在仿真過程中均高于常規(guī)AODV的節(jié)點(diǎn)平均剩余能量.在仿真初期,由于各節(jié)點(diǎn)的初始能量相同,改進(jìn)后的路由協(xié)議在短路由上主要受到跳數(shù)的影響,與AODV協(xié)議建立的路由路徑大致相同,而在長(zhǎng)路由上增加了鏈路影響,可能會(huì)導(dǎo)致路由鏈路的增長(zhǎng).因此,在網(wǎng)絡(luò)路由初期,可能會(huì)出現(xiàn)改進(jìn)協(xié)議消耗能量更多的情況.但隨著路由鏈路的斷裂導(dǎo)致重新進(jìn)行路由修復(fù)和路由發(fā)現(xiàn)后,這種情況得以緩解并消除.從仿真結(jié)果來看,由于AODV協(xié)議路由鏈路斷裂比改進(jìn)協(xié)議更加頻繁,所以AODV路由需花費(fèi)大量網(wǎng)絡(luò)能量在路由路徑的重新建立上,因此仿真前期,網(wǎng)絡(luò)中節(jié)點(diǎn)平均剩余能量之差逐漸遞增.當(dāng)AODV協(xié)議中接收節(jié)點(diǎn)宕機(jī)后,改進(jìn)協(xié)議中的接收節(jié)點(diǎn)仍在工作,有大量的數(shù)據(jù)傳輸能量消耗,因此網(wǎng)絡(luò)中平均剩余能量之差減小.而當(dāng)改進(jìn)協(xié)議中的接收節(jié)點(diǎn)宕機(jī)后,網(wǎng)絡(luò)中各節(jié)點(diǎn)的能量消耗都主要為節(jié)點(diǎn)待機(jī)及節(jié)點(diǎn)路由發(fā)現(xiàn)所消耗的能量,節(jié)點(diǎn)平均剩余能量減少增量相差不大.當(dāng)仿真結(jié)束后,改進(jìn)協(xié)議下的網(wǎng)絡(luò)節(jié)點(diǎn)平均剩余能量仍高于常規(guī)AODV協(xié)議.且通過流量監(jiān)控器對(duì)仿真網(wǎng)絡(luò)中的接收節(jié)點(diǎn)接收數(shù)據(jù)包監(jiān)測(cè),改進(jìn)協(xié)議后,接收節(jié)點(diǎn)成功接收了29826個(gè)數(shù)據(jù)包,比常規(guī)AODV協(xié)議多959個(gè).
本文針對(duì)動(dòng)態(tài)拓?fù)涞南∈鐼UASN的能耗不均衡且鏈路不穩(wěn)定造成的網(wǎng)絡(luò)路由路徑斷裂問題,深入研究了路由路徑建立過程.通過在表示節(jié)點(diǎn)能量狀態(tài)中引入了能量閾值與能量裕度值算法,定量表示節(jié)點(diǎn)在某一時(shí)刻的能量狀態(tài),并根據(jù)路由中各個(gè)節(jié)點(diǎn)的能量狀態(tài)進(jìn)一步改進(jìn)路由路徑選擇機(jī)制,延長(zhǎng)了網(wǎng)絡(luò)的生存周期.為了緩解節(jié)點(diǎn)移動(dòng)時(shí)帶來的網(wǎng)絡(luò)路由路徑斷裂問題,在路由路徑選擇機(jī)制中增添了根據(jù)相鄰節(jié)點(diǎn)的歐氏距離而定量表示的路由路徑質(zhì)量指標(biāo).在路徑選擇機(jī)制中,為在較短路由或可用路由路徑狀態(tài)相似的情況下選擇耗能少的路徑,引入了傳輸功率最小算法.實(shí)驗(yàn)結(jié)果表明,基于能量與路由路徑的改進(jìn)策略能有效提升網(wǎng)絡(luò)整體數(shù)據(jù)量和均衡網(wǎng)絡(luò)節(jié)點(diǎn)能量,并延長(zhǎng)網(wǎng)絡(luò)的壽命.本文基于能量與鏈路改進(jìn)策略主要目的在于提高鏈路穩(wěn)定性并均衡網(wǎng)絡(luò)各節(jié)點(diǎn)中的能量,雖然在一定程度上提高了網(wǎng)絡(luò)整體數(shù)據(jù)量,但在網(wǎng)絡(luò)吞吐量上仍存在提升空間.