李 莉,李 進(jìn),路晨賀,靳曉珂,魏宗博
(1.沈陽化工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,遼寧 沈陽 110142;2.遼寧省化工過程工業(yè)智能化技術(shù)重點(diǎn)實(shí)驗(yàn)室,遼寧 沈陽 110142)
由于水下環(huán)境復(fù)雜多變,水聲通信信道具有長傳播延時(shí)、可用帶寬窄、能量受限、多普勒效應(yīng)及多徑效應(yīng)明顯等特點(diǎn)[1-5],使得水聲傳感器網(wǎng)絡(luò)技術(shù)的發(fā)展受到嚴(yán)重制約,亟需性能優(yōu)秀的MAC和路由協(xié)議等。高效的MAC協(xié)議可以控制網(wǎng)絡(luò)節(jié)點(diǎn)對時(shí)間和資源的調(diào)度,減少數(shù)據(jù)沖突,縮短網(wǎng)絡(luò)延時(shí),使信道資源得到充分利用[6-8]。
在水聲傳感器網(wǎng)絡(luò)中,預(yù)約類 MAC 協(xié)議結(jié)構(gòu)復(fù)雜,但可以明顯降低數(shù)據(jù)包沖突的概率,提高網(wǎng)絡(luò)的吞吐量。目前,預(yù)約類MAC協(xié)議的研究主要基于Carrier Sense Multiple Access (CSMA)協(xié)議開展,UW-CSMA/CA[9]協(xié)議是根據(jù)水聲傳感器網(wǎng)絡(luò)的特點(diǎn)對陸上CSMA/CA[10]協(xié)議進(jìn)行的改進(jìn),該協(xié)議能夠根據(jù)信道監(jiān)聽結(jié)果和網(wǎng)絡(luò)分配矢量Network Allocation Vector (NAV)[11]值確定節(jié)點(diǎn)數(shù)據(jù)的發(fā)送和接收。但是由于該協(xié)議NAV值的設(shè)置不能根據(jù)節(jié)點(diǎn)間距離進(jìn)行調(diào)整,而是簡單地采用網(wǎng)絡(luò)中的最大傳播延時(shí)進(jìn)行計(jì)算,導(dǎo)致網(wǎng)絡(luò)傳播延時(shí)比較大[12]。本文針對UW-CSMA/CA協(xié)議的NAV問題進(jìn)行改進(jìn),設(shè)計(jì)了Adjustable-NAV-MAC(AN-MAC)協(xié)議,以此改善冗余延時(shí)問題。
同時(shí),為了使協(xié)議的仿真環(huán)境更加接近實(shí)際網(wǎng)絡(luò)情況,本文基于NS-Miracle仿真器進(jìn)行拓展,將NS-Miracle中的Bellhop聲射線模型與世界海洋仿真系統(tǒng)WOSS進(jìn)行結(jié)合,根據(jù)實(shí)際水域環(huán)境數(shù)據(jù)(溫度、聲速剖面及沉積物等)模擬聲波在水下的傳輸特性,仿真水聲傳感器網(wǎng)絡(luò)的運(yùn)行過程,獲取更接近實(shí)際情況的仿真數(shù)據(jù),提高仿真結(jié)果的有效性。
UW-CSMA/CA協(xié)議采用具有物理載波偵聽和虛擬載波偵聽的握手機(jī)制,數(shù)據(jù)通信過程包括RTS-CTS-DATA-ACK幾個(gè)傳輸階段[13-14]。該協(xié)議的通信過程如圖1所示,S是源節(jié)點(diǎn),D是目的節(jié)點(diǎn)。
圖1 UW-CSMA/CA協(xié)議的通信過程Fig.1 Communication process of UW-CSMA/CA protocol
在網(wǎng)絡(luò)中,當(dāng)源節(jié)點(diǎn)有數(shù)據(jù)包要發(fā)送時(shí),應(yīng)先通過載波偵聽技術(shù)對信道進(jìn)行偵聽。如果信道繁忙,發(fā)送方則需要進(jìn)行退避;如果信道空閑,則源節(jié)點(diǎn)發(fā)送RTS控制幀預(yù)約信道。當(dāng)目的節(jié)點(diǎn)接收到RTS,且在以后的一段時(shí)間內(nèi)不存在數(shù)據(jù)通信,則向源節(jié)點(diǎn)回復(fù)CTS。在源節(jié)點(diǎn)接收到CTS后,立即發(fā)送DATA。目的節(jié)點(diǎn)在接收到源節(jié)點(diǎn)發(fā)送的DATA后,立即回復(fù)ACK并結(jié)束此次通信。源節(jié)點(diǎn)接收到ACK后也隨即結(jié)束此次通信。但是當(dāng)數(shù)據(jù)通信過程發(fā)生異常時(shí),如源節(jié)點(diǎn)未接收到CTS或ACK超時(shí),源節(jié)點(diǎn)則采用NAV機(jī)制退避并進(jìn)行數(shù)據(jù)重傳處理。而對于網(wǎng)絡(luò)中的其他鄰節(jié)點(diǎn),接收到不是發(fā)送給自己的數(shù)據(jù)包時(shí),將保持靜默,保證此次通信順利完成。
圖2為UW-CSMA/CA協(xié)議的NAV設(shè)置及握手過程。通過RTS,CTS控制幀握手,DATA數(shù)據(jù)幀與ACK確認(rèn)幀交互,實(shí)現(xiàn)了數(shù)據(jù)傳輸。在通信過程中,節(jié)點(diǎn)在偵聽控制幀時(shí),鄰節(jié)點(diǎn)會根據(jù)控制幀中包含的傳輸時(shí)間設(shè)置NAV,然后在偵聽到新的控制幀時(shí)更新NAV。而源節(jié)點(diǎn)與目的節(jié)點(diǎn)間的傳播延時(shí)也是設(shè)置NAV的必要條件。以設(shè)置UW-CSMA/CA協(xié)議的NAVCTS為例,目的節(jié)點(diǎn)接收到CTS幀后,節(jié)點(diǎn)間還需要進(jìn)行3次幀的傳播,分別為目的節(jié)點(diǎn)返回CTS幀,源節(jié)點(diǎn)發(fā)送DATA數(shù)據(jù),接收節(jié)點(diǎn)返回確認(rèn)ACK,且經(jīng)過2個(gè)幀間間隙。則NAVCTS設(shè)置為CTS幀、DATA和ACK幀三者之間傳播延時(shí)與DATA數(shù)據(jù)及ACK幀傳輸時(shí)間的總和。
圖2 NAV設(shè)置及握手過程Fig.2 NAV configurations and handshake process
如圖2所示,鄰節(jié)點(diǎn)根據(jù)偵聽到CTS設(shè)置相應(yīng)的NAV,具體實(shí)現(xiàn)如下:
(1)
式中,Tmp_delay為網(wǎng)絡(luò)節(jié)點(diǎn)間的最大傳播延時(shí);SIFS為幀間間隙。
由于該協(xié)議不獲取網(wǎng)絡(luò)中節(jié)點(diǎn)的位置信息,式中Tmp_delay被設(shè)置為網(wǎng)絡(luò)中節(jié)點(diǎn)間的最大傳播延時(shí)。由于網(wǎng)絡(luò)中各節(jié)點(diǎn)的位置不同,節(jié)點(diǎn)間的距離均小于或等于最大距離,節(jié)點(diǎn)間的傳播延時(shí)一定小于或等于最大傳播延時(shí)。因此,采用最大延時(shí)作為退避時(shí)間將會使網(wǎng)絡(luò)中的整體延時(shí)加大,降低了網(wǎng)絡(luò)的吞吐量。針對以上問題,本文對NAV設(shè)置方式進(jìn)行了改進(jìn),采用節(jié)點(diǎn)間距離計(jì)算節(jié)點(diǎn)間實(shí)際延時(shí)替換最大延時(shí)來降低節(jié)點(diǎn)退避時(shí)間,該協(xié)議稱為AN-MAC協(xié)議,其NAV設(shè)置及握手過程如圖3所示。
圖3 AN-MAC協(xié)議的NAV設(shè)置以及握手過程Fig.3 NAV configurations and handshake process of AN-MAC protocol
由圖3可以看出,圖中的Tap_delay為源節(jié)點(diǎn)到目的節(jié)點(diǎn)的實(shí)際傳播延時(shí),它可以通過修改RTS/CTS幀結(jié)構(gòu),根據(jù)節(jié)點(diǎn)間距離及水聲傳播速度等方式進(jìn)行計(jì)算和存儲,其小于圖2中的最大傳播延時(shí)Tmp_delay,采用Tap_delay代替Tmp_delay來計(jì)算NAV,具體實(shí)現(xiàn)如下:
(2)
本文主要對UW-CSMA/CA協(xié)議的傳輸機(jī)制以及NAV取值問題進(jìn)行分析,通過調(diào)節(jié)NAV對節(jié)點(diǎn)間通信時(shí)的退避時(shí)間進(jìn)行分配,提出了一種根據(jù)實(shí)際距離分配NAV的方法——AN-MAC協(xié)議,將傳統(tǒng)的NAV確定方法結(jié)合節(jié)點(diǎn)距離測定算法進(jìn)行改進(jìn),用來解決鄰節(jié)點(diǎn)NAV配置冗余問題,從而降低網(wǎng)絡(luò)整體的延時(shí),提高網(wǎng)絡(luò)吞吐量。
為實(shí)現(xiàn)AN-MAC協(xié)議中NAV的設(shè)置,對UW-CSMA/CA協(xié)議做出如下具體改進(jìn):
(1) 幀結(jié)構(gòu)
修改RTS幀和CTS幀結(jié)構(gòu),如圖4所示,在RTS幀和CTS幀中添加時(shí)間存儲站字段,該字段是為了計(jì)算源節(jié)點(diǎn)與目的節(jié)點(diǎn)間的傳輸時(shí)間差,即2節(jié)點(diǎn)間的實(shí)際傳播延時(shí)Tap_delay。具體操作:在源節(jié)點(diǎn)發(fā)送RTS幀時(shí)記錄當(dāng)前時(shí)刻Ti,當(dāng)目的節(jié)點(diǎn)發(fā)送CTS控制幀時(shí)記錄當(dāng)前時(shí)刻Tk,在時(shí)間存儲字段中記錄2節(jié)點(diǎn)單次傳播延時(shí)Tap_delay,其為Tk與Ti的算術(shù)差。
考慮鄰居節(jié)點(diǎn)沖突問題,建立了鄰居節(jié)點(diǎn)NAV表,由于協(xié)議需要源節(jié)點(diǎn)的CTS/ACK的發(fā)送信息才能管理鄰居NAV表,因此將附加字段(即發(fā)送節(jié)點(diǎn)地址)添加到CTS/ACK。
圖4 AN-MAC協(xié)議的幀結(jié)構(gòu)Fig.4 Frame structure of AN-MAC protocol
(2) 協(xié)議通信過程
AN-MAC協(xié)議的具體通信過程如圖5所示。
源節(jié)點(diǎn)開始建立通信時(shí),以源節(jié)點(diǎn)與目的節(jié)點(diǎn)間的實(shí)際傳播延時(shí)Tap_delay來計(jì)算NAVRTS,這樣NAVRTS被記錄在RTS幀中,監(jiān)測到RTS幀的所有節(jié)點(diǎn)會通過RTS中的NAVRTS來進(jìn)行自身NAV的計(jì)算,NAVRTS的計(jì)算如下:
NAVRTS=4Tap_delay+3SIFS+TCTS+TDATA+TACK。
(3)
圖5 AN-MAC協(xié)議的通信過程Fig.5 Communication process of AN-MAC protocol
當(dāng)目的節(jié)點(diǎn)接收到RTS幀后,讀取其中的NAVRTS,并根據(jù)時(shí)間存儲站計(jì)算出Tap_delay,然后目的節(jié)點(diǎn)發(fā)送CTS幀時(shí)會獲取RTS中的Tap_delay進(jìn)行NAVCTS的計(jì)算,NAVCTS的計(jì)算如式(4)所示。對于DATA幀以及ACK幀的NAV確定也是在Tap_delay基礎(chǔ)上進(jìn)行的。當(dāng)其他節(jié)點(diǎn)偵聽到CTS幀時(shí),會在NAVCTS基礎(chǔ)上進(jìn)行更新。
NAVCTS=3Tap_delay+2SIFS+TDATA+TACK。
(4)
在接收到CTS幀之后,源節(jié)點(diǎn)能夠獲取Tap_delay,并在此基礎(chǔ)上計(jì)算TDATA,然后源節(jié)點(diǎn)將包含TDATA的數(shù)據(jù)包DATA發(fā)送給目的節(jié)點(diǎn)。目的節(jié)點(diǎn)接收到來自源節(jié)點(diǎn)的DATA數(shù)據(jù)包后,其他的鄰節(jié)點(diǎn)已經(jīng)根據(jù)接收到RTS幀和DATA幀中的數(shù)據(jù)將它們的NAV值更新。若目的節(jié)點(diǎn)與源節(jié)點(diǎn)相距較小,則根據(jù)Tap_delay計(jì)算得出新的NAVRTS值也會小于NAVRTS,節(jié)點(diǎn)取消其當(dāng)前的NAV計(jì)時(shí)器,并使用TDATA(式(5))重啟它們。
NAVDATA=2Tap_delay+SIFS+TACK。
(5)
最后,目的節(jié)點(diǎn)返回NAVACK=0,傳輸范圍內(nèi)的其他節(jié)點(diǎn)清除NAV配置開始重新爭用信道。
節(jié)點(diǎn)間的實(shí)際傳播延時(shí)計(jì)算如下:
(6)
式中,Tap_delay為實(shí)際傳播延時(shí),單位為s;l為傳播距離,單位為m;Vs_speed為聲波在海水中的傳播速度,單位為m/s。
由于Tap_delay≤Tmp_delay,使AN-MAC整體傳輸NAV更接近實(shí)際,同時(shí),計(jì)算更精確。
在接下來的現(xiàn)場測評環(huán)節(jié),63名選民代表參加了投票?!皟?yōu)秀票57票,稱職票5票,基本稱職票1票,不稱職票0票,總體評價(jià)為優(yōu)秀?!辨?zhèn)人大主席宣布測評結(jié)果的話音剛落,會場響起了熱烈的掌聲,李興軍緊張的神情才稍稍放松了下來。
本文將世界海洋仿真系統(tǒng)[15](World Ocean Simulation System,WOSS)與聲射線模型Bellhop[16]結(jié)合對NS-Miracle[17](Multi-Interface Cross-Layer Extension Library for the Network Simulator)的水聲傳輸信道進(jìn)行擴(kuò)展,使擴(kuò)展后的 NS-Miracle 仿真系統(tǒng)能夠更準(zhǔn)確地模擬實(shí)際水聲網(wǎng)絡(luò)的相關(guān)特性[18]。
本文基于擴(kuò)展后的NS-Miracle仿真系統(tǒng)對UW-CSMA/CA協(xié)議與本文提出的AN-MAC進(jìn)行仿真對比分析。典型的水下傳感器網(wǎng)絡(luò)分為集中式的拓?fù)浣Y(jié)構(gòu)、分布式拓?fù)浣Y(jié)構(gòu)和鏈?zhǔn)蕉嗵負(fù)浣Y(jié)構(gòu)[19]。本文仿真采用如圖6所示的鏈?zhǔn)蕉嗵負(fù)浣Y(jié)構(gòu),仿真實(shí)驗(yàn)中相鄰節(jié)點(diǎn)間距離為1 000 m,通信系統(tǒng)模型采用BPSK,網(wǎng)絡(luò)層采用靜態(tài)路由。其他仿真參數(shù)設(shè)置如表1所示。
圖6 網(wǎng)絡(luò)仿真拓?fù)銯ig.6 Network simulation topology diagram
表1 網(wǎng)絡(luò)仿真參數(shù)設(shè)置
衡量網(wǎng)絡(luò)性能的指標(biāo)通常包括吞吐量、延時(shí)、誤碼率、能耗等。由于AN-MAC協(xié)議在UW-CSMA/CA 的基礎(chǔ)上對NAV的設(shè)置進(jìn)行改進(jìn),所以仿真著重對歸一化吞吐量和網(wǎng)絡(luò)平均延時(shí)進(jìn)行分析。
仿真實(shí)驗(yàn)設(shè)置每個(gè)節(jié)點(diǎn)的發(fā)包周期在15~200 s,共進(jìn)行了11組仿真實(shí)驗(yàn),每組實(shí)驗(yàn)重復(fù)10次并取平均值,實(shí)驗(yàn)分組情況如表2所示。
表2 網(wǎng)絡(luò)節(jié)點(diǎn)平均發(fā)包周期
根據(jù)仿真結(jié)果計(jì)算每次仿真的平均吞吐量和平均延時(shí),為了方便比較協(xié)議的性能,對平均吞吐量做了如式(7)所示的歸一化處理:
(7)
式中,τn為歸一化吞吐量;τ為網(wǎng)絡(luò)平均吞吐量;t為發(fā)包周期;Lp為以字節(jié)為單位的包長。
AN-MAC協(xié)議與UW-CSMA/CA協(xié)議的歸一化吞吐量對比如圖7所示。
圖7 歸一化吞吐量仿真結(jié)果對比Fig.7 Comparison of normalized throughput simulation results
從圖7可以看出,隨著節(jié)點(diǎn)發(fā)包率的增加,歸一化吞吐量總體呈下降趨勢,當(dāng)平均發(fā)包率較低時(shí),網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包較少,網(wǎng)絡(luò)容量足夠,數(shù)據(jù)包沖突概率較低,因此二者網(wǎng)絡(luò)平均吞吐量未呈現(xiàn)明顯差異。當(dāng)平均發(fā)包率120~140 b/s時(shí),數(shù)據(jù)包傳輸達(dá)到網(wǎng)絡(luò)負(fù)荷,沖突概率明顯增大,隨著發(fā)包率上升,二者歸一化吞吐量差異逐漸明顯。但是總體上AN-MAC協(xié)議的歸一化吞吐量要高于UW-CSMA/CA協(xié)議。
圖8 平均延時(shí)仿真結(jié)果對比Fig.8 Comparison of average delay simulation results
以上仿真結(jié)果表明,AN-MAC協(xié)議根據(jù)節(jié)點(diǎn)間的實(shí)際距離計(jì)算和分配NAV,可以減少網(wǎng)絡(luò)的平均延時(shí),從而提高歸一化吞吐量。當(dāng)網(wǎng)絡(luò)中負(fù)載變大達(dá)到極限時(shí),協(xié)議的性能會明顯變差,網(wǎng)絡(luò)的傳輸延時(shí)明顯上升,吞吐量下降,但是總體看來,在延時(shí)和吞吐量方面,AN-MAC協(xié)議相對于UW-CSMA/CA協(xié)議均有所改善,對信道利用率的提高有一定幫助。
本文對水聲傳感器網(wǎng)絡(luò)MAC協(xié)議進(jìn)行了研究,分析了基于RTS/CTS握手機(jī)制的沖突避免MAC協(xié)議UW-CSMA/CA中NAV值設(shè)置帶來的延時(shí)冗余問題,并對其進(jìn)行了改進(jìn),提出了一種按節(jié)點(diǎn)實(shí)際距離計(jì)算和分配NAV的AN-MAC協(xié)議。根據(jù)節(jié)點(diǎn)間的實(shí)時(shí)距離計(jì)算出實(shí)際的傳播延時(shí)來代替最大傳輸延時(shí),用其確定各節(jié)點(diǎn)的NAV值,進(jìn)而減少冗余延時(shí)。為了提高仿真結(jié)果的有效性,將Bellhop信道模型和世界海洋系統(tǒng)結(jié)合對AN-MAC協(xié)議和UW-CSMA/CA協(xié)議進(jìn)行了仿真。結(jié)果表明,AN-MAC協(xié)議在歸一化吞吐量和平均延時(shí)方面較UW-CSMA/CA均有改善,提高了網(wǎng)絡(luò)中的吞吐量,減少了網(wǎng)絡(luò)延時(shí),對信道資源的利用率有所提高。