(江蘇科技大學(xué)電子信息學(xué)院 鎮(zhèn)江 212003)
水聲通信網(wǎng)絡(luò)是一種由計算、通信等不同功能節(jié)點組成的水下無線傳感器網(wǎng)絡(luò),它在海洋環(huán)境監(jiān)測、資源勘探與開發(fā)、海洋災(zāi)難預(yù)警以及援助導(dǎo)航等方面有著廣泛的應(yīng)用[1]。由于水聲通信網(wǎng)絡(luò)的組網(wǎng)形式特殊,同時水下通信面臨長延時、衰落快以及能量有限等問題,所以它的MAC層協(xié)議的設(shè)計要求與陸地?zé)o線網(wǎng)有所區(qū)別。在水聲通信網(wǎng)絡(luò)中,在兼顧吞吐量、時延的情況下,節(jié)約能量成了水聲通信網(wǎng)絡(luò)需要解決的主要問題[2]。
為了降低能耗,人們提出了基于MAC層的S-MAC協(xié)議。S-MAC協(xié)議在繼承MAC協(xié)議基本功能的基礎(chǔ)上,采用了周期性睡眠機(jī)制,其工作原理是讓沒有發(fā)送或接收任務(wù)的節(jié)點進(jìn)入到睡眠狀態(tài),節(jié)點空閑偵聽時間的減少可以有效降低系統(tǒng)的能量消耗[3]。在數(shù)據(jù)的接收或發(fā)送過程中,為了降低數(shù)據(jù)沖突造成的能耗,協(xié)議采取退避機(jī)制來競爭信道;S-MAC協(xié)議采用RTS/CTS握手機(jī)制,單播信息在發(fā)送者和接收者之間按照RTS/CTS/DATA/ACK的順序進(jìn)行通信,這樣進(jìn)一步避免了串音偵聽;S-MAC協(xié)議的周期性睡眠機(jī)制如圖1所示。
圖1 S-MAC協(xié)議的周期性睡眠機(jī)制
S-MAC協(xié)議是以節(jié)能為需求設(shè)計的一種MAC協(xié)議,該協(xié)議目前還存在一些不足,比如其周期內(nèi)節(jié)點的偵聽活動時間是固定不變的。此外,當(dāng)網(wǎng)絡(luò)中活躍的節(jié)點較多時,數(shù)據(jù)包之間的碰撞概率會隨之增大,進(jìn)而導(dǎo)致網(wǎng)絡(luò)系統(tǒng)的吞吐量下降[4]。針對S-MAC協(xié)議的缺點和不足,本文提出了一種自適應(yīng) 動 態(tài) ES-MAC協(xié) 議(Energy Sensor-MAC,ES-MAC協(xié)議),該協(xié)議首先對S-MAC協(xié)議固定占空比進(jìn)行了改進(jìn),改進(jìn)的方法是增加動態(tài)偵聽活動時間。此外,ES-MAC協(xié)議在S-MAC協(xié)議原有的退避算法基礎(chǔ)上也進(jìn)行了優(yōu)化調(diào)整,引入閾值作為競爭窗口分層調(diào)整的判斷依據(jù)[5]。改進(jìn)后的協(xié)議可以根據(jù)信道中流量的變化情況動態(tài)的調(diào)整偵聽活動時間以及爭用窗口CW的值。
S-MAC協(xié)議采用周期性偵聽/睡眠占空比的工作機(jī)制,當(dāng)信道中沒有數(shù)據(jù)發(fā)送時,節(jié)點進(jìn)入睡眠狀態(tài)。雖然該機(jī)制在一定程度上減少了能耗,但是因為其采用固定的占空比,所以周期內(nèi)節(jié)點偵聽與睡眠的時間是固定不變的,這樣當(dāng)信道無數(shù)據(jù)發(fā)送時,節(jié)點長時間處于偵聽狀態(tài)會帶來無謂的能耗[6]?;赟-MAC協(xié)議的主要原理,針對其存在的問題提出了ES-MAC協(xié)議。與S-MAC協(xié)議采用固定的占空比不同,改進(jìn)后的協(xié)議在周期內(nèi)節(jié)點偵聽時間是動態(tài)變化的[7],如果信道沒有數(shù)據(jù)發(fā)送、接收時,偵聽時段只保留DT(Dynamic Time,DT)部分,如果在給定時間內(nèi)沒有活動事件請求,那么活動結(jié)束,其主要的工作原理如下:
1)當(dāng)節(jié)點i的隊列中沒有數(shù)據(jù)發(fā)送時,設(shè)置給定時間DT=ΔT,這是DT的一個下限;
2)每個周期的空閑偵聽時間長度與△T有關(guān),其中△T應(yīng)滿足:ΔT>C+R+T(其中C為競爭信道時間,R為發(fā)送RTS分組的時間,T為RTS分組結(jié)束到發(fā)出CTS分組開始的時間);
3)當(dāng)節(jié)點i的隊列中分組數(shù)大于0時,DT的值按指數(shù)倍數(shù)增大,即 DT=2αNi×ΔT(α表示增加幅度,與隊列中分組數(shù)有關(guān))。
改進(jìn)后的協(xié)議可以更好地適應(yīng)網(wǎng)絡(luò)流量的變化。當(dāng)網(wǎng)絡(luò)活躍節(jié)點較多時,DT的值開始增大;當(dāng)網(wǎng)絡(luò)中活躍節(jié)點較少時,DT的值會逐漸減小[8]。改進(jìn)前與改進(jìn)后的周期性睡眠機(jī)制對比如圖2所示。從圖中可以看出,與S-MAC協(xié)議相比,改進(jìn)后的ES-MAC協(xié)議增加了動態(tài)偵聽時間DT部分,當(dāng)網(wǎng)絡(luò)中無數(shù)據(jù)發(fā)送或較少數(shù)據(jù)發(fā)送時,可以有效減少處于活動狀態(tài)的時間。
圖2 S-MAC協(xié)議與改進(jìn)后協(xié)議基本機(jī)制的對比
雖然S-MAC協(xié)議采取了數(shù)據(jù)包發(fā)送過程中進(jìn)行通信握手機(jī)制以及節(jié)點載波監(jiān)聽等機(jī)制,但在通信過程中依然存在數(shù)據(jù)包沖突的問題[9]。S-MAC協(xié)議采用的是二進(jìn)制指數(shù)退避算法[10],為了避免數(shù)據(jù)間的沖突,在傳輸過程中會選擇一段隨機(jī)的時間進(jìn)行退避,退避算法將使用一個隨機(jī)退避時間作為計數(shù)器,計數(shù)器將在(0,CW)之間選取一個數(shù),其中CW的值被稱為競爭窗口。如果數(shù)據(jù)發(fā)送失敗,則增大退避窗口CW的值;如果數(shù)據(jù)發(fā)送成功,則減小退避窗口CW的值[11]。雖然BEB退避算法在一定程度上減少了節(jié)點競爭信道的沖突次數(shù),但當(dāng)網(wǎng)絡(luò)活躍結(jié)點數(shù)較多時,碰撞概率開始增大,網(wǎng)絡(luò)的吞吐率明顯降低。
為了減少數(shù)據(jù)傳輸過程中的碰撞,提高網(wǎng)絡(luò)節(jié)點接受、發(fā)送數(shù)據(jù)的效率,引入E[CW]作為信道競爭程度閾值(E[CW]的值與網(wǎng)絡(luò)節(jié)點數(shù)有關(guān)),退避算法競爭窗口的調(diào)整方法如下,
l)當(dāng)CW<E[CW]時,在數(shù)據(jù)發(fā)送成功后,減少競爭窗口CW的值減并與CWmin比較,CW的值計算公式為式(2);如果數(shù)據(jù)發(fā)送失敗,則采用乘性線性增加的方法增大競爭窗口CW的值,以便競爭窗口盡量快速增大,達(dá)到CWmax時乘性增加結(jié)束,此時CW計算公式為式(1)。
2)當(dāng) CW ≥E[CW]時,認(rèn)為當(dāng)前網(wǎng)絡(luò)負(fù)載較大,在數(shù)據(jù)發(fā)生沖突前,增大競爭窗口CW的值,CW的值計算公式為式(3);成功發(fā)送后,競爭窗口CW開始減小,此時CW計算公式為式(4):
改進(jìn)的退避算法流程圖如圖3所示。
圖3 改進(jìn)的退避算法流程圖
為了驗證ES-MAC協(xié)議在網(wǎng)絡(luò)仿真環(huán)境中的效果,需要對ES-MAC協(xié)議進(jìn)行仿真驗證,實驗仿真將在NS2平臺[12]上進(jìn)行。本次仿真實驗選取能量消耗、吞吐量以及網(wǎng)絡(luò)時延三個性能指標(biāo)來評估ES-MAC協(xié)議的性能。本文實驗仿真參數(shù)與參數(shù)值見表l。
表1 仿真參數(shù)及參數(shù)值
能耗問題直接影響水聲通信網(wǎng)絡(luò)的生命周期。仿真實驗中選取數(shù)據(jù)分組間隔作為橫坐標(biāo)的變化量,分組間隔越小說明網(wǎng)絡(luò)負(fù)載流量越大[13]??v坐標(biāo)選取平均能耗,平均能耗為每傳輸一個字節(jié)所消耗的能量大?。?4],網(wǎng)絡(luò)平均能量消耗計算公式(5)為
從圖4中可以看出,在網(wǎng)絡(luò)初始階段ES-MAC協(xié)議平均能耗比S-MAC協(xié)議的平均能耗低一些,但是兩者相差不大。當(dāng)分組間隔減少3s~8s時,網(wǎng)絡(luò)流量逐漸增大,由于S-MAC協(xié)議采用的爭用窗口機(jī)制是在數(shù)據(jù)碰撞發(fā)生后進(jìn)行調(diào)整的,此時能量已經(jīng)消耗,再加上流量增大的情況下會帶來潛在碰撞概率的增加,導(dǎo)致重傳次數(shù)增多,所以其能耗增大明顯。改進(jìn)后的ES-MAC協(xié)議采用的是動態(tài)爭用窗口機(jī)制[15],當(dāng)網(wǎng)絡(luò)信道中流量增大時,在發(fā)送數(shù)據(jù)前爭用窗口會根據(jù)網(wǎng)絡(luò)流量情況自行地進(jìn)行調(diào)整,動態(tài)的爭用窗口機(jī)制對網(wǎng)絡(luò)的適應(yīng)性更強(qiáng)。因此,ES-MAC協(xié)議在這段時間內(nèi)的能耗雖然有所增加,但是整體的變化不會太大。從仿真實驗結(jié)果可以看出,整個仿真過程中,在平均能耗方面,ES-MAC協(xié)議一直低于S-MAC協(xié)議。
圖4 平均能耗仿真圖
網(wǎng)絡(luò)數(shù)據(jù)流的吞吐量是指目的節(jié)點在整個工作時間內(nèi)成功接收到的數(shù)據(jù)包的總數(shù)量。本文仿真的是端到端的平均吞吐量[16],其單位為kbps。網(wǎng)絡(luò)平均吞吐量計算公式(6)為
從圖5可以看出,當(dāng)分組間隔減小時,意味著網(wǎng)絡(luò)負(fù)載的增大,由于S-MAC協(xié)議采用的BEB退避算法不能根據(jù)網(wǎng)絡(luò)負(fù)載動態(tài)的調(diào)整競爭窗口[17],當(dāng)網(wǎng)絡(luò)活躍節(jié)點較多時,發(fā)送數(shù)據(jù)間的碰撞概率增大,同時S-MAC協(xié)議采用固定的占空比機(jī)制,源節(jié)點在進(jìn)行數(shù)據(jù)分組發(fā)送時,需要等待目的節(jié)點從睡眠狀態(tài)中醒來,這樣會導(dǎo)致網(wǎng)絡(luò)中節(jié)點競爭的加劇以及大量的數(shù)據(jù)分組丟失,所以網(wǎng)絡(luò)吞吐量一直較低[18]。改進(jìn)后的ES-MAC協(xié)議能根據(jù)網(wǎng)絡(luò)的流量變化情況提前調(diào)整競爭窗口的值,更好的網(wǎng)絡(luò)適應(yīng)性可以有效降低數(shù)據(jù)之間的碰撞。同時協(xié)議增加了動態(tài)活動的時間,有效減少了網(wǎng)絡(luò)擁擠帶來的潛在碰撞,降低了在傳輸中數(shù)據(jù)分組的丟失以及重傳次數(shù)。整個仿真階段,在網(wǎng)絡(luò)吞吐量性能上,ES-MAC協(xié)議始終高于S-MAC協(xié)議。
圖5 吞吐量仿真圖
時延是指在網(wǎng)絡(luò)中從首個數(shù)據(jù)分組發(fā)送開始計時,到最后一個數(shù)據(jù)分組被接收到截至的時間,平均時延[19]是總時間除以分組的數(shù)目。本文的性能指標(biāo)采用的是平均時延,網(wǎng)絡(luò)平均時延計算公式(7)為
圖6 平均時延仿真圖
從圖6可以看出,在分組間隔10s~8s范圍內(nèi),由于網(wǎng)絡(luò)處在低負(fù)載的狀態(tài),ES-MAC協(xié)議與S-MAC協(xié)議在時延上沒有明顯區(qū)別。隨著分組間隔逐漸減少,S-MAC協(xié)議固定不變的爭用窗口會導(dǎo)致數(shù)據(jù)間碰撞概率的增加[20],數(shù)據(jù)發(fā)送失敗后的重傳直接增大了網(wǎng)絡(luò)的時延。尤其是當(dāng)分組間隔減少3s后,其時延變現(xiàn)更為明顯。ES-MAC協(xié)議引入了動態(tài)占空比機(jī)制,同時改進(jìn)了退避算法,在網(wǎng)絡(luò)在時延方面有著更好的表現(xiàn)。當(dāng)網(wǎng)絡(luò)負(fù)載變大時,引入閾值判斷的退避算法可以根據(jù)當(dāng)前網(wǎng)絡(luò)情況及時調(diào)整競爭窗口的大小,即使網(wǎng)絡(luò)處于擁擠狀態(tài),依然可以有效減少數(shù)據(jù)間碰撞帶來的網(wǎng)絡(luò)時延[21]。在整個仿真過程中,在平均時延性能方面,ES-MAC協(xié)議的基本上一直小于S-MAC協(xié)議。
本文對S-MAC協(xié)議進(jìn)行了理論分析,針對其節(jié)點空閑偵聽時間過長以及固定的爭用窗口不能很好地適應(yīng)網(wǎng)絡(luò)流量變化的情況,提出了自適應(yīng)動態(tài)ES-MAC協(xié)議。該協(xié)議通過增加動態(tài)偵聽活動時間部分,當(dāng)網(wǎng)絡(luò)無數(shù)據(jù)發(fā)送或較少數(shù)據(jù)發(fā)送時,節(jié)點可以有效降低對信道空閑偵聽的活動時間,同時改進(jìn)后的協(xié)議使用動態(tài)可爭用窗口來適應(yīng)網(wǎng)絡(luò)流量的變化。仿真實驗結(jié)果驗證了ES-MAC協(xié)議的可行性與有效性,同時與S-MAC協(xié)議相比,該協(xié)議在節(jié)能、吞吐量以及時延方面均具有更好的性能。