陳 浩,劉廣鐘
(上海海事大學(xué) 信息工程學(xué)院,上海 201306)
地球表面大約70%被海水覆蓋,而且現(xiàn)在大部分海洋仍然沒有被開發(fā)。探索水下環(huán)境、開發(fā)海洋資源大大推動(dòng)了水下傳感器網(wǎng)絡(luò)的發(fā)展。水聲傳感器網(wǎng)絡(luò)的設(shè)想能夠應(yīng)用到海洋地理數(shù)據(jù)收集、海洋環(huán)境監(jiān)測、海底探索、輔助導(dǎo)航和戰(zhàn)術(shù)監(jiān)視等方面,可以為水下的各個(gè)應(yīng)用帶來技術(shù)支持與幫助[1-4]。隨著陸上資源的逐漸枯竭和海洋資源的有待開發(fā),水下傳感器網(wǎng)絡(luò)已經(jīng)成為各個(gè)國家研究的重點(diǎn)項(xiàng)目[5]。
水聲通信是物理層技術(shù)的典型應(yīng)用,幾乎大部分的水下通信都采用聲波方式。由于海水的衰減,無線電波不能夠適應(yīng)在水下傳感網(wǎng)絡(luò)。同時(shí)在海水環(huán)境中,由于光通信受到海水散射和吸收的影響,所以無線電和光通信僅用于短距離的水下通信。在大多數(shù)實(shí)際的水聲傳感器網(wǎng)絡(luò)發(fā)展中,水聲通信是唯一可行的技術(shù)[6]。水聲信道具有長傳播延遲、低比特率和容易出錯(cuò)等特點(diǎn)[7]。水聲信號在水中的傳播速度約為1 500 m/s,在水下傳播延遲比地面無線電頻率高五個(gè)數(shù)量級。可用帶寬由傳輸范圍和頻率決定。當(dāng)前水聲環(huán)境復(fù)雜,限制了通信性能,由于路徑損耗、多路徑、多普勒效應(yīng)的影響,水聲信道很容易出錯(cuò)[8-9]。
適用于水聲網(wǎng)絡(luò)的MAC協(xié)議是一個(gè)不同于陸上無線網(wǎng)絡(luò)的新領(lǐng)域。由于海洋環(huán)境的復(fù)雜性,以及陸上協(xié)議物理層的限制,陸上無線網(wǎng)絡(luò)的MAC協(xié)議不能適應(yīng)到水聲網(wǎng)絡(luò)?,F(xiàn)在的水下傳感器網(wǎng)絡(luò)MAC協(xié)議主要分為兩類:一類是競爭的MAC協(xié)議,節(jié)點(diǎn)采用競爭的方式去獲得信道的使用,才能避免沖突,主要的協(xié)議有CSMA、S-MAC、ALOHA等;另一類是基于調(diào)度的MAC協(xié)議,通過控制數(shù)據(jù)的發(fā)送和接收方式,避免數(shù)據(jù)沖突,主要的協(xié)議有CDMA、FDMA、TDMA等。文獻(xiàn)[3]提出了基于調(diào)度劃分時(shí)隙的MAC協(xié)議-S-FAMA(Slotted Floor Acquisition Multiple Access),把時(shí)間劃分為時(shí)隙,所有的報(bào)文進(jìn)行傳送的時(shí)間在每個(gè)時(shí)隙的開始,時(shí)隙的長度大小必須能夠避免發(fā)生報(bào)文沖突。同時(shí)S-FAMA必須保證節(jié)點(diǎn)在發(fā)送數(shù)據(jù)分組之前,要先獲得信道使用權(quán),才能去實(shí)現(xiàn)數(shù)據(jù)分組無沖突傳輸。
雖然S-FAMA協(xié)議避免了數(shù)據(jù)分組的碰撞,但是由于水聲信道具有長傳播延遲特性,該握手機(jī)制將導(dǎo)致較低的系統(tǒng)吞吐量。文獻(xiàn)[5]提出一種具有節(jié)能的水下傳感器網(wǎng)絡(luò)協(xié)議,通過提出CA-ACK自適應(yīng)機(jī)制,根據(jù)信道環(huán)境情況,如果信道環(huán)境良好,自動(dòng)選擇No-ACK機(jī)制,否則選擇Imm-ACK機(jī)制。主要是通過減少ACK確認(rèn)幀的數(shù)量,減少了能量消耗,但是信道利用率不是很高。文獻(xiàn)[10]提出了一種新的協(xié)議,通過考慮節(jié)點(diǎn)間的傳播時(shí)延,動(dòng)態(tài)決定網(wǎng)絡(luò)的凈產(chǎn)值,以避免不必要的長時(shí)延。然而,每個(gè)節(jié)點(diǎn)必須具有高效的計(jì)算資源。另外,這些協(xié)議假設(shè)每個(gè)節(jié)點(diǎn)能夠準(zhǔn)確地計(jì)算出自己和鄰居節(jié)點(diǎn)之間的距離和傳播時(shí)延,但這也是非常不現(xiàn)實(shí)的,因?yàn)楣?jié)點(diǎn)的移動(dòng)性非常強(qiáng)。
CSMA協(xié)議的基本思想:每個(gè)節(jié)點(diǎn)在發(fā)送數(shù)據(jù)前,首先要監(jiān)聽信道是否空閑,如果信道空閑就立即發(fā)送數(shù)據(jù)。根據(jù)監(jiān)聽的策略不同,可以分為二種:非持續(xù)CSMA和持續(xù)CSMA。當(dāng)非持續(xù)CSMA監(jiān)聽到信道忙時(shí),就不再監(jiān)聽信道的狀態(tài),延遲一段時(shí)間再監(jiān)聽信道狀態(tài);而當(dāng)持續(xù)CSMA監(jiān)聽到信道忙時(shí),仍然繼續(xù)監(jiān)聽信道狀態(tài),一直等到信道狀態(tài)空閑開始發(fā)送數(shù)據(jù)。非持續(xù)CSMA會(huì)減少發(fā)送數(shù)據(jù)導(dǎo)致沖突的概率,但會(huì)使得數(shù)據(jù)在網(wǎng)絡(luò)中的平均時(shí)延增加。非持續(xù)性CSMA在包傳輸前通過在發(fā)送方檢測信道狀態(tài)來避免沖突,僅當(dāng)信道空閑時(shí),節(jié)點(diǎn)才會(huì)發(fā)送數(shù)據(jù)包,當(dāng)信道被占用時(shí),節(jié)點(diǎn)便會(huì)隨機(jī)回退一段時(shí)間,然后再次檢測信道。當(dāng)相對傳播時(shí)延微不足道時(shí),CSMA協(xié)議可以有效減少包沖突,因?yàn)楫?dāng)接收方接收到包時(shí),在發(fā)送方檢測的載波偵聽可以很好地反應(yīng)接收方的信道狀態(tài)。然而,當(dāng)水聲網(wǎng)絡(luò)的相對傳播時(shí)延大幅增加時(shí),載波偵聽不再監(jiān)聽接收方的未來狀態(tài),因而便失去了避免沖突的效力,盡管它一直具有擁塞避免的功能[11]。
CSMA協(xié)議在節(jié)點(diǎn)數(shù)量增加比較多后,發(fā)生沖突的概率會(huì)增大。由于在水下環(huán)境,傳輸有一定的距離,數(shù)據(jù)在有限的速率傳輸,所以當(dāng)一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),另一個(gè)節(jié)點(diǎn)要經(jīng)過一段傳播時(shí)間才能夠監(jiān)聽到載波。也就是說,當(dāng)某個(gè)節(jié)點(diǎn)已經(jīng)監(jiān)聽到信道空閑的狀態(tài),信道可能不是真正的空閑狀態(tài),如果這時(shí)節(jié)點(diǎn)發(fā)送數(shù)據(jù)一定會(huì)發(fā)生沖突。如圖1所示,節(jié)點(diǎn)A與節(jié)點(diǎn)B相距1 km,若節(jié)點(diǎn)A在節(jié)點(diǎn)B發(fā)送數(shù)據(jù)幀之前發(fā)送數(shù)據(jù),一定會(huì)發(fā)生沖突。如果節(jié)點(diǎn)的數(shù)量比較多時(shí),當(dāng)有多個(gè)節(jié)點(diǎn)監(jiān)聽到信道狀態(tài)為空閑時(shí),同時(shí)發(fā)送數(shù)據(jù),沖突是沒法避免的。
圖1 傳播延遲對載波監(jiān)聽的影響
當(dāng)節(jié)點(diǎn)數(shù)量相對增加時(shí),CSMA協(xié)議有更低的吞吐率,平均時(shí)延也會(huì)增加,因此結(jié)合雙輪轉(zhuǎn)調(diào)度機(jī)制和CSMA的特點(diǎn),提出了一種高吞吐率和無包沖突的協(xié)議。該協(xié)議并不是全新的協(xié)議,而是一種應(yīng)用到水下傳感網(wǎng)絡(luò)的無碰撞MAC協(xié)議,也就是基于載波偵聽多路訪問協(xié)議(CSMA協(xié)議)的改進(jìn),提出了No Conflict CSMA協(xié)議(NC-CSMA協(xié)議)。每個(gè)節(jié)點(diǎn)傳輸數(shù)據(jù)幀都按照一個(gè)固定的順序。更具體的說,在最后一個(gè)節(jié)點(diǎn)傳輸數(shù)據(jù)幀后,每個(gè)節(jié)點(diǎn)有序地立即傳輸數(shù)據(jù),而不是在等待最大傳播延遲時(shí)間。要做到這樣,每個(gè)節(jié)點(diǎn)要不斷檢測所有收到的數(shù)據(jù)幀。
在網(wǎng)絡(luò)部署時(shí),網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)被選作主網(wǎng)絡(luò)協(xié)調(diào)器,一個(gè)節(jié)點(diǎn)被選為從網(wǎng)絡(luò)協(xié)調(diào)器。在初始階段,其他節(jié)點(diǎn)廣播信號。主網(wǎng)絡(luò)協(xié)調(diào)器和從網(wǎng)絡(luò)協(xié)調(diào)器管理著傳輸數(shù)據(jù)的序列以及網(wǎng)絡(luò)的維護(hù),也能夠測量出信號的強(qiáng)度和到達(dá)的時(shí)間,使網(wǎng)絡(luò)中節(jié)點(diǎn)的位置可以通過計(jì)算得到。通過計(jì)算每個(gè)節(jié)點(diǎn)的位置,網(wǎng)絡(luò)協(xié)調(diào)器得到傳輸數(shù)據(jù)節(jié)點(diǎn)的有序順序表(關(guān)于有序順序的建立公式見2.4節(jié))。其中主網(wǎng)絡(luò)協(xié)調(diào)器得到的是正序的有序節(jié)點(diǎn)信息,從網(wǎng)絡(luò)協(xié)調(diào)器得到的是逆序的有序節(jié)點(diǎn)信息,分別廣播一個(gè)包含正序和逆序的有序序列表的信息。每個(gè)節(jié)點(diǎn)獲得有序序列表后,節(jié)點(diǎn)就根據(jù)協(xié)議以循環(huán)的方式傳輸數(shù)據(jù),其中兩種循環(huán)列表實(shí)現(xiàn)了雙輪轉(zhuǎn)調(diào)度,增加了信道空間利用率。
基于CSMA協(xié)議的水下傳感器網(wǎng)絡(luò),假設(shè)整個(gè)網(wǎng)絡(luò)時(shí)間是同步的,并且主網(wǎng)絡(luò)協(xié)調(diào)器節(jié)點(diǎn)有足夠的能量。首先當(dāng)兩個(gè)節(jié)點(diǎn)同時(shí)競爭一個(gè)信道時(shí),采用CSMA協(xié)議機(jī)制;逆序順序的時(shí)間定義為在數(shù)據(jù)幀長度的接受時(shí)間之后,以上是避免數(shù)據(jù)幀沖突的基礎(chǔ)。
當(dāng)節(jié)點(diǎn)正序和逆序雙傳輸順序廣播到每個(gè)節(jié)點(diǎn),整個(gè)水下傳感器網(wǎng)絡(luò)按照正序循環(huán)和逆序循環(huán)的方式遵循這一順序傳送數(shù)據(jù)。各個(gè)節(jié)點(diǎn)先是按照正序循環(huán)方式進(jìn)行數(shù)據(jù)傳輸,在一定的時(shí)間后,節(jié)點(diǎn)會(huì)按照逆序循環(huán)方式進(jìn)行數(shù)據(jù)傳輸。當(dāng)一個(gè)節(jié)點(diǎn)想要發(fā)送數(shù)據(jù)幀時(shí),它必須等待正序循環(huán)或者逆序循環(huán)順序序列之一輪轉(zhuǎn)到它,才可以去傳輸數(shù)據(jù)幀。下一個(gè)節(jié)點(diǎn)接收到前一個(gè)節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù)幀,觸發(fā)發(fā)送機(jī)制,立即發(fā)送數(shù)據(jù),而不是等待最大的傳播時(shí)延或者保護(hù)時(shí)間。要做到這一點(diǎn),每個(gè)節(jié)點(diǎn)都要不斷地檢測數(shù)據(jù)幀,并將其區(qū)分開來接收幀。當(dāng)一個(gè)節(jié)點(diǎn)檢測到來自前一節(jié)點(diǎn)傳輸載波的終止信息,它會(huì)在一個(gè)硬件的傳輸和接收的過渡時(shí)間后,立即開始傳輸數(shù)據(jù)幀。當(dāng)完成傳輸,節(jié)點(diǎn)返回檢測狀態(tài)。由于采用雙輪調(diào)機(jī)制,每個(gè)節(jié)點(diǎn)不是去檢測信道的忙碌狀態(tài),而是接到上一個(gè)節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù)幀后,開始傳輸數(shù)據(jù)幀,有效地避免CSMA協(xié)議傳播延遲對載波監(jiān)聽的影響。如果上一個(gè)節(jié)點(diǎn)沒有發(fā)送一個(gè)數(shù)據(jù)幀,緩沖區(qū)中沒有數(shù)據(jù)幀,采用超時(shí)計(jì)數(shù)器,達(dá)到一定時(shí)間,節(jié)點(diǎn)仍然會(huì)在很短的時(shí)間內(nèi)開始傳輸。協(xié)議的流程圖如圖2所示。
圖2 NC-CSMA協(xié)議流程
NC-CSMA協(xié)議數(shù)據(jù)傳輸示例如圖3所示。淺灰色的數(shù)據(jù)表示發(fā)送方,黑色的數(shù)據(jù)表示接收方,正序順序?yàn)锳BCDE節(jié)點(diǎn),逆序順序?yàn)镋DCBA節(jié)點(diǎn)。首先,按照正序循環(huán),節(jié)點(diǎn)A發(fā)送數(shù)據(jù)幀給節(jié)點(diǎn)C,但要經(jīng)過節(jié)點(diǎn)B,同時(shí)逆序循環(huán)也在進(jìn)行,節(jié)點(diǎn)E在一定的時(shí)間后(時(shí)間定義為在節(jié)點(diǎn)A按照正序順序開始發(fā)送數(shù)據(jù)長度的發(fā)送時(shí)間與到達(dá)節(jié)點(diǎn)B數(shù)據(jù)的接收時(shí)間之間),按照逆序循環(huán)方式發(fā)送數(shù)據(jù)幀5給節(jié)點(diǎn)D;當(dāng)正序循環(huán)輪訓(xùn)到節(jié)點(diǎn)B,它接收來自節(jié)點(diǎn)A的數(shù)據(jù)幀1傳輸后,發(fā)送數(shù)據(jù)幀2,接著節(jié)點(diǎn)C發(fā)送數(shù)據(jù);在節(jié)點(diǎn)C采用棧數(shù)據(jù)結(jié)構(gòu),以后進(jìn)先出的方式傳輸數(shù)據(jù)幀,也就是當(dāng)節(jié)點(diǎn)C接收到節(jié)點(diǎn)B的數(shù)據(jù)幀后,又檢測到逆序輪訓(xùn)節(jié)點(diǎn)D發(fā)送的數(shù)據(jù)幀,節(jié)點(diǎn)C等待接收節(jié)點(diǎn)D的數(shù)據(jù),而不是去轉(zhuǎn)發(fā)剛接收節(jié)點(diǎn)C的數(shù)據(jù),此時(shí)輪訓(xùn)會(huì)有一個(gè)等待時(shí)延(時(shí)間定義為小于信道長度/傳輸速率);當(dāng)C接收完數(shù)據(jù)后,會(huì)先傳輸節(jié)點(diǎn)D的數(shù)據(jù)幀,再傳輸節(jié)點(diǎn)B的數(shù)據(jù)幀。前一個(gè)節(jié)點(diǎn)沒有數(shù)據(jù)幀發(fā)送,后一個(gè)節(jié)點(diǎn)采用超時(shí)計(jì)數(shù)器,如果達(dá)到一定時(shí)間,仍然會(huì)在很短的時(shí)間內(nèi)開始傳輸,這是不同于等待檢測信道忙碌狀態(tài)的傳統(tǒng)CSMA。通過圖3的數(shù)據(jù)幀傳輸過程,可以認(rèn)識(shí)到NC-CSMA協(xié)議具有無碰撞的特點(diǎn),信道的空間利用率高。
圖3 NC-CSMA協(xié)議數(shù)據(jù)傳輸示例
在靜態(tài)網(wǎng)絡(luò)拓?fù)渲校瑐鬏數(shù)捻樞蚝苋菀讟?gòu)建。在一個(gè)動(dòng)態(tài)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中,有序傳輸?shù)捻樞蚩梢酝ㄟ^網(wǎng)絡(luò)協(xié)調(diào)器動(dòng)態(tài)創(chuàng)建。創(chuàng)建該有序傳輸?shù)捻樞颍W(wǎng)絡(luò)協(xié)調(diào)器可以監(jiān)視每個(gè)信號節(jié)點(diǎn),并檢測網(wǎng)絡(luò)中各節(jié)點(diǎn)的相對位置。在獲取各節(jié)點(diǎn)的相對位置d(c,cj)后,其中,c代表主節(jié)點(diǎn),cj代表靜態(tài)拓?fù)渲械钠溆喙?jié)點(diǎn),網(wǎng)絡(luò)協(xié)調(diào)器通過最鄰近算法,根據(jù)源節(jié)點(diǎn)到目的節(jié)點(diǎn)的距離,建立一個(gè)正序傳輸順序列表a以及逆序傳輸順序列表b。
旅行推銷員問題(Travelling Salesman Problem,TSP)是為了找到有序節(jié)點(diǎn)之間的最小行程距離[12],采用最臨近算法。在單跳網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)往往是小于平均12個(gè)。在解決好TSP問題后,網(wǎng)絡(luò)協(xié)調(diào)器廣播有序的序列,正序傳輸?shù)难h(huán)順序和逆序傳輸?shù)难h(huán)順序到達(dá)每個(gè)節(jié)點(diǎn)后,每個(gè)節(jié)點(diǎn)根據(jù)循環(huán)順序依次進(jìn)行數(shù)據(jù)傳輸,同時(shí)各個(gè)節(jié)點(diǎn)也不斷檢測是否有數(shù)據(jù)要接收,當(dāng)一個(gè)節(jié)點(diǎn)接收到來自前一個(gè)節(jié)點(diǎn)的載波后,就會(huì)立即發(fā)送數(shù)據(jù)。
采用超時(shí)計(jì)數(shù)器,為了保證節(jié)點(diǎn)間按照正序序列或逆序序列進(jìn)行正常傳輸,NC-CSMA協(xié)議是在收到上一個(gè)節(jié)點(diǎn)發(fā)送的正確數(shù)據(jù)幀后,才傳輸自己的數(shù)據(jù)幀。如果上一個(gè)節(jié)點(diǎn)沒有發(fā)送數(shù)據(jù)幀,緩沖區(qū)中沒有數(shù)據(jù)幀,循環(huán)順序傳輸就要停止。一個(gè)簡單的解決方案是發(fā)送一個(gè)長度很小的數(shù)據(jù)幀,去觸發(fā)下一個(gè)傳輸。然而引起的另外一個(gè)問題就是資源浪費(fèi),特別是在水聲通信網(wǎng)絡(luò),該問題是不能忽視的。
在NC-CSMA協(xié)議中,提出利用超時(shí)計(jì)數(shù)器方式來解決這個(gè)問題,在不浪費(fèi)資源的情況下發(fā)送控制包。每一個(gè)節(jié)點(diǎn)都有一個(gè)空閑超時(shí)計(jì)數(shù)器去觸發(fā)傳輸,每個(gè)數(shù)據(jù)幀記錄每個(gè)數(shù)據(jù)幀的到達(dá)時(shí)間,然后根據(jù)該記錄預(yù)測下一傳輸時(shí)間,因?yàn)閮烧咧g的傳輸延遲的記錄在同一節(jié)點(diǎn)相同。如果節(jié)點(diǎn)在預(yù)測的時(shí)間內(nèi),沒有收到來自上一節(jié)點(diǎn)的數(shù)據(jù)幀,空閑超時(shí)計(jì)數(shù)器就開始計(jì)數(shù),每個(gè)節(jié)點(diǎn)在空閑時(shí)的時(shí)間超過超時(shí)計(jì)數(shù)器預(yù)設(shè)值后仍然會(huì)發(fā)送數(shù)據(jù)幀。
拓?fù)涞目刂剖撬聜鞲衅骶W(wǎng)絡(luò)最基本的問題。隨著節(jié)點(diǎn)能量的耗盡,水下傳感器網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)也會(huì)發(fā)生變化,并且動(dòng)態(tài)變化的拓?fù)浣Y(jié)構(gòu)是水下傳感器網(wǎng)絡(luò)的特點(diǎn),然而水下傳感器網(wǎng)絡(luò)的拓?fù)淇刂撇呗杂兄匾囊饬x?,F(xiàn)在,網(wǎng)絡(luò)協(xié)議分層中沒有具體的層次對應(yīng)拓?fù)淇刂茩C(jī)制,但大部分的拓?fù)渌惴ㄊ遣渴鹩诮橘|(zhì)訪問控制層(MAC)和路由層(Routing)之間,它為路由層提供了足夠的路由更新信息;反之,路由表的變化也反作用于拓?fù)淇刂茩C(jī)制,MAC層可以提供給拓?fù)淇刂扑惴ㄠ従影l(fā)現(xiàn)等消息。同理在水下傳感器網(wǎng)絡(luò)中,傳感器節(jié)點(diǎn)的位置也在發(fā)生變化,在NC-CSMA協(xié)議中,網(wǎng)絡(luò)協(xié)調(diào)器會(huì)自動(dòng)檢測各個(gè)節(jié)點(diǎn)的當(dāng)前狀態(tài),并且重新得出雙輪轉(zhuǎn)機(jī)制的順序;如果是網(wǎng)絡(luò)協(xié)調(diào)器節(jié)點(diǎn)能量耗盡,那么整個(gè)網(wǎng)絡(luò)會(huì)重新選擇一個(gè)網(wǎng)絡(luò)協(xié)調(diào)器節(jié)點(diǎn)。使用的機(jī)制是選擇具有能量高的節(jié)點(diǎn)去做網(wǎng)絡(luò)的協(xié)調(diào)器。
由于高移動(dòng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的快速變化,網(wǎng)絡(luò)協(xié)調(diào)節(jié)點(diǎn)為了保持高效率,必須更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的信息。網(wǎng)絡(luò)協(xié)調(diào)器可以監(jiān)控到每個(gè)節(jié)點(diǎn)的信號,不斷獲取關(guān)于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的信息。當(dāng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)改變或節(jié)點(diǎn)失敗,網(wǎng)絡(luò)協(xié)調(diào)節(jié)點(diǎn)廣播關(guān)于傳輸命令的信息,以適應(yīng)拓?fù)渥兓?,并改變雙輪轉(zhuǎn)順序。該方法可以使NC-CSMA協(xié)議拓?fù)淅^續(xù)保持高效率。
為了評估有序NC-CSMA協(xié)議的性能,仿真實(shí)驗(yàn)是在NS2上進(jìn)行[13]。仿真實(shí)驗(yàn)在網(wǎng)絡(luò)流量較大的情況下,對NC-CSMA協(xié)議與CSMA協(xié)議進(jìn)行對比分析。模擬的實(shí)驗(yàn)環(huán)境是一個(gè)6 km×6 km,數(shù)據(jù)分組的長度為4 000 bit,比特率為1 000 bit/s。每個(gè)節(jié)點(diǎn)隨機(jī)分布在模擬環(huán)境中,為了檢測該協(xié)議的效率,在網(wǎng)絡(luò)流量較大的條件下進(jìn)行實(shí)驗(yàn),總有一個(gè)數(shù)據(jù)幀在緩沖區(qū)內(nèi)準(zhǔn)備發(fā)送。每個(gè)節(jié)點(diǎn)的傳輸范圍為10 km,換句話說,每個(gè)節(jié)點(diǎn)都能偵聽到來自網(wǎng)絡(luò)中其他節(jié)點(diǎn)的信號。在該仿真實(shí)驗(yàn)中,不考慮路由算法,主要是在單跳網(wǎng)絡(luò)中,用簡單的方式去評估不同MAC協(xié)議的性能,能夠進(jìn)行公平地評估,減少了協(xié)議之間的差異。
在模擬實(shí)驗(yàn)中,通過測量平均端到端延遲來證明NC-CSMA擁有更小的延遲。端到端的延遲被定義為持續(xù)時(shí)間,從發(fā)送端的緩沖區(qū)的數(shù)據(jù)幀發(fā)送,直到接收方成功地接收數(shù)據(jù)幀。結(jié)果如圖4所示。
圖4 NC-CSMA協(xié)議與CSMA協(xié)議的端到端時(shí)延比較
實(shí)驗(yàn)結(jié)果表明,CSMA有很好的端到端時(shí)延。時(shí)延分為處理時(shí)延、排隊(duì)時(shí)延、傳輸時(shí)延、傳播時(shí)延。排隊(duì)時(shí)延是發(fā)送方等待發(fā)送的時(shí)延,在傳統(tǒng)CSMA協(xié)議中,節(jié)點(diǎn)必須推遲很長的時(shí)延,等待整個(gè)數(shù)據(jù)傳完,如果檢測到信道忙碌,則采用退避算法。而在NC-CSMA中,節(jié)點(diǎn)只需要等待載波經(jīng)過,實(shí)現(xiàn)了最低的排隊(duì)時(shí)延,所以NC-CSMA具有最小的端到端時(shí)延。
網(wǎng)絡(luò)的吞吐量對比如圖5所示。NC-CSMA協(xié)議優(yōu)于CSMA,減少了端到端延遲。實(shí)驗(yàn)結(jié)果表明,與CSMA協(xié)議相比,NC-CSMA協(xié)議的吞吐量隨著節(jié)點(diǎn)密度的增加而增加。傳統(tǒng)CSMA協(xié)議的吞吐量會(huì)隨著節(jié)點(diǎn)密度的增加而降低,這是由于傳統(tǒng)的CSMA協(xié)議在發(fā)送數(shù)據(jù)前要檢測信道是否利用,如果其他節(jié)點(diǎn)在使用信道,則該節(jié)點(diǎn)一直檢測信道,隨著節(jié)點(diǎn)的增加,業(yè)務(wù)量的增加,吞吐量會(huì)下降。
圖5 NC-CSMA協(xié)議與CSMA協(xié)議的吞吐量比較
傳統(tǒng)CSMA協(xié)議雖然利用監(jiān)聽信道的方式來避免沖突,然而當(dāng)水聲網(wǎng)絡(luò)的相對傳播時(shí)延大幅度增加時(shí),載波偵聽不再監(jiān)聽接收方的未來狀態(tài),因而便失去了避免沖突的效力,盡管它一直具有擁塞避免功能[10,14]。針對水下傳感器高時(shí)延的特點(diǎn),提出了NC-CSMA協(xié)議。該協(xié)議對傳統(tǒng)CSMA進(jìn)行了改進(jìn),結(jié)合雙輪轉(zhuǎn)調(diào)度和傳統(tǒng)CSMA的特點(diǎn),每個(gè)節(jié)點(diǎn)傳輸數(shù)據(jù)幀都按照一個(gè)固定的順序,無沖突地傳輸數(shù)據(jù)。仿真實(shí)驗(yàn)表明,NC-CSMA協(xié)議比傳統(tǒng)CSMA協(xié)議具有更高的信道利用率和更小的端到端時(shí)延。
未來的工作應(yīng)集中在一個(gè)整體的跨層,一種能夠形成大規(guī)模多跳的網(wǎng)絡(luò)。相對于大規(guī)模網(wǎng)絡(luò),文中選取的節(jié)點(diǎn)數(shù)量很少,且NC-CSMA不適用于多跳的路由。NC-CSMA不僅可以在水聲網(wǎng)絡(luò)進(jìn)行研究,而且在長傳播延遲的無線網(wǎng)絡(luò)衛(wèi)星通信也可以進(jìn)行研究,將該協(xié)議應(yīng)用于不同的領(lǐng)域也是未來的研究方向。
[1] ANSARI S,GONZALEZ J P,OTERO P,et al. Analysis of MAC strategies for underwater applications[J].Wireless Personal Communications,2015,85(2):359-376.
[2] CHEN Jiwei,GERLA M,LEE Y Z,et al.TCP with delayed ACK for wireless networks[J].Ad Hoc Networks,2011,6(7):1098-1116.
[3] LEE H,YINNIRELLO I,YU J,et al.A performance analysis of block ACK scheme for IEEE 802.11 networks[J].Computer Networks,2012,54(14):2468-2481.
[4] CHIRDCHOO N,SOH W S,CHUA K C.Aloha-based MAC protocols with collosion avoiddance for underwater acoustic networks[C]//Proceedings of 26th IEEE international conference on compute communications.Anchoeage:IEEE,2007:2271-2275.
[5] 張夢娜,劉廣鐘.SE-MAC:一種節(jié)能的水下傳感器網(wǎng)絡(luò)MAC協(xié)議[J].計(jì)算機(jī)技術(shù)與發(fā)展,2015,25(3):67-70.
[6] 鄧 婕.淺海水聲自組網(wǎng)MAC協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)[D].廈門:廈門大學(xué),2009.
[7] 李淑秋,李啟虎,張春華.第六講 水下聲學(xué)傳感器網(wǎng)絡(luò)的發(fā)展和應(yīng)用[J].物理,2006,35(11):945-952.
[8] 王毅凡,周 密,宋志慧.水下無線通信技術(shù)發(fā)展研究[J].通信技術(shù),2014,47(6):589-594.
[9] 夏夢璐.淺水起伏環(huán)境中模型—數(shù)據(jù)結(jié)合水聲信道均衡技術(shù)[D].杭州:浙江大學(xué),2012.
[10] TOKLU S,ERDEM O A.BSC-MAC:energy efficiency in wireless sensor networks with base station control[J].Computer Networks,2014,59(3):91-100.
[11] 常大為,劉雙梅,萬曉榆.基于IEEE 802.15.4的CSMA/CA 性能分析與研究[J].電信工程技術(shù)與標(biāo)準(zhǔn)化,2006,19(1):28-33.
[12] 吳華鋒,陳信強(qiáng),毛奇凰,等.基于自然選擇策略的蟻群算法求解TSP問題[J].通信學(xué)報(bào),2013,34(4):165-170.
[13] 石為人,黃 河,鮮曉東,等.OMNET++與NS2在無線傳感器網(wǎng)絡(luò)仿真中的比較研究[J].計(jì)算機(jī)科學(xué),2008,35(10):53-57.
[14] FARRELL A C,PENG Jun.Performance of IEEE 802.11 MAC in underwater wireless channel[J].Procedia Computer Science,2012,10:62-69.