一種有效抵禦黑洞攻擊的SAODV優化方法與流程
2023-06-03 03:24:36 4

本發明涉及通信技術領域,尤其涉及一種有效抵禦黑洞攻擊的SAODV優化方法,適用於Ad-Hoc自組織網絡。
背景技術:
Ad-Hoc(自組織網絡)是一種由獨立的節點構成且每個節點都可以自由地加入、離開和移動的無線網絡。其網絡的拓撲結構會隨節點的狀態變化而頻繁變化。此外,網絡中的每個節點都有相同可能性受到攻擊,故在Ad-Hoc網絡中,需引入一種確定的機制來防止惡意攻擊者肆意篡改路由數據或丟棄數據,保證網絡的安全性能。
目前Ad-Hoc網絡多採用按需路由協議——AODV協議,各節點不需要維護準確的路由消息,即只有當源節點要發送數據但找不到目的節點時才會發起路由查詢。當一個路由無法到達目的節點,或者之前本可以工作的路由現在變為不活動的路由時,源節點就會在網絡中廣播RREQ路由請求數據包。每個中間節點在收到RREQ後會檢查自身路由表,若節點本身就是目的地,則給源節點回復一個RREP應答包;否則,廣播RREQ請求包給其鄰居節點。若沒有出現RREP路由應答,此過程一直重複,直到目的節點或者可通過最新路由到達目的節點的中間節點收到RREQ。最終,目的節點收到RREQ後產生一個RREP反饋信息,並且通過逆向路由將信息發送回源節點,逆向路由在路由建立過程中由中間節點建立。
儘管AODV協議較為成熟,但仍存在缺陷。它會受到一系列不同的攻擊,例如黑洞攻擊:由於Ad Hoc網絡存在信號暴露性和節點不穩定性,一些安全節點會因外部感染變為惡意節點(黑洞節點屬於一種惡意節點)。在路由建立階段,黑洞節點在接收到的路由請求包中加入虛假信息(虛假信息主要包括錯誤的跳數、目的節點序號),騙取網絡中其他節點同黑洞節點建立路由連接,而後在數據傳輸階段,丟掉需要轉發的數據包,造成數據包丟失。黑洞攻擊對網絡的危害極大,故提出抵禦黑洞攻擊的安全控制方法是Ad-Hoc網絡通信中極為重要的問題之一。
目前已經有幾種基於AODV協議的方法以保護網絡不受黑洞攻擊。其中,基於哈希函數和數字籤名的SAODV協議,可為Ad-Hoc網絡提供安全認證的功能,確保數據完整性:哈希函數用於保證數據中的可變部分——跳數的安全性,當中間或目的節點接收信息時,可驗證跳數是否因惡意節點而遞減。數字籤名用於鑑別RREQ和RREP包中的非可變部分,可驗證路由信息的安全性。但SAODV協議仍存在不足,因為哈希函數不能阻擋所有對於跳數的攻擊。惡意節點可以通過不斷宣稱高跳數來獲取路由,並發送一個假的RREP來仿冒另一節點。因此,僅依靠SAODV協議中數字籤名和哈希函數的安全控制方法不足以解決黑洞節點造成的的數據包丟失問題。
綜上,現有協議都無法有效的抵禦黑洞攻擊。我們需要一種新的優化方案來解決Ad-Hoc中的黑洞攻擊問題。
技術實現要素:
針對現有技術無法有效抵禦黑洞攻擊的不足,本發明提出一種有效抵禦黑洞攻擊的SAODV優化方法,適用於Ad-Hoc自組織網絡。在原有SAODV協議基礎上,引入節點「保真度」的概念,創新對黑洞節點的識別方法:在路由建立階段,有效地發現網絡中的黑洞節點,將黑洞節點移出網絡,使黑洞節點失去接收信息的能力;在數據傳輸階段,通過不斷的動態更新節點保真度,監測各個節點,一旦出現黑洞節點,立即對全網進行聲明並將黑洞節點移出網絡,保證以丟包率和端到端時延為主要指標的網絡特性不會產生負面影響。
為實現上述發明目的,本發明所提供的技術方案是:
一種有效抵禦黑洞攻擊的SAODV優化方法,包括以下步驟:(1)路由建立;(2)數據傳輸。
進一步根據所述抵禦黑洞攻擊的SAODV優化方法,網絡中每一個節點引入保真度,描述節點在Ad-Hoc網絡中的參與度與可靠性的大小,即通過該節點可以成功轉發數據包的能力的大小,本發明所述的保真度為一個整數,並且在相鄰節點間周期性交換,在路由建立階段,若節點的保真度大於保真度門限值,則該節點可以作為多跳路徑中的一跳傳輸數據,否則不選用該節點建立路由;在數據傳輸階段,更新節點保真度值的大小,若節點成功轉發一個數據包,保真度增加,否則減小,當某節點的保真度減至0,表明該節點無法向網絡中其他節點正確轉發數據包,則認定該節點為黑洞節點,並將該節點從網絡中移出。
進一步根據所述抵禦黑洞攻擊的SAODV優化方法,步驟(1)中路由建立,Ad-Hoc網絡中節點分為三類:發送數據的源節點、轉發數據的中間節點和接受數據的目的節點,在發送數據前,根據網絡狀態,通過從源節點到目的節點廣播RREQ請求包和從目的節點到源節點單播RREP應答包,建立從源節點到目的節點的路由;RREQ請求包中信息分為兩部分,第一部分是最短路由信息,用於尋找從源節點到目的節點的最短路由,主要包括源節點IP位址、目的節點IP位址、源節點序列號、目的節點序列號,第二部分是安全控制信息,用於確保路由建立階段請求信息的完整性和安全性,包括跳數、最大跳數、哈希函數、哈希值、最終哈希值、數字籤名和公鑰,其中跳數和哈希值為變量,最大跳數、哈希函數、最終哈希值、數字籤名、公鑰為常量,路由建立過程按以下步驟進行:
(1-1)源節點對RREQ請求包中的信息進行初始化;
(1-2)中間節點對RREQ請求包進行處理並建立路由。
進一步根據所述抵禦黑洞攻擊的SAODV優化方法,步驟(1-1)中所述源節點對RREQ請求包中的信息進行初始化,按如下過程進行:
(1-1-1)初始化跳數為0,即hop=0;初始化最大跳數為正整數,具體數值根據網絡規模要求設定;初始化哈希函數,並隨機生成一個隨機數seed,令第0跳即源節點處的哈希值hash=H(seed);
(1-1-2)對已產生的隨機數seed,運用初始化後的哈希函數H(x)重複計算最大跳數hop_max次得到最終哈希值,有top_hash=Hhop_max(seed),其中Hn(x)=H(H(…H(x)));
(1-1-3)用源節點的私鑰籤名哈希值進行數字籤名的初始化。
進一步根據所述抵禦黑洞攻擊的SAODV優化方法,步驟(1-2)中所述中間節點對RREQ請求包進行處理並建立路由,按如下過程進行:
(1-2-1)中間節點對接收的RREQ請求包信息進行更新,更新跳數信息:hop_this=hop_last+1;更新哈希值:hash=hash_this_hop=H(hash_last_hop);
(1-2-2)中間節點對接收的RREQ請求包進行安全驗證,對RREQ請求包中的哈希值和數字籤名進行驗證:
驗證哈希值,中間節點從收到的RREQ請求包中提取出跳數hop、哈希函數H(x)、哈希值hash和最終哈希值top_hash,哈希值hash為用哈希函數H(x)對隨機數seed重複計算跳數次後所得的結果,最終哈希值top_hash為用哈希函數H(x)對隨機數seed重複計算最大跳數次後所得的結果,故若跳數正確無誤未被惡意更改,則哈希值hash與最終哈希值top_hash應滿足H(hop_max-hop)(hash)=top_hash,若不滿足上式,表明驗證出錯,跳數信息已被惡意更改,則丟棄該RREQ請求包,若驗證無誤,則進一步驗證數字籤名;
驗證數字籤名,中間節點從收到的RREQ請求包中提取出公鑰和數字籤名,並用公鑰對數字籤名進行驗證,若驗證有誤,則說明該RREQ包已被篡改,節點不能繼續轉發該錯誤RREQ包,故丟棄該RREQ請求包;若驗證無誤,則進一步查看目的地址;
(1-2-3)中間節點從RREQ請求包中提取目的地址,判斷自己是否為目的節點或是否有目的節點的路由信息,若是,則直接回復RREP應答包給源節點,若不是,則更新計算該節點當前的保真度數值φ_avg,本發明中φ_avg的計算方法如下:
φ_avg=(φ_this+φ_next)/2
其中,φ_this為該節點原保真度數值,φ_next為下一跳節點的保真度數值,最初的φ_this與φ_next具體數值根據網絡規模要求設定;
(1-2-4)比較φ_avg與門限值Φc的大小,Φc具體數值根據網絡規模要求設定,若φ_avg<Φc,表明節點不受信任,無法進行安全可靠的信息傳輸,則丟棄RREQ請求包,若φ_avg≥Φc,則節點繼續廣播RREQ請求包;
(1-2-5)目的節點接收與應答,當目的節點收到RREQ請求包後,產生一個RREP應答包用以反饋信息,並通過逆向路由將該信息發送回源節點,逆向路由是在上述路由建立過程中由中間節點建立,最終實現了路由建立。
進一步根據所述抵禦黑洞攻擊的SAODV優化方法,步驟(2)中數據傳輸,節點保真度動態更新,當目的節點正確收到一個數據包時就返回一個ACK包,若源節點也能正確收到該ACK包,則路徑的所有中間節點保真度均加1,否則減1,具體按如下步驟進行:
(2-1)正向數據傳輸;
(2-2)ACK逆向應答。
進一步根據所述抵禦黑洞攻擊的SAODV優化方法,步驟(2-1)中正向數據傳輸,源節點發送數據包,源節點將數據打包,沿最新建立的路由,將數據包發送給下一跳;中間節點依次沿建立的最新路由轉發數據包;目的節點接收與應答,建立連接後,目的節點處於等待接收狀態,若目的節點正確接收數據包,則目的節點返回一個確認ACK包,ACK包逆向沿原路徑返回源節點,目的節點將ACK包發送給下一跳的中間節點。
進一步根據所述抵禦黑洞攻擊的SAODV優化方法,步驟(2-2)中ACK逆向應答,本發明中ACK包用於動態調整節點保真度,若源節點接收到目的節點反饋的ACK包,則沿途中的所有中間節點保真度值均增加,否則減小,若中間節點正確接收來自目的節點的確認ACK包,則節點的保真度數值φ_avg加1,且查找路由信息傳遞給下一跳;若中間節點未能正確接收來自目的節點的確認ACK包,則節點的保真度數值φ_avg減1;當某個中間節點發現其保真度數值φ_avg等於0,則判定此節點為黑洞節點,黑洞節點會發出一個ALARM包廣播給全網節點,其他節點收到來自黑洞節點的ALARM包,全網節點將不再與黑洞節點聯繫,系統對黑洞節點進行的刪除操作,此時源節點會重新建立路由以實現數據傳輸。
本發明的有益效果:
1、本發明解決了SAODV協議無法解決的黑洞攻擊問題。在發現黑洞節點後將其從網絡中移出,使其不再參與網絡中數據的轉發,阻止了Ad-Hoc網絡中的黑洞節點通過仿冒其他正常節點隨意增加路由長度的方式來對網絡進行攻擊,提高了網絡的可靠性與安全性。
2、本發明引入節點保真度的概念,為每一個中間節點增加一個節點保真度參數,並在路由建立和數據傳輸階段,通過對該參數的動態計算、不斷更新,實現黑洞節點的識別,在不影響吞吐量的前提下,降低了網絡丟包率,提高了數據的傳輸效率。
3、本發明所述方案在不改變Ad-Hoc網絡中傳輸的數據包的格式、且不額外增加需要傳輸的信息的長度的前提下,僅為中間節點增加一個保真度概念,方案實現簡單,可利用現有SAODV協議,擴展性強,具有顯著的社會效益和推廣應用前景。
附圖說明
圖1是本發明所述一種抵禦黑洞攻擊的SAODV優化方法的總流程圖;
圖2是本發明所述一種抵禦黑洞攻擊的SAODV優化方法路由建立的請求階段中間節點處理RREQ請求包的流程圖;
圖3是本發明所述一種抵禦黑洞攻擊的SAODV優化方法數據傳輸的逆向應答階段中間節點處理ACK包的流程圖;
圖4是仿真實驗網絡端到端時延對比圖;
圖5是仿真實驗網絡丟包率對比圖;
圖6是仿真實驗網絡吞吐量對比圖。
具體實施方式
以下結合附圖對本發明的技術方案給出進一步詳細的描述,以使本領域技術人員能夠更加清楚地理解本發明的方案,但並不因此限制本發明的保護範圍。
為便於理解,首先簡要給出本發明抵禦黑洞節點攻擊的原理:在Ad-hoc網絡中,採用路由選擇方式時,在路由發現階段惡意節點向接收到的路由請求包中加入虛假可用信道信息,騙取其他節點同其建立路由連接,然後丟掉需要轉發的數據包,造成數據包丟失的惡意攻擊。
為避免黑洞節點修改路由請求包所含信息,本發明在SAODV協議安全控制方法的基礎上創新地為每一個節點引入保真度。保真度描述節點在Ad-Hoc網絡中的參與度與可靠性的大小,即通過該節點可以成功轉發數據包的能力的大小。本發明所述的保真度為一個整數,並且在相鄰節點間周期性交換。
在路由建立階段,若節點的保真度大於保真度門限值,則該節點可以作為多跳路徑中的一跳傳輸數據,否則不選用該節點建立路由。在數據傳輸階段,更新節點保真度值的大小,若節點成功轉發一個數據包,保真度增加,否則減小,當某節點的保真度減至0,表明該節點無法向網絡中其他節點正確轉發數據包,則認定該節點為黑洞節點,並將該節點從網絡中移出。此後,該節點不再參與網絡的數據轉發,從而成功抵禦黑洞攻擊。
附圖1為本發明所述一種抵禦黑洞攻擊的SAODV優化方法的總流程圖,下面詳細敘述本發明中抵禦黑洞攻擊的SAODV優化方法,包括步驟(1)路由建立和步驟(2)數據傳輸中具體實現。
步驟(1)路由建立。
在路由建立階段,運用SAODV中哈希函數與數字籤名的方法,並為節點引入保真度的概念,在此基礎上為路由建立設定條件,按如下步驟進行:
(1-1)源節點對RREQ請求包中的信息進行初始化。
本發明所述Ad-Hoc網絡中的節點分為三類:發送數據的源節點、轉發數據的中間節點和接受數據的目的節點。在發送數據前,根據網絡狀態,通過從源節點到目的節點廣播RREQ請求包和從目的節點到源節點單播RREP應答包,建立從源節點到目的節點的路由。
RREQ請求包中信息分為兩部分,第一部分是最短路由信息,用於尋找從源節點到目的節點的最短路由,主要包括源節點IP位址、目的節點IP位址、源節點序列號、目的節點序列號;第二部分是安全控制信息,用於確保路由建立階段請求信息的完整性和安全性,包括跳數、最大跳數、哈希函數、哈希值、最終哈希值、數字籤名和公鑰,其中跳數和哈希值為變量,最大跳數、哈希函數、最終哈希值、數字籤名、公鑰為常量。最短路由信息部分不屬於本發明優化創新的範圍,故不贅述,以下只說明安全控制信息部分。
安全控制信息部分包含的具體信息概念如下:
跳數hop:跳數是一個正整數,表徵數據包在網絡中走過的步數,即若RREQ請求包經過一個節點完成一跳,則跳數加1,hop_this=hop_last+1,其中hop_this為當前跳的跳數,hop_last為上一跳的跳數。
最大跳數hop_max:最大跳數是協議允許一個數據包可以經過的節點次數的最大值。舉例說明最大跳數的含義,協議的最大跳數是N,則協議傳輸的數據包最多只可以通過N次節點(重複通過也算做一次),如果第N+1次到達某個節點,則該節點認為這個傳送過來的數據包不可達。
哈希函數H(x)與哈希值hash:哈希函數H(x)是用於加密的單向函數,將哈希函數應用到任意長度的輸入所得到的輸出長度固定,並稱運算所得結果為哈希值hash。在本發明中,哈希值隨跳數增加而變化,當前跳的哈希值是對上一跳哈希值進行哈希函數運算所得的結果,即當前跳哈希值與上一跳哈希值的關係滿足下式:hash_this_hop=H(hash_last_hop),其中hash_this_hop為當前跳哈希值,hash_last_hop為上一跳哈希值,節點接收RREQ請求包,獲取上一跳哈希值,按照上式計算當前跳哈希值,裝入RREQ請求包,傳給下一跳。
哈希值的意義在於檢測可變信息部分(本發明中指跳數)的安全性。例如,對一篇文章運用哈希函數,可得到文章對應的正確哈希值,此時即使只更改該文章中的一個字母,並對更改後的文章再一次運用哈希函數,得到的哈希值也會與正確的哈希值不同,由此即可判斷文章已被更改,失去了原有數據的安全性。故在本發明中,中間節點檢測根據跳數信息得到的哈希值是否與最終哈希值相同,即可判定跳數信息是否已被惡意改變。
最終哈希值top_hash:最終哈希值是利用哈希函數,重複計算最大跳數次後得到的哈希值。
數字籤名是發送方用私鑰將哈希值籤名後的信息,用於接收方通過公鑰對信息進行驗證,若驗證無誤,則信息完整,以此保證信息的完整性。
對RREQ請求包的初始化即對其所包含的信息進行初始設定,下面敘述源節點對RREQ請求包中的信息進行初始化的具體步驟:
(1-1-1)初始化跳數為0,即hop=0;初始化最大跳數為正整數,具體數值根據網絡規模要求設定;初始化哈希函數,並隨機生成一個隨機數seed,令第0跳即源節點處的哈希值為:hash=H(seed)。
(1-1-2)對已產生的隨機數seed,運用初始化後的哈希函數H(x)重複計算最大跳數hop_max次得到最終哈希值,有top_hash=Hhop_max(seed),其中Hn(x)=H(H(…H(x)))。
(1-1-3)用源節點的私鑰籤名哈希值進行數字籤名的初始化,完成源節點對RREQ請求包中的信息進行初始化。
(1-2)中間節點對RREQ請求包進行處理。
附圖4為本發明所述一種抵禦黑洞攻擊的SAODV優化方法步驟(1-2)路由建立的請求階段中間節點處理RREQ包的流程圖,參照附圖2,下面詳細敘述中間節點處理RREQ請求包的過程,其中包括以下4個子步驟:
(1-2-1)中間節點對接收的RREQ請求包信息進行更新。
更新跳數信息:hop_this=hop_last+1;更新哈希值:hash=hash_this_hop=H(hash_last_hop)。
(1-2-2)中間節點對接收的RREQ請求包進行安全驗證。
為保證安全,中間節點首先對RREQ請求包中的哈希值和數字籤名進行驗證。本發明中具體的驗證方法如下所述:
驗證哈希值:中間節點從收到的RREQ請求包中提取出跳數hop、哈希函數H(x)、哈希值hash和最終哈希值top_hash,哈希值hash為用哈希函數H(x)對隨機數seed重複計算跳數次後所得的結果,最終哈希值top_hash為用哈希函數H(x)對隨機數seed重複計算最大跳數次後所得的結果,故若跳數正確無誤未被惡意更改,則哈希值hash與最終哈希值top_hash應滿足下式:
H(hop_max-hop)(hash)=top_hash
若不滿足上式,表明驗證出錯,跳數信息已被惡意更改,則丟棄該RREQ請求包;若驗證無誤,則進一步驗證數字籤名。
驗證數字籤名:中間節點從收到的RREQ請求包中提取出公鑰和數字籤名,並用公鑰對數字籤名進行驗證,若驗證有誤,則說明該RREQ包已被篡改,節點不能繼續轉發該錯誤RREQ包,故丟棄該RREQ請求包;若驗證無誤,則進一步查看目的地址。
(1-2-3)中間節點從RREQ請求包中提取目的地址,判斷自己是否為目的節點或是否有目的節點的路由信息,若是,則直接回復RREP應答包給源節點,若不是,則更新計算該節點當前的保真度數值φ_avg,本發明中φ_avg的計算方法如下:
φ_avg=(φ_this+φ_next)/2
其中,φ_this為該節點原保真度數值,φ_next為下一跳節點的保真度數值,最初的φ_this與φ_next具體數值根據網絡規模要求設定。
(1-2-4)比較φ_avg與門限值Φc的大小。本發明中Φc為一個值偏小的整數,具體數值根據網絡規模要求設定。若φ_avg<Φc,表明節點不受信任,無法進行安全可靠的信息傳輸,則丟棄RREQ請求包;若φ_avg≥Φc,則節點繼續廣播RREQ請求包。
上述的4個子步驟為中間節點對RREQ請求包的處理過程,節點依次執行此步驟直至找到目的節點路由或RREQ請求包被丟棄。
(1-3)目的節點接收與應答。
當目的節點收到RREQ請求包後,產生一個RREP應答包用以反饋信息,並通過逆向路由將該信息發送回源節點,逆向路由是在上述路由建立過程中由中間節點建立。
通過上述過程,實現了路由建立。
步驟(2)數據傳輸
路由建立後,源節點沿此路徑向目的節點傳輸數據。為有效抵禦黑洞攻擊,本發明的創新點在於中間節點保真度的動態更新。動態更新的方法是每當目的節點正確收到一個數據包時就返回一個ACK包,若源節點也能正確收到該ACK包,則沿途的所有中間節點保真度均加1,否則減1。優化的SAODV方法中數據傳輸,按如下步驟進行:
(2-1)正向數據傳輸
(2-1-1)源節點發送數據包。此步驟與SAODV相同,源節點將數據打包,沿最新建立的路由,將數據包發送給下一跳。
(2-1-2)中間節點依次沿步驟一所述的建立的最新路由轉發數據包。
(2-1-3)目的節點接收與應答。建立連接後,目的節點處於等待接收狀態,若目的節點正確接收數據包,則目的節點返回一個確認ACK包,ACK包逆向沿原路徑返回源節點,目的節點將ACK包發送給下一跳的中間節點。
(2-2)ACK逆向應答
本發明中ACK包用於動態調整節點保真度,若源節點接收到目的節點反饋的ACK包,則沿途中的所有中間節點保真度值均增加,否則減小。參照附圖3,ACK逆向應答按如下步驟進行。
(2-2-1)一段時間後,若中間節點正確接收來自目的節點的確認ACK包,則節點的保真度數值φ_avg加1,且查找路由信息傳遞給下一跳;
(2-2-2)一段時間後,若中間節點未能正確接收來自目的節點的確認ACK包,則節點的保真度數值φ_avg減1;
(2-2-3)當某個中間節點A發現其保真度數值φ_avg等於0(網絡會認為A為黑洞節點),A會發出一個ALARM包廣播給全網節點,其他節點收到來自A節點的ALARM包則認為A為黑洞節點,全網節點將不再與A節點聯繫,這便是系統對黑洞節點進行的刪除操作。此時源節點會重新建立路由以實現數據傳輸。(這裡需要注意的是,本發明的保真度數值的增加或減少均由中間節點本身完成,全網的中間節點均按照以上算法流程執行該協議的命令操作。)
通過上述過程,實現了數據傳輸,並有效抵禦了黑洞攻擊。當網絡運作起來後,由於黑洞節點會大量「吸食」數據包,因而此機制一定能快速找到黑洞節點並將其刪除。
本發明的效果可由以下仿真實驗進一步說明:
1、實驗條件
本發明的仿真實驗基於NS2(Network Simulator version 2)網絡模擬平臺,採用恆定比特率(CBR)數據流進行仿真實驗。恆定比特率數據包在60秒的時間間隔內隨機的在節點間產生,服從均勻分布。數據包大小為512位元組。實驗中採用隨機移動點模型(RWP)模擬節點移動,節點在500米×500米的矩形區域移動,其中,節點個數固定為35,節點暫停移動時間為10s。
2、實驗內容
本發明的仿真實驗對已經設定好的Ad-Hoc網絡採用AODV路由協議進行數據傳輸,以三個網絡參數:網絡吞吐量、端到端時延、丟包率為主要指標,觀察該Ad-Hoc網絡在未受攻擊時的網絡特性,而後向網絡中加入5型黑洞節點(指網絡中有五個黑洞節點),分別觀測使用AODV協議、SAODV協議和本發明中優化的SAODV協議的三個網絡特性參數,並將三次測得的網絡參數進行對比。
3、實驗結果
實驗結果如圖4、圖5、圖6。
圖4為當抵禦5型黑洞攻擊時,不同協議系統的端到端時延的對比,由圖中曲線對比可見本發明中優化的SAODV協議的時延最小,分析端到端時延,本發明中優化的SAODV協議接近於未受黑洞攻擊時的AODV協議,好於SAODV協議,遠好於有黑洞攻擊的AODV協議。
圖5為當抵禦5型黑洞攻擊時,不同協議系統的丟包率的對比,由圖中曲線對比可見本發明中優化的SAODV協議的丟包率在短時間內很高,但當網絡工作起來後,丟包率迅速降低幾近為0,而SAODV協議與未受黑洞攻擊的AODV協議的丟包率近似,都在一段時間後丟包率有所增加。這三種協議均遠好於有黑洞攻擊的AODV協議。
圖6為當抵禦5型黑洞攻擊時,不同協議系統的吞吐量的對比,圖中曲線對比可見本發明中優化的SAODV協議的吞吐量略高於SAODV且在10~50s時間內均比較穩定,雖然低於未受黑洞攻擊的AODV協議,但當面臨但是當面臨黑洞攻擊時(黑洞節點共享信道資源和帶寬),這兩種協議對AODV協議的保護是非常有效的。
綜上,對於考慮的3個參量,本發明提出的優化的SAODV協議與SAODV協議都可以成功的為AODV抵禦5型黑洞攻擊。另外圖4結果表明,本發明提出的優化的SAODV協議比SAODV協議更為有效。
以上僅是對本發明的優選實施方式進行了描述,並不將本發明的技術方案限制於此,本領域技術人員在本發明的主要技術構思的基礎上所作的任何公知變形都屬於本發明所要保護的技術範疇,本發明具體的保護範圍以權利要求書的記載為準。