丁元明,趙 鈺,張 然
(大連大學(xué) 信息工程學(xué)院 通信與網(wǎng)絡(luò)重點(diǎn)實(shí)驗(yàn)室,遼寧 大連 116622)
微納衛(wèi)星是微型衛(wèi)星與納衛(wèi)星的總稱,由于微納衛(wèi)星開(kāi)發(fā)周期短、重量輕、價(jià)格便宜,能以更低的成本完成多種復(fù)雜的空間任務(wù),成為推進(jìn)航天器轉(zhuǎn)型和技術(shù)創(chuàng)新的前沿方向[1,2]。在微納衛(wèi)星網(wǎng)絡(luò)中工作的節(jié)點(diǎn)具有移動(dòng)性與能源受限的特點(diǎn),且其工作的空間環(huán)境惡劣復(fù)雜,使微納衛(wèi)星網(wǎng)絡(luò)十分脆弱[3]。路由作為微納衛(wèi)星網(wǎng)絡(luò)的重要部分,一旦受到攻擊會(huì)導(dǎo)致數(shù)據(jù)傳輸延誤或失效,給整個(gè)網(wǎng)絡(luò)產(chǎn)生巨大的影響。
基于信任機(jī)制[4,5]的安全路由技術(shù)已廣泛應(yīng)用于衛(wèi)星網(wǎng)絡(luò)和無(wú)線自組織網(wǎng)絡(luò)中解決其路由面臨的安全威脅。文獻(xiàn)[6,7]所應(yīng)用的信任機(jī)制能夠防范多種常見(jiàn)的攻擊,但是在信任評(píng)估的過(guò)程中缺乏對(duì)節(jié)點(diǎn)能量問(wèn)題的考慮。文獻(xiàn)[8]將信任評(píng)估機(jī)制和優(yōu)化的蟻群算法相結(jié)合,在保證網(wǎng)絡(luò)安全性的同時(shí)增加了搜索效率,但迭代次數(shù)過(guò)高,并且不適于具有移動(dòng)性的微納衛(wèi)星網(wǎng)絡(luò)。
針對(duì)上述問(wèn)題,結(jié)合微納衛(wèi)星節(jié)點(diǎn)能量受限和具有移動(dòng)性的特點(diǎn),本研究提出一種結(jié)合蟻群算法和信任機(jī)制適用于微納衛(wèi)星網(wǎng)絡(luò)可信蟻群安全路由算法。本算法首先從多個(gè)方面綜合計(jì)算節(jié)點(diǎn)的總體信任值,在計(jì)算節(jié)點(diǎn)信任值的過(guò)程中,考慮到了節(jié)點(diǎn)剩余能量的問(wèn)題,避免了對(duì)信任值較高節(jié)點(diǎn)的重復(fù)使用,造成可信度較高的節(jié)點(diǎn)能量過(guò)早被消耗完。然后應(yīng)用蟻群算法綜合節(jié)點(diǎn)的信任值和移動(dòng)性選擇出安全穩(wěn)定的鏈路,為數(shù)據(jù)傳輸選擇出最優(yōu)的路徑。
在本信任機(jī)制中,節(jié)點(diǎn)的直接信任值通過(guò)對(duì)節(jié)點(diǎn)的攻擊行為以及轉(zhuǎn)發(fā)行為這兩個(gè)信任子值綜合計(jì)算所得。
1.1.1 攻擊行為信任子值
(1)
tc和tc-1分別表示當(dāng)前時(shí)間和上一次的檢測(cè)時(shí)間,ψ代表指數(shù)衰減程度。由式(1)可以看出,如果兩次檢測(cè)時(shí)間的間隔越小,則節(jié)點(diǎn)上一次行為表現(xiàn)的參考價(jià)值越高,上一次攻擊行為信任子值在計(jì)算中所占的比重越大。同時(shí),節(jié)點(diǎn)的惡意攻擊行為將被長(zhǎng)時(shí)間的記錄下來(lái)。
在式(2)中, d(t)L表示通過(guò)監(jiān)測(cè)機(jī)制對(duì)節(jié)點(diǎn)當(dāng)前行為評(píng)估后量化的值, r(t)L和n(t)L分別代表對(duì)節(jié)點(diǎn)當(dāng)前行為正常和異常時(shí)的評(píng)估值,如式(2)所示
(2)
1.1.2 轉(zhuǎn)發(fā)行為信任子值
轉(zhuǎn)發(fā)行為信任子值的設(shè)定主要是為了針對(duì)微納衛(wèi)星網(wǎng)絡(luò)中的自私攻擊行為,在微納衛(wèi)星網(wǎng)絡(luò)正常運(yùn)行時(shí),由于微納衛(wèi)星節(jié)點(diǎn)功能相對(duì)比較簡(jiǎn)單,資源受限的特點(diǎn),使得正常的節(jié)點(diǎn)有時(shí)也會(huì)產(chǎn)生丟包的現(xiàn)象。尤其是當(dāng)整個(gè)微納衛(wèi)星網(wǎng)絡(luò)比較繁忙時(shí),某些路徑可能會(huì)產(chǎn)生擁塞的現(xiàn)象,正常的節(jié)點(diǎn)也會(huì)因?yàn)榉泵Χ豢杀苊獾臅?huì)產(chǎn)生丟包行為。因此,并不能簡(jiǎn)單的根據(jù)是否有丟包行為就把節(jié)點(diǎn)定義為發(fā)起自私攻擊的惡意節(jié)點(diǎn)。
在計(jì)算節(jié)點(diǎn)轉(zhuǎn)發(fā)行為信任子值的過(guò)程中,設(shè)定TS表示節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包成功的個(gè)數(shù),設(shè)定TF為節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包失敗的個(gè)數(shù)。節(jié)點(diǎn)成功轉(zhuǎn)發(fā)數(shù)據(jù)包的數(shù)量越多,表明節(jié)點(diǎn)在工作中具備更好的轉(zhuǎn)發(fā)行為,則對(duì)應(yīng)增加節(jié)點(diǎn)的轉(zhuǎn)發(fā)行為信任子值。相反,節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包失敗的個(gè)數(shù)越多,則立即降低對(duì)應(yīng)節(jié)點(diǎn)的轉(zhuǎn)發(fā)行為信任子值。采用式(3)進(jìn)行節(jié)點(diǎn)轉(zhuǎn)發(fā)行為信任子值TR的計(jì)算
(3)
1.1.3 直接信任值的計(jì)算
通過(guò)對(duì)節(jié)點(diǎn)的攻擊行為信任子值和轉(zhuǎn)發(fā)行為信任子值的計(jì)算后,加權(quán)求和綜合計(jì)算出節(jié)點(diǎn)的直接信任值TSE,TSE的計(jì)算公式如式(4)所示
TSE=ω1TR+ω2TC
(4)
式中:ω1,ω2∈[0,1] 且滿足。ω1,ω2分別代表轉(zhuǎn)發(fā)行為信任子值和攻擊行為信任子值所占的權(quán)重,應(yīng)根據(jù)不同的使用環(huán)境設(shè)定權(quán)重因子ω1,ω2的大小。
為了評(píng)估節(jié)點(diǎn)受信任的程度,設(shè)定一個(gè)判別惡意節(jié)點(diǎn)用的門(mén)限閾值Tlower,當(dāng)計(jì)算出節(jié)點(diǎn)的直接信任值比該門(mén)限閾值低時(shí),則將該節(jié)點(diǎn)視作惡意節(jié)點(diǎn)。惡意節(jié)點(diǎn)門(mén)限閾值Tlower可以根據(jù)具體的使用環(huán)境進(jìn)行設(shè)定[9]。
在獲得全網(wǎng)節(jié)點(diǎn)的直接信任值后,根據(jù)微納衛(wèi)星網(wǎng)絡(luò)中正常節(jié)點(diǎn)的直接信任值大小,計(jì)算出可信門(mén)限閾值Tthreshold,計(jì)算公式如式(5)所示
(5)
表1 節(jié)點(diǎn)狀態(tài)劃分
當(dāng)檢測(cè)到惡意節(jié)點(diǎn)后,廣播通知其它節(jié)點(diǎn),并將其隔離出微納衛(wèi)星網(wǎng)絡(luò),當(dāng)與可疑節(jié)點(diǎn)進(jìn)行通信時(shí),僅從直接信任值難以判斷節(jié)點(diǎn)的狀態(tài),在這種情況下,引入間接信任值共同計(jì)算節(jié)點(diǎn)的綜合信任值。
為了在節(jié)點(diǎn)通信過(guò)程中確定其它的受信任的程度,在信任機(jī)制中每個(gè)節(jié)點(diǎn)除了需要維護(hù)路由表外,還需要設(shè)定一張信任表來(lái)存儲(chǔ)可通信節(jié)點(diǎn)的信任值。當(dāng)節(jié)點(diǎn)x與節(jié)點(diǎn)y進(jìn)行通信時(shí),發(fā)現(xiàn)節(jié)點(diǎn)y的直接信任值低于可信門(mén)限閾值Tthreshold,則節(jié)點(diǎn)x向其鄰居節(jié)點(diǎn)查詢對(duì)節(jié)點(diǎn)y的信任值大小,在通過(guò)鄰居節(jié)點(diǎn)mi來(lái)計(jì)算間接信任值Trs時(shí)引入加權(quán)因子,使得節(jié)點(diǎn)x對(duì)其鄰居節(jié)點(diǎn)的直接信任值在計(jì)算中起主導(dǎo)作用。間接信任值的計(jì)算公式如式(6)所示
(6)
通過(guò)該公式即可獲得通過(guò)節(jié)點(diǎn)mi所計(jì)算出的間接信任值,設(shè)定節(jié)點(diǎn)x可以通信的鄰居節(jié)點(diǎn)的范圍為XS,假設(shè)在通信范圍XS中一共有n個(gè)節(jié)點(diǎn)能夠與鄰居節(jié)點(diǎn)y正常通信,并且這些節(jié)點(diǎn)的信任表中存儲(chǔ)有節(jié)點(diǎn)y的信任值。那么節(jié)點(diǎn)x對(duì)于節(jié)點(diǎn)y間接信任值Trs的計(jì)算過(guò)程可由式(7)表示
(7)
間接信任值的計(jì)算如圖1所示。
圖1 間接信任值計(jì)算
計(jì)算節(jié)點(diǎn)的間接信任值時(shí)需要引入其它節(jié)點(diǎn)對(duì)目標(biāo)節(jié)點(diǎn)的評(píng)價(jià),此時(shí)如果在連通域中存在惡意節(jié)點(diǎn),該惡意節(jié)點(diǎn)很有可能對(duì)目標(biāo)節(jié)點(diǎn)發(fā)動(dòng)誹謗攻擊從而誣賴目標(biāo)節(jié)點(diǎn),或者是與其它節(jié)點(diǎn)一起發(fā)動(dòng)合謀攻擊提供虛假的信任值[10]。因此需要對(duì)XS內(nèi)所有節(jié)點(diǎn)提供的推薦信息進(jìn)行校驗(yàn),節(jié)點(diǎn)x對(duì)于目標(biāo)節(jié)點(diǎn)y的可疑校驗(yàn)度PC(x,y) 的計(jì)算如式(8)所示
(8)
可疑校驗(yàn)閾值φ的大小根據(jù)所使用的具體環(huán)境來(lái)進(jìn)行提前設(shè)定,在計(jì)算間接信任值時(shí),如果某節(jié)點(diǎn)mi提供信任值與可疑性校驗(yàn)度滿足下式的關(guān)系
(9)
則可認(rèn)為該節(jié)點(diǎn)提供的信任值偏差較大不予采納。通過(guò)這種方法可以將信任節(jié)點(diǎn)集合中惡意節(jié)點(diǎn)提供的虛假信息排除。為了全面反映出節(jié)點(diǎn)的可信程度,根據(jù)計(jì)算出節(jié)點(diǎn)的直接信任值和間接信任值綜合計(jì)算出反映節(jié)點(diǎn)受信任程度的綜合信任值TSS。綜合信任值TSS的計(jì)算公式如式(10)所示
TSS=δ1TSE+δ2Trs,δ1,δ2∈(0,1),δ1+δ2=1, 且δ1>δ2
(10)
與可信節(jié)點(diǎn)通信時(shí),此類節(jié)點(diǎn)可信程度較高,為了簡(jiǎn)化算法,直接使用節(jié)點(diǎn)的直接信任值作為綜合信任值。
對(duì)于微納衛(wèi)星來(lái)說(shuō),其節(jié)點(diǎn)供電能力非常有限,所以在微納衛(wèi)星的使用過(guò)程中必須考慮微納衛(wèi)星的能量狀態(tài)。在計(jì)算信任值的過(guò)程中,如果某個(gè)微納衛(wèi)星節(jié)點(diǎn)得到較高的信任狀態(tài),使該節(jié)點(diǎn)頻繁的加入工作中,會(huì)引起該節(jié)點(diǎn)能量的快速消耗。這種情況將導(dǎo)致該節(jié)點(diǎn)反而因?yàn)榭尚懦潭容^高,引起能量消耗過(guò)快從而被迫提前結(jié)束工作狀態(tài)退出網(wǎng)絡(luò)。因此,在建立信任機(jī)制中根據(jù)所應(yīng)用環(huán)境的特點(diǎn),將節(jié)點(diǎn)的剩余能量狀況作為重要因子進(jìn)行考慮。本文數(shù)據(jù)傳輸所采用的信道模型如圖2所示。
圖2 數(shù)據(jù)傳輸?shù)男诺滥P?/p>
文獻(xiàn)[11]分析網(wǎng)絡(luò)節(jié)點(diǎn)在一次數(shù)據(jù)轉(zhuǎn)發(fā)過(guò)程中接收數(shù)據(jù)包和發(fā)送數(shù)據(jù)包具體需要消耗的能量,根據(jù)所提出的公式,詳細(xì)計(jì)算出微納衛(wèi)星節(jié)點(diǎn)在轉(zhuǎn)發(fā)過(guò)程中消耗的能量Econsum,計(jì)算公式如式(11)所示
Econsum=2×Erec×N+Esend×N×d2
(11)
式中:Erec代表節(jié)點(diǎn)在工作狀態(tài)中接收1 bit數(shù)據(jù)所需要耗費(fèi)的能量,N表示這次收發(fā)過(guò)程中數(shù)據(jù)分組的總比特?cái)?shù)量,Esend的含義是指在數(shù)據(jù)收發(fā)過(guò)程中為了滿足信噪比所耗費(fèi)的能量,d表示本次轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程中兩節(jié)點(diǎn)之間的距離。Erec和Esend數(shù)值的大小與所使用的環(huán)境息息相關(guān),根據(jù)不同的應(yīng)用背景提前設(shè)定符合環(huán)境的數(shù)值。
Einitial表示在未參與當(dāng)前接收和轉(zhuǎn)發(fā)行為之前所剩余的能量,Ecurrent代表微納衛(wèi)星節(jié)點(diǎn)完成本次接受轉(zhuǎn)發(fā)后剩余的能量大小,則可得
Ecurrent=Einitial-Econsum
(12)
定義Eper為微納衛(wèi)星節(jié)點(diǎn)當(dāng)前剩余能量的百分比,根據(jù)能量消耗計(jì)算出當(dāng)前微納衛(wèi)星的剩余能量Ecurrent后,與微納衛(wèi)星初始全部能量大小Eentire進(jìn)行比較得出當(dāng)前微納衛(wèi)星剩余能量的百分比Eper如式(13)所示
(13)
將能量信任值與綜合信任值進(jìn)行加權(quán)求和,得出反應(yīng)節(jié)點(diǎn)安全程度和能量狀態(tài)的總體信任值。在節(jié)點(diǎn)傳輸數(shù)據(jù)的過(guò)程中會(huì)更加傾向于選擇信任值高的節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù),這就會(huì)造成信任值較高節(jié)點(diǎn)的能量會(huì)被快速消耗而被迫提前退出網(wǎng)絡(luò),并且大量數(shù)據(jù)都發(fā)往可信度高的節(jié)點(diǎn)會(huì)容易造成鏈路擁塞從而影響網(wǎng)絡(luò)性能。
因此,在計(jì)算節(jié)點(diǎn)的總體信任值中考慮上節(jié)點(diǎn)的剩余能量狀態(tài),當(dāng)可信度較高的節(jié)點(diǎn)因轉(zhuǎn)發(fā)數(shù)據(jù)而造成能量消耗較大時(shí),節(jié)點(diǎn)的總體信任值會(huì)逐漸下降,由其余能量充足的節(jié)點(diǎn)繼續(xù)完成數(shù)據(jù)轉(zhuǎn)發(fā)任務(wù)。同時(shí)也有效避免將大量數(shù)據(jù)發(fā)往少量鏈路而造成的網(wǎng)絡(luò)擁塞。通過(guò)在計(jì)算節(jié)點(diǎn)的總體信任值中考慮上節(jié)點(diǎn)的剩余能量,避免在路由選擇過(guò)程中不考慮節(jié)點(diǎn)的剩余能量狀態(tài),頻繁選擇信任值較高的節(jié)點(diǎn),造成高可信度節(jié)點(diǎn)能量消耗過(guò)快,而其它節(jié)點(diǎn)的能量充足而無(wú)法得到轉(zhuǎn)發(fā)數(shù)據(jù)的機(jī)會(huì),減少了具備不同信任度節(jié)點(diǎn)的能量消耗差距,延遲網(wǎng)絡(luò)的使用時(shí)間的作用??傮w信任值的計(jì)算過(guò)程如圖3所示。
圖3 總體信任值的計(jì)算
總體信任值TT計(jì)算公式如式(14)所示
TT=TSS×(1-TSS)+Eper×TSS
(14)
使用該公式計(jì)算時(shí),以數(shù)值1和綜合信任值的差值以及綜合信任值作為比重因子進(jìn)行計(jì)算,當(dāng)節(jié)點(diǎn)的綜合信任值高時(shí),則綜合信任值的比重因子就相對(duì)較小,此時(shí)更多關(guān)注能量問(wèn)題。如果節(jié)點(diǎn)的綜合信任值比較低,即使該節(jié)點(diǎn)剩余能量充足,也并不能優(yōu)先選擇該節(jié)點(diǎn)傳輸數(shù)據(jù)。在這種情況下,計(jì)算節(jié)點(diǎn)的總體信任值時(shí),綜合信任值作為比重因子會(huì)獲得更大的權(quán)重。
在源節(jié)點(diǎn)S發(fā)現(xiàn)目的節(jié)點(diǎn)D的過(guò)程中,節(jié)點(diǎn)的通信范圍為R,節(jié)點(diǎn)j是節(jié)點(diǎn)i的候選的下一跳節(jié)點(diǎn),節(jié)點(diǎn)i的空間坐標(biāo)為(xi,yi,zi),速度向量vi=(vix,viy,viz), 節(jié)點(diǎn)j的空間坐標(biāo) (xj,yj,zj), 速度向量vj=(vjx,vjy,vjz), 如圖4所示。
圖4 節(jié)點(diǎn)移動(dòng)
根據(jù)式(15)計(jì)算出與vij與ij之間的夾角為
(15)
其中,∠α的計(jì)算公式如式(16)所示
(16)
(17)
綜上所述,定義節(jié)點(diǎn)的移動(dòng)因子ΔMf為
(18)
移動(dòng)因子ΔMf表明了下一跳節(jié)點(diǎn)相對(duì)于當(dāng)前節(jié)點(diǎn)的移動(dòng)程度。ΔMf值越大說(shuō)明下一跳節(jié)點(diǎn)越靠近節(jié)點(diǎn),ΔMf值越小說(shuō)明下一跳節(jié)點(diǎn)離節(jié)點(diǎn)越來(lái)越遠(yuǎn)。由于微納衛(wèi)星網(wǎng)絡(luò)節(jié)點(diǎn)具有一定的移動(dòng)性,這就會(huì)導(dǎo)致微納衛(wèi)星網(wǎng)絡(luò)內(nèi)部鏈路的不穩(wěn)定性,在選擇下一跳節(jié)點(diǎn)時(shí),選擇移動(dòng)因子值較小的節(jié)點(diǎn),即表明該節(jié)點(diǎn)與當(dāng)前節(jié)點(diǎn)形成的鏈路更加穩(wěn)定,更加有利于數(shù)據(jù)的傳輸,能夠有效減少因鏈路中斷而造成數(shù)據(jù)重傳的次數(shù)。
在微納衛(wèi)星網(wǎng)絡(luò)中綜合考慮了節(jié)點(diǎn)自身的安全性以及能量問(wèn)題,并且結(jié)合節(jié)點(diǎn)具有移動(dòng)性的特點(diǎn),將信任機(jī)制與蟻群算法相結(jié)合,提出適用于微納衛(wèi)星網(wǎng)絡(luò)的MNSTA(micro-nano satellite trusted ant colony routing algorithm)可信蟻群路由算法,使得在數(shù)據(jù)傳輸過(guò)程中所選擇的下一跳鄰居節(jié)點(diǎn)具有較高的信任程度和相對(duì)穩(wěn)定的鏈路。
在t時(shí)刻,假設(shè)共有m只螞蟻在源節(jié)點(diǎn)S尋找從節(jié)點(diǎn)i到達(dá)目的節(jié)點(diǎn)D的路徑過(guò)程中,螞蟻k從節(jié)點(diǎn)i選擇通往下一跳節(jié)點(diǎn)j的轉(zhuǎn)移概率公式為式(19)所示
(19)
τij(t) 表示t時(shí)刻從節(jié)點(diǎn)i目的節(jié)點(diǎn)D的路由中,j作為下一跳節(jié)點(diǎn)的鏈路(i,j)上的信息素值。ηij(t)為路徑(i,j)上的啟發(fā)值,該值的大小為從節(jié)點(diǎn)j到達(dá)目的節(jié)點(diǎn)d跳數(shù)的倒數(shù),allowedk表示節(jié)點(diǎn)i可供選擇的不在禁忌列表中的下一跳節(jié)點(diǎn)集合。參數(shù)α和β分別代表了信息素和啟發(fā)值在計(jì)算轉(zhuǎn)移概率時(shí)所占的權(quán)重,則在(t+1)時(shí)刻鏈路(i,j)的信息素按照式(20)進(jìn)行更新
τij(t+1)=(1-ρ)τij(t)+Δτij(t)
(20)
ρ∈(0,1) 代表了信息素的揮發(fā)系數(shù), (1-ρ) 代表信息素的殘留因子,τij(t+1) 為(t+1)時(shí)刻鏈路(i,j)上的信息素,Δτij(t)為本次循環(huán)中信息素的增量
(21)
(22)
λ1,λ2分別表示了節(jié)點(diǎn)i獲得節(jié)點(diǎn)j的總體信任值和移動(dòng)因子對(duì)信息素改變的重要性。Bdk(t)表示第k只后向螞蟻在t時(shí)刻已經(jīng)走過(guò)的距離,φ是對(duì)應(yīng)的系數(shù)。在選擇下一跳節(jié)點(diǎn)時(shí),盡量選擇節(jié)點(diǎn)可信程度高,有充足的剩余能量,節(jié)點(diǎn)間形成的鏈路相對(duì)更加穩(wěn)定,且距離目的節(jié)點(diǎn)較近的節(jié)點(diǎn)傳輸數(shù)據(jù)。
MNSTA可信蟻群路由算法的工作流程如圖5所示,具體步驟如下:
步驟1 初始化微納衛(wèi)星網(wǎng)絡(luò),計(jì)算并記錄各個(gè)節(jié)點(diǎn)的總體信任值和節(jié)點(diǎn)的移動(dòng)因子,選取源節(jié)點(diǎn)S和目標(biāo)節(jié)點(diǎn)D,設(shè)置最大迭代次數(shù)fmax和源節(jié)點(diǎn)的螞蟻個(gè)數(shù)m;
步驟2 設(shè)置前向螞蟻禁忌表并進(jìn)行初始化,在禁忌表中存儲(chǔ)前向螞蟻已經(jīng)達(dá)到過(guò)的節(jié)點(diǎn)ID號(hào),并標(biāo)記前向螞蟻k=k+1;
步驟3 根據(jù)轉(zhuǎn)移概率公式,每一個(gè)前向螞蟻在allowedk中選擇下一跳鄰居節(jié)點(diǎn)j。在選擇完下一跳節(jié)點(diǎn)j后,在禁忌表中加入被選擇的鄰居節(jié)點(diǎn)j;
步驟4 重復(fù)執(zhí)行上述步驟3,當(dāng)前向螞蟻通過(guò)概率轉(zhuǎn)移公式獲得到達(dá)目的節(jié)點(diǎn)D的路徑后,結(jié)束此次的路徑搜索,此時(shí)所有的前向螞蟻轉(zhuǎn)換為后向螞蟻,并根據(jù)式(20)~式(22)對(duì)全局的信息素進(jìn)行更新;
步驟5 判斷是否滿足條件f≥fmax,若滿足條件則表明此次搜索路徑結(jié)束,否則轉(zhuǎn)向步驟2。
圖5 可信蟻群算法流程
為了驗(yàn)證本文所提出的可信蟻群路由算法MNSTA的有效性,使用MatLab進(jìn)行相關(guān)的仿真實(shí)驗(yàn)。初始的微納衛(wèi)星網(wǎng)絡(luò)拓?fù)洳捎肐ridium系統(tǒng)作為網(wǎng)絡(luò)模型,即采用6×11的排列方式分布在仿真空間中,隨后微納衛(wèi)星節(jié)點(diǎn)以不同的速率在一定的范圍里移動(dòng)。仿真的實(shí)驗(yàn)的主要參數(shù)見(jiàn)表2。
在蟻群算法中,各項(xiàng)參數(shù)的選取對(duì)算法性能有很重要的影響。當(dāng)信息素權(quán)重因子α的值過(guò)大時(shí),螞蟻就越傾向于選擇其它螞蟻已經(jīng)獲得的最優(yōu)路徑,減弱了蟻群算法搜索其它路徑的能力。當(dāng)α的值過(guò)小時(shí),蟻群算法容易陷入局部最優(yōu)解。當(dāng)啟發(fā)值權(quán)重因子β的值過(guò)大時(shí),信息素在蟻
表2 仿真參數(shù)
群算法搜索過(guò)程中的作用會(huì)減弱,使算法最終只能得出一個(gè)局部的最優(yōu)解。當(dāng)β的值過(guò)小時(shí),蟻群算法就會(huì)退化成簡(jiǎn)單的隨機(jī)搜索。因此,對(duì)α和β的取值,通過(guò)實(shí)驗(yàn)來(lái)確定,實(shí)驗(yàn)結(jié)果如圖6所示。
圖6 α和β的取值對(duì)迭代次數(shù)的影響
由圖6可知,根據(jù)α和β的取值不同,算法在收斂到最優(yōu)解時(shí)的迭代次數(shù)也不同,隨著α的增大,β在各種取值情況下的迭代次數(shù)均在增加。根據(jù)實(shí)驗(yàn)結(jié)果可得當(dāng)α=1,β=3時(shí)蟻群算法具有最少的迭代次數(shù)。
信息素的揮發(fā)系數(shù)ρ的取值情況直接影響蟻群算法的全局搜索能力和收斂速度。如果ρ值過(guò)大,將導(dǎo)致已經(jīng)搜索過(guò)路徑的信息素快速揮發(fā),增大了螞蟻選擇重復(fù)路徑的概率。如果ρ值過(guò)小,信息素發(fā)揮過(guò)慢,減弱了算法的收斂速度。在確定α和β的取值的情況下,通過(guò)實(shí)驗(yàn)來(lái)確定信息素?fù)]發(fā)系數(shù)ρ的取值,實(shí)驗(yàn)結(jié)果如圖7所示。
圖7 ρ的取值對(duì)迭代次數(shù)的影響
由圖7可知,當(dāng)ρ=0.6時(shí)蟻群算法能在迭代次數(shù)最少的情況下達(dá)到最優(yōu)解。因此在本文的實(shí)驗(yàn)中蟻群算法的各項(xiàng)參數(shù)取值為:α=1,β=3,ρ=0.6。
為了評(píng)價(jià)文本所提出算法的有效性,將本文算法與常見(jiàn)的ACO(ant colony optimization)和TAODV(trust ad hoc on-demand distance vector routing)兩種算法的性能進(jìn)行對(duì)比。分別在網(wǎng)絡(luò)中設(shè)定惡意節(jié)點(diǎn)的數(shù)量從0~16動(dòng)態(tài)變化,這些惡意節(jié)點(diǎn)分別發(fā)動(dòng)不同類型的惡意攻擊:在接收到需要轉(zhuǎn)發(fā)的數(shù)據(jù)后以100%概率丟棄數(shù)據(jù)的黑洞攻擊,以及在計(jì)算間接信任值時(shí)提供虛假推薦的誹謗攻擊和為了節(jié)省自身能量以一定比率故意丟棄數(shù)據(jù)包的自私攻擊。分析在不同類型的惡意攻擊下,不同的算法在平均端到端時(shí)延、丟包率和平均能耗3種評(píng)價(jià)指標(biāo)下的性能。
3.2.1 平均端到端時(shí)延
平均端到端時(shí)延是指從源節(jié)點(diǎn)發(fā)出數(shù)據(jù)分組到目的節(jié)點(diǎn)接受到數(shù)據(jù)分組所花費(fèi)的時(shí)間。在網(wǎng)絡(luò)中動(dòng)態(tài)設(shè)置惡意節(jié)點(diǎn)的數(shù)量和類型。由圖8可知,在網(wǎng)絡(luò)不存在內(nèi)部惡意節(jié)點(diǎn)類型時(shí),由于MNSTA和TAODV算法在計(jì)算節(jié)點(diǎn)的信任值需要花費(fèi)一定的時(shí)間,所以ACO算法的端到端時(shí)延比MNSTA算法低16 ms,比TAODV算法低9 ms。隨著網(wǎng)絡(luò)內(nèi)部出現(xiàn)不同類型的惡意節(jié)點(diǎn)數(shù)量不斷增加時(shí),由于ACO算法沒(méi)有考慮到路由的安全性問(wèn)題,使網(wǎng)絡(luò)的路由性能急劇下降,從而導(dǎo)致數(shù)據(jù)包到達(dá)目的節(jié)點(diǎn)的時(shí)延大幅上升,當(dāng)網(wǎng)絡(luò)惡意節(jié)點(diǎn)數(shù)量達(dá)到16個(gè)時(shí),ACO算法的平均端到端時(shí)延達(dá)到294 ms,分別比MNSTA算法和TAODV算法高出111 ms和77 ms。
圖8 平均端到端時(shí)延
因?yàn)門(mén)AODV算法和本文所提出的MNSTA算法都采用了信任機(jī)制來(lái)確保數(shù)據(jù)的可靠傳輸,所以這兩種算法的平均端到端時(shí)延隨惡意節(jié)點(diǎn)數(shù)量增加的變化趨勢(shì)大致相同。在MNSTA算法中計(jì)算節(jié)點(diǎn)信任值的過(guò)程相對(duì)更加復(fù)雜,因此,在網(wǎng)絡(luò)內(nèi)部惡意節(jié)點(diǎn)數(shù)量在0個(gè)和2個(gè)時(shí),MNSTA算法的平均端到端時(shí)延分別比TAODV算法高7 ms和3 ms。MNSTA算法在選擇路由時(shí)考慮到了節(jié)點(diǎn)的剩余能量問(wèn)題,提高了搜索的效率。同時(shí),在拓?fù)渥兓木W(wǎng)絡(luò)環(huán)境中MNSTA算法考慮到節(jié)點(diǎn)具有一定移動(dòng)性的問(wèn)題,減少了因鏈路的失效而引起路由重復(fù)發(fā)現(xiàn),隨著惡意節(jié)點(diǎn)數(shù)量的不斷增加,MNSTA算法能夠得到最優(yōu)的傳輸路徑。在惡意節(jié)點(diǎn)數(shù)量達(dá)到4個(gè)時(shí),MNSTA算法的平均端到端時(shí)延開(kāi)始低于TAODV算法,當(dāng)網(wǎng)絡(luò)內(nèi)部不同類型的惡意節(jié)點(diǎn)數(shù)目從4個(gè)增長(zhǎng)到16個(gè)時(shí),TAODV算法的平均端到端時(shí)延與MNSTA算法的平均端到端時(shí)延的差值逐漸增大。
3.2.2 丟包率
丟包率是指在數(shù)據(jù)傳輸?shù)倪^(guò)程中網(wǎng)絡(luò)丟失的分組數(shù)與所有發(fā)送的分組數(shù)之比。由圖9可知,當(dāng)網(wǎng)絡(luò)內(nèi)部不存在惡意節(jié)點(diǎn)時(shí),MNSTA、TAODV和ACO算法的丟包率相差不大,在整個(gè)網(wǎng)絡(luò)中只存在因節(jié)點(diǎn)移動(dòng)而造成的少量數(shù)據(jù)丟失。此時(shí),MNSTA算法的丟包率最低為2.9%,低于TAODV算法的3.18%和ACO算法的3.7%。
圖9 丟包率
隨著網(wǎng)絡(luò)中不同類型的惡意節(jié)點(diǎn)數(shù)量的逐漸增加,利用3種路由算法所得到的丟包率也隨著上升。因?yàn)樵贏CO算法的設(shè)計(jì)過(guò)程中未涉及安全性問(wèn)題,無(wú)法應(yīng)對(duì)網(wǎng)絡(luò)中出現(xiàn)的惡意節(jié)點(diǎn),惡意節(jié)點(diǎn)會(huì)丟棄大量收到的數(shù)據(jù)包,因此隨著惡意節(jié)點(diǎn)增大,該算法的丟包率急劇增加,嚴(yán)重影響了數(shù)據(jù)的正常傳輸過(guò)程。由于TAODV算法和MNSTA算法均采用了信任機(jī)制,能夠盡可能避免惡意節(jié)點(diǎn)參與路由過(guò)程,降低了惡意節(jié)點(diǎn)對(duì)網(wǎng)絡(luò)性能的破壞,伴隨著網(wǎng)絡(luò)中惡意節(jié)點(diǎn)的數(shù)量不斷增加,雖然兩種算法的丟包率雖然都有一定程度的上升,但是增幅度遠(yuǎn)遠(yuǎn)小于ACO算法。在網(wǎng)絡(luò)內(nèi)部開(kāi)始出現(xiàn)2個(gè)惡意節(jié)點(diǎn)時(shí),MNSTA算法的丟包率增長(zhǎng)到4.2%,TAODV算法的丟包率增長(zhǎng)到6.4%,而ACO算法的丟包率則達(dá)到10.7%。隨著網(wǎng)絡(luò)內(nèi)部惡意節(jié)點(diǎn)數(shù)量的增加,ACO算法的丟包率與MNSTA算法和TAODV算法丟包率之間的差距不斷增大。當(dāng)惡意節(jié)點(diǎn)數(shù)量達(dá)到16個(gè)時(shí),ACO算法的丟包率達(dá)到了55.7%,而此時(shí)MNSTA算法和ACO算法的丟包率則維持在15.2%和28.5%。
MNSTA算法和TAODV算法對(duì)網(wǎng)絡(luò)內(nèi)部的惡意節(jié)點(diǎn)均具有一定的抵御能力,因此這兩種算法的丟包率隨惡意節(jié)點(diǎn)數(shù)量增加的變化趨勢(shì)基本相同。但是微納衛(wèi)星網(wǎng)絡(luò)節(jié)點(diǎn)具備一定的移動(dòng)性,因?yàn)樵贛NSTA算法在選擇下一跳節(jié)點(diǎn)的過(guò)程中考慮到了節(jié)點(diǎn)的移動(dòng)性,能夠選擇更穩(wěn)定的路徑傳輸數(shù)據(jù),避免了由于節(jié)點(diǎn)移動(dòng)出通信范圍而造成的數(shù)據(jù)丟失,所以在網(wǎng)絡(luò)內(nèi)部的惡意節(jié)點(diǎn)的數(shù)量從0增長(zhǎng)到16的過(guò)程中,MNSTA算法的丟包率均低于TAODV算法。
3.2.3 平均能耗
微納衛(wèi)星網(wǎng)絡(luò)中也要考慮到所有節(jié)點(diǎn)的能量消耗均衡的問(wèn)題,避免某些節(jié)點(diǎn)能量消耗過(guò)快,被迫提前喪失工作能力,造成微納衛(wèi)星網(wǎng)絡(luò)的分割。微納衛(wèi)星網(wǎng)絡(luò)中節(jié)點(diǎn)的能耗主要由節(jié)點(diǎn)之間傳輸數(shù)據(jù)包產(chǎn)生,而網(wǎng)絡(luò)內(nèi)部的丟包率會(huì)直接導(dǎo)致數(shù)據(jù)重傳次數(shù)的增加,從而導(dǎo)致網(wǎng)絡(luò)內(nèi)部的平均能耗。
由圖10可知,當(dāng)網(wǎng)絡(luò)內(nèi)部惡意節(jié)點(diǎn)的數(shù)量為0時(shí),MNSTA、TAODV和ACO算法的平均能耗分別為33.4 J、35.6 J和39.1 J。當(dāng)網(wǎng)絡(luò)內(nèi)部的惡意節(jié)點(diǎn)數(shù)量不斷增加時(shí),3種算法的平均能耗都呈現(xiàn)出了不同程度的上升趨勢(shì)。由于ACO算法對(duì)惡意節(jié)點(diǎn)的攻擊沒(méi)有抵抗作用,導(dǎo)致在網(wǎng)絡(luò)中引起過(guò)多的數(shù)據(jù)重傳的現(xiàn)象,造成網(wǎng)絡(luò)能耗增加。因此隨著網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量的不斷增加,該算法的平均能耗也隨之上升。當(dāng)網(wǎng)絡(luò)內(nèi)部的不同類型的惡意節(jié)點(diǎn)數(shù)量達(dá)到16時(shí),ACO算法節(jié)點(diǎn)的平均能耗上升到57.2 J。在MNSTA算法和TAODV算法中均采用了信任機(jī)制,因此兩種算法能夠減少網(wǎng)絡(luò)內(nèi)部惡意節(jié)點(diǎn)的平均能耗所造成的影響。但隨著不同類型惡意節(jié)點(diǎn)數(shù)量的增多,對(duì)平均能耗仍然產(chǎn)生了一些影響。由于MNSTA算法在計(jì)算節(jié)點(diǎn)的信任值時(shí),考慮到了剩余能量對(duì)節(jié)點(diǎn)信任值的影響,在數(shù)據(jù)傳輸過(guò)程中會(huì)盡量避開(kāi)剩余能量少的節(jié)點(diǎn),通過(guò)節(jié)點(diǎn)的剩余能量來(lái)維護(hù)路由,減少了不同節(jié)點(diǎn)之間的能量差距,并且在傳輸路徑時(shí)會(huì)選擇具有穩(wěn)定移動(dòng)性的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),避免了在傳輸過(guò)程中鏈路斷開(kāi)而造成的數(shù)據(jù)重傳,降低了節(jié)點(diǎn)的平均能耗。所以MNSTA算法在網(wǎng)絡(luò)內(nèi)部惡意節(jié)點(diǎn)的數(shù)量增長(zhǎng)到16時(shí),節(jié)點(diǎn)的平均能耗僅長(zhǎng)到39.2 J,而TAODV算法在此時(shí)的節(jié)點(diǎn)平均能耗則到達(dá)了47.2 J。
圖10 平均能耗
本文通過(guò)對(duì)微納衛(wèi)星特點(diǎn)的研究,將蟻群算法和信任機(jī)制相結(jié)合,設(shè)計(jì)出了一種基于信任值的適用于微納衛(wèi)星網(wǎng)絡(luò)的安全路由算法。根據(jù)節(jié)點(diǎn)的行為從不同方面評(píng)估節(jié)點(diǎn)的信任值大小,根據(jù)微納衛(wèi)星能量受限的特點(diǎn),將節(jié)點(diǎn)的能量也作為一個(gè)重要的評(píng)估方面,通過(guò)能量來(lái)起到負(fù)載均衡的作用。在路徑選擇的過(guò)程中同時(shí)考慮到信任值和節(jié)點(diǎn)的移動(dòng)性問(wèn)題,應(yīng)用蟻群算法在移動(dòng)的網(wǎng)絡(luò)拓?fù)渲锌焖龠x擇出最優(yōu)路徑。仿真結(jié)果表明,本文所提出的微納衛(wèi)星網(wǎng)絡(luò)的可信蟻群安全路由算法提升了微納衛(wèi)星網(wǎng)絡(luò)的性能。未來(lái)研究將面向微納衛(wèi)星網(wǎng)絡(luò)的分布式檢測(cè)系統(tǒng),為后續(xù)研究微納衛(wèi)星安全路由算法提供新的思路。