陳 凱,任 智,韋 亮,張關(guān)鑫
(重慶郵電大學 通信與信息工程學院,重慶 400065)
無人機自組網(wǎng)是由多架無人機自組織形成的網(wǎng)絡(luò)[1]。因為無人機具有便捷靈活、成本低等優(yōu)點,所以能夠在缺乏通信基礎(chǔ)設(shè)施和復雜地形條件的情況下提供救援、通信等服務(wù)[2]。在一定空域內(nèi),無人機集群能夠為目標提供更加強大的服務(wù)[3]。但由于無人機自身機動靈活且負載有限的特性,導致無人機網(wǎng)絡(luò)具有拓撲動態(tài)變化、負載有限等特點。無人機自組網(wǎng)的無線路由協(xié)議作為無人機自組網(wǎng)的重要研究方向,可靠高效且低開銷的無線路由協(xié)議是無人機自組網(wǎng)成功運行的基礎(chǔ)。傳統(tǒng)的分布式路由協(xié)議應(yīng)用到無人機網(wǎng)絡(luò)時,會存在路由開銷過大、路由信息更新不及時、通信鏈路不穩(wěn)定和全局視野缺失等問題[4-5]。因此,為提高拓撲管理能力和資源處理能力,越來越多的學者關(guān)注軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)架構(gòu)與傳統(tǒng)無人機自組網(wǎng)的結(jié)合,同時,軟件定義飛行自組網(wǎng)(Software-Defined Flight Ad Hoc Network,SD-FANET)也逐漸成為近年來的研究熱點。
文獻[6]提出了基于SDN架構(gòu)的無人機自組網(wǎng)管理策略,目標是建立和維護其拓撲結(jié)構(gòu),以便通過中繼單元在節(jié)點之間提供恒定和可靠的通信鏈路。文獻[7]提出了一種切換算法,其有效地完成了因能量退網(wǎng)而進行的切換,解決了SDN架構(gòu)的無人機網(wǎng)絡(luò)的有序退網(wǎng)問題。文獻[8]提出了一種SD-FANET自適應(yīng)切換算法,SDN控制器實時監(jiān)控網(wǎng)絡(luò)狀態(tài),然后根據(jù)鏈路優(yōu)先級和流量閾值周期性進行切換決策。該方法提高了鏈路的穩(wěn)定性,保障了數(shù)據(jù)的有效可靠傳輸。文獻[9]提出了一種無線自組網(wǎng)按需平面距離向量路由協(xié)議(Ad Hoc On-Demand Distance Vector Routing,AODV)與SDN結(jié)合的架構(gòu),普通節(jié)點運行AODV協(xié)議并周期性上傳鄰居信息,SDN控制器節(jié)點周期性維護全局網(wǎng)絡(luò)拓撲。該架構(gòu)具有更快的路由收斂速度和更強的網(wǎng)絡(luò)健壯性。文獻[10]提出了一種自適應(yīng)路由維護機制,結(jié)合已有的流表項信息和已有的控制消息收發(fā)機制,有效地解決了現(xiàn)有SD-FANET中存在的網(wǎng)絡(luò)開銷過大、處理時延過大等問題。
通過現(xiàn)有的研究發(fā)現(xiàn),當前的無人機網(wǎng)絡(luò)中仍存在著初始建網(wǎng)時間過長及周期性組網(wǎng)開銷過大、業(yè)務(wù)鏈路不穩(wěn)定、用戶數(shù)據(jù)業(yè)務(wù)傳輸可靠性低等問題。為解決上述三個問題帶來的影響,本文提出了一種SD-FANET下的低開銷且可靠有效的路由解決方案(Low-overhead,Reliable and Efficient Routing Solution Based on Node Cooperation,NC-SDN)。針對第一個問題,基于文獻[11]提出的靜態(tài)混合網(wǎng)絡(luò)結(jié)構(gòu),利用節(jié)點之間的周期性感知能力,提出了包含聚合消息自主上傳機制的SD-FANET的組網(wǎng)機制;針對第二個問題,利用節(jié)點之間HELLO消息的周期性傳遞,修復了無效未過期路由轉(zhuǎn)發(fā)信息,減少了無效路由數(shù)目,減輕了不可靠傳輸?shù)娘L險;針對第三個問題,利用普通節(jié)點上傳的位置信息,SDN控制器借助卡爾曼算法修正與預測,實時跟蹤監(jiān)測業(yè)務(wù)鏈路,預切換中斷鏈路,降低鏈路中斷和用戶數(shù)據(jù)丟失的風險。
SDN的架構(gòu)具有集中處理和快速感知的特點,考慮將SDN架構(gòu)與傳統(tǒng)分布式網(wǎng)絡(luò)路由協(xié)議特征相結(jié)合,這樣將有助于提高無線自組織網(wǎng)絡(luò)的性能。但是,以往對于SDN架構(gòu)與分布式路由協(xié)議相結(jié)合機制的探索主要集中在無線靜態(tài)網(wǎng)絡(luò)上。如圖1所示,假設(shè)整個網(wǎng)絡(luò)由1個SDN控制器與多個普通節(jié)點組成,SDN控制器具有全局拓撲視圖,普通節(jié)點具有鄰居感知功能。首先普通節(jié)點通過周期性收發(fā)HELLO消息來獲取鄰居信息,然后普通節(jié)點創(chuàng)建聚合消息并將自身鄰居信息填充到聚合消息中,之后該普通節(jié)點將聚合消息上傳到控制器節(jié)點,最后SDN控制器通過周期性聚合消息構(gòu)造全網(wǎng)拓撲視圖。當網(wǎng)絡(luò)需要傳輸用戶數(shù)據(jù)業(yè)務(wù)時,源節(jié)點將上傳路由查詢信息,SDN控制器經(jīng)全網(wǎng)拓撲視圖計算出最優(yōu)路由進而下發(fā)路由轉(zhuǎn)發(fā)信息到普通節(jié)點。收到路由轉(zhuǎn)發(fā)信息的普通節(jié)點作為中轉(zhuǎn)節(jié)點維護路由轉(zhuǎn)發(fā)信息。
圖1 SD-FANET場景
而無人機群網(wǎng)絡(luò)場景有拓撲快速變化、帶寬有限等特點。拓撲的快速變化是隨機的,普通節(jié)點維護的鄰居集存在著變與不變的可能性。在鄰居集未改變的情況下,因為聚合消息內(nèi)容的重復性,空閑的普通節(jié)點持續(xù)性上傳聚合消息,會造成開銷的浪費,且有悖于無人機帶寬有限的限制。
如圖2所示,位于源節(jié)點A的用戶為了能夠向目的節(jié)點E傳輸用戶數(shù)據(jù)業(yè)務(wù),將會向SDN控制器申請圖中所示的鏈路。各節(jié)點收到維持時間為T的路由轉(zhuǎn)發(fā)信息,則理論上,在T時間段內(nèi),該鏈路上任意一個節(jié)點均能自主向目的節(jié)點E傳輸用戶數(shù)據(jù)業(yè)務(wù)。但是,如圖3所示,由于無人機的隨機移動性,所以會造成拓撲的快速變化進而導致鏈路實質(zhì)上中斷。但又因為路由中轉(zhuǎn)節(jié)點不具有全局視圖,所以在T時間段內(nèi)默認其路由轉(zhuǎn)發(fā)信息的有效性。所以當上述鏈路情況改變,在T時間段內(nèi),位于該鏈路的任意一個前向節(jié)點(斷點之前)向目的節(jié)點E傳輸用戶數(shù)據(jù)業(yè)務(wù),都會產(chǎn)生嚴重的丟包。
圖2 因業(yè)務(wù)而建立的鏈路
圖3 因無人機移動而中斷的鏈路
在無人機網(wǎng)絡(luò)中,無人機節(jié)點的飛行姿態(tài)具有時變性和隨機性。如圖2所示,當前網(wǎng)絡(luò)中,鏈路A→B→C→D→E被SDN控制器指定傳輸實時用戶數(shù)據(jù)業(yè)務(wù)。設(shè)R為節(jié)點的無線電范圍,只有在R的范圍內(nèi)才能保證雙方的通信數(shù)據(jù)交互。但是因為無人機節(jié)點的飛行情況不是預設(shè)的,所以正在進行傳輸業(yè)務(wù)的節(jié)點有可能飛離相應(yīng)鏈路鄰節(jié)點的通信范圍導致實時用戶數(shù)據(jù)業(yè)務(wù)中斷。
NC-SDN是適用于SD-FANET的低開銷且有效可靠的路由解決方案:設(shè)計了含有自主上傳機制的SD-FANET組網(wǎng)機制,用于無人機網(wǎng)絡(luò)快速建網(wǎng)且減小了周期性組網(wǎng)開銷;設(shè)計了HELLO消息接力修復機制,減輕了因鏈路變化引起的未過期無效路由信息的影響;設(shè)計了增強鏈路穩(wěn)定性機制,降低了因拓撲變化而造成的實時業(yè)務(wù)中斷的可能性且減少了大范圍路由查詢產(chǎn)生的開銷。
在初始化階段,普通節(jié)點主動發(fā)起鄰居感知。普通節(jié)點在自己的HELLO消息中寫入自己的身份信息,然后主動廣播出去。HELLO消息格式如圖4所示。各普通節(jié)點整合HELLO消息并生成聚合消息(格式如圖5所示),將其上傳到SDN控制器快速完成初始建網(wǎng)。
圖4 HELLO消息格式
圖5 聚合消息格式
在網(wǎng)絡(luò)運行與維護階段,網(wǎng)絡(luò)中存在某時間段內(nèi)局部網(wǎng)絡(luò)拓撲未發(fā)生實質(zhì)變化的情況,因此,NC-SDN中設(shè)計了自主上傳機制。在網(wǎng)絡(luò)運行的過程中,普通節(jié)點需保存上一個周期時刻所獲得的各鄰居的HELLO消息,稱為歷史鄰居信息。在當前時刻收到當前周期內(nèi)各鄰居發(fā)送的HELLO消息稱為當前鄰居信息,普通節(jié)點立即將當前鄰居信息與歷史鄰居信息進行比對,如果兩種信息所對應(yīng)的鄰居完全一致,那么就說明此節(jié)點所在的局部網(wǎng)絡(luò)拓撲未產(chǎn)生改變,此節(jié)點不需要聚合各鄰居的信息進行周期性上傳。SDN控制器未收到某普通節(jié)點上傳的聚合消息,默認該普通節(jié)點的局部網(wǎng)絡(luò)拓撲未產(chǎn)生改變,所以在進行網(wǎng)絡(luò)拓撲更新時,SDN控制器將使用該普通節(jié)點的歷史聚合消息。當然,為防止出現(xiàn)該普通節(jié)點與SDN控制器之間的南向接口安全通道中斷而致使SDN控制器無法接收該節(jié)點的聚合數(shù)據(jù)包的問題,該普通節(jié)點只有間隔一次暫停上傳的能力,下一個周期無論歷史鄰居信息和當前鄰居信息的比對結(jié)果是否一致,普通節(jié)點都需要按周期到達時刻上傳聚合數(shù)據(jù)包。
普通節(jié)點根據(jù)歷史信息進行自主決策,既能夠自適應(yīng)網(wǎng)絡(luò)拓撲的變化,又減少了SDN控制器與普通節(jié)點之間不必要的控制開銷。改進后的組網(wǎng)機制更加適應(yīng)于拓撲快速變化且負載有限的無人機群網(wǎng)絡(luò)場景。
為有效地減輕無效未過期路由轉(zhuǎn)發(fā)信息帶來的影響,NC-SDN中設(shè)計了基于HELLO消息接力修復的路由維護機制。鏈路如圖3所示,當無人機節(jié)點C和無人機節(jié)點D之間因為隨機飛行產(chǎn)生鏈路中斷的時候,該鏈路上存有的路由轉(zhuǎn)發(fā)信息就失去了作用并開始留下隱患。由于HELLO消息的發(fā)送周期遠小于路由轉(zhuǎn)發(fā)信息的維護時間,因此可以利用HELLO消息的周期廣播的特點減小上述情況的影響。
當節(jié)點D作為節(jié)點C的下一跳時,節(jié)點C能夠周期性收到節(jié)點D的HELLO消息,然后在其維護的某個路由轉(zhuǎn)發(fā)信息中比對到Nexthop字段為節(jié)點D的信息。路由轉(zhuǎn)發(fā)信息格式如圖6所示。若鏈路中斷,節(jié)點C在周期性的HELLO消息中無法比對到節(jié)點D的信息。因此,節(jié)點C將更改關(guān)于節(jié)點D的路由轉(zhuǎn)發(fā)信息,節(jié)點C修改原路由轉(zhuǎn)發(fā)信息的Dest字段為節(jié)點C信息,Nexthop字段為節(jié)點C信息。同時,節(jié)點C把告警信息加入到即將廣播的HELLO消息中。告警信息的格式如圖7所示,其目的是告知其鄰居節(jié)點相應(yīng)鏈路的路由轉(zhuǎn)發(fā)信息已經(jīng)不適用,并按照告警信息更改相應(yīng)的路由轉(zhuǎn)發(fā)信息。在告警信息Src字段寫入該鏈路的源節(jié)點A,在告警信息Dest字段寫入該鏈路的原來的目的節(jié)點E,在告警信息Dest_replace字段寫入發(fā)現(xiàn)中斷情況的節(jié)點C的信息。
圖6 路由轉(zhuǎn)發(fā)信息
圖7 告警字段
節(jié)點B為節(jié)點C的鄰居,節(jié)點B能夠收到節(jié)點C發(fā)送的攜帶告警信息的HELLO消息,與自身的路由轉(zhuǎn)發(fā)信息比對成功后,節(jié)點B立即修改路由轉(zhuǎn)發(fā)信息中的Dest字段信息為節(jié)點C的身份信息,且修改Nexthop字段信息為一跳鄰居的身份信息(這里將修改為節(jié)點C),路由過期時間Time保持更新。
同理,節(jié)點B在周期性發(fā)送HELLO消息時,將來自節(jié)點C的告警信息寫入自身的HELLO消息中,原鏈路上的節(jié)點A在接收到來自鄰居B的HELLO消息后,比對路由轉(zhuǎn)發(fā)信息并借助告警信息修改無效的路由轉(zhuǎn)發(fā)信息。
借助鄰居信息的告警,本身已經(jīng)無效的路由轉(zhuǎn)發(fā)信息重新變成實質(zhì)有效的路由轉(zhuǎn)發(fā)信息。HELLO消息接力的路由轉(zhuǎn)發(fā)信息修復方式在一定的時間和空間范圍內(nèi)自動甄別無效路由信息,重新定義生成有效路由信息,在一定程度上降低了上傳查詢的開銷,維護了鏈路的穩(wěn)定性和路由的可靠性。
為減小因拓撲變化造成的實時業(yè)務(wù)中斷的影響,NC-SDN中設(shè)計了一個增強鏈路穩(wěn)定性機制。普通節(jié)點周期性上傳自身的地理位置信息,SDN控制器通過普通節(jié)點地理位置信息分析預測實時業(yè)務(wù)鏈路上普通節(jié)點的飛行情況,進而決定是否進入雙向切換。
本節(jié)將從位置、速度作為度量指標出發(fā),結(jié)合卡爾曼濾波算法修正獲得精確而合理的最優(yōu)估計位置;通過最優(yōu)估計位置得到預測位置,而后根據(jù)預測位置,SDN控制器對是否切換業(yè)務(wù)鏈路做出決策。同時,SDN控制器中會持續(xù)性維護一個負載表,其表示正在傳輸數(shù)據(jù)的鏈路對。
表1 負載鏈路表
首先,分解速度:
(1)
(2)
然后,求取第n個周期時的位置預測值:
(3)
(4)
現(xiàn)假設(shè)預測過程誤差恒為δa,測量過程誤差恒為δb,在周期數(shù)為n-1時的最優(yōu)估計誤差為?n-1,即預測位置預測值的行為會產(chǎn)生誤差為δa,由定位儀器得到的位置測量值的行為產(chǎn)生誤差為δb。因此,預測在周期數(shù)為n時的節(jié)點的位置的過程產(chǎn)生的誤差為
(5)
(6)
所以在周期數(shù)n的位置最優(yōu)估計值為
(7)
(8)
同時,求得在周期數(shù)n的最優(yōu)估計誤差?n為
(9)
最優(yōu)估計誤差?n將作為周期數(shù)n+1時計算位置最優(yōu)估計值的迭代信息并入下一次的迭代計算,因此,每一個周期都能夠依據(jù)上一個周期留存的必要信息進行位置的計算與修正:
(10)
(11)
(12)
SDN控制器計算到了業(yè)務(wù)鏈路的節(jié)點位置預測值之后,從兩端開始分別按照順序和逆序的方式進行距離估計。順序方式是指該業(yè)務(wù)鏈路從源節(jié)點開始進行相鄰節(jié)點距離估計。逆序方式是指該業(yè)務(wù)鏈路從目的節(jié)點開始進行相鄰節(jié)點距離估計。通過這種方式,SDN控制器鎖定可能中斷的鏈路范圍。例如,業(yè)務(wù)鏈路節(jié)點B和D之間被認為會產(chǎn)生業(yè)務(wù)中斷,即
(13)
(14)
SB→C≥0.9R,SD→C≥0.9R。
(15)
SDN控制器重新計算B和D之間的路由,如果節(jié)點B到節(jié)點D之間不存在有效路由,則SDN控制器擴大路由搜索范圍,其將計算節(jié)點B到節(jié)點E以及節(jié)點A到節(jié)點D之間的有效路由,尋找到可用的路由就立即下發(fā)路由修改信息到相應(yīng)的節(jié)點,同時更新其內(nèi)部的實時鏈路負載表。
通過這種預測切換與范圍鎖定的方式,可以降低負載業(yè)務(wù)鏈路因為拓撲隨機變化而導致的用戶數(shù)據(jù)包丟失、業(yè)務(wù)鏈路通信質(zhì)量下降的問題,同時也降低了因負載業(yè)務(wù)鏈路完全中斷導致產(chǎn)生的控制開銷,保障了用戶服務(wù)質(zhì)量。
首先對模擬的網(wǎng)絡(luò)環(huán)境進行簡要介紹,然后使用OPNET14.5軟件進行仿真,最后比較分析優(yōu)化鏈路狀態(tài)路由(Optimized Link State Routing,OLSR)網(wǎng)絡(luò)、SDN、AODV網(wǎng)絡(luò)和NC-SDN的初始建網(wǎng)時間、周期性組網(wǎng)開銷和丟包率等性能指標。
仿真場景設(shè)置的范圍大小是2 000 m×2 000 m,SDN控制器節(jié)點初始位于該范圍中心,普通節(jié)點均勻分布在該范圍內(nèi)。重要的仿真參數(shù)設(shè)置如表2所示。
表2 主要仿真參數(shù)
為驗證NC-SDN對于改善無人機網(wǎng)絡(luò)性能而發(fā)揮的實質(zhì)性作用,接下來對性能指標進行如下分析。首先,比較分析各個網(wǎng)絡(luò)在周期性組網(wǎng)過程中產(chǎn)生的控制開銷;其次,比較分析各個網(wǎng)絡(luò)在同步首發(fā)業(yè)務(wù)時的丟包率,進而反映網(wǎng)絡(luò)初始建立路由的快慢;最后,比較分析各個網(wǎng)絡(luò)在持續(xù)運行業(yè)務(wù)時的丟包率,進而反映鏈路的穩(wěn)定性和自適應(yīng)性。
圖8描述了隨著網(wǎng)絡(luò)規(guī)模的擴大,不同的路由協(xié)議在周期性組網(wǎng)過程中產(chǎn)生的控制開銷的變化情況。因為OLSR協(xié)議是主動式路由發(fā)現(xiàn)協(xié)議,且在維護網(wǎng)絡(luò)拓撲時需要大量廣播HELLO消息和TC消息,所以隨著網(wǎng)絡(luò)規(guī)模的增大,其對應(yīng)的控制開銷也顯著增大。反之,因為AODV協(xié)議是按需路由協(xié)議,所以不需要主動廣播組網(wǎng)控制信息。其只需要在有路由需求的情況下實時向網(wǎng)絡(luò)請求關(guān)于目的節(jié)點的路由信息即可,所以AODV協(xié)議相對保持一種低組網(wǎng)開銷的狀態(tài)。而NC-SDN中的聚合消息自主上傳機制利用每一個普通節(jié)點比對兩類鄰居信息,然后自主決策是否進行鄰居信息的聚合上傳,因此NC-SDN在周期性組網(wǎng)行為中產(chǎn)生的控制開銷小于SDN。
圖8 組網(wǎng)過程開銷變化
圖9描述了隨著網(wǎng)絡(luò)規(guī)模的擴大,不同的路由協(xié)議在相應(yīng)的路由收斂時間內(nèi),同步首發(fā)業(yè)務(wù)產(chǎn)生的丟包率的變化情況。因為AODV協(xié)議在有路由需求時會以廣播的方式逐跳查詢路由信息并以反向路徑的方式逐跳反饋路由信息到源節(jié)點,因此,隨著網(wǎng)絡(luò)規(guī)模的增大,路由信息索引范圍與建立路由的時間明顯增大。因為OLSR協(xié)議建立路由表需要鄰居感知和TC消息廣播等過程,而基于SDN架構(gòu)的組網(wǎng)機制,在初次鄰居感知之后SDN控制器就能夠獲得全局視野,所以反應(yīng)速度快于OSLR協(xié)議。SDN與NC-SDN的網(wǎng)絡(luò)初始化能力相近,但因為在NC-SDN中,是普通節(jié)點自主發(fā)起鄰居感知,所以網(wǎng)絡(luò)初始化速度略快于SDN。
圖9 初始建網(wǎng)快慢程度
圖10反映出了隨著網(wǎng)絡(luò)規(guī)模的擴大,不同的路由協(xié)議所支持的用戶數(shù)據(jù)業(yè)務(wù)的丟包率的變化情況。因為AODV協(xié)議是被動式發(fā)現(xiàn)協(xié)議,隨著網(wǎng)絡(luò)規(guī)模的增大與數(shù)據(jù)業(yè)務(wù)的增多,大量的路由請求信息與路由反饋信息會在網(wǎng)絡(luò)中形成泛洪,進而出現(xiàn)數(shù)據(jù)包沖突的現(xiàn)象,所以導致丟包率上升。因為OLSR協(xié)議是主動式發(fā)現(xiàn)協(xié)議,在付出開銷的代價下周期性獲得了全網(wǎng)拓撲,所以相比AODV協(xié)議,OLSR協(xié)議更能建立實時有效鏈路。但隨著網(wǎng)絡(luò)規(guī)模增大,OLSR網(wǎng)絡(luò)中數(shù)據(jù)包的數(shù)量顯著增大,導致發(fā)生無線碰撞的可能性上升,進而導致數(shù)據(jù)丟包率上升。相比于OLSR網(wǎng)絡(luò),SDN在網(wǎng)絡(luò)規(guī)模增大的情況下,控制開銷增加較低,且SDN網(wǎng)絡(luò)中的普通節(jié)點在丟包情況下會主動請求SDN控制節(jié)點重新為數(shù)據(jù)包建立路由,降低了數(shù)據(jù)包丟失的概率。而NC-SDN中,由于SDN控制節(jié)點擁有監(jiān)控、預測與切換機制,可以指導普通節(jié)點進一步減小斷路造成的數(shù)據(jù)包丟失。
圖10 業(yè)務(wù)丟包率變化
本文針對無人機網(wǎng)絡(luò)中初始建網(wǎng)時間過長、周期性組網(wǎng)開銷過大、業(yè)務(wù)鏈路不穩(wěn)定以及用戶數(shù)據(jù)業(yè)務(wù)傳輸可靠性低的問題,提出了NC-SDN路由解決方案。該方案中包含了聚合消息自主上傳機制、HELLO消息接力修復機制以及增強鏈路穩(wěn)定性機制。首先,通過在初始化網(wǎng)絡(luò)時普通節(jié)點主動發(fā)起鄰居感知、網(wǎng)絡(luò)運行時普通節(jié)點自主決策上傳,減少了初始建網(wǎng)時間和周期性組網(wǎng)開銷;其次,通過普通節(jié)點自主分析無效未過期路由信息,接力式修復無效路由信息,減少了無效信息的冗余,降低了不可靠鏈路風險;最后,通過SDN控制器利用地理位置信息集中預測實時業(yè)務(wù)鏈路的中斷情況,降低了鏈路中斷與用戶數(shù)據(jù)丟失的風險。仿真結(jié)果表明,NC-SDN路由解決方案在初始建網(wǎng)時間、周期性組網(wǎng)開銷和丟包率等性能指標上的表現(xiàn)優(yōu)于SDN、OLSR以及AODV。