基於WSN網路的定向步幻影路由演算法matlab模擬

软件算法开发發表於2024-06-09

1.程式功能描述

系統設計背景技術介紹與現狀簡介:現在是資訊爆炸的一個時代,因此對於個人的隱私以及資訊的隱私保護都應該被實時重視著的問題;無線感測器網路其所採用的無線多跳通訊方式易收到攻擊者的攻擊,引發嚴重的位置隱私洩露問題。在本課題中,我們將對比NDRW路由和定向步幻影路由。對比對應的安全時間和能耗。

2.測試軟體版本以及執行結果展示

MATLAB2022a版本執行

安全時間指的是在攻擊者成功找到源位置之前,源節點傳輸的資料包個數。圖5是對於不同的源節點到匯聚節點的距離,進行100次的反向追蹤實驗得到的平均結果。顯然,最短路徑路由的安全時間是最小的.因為它的傳輸路徑是固定不變的,所以攻擊者很容易就能定位源節點。幻影路由透過定向隨機步製造隨機的幻影源,避免真實源位置被攻擊者發現,所以能比最短路徑路由提供更長的安全時間。NDRW路由的安全時間最大,因為在NDRW路由中資料包的傳輸路徑在動態的變化,而且資料包傳輸過程中避免連續使用相同的節點,攻擊者就不可能連續偷聽到資料包傳輸,而不得不在同一個節點等待更長的時間。同時圖5顯示隨著源節點與匯聚節點之間距離的增大,NDRW的安全時間迅速增加,顯示了其優勢。

通訊開銷即為節點轉發資料包的次數,幻影路由消耗了較多的能量,因為幻影路由在製造幻影源的隨機步階段要消耗額外的能量。當源節點與匯聚節點之間距離比較小時,NDRW路由的能量消耗要小於幻影路由,因為幻影路由在隨機步階段有可能把資料包傳往遠離匯聚節點的方向,而NDRW路由中節點只會把資料包轉發給近鄰居和等鄰居節點。

3.核心程式

for ij = 1:length(dst)
ij
    for k = 1:1000
rng(k);
        X     = SCALE*rand(1,Node);
        Y     = SCALE*rand(1,Node);
        %基站位置
        X0     = 2000;
        Y0     = 2000;
        X      = [X,X0];
        Y      = [Y,Y0];
dmatrix= zeros(Node,Node);

        for i = 1:Node+1 
            for j = 1:Node+1 
Dist = sqrt((X(i) - X(j))^2 + (Y(i) - Y(j))^2); 
                %a link; 
                if Dist<= Radius
dmatrix(i,j) = Dist; 
                else 
dmatrix(i,j) = inf; 
                end; 
            end; 
        end; 
        %計算當前距離下可能的源節點
        Dist2=[];
        for i = 1:Node
            Dist2(i) = abs(sqrt((X(i) - X(end))^2 + (Y(i) - Y(end))^2)-dst(ij));  
        end
        [dd,Node_indx] = min(Dist2);
        Sn  = Node_indx;   %源位置
        En  = Node+1;      %匯聚節點
       %%
        %定向步幻影路
        %基於跳數的定向隨機步路由hwalk
        Dist2= [];
indx = [];
        for i = 1:Node
            Dist2(i) = abs(sqrt((X(i) - X(Sn))^2 + (Y(i) - Y(Sn))^2));  
            if Dist2(i) <= Radius & Dist2(i) > 0
indx = [indx,i]; 
            end
        end
        %隨機12
        Index2 = randperm(length(indx));
        Index2_= indx(Index2(1:min(hwalk,length(Index2))));
        %段是最短路徑路
        [paths,costs] = func_dijkstra(Index2_(end),En,dmatrix); 
path_distance = 0; 
        for d=2:length(paths) 
path_distance = path_distance + dmatrix(paths(d-1),paths(d)); 
        end 
        %安全時間
        Time1(k,ij) = package_speed*length(paths);
        %能量消耗
        E1(k,ij)    = Energy*path_distance;
    end
end
12_039m

  

4.本演算法原理

NDRW(Non-Deterministic Random Walk)路由和定向步幻影路由(Directed Phantom Routing。系統設計背景技術介紹與現狀簡介:現在是資訊爆炸的一個時代,因此對於個人的隱私以及資訊的隱私保護都應該被實時重視著的問題;無線感測器網路其所採用的無線多跳通訊方式易收到攻擊者的攻擊,引發嚴重的位置隱私洩露問題。而源節點處往往會產生相對重要的資訊,若源節點被發現,則網路資訊隱私將收到巨大威脅,因此針對源節點的位置隱私保護技術對於感測器網路的大規模應用具有重要意義。

4.1 NDRW路由原理

NDRW,即非確定性隨機遊走,是一種在圖或網路中尋找路徑的方法,它不總是選擇最短或最優路徑,而是允許一定程度上的隨機性。這種隨機性有助於避免網路中的擁塞區域,提高資料傳輸的效率和魯棒性。

在數學上,隨機遊走可以描述為一個馬爾可夫鏈。設(G = (V, E))為一個圖,其中(V)是頂點集,(E)是邊集。每個頂點(v \in V)代表一個網路節點,每條邊(e \in E)代表節點之間的連線。在每一步,遊走者(例如資料包)根據一定的轉移機率(P(v, u))從當前節點(v)移動到相鄰節點(u)。轉移機率矩陣(P)通常基於網路的拓撲結構和當前的交通狀況來動態計算。

然而,在NDRW中,轉移機率可能不僅僅基於節點的度,還可能基於其他因素,如邊的權重、節點的擁塞程度等。這些因素可以透過調整轉移機率來反映。

4.2 定向步幻影路由原理

定向步幻影路由(以下簡稱為“幻影路由”)可以看作是對NDRW的一種改進或變種,它引入了更多的方向性和控制性。在幻影路由中,資料包不僅隨機選擇路徑,而且還在一定程度上被“引導”向特定的方向或目標。

為了實現這種引導,幻影路由可能會使用一種或多種啟發式演算法來動態計算轉移機率。例如,啟發式演算法可以考慮以下因素:

目標距離:資料包離其最終目標的距離。

節點擁塞:節點的當前負載或擁塞程度。

路徑多樣性:為了增加網路的魯棒性,演算法可能會傾向於選擇不同於之前走過的路徑。

相關文章