蔡文郁,胡畢煒
(杭州電子科技大學電子信息學院,杭州 310018)
隨著海洋開發(fā)和信息產業(yè)的發(fā)展,海洋信道傳遞信息的需求大大增加,水下傳感器網絡的研究意義與實用價值日益凸顯[1],可廣泛應用于海洋資源勘探、海底災害監(jiān)測、意外搜索救援、輔助導航和戰(zhàn)術反潛等領域。水下傳感器網絡具有信道延時大、噪聲高、損耗大、多勒普效應嚴重等特點,水聲信號在介質中會相互干涉,信號不能在一定范圍內同時傳輸,因此水下傳感器網絡中節(jié)點必須按照特定規(guī)則共享同一信道,研究高效與低能耗的MAC協(xié)議對于構建水下傳感網至關重要[2]。
目前國內外已經針對無線傳感網提出了很多較為成熟的MAC協(xié)議,主要可分為非競爭類MAC協(xié)議和競爭類MAC協(xié)議[3]。非競爭類MAC協(xié)議主要包括TDMA(時分復用協(xié)議)、FDMA(頻分復用協(xié)議)以及CDMA(碼分復用協(xié)議),競爭類協(xié)議主要包括MACA(基于信道預約類協(xié)議)、CSMA(載波偵聽類協(xié)議)以及ALOHA(基于隨機多址類協(xié)議)[4]。Azar Z等人[5]設計了一種基于TDMA的水下傳感網MAC協(xié)議,該協(xié)議為所有節(jié)點分配特定的時隙,基站節(jié)點運行一種集中式算法來分配和協(xié)調各個節(jié)點的通信,但是這種集中控制方式會造成大量的能量消耗。Cheon J等人[6]提出了基于OFDM的多信道協(xié)議NOGO-MAC,基站根據與發(fā)送節(jié)點的距離為發(fā)送節(jié)點分配信道,這充分考慮到了水下傳感網的動態(tài)性及鏈路的不確定性,但是該協(xié)議需要一個資源充足的基站進行集中式調度,這對于部署區(qū)域廣闊的水下傳感網而言實現(xiàn)難度較大。Fan G等人[7]提出了一種基于CDMA的MAC協(xié)議,該協(xié)議為每條鏈路安排了不同的擴頻序列,但是也會導致很多不必要的數據包重傳,嚴重浪費本就稀缺的水下帶寬資源。Molins M等人[8]提出了一種基于MACA改進的Slotted-FAMA協(xié)議,采用握手機制避免了數據幀沖突,但是該機制也導致了信道利用率很低。Petrioli C等人[9]提出了基于CSMA的延遲容忍協(xié)議PDAP,利用載波偵聽技術提高網絡帶寬的利用率,但是傳播延時較大,很難有效地避免訪問沖突。Chirdchoo N等人[10]提出了基于ALOHA改進的ALOHA-CA協(xié)議,利用短預約幀競爭信道,但是該協(xié)議中數據包的沖突概率隨著網絡負載增長呈指數增加,不利于突發(fā)數據傳輸場景中使用。
上述協(xié)議大多適用于網絡參數與拓撲結構較為穩(wěn)定的靜止無線傳感網,將其應用在復雜多變的水下環(huán)境時會產生極大的能耗,并且會大量占用原本稀缺的水下帶寬資源[11]。為了克服這些問題,Parrish N等人[12]提出了一種適用于水下傳感網的CSMA-ALOHA混合協(xié)議:CW-MAC。CW-MAC協(xié)議在ALOHA的基礎上增加了隨機退避、虛擬載波偵聽以及數據確認接收機制,從而降低了傳輸信道的數據包碰撞率,保證了整個水下傳感網的高吞吐量以及低能耗,并且其占用水下帶寬資源不多。但是對于不同位置的差異化傳感器節(jié)點,CW-MAC協(xié)議對節(jié)點信道控制權的優(yōu)先級并沒有區(qū)別對待,這就無法保證信道利用的公平性。根據該思想,本文在CW-MAC協(xié)議的基礎上提出了兩種基于異構競爭窗口優(yōu)化策略的水下傳感網MAC協(xié)議(HCW-MAC),以保證差異化節(jié)點信道利用的公平性。
水下傳感器網絡的星型拓撲結構如圖1所示,具有多個水下傳感器節(jié)點和一個Sink節(jié)點,水下傳感器節(jié)點作為發(fā)送節(jié)點,Sink節(jié)點作為唯一的接收節(jié)點,Sink節(jié)點位置一般設置在網絡區(qū)域的中心,傳感器節(jié)點的數據包通過單跳傳輸方式發(fā)送到Sink節(jié)點。
圖1 水下傳感網星型拓撲結構
CW-MAC協(xié)議的工作原理如下:對將要發(fā)送數據的傳感器節(jié)點配置退避計時器,假設第n個發(fā)送節(jié)點的退避時間為Tn,定義如下:
Tn=cwn×δ
(1)
式中:cwn為隨機產生的計時初始值,其取值區(qū)間為[0,CW],CW是所有傳感器節(jié)點計時最大值,δ表示固定時隙,在該時隙內發(fā)送節(jié)點可以通過虛擬載波偵聽信道的狀態(tài)信息。然后每個節(jié)點計時器啟動,通過RTS/CTS、DATA/ACK握手來完成對信道狀態(tài)的虛擬載波偵聽以及數據包的發(fā)送。
CW-MAC協(xié)議中的CW值決定了節(jié)點獲得信道控制權的優(yōu)先級,但是所有發(fā)送節(jié)點CW值相同的設置并不合理。CW-MAC協(xié)議中RTS、CTS以及ACK數據幀都有包含信道狀態(tài)信息,因為數據幀傳播有時延,不同位置的節(jié)點獲得信道狀態(tài)信息的時間也會不同,這就導致節(jié)點在參與信道競爭過程中難以保證公平性,因此節(jié)點獲得信道控制權的優(yōu)先級(即配置的CW值)需要根據其所在位置做出調整。
通過上述分析可知,傳感器節(jié)點所配置的CW值需要根據節(jié)點位置進行優(yōu)化調整。本文提出了兩種異構競爭窗口優(yōu)化策略:基于按到Sink節(jié)點距離異構調整競爭窗口策略的HCW-MACⅠ協(xié)議,基于按到靜默節(jié)點(指當前沒有獲得信道控制權的發(fā)送節(jié)點)距離異構調整競爭窗口策略的HCW-MAC Ⅱ協(xié)議。
在CW-MAC協(xié)議中,當某節(jié)點數據包發(fā)送任務完成后,Sink節(jié)點會廣播ACK數據包給所有下一輪待發(fā)送的節(jié)點,告知數據接收成功且信道處于空閑狀態(tài),但是實際上傳感器節(jié)點的分布并不均勻,如圖2 所示各個節(jié)點到Sink節(jié)點的歐式距離都不相同,因此ACK數據包傳輸到各個發(fā)送節(jié)點的時延存在時間差異。
圖2中Sink節(jié)點A廣播ACK數據包給發(fā)送節(jié)點B、C、D、E、F,其中節(jié)點C發(fā)送任務剛完成。假設所有發(fā)送節(jié)點配置的CW值相同,由于ACK數據包在信道上傳輸的速率不變,因此距離Sink節(jié)點最近的節(jié)點B能夠最早通過ACK數據包獲取信道空閑的信息,距離Sink節(jié)點最遠的節(jié)點F獲取該信息的時間最晚。因此節(jié)點F啟動計時器的時間最晚,從而導致空閑偵聽以及隨機退避的時間最長,節(jié)點F對信道的利用率最低(即F節(jié)點獲得信道控制權的可能性最小)。
圖2 ACK數據包傳播時延差異
通過上述分析可以得知,發(fā)送節(jié)點獲得信道控制權的優(yōu)先級與其到Sink節(jié)點的距離成正比。為了提高各個節(jié)點占用信道的公平性,本文提出基于按到Sink節(jié)點距離不同優(yōu)化調整競爭窗口策略的HCW-MACⅠ協(xié)議,該協(xié)議根據發(fā)送節(jié)點與Sink節(jié)點之間的距離來設置發(fā)送節(jié)點的CW值。其CW值的設置原則是:為了保證各個節(jié)點獲得信道控制權的公平性,對于距離Sink節(jié)點較遠的發(fā)送節(jié)點來說,需要減小其隨機退避的時間來增大控制信道的可能性,因而該節(jié)點的CW值要適當減小;同理,距離Sink節(jié)點較近的發(fā)送節(jié)點的CW值要適當增大。
現(xiàn)在不妨設發(fā)送節(jié)點到Sink節(jié)點的距離值集合S={S1,S2,…,Sn},則發(fā)送節(jié)點到Sink節(jié)點的平均距離為:
(2)
依照上述的CW設置原則,本文針對節(jié)點i配置的CWi值,如式(3)所示:
(3)
式中:cw表示CW-MAC協(xié)議中發(fā)送節(jié)點的競爭窗口初始值。
在CW-MAC協(xié)議中,當某節(jié)點的發(fā)送任務啟動時,該節(jié)點會廣播RTS數據包給Sink節(jié)點以及所有的靜默節(jié)點,告知數據正在請求發(fā)送且信道處于忙碌狀態(tài),但是各個靜默節(jié)點到該節(jié)點的距離各不相同,因此RTS數據包傳輸到各個靜默節(jié)點的時延存在的時間差異。
圖3(a)中,節(jié)點C在發(fā)送任務啟動后,廣播RTS數據包給Sink節(jié)點A以及靜默節(jié)點B、D、E、F,因此其中距離節(jié)點C最近的節(jié)點E能夠最早通過RTS數據包獲取信道忙碌的信息,距離節(jié)點C最遠的節(jié)點F獲取該信息的時間最晚。圖3(b)選取節(jié)點C、E、F對RTS數據包傳播時延差異造成的影響進行分析,其中DC,E、DC,F分別表示RTS數據包在節(jié)點CE、CF之間的傳播時延。假設節(jié)點C在t=0時刻開始發(fā)送,由于節(jié)點E在[0,DC,E]時間段內沒有偵聽到信道忙碌,此時若該節(jié)點發(fā)送RTS數據包會引起碰撞。同理,節(jié)點F在[0,DC,F]時間段內發(fā)送RTS數據包也會造成碰撞。因此,“碰撞率”是本文MAC協(xié)議應該考慮的因素之一。
圖3 RTS數據包傳播時延差異
假定各個節(jié)點的數據包到達服從參數為λ的泊松分布,節(jié)點E、F分別在[0,DC,E]、[0,DC,F]時間段內不會與節(jié)點C產生數據包碰撞的概率為:
(4)
(5)
現(xiàn)在假設M為發(fā)送節(jié)點總數,可以得知節(jié)點i不會與所有靜默節(jié)點產生數據包碰撞的概率為:
(6)
為了減少由數據包碰撞造成的影響,本文提出基于按到靜默節(jié)點距離異構競爭窗口策略的HCW-MAC Ⅱ協(xié)議,該協(xié)議根據發(fā)送節(jié)點與靜默節(jié)點之間的距離來設置發(fā)送節(jié)點的CW值。CW值的設置原則是:與所有靜默節(jié)點之間平均距離較小的發(fā)送節(jié)點,由于其碰撞率較低,可以采取較為激進的發(fā)送策略,即適當減小該節(jié)點設置的CW值,反之采取較為保守的發(fā)送策略,即適當增大該節(jié)點設置的CW值。
現(xiàn)在定義發(fā)送節(jié)點i到所有靜默節(jié)點的平均距離為:
(7)
對所有Sinter(i)求均值有:
(8)
依照上述的CW設置原則,本文針對節(jié)點i配置的 CWi值,提出的計算公式為:
(9)
式中:節(jié)點j表示除i之外的靜默節(jié)點,Si,j表示節(jié)點i、j之間的距離值,cw表示CW-MAC協(xié)議中發(fā)送節(jié)點的競爭窗口初始值。
本文仿真采用了NS-3仿真平臺[13]中的水聲通信網絡(Underwater Acoustic Network)模型,通過該模型對CW-MAC協(xié)議進行性能驗證,并與本文提出的兩種改進型HCW-MAC協(xié)議進行吞吐量與能耗性能的對比分析。仿真環(huán)境假定水下傳感器網絡拓撲采用星型結構,并且傳感器節(jié)點分布于一個圓形區(qū)域,主要仿真參數采用CW-MAC協(xié)議的仿真參數[12],如表1所示。
本文采用平均吞吐量以及平均能耗作為仿真的性能指標。平均吞吐量定義如下:
(10)
式中:NumPacket、PacketSize 與 t 分別表示傳輸成功的數據包數、單個數據包的字節(jié)數以及仿真時間。平均吞吐量Tavg表示每秒傳輸成功的數據位數,單位為bit/s,Tavg值越大表示吞吐量性能越好。
表1 仿真參數初始值
假設傳感器節(jié)點總數為N(包括發(fā)送節(jié)點與Sink節(jié)點),單個數據包傳輸周期為T,由于發(fā)送節(jié)點發(fā)送RTS數據包以及Sink節(jié)點發(fā)送ACK數據包均采用廣播方式,因此單個數據包單次傳輸成功時,發(fā)送節(jié)點的能耗為:
Esend=Ps×[TRTS×(N-1)+TDATA]+Pr×(TCTS+TACK)
(11)
Sink節(jié)點的能耗為:
Ereceive=Ps×[TCTS+TACK×(N-1)]+Pr×(TRTS+TDATA)
(12)
靜默節(jié)點的能耗為:
Eidle={Pr×(TRTS+TACK)+Pi×[T-(TRTS+
TDATA+TCTS+TACK)]}×(N-2)
(13)
式中:Ps、Pr以及Pi分別表示節(jié)點的發(fā)送功率、接收功率以及空閑功率,TRTS、TCTS、TDATA及TACK分別表示發(fā)送或者接收RTS數據包、CTS包、數據包及ACK數據包所消耗的時長。
因此單個數據包單次傳輸成功所需要的總能耗為:
Etotal=Esend+Ereceive+Eidle
(14)
由于數據包也會存在傳輸失敗的情況,本文在仿真過程中將該情況僅歸咎于在握手過程中RTS數據包發(fā)生了碰撞,并且在碰撞后節(jié)點的等待時間為T1,產生碰撞的節(jié)點個數為n,此時單個數據包單次傳輸失敗時的總能耗為:
(15)
在數據包一旦傳輸失敗后會啟動重發(fā)機制,本文仿真時限定了最大為3次的重發(fā)次數,超出限定時數據包丟棄。假設在一個仿真周期內,傳輸成功與失敗的數據包總數為TotalNumPacket,傳輸成功的數據包個數為NumPacket。因此平均能耗計算公式如下:
(16)
平均能耗表示成功傳輸一個數據包所需要消耗的能量,單位為joule/packet,平均能耗Eavg值越小表示能耗性能越好。
本文首先對CW-MAC協(xié)議進行性能驗證:(1)將CW值設為橫軸變量,依次調整發(fā)送節(jié)點個數為5、15以及30,其他參數保持初始值不變,CW-MAC協(xié)議的平均吞吐量以及能耗仿真結果如圖4所示。(2)將CW值設為橫軸變量,依次調整節(jié)點分布圓半徑為100 m、250 m以及400 m,其他參數保持初始值不變,CW-MAC協(xié)議的平均吞吐量以及能耗仿真結果如圖5所示。
圖4 CW-MAC性能仿真(發(fā)送節(jié)點數目不同)
圖5 CW-MAC協(xié)議性能仿真(節(jié)點分布圓半徑不同)
由圖4、圖5可以得到的仿真結論如下:在相同的仿真環(huán)境中,當CW值不斷增大時,信道平均吞吐量呈先上升后下降的趨勢,平均能耗呈先下降后略微上升的趨勢。這是由于CW值在剛開始增加時,各個節(jié)點退避計時區(qū)間增大,從而降低了數據包碰撞的可能性,因此吞吐量以及能耗性能均會顯著提升;CW值增大到一定程度會導致節(jié)點退避時間過長,信道利用率降低,平均吞吐量也會隨之下降,同時引起了節(jié)點不必要的空閑偵聽,由于空閑功耗值略小,因而平均能耗只是略微上升。從上述曲線變化趨勢可知,吞吐量和能耗性能最優(yōu)時均有對應的CW極值點。圖4中發(fā)送節(jié)點個數為5、15、30時吞吐量性能最優(yōu)對應的CW值分別為35、80、188,能耗性能最優(yōu)對應的CW值分別為31、73、185;圖5中節(jié)點分布圓半徑為100 m、250 m以及400 m時吞吐量性能最優(yōu)對應的CW值分別為60、80、133,能耗性能最優(yōu)對應的CW值分別為55、73、127。下文對HCW-MAC協(xié)議的仿真中,配置給各個發(fā)送節(jié)點的是仿真環(huán)境中性能最優(yōu)時對應的CW值。
對HCW-MAC協(xié)議進行性能仿真時,將信道的“輸入負載”設為橫軸變量,“輸入負載”表示數據包大小的歸一化值,當“輸入負載”值為a時,數據包大小為(1 024×a)byte,本文將a的取值區(qū)間設置為[0.1,2.5],步進值為0.1。具體仿真過程分為以下兩部分:①依次調整發(fā)送節(jié)點個數為5、15以及30,其他參數保持初始值不變,3種MAC協(xié)議的平均吞吐量以及能耗仿真結果比對如圖6所示。②依次調整節(jié)點分布圓半徑為100 m、250 m以及400 m,其他參數保持初始值不變,3種MAC協(xié)議的平均吞吐量以及能耗仿真結果比對如圖7所示。
圖6 3種MAC協(xié)議性能仿真比對(發(fā)送節(jié)點數目不同)
圖7 3種MAC協(xié)議性能仿真比對(節(jié)點分布圓半徑不同)
由圖6、圖7可得如下結論:①在相同的仿真環(huán)境中,兩種HCW-MAC協(xié)議的吞吐率、能耗性能相對于CW-MAC協(xié)議均有所提升,并且HCW-MAC Ⅱ協(xié)議的性能提升程度高于HCW-MACⅠ協(xié)議。②從圖6可以得知,當節(jié)點分布范圍一定時,隨著發(fā)送節(jié)點個數增加,HCW-MAC Ⅱ協(xié)議相對HCW-MACⅠ協(xié)議的吞吐率、能耗性能提升優(yōu)勢愈加明顯。這是因為“碰撞率”與發(fā)送節(jié)點個數成正比,基于改善“碰撞率”影響提出的HCW-MAC Ⅱ協(xié)議性能提升明顯。③從圖7可以得知,當發(fā)送節(jié)點個數一定時,兩種HCW-MAC協(xié)議的吞吐率、能耗性能提升程度與節(jié)點分布范圍成正比。這是因為節(jié)點分布范圍越廣,發(fā)送節(jié)點和Sink節(jié)點、靜默節(jié)點之間的平均距離均會越大,因此本文提出的HCW-MAC協(xié)議性能提升越多。
本文針對水下傳感網MAC協(xié)議設計的難題,根據不同傳感器節(jié)點競爭窗口的差異化進行優(yōu)化的思想,在CW-MAC協(xié)議的基礎上提出了兩種改進型HCW-MAC協(xié)議,HCW-MAC協(xié)議針對信道利用的公平性來提升MAC協(xié)議的吞吐量及能耗性能,仿真結果驗證了算法的性能。下一步的工作將研究MAC層與路由層的交互,利用網絡層的路由信息來跨層設計MAC協(xié)議,實現(xiàn)水下傳感網中數據包的多跳傳輸。
[1] 張美燕,蔡文郁. 基于多AUV協(xié)作的稀疏水下傳感網定位技術研究[J]. 傳感技術學報,2017,30(8):1274-1280.
[2] 彭凌峰,劉俊. 水聲傳感網MAC協(xié)議的研究進展[J]. 數字通信,2014,41(2):31-37.
[3] 王佳. 基于蟻群算法和BP神經網絡的信道分配策略的研究[J]. 傳感技術學報,2016,29(3):445-450.
[4] Climent S,Sanchez A,Capella J V,et al. Underwater Acoustic Wireless Sensor Networks:Advances and Future Trends in Physical,MAC and Routing Layers[J]. Sensors,2014,14(3):795-833.
[5] Azar Z,Manzuri M T. A Latency-Tolerant MAC Protocol for Underwater Acoustic Sensor Networks[C]//Proceedings of International Conference on Control,Automation and Systems,Seoul,South Korea,2010:849-854.
[6] Cheon J,Cho H S. A Delay-Tolerant OFDMA-Based MAC Protocol for Underwater Acoustic Sensor Networks[C]//Proceedings of IEEE Symposium on Underwater Technology(UT)and Workshop on Scientific Use of Submarine Cables and Related Technologies(SSC),Tokyo,Japan,2011:1-4.
[7] Fan G,Chen H,Xie L,et al. An improved CDMA-Based MAC Protocol for Underwater Acoustic Wireless Sensor Networks[C]//Proceedings of Wireless Communications,Networking and Mobile Computing,Wuhan,China,2011:1-4.
[8] Molins M,Stojanovic M. Slotted FAMA:A MAC Protocol for Underwater Acoustic Networks[C]//Proceedings of OCEANS 2006,Boston,Massachusetts,USA,2006:1-7.
[9] Petrioli C,Petoccia R. A Comparative Performance Evaluation of MAC Protocols for Underwater Sensor Networks[C]//Proceedings of OCEANS 2008,Quebec City,Canada,2008:1-10.
[10] Chirdchoo N,Soh W S,Chua K. Aloha-Based MAC Protocols with Collision Avoidance for Underwater Acoustic Networks[C]//Proceedings of 26th Annual IEEE Conference on Computer Communications,Anchorage,USA,2007:2271-2275.
[11] Parrish N,Tracy L,Roy S,et al. System Design Considerations for Undersea Networks;Link and Multiple Access Protocols[J]. IEEE Journal on Selected Areas in Communications,2008,26(9):1720-1730.
[12] 李超,王峰,刁博宇,等. 一種新型水下傳感網MAC協(xié)議[J]. 指揮與控制學報,2015,1(4):465-469.
[13] 馬春光,姚建盛. NS-3網絡模擬器基礎與應用[M]. 北京:人民郵電出版社,2013.