任 智,楊 迪,胡 春,朱克蘭
(1.重慶郵電大學通信與信息工程學院,重慶 400065;2.重慶郵電大學移動通信技術重慶市重點實驗室,重慶 400065)
無人機自組網(UAV Ad-Hoc Network,UANET)[1-2]是一種將無人機作為網絡節點而建立的多跳自組織網絡,其具有比單架無人機更好的自適應和擴展能力,廣泛應用于農業、巡檢、安防和救援等領域[3-5]。基于優先級概率統計的多址接入(Statistical Priority-based Multiple Access,SPMA)協議[6-8]是一種新的適用于無人機自組網的接入協議,其基于CSMA異步跳頻機制[9-10],通過數據包優先級對信道負載狀況進行反饋,從而有效利用信道帶寬資源,近年來得到研究人員的廣泛關注并取得了重要成果。文獻[11]提出一個簡單的分析模型,并將其用于計算飽和輸入條件下的時隙成功傳輸概率。文獻[12]提出一種基于優先級的多址接入(Priority-based Multiple Access,PriMA)協議,該協議考慮了站內排隊的數據包QoS要求并為每個站提供基于優先級的訪問。文獻[13]為滿足網絡負載較大的時延敏感業務的低延遲傳輸需求,設計一種基于SPMA協議的移動自組網系統。文獻[14]提出一種新的多信道媒質接入控制協議,該協議采用時延抖動算法并根據信道負載自適應動態調整抖動窗口,利用多信道機制使協議在有效保障系統穩定吞吐量的同時降低分組接入時延。文獻[15]提出一種基于負載統計的改進算法TSMP-MAC,該算法使用基于業務量的負載統計,將上層數據包分為可以直接發送的優先級數據包、需要退避等待的優先級數據包以及直接丟棄的優先級數據包,保證了高優先級數據包分組的高成功率和低延時。
然而,現有TSMP-MAC協議和SPMA協議的網絡節點信道負載統計時間不統一,統計出的信道負載信息不具備參考價值,且業務優先級閾值設置過多依賴假設的優先級分組分布比例,而在信道負載高于最低優先級閾值后發包成功率下降,導致低優先級數據丟包率增加,從而降低數據傳輸成功率和MAC層吞吐量,并造成信道資源浪費。鑒于此,本文提出一種多優先級單閾值接入控制(Multi-priority Single threshold Access Control,MSAC)協議。
無人機自組網由多個地位相等的無人機節點構成[16],如圖1所示,節點ID號唯一,通信方式為全雙工且采用全向天線。各節點開機后按開始運行求取信道滿載閾值的程序,在此過程中各節點產生信道負載閾值求取數據包并對其進行發送,當數據傳輸成功率達到99%時,獲取前一個預設發送時間內出現的數據包個數并將其作為信道滿載閾值TF。

圖1 無人機自組網網絡拓撲Fig.1 Network topology of UANET
在網絡中各節點開機時間不同,在信道負載統計階段,信道負載數據包的發送時間也不同。在發送時間相差較大的情況下,各節點采集信道負載的時間段各不相同,統計出的信道負載不具備參照價值。SPMA協議中信道負載的準確統計至關重要,關系信道滿載閾值的確定和各優先級數據包能否接入信道,而不同步的信道負載統計會造成系統無法正常工作,信道碰撞加劇,數據傳輸成功率降低且時延增加。
現有優先級閾值設置算法[17-19]先設置最低業務優先級閾值TN-(1其中N表示優先級分組數量)并以此閾值為基準,再按照假設的優先級分組分布比例計算其他業務優先級閾值,但依此設計出的閾值存在以下問題:1)需要事先設定各業務優先級分布比例才能計算出除最低優先級閾值以外的優先級閾值;2)由于次高優先級閾值都比最低優先級閾值TN-1高,但信道能承受的保證數據傳輸成功率為99%的信道負載最大為TN-1,因此當信道負載高于TN-1時,數據傳輸成功率已不能滿足設計要求,此時再發送任何優先級的數據包均已不能達到預設成功率;3)現有算法優先級在低于相應閾值時需要完全退避整個優先級的數據包,導致跨閾值的優先級數據包全部退避,此時可能造成信道資源空閑,卻仍有消息在退避,在一定程度上導致了信道資源浪費。
因為各個節點開機時間不同,開始發送信道負載統計包的時間不同,所以從信道滿載閾值計算階段開始就可能發生負載統計時的統計時間段不同。當各個節點的負載統計時間不同時,統計到的信道負載就不再準確及具備參考價值,且不能根據統計到的信道負載情況協調一跳范圍內的節點退避或接入。為解決上述問題,本文提出一種信道負載統計時間校正機制。在一跳范圍內,當ID號大的節點發現(收到)消息中ID號最小節點的負載統計包發送時間在自身負載統計周期內時(若在允許的時間抖動范圍內,則不進行處理),立刻終止自身負載統計并按照當前時間占全統計周期的比例,折算成一個負載統計周期的負載后緊隨收到的負載統計包中ID號最小的節點發送(加上一個時間抖動)負載統計包。該過程是一個鏈式過程,每個節點都向其一跳范圍內ID號最小的節點靠近,最終所有節點的信道負載統計時間都在ID號最小節點的負載統計時間附近。信道負載統計時間校正流程如圖2所示。

圖2 信道負載統計時間校正流程Fig.2 Procedure of channel load statistical time correction
信道負載統計時間校正機制的基本操作步驟具體如下:
1)在節點開機后開始統計自身發包情況,當到達預定負載統計周期時間時,將這段時間發送的各優先級的數據包個數封裝成負載統計包并對其進行廣播。
2)當節點收到一跳范圍內ID號最小節點發送的負載統計包時,若節點處于自身負載統計周期內且該時間點不在規定的時間抖動內時,則該節點需要將自身負載統計時間向ID號最小的節點校正。
3)當ID號高的節點向一跳范圍內ID號最小的節點校正時間時,ID號高的節點處于負載統計周期內,此時收到一跳范圍內ID號最小節點的負載統計包,ID號高的節點中斷負載統計,直接使用現在統計出的結果按時間比例折算成一個負載統計周期的統計結果,封裝后再加上時間抖動后對其進行廣播。
4)所有節點都按照以上機制運行,最終所有節點的負載統計時間都可以校正到整個網絡中ID號最小節點的負載統計時間附近,由于節點加上了時間抖動,因此即使全網節點都在該時刻發送,也可以盡可能降低發生碰撞的概率。節點在開機后只要發現收到ID號小的節點的負載統計包在自身負載統計周期內且超過規定的抖動時間時,就需要執行以上步驟從而校正負載統計的時間。
通過計算節點在統計周期內的收發包數量進行信道負載統計,在統計周期內統計出的信道負載C0如式(1)所示:

其中,M表示跳頻頻點個數,f表示第f個頻點,imax表示節點i的周圍一跳鄰居總數,表示在頻點f時收到的節點i發送的優先級為j的數據包個數表示在頻點f時發送的優先級為j的數據包個數。
為解決信道負載控制問題,本文提出基于單閾值的信道接入控制機制。該機制的基本思路為:首先設置信道滿載基準閾值TF,所有業務優先級的發送都要與TF進行比較,當發送包數小于TF時,高優先級的包先發,低優先級的包后發,且無退避發送。當前一個時隙負載的業務量大于TF時,分析負載中業務優先級的分布情況,即各業務優先級對應的數量。通過分析可以得出哪些業務優先級造成了信道過載,并且在新的時隙開始時退避造成信道過載的業務優先級。簡單的退避所有業務優先級會造成一定程度的信道資源浪費,而完全允許需要退避的最高優先級(跨閾值優先級)的數據包發送又會使信道過載包的首發成功率下降。此時,在負載廣播包中解析到前一時隙的負載情況,通過比較基準閾值TF和即將退避的各優先級數據包數量可以得出該時隙將會有多少信道資源被空閑。若允許一部分跨閾值優先級數據包發送填充此空閑,則可以更充分地利用信道資源。基于單閾值的信道接入控制流程如圖3所示。

圖3 基于單閾值的信道接入控制流程Fig.3 Procedure of channel access control based on single threshold
基于單閾值的信道接入控制機制的基本操作步驟具體如下:
1)通過最低優先級閾值設定方法確定當前TF。最低優先級閾值TN-1的設置方法為:無優先級控制,數據包隨到隨發,并且逐漸增大全網業務量,當數據傳輸成功率降至99%時,獲取前一個統計周期內出現的數量包數量作為最低優先級閾值。將此閾值作為基準,所有優先級數據包的發送與否都需要將信道負載中各業務優先級分布比例和所占數量與TF進行比較,在此周期內發送的各優先級包的數量需小于TF。
2)當信道負載大于TF時,通過分析信道負載的業務優先級構成和分布比例可以找出造成信道滿載的業務優先級數據包,并且退避大于該業務優先級的數據包,同時發送小于該業務優先級的數據包。
3)由于可能存在跨閾值的業務優先級,且不能完全退避該優先級分組的情況,而完全退避該優先級的分組會造成信道資源的浪費,因此通過計算閑置信道資源,根據負載統計階段統計出的各個節點發送相應優先級的數據包個數Cij,其中,i是節點ID號,j是數據包優先級,根據式(2)計算出的比例P加權分配給周圍各個節點,并利用式(3)計算節點i允許發送的跨閾值優先級數據包個數Cik。

其中,k表示跨閾值的優先級數量,Nunused表示信道空閑資源,具體計算公式為:

其中,Lj表示由優先級j造成的信道負載,具體計算公式為:

4)當信道負載小于TF時,使用剩余的跨閾值優先級數據包填補空缺;當跨閾值優先級的包不能填補空缺時,發送更低優先級的包填補空缺。這兩種填補方式都要使用加權分配法分配節點發包數量。若上一個周期內所有優先級數據包總數小于TF,則下一個周期不進行數據包控制,實施數據包隨到隨發策略。
本文在文獻[8]方法的基礎上對優先級包的退避時間(Bbf)略作調整,計算公式修改為:

其中:X和Y為兩個調節系數,分別設置為1/20和10;p為需要退避的優先級,其包含跨閾值優先級。
為驗證本文MSAC協議的性能,采用OPNET 14.5網絡仿真工具對其進行仿真驗證,主要參數設置如表1所示。

表1 主要仿真參數設置Table 1 Setting of main simulation parameters
數據傳輸成功率是指目的節點收到的數據量占總數據量的比例。由圖4可看出,隨著節點個數的增加3種協議的傳輸成功率都有所下降,其主要原因為信道負載超過了系統承載能力,導致底層數據包碰撞嚴重,數據包在多次重傳后超過重傳次數上限,從而導致丟包。MSAC協議和TSMP-MAC協議由于對不同類型的業務設置了優先級,在業務量較大時,降低了低優先級數據包接入信道的數量,優先發送高優先級數據包,因此起到一定的控制信道負載的作用,在中等負載的情況下依然可以保證90%以上的數據傳輸成功率,而CSMA/CA協議[20]在輕載下可以維持較高的數據傳輸成功率,但在中等負載和重載下數據傳輸成功率嚴重下降。這主要是因為MSAC協議的信道負載統計時間校正機制可使節點更準確地統計出信道負載,基于單閾值的信道接入控制機制能以更細粒度的方式調控接入信道的負載量,有效控制信道負載值不超過滿載閾值,所以MSAC協議在信道重載情況下依然可以保證相對較高的數據傳輸成功率。

圖4 數據傳輸成功率比較Fig.4 Comparison of data transmission success rate
MAC層吞吐量是指單位時間內MAC層接收到的比特數。由圖5可看出,MSAC協議相比TSMPMAC協議和CSMA/CA協議具有更高的吞吐量,其主要原因為MSAC協議使用的基于單閾值的信道接入控制機制控制信道負載的單位是數據包個數,而不是對整體業務優先級進行控制,更細粒度的信道負載控制可以有效利用信道中整體業務優先級退避而空閑出的信道,使系統在上層業務量較大情況下的系統信道承載能力與實際信道負載相匹配,最大化利用信道資源,從而提高MAC層吞吐量。TSMPMAC協議的退避機制將一部分低優先級包丟棄,使得被丟棄的數據包未能傳輸成功,從而造成MAC層吞吐量的降低,而CSMA/CA協議由于在重載情況下的底層數據包碰撞加劇,使其超過重傳次數上限而丟包,造成數據傳輸成功率降低,從而導致MAC層吞吐量下降。因此,MSAC協議的MAC層吞吐量高于CSMA/CA協議與TSMP-MAC協議。

圖5 MAC層吞吐量比較Fig.5 Comparison of MAC layer throughput
信道資源利用率是指節點占用信道進行有效數據傳輸所用時間與網絡運行時間的比值。由圖6可看出,MSAC協議的信道資源利用率高于TSMPMAC協議和CSMA/CA協議,其主要原因為MSAC協議使用的基于單閾值的信道接入控制機制以數據包為單位來控制信道的負載水平,相比整體業務優先級退避的TSMP-MAC協議,可以更加充分地利用整體業務優先級退避形成的空閑信道資源,從而在一定程度上提高信道資源利用率。此外,CSMA/CA協議只有在信道有數據包接入后才執行退避等待,而MSAC協議則可以判斷底層時頻跳變系統的負載情況,根據負載情況選擇控制低優先級包的接入時間。因此,MSAC協議的信道資源利用率高于CSMA/CA協議與TSMP-MAC協議。

圖6 信道資源利用率比較Fig.6 Comparison of channel resource utilization rate
本文針對現有SPMA協議中多個業務優先級對應閾值設置造成的負載控制失效問題,提出一種多優先級單閾值接入控制協議,實現系統承載能力與實際信道負載的最大化匹配,從而更高效地利用信道資源。實驗結果表明,該協議能有效提高信道資源利用率、MAC層吞吐量及數據傳輸成功率。下一步將對接入控制協議中信道滿載閾值的計算和自適應調整方式進行研究,通過降低控制開銷及加快組網過程,保證在信道環境變化情況下的數據傳輸成功率,提高接入控制協議的應用靈活性。