摘 要:針對高速飛行器自組織網絡中組網時間較長、維護開銷較大、網絡恢復較慢等問題,提出了一種快速高效的加權分簇算法。該算法與現有的加權分簇算法進行了比較,對平均節點間距離、平均移動相似度以及節點度三個指標進行了改進;針對梯度抑制導致的組網周期延長問題,優化了現有的組網流程;針對備用簇首維護開銷較大的問題,提出了一種高效備用簇首選舉和跨層通告機制;針對簇首節點突發損壞的情況下,簇成員反應較慢的問題,提出了一種簇成員快速響應切換機制。通過OPNET軟件進行仿真模擬,該算法在組網時間、控制開銷及恢復時間等指標上,相較于現有加權分簇算法均有一定提升。仿真結果表明,該算法能夠有效提升網絡性能,更加適用于復雜環境下的高速飛行器自組織網絡。
關鍵詞:高速飛行器自組網;分簇算法;簇維護;快速恢復
中圖分類號:TP393"" 文獻標志碼:A""" 文章編號:1001-3695(2025)03-032-0888-07
doi: 10.19734/j.issn.1001-3695.2024.07.0257
Rapid and efficient weighted clustering algorithm for high-speed flight vehicle Ad hoc network
Zhang Linquana,b,c, Ren Zhia,b,c, Yang Jianjuna,b,c, Wang Huaia,b,c, Zhang Weia,b,c
(a. School of Communication amp; Information Engineering, b. Key Laboratory of Mobile Communications Technology of Chongqing, c. Enginee-ring Research Center of Mobile Communications of the Ministry of Education, Chongqing University of Posts amp; Telecommunications, Chongqing 400065, China)
Abstract:This paper proposed a fast and efficient weighted clustering algorithm. It addressed long network setup time, high maintenance costs, and slow recovery in self-organizing networks of high-speed aircraft. The algorithm improved three metrics, such as average inter-node distance, average movement similarity, and node degree. It optimized the networking process to reduce setup time caused by gradient suppression. An efficient backup cluster head election and cross-layer notification mechanism lowered maintenance costs. A rapid response switching mechanism for cluster members handled slow responses during sudden cluster head failures. Simulations with OPNET software show significant improvements in setup time, control overhead, and recovery time compared to existing algorithms. Simulation results indicate that the algorithm improves network perfor-mance. It is more suitable for self-organizing networks of high-speed aircraft in complex environments.
Key words:high-speed flight vehicle Ad hoc network; clustering algorithm; cluster maintenance; rapid recovery
0 引言
高速飛行器自組網是一種熱門的網絡架構,其節點由高速飛行器如戰斗機、高速無人機、高超音速導彈等[1]組成。高速飛行器的應用已經逐漸成為一種重要的戰術和戰略資源。然而,與傳統移動自組網相比,高速飛行器自組網呈現出一些獨特的特點。首先,高速飛行器的移動速度極快,可達數百乃至上千公里/小時[2],這給網絡拓撲維護和信息傳輸帶來巨大挑戰;其次,高速飛行器自組網往往涉及大規模節點,網絡規模龐大且拓撲變化迅速,給網絡管理和協調增添了不少困難;此外,高速飛行環境下,要求通信的時延可控以及在損傷后快速恢復[3]方面有非常高的要求。因而,通常采用分簇結構,提高網絡的可擴展性和可管理性、增強節點間的協調控制、優化資源分配和路由選擇[4,5],從而更好地滿足高速飛行場景下的嚴苛需求。
針對大規模節點場景,早期已有最小節點ID算法和最高連通度算法相關的研究。兩者均在靜態場景下有較好應用。但前者易產生過多的簇首,引起平均投遞時延增加;后者簇間節點個數不一,對含有較多節點的簇,每個簇成員的吞吐量將急劇下降,降低整體的性能。后續研究人員綜合考慮節點間平均距離、移動性、節點度、能量等指標[6~8],提出適用于完全分布式自組織網絡場景下的加權分簇算法(weighted clustering algorithm,WCA)。在部分應用場景下,研究人員又考慮了任務類型。根據網絡需求,調整指標所占權重的方式進行簇首選舉,以此提升網絡的整體性能。文獻[9]提出了一種加權K-means算法,在成簇階段綜合考慮節點轉發能力、移動相似度和能量三者進行簇首輪換,同時引入備用簇首加速拓撲快速恢復。然而該類算法初始要進行簇首節點指定,在完全分布式的應用場景難以應用。
文獻[10]提出了一種基于相對移動性預測的加權分簇算法。選舉指標不依賴定位信息,采用接收功率來估算節點間距離,利用多普勒頻移計算相對移動速度,根據兩者預測鏈路的維持時間進行選舉。然而,當節點距離較小時,應用多普勒頻移計算相對速度對硬件要求較高,在速度較小時不準確,導致其關鍵選舉指標鏈路維持時間誤差較大,影響組網和后續簇維護。文獻[11]針對軍用飛行器由于高速移動帶來的結構不穩定問題,借助地理位置信息與移動性進行簇首選舉。然而,該算法缺少對備用簇首的定期維護,并且附屬簇成員改變了原有的單跳簇結構,增大了傳輸時延和丟包率。文獻[12]提出了一種基于加權的穩定分簇算法(weight stable clustering algorithm,WSCA),改進了權值賦值方法,使得分簇算法能夠加入一定的主觀性。采用動態閾值進行簇首輪換,卻存在簇維護開銷過大的問題,降低了整體的吞吐量。文獻[13]提出一種動態尺度加權分簇算法(dynamic scale weighted clustering algorithm,DSWCA),引入了動態集群尺度來減少孤立通信節點,根據簇首能力閾值來進行備用簇首輪換。該算法僅根據單一指標進行簇首更替,導致在高動態、不以能量因素為主導的應用場景下表現不佳。文獻[14]提出一種快速穩定加權分簇算法(fast and stable weighted clustering algorithm,FSWCA)。該算法改進了選舉指標,緩解了梯度依賴現象;改進了備用簇首通告機制,降低了簇維護階段的開銷;改進了簇成員響應機制,加速了網絡恢復。然而,其簇成員響應機制容易產生簇首損壞的“虛警”,即因丟包造成備用簇首誤認為簇首損壞,并執行簇首輪換操作,影響正常通信。
基于以上分析,現有加權分簇算法仍存在指標選取不合理、組網較慢、簇維護開銷較大及拓撲恢復不及時等問題,為此提出了一種功率感知的快速高效加權分簇算法(power-aware weighted clustering algorithm,PWCA)。在組網階段,該算法提出了平均節點間距離、平均節點間移動相似度和連接可靠性因子修正的節點度三個分簇選舉指標量,并對組網流程進行優化,加速了組網進程。在簇維護階段,該算法提出一種備用簇首選舉和高效跨層通告機制,降低了簇維護階段的開銷;提出了一種簇內成員快速響應切換機制,加快了損傷后的拓撲恢復。
1 網絡模型與問題描述
1.1 網絡模型
如圖1所示,將飛行器節點分成多個簇群,下層是集中式的單跳網絡,簇群內的節點采用相同發射頻段,經簇首節點進行通信。上層網絡是簇首組成的分布式多跳網絡,簇內成員節點通信要經由簇首轉發。單跳簇的網絡架構具有時延低、結構穩定及損傷快速恢復等優勢。因而,在高速飛行器網絡中,往往采用該網絡模型。
1.2 問題描述
在深入研究分簇算法后,發現其存在以下問題:
a)現有選舉指標,如平均節點間距離、鏈路的維持時間、節點的移動性等[11~14],往往依賴于衛星定位提供的位置信息。在受到惡意攻擊而無法使用衛星定位時,這些基于位置信息的指標計算就會受到影響,從而影響正常的網絡組建進程。為了解決這一問題,該算法采用接收功率來估計節點間距離,據此基于無線信號強度對加權分簇常用的指標進行計算,減少對于定位信息的依賴,令其更廣泛地適用于高速飛行器編隊網絡場景,即使在遭受惡意干擾而無法獲取可靠的位置信息時,也能夠正常進行簇首選舉和后續維護。
b)現有分布式移動場景下的組網流程,對于梯度依賴現象沒有很好的解決辦法。如圖2所示,是一個典型的梯度依賴現象。節點C被B抑制成簇,節點D同理,在隨機分布的情況下,位于網絡中心的節點往往權值呈現梯度差的形式。已有相關研究通過改善選舉指標[14],或通過旁聽更新自身權值的方式來減緩權值梯度依賴帶來的影響。然而更新權值后的節點并不一定適合成為簇首、或者因更新消息碰撞,帶來的部分節點遲入網甚至無法入網,組網失敗的情況。例如,已入網節點B向C發送更新通告包,然而C未收到該包,導致節點C始終等待B成簇,周圍節點受到節點C的抑制無法成簇,遲遲不能入網。
c)在網絡正常運行中,周期性地選舉備用簇首與通告全簇,存在維護開銷較大的問題,且選舉周期主觀性較強,具體如下:(a)較長的周期會導致備用簇首更新不及時,在簇首節點突然損壞的情況下,不合適的備用簇首節點接管原簇,會導致大量的節點掉線;(b)較短的周期會增大控制開銷,影響正常通信,降低了整體的吞吐量。
同時,在簇首節點突發損壞時,存在簇內成員響應較慢的問題。因而,從簇首選舉指標改善、組網流程改進和簇維護機制改進三方面來解決上述問題。
2 簇首選舉指標
PWCA包含平均節點間距離、平均移動相似度和改進后的節點度三個選舉指標。其中平均節點間距離反映了整個網絡的節點分布情況;平均移動相似度是利用兩節點間的變異系數來反映的,用于衡量節點的穩定程度;而改進后的節點度,能反映節點的鄰居數量以及與鄰居通信質量好壞。節點通過周期性地交換控制消息來計算分簇權重,用于完成后續簇首選舉。
2.1 平均節點間距離
假定飛行器節點的發射功率是恒定的。節點滿足自由空間路徑損耗模型,其中L(dB)是信號功率損耗,路徑損耗是指信號從發射機到接收機傳播過程中功率損失的程度。Pt是發射功率,Pr是接收功率。發射功率Pt與接收功率Pr的比值反映了信號功率的衰減程度,電磁波在自由空間中傳播時,其功率密度會隨著距離d的平方而衰減。Gl是收發增益之積,λ是載波波長,如式(1)所示。
3 分簇算法具體實現
3.1 組網過程
在高速飛行器網絡場景中,由于飛行器運行速度較快,拓撲的變化情況較為復雜。在分簇過程中,若因丟包使得未入網節點未能更新已入網節點的權重,導致部分區域節點始終受到梯度抑制,進而引發組網進程延緩甚至組網失敗。未能入網的節點需要周期性地廣播自身消息,以重新進行下一輪次的簇首選舉,直至所有節點完成入網。
3.1.1 組網流程
圖3是PWCA一個輪次內的組網流程,未能在當前輪次入網的節點要進行下一輪次的簇首選舉和入簇流程,直到所有節點均成為已入網節點,組網結束。
PWCA的具體組網流程如下:
a)節點啟動后,節點處于“未決”節點狀態(N-node)。
b)節點通過周期性地廣播hello消息進行鄰居感知,計算出本節點的權重值,并在下一個hello消息中廣播。
c)根據節點收到的鄰居節點權值集合和本地存儲的鄰居權值表中的權值大小,判斷自身是否成為簇首。將節點類型分為以下五類,并執行相應入網流程:
(a)自舉為簇首節點,修改自身節點狀態為“入網”狀態(I-node);廣播CH成簇消息,在接收到節點入簇請求消息后,回復入簇答復消息,完成簇成員節點的入網。
(b)未能自舉為簇首,但能收到CH成簇消息后修改自身節點狀態為“等待”狀態(W-node);向簇首節點發送入簇請求消息;接收到入簇答復消息后,完成入網。修改自身節點狀態為“入網”狀態(I-node)。
(c)未能自舉為簇首,未能收到成簇消息,但能聽到鄰居節點的入簇請求消息的節點N-node;一段時間后額外廣播一個Q-hello消息更新自身在鄰居節點中的權值。
(d)未能自舉為簇首,未能收到成簇消息、鄰居節點的入簇請求消息,但能聽到Q-hello消息的節點N-node;一段時間后重新進入簇首選舉狀態,該類型節點重新判斷自身能否二次成簇。
(e)未能自舉為簇首,未能收到成簇消息、鄰居節點的入簇請求消息,以及Q-hello消息的節點N-node;等待進入下一輪周期性選舉。
d)一個選舉輪次周期內未能完成入網的節點,將自身節點狀態修改為N-node,執行完轉步驟b)。
e)所有節點狀態均進入I-node,組網流程結束。
3.1.2 例證分析
在節點數較多且分布不均的場景下,梯度依賴現象十分常見。如圖4所示,對于傳統的周期性選舉的組網流程,包含area_1與area_2區域內的節點不能在當前輪次實現入網,增加了選舉輪次,開銷更大,并且組網時間更長。
文獻[12]中,WSCA組網流程是,通過不斷探測鄰居狀態信息,更新權值再選舉,直至所有節點入網。這在高動態的環境中并不適用,節點動態移動導致的權值更新滯后,且由于碰撞或其他原因接收不到更新信息時,該種組網方式會導致節點入網時間延長,甚至部分節點始終無法完成入網操作。如圖4中的節點C,未能收到節點B的信息的情況下,始終被節點B所抑制,最終該部分節點無法入網成功,等待若干時間后自舉為簇首,增加了孤立通信節點的數量。
文獻[14]中,在FSWCA的組網流程中,節點沒有額外的Q-hello操作,未能收到成簇消息及鄰居節點的入簇請求消息的節點無法更新鄰居節點的權值,因而僅有area_1可以完成入網;在area_2區域中,節點C僅在本地更新了自身權值,卻被節點D所抑制無法自舉成簇首,該區域節點在一段時間后重新進入下一輪選舉。
在PWCA的組網流程中,節點A的權值最高成為簇首,執行成簇操作;節點B未能自舉為簇首,但能收到CH成簇消息,執行入網操作;節點C偵聽到節點B的入簇申請,且自身處于N-node狀態,更新自身權值和廣播Q-hello消息;節點D收到C的權值更新hello消息,消除了梯度抑制,被選舉為簇首節點,在當前輪次內實現節點入網,增加了單輪入網節點個數,減少了組網輪次,實現更快速的入網。
3.2 簇維護機制
在高速飛行器網絡場景中,對時延的可控和頻譜利用率有較高的要求。因而,在分簇完成后,MAC層技術切換至TDMA協議。簇首根據分簇階段中收集的同頻干擾信息計算和切換至不同頻段進行簇內通信,簇間通信采用CSMA/CA協議。
簇首在損壞前,視為能夠正常執行簇首節點的功能,為保證通信的可靠以及減少額外的開銷,極少主動進行簇首的更換。簇首節點與簇成員節點之間通過存活消息的方式來維護兩者之間的聯系。對部分離開通信范圍的節點,簇首在其存活周期過期后,刪除對應的成員表和路由信息。在簇首節點遭受打擊損壞時,備用簇首快速響應和完成簇內成員的接管。因而簇的維護機制主要在于備用簇首的選舉和通告,以及簇首非正常損壞下的簇內節點的快速響應。
3.2.1 備用簇首選舉機制
簇首作為整個網絡的中心,依照簇內成員節點與自身的相似程度來指定初始備用簇首。簇成員向簇首發送的入簇請求消息中,攜帶該節點與本簇簇首的移動相似度及連接可靠性因子。簇首根據兩者以及本地存儲的最新距離信息計算最合適的初始備用簇首,并廣播通告全簇成員。
網絡正常運行中,一段時間內簇內節點必須向簇首發送通信消息或存活消息,以供簇首更新簇成員存活周期。簇內成員正常通信要經過簇首節點轉發。簇首通過節點的數據包或存活消息的接收功率信息來收集一段時間內節點與自身的距離變化情況。分簇完成后,備用簇首的更新采用按需更新機制。當成員數發生變化或者設定時間過期時,簇首節點將根據備用簇首權值來進行備用簇首更替,并通過跨層通告機制來通告全簇。
3.2.2 備用簇首高效跨層通告機制
如圖5所示,一個時幀內包含了固定分配時隙、動態分配時隙及自由競爭時隙。簇首節點在每個時幀的第一個時隙廣播beacon幀,簇內成員節點提取自身時隙,并在自身時隙內發送數據包。
針對備用簇首更新消息不及時和開銷大的問題,提出了一種高效的跨層通告機制。簇首節點在廣播beacon幀時,對時隙進行排序。第一個時隙分配給當前的簇首節點自身使用。將第二個時隙分配給備用簇首節點使用。普通節點在提取自身時隙分配的同時,根據位次可以讀取到備用簇首節點的信息,進而更替本地的備用簇首信息。通過時隙順序的信息來進行備用簇首通告,避免了原有的備用簇首通知分組的開銷,也避免了由于備用簇首通告分組的丟失導致簇成員節點無法及時更新備用簇首信息的問題。備用簇首選舉與通告機制偽代碼如下。
算法1 備用簇首選舉與通告機制
輸入: Node_List, //簇內節點列表
Distance_Record。//簇首與每個成員節點的距離變化數組
輸出: Backup_CH。 //備用簇首節點
說明: Node_List: 簇內所有節點的列表
Distance_Record: 簇首與每個成員節點的距離變化數組
Node.is_Backup_CH: 備用簇首標志位
Backup_CH: 備用簇首節點
CH_node: 簇首節點
Node.Backup_CH: 每個節點本地存儲的備用簇首 ID
初始化: t = 0; Node_List; Node.is_Backup_CH = 1;
Node.Backup_CH = none /*初始化運行時間、成員節點列表、節點備用簇首標志位、備用簇首*/
while t lt; T and Node_List unchanged:
Collect_Distance_Records(Node_List, Distance_Record)
//收集距離變化數據
end while
if t gt; T or Node_List changed
a) for CH_node: //簇首節點
Calc_Node_Weight(node, Distance_Record)
//計算節點作為備用簇首的權重
Node_List.max(x:x.weight, reverse=true)
//選擇最大權值的節點作為備用簇首節點
Backup_CH = Node_List[0].id
//簇首更新備用簇首
Network_Layer.Notify_MAC_Layer(Node_List)
//簇首節點MAC層更新成員節點列表
MAC_Layer.Update_Beacon_Timeslots(Node_List)
//簇首節點更新beacon幀時隙順序
MAC_Layer.Broadcast_Beacon()
//下一個beacon時段進行廣播
b) for node in Node_List: //成員節點更新本地備用簇首
if MAC_Layer.Received_Beacon()
node.is_Backup_CH = true
else
Backup_CH = Node_List[0].id
end if
3.2.3 簇內成員快速響應切換機制
為保證飛行器節點能不間斷地進行通信,正常運行狀態下極少進行主動切換。主動切換狀態下,簇首廣播退網,偵聽到退網通告的簇內成員節點根據本地存儲的備用簇首信息直接申請入網。而在簇首突發損壞時,通信的恢復速度與簇內成員的響應機制有關。
圖6為簇首突發損壞后,簇內成員快速響應的流程。如果備用簇首節點在當前輪次未能收到beacon消息,則旁聽簇內其他成員節點是否有通信活動。若在本輪內也未能聽到簇內其他節點的信息,則認為簇首節點已經損壞。備用簇首節點根據上一個beacon幀包含的時間信息計算出本簇的時幀長度和下一個競爭入網時隙的具體時間點。備用簇首將在其本地計算得到的競爭入網時隙內,廣播成簇通知消息。
普通成員節點如果本輪內沒有收到簇首的beacon消息,此時存在簇首節點損壞或自身離開通信范圍兩種情況。若能偵聽到備用簇首成簇通知消息,則立即向備用簇首申請入簇。少數未能收到成簇通知消息的節點,在連續未能偵聽到三個beacon幀后,根據本地存儲的備用簇首節點信息發送入簇申請消息,并執行簇首選舉流程。若收到答復入簇請求,則說明備用簇首檢測到簇首損壞,且在自身通信范圍內,則終止簇首選舉流程,完成入簇。若收到其他簇首節點的beacon幀消息,在對應自由競爭時隙,向該簇首節點發送入簇請求消息加入對應簇。若均未收到,則進行簇首選舉流程,成為簇首或者簇成員,完成入網。備用簇首快速響應機制偽代碼如下。
算法2 備用簇首快速響應機制
輸入: Node_List, //簇內節點列表
Backup_CH, //備用簇首節點
Beacon_Frame。 //接收到的 beacon 幀
說明: Node_List: 簇內所有節點的列表
Node.is_CH: 簇首標志位
Backup_CH: 備用簇首節點
CH_node: 簇首節點
Node.Backup_CH: 每個節點本地存儲的備用簇首 ID
初始化: t = 0, Node_List, Node.is_CH = 1,
Node.Backup_CH = none /*初始化運行時間、成員節點列表、簇首標志位、備用簇首*/
while t lt; T and receive_beacon(Beacon_Frame):
t = 0 //監聽 beacon 消息,重置過期時間
calculate time_frame_length,next_slot
//計算時幀長度和競爭入網時隙
end while
if ?。╮eceive_beacon() || receive_cluster_member_info())
//監聽簇內其他節點信息
a) for Backup_CH_Node://備用簇首節點響應
Node.is_CH = true; //更改節點狀態為簇首
broadcast_cluster_notification(next_slot)
//在競爭入網時隙內廣播成簇通知消息
backup_cluster_head_election(Node_List):
//調用備用簇首選舉通告機制,更新beacon幀并廣播
MAC_Layer.Update_Beacon_Timeslots(Node_List)
MAC_Layer.Broadcast_Beacon()
b) for node in Node_List: //成員節點相關操作
member_node_response(node) //簇成員節點申請入網
node.extract_timeslot(Beacon frame)
//提取自身時隙
end if
3.3 復雜度分析與性能評估
3.3.1 算法復雜度分析
從時間、空間兩個方面分析PWCA的復雜度。設網絡規模為N,節點的平均節點度為D。由于組網階段每個節點都需要進行鄰居感知和權重計算,時間復雜度與節點數量N和鄰居數量D成正比,即O(N×D)。每個節點需要存儲鄰居信息、權值信息和狀態信息,空間復雜度與節點數量N和鄰居數量D成正比,即O(N×D)。在組網階段,時間復雜度和空間復雜度均可認為是O(N)。在簇維護機制上采用了跨層設計,利用了節點的數據消息和存活消息的接收功率計算節點間距離和移動相似度,據此進行備用簇首的維護和選擇,減少了部分控制開銷。簇首收集距離變化數據的空間復雜度為O(K),其中K為本簇內節點數量,所有簇首占用的總空間復雜度為O(N)。簇首選舉備用簇首的時間復雜度為O(K)??焖夙憫獧C制中,備用簇首監聽簇首狀態,自舉為簇首后,也要調用備用簇首選舉和通告機制。因此,整個算法的時間復雜度為O(N),空間復雜度為O(N)。
3.3.2 算法性能評估
PWCA組網過程充分利用了單輪選舉中收集到的信息,在入網過程中,消除了梯度抑制帶來的部分區域遲入網的問題,加快了組網進程。借助正常通信和心跳信息感知接收功率變化,選舉備用簇首,減少了一定的備用簇首選舉開銷。通過beacon幀的時隙順序來通告備用簇首的選擇與更替,去除了備用簇首通告的開銷,同時更加可靠地傳遞了備用簇首信息。假設簇首在廣播beacon幀前掉線,那么備用簇首節點能在當前時幀的自由競爭時隙內完成切換。在最差的情況下,即簇首節點廣播完beacon幀消息后掉線,備用簇首節點能在下一個時幀的自由競爭時隙內完成身份切換,實現簇首損壞的快速發現和簇成員接管,加快了網絡的恢復。
4 仿真分析
使用OPNET 14.5仿真軟件對PWCA的性能進行仿真驗證。對比選取的協議有WCA、文獻[9]、WSCA[12]、DSWCA[13]及FSWCA[14],仿真參數如表1所示。仿真通過調整節點數量、損壞程度及運行速度來反映不同場景下各算法的相關性能。從分簇個數、組網輪次和組網開銷三個方面來反映組網階段算法性能。簇首損壞后,通過掉線節點數量、恢復時間以及總控制開銷來反映簇維護階段的算法性能。
仿真場景中,設置若干打擊目標,節點以不超過設定最大速度向目標靠近執行打擊任務,簇首節點在損壞前,視為能夠正常執行簇首節點功能,不進行簇首切換。簇內通信MAC層初始使用CSMA/CA協議進行組網和收集同頻干擾信息,在入網完成后切換至TDMA協議,簇首根據組網階段收集到的同頻干擾信息切換至不同頻段。簇間通信使用CSMA/CA協議。
組網階段,選取了網絡架構同為單跳簇的WCA、DSWCA、FSWCA與PWCA進行對比。圖7、8是成簇個數、成簇輪次與節點總數的關系變化圖。隨著節點數的增加,簇的數量和組網輪次呈現不斷增加的趨勢。WCA隨著節點數量增加,孤立簇首不斷增多。DSWCA引入了動態集群尺度來減少孤立通信節點,因而成簇個數也表現較好,然而組網流程與原始的WCA協議沒有差別,故而組網較慢。在組網過程中,FSWCA設置了入簇閾值,減少了較遠節點入簇的概率,一定程度上減少了孤立通信節點的產生。FSWCA協議對節點度進行了改進,緩解了部分梯度抑制問題,因而組網輪次相較于WCA與DSWCA更少。PWCA對于組網流程中的改進,降低了上一輪選舉與下一輪選舉區域之間的節點成為孤立通信節點的可能,令一跳以外的受抑制節點也參與到本輪的簇首選舉中,進一步縮短了組網輪次,加快了組網進程。在成簇個數方面,PWCA表現較好,同時也能較快地完成組網。
如圖9所示,是組網開銷和節點個數之間的關系。由于當前輪次選舉入網的節點不會參與到下一輪的信息交互和選舉中,所以組網開銷與組網輪次基本呈正相關。由于引入了Q-hello的額外開銷,每輪組網開銷實際上高于其他算法,例如在36節點時,能看到PWCA的組網開銷高于FSWCA。而隨著節點數的增加,PWCA協議所需組網輪次更少。隨著節點數增多,相對于其他算法,PWCA的組網開銷更小。
簇維護階段選取了文獻[9]、WSCA、DSWCA、FSWCA與PWCA進行對比。圖10顯示了不同算法在簇首損壞時節點掉線數量的表現對比。DSWCA中,在簇首能量降低到閾值前,不會主動進行備用簇首的重新選擇。雖然開銷較小,但在簇首突發損壞的情況下,此時的備用簇首節點并不適合接管原簇,導致掉線節點較多。文獻[9]、FSWCA和WSCA中均是采用了周期性更新備用簇首的模式,因而簇首突發損壞時掉線節點數均明顯低于DSWCA。而WSCA在簇維護中引入附屬簇成員機制,可以連接一跳外的掉線節點,作為附屬簇成員,擴展了簇的范圍,因而其掉線節點數最少。但附屬簇成員會帶來平均傳輸時延的增加,也會影響傳輸成功率。PWCA選舉備用簇首節點考慮了與簇首之間的移動相似度,并且備用簇首節點更新更加及時,通告機制更加可靠,使得在簇首損壞時,掉線節點數較少。在不改變單跳簇網絡模型的情況下,PWCA相比其他算法表現更優。
圖11是節點于不同最大運動速度的突發損壞場景下,不同算法最長恢復時間。其中節點總數為90個,損壞簇首數設置為5個。WSCA、DSWCA以及文獻[9]均是通過心跳消息感知簇首狀態,仿真設置心跳消息為2 s,備用簇首在三個周期內接收不到簇首的心跳消息則認為簇首節點損壞,執行接管簇成員操作。FSWCA改進了簇成員響應機制,備用簇首能夠快速響應并且完成接管操作。然而,在仿真過程中發現,FSWCA出現虛警現象的概率高于其他算法,即備用簇首節點因丟包未收到心跳消息,誤以為簇首損壞而準備接管簇成員,影響正常通信。PWCA借助beacon幀消息與簇內通信活動兩方面感知簇首狀態,降低了虛警概率,同時令備用簇首能夠在最長兩個時隙內感知到簇首損壞并執行簇首輪換操作,因而表現較好。
圖12展示了在30%損壞率下,不同算法在不同節點數下的總控制開銷變化情況??刂崎_銷來源于節點的存活消息、維護備用簇首的開銷,以及拓撲改變后的入簇申請和答復開銷。DSWCA對于備用簇首的維護開銷較小,但其掉線節點數較多,重新入網的節點較多,增加了部分開銷。文獻[9]對備用簇首選舉指標進行了改進,減少了備用簇首選舉的部分開銷,因而低于WSCA。FSWCA通過在簇首心跳消息中攜帶備用簇首通告,減少了部分控制開銷,因而相較于WSCA和文獻[9],控制開銷較少。PWCA設計了跨層備用簇首選舉和通告機制,減少了備用簇首維護和通告帶來的開銷,因而控制開銷相較于現有算法更低。
5 結束語
針對高速飛行器自組網的組網流程較長、簇維護開銷較大、簇首損壞恢復較慢的問題,提出一種功率感知的快速高效加權分簇算法PWCA。該算法改進了分簇指標量的選取、組網流程及簇維護機制。仿真驗證了該算法能有效減少成簇輪次,降低簇維護階段的控制開銷,縮短簇首損壞后的恢復時間。在后續的研究中,將針對當網絡拓撲發生巨大變化時,例如簇首突發損壞、簇融合與分裂,如何加速拓撲信息的收斂,圍繞更加快速恢復網絡通信作進一步研究。
參考文獻
[1]陳大薇, 張永亮, 段鵬飛, 等. 高超聲速飛行器數據鏈關鍵技術分析及展望 [J]. 航空兵器, 2023, 30(4): 26-32. (Chen Dawei, Zhang Yongliang, Duan Pengfei, et al. Analysis and prospect of key technologies for hypersonic vehicle data link [J]. Aero Weaponry, 2023, 30(4): 26-32.)
[2]陳曉楠, 張廣林, 褚世永, 等. 美軍空中裝備體系作戰能力評估方法研究 [J]. 指揮控制與仿真, 2023, 45(2): 60-64. (Chen Xiaonan, Zhang Guanglin, Chu Shiyong, et al. Research on the eva-luation method of the combat capability of the U. S. air equipment system [J]. Command Control amp; Simulation, 2023, 45(2): 60-64.)
[3]洪潔, 張德海. 高動態飛行器自組織網絡組網研究 [J]. 計算機工程與科學, 2019, 41(11): 1930-1938. (Hong Jie, Zhang Dehai. A networking scheme for highly dynamic flying Ad hoc networks [J]. Computer Engineering amp; Science, 2019, 41(11): 1930-1938.)
[4]王書省, 李林琳, 李曉青, 等. 小型飛行器無線組網系統設計與實現 [J]. 測控技術, 2020, 39(11): 133-140. (Wang Shusheng, Li Linlin, Li Xiaoqing, et al. Design and implementation of wireless networking communication system for small aircrafts [J]. Measurement amp; Control Technology, 2020, 39(11): 133-140.)
[5]Abdulhae O T, Mandeep J S, Islam M. Cluster-based routing protocols for flying Ad hoc networks (FANETs) [J]. IEEE Access, 2022,2022(10): 32981-33004.
[6]孟暉, 王海濤. Ad hoc網絡中典型分簇算法的性能分析 [J]. 解放軍理工大學學報: 自然科學版, 2006(6): 531-536. (Meng Hui, Wang Haitao. Performance analysis of typical algorithms in Ad hoc network [J]. Journal of PLA University of Science and Technology: Natural Science, 2006(6): 531-536.)
[7]Chatterjee M, Das S K, Turgut D. WCA: a weighted clustering algorithm for mobile Ad hoc networks [J]. Cluster Computing, 2002, 5(2): 193-204.
[8]Park J H, Choi S C, Hussen H R, et al. Analysis of dynamic cluster head selection for mission-oriented flying Ad hoc network [C]// Proc of the 9th International Conference on Ubiquitous and Future Networks. Piscataway, NJ: IEEE Press, 2017: 21-23.
[9]Khayat G, Mavromoustakis C X, Pitsillides A, et al. Multiple redundant K-means clustered scheme based on weighted cluster head selection for damaged S-UAV [C]// Proc of IEEE Global Communications Conference. Piscataway, NJ: IEEE Press, 2023: 6177-6182.
[10]孟洛明, 江彥馥, 劉彥君, 等. 基于相對移動性預測的k跳Ad Hoc網絡分簇算法 [J]. 電子與信息學報, 2018, 40(12): 2954-2961. (Meng Luoming, Jiang Yanfu, Liu Yanjun, et al. Relative mobility prediction based k-hop clustering algorithm in Ad hoc networks [J]. Journal of Electronics amp; Information Technology, 2018, 40(12): 2954-2961.)
[11]代家銘, 宋玉龍, 尚亞黎, 等. 高動態環境下航空自組網分簇算法設計 [J]. 計算機應用研究, 2015, 32(4): 1193-1198. (Dai Jiaming, Song Yulong, Shang Yali, et al. Cluster algorithm for aeronautical Ad hoc network in highly dynamic environment [J]. Application Research of Computers, 2015, 32(4): 1193-1198.)
[12]梅家棟, 南建國. 無人機自組網基于加權的穩定分簇算法 [J]. 計算機應用研究, 2021, 38(11): 3411-3416. (Mei Jiadong, Nan Jianguo. Weighted stable clustering algorithm for flying Ad hoc network [J]. Application Research of Computers, 2021, 38(11): 3411-3416.)
[13]Wang Xiangyu, Liu Zhengyang, Jian Chunxiao, et al. A dynamic scale UAV weighted clustering algorithm [C]// Proc of IEEE International Conference on Unmanned Systems. Piscataway, NJ: IEEE Press, 2021: 209-213.
[14]郭建, 任智, 邱金, 等. 無人機自組網快速穩定加權分簇算法 [J]. 計算機應用研究, 2024, 41(1): 248-253. (Guo Jian, Ren Zhi, Qiu Jin, et al. Fast and stable weighted clustering algorithm for unmanned aerial vehicle Ad hoc network [J]. Application Research of Computers, 2024, 41(1): 248-253.)