田曉靜,杜秀娟,2
(1.青海師范大學(xué)計(jì)算機(jī)學(xué)院,西寧810008;2.高原科學(xué)與可持續(xù)發(fā)展研究院,西寧810008)
水聲網(wǎng)絡(luò)(Underwater Acoustic Networks,UANs)在軍事安全領(lǐng)域、地震災(zāi)害預(yù)測(cè)、水下資源發(fā)現(xiàn)和水下潛艇導(dǎo)航都有廣泛的應(yīng)用[1-4]。在UANs中,無(wú)線電信號(hào)衰減嚴(yán)重,因此UANs中通常用聲信號(hào)進(jìn)行通信[5]。由于水聲信道具有高延時(shí)、低帶寬、能量有限、高節(jié)點(diǎn)移動(dòng)性的特點(diǎn),因此設(shè)計(jì)適用于水下環(huán)境的MAC協(xié)議具有很大的挑戰(zhàn)[6-8]。
夏威夷大學(xué)提出第一個(gè)適用于水下環(huán)境的ALOHA協(xié)議后,許多學(xué)者根據(jù)ALOHA協(xié)議應(yīng)用在水下的弊端,提出了很多新的適用于水下的MAC協(xié)議,因此隨著對(duì)UANs深入研究,水聲網(wǎng)絡(luò)MAC協(xié)議性能越來(lái)越好。目前MAC協(xié)議主要分為三大類:基于無(wú)競(jìng)爭(zhēng)的MAC協(xié)議、基于競(jìng)爭(zhēng)的MAC協(xié)議和基于混合的MAC協(xié)議[9-11]。在水下環(huán)境中,基于無(wú)競(jìng)爭(zhēng)的MAC協(xié)議難以實(shí)現(xiàn),因此在UANs中的MAC協(xié)議是屬于基于競(jìng)爭(zhēng)的MAC協(xié)議和基于混合的MAC協(xié)議這兩大類。在本文中,我們根據(jù)MAC協(xié)議的不同機(jī)制將水聲網(wǎng)絡(luò)MAC協(xié)議分為基于隨機(jī)訪問(wèn)的MAC協(xié)議、基于握手的MAC協(xié)議、基于狀態(tài)的MAC協(xié)議和基于無(wú)沖突的MAC協(xié)議,并對(duì)這四類MAC協(xié)議概述與分析。
本節(jié)中,闡述了設(shè)計(jì)UANs中MAC協(xié)議面臨的時(shí)空不確定性、遠(yuǎn)近效應(yīng)、隱藏終端和暴露終端的四種挑戰(zhàn)。
在陸地傳感器網(wǎng)絡(luò)中,傳播延時(shí)可以忽略,因此只要不同時(shí)傳輸數(shù)據(jù)就可以避免沖突發(fā)生。然而,在UANs中,由于水聲信道的長(zhǎng)傳播延時(shí),節(jié)點(diǎn)位置和發(fā)送時(shí)間都必須考慮。時(shí)空不確定性問(wèn)題可以定義為二維不確定性。接收節(jié)點(diǎn)上的沖突取決于傳輸延時(shí)和傳播延時(shí),也就是在傳輸延時(shí)和傳感器節(jié)點(diǎn)的位置之間變化的二元性。由于傳感器節(jié)點(diǎn)之間的距離的不確定性,即使沒(méi)有其他節(jié)點(diǎn)同時(shí)發(fā)送,數(shù)據(jù)包也可能發(fā)生沖突。
在圖1(a)中,節(jié)點(diǎn)A和節(jié)點(diǎn)C同時(shí)向節(jié)點(diǎn)B發(fā)送。由于節(jié)點(diǎn)A和節(jié)點(diǎn)C與接收節(jié)點(diǎn)B的距離不同導(dǎo)致傳播延時(shí)不同,節(jié)點(diǎn)B在不同的時(shí)間收到節(jié)點(diǎn)A和節(jié)點(diǎn)C傳輸?shù)臄?shù)據(jù)包,因此沒(méi)有產(chǎn)生沖突。在圖1(b)中,節(jié)點(diǎn)A比節(jié)點(diǎn)C更早發(fā)送數(shù)據(jù)包。由于節(jié)點(diǎn)C比節(jié)點(diǎn)A距離接收節(jié)點(diǎn)B更近,傳播延時(shí)更小,因此節(jié)點(diǎn)A和節(jié)點(diǎn)C同時(shí)到達(dá)接收節(jié)點(diǎn)B而發(fā)生沖突。
圖1 時(shí)空不確定性
由于UANs獨(dú)特的特性,解決遠(yuǎn)近效應(yīng)問(wèn)題的嚴(yán)格的功率控制技術(shù)的傳統(tǒng)方法無(wú)法適用于UANs半雙工的通信模式,因此遠(yuǎn)近效應(yīng)成為設(shè)計(jì)水聲網(wǎng)絡(luò)MAC協(xié)議的挑戰(zhàn)之一。遠(yuǎn)近效應(yīng)是指接收節(jié)點(diǎn)同時(shí)接收兩個(gè)距離不相同的發(fā)送節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包時(shí),距離接收節(jié)點(diǎn)較近的發(fā)送節(jié)點(diǎn)信號(hào)較強(qiáng),距離接收節(jié)點(diǎn)較遠(yuǎn)的發(fā)送節(jié)點(diǎn)信號(hào)較弱,距離接收節(jié)點(diǎn)較近的發(fā)送節(jié)點(diǎn)的強(qiáng)信號(hào)會(huì)對(duì)距離接收節(jié)點(diǎn)較遠(yuǎn)的發(fā)送節(jié)點(diǎn)的弱信號(hào)產(chǎn)生嚴(yán)重的干擾。如圖2所示,節(jié)點(diǎn)b和節(jié)點(diǎn)c向節(jié)點(diǎn)a發(fā)送數(shù)據(jù)包,節(jié)點(diǎn)a與節(jié)點(diǎn)b的距離為d1,節(jié)點(diǎn)a與節(jié)點(diǎn)c的距離為d2,d2大于d1,若節(jié)點(diǎn)b和節(jié)點(diǎn)c都有同樣的發(fā)射功率,節(jié)點(diǎn)a接受節(jié)點(diǎn)b的信號(hào)強(qiáng)度更大,來(lái)自節(jié)點(diǎn)b的強(qiáng)信號(hào)會(huì)對(duì)來(lái)自節(jié)點(diǎn)c的弱信號(hào)產(chǎn)生干擾,接收節(jié)點(diǎn)a從不同的發(fā)送節(jié)點(diǎn)接收到信號(hào)的信噪比不同。
圖2 遠(yuǎn)近效應(yīng)
隱藏終端是兩個(gè)節(jié)點(diǎn)不知道彼此的存在,正在傳輸數(shù)據(jù)包的兩個(gè)節(jié)點(diǎn)可能在同一個(gè)接收節(jié)點(diǎn)處發(fā)生沖突。如圖3所示:節(jié)點(diǎn)B對(duì)于節(jié)點(diǎn)A與節(jié)點(diǎn)C都是可見(jiàn)的,但是節(jié)點(diǎn)A與節(jié)點(diǎn)C互相不可見(jiàn)。節(jié)點(diǎn)A和節(jié)點(diǎn)C向節(jié)點(diǎn)B發(fā)送的數(shù)據(jù)包可能會(huì)在節(jié)點(diǎn)B處發(fā)生沖突。隱藏終端會(huì)使得UANs中沖突的大量產(chǎn)生,并降低吞吐量,提高能量消耗。
圖3 A與C互為隱藏終端,C與F互為暴露終端
暴露終端是由于一個(gè)節(jié)點(diǎn)偵聽(tīng)到另一個(gè)數(shù)據(jù)傳輸,而推遲該節(jié)點(diǎn)數(shù)據(jù)傳輸,此時(shí)產(chǎn)生暴露終端的問(wèn)題。如圖3所示,節(jié)點(diǎn)D和E在彼此的傳輸范圍內(nèi),節(jié)點(diǎn)C和節(jié)點(diǎn)E不在彼此傳輸范圍內(nèi),節(jié)點(diǎn)D和節(jié)點(diǎn)F不在彼此傳輸范圍內(nèi)。當(dāng)節(jié)點(diǎn)D給節(jié)點(diǎn)C傳輸數(shù)據(jù)時(shí),節(jié)點(diǎn)E想要啟動(dòng)給節(jié)點(diǎn)F的數(shù)據(jù)傳輸,節(jié)點(diǎn)E會(huì)偵聽(tīng)信道,節(jié)點(diǎn)E偵聽(tīng)到來(lái)自節(jié)點(diǎn)D的數(shù)據(jù)包,認(rèn)為信道被占用而延遲給節(jié)點(diǎn)F的數(shù)據(jù)傳輸。然而節(jié)點(diǎn)D向節(jié)點(diǎn)C的數(shù)據(jù)傳輸并不會(huì)干擾和節(jié)點(diǎn)E向節(jié)點(diǎn)F的數(shù)據(jù)傳輸。在帶寬有限的UANs中暴露終端會(huì)降低信道利用率和吞吐量。
水聲網(wǎng)絡(luò)的MAC協(xié)議一般分為無(wú)競(jìng)爭(zhēng)的MAC協(xié)議、基于競(jìng)爭(zhēng)的MAC協(xié)議和混合MAC協(xié)議。無(wú)競(jìng)爭(zhēng)的MAC協(xié)議包含頻分多址(FDMA)、時(shí)分多址(TD-MA)和碼分多址(CDMA)[9-11]。由于水聲信道可用帶寬窄,使用FDMA難以將信道分為多個(gè)子頻;TDMA在UANs中時(shí)鐘同步問(wèn)題難以解決;在UANs中使用CD-MA,難以解決遠(yuǎn)近效應(yīng)問(wèn)題。因此無(wú)競(jìng)爭(zhēng)的MAC協(xié)議并不適用UANs。在UANs中,大多數(shù)的MAC協(xié)議時(shí)基于競(jìng)爭(zhēng)的MAC協(xié)議和基于混合的MAC協(xié)議。本節(jié)中,根據(jù)現(xiàn)有MAC協(xié)議的不同的特點(diǎn),分別對(duì)UANs中MAC協(xié)議的現(xiàn)狀研究與分析。
夏威夷大學(xué)提出的ALOHA協(xié)議與Slotted ALOHA協(xié)議。ALOHA協(xié)議每個(gè)節(jié)點(diǎn)可以隨時(shí)發(fā)送數(shù)據(jù)包,簡(jiǎn)單易行,但是極易產(chǎn)生沖突,Slotted ALOHA協(xié)議在ALOHA協(xié)議的一個(gè)改進(jìn),它把信道時(shí)間劃分為不同的時(shí)隙,每個(gè)節(jié)點(diǎn)只能在一個(gè)時(shí)隙的開(kāi)始處傳送數(shù)據(jù),減少了數(shù)據(jù)沖突的可能,但是在UANs中時(shí)鐘同步是一個(gè)難題[12-13]。
Park等人提出得UWAN-MAC協(xié)議使用SYNC短控制包廣播節(jié)點(diǎn)的睡眠—喚醒的周期,以避免沖突,節(jié)約能量消耗[14]。初始化階段,每個(gè)節(jié)點(diǎn)在[0,T0]間隔內(nèi)隨機(jī)選擇一個(gè)時(shí)間廣播一個(gè)SYNC控制包,該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)根據(jù)收到的SYNC控制包獲得該節(jié)點(diǎn)的睡眠時(shí)間。初始化階段結(jié)束,喚醒該節(jié)點(diǎn)傳輸數(shù)據(jù)包。該MAC協(xié)議必須在長(zhǎng)的、未知的傳播延遲下工作。使用相對(duì)時(shí)間戳,不管是在數(shù)據(jù)傳輸中還是與新加入的節(jié)點(diǎn)建立通信時(shí)都允許節(jié)點(diǎn)在同步環(huán)境中操作,在這種環(huán)境中,節(jié)點(diǎn)可以在不通信的剩余時(shí)間內(nèi)保持睡眠并節(jié)省能量。
Chirdchoo等人提出了具有預(yù)先通知的Aloha協(xié)議(Aloha-AN),Aloha-AN需要每個(gè)節(jié)點(diǎn)維護(hù)它自己的表,以監(jiān)視相鄰節(jié)點(diǎn)的忙綠時(shí)間[15]。表中的每個(gè)條目標(biāo)識(shí)該節(jié)點(diǎn)該相鄰節(jié)點(diǎn)是否繁忙。每一次當(dāng)節(jié)點(diǎn)成功接收到NTF控制包時(shí),它計(jì)算每個(gè)節(jié)點(diǎn)(包括其本身)上相關(guān)數(shù)據(jù)包引起的繁忙持續(xù)時(shí)間。在插入條目之前,它需要檢查相關(guān)聯(lián)的數(shù)據(jù)包是否會(huì)導(dǎo)致與自己的預(yù)定數(shù)據(jù)包傳輸沖突。如果沒(méi)有沖突,將插入該條目。否則,為了避免沖突,將會(huì)開(kāi)啟隨機(jī)退避時(shí)間,退避結(jié)束后重新發(fā)送一個(gè)新的NTF控制包,發(fā)送自己的數(shù)據(jù)包并將條目插入到表中。這樣通過(guò)預(yù)先通知一個(gè)短的NTF控制包,避免數(shù)據(jù)傳輸過(guò)程中沖突的產(chǎn)生。
上述的MAC協(xié)議都是基于隨機(jī)訪問(wèn)的MAC協(xié)議由于無(wú)法檢測(cè)隱藏終端,不能適用于多跳UANs中,并不能有效地用于UANs中。
Fullmer等人提出的FAMA協(xié)議是通過(guò)增加RTS/CTS控制包的長(zhǎng)度,來(lái)避免沖突,但是過(guò)長(zhǎng)的RTS/CTS控制包持續(xù)占用信道造成能量極大的浪費(fèi)并且降低了信道利用率[16]。Molins等人提出的Slotted-FAMA協(xié)議是在FAMA協(xié)議的基礎(chǔ)上引入時(shí)隙技術(shù),因此,短的控制包也可以避免沖突[17]。但是Slotted-FAMA協(xié)議中,每次數(shù)據(jù)傳輸之前都需要經(jīng)過(guò)一系列的握手,且同一時(shí)間內(nèi)只有一組數(shù)據(jù)進(jìn)行傳輸。
Peleato等人提出的DACAP協(xié)議,當(dāng)接收節(jié)點(diǎn)接收到一個(gè)RTS包時(shí),發(fā)送節(jié)點(diǎn)立刻回復(fù)一個(gè)CTS包,然后接收節(jié)點(diǎn)等待接收數(shù)據(jù)包[18]。如果接收節(jié)點(diǎn)在發(fā)送CTS包后,偵聽(tīng)到有其他的數(shù)據(jù)包可能會(huì)干擾其接收數(shù)據(jù)包,就向其鄰居節(jié)點(diǎn)發(fā)送一個(gè)警告包,避免沖突的產(chǎn)生。一個(gè)發(fā)送節(jié)點(diǎn)接收到CTS包后,會(huì)等待一段時(shí)間后再發(fā)送數(shù)據(jù)包,若發(fā)送節(jié)點(diǎn)聽(tīng)到其他的數(shù)據(jù)傳輸或者從鄰居節(jié)點(diǎn)聽(tīng)到警告包,則會(huì)推遲數(shù)據(jù)包的傳輸。DACAP是一種易于擴(kuò)展到不斷變化的節(jié)點(diǎn)數(shù)量和網(wǎng)絡(luò)覆蓋區(qū)域的避免沖突協(xié)議,不需要時(shí)間同步,就可以有效地避免沖突產(chǎn)生。
錢良芳等人提出的基于預(yù)約的數(shù)據(jù)隊(duì)列水下無(wú)線傳感器網(wǎng)絡(luò)MAC協(xié)議,該協(xié)議每個(gè)數(shù)據(jù)周期包含預(yù)約、預(yù)約確認(rèn)、數(shù)據(jù)傳輸、應(yīng)答四個(gè)周期[19]。使用RTS/CTS握手機(jī)制完成信道的預(yù)約、確認(rèn)以及數(shù)據(jù)傳輸?shù)捻樞?。?dāng)所有的數(shù)據(jù)傳輸都成功的預(yù)約信道后,發(fā)送節(jié)點(diǎn)依次的進(jìn)行數(shù)據(jù)傳輸,使得多對(duì)節(jié)點(diǎn)之間的數(shù)據(jù)傳輸按照預(yù)約信道的順序依次完成。這種傳輸機(jī)制有效地減少了節(jié)點(diǎn)預(yù)約信道的時(shí)間以及數(shù)據(jù)傳輸?shù)却臅r(shí)間,基于預(yù)約的MAC協(xié)議可以使得多對(duì)節(jié)點(diǎn)通過(guò)一次預(yù)約進(jìn)行不沖突的數(shù)據(jù)傳輸。
上述的MAC協(xié)議都是基于RTS/CTS握手的MAC協(xié)議,這類MAC協(xié)議解決了基于隨機(jī)訪問(wèn)MAC協(xié)議不能解決隱藏終端和不能應(yīng)用于多UANs的問(wèn)題。然而水下環(huán)境是復(fù)雜并且多變的,水聲信道具有高延遲、低帶寬和高誤碼率的特點(diǎn)。節(jié)點(diǎn)之間的握手不僅大大降低了網(wǎng)絡(luò)的吞吐量,提高了能量消耗,同時(shí)也延長(zhǎng)了數(shù)據(jù)傳輸?shù)钠骄鶗r(shí)延。
Du等人提出的基于狀態(tài)的MAC協(xié)議使用分層算法,將節(jié)點(diǎn)分為不同的層級(jí),并從第一層開(kāi)始自上而下為每一個(gè)節(jié)點(diǎn)分配擴(kuò)頻碼,實(shí)現(xiàn)盡可能多的并發(fā)傳輸[20]。通過(guò)偵聽(tīng)信道中的數(shù)據(jù)包或者ACK控制包來(lái)獲取節(jié)點(diǎn)狀態(tài)并維護(hù)節(jié)點(diǎn)的鄰居表,根據(jù)接收節(jié)點(diǎn)的狀態(tài)決定是否傳輸數(shù)據(jù)包。沒(méi)有使用RTS/CTS握手機(jī)制,也可以避免沖突的產(chǎn)生。避免使用大量的控制包帶來(lái)的高能耗、高延時(shí)和低信道利用率的不足。
基于狀態(tài)的MAC協(xié)議和基于握手的協(xié)議不同的是不用要RTS/CTS控制包也可以有效地避免沖突。在信道利用率、端到端延時(shí)和能耗方面都有明顯的優(yōu)勢(shì)。該類MAC協(xié)議在低帶寬、能量有限高延時(shí)的水下環(huán)境中應(yīng)用性更高。
ALFOUZAN等人提出的GC-MAC協(xié)議是一種與圖著色無(wú)沖突的MAC協(xié)議[21]。GC-MAC協(xié)議根據(jù)圖著色技術(shù),實(shí)現(xiàn)了在任何兩跳鄰居節(jié)點(diǎn)中實(shí)現(xiàn)盡可能多的并發(fā)無(wú)沖突傳輸,使用時(shí)分多址(TDMA)的方法,給每個(gè)兩跳鄰居節(jié)點(diǎn)分配單獨(dú)的時(shí)隙、顏色,相同顏色的節(jié)點(diǎn)可以同時(shí)傳輸數(shù)據(jù)包而沒(méi)有沖突的產(chǎn)生。節(jié)點(diǎn)在某些時(shí)隙中處于清醒狀態(tài),以傳輸或接收數(shù)據(jù),并在剩余的時(shí)隙上休眠,節(jié)約了能量消耗。對(duì)于兩種可能沖突的情況使用了沖突檢測(cè)算法來(lái)保證數(shù)據(jù)包通過(guò)調(diào)度階段的無(wú)沖突傳輸。
表1 幾種MAC協(xié)議性能比較
Kredo等人提出的STUMP協(xié)議是一種基于TDMA的無(wú)沖突MAC協(xié)議[22]。STUMP協(xié)議中,節(jié)點(diǎn)根據(jù)本地信息提出的調(diào)度約束,并找到滿足這些約束的時(shí)間表。網(wǎng)絡(luò)中的每個(gè)沖突都需要一個(gè)調(diào)度約束來(lái)解決它。通過(guò)估計(jì)傳播時(shí)延可以使節(jié)點(diǎn)構(gòu)造并行通信的約束,并減少信道保持空閑的時(shí)間,同時(shí)防止沖突。
Hsu等人提出的ST-MAC協(xié)議是一種無(wú)沖突的MAC協(xié)議[23]。ST-MAC協(xié)議通過(guò)創(chuàng)建沖突圖來(lái)使用全局拓?fù)湫畔ⅰT搮f(xié)議能夠用該沖突圖調(diào)度所有傳感器節(jié)點(diǎn),以提高網(wǎng)絡(luò)性能。然而,它使用了一種集中式調(diào)度算法(即使用全局網(wǎng)絡(luò)的拓?fù)湫畔ⅲ捎谘舆t高和傳輸速率低,在UANs中收集信息開(kāi)銷很大。
上述的MAC協(xié)議都是基于無(wú)沖突的MAC協(xié)議,這類的MAC協(xié)議旨在防止沖突的產(chǎn)生,然而無(wú)沖突的代價(jià)是能耗高、吞吐量低、延時(shí)大和信道利用率低,因此無(wú)沖突的水聲網(wǎng)絡(luò)MAC協(xié)議是在某種程度上比較有優(yōu)勢(shì)。
本文將水聲網(wǎng)絡(luò)MAC協(xié)議分為四種類型,闡述四種類型中各個(gè)MAC協(xié)議的機(jī)制,通過(guò)表1對(duì)各個(gè)MAC協(xié)議的性能比較。然而由于水聲網(wǎng)絡(luò)獨(dú)特的特性,設(shè)計(jì)和地面MAC協(xié)議一樣成熟的水聲網(wǎng)絡(luò)MAC協(xié)議有很大的困難。目前UANs中現(xiàn)有的水聲網(wǎng)絡(luò)MAC協(xié)議主要針對(duì)協(xié)議公平性、能量效率、吞吐量和延時(shí)進(jìn)行設(shè)計(jì)與改進(jìn)。大部分現(xiàn)有的水聲網(wǎng)絡(luò)MAC協(xié)議是以一種性能為代價(jià)而提高協(xié)議的另一個(gè)性能。若這些水聲網(wǎng)絡(luò)MAC協(xié)議應(yīng)用在真實(shí)的水下環(huán)境中是有一些弊端的。
未來(lái)工作中,對(duì)于水聲網(wǎng)絡(luò)MAC協(xié)議的研究應(yīng)該著力解決真實(shí)水下環(huán)境中存在的現(xiàn)實(shí)問(wèn)題,真實(shí)的水下環(huán)境中節(jié)點(diǎn)是移動(dòng)的,而現(xiàn)有的水聲網(wǎng)絡(luò)MAC協(xié)議都假定節(jié)點(diǎn)不移動(dòng)或者移動(dòng)很小,未來(lái)我們著力于設(shè)計(jì)一種真正適用于真實(shí)水下環(huán)境,傳感器節(jié)點(diǎn)移動(dòng)也不會(huì)降低性能的MAC機(jī)制,并不需要以延時(shí)、能耗和吞吐量中的一種性能為代價(jià)來(lái)避免沖突。