基于WSN网络的定向步幻影路由算法matlab仿真

目录

1.程序功能描述

2.测试软件版本以及运行结果展示

3.核心程序

4.本算法原理

4.1 NDRW路由原理

4.2 定向步幻影路由原理

5.完整程序


1.程序功能描述

        系统设计背景技术介绍与现状简介:现在是信息爆炸的一个时代,因此对于个人的隐私以及信息的隐私保护都应该被实时重视着的问题;无线传感器网络其所采用的无线多跳通信方式易收到攻击者的攻击,引发严重的位置隐私泄露问题。在本课题中,我们将对比NDRW路由和定向步幻影路由。对比对应的安全时间和能耗。

2.测试软件版本以及运行结果展示

MATLAB2022a版本运行

基于WSN网络的定向步幻影路由算法matlab仿真_第1张图片

       安全时间指的是在攻击者成功找到源位置之前,源节点传输的数据包个数。图5是对于不同的源节点到汇聚节点的距离,进行100次的反向追踪实验得到的平均结果。显然,最短路径路由的安全时间是最小的.因为它的传输路径是固定不变的,所以攻击者很容易就能定位源节点。幻影路由通过定向随机步制造随机的幻影源,避免真实源位置被攻击者发现,所以能比最短路径路由提供更长的安全时间。NDRW路由的安全时间最大,因为在NDRW路由中数据包的传输路径在动态的变化,而且数据包传输过程中避免连续使用相同的节点,攻击者就不可能连续偷听到数据包传输,而不得不在同一个节点等待更长的时间。同时图5显示随着源节点与汇聚节点之间距离的增大,NDRW的安全时间迅速增加,显示了其优势。

基于WSN网络的定向步幻影路由算法matlab仿真_第2张图片

       通信开销即为节点转发数据包的次数,幻影路由消耗了较多的能量,因为幻影路由在制造幻影源的随机步阶段要消耗额外的能量。当源节点与汇聚节点之间距离比较小时,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的一种改进或变种,它引入了更多的方向性和控制性。在幻影路由中,数据包不仅随机选择路径,而且还在一定程度上被“引导”向特定的方向或目标。

       为了实现这种引导,幻影路由可能会使用一种或多种启发式算法来动态计算转移概率。例如,启发式算法可以考虑以下因素:

  1. 目标距离:数据包离其最终目标的距离。
  2. 节点拥塞:节点的当前负载或拥塞程度。
  3. 路径多样性:为了增加网络的鲁棒性,算法可能会倾向于选择不同于之前走过的路径。

5.完整程序

VVV

你可能感兴趣的:(MATLAB程序开发,#,网络仿真,网络,matlab)