本發明涉及水下傳感器網絡中mac協議設計方法。
背景技術:
近年來,水下聲學傳感器網絡(underwateracousticsensornetworks,uasns)成為新的研究熱點之一。uasns的應用推進了對海洋環境的研究,對經濟、科研、軍事等領域都具有重大意義。然而,目前海水中只能使用傳播速度較慢的聲波進行有效通信,所以水聲通信具有長時延、低帶寬的特性。由于長時延的存在,距離目的節點較遠的節點發送的數據包總是較晚到達,若此時已有其他數據包到達目的節點,目的節點會推遲轉發較晚到達的數據包,甚至不轉發。這一特性嚴重降低了水聲通信的公平性。此外,由于洋流、溫度等原因,水下環境復雜多變。距離較遠的兩節點在通信的過程中,可能會由于信道環境突變而造成丟包,這使得水聲通信成功率較低,即可靠性較低。所以,如何提高通信的可靠性,同時又能保證公平性成為亟待解決的問題。
已有的水聲通信mac接入方法中,節點均為全向通信——節點通信范圍為球體,這使得節點在與一個鄰居節點通信時,會對多個其他鄰居節點造成干擾,使其無法正常通信。由于水下節點部署稀疏且可用的聲譜資源有限,這種通信方式嚴重降低了網絡吞吐量。若為節點部署指向性換能器,節點則可以進行指向性通信,即聲能主要集中在角度為α的球冠區域內,α稱為波速寬度,則可有效降低節點間干擾,提高吞吐量。
技術實現要素:
本發明克服現有技術的上述不足,提供一種高可靠性水聲網絡mac接入方法,技術方案如下:
一種水聲網絡mac接入方法,包括下列步驟:
1)源節點有數據包需要發送時,以最大功率全向發送預約請求控制包rts,包含波束寬度α和自身發射功率,源節點輻射范圍內的所有節點收到rts后,計算自身相對于源節點的信噪比,同時由信號到達角aoa計算源節點相對于自身的方位角和仰角
2)收到第一個rts后,目的節點等待時長w,在此期間,當網絡狀態較好時,目的節點只收到一個rts控制包,此時目的節點繼續向下一跳轉發;當網絡負載較大時,目的節點會收到來自多個節點的rts控制包,此時目的節點為每個源節點定義優先級δ,信噪比越高、同一個數據包請求發送的次數越多,優先級δ越大,目的節點選取δ值最大的節點作為通信節點,并全向廣播預約確認數據包cts,其中包括被選中的節點信息。收到cts的節點計算目的節點相對于自身的方位和信噪比后,建立信道狀態矩陣h和鄰居節點方位矩陣l:矩陣h中元素為信噪比,矩陣l中元素為節點的方位角和仰角
3)未被選中的源節點和目的節點全向通信范圍的重疊區域稱為中繼選擇區域,中繼選擇區域內的節點通過rts和cts得知某一源節點發出請求但未被目的節點同意后,計算自身相對于該源節點和目的節點信噪比的平均值,大于某一門限值時,該節點擔任中繼節點,向相應源節點發送指向性請求dr。
4)收到dr的源節點,在不干擾其他節點通信的前提下,將請求發送給目的節點的數據包指向性地發送到中繼節點,中繼節點在目的節點當前通信結束后,將數據包發送給目的節點。
5)目的節點在接收成功后全向廣播確認數據包ack,源節點收到ack后,通信結束。
附圖說明
圖1是本發明網絡拓撲圖
圖2是本發明流程圖
具體實施方式
本發明提出一種高可靠性水聲網絡mac接入方法:節點有全向通信和指向性通信兩種工作模式。其中指向性通信可通過使用部署指向性水聲換能器來實現。指向性換能器的發射聲能主要集中于空間某一方向,其余方向上則僅有少量聲能。當網絡負載較大時,目的節點會收到來自多個節點的rts。此時目的節點通過計算各節點的優先級,綜合考慮信道狀態和公平性,選擇通信節點并回復cts。未被選擇的節點將數據包發送給信道狀態更好的中繼節點,由中繼節點轉發至目的節點,以提高網絡工作效率。本發明中通信時間被劃分成時隙,節點產生的數據包在下一個時隙開始時發送。以圖1的網絡拓撲為例,六個節點均在彼此全向輻射范圍之內。
主要步驟如下:
1.節點a、b均需要與節點d通信時,全向廣播rts,其中包含波束寬度α和自身發射功率,源節點和目的節點id以及數據包請求發送的次數:nad、nbd,此時nad=1,nbd=1。圖中的其他節點收到rts后,分別計算自身相對于節點a、b的信噪比snrs,同時由信號到達角aoa計算節點a、b相對于自身的方位角和仰角
2.收到第一個rts后,目的節點等待時長w,w=r/v,其中r為節點最大通信范圍,v為聲波傳播速度。等待時長w保證目的節點可以接受到范圍內全部請求通信節點的rts。在等待期間,目的節點d會收到來自節點a、b的兩個rts控制包。節點d為兩節點定義優先級δ,如下:
δ=en*snrs(db)(1)
其中n為該數據包請求發送的次數。
3.由式1可知,節點到目的節點的信噪比越高、同一個數據包請求發送的次數越多,優先級δ越大。目的節點選取δ值最大的節點作為通信節點。由于節點a到節點d的距離更遠,信號衰減更嚴重,snrsad<snrsbd,且nad=nbd,所以δa<δb,即節點d選擇節點b作為通信節點并廣播cts,其中包括被選中的節點b的信息。收到cts后,節點b開始與d指向性通信,而其他節點則計算目的節點相對于自身的方位和信噪比snrd后,建立信道狀態矩陣h和鄰居節點方位矩陣l:矩陣h中元素為信噪比,矩陣l中元素為節點的方位角和仰角。
4.中繼選擇區域內的節點c、e、f通過rts和cts得知源節點a發出請求但未被目的節點d同意,于是開始計算自身相對于a和d的信噪比的平均值:
snr=(snrsac+snrdcd)/2(2)
由于節點e和f距a較遠,信號衰減嚴重,求得的信噪比遠小于c,此時只有c的平均信噪比滿足snr>snrth,所以節點c擔任中繼節點。c進一步判斷節點b、d是否在c指向性通信范圍內,以二維平面為例,當∠bca>α/2且∠dca>α/2時,c可以指向性地與a通信而不對節點b、d的通信造成干擾。當b、d不在c指向性通信范圍內時,c向a發送dr。
5.收到dr的源節點a,以類似于節點c的方式判斷與c的指向性通信是否會對節點b、d的通信造成干擾。在不干擾其通信的前提下,將請求發送給d的數據包指向性地發送到中繼節點。中繼節點將數據包請求發送次數nad改為2,并在d當前通信結束后,向d發送rts。如果此時有其他節點第一次向d發送rts,根據式1,nad=2,節點c的優先級更大,節點d選擇與c通信的可能性更高,通信的公平性得以保證。
6.目的節點在接收成功后全向廣播確認數據包(ack),源節點收到ack后,通信結束。