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