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

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

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

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

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

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

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

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

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

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

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

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

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