丁元明,趙 鈺,張 然
(大連大學 信息工程學院 通信與網絡重點實驗室,遼寧 大連 116622)
微納衛星是微型衛星與納衛星的總稱,由于微納衛星開發周期短、重量輕、價格便宜,能以更低的成本完成多種復雜的空間任務,成為推進航天器轉型和技術創新的前沿方向[1,2]。在微納衛星網絡中工作的節點具有移動性與能源受限的特點,且其工作的空間環境惡劣復雜,使微納衛星網絡十分脆弱[3]。路由作為微納衛星網絡的重要部分,一旦受到攻擊會導致數據傳輸延誤或失效,給整個網絡產生巨大的影響。
基于信任機制[4,5]的安全路由技術已廣泛應用于衛星網絡和無線自組織網絡中解決其路由面臨的安全威脅。文獻[6,7]所應用的信任機制能夠防范多種常見的攻擊,但是在信任評估的過程中缺乏對節點能量問題的考慮。文獻[8]將信任評估機制和優化的蟻群算法相結合,在保證網絡安全性的同時增加了搜索效率,但迭代次數過高,并且不適于具有移動性的微納衛星網絡。
針對上述問題,結合微納衛星節點能量受限和具有移動性的特點,本研究提出一種結合蟻群算法和信任機制適用于微納衛星網絡可信蟻群安全路由算法。本算法首先從多個方面綜合計算節點的總體信任值,在計算節點信任值的過程中,考慮到了節點剩余能量的問題,避免了對信任值較高節點的重復使用,造成可信度較高的節點能量過早被消耗完。然后應用蟻群算法綜合節點的信任值和移動性選擇出安全穩定的鏈路,為數據傳輸選擇出最優的路徑。
在本信任機制中,節點的直接信任值通過對節點的攻擊行為以及轉發行為這兩個信任子值綜合計算所得。
1.1.1 攻擊行為信任子值

(1)
tc和tc-1分別表示當前時間和上一次的檢測時間,ψ代表指數衰減程度。由式(1)可以看出,如果兩次檢測時間的間隔越小,則節點上一次行為表現的參考價值越高,上一次攻擊行為信任子值在計算中所占的比重越大。同時,節點的惡意攻擊行為將被長時間的記錄下來。
在式(2)中, d(t)L表示通過監測機制對節點當前行為評估后量化的值, r(t)L和n(t)L分別代表對節點當前行為正常和異常時的評估值,如式(2)所示
(2)
1.1.2 轉發行為信任子值
轉發行為信任子值的設定主要是為了針對微納衛星網絡中的自私攻擊行為,在微納衛星網絡正常運行時,由于微納衛星節點功能相對比較簡單,資源受限的特點,使得正常的節點有時也會產生丟包的現象。尤其是當整個微納衛星網絡比較繁忙時,某些路徑可能會產生擁塞的現象,正常的節點也會因為繁忙而不可避免的會產生丟包行為。因此,并不能簡單的根據是否有丟包行為就把節點定義為發起自私攻擊的惡意節點。
在計算節點轉發行為信任子值的過程中,設定TS表示節點轉發數據包成功的個數,設定TF為節點轉發數據包失敗的個數。節點成功轉發數據包的數量越多,表明節點在工作中具備更好的轉發行為,則對應增加節點的轉發行為信任子值。相反,節點轉發數據包失敗的個數越多,則立即降低對應節點的轉發行為信任子值。采用式(3)進行節點轉發行為信任子值TR的計算
(3)
1.1.3 直接信任值的計算
通過對節點的攻擊行為信任子值和轉發行為信任子值的計算后,加權求和綜合計算出節點的直接信任值TSE,TSE的計算公式如式(4)所示
TSE=ω1TR+ω2TC
(4)
式中:ω1,ω2∈[0,1] 且滿足。ω1,ω2分別代表轉發行為信任子值和攻擊行為信任子值所占的權重,應根據不同的使用環境設定權重因子ω1,ω2的大小。
為了評估節點受信任的程度,設定一個判別惡意節點用的門限閾值Tlower,當計算出節點的直接信任值比該門限閾值低時,則將該節點視作惡意節點。惡意節點門限閾值Tlower可以根據具體的使用環境進行設定[9]。
在獲得全網節點的直接信任值后,根據微納衛星網絡中正常節點的直接信任值大小,計算出可信門限閾值Tthreshold,計算公式如式(5)所示
(5)


表1 節點狀態劃分
當檢測到惡意節點后,廣播通知其它節點,并將其隔離出微納衛星網絡,當與可疑節點進行通信時,僅從直接信任值難以判斷節點的狀態,在這種情況下,引入間接信任值共同計算節點的綜合信任值。
為了在節點通信過程中確定其它的受信任的程度,在信任機制中每個節點除了需要維護路由表外,還需要設定一張信任表來存儲可通信節點的信任值。當節點x與節點y進行通信時,發現節點y的直接信任值低于可信門限閾值Tthreshold,則節點x向其鄰居節點查詢對節點y的信任值大小,在通過鄰居節點mi來計算間接信任值Trs時引入加權因子,使得節點x對其鄰居節點的直接信任值在計算中起主導作用。間接信任值的計算公式如式(6)所示
(6)
通過該公式即可獲得通過節點mi所計算出的間接信任值,設定節點x可以通信的鄰居節點的范圍為XS,假設在通信范圍XS中一共有n個節點能夠與鄰居節點y正常通信,并且這些節點的信任表中存儲有節點y的信任值。那么節點x對于節點y間接信任值Trs的計算過程可由式(7)表示
(7)
間接信任值的計算如圖1所示。

圖1 間接信任值計算
計算節點的間接信任值時需要引入其它節點對目標節點的評價,此時如果在連通域中存在惡意節點,該惡意節點很有可能對目標節點發動誹謗攻擊從而誣賴目標節點,或者是與其它節點一起發動合謀攻擊提供虛假的信任值[10]。因此需要對XS內所有節點提供的推薦信息進行校驗,節點x對于目標節點y的可疑校驗度PC(x,y) 的計算如式(8)所示
(8)
可疑校驗閾值φ的大小根據所使用的具體環境來進行提前設定,在計算間接信任值時,如果某節點mi提供信任值與可疑性校驗度滿足下式的關系
(9)
則可認為該節點提供的信任值偏差較大不予采納。通過這種方法可以將信任節點集合中惡意節點提供的虛假信息排除。為了全面反映出節點的可信程度,根據計算出節點的直接信任值和間接信任值綜合計算出反映節點受信任程度的綜合信任值TSS。綜合信任值TSS的計算公式如式(10)所示
TSS=δ1TSE+δ2Trs,δ1,δ2∈(0,1),δ1+δ2=1, 且δ1>δ2
(10)
與可信節點通信時,此類節點可信程度較高,為了簡化算法,直接使用節點的直接信任值作為綜合信任值。
對于微納衛星來說,其節點供電能力非常有限,所以在微納衛星的使用過程中必須考慮微納衛星的能量狀態。在計算信任值的過程中,如果某個微納衛星節點得到較高的信任狀態,使該節點頻繁的加入工作中,會引起該節點能量的快速消耗。這種情況將導致該節點反而因為可信程度較高,引起能量消耗過快從而被迫提前結束工作狀態退出網絡。因此,在建立信任機制中根據所應用環境的特點,將節點的剩余能量狀況作為重要因子進行考慮。本文數據傳輸所采用的信道模型如圖2所示。

圖2 數據傳輸的信道模型
文獻[11]分析網絡節點在一次數據轉發過程中接收數據包和發送數據包具體需要消耗的能量,根據所提出的公式,詳細計算出微納衛星節點在轉發過程中消耗的能量Econsum,計算公式如式(11)所示
Econsum=2×Erec×N+Esend×N×d2
(11)
式中:Erec代表節點在工作狀態中接收1 bit數據所需要耗費的能量,N表示這次收發過程中數據分組的總比特數量,Esend的含義是指在數據收發過程中為了滿足信噪比所耗費的能量,d表示本次轉發數據過程中兩節點之間的距離。Erec和Esend數值的大小與所使用的環境息息相關,根據不同的應用背景提前設定符合環境的數值。
Einitial表示在未參與當前接收和轉發行為之前所剩余的能量,Ecurrent代表微納衛星節點完成本次接受轉發后剩余的能量大小,則可得
Ecurrent=Einitial-Econsum
(12)
定義Eper為微納衛星節點當前剩余能量的百分比,根據能量消耗計算出當前微納衛星的剩余能量Ecurrent后,與微納衛星初始全部能量大小Eentire進行比較得出當前微納衛星剩余能量的百分比Eper如式(13)所示
(13)
將能量信任值與綜合信任值進行加權求和,得出反應節點安全程度和能量狀態的總體信任值。在節點傳輸數據的過程中會更加傾向于選擇信任值高的節點轉發數據,這就會造成信任值較高節點的能量會被快速消耗而被迫提前退出網絡,并且大量數據都發往可信度高的節點會容易造成鏈路擁塞從而影響網絡性能。
因此,在計算節點的總體信任值中考慮上節點的剩余能量狀態,當可信度較高的節點因轉發數據而造成能量消耗較大時,節點的總體信任值會逐漸下降,由其余能量充足的節點繼續完成數據轉發任務。同時也有效避免將大量數據發往少量鏈路而造成的網絡擁塞。通過在計算節點的總體信任值中考慮上節點的剩余能量,避免在路由選擇過程中不考慮節點的剩余能量狀態,頻繁選擇信任值較高的節點,造成高可信度節點能量消耗過快,而其它節點的能量充足而無法得到轉發數據的機會,減少了具備不同信任度節點的能量消耗差距,延遲網絡的使用時間的作用。總體信任值的計算過程如圖3所示。

圖3 總體信任值的計算
總體信任值TT計算公式如式(14)所示
TT=TSS×(1-TSS)+Eper×TSS
(14)
使用該公式計算時,以數值1和綜合信任值的差值以及綜合信任值作為比重因子進行計算,當節點的綜合信任值高時,則綜合信任值的比重因子就相對較小,此時更多關注能量問題。如果節點的綜合信任值比較低,即使該節點剩余能量充足,也并不能優先選擇該節點傳輸數據。在這種情況下,計算節點的總體信任值時,綜合信任值作為比重因子會獲得更大的權重。
在源節點S發現目的節點D的過程中,節點的通信范圍為R,節點j是節點i的候選的下一跳節點,節點i的空間坐標為(xi,yi,zi),速度向量vi=(vix,viy,viz), 節點j的空間坐標 (xj,yj,zj), 速度向量vj=(vjx,vjy,vjz), 如圖4所示。

圖4 節點移動
根據式(15)計算出與vij與ij之間的夾角為
(15)
其中,∠α的計算公式如式(16)所示
(16)


(17)
綜上所述,定義節點的移動因子ΔMf為
(18)
移動因子ΔMf表明了下一跳節點相對于當前節點的移動程度。ΔMf值越大說明下一跳節點越靠近節點,ΔMf值越小說明下一跳節點離節點越來越遠。由于微納衛星網絡節點具有一定的移動性,這就會導致微納衛星網絡內部鏈路的不穩定性,在選擇下一跳節點時,選擇移動因子值較小的節點,即表明該節點與當前節點形成的鏈路更加穩定,更加有利于數據的傳輸,能夠有效減少因鏈路中斷而造成數據重傳的次數。
在微納衛星網絡中綜合考慮了節點自身的安全性以及能量問題,并且結合節點具有移動性的特點,將信任機制與蟻群算法相結合,提出適用于微納衛星網絡的MNSTA(micro-nano satellite trusted ant colony routing algorithm)可信蟻群路由算法,使得在數據傳輸過程中所選擇的下一跳鄰居節點具有較高的信任程度和相對穩定的鏈路。
在t時刻,假設共有m只螞蟻在源節點S尋找從節點i到達目的節點D的路徑過程中,螞蟻k從節點i選擇通往下一跳節點j的轉移概率公式為式(19)所示
(19)
τij(t) 表示t時刻從節點i目的節點D的路由中,j作為下一跳節點的鏈路(i,j)上的信息素值。ηij(t)為路徑(i,j)上的啟發值,該值的大小為從節點j到達目的節點d跳數的倒數,allowedk表示節點i可供選擇的不在禁忌列表中的下一跳節點集合。參數α和β分別代表了信息素和啟發值在計算轉移概率時所占的權重,則在(t+1)時刻鏈路(i,j)的信息素按照式(20)進行更新
τij(t+1)=(1-ρ)τij(t)+Δτij(t)
(20)
ρ∈(0,1) 代表了信息素的揮發系數, (1-ρ) 代表信息素的殘留因子,τij(t+1) 為(t+1)時刻鏈路(i,j)上的信息素,Δτij(t)為本次循環中信息素的增量
(21)

(22)
λ1,λ2分別表示了節點i獲得節點j的總體信任值和移動因子對信息素改變的重要性。Bdk(t)表示第k只后向螞蟻在t時刻已經走過的距離,φ是對應的系數。在選擇下一跳節點時,盡量選擇節點可信程度高,有充足的剩余能量,節點間形成的鏈路相對更加穩定,且距離目的節點較近的節點傳輸數據。
MNSTA可信蟻群路由算法的工作流程如圖5所示,具體步驟如下:
步驟1 初始化微納衛星網絡,計算并記錄各個節點的總體信任值和節點的移動因子,選取源節點S和目標節點D,設置最大迭代次數fmax和源節點的螞蟻個數m;
步驟2 設置前向螞蟻禁忌表并進行初始化,在禁忌表中存儲前向螞蟻已經達到過的節點ID號,并標記前向螞蟻k=k+1;
步驟3 根據轉移概率公式,每一個前向螞蟻在allowedk中選擇下一跳鄰居節點j。在選擇完下一跳節點j后,在禁忌表中加入被選擇的鄰居節點j;
步驟4 重復執行上述步驟3,當前向螞蟻通過概率轉移公式獲得到達目的節點D的路徑后,結束此次的路徑搜索,此時所有的前向螞蟻轉換為后向螞蟻,并根據式(20)~式(22)對全局的信息素進行更新;
步驟5 判斷是否滿足條件f≥fmax,若滿足條件則表明此次搜索路徑結束,否則轉向步驟2。

圖5 可信蟻群算法流程
為了驗證本文所提出的可信蟻群路由算法MNSTA的有效性,使用MatLab進行相關的仿真實驗。初始的微納衛星網絡拓撲采用Iridium系統作為網絡模型,即采用6×11的排列方式分布在仿真空間中,隨后微納衛星節點以不同的速率在一定的范圍里移動。仿真的實驗的主要參數見表2。
在蟻群算法中,各項參數的選取對算法性能有很重要的影響。當信息素權重因子α的值過大時,螞蟻就越傾向于選擇其它螞蟻已經獲得的最優路徑,減弱了蟻群算法搜索其它路徑的能力。當α的值過小時,蟻群算法容易陷入局部最優解。當啟發值權重因子β的值過大時,信息素在蟻

表2 仿真參數
群算法搜索過程中的作用會減弱,使算法最終只能得出一個局部的最優解。當β的值過小時,蟻群算法就會退化成簡單的隨機搜索。因此,對α和β的取值,通過實驗來確定,實驗結果如圖6所示。

圖6 α和β的取值對迭代次數的影響
由圖6可知,根據α和β的取值不同,算法在收斂到最優解時的迭代次數也不同,隨著α的增大,β在各種取值情況下的迭代次數均在增加。根據實驗結果可得當α=1,β=3時蟻群算法具有最少的迭代次數。
信息素的揮發系數ρ的取值情況直接影響蟻群算法的全局搜索能力和收斂速度。如果ρ值過大,將導致已經搜索過路徑的信息素快速揮發,增大了螞蟻選擇重復路徑的概率。如果ρ值過小,信息素發揮過慢,減弱了算法的收斂速度。在確定α和β的取值的情況下,通過實驗來確定信息素揮發系數ρ的取值,實驗結果如圖7所示。

圖7 ρ的取值對迭代次數的影響
由圖7可知,當ρ=0.6時蟻群算法能在迭代次數最少的情況下達到最優解。因此在本文的實驗中蟻群算法的各項參數取值為:α=1,β=3,ρ=0.6。
為了評價文本所提出算法的有效性,將本文算法與常見的ACO(ant colony optimization)和TAODV(trust ad hoc on-demand distance vector routing)兩種算法的性能進行對比。分別在網絡中設定惡意節點的數量從0~16動態變化,這些惡意節點分別發動不同類型的惡意攻擊:在接收到需要轉發的數據后以100%概率丟棄數據的黑洞攻擊,以及在計算間接信任值時提供虛假推薦的誹謗攻擊和為了節省自身能量以一定比率故意丟棄數據包的自私攻擊。分析在不同類型的惡意攻擊下,不同的算法在平均端到端時延、丟包率和平均能耗3種評價指標下的性能。
3.2.1 平均端到端時延
平均端到端時延是指從源節點發出數據分組到目的節點接受到數據分組所花費的時間。在網絡中動態設置惡意節點的數量和類型。由圖8可知,在網絡不存在內部惡意節點類型時,由于MNSTA和TAODV算法在計算節點的信任值需要花費一定的時間,所以ACO算法的端到端時延比MNSTA算法低16 ms,比TAODV算法低9 ms。隨著網絡內部出現不同類型的惡意節點數量不斷增加時,由于ACO算法沒有考慮到路由的安全性問題,使網絡的路由性能急劇下降,從而導致數據包到達目的節點的時延大幅上升,當網絡惡意節點數量達到16個時,ACO算法的平均端到端時延達到294 ms,分別比MNSTA算法和TAODV算法高出111 ms和77 ms。

圖8 平均端到端時延
因為TAODV算法和本文所提出的MNSTA算法都采用了信任機制來確保數據的可靠傳輸,所以這兩種算法的平均端到端時延隨惡意節點數量增加的變化趨勢大致相同。在MNSTA算法中計算節點信任值的過程相對更加復雜,因此,在網絡內部惡意節點數量在0個和2個時,MNSTA算法的平均端到端時延分別比TAODV算法高7 ms和3 ms。MNSTA算法在選擇路由時考慮到了節點的剩余能量問題,提高了搜索的效率。同時,在拓撲變化的網絡環境中MNSTA算法考慮到節點具有一定移動性的問題,減少了因鏈路的失效而引起路由重復發現,隨著惡意節點數量的不斷增加,MNSTA算法能夠得到最優的傳輸路徑。在惡意節點數量達到4個時,MNSTA算法的平均端到端時延開始低于TAODV算法,當網絡內部不同類型的惡意節點數目從4個增長到16個時,TAODV算法的平均端到端時延與MNSTA算法的平均端到端時延的差值逐漸增大。
3.2.2 丟包率
丟包率是指在數據傳輸的過程中網絡丟失的分組數與所有發送的分組數之比。由圖9可知,當網絡內部不存在惡意節點時,MNSTA、TAODV和ACO算法的丟包率相差不大,在整個網絡中只存在因節點移動而造成的少量數據丟失。此時,MNSTA算法的丟包率最低為2.9%,低于TAODV算法的3.18%和ACO算法的3.7%。

圖9 丟包率
隨著網絡中不同類型的惡意節點數量的逐漸增加,利用3種路由算法所得到的丟包率也隨著上升。因為在ACO算法的設計過程中未涉及安全性問題,無法應對網絡中出現的惡意節點,惡意節點會丟棄大量收到的數據包,因此隨著惡意節點增大,該算法的丟包率急劇增加,嚴重影響了數據的正常傳輸過程。由于TAODV算法和MNSTA算法均采用了信任機制,能夠盡可能避免惡意節點參與路由過程,降低了惡意節點對網絡性能的破壞,伴隨著網絡中惡意節點的數量不斷增加,雖然兩種算法的丟包率雖然都有一定程度的上升,但是增幅度遠遠小于ACO算法。在網絡內部開始出現2個惡意節點時,MNSTA算法的丟包率增長到4.2%,TAODV算法的丟包率增長到6.4%,而ACO算法的丟包率則達到10.7%。隨著網絡內部惡意節點數量的增加,ACO算法的丟包率與MNSTA算法和TAODV算法丟包率之間的差距不斷增大。當惡意節點數量達到16個時,ACO算法的丟包率達到了55.7%,而此時MNSTA算法和ACO算法的丟包率則維持在15.2%和28.5%。
MNSTA算法和TAODV算法對網絡內部的惡意節點均具有一定的抵御能力,因此這兩種算法的丟包率隨惡意節點數量增加的變化趨勢基本相同。但是微納衛星網絡節點具備一定的移動性,因為在MNSTA算法在選擇下一跳節點的過程中考慮到了節點的移動性,能夠選擇更穩定的路徑傳輸數據,避免了由于節點移動出通信范圍而造成的數據丟失,所以在網絡內部的惡意節點的數量從0增長到16的過程中,MNSTA算法的丟包率均低于TAODV算法。
3.2.3 平均能耗
微納衛星網絡中也要考慮到所有節點的能量消耗均衡的問題,避免某些節點能量消耗過快,被迫提前喪失工作能力,造成微納衛星網絡的分割。微納衛星網絡中節點的能耗主要由節點之間傳輸數據包產生,而網絡內部的丟包率會直接導致數據重傳次數的增加,從而導致網絡內部的平均能耗。
由圖10可知,當網絡內部惡意節點的數量為0時,MNSTA、TAODV和ACO算法的平均能耗分別為33.4 J、35.6 J和39.1 J。當網絡內部的惡意節點數量不斷增加時,3種算法的平均能耗都呈現出了不同程度的上升趨勢。由于ACO算法對惡意節點的攻擊沒有抵抗作用,導致在網絡中引起過多的數據重傳的現象,造成網絡能耗增加。因此隨著網絡節點數量的不斷增加,該算法的平均能耗也隨之上升。當網絡內部的不同類型的惡意節點數量達到16時,ACO算法節點的平均能耗上升到57.2 J。在MNSTA算法和TAODV算法中均采用了信任機制,因此兩種算法能夠減少網絡內部惡意節點的平均能耗所造成的影響。但隨著不同類型惡意節點數量的增多,對平均能耗仍然產生了一些影響。由于MNSTA算法在計算節點的信任值時,考慮到了剩余能量對節點信任值的影響,在數據傳輸過程中會盡量避開剩余能量少的節點,通過節點的剩余能量來維護路由,減少了不同節點之間的能量差距,并且在傳輸路徑時會選擇具有穩定移動性的節點作為下一跳節點,避免了在傳輸過程中鏈路斷開而造成的數據重傳,降低了節點的平均能耗。所以MNSTA算法在網絡內部惡意節點的數量增長到16時,節點的平均能耗僅長到39.2 J,而TAODV算法在此時的節點平均能耗則到達了47.2 J。

圖10 平均能耗
本文通過對微納衛星特點的研究,將蟻群算法和信任機制相結合,設計出了一種基于信任值的適用于微納衛星網絡的安全路由算法。根據節點的行為從不同方面評估節點的信任值大小,根據微納衛星能量受限的特點,將節點的能量也作為一個重要的評估方面,通過能量來起到負載均衡的作用。在路徑選擇的過程中同時考慮到信任值和節點的移動性問題,應用蟻群算法在移動的網絡拓撲中快速選擇出最優路徑。仿真結果表明,本文所提出的微納衛星網絡的可信蟻群安全路由算法提升了微納衛星網絡的性能。未來研究將面向微納衛星網絡的分布式檢測系統,為后續研究微納衛星安全路由算法提供新的思路。