耿文鳳
(鄭州商學院 信息與機電工程學院,河南 鞏義 451200)
由計算、通信等不同功能節點組成的水下無線傳感器網絡稱為水聲通信網絡,該網絡廣泛應用于石油、化學品泄漏檢測、海洋環境檢測、資源勘探與開發及海洋援助導航等領域[1-2]。水聲通信網絡具有特殊的組網形式,也有著傳播延遲,傳輸耗能高,傳播節點移動性等問題,但是,水下通信環境復雜,水下無線信道不穩定性較強,進一步影響了數據通信的傳播[3]。由于水聲信號在水下網絡中的傳播延遲太長,網絡的吞吐量下降過大[4-5]。傳播延遲影響載波傳感器對數據傳輸的檢測,導致載波截獲不能有效地防止分組碰撞,從而降低了S-MAC協議的性能,為此,文獻[6]為提高網絡的有效覆蓋率,實現網絡的全連通,以Sink節點為根節點的樹形拓撲結構,以保證節點間的有效連通為約束條件,以實現最大化覆蓋的部署算法為主,對節點覆蓋的最優位置進行求解,實現了有效覆蓋率的明顯提升。和文獻[7]在傳統感知幀結構的基礎上,基于DBSCAN提出隱馬爾科夫模型協作頻譜預測算法,改進認知無線電網絡頻譜預測的幀結構,有效提高系統吞吐量。
本文在S-MAC協議的基礎上,總結以往研究經驗,設計了一種適用于水聲通信網絡的功率控制PC-CSMA/CA協議,并在該協議的基礎上提出了一種可有效提高網絡吞吐量、降低能耗、改善時延、減少節點暴露沖突的傳輸調度算法。
S-MAC協議可有效減小能量消耗,在MAC層基礎上增加周期性睡眠機制優化設計,促使沒有工作指令的節點自動進入睡眠狀態,減少節點偵聽空閑時間,達到減小系統能量消耗的目的[8]。S-MAC協議采用退避機制來實現在數據的發送和接收中的信道競爭。S-MAC協議中的周期性休眠偵聽機制同時又造成了網絡中業務的延遲較大,在一些傳感器網絡應用中,需要有較高的帶寬、較低的延遲,因此許多學者在S-MAC協議的基礎上研究具有低延遲、高吞吐量性能的MAC協議,如文獻[9]提出的基于跨層優化的低延遲無線傳感器網絡MAC協議(cross-layer optimization and coo rdinated adaptive-listening based MAC,CAL-MAC),該協議可以支持一個基本幀周期內連續3條通信,在吞吐量、延遲等方面較S-MAC協議都有了比較明顯的改善。
S-MAC協議的設計以節能為前提,CAL-MAC協議的設計以改善S-MAC協議中延遲問題為前提,但是上述方法還存在著周期內節點的偵聽活動不可改變、網絡中數據包之間的碰撞概率較大時導致的網絡吞吐量降低等問題,針對S-MAC協議的不足,設計了一種增加數據包的功率控制的PC-CSMA/CA協議。
S-MAC協議采用握手機制,當網絡處于高負載狀態時,由于引入了RTS、CTS、data、ACK等控制幀,S-MAC協議的性能優于非握手協議,但同時也增加了協議的額外開銷,能耗隨之增加[10],與此同時,S-MAC協議的發射功率采用預先設置,設置的時候的需要考慮能滿足最大通信距離要求的功率值。使用功率控制調度算法選擇最優相鄰節點,使網絡中節點的拓撲連接得到優化,在保證網絡連通性的同時,降低通信的沖突率,擴大網絡的吞吐量。信息的傳遞以最優功率發射,并使通信節點具有反作用沖突節點的能力,從而在降低了網絡中傳輸的延遲[11]。
設A表示通信距離最大值,ST表示通信機發射聲源級,TL表示傳播損失,DT表示接受端檢測閾值,NL表示環境噪聲級,依據聲納方程和海洋聲傳播模型[12],當A≥r時,為確保正確接收數據,則需滿足條件如下:
DT≤ST-NL-TL(r)
(1)
TL(r)=μlgr+ar
(2)
由式(1)和式(2)可得:
ST≤μlgr+ar+NL+DT
(3)
其中:μ表示擴展損失系數,因為通信距離較小,所以以球面擴展計算,μ=20;r表示通信距離;a表示吸收系數,基于信號頻道的經驗公式為
(4)
S-MAC協議中最大可能發射聲源級為
STmax=μlgA+aA+NL+DT
(5)
r滿足接收信噪比的最小發射聲源級為
STr=μlgr+ar+NL+DT
(6)
發射功率與發射聲源級關系以公式表示為
P=10(ST-BST)/10/η
(7)
式中,η表示電聲轉換效率,BST為聲功率的聲源級。
r的發射功率最小與默認最大比為
φ=10(STr-STmax)/10=(r/A)β/10×10a(r-A)/10
(8)
由式(8)可知,已知通信距離,可求得相應發射功率,當r減為r/2,接收信噪比不變,發射功率可減小75%以上。適當的發射功率不僅可確保數據正確的傳輸,還能大幅度減小能耗,此優勢對于水聲通信網絡具有十分重要的意義。
數據幀長度比控制幀長度大,有效減小總體能耗的方式為降低數據發送的功率,具體如圖1所示。

圖1 Rts/Cts測通信距離示意圖
參見圖1,節點M發送Rts前時間為t3,接收Cts時時間為t2,節點N的處理時間被忽略,傳播延遲為
x=(t2-t3-t4-t5-t1)/2
(9)
式中,t4表示Rts持續時間,t5為Cts持續時間,通過Rts和Cts數據包長度除數據傳輸速率得到傳播延遲值,t1表示節點N處理時間,利用式(8)可計算出功率百分比值。
在傳播距離小,載波頻率低的情況下,吸收損失較小,可以直接忽略吸收損失造成的誤差[13]。當載波頻率較高時會產生較大的吸收損失,則許對吸收損失部分加以修正以減少估計誤差,與S-MAC協議相比較,PC-CSMA/CA協議增加了數據包的功率控制,有效達到減少能耗的作用。
上述的研究通過CSMA/CA的Rts/Cts預約自適應調整數據包傳輸功率,設計的更適用于水聲通信網絡的新的功率控制PC-CSMA/CA協議。水聲通信網絡傳播延遲較長,節點通信通過握手機制后,Rts控制幀會相鄰節點數據傳輸發生震蕩,為了完成節點的無碰撞傳輸,Rts等待時間需要比傳輸幀抵達最大傳輸范圍存在的傳播延遲更大,同時Cts等待時間也需要比Rts傳輸時間再加雙倍最大傳播延遲時間更大。在PC-CSMA/CA協議的基礎上提出了一種傳輸調度算法,控制幀數據傳輸接收(圖2),節點B和節點C相互暴露,節點B給節點A傳輸一個Rts,節點A在合適的時間后給節點B傳輸一個Cts,合適的時間也為分組傳輸時間加最大傳播延遲,當節點A在等傳輸Cts時,節點C收到了接節點B傳輸的Rts。

圖2 控制幀數據傳輸接收算法示意圖
依據傳輸調度算法偽碼的描述:
Time register level(void * ARG)
struct multiboot_ uinfo*mb=(struct multiboot_ Uinfo *)parameter;
EDF_ uregister_ ulevel(EDF_ Uenable all);//level 0:EDF
CBS_ uregister_ ulevel(CBS_ Uenable all,0);//level 1:CBS
RR_ uegister_ ulevel(RRTICK,RR_.MAIN_ Yes,MB);//level 2:
loop
dummy_ uregister_ Ulevel();//Level 3:Virtual
Register module();
1/resource access protocol
CABS_ uregister_ umudule();
//Resource access protocol
Warning sound;
結合延遲傳輸調度算法流程(圖3)對延遲傳輸調度算法加以闡述[14-16]。

圖3 延遲傳輸調度算法流程框圖
若想實現延遲傳輸調度算法,節點傳輸過程中需要滿足:不能干擾鄰節點的接收,在節點C向節點D傳輸時,節點C的Rts和數據不能干擾節點B對Cts和Ack的接收;節點B的Data和數據不能干擾節點C的Cts和Ack的接收。
檢查節點C發送的Rts對節點A向節點B發送Cts的接收是否造成干擾。當t=0時,節點A發送的Cts在到達節點B的時間TCts(A)為
TCts(A)=TRts(B)+VCts+τCts(A)+VA→B
(10)
式中,節點B發送Rts的傳輸時間為TRts(B),隨機節點控制幀的最大傳播延遲時間為VCts,Cts幀處理時間為τCts(A),節點A發送Cts到節點B的傳輸時間為VA→B。
若想避免節點C發送Rts到節點B的干擾,發送時間排除在式(11)所示的時間范圍內即可。

(11)
式中,VCts(A)為節點A發送Cts到節點B的信號持續時間;VCts(A)為節點A向節點B發送Ack的到達時間;VAck(A)為節點A向節點B發送Ack持續時間。Cts的數據長度為1Cts,數據包的傳輸速率為λData,隨機兩節點數據包最大傳播延遲時間為VData,Data數據包處理時間為τData(B),Ack幀處理時間為τAck(A),Ack數據長度為1Ack。
檢查節點D發送的Cts和Ack對節點B向節點A發送Data的接收是否造成干擾,節點D向節點C發送的Cts的時間為
TCts(D)=TRts(D)+VCts+τCts(D)+VD→C
(12)
式中,節點D發送Rts的傳輸時間為TRts(D),Cts幀處理時間為τCts(D),節點D發送Cts的傳輸時間為VD→C。
當式(13)的時間區間不在式(15)區間中時,節點C發送Rts可進行無干擾傳輸。節點D發送Cts給節點C的信號持續時間為

(13)
其中,VCts(D)為節點D發送Cts給節點C的信號持續時間;TAck(D)為節點D向節點C發送的Ack到達時間;VAck(D)為節點D發送Ack到節點C的持續時間。
節點B向節點C發送Data的到達時間為
TData(B)=TRts(B)+2VCts+τData(B)+τCts(A)+VB→C
(14)
節點B發送Data到節點C的持續時間為
(15)
為了驗證本文研究的水聲通信網絡超低傳輸延遲控制方法的應用效果,以應用于某區域的海洋環境檢測水聲通信網絡為研究對象,從能量消耗、吞吐量和網絡傳輸延遲3個方面進行評估,該水聲通信網絡的相關參數如表1所示。

表1 水聲通信網絡相關參數
目標節點在整體工作時間內,數據包被成功接收到的總量為水聲通信網絡數據流的吞吐量。實驗考量的是端到端的平均吞吐量,分別采用文獻[6]的基于深度可調節節點方法、文獻[7]基于改進幀結構方法以及本文方法分別對所研究水聲通信網絡進行傳輸延時控制,統計3種方法控制下,水聲通信網絡不同分組間隔下端到端的平均吞吐量,結果如圖4所示。其中,從水聲通信網絡中第一個數據分組開始發送時開始計時,直至最后一個數據分組被接收時停止,這段時間被稱之為分組間隔。

圖4 吞吐量曲線
由圖4可知:由于基于深度可調節節點方法不能根據網絡負載動態調整競爭窗口,在面臨活躍節點增多時,會加大發送數據之間的振蕩概率,源節點在發送數據分組時,目標節點還處于睡眠狀態中,增加等待蘇醒過程,會加劇網絡節點之間的競爭,同時也會丟失許多數據分組,導致吞吐量偏低。基于改進幀結構方法能根據網絡的流量變化而改變競爭窗口的值,有效降低了數據之間的振蕩概率,隨著動態活動時間的增加,基于改進幀結構方法能緩解網絡擁擠帶來的振蕩,網絡吞吐量性能明顯優于基于深度可調節節點方法,但是依舊低于本文方法,由于本文方法可檢測相鄰節點傳播延遲及其預期信息進行傳輸調度,利用增加并發傳輸補償長傳播延遲,大幅度降低了節點之間的振蕩概率,明顯提高了水聲通信網絡的吞吐量。實驗結果表明,本文方法控制下的水聲通信網絡端到端的平均吞吐量較好。
不同間隔時間內數據分組數量的延長時間被稱為時延,3種方法控制下不同分組間隔的平均時延結果如圖5所示。

圖5 平均時延實驗結果曲線
由圖5可知:該水聲通信網絡開始處于負載狀態,當分組間隔時間逐漸增加,3種方法控制下的水聲通信網絡時延明顯加大,基于深度可調節節點方法因為爭用窗口固定不定增加數據見的振蕩概率,進行多次數據發送失敗后的重傳,導致網絡的時延增大。基于改進幀結構方法在網絡時延方面表現較好,隨著分組間隔的加大,可以根據當前網絡情況及時調控競爭窗口大小,明顯減少網絡擁擠時數據之間的振蕩,一定程度減少網絡的時延。而利用本文方法解決數據之間在網絡擁擠時的振蕩現象更勝一籌,結果表明,在網絡時延優化上,本文方法效果相對最佳。
能耗的大小對水聲通信網絡的生命周期有較大影響,為此統計3種方法控制下該水聲通信網絡的平均能耗,如圖6所示。

圖6 平均能耗直方圖
由圖6可知:水聲通信網絡處于初始階時,3種方法控制下的水聲通信網絡能耗未出現太大區別,隨著時間間隔的延長,網絡流量逐漸增大,基于深度可調節節點方法因為是在發生數據振蕩之后才進行調整,并且隨著流量的增大,發生震蕩的幾率也劇增,重傳次數隨之增加,所以能量消耗非常大。基于改進幀結構方法具有網路數據自行調整的能力,對網絡適應能力相對更強,并且相對穩定,因此,基于改進幀結構方法在降低能耗方面效果略好于基于深度可調節節點方法,但是依舊不如本文方法,本文方法不僅大幅度降低了水聲通信網絡能量消耗,且本文方法控制下能耗更具穩定性,不受分組間隔時間影響。
基于CSMA/CA協議,提出一種用于水聲通信網絡的超低傳輸延遲調度算法,利用聲納方程和海洋聲傳播模型進行Data幀的功率調整,得到PC-CSMA/CA協議。采用該協議檢測預期信息和相鄰節點傳播延遲,可降低節點暴露沖突的發生,增加并發傳輸的機會;用以補償長傳播延遲,在吞吐量、時延性能、能量損耗各方面均具有明顯優勢,能有效解決因物理位置和傳播延遲引起的空間不公平。