本发明属于网络安全技术领域,特别涉及一种动态Ad Hoc网络关键节点识别方法。
背景技术:
目前,Ad Hoc网络由于在现代军事和民用通信中得到了广泛应用,具有无需架设网络设施、可快速展开、网络节点可随意移动和能以任意方式相互通信等特点。作为对网络安全可靠性影响最大的因素之一,Ad Hoc网络关键节点识别是一项基础性而又非常有意义的研究工作,很多文献提出的关键节点识别方法只是针对传统网络进行识别,对Ad Hoc网络并不具有很好的适应性。中介性方法虽然能够准确把握网络的整体拓扑信息,对关键节点识别具有较好的效果,但是其算法的时间复杂度比较高,对于大规模Ad Hoc网络并不适用。半局部中心度法虽然能够快速识别出大规模网络的关键节点,但并不能准确给出网络的关键节点。节点删除法虽然能够快速的识别出大规模Ad Hoc网络的关键节点,但识别出的关键节点因为数目太多而无法区分关键性。节点收缩的方法能够通过衡量节点收缩后网络凝聚度来识别网络的关键节点,但多个节点收缩后网络的拓扑结构相同时,节点的关键性就难以区分。全局关键节点识别方法是利用网络的整体拓扑信息来进行关键节点识别,但其利用的拓扑信息量大,导致算法复杂度过高而不能适应大规模网络或动态网络的关键节点识别。
技术实现要素:
本发明的目的是:提供一种动态Ad Hoc网络关键节点识别方法,解决现有算法中存在的难以给出网络的关键节点、对识别出的关键节点无法区分关键性、不适应大规模网络或动态网络的关键节点识别等方面的问题,进一步提高Ad Hoc网络关键节点的识别效率,提高Ad Hoc网络的安全性、可靠性。
本发明的技术方案是:一种动态Ad Hoc网络关键节点识别方法,包括以下步骤:
A.构建Ad Hoc网络模型;
设:Ad Hoc网络由n个节点构成,Ad Hoc网络用G=(V,L)表示,其中V={v1,v2,…,vn}是Ad Hoc网络中所有节点的集合,L={l1,l2,…,lm|lk=(vi,vj)}是所有Ad Hoc网络节点间链路的集合,且Ad Hoc网络节点之间执行相同的通信协议;
则有:
B.定义Ad Hoc网络的连通性;
设:ICC表示Ad Hoc网络中两个节点之间最短距离倒数之和为Ad Hoc网络的连通性,dij表示节点vi和节点vj的最短距离;
则有:
C.综合考虑节点删除法和网络连通性,定义节点删除后Ad Hoc网络的连通性;
设:节点vi删除后Ad Hoc网络的连通性仍然包含节点vi到最其它节点的最短距离,删除的只是节点vi和其它所有节点之间的链路,节点删除前后总的节点数不变,IC(i)表示节点vi删除后网络的连通性;
则有:
D.根据步骤B中节点删除前后Ad Hoc网络的连通性,定义Ad Hoc网络节点的关键程度;
设:RC(i)表示节点vi的关键程度,节点的关键程度越大,表示其关键性越强;
则有:
E.动态识别Ad Hoc网络关键节点;
E1.由Ad Hoc网络邻接矩阵A计算节点间最短距离D;
E2.计算Ad Hoc网络的连通性ICC;
E3.计算节点删除后Ad Hoc网络的连通性IC(i);
E4.计算Ad Hoc网络节点的关键性RC(i),识别Ad Hoc网络的关键节点;
E5.检测Ad Hoc网络拓扑邻接矩阵B,实现动态识别Ad Hoc网络关键节点。
更进一步地,所述步骤E1中,由Ad Hoc网络邻接矩阵A计算节点间最短距离D的步骤为:
设:B=(bij)n×n为邻接矩阵A的μ次幂,B=Aμ,μ为正整数,节点vi和节点vj之间的最短距离为dij=k,x为节点vi和节点vj之间的最短路径数;
则:bij有以下性质:
由bij的性质可以看出,当节点间的最短距离k未知时,μ从1开始向上遍历,若找到第一个μ遍历的值λ,使得当Aλ=(bij)n×n时,bij=0,当Aλ+1=(bij)n×n时,bij>0,那么节点间的最短距离k=λ+1。
本发明首先根据Ad Hoc网络信息传播特点,给出Ad Hoc网络连通性定义,其次提出一种新的最短距离计算方法求解网络连通性,达到降低算法时间复杂度的目的,最后根据节点删除后对网络连通性造成的破坏程度对节点进行关键性排序。本发明比传统的节点收缩法和半局部中心度法具有更好的识别效果,比中介性方法时间复杂度低且能够适应Ad Hoc网络拓扑动态性,解决了现有算法存在的难以给出网络的关键节点、对识别出的关键节点无法区分关键性、不适应大规模网络或动态网络的关键节点识别等方面的问题,进一步提高了Ad Hoc网络关键节点的识别效率,提高了Ad Hoc网络的安全性、可靠性。
附图说明
图1为本发明方法流程图;
图2为本发明小规模Ad Hoc网络拓扑图;
图3为本发明第一个时间步的拓扑图;
图4为本发明第二个时间步的拓扑图;
图5为本发明第三个时间步的拓扑图;
图6为本发明第四个时间步的拓扑图;
图7为本发明第五个时间步的拓扑图;
图8为本发明第六个时间步的拓扑图。
具体实施方式
实施例1:参见图1至图8,一种动态Ad Hoc网络关键节点识别方法,包括以下步骤:
A.构建Ad Hoc网络模型;
设:Ad Hoc网络由n个节点构成,Ad Hoc网络用G=(V,L)表示,其中V={v1,v2,…,vn}是Ad Hoc网络中所有节点的集合,L={l1,l2,…,lm|lk=(vi,vj)}是所有Ad Hoc网络节点间链路的集合,且Ad Hoc网络节点之间执行相同的通信协议;
则有:
B.定义Ad Hoc网络的连通性;
设:ICC表示Ad Hoc网络中两个节点之间最短距离倒数之和为Ad Hoc网络的连通性,dij表示节点vi和节点vj的最短距离;
则有:
C.综合考虑节点删除法和网络连通性,定义节点删除后Ad Hoc网络的连通性;
设:节点vi删除后Ad Hoc网络的连通性仍然包含节点vi到最其它节点的最短距离,删除的只是节点vi和其它所有节点之间的链路,节点删除前后总的节点数不变,IC(i)表示节点vi删除后网络的连通性;
则有:
D.根据步骤B中节点删除前后Ad Hoc网络的连通性,定义Ad Hoc网络节点的关键程度;
设:RC(i)表示节点vi的关键程度,节点的关键程度越大,表示其关键性越强;
则有:
E.动态识别Ad Hoc网络关键节点;
E1.由Ad Hoc网络邻接矩阵A计算节点间最短距离D;
设:B=(bij)n×n为邻接矩阵A的μ次幂,B=Aμ,μ为正整数,节点vi和节点vj之间的最短距离为dij=k,x为节点vi和节点vj之间的最短路径数;
则:bij有以下性质:
由bij的性质可以看出,当节点间的最短距离k未知时,μ从1开始向上遍历,若找到第一个μ遍历的值λ,使得当Aλ=(bij)n×n时,bij=0,当Aλ+1=(bij)n×n时,bij>0,那么节点间的最短距离k=λ+1。
E2.计算Ad Hoc网络的连通性ICC;
E3.计算节点删除后Ad Hoc网络的连通性IC(i);
E4.计算Ad Hoc网络节点的关键性RC(i),识别Ad Hoc网络的关键节点;
E5.检测Ad Hoc网络拓扑邻接矩阵B,实现动态识别Ad Hoc网络关键节点。
实验验证:采用图2所示的小规模Ad Hoc网络来进行分析验证,其网络的拓扑结构是由23个节点、40条链路组成,表1是本发明与节点收缩法、半局部中心度法和中介性方法的识别结果对比表,在进行对比分析时只取了每种方法的前十位识别结果。
表1识别结果对比表
从表1可以看出,4种方法识别的结果有所差异,原因是各方法判断节点关键性的角度不同,本发明是基于网络连通性和节点删除法相结合的思想进行关键节点识别的,识别出的关键节点对网络的连通性有很大的影响。由分析可知,由于中介性方法的时间复杂度为O(n3),当网络规模比较大时,本发明比中介性方法具有更低的时间复杂度,对大规模Ad Hoc网络的关键节点识别具有更为理想的计算能力。
表2六个时间步识别结果对比表
为了验证本文提出的关键节点识别算法能够适应Ad Hoc网络的动态拓扑性,本发明利用matlab仿真了具有100个节点的动态Ad Hoc网络,所有网络节点具有相同的通信范围r=200米,在边长为1000米的正方形区域内随机移动,移动的时间以时间步计算,每一个时间步,随机选择节点随机移动,算法对Ad Hoc网络的拓扑结构进行一次更新。表2是这100个节点在六个时间步识别的前十位的关键节点对比表,图3至图8是这100个节点在六个时间步的网络拓扑变化图。由表2和图3至图8可以看出,随着Ad Hoc网络节点的随机移动,每一个时间步识别出的节点的关键性排序也是动态变化的,六个时间步识别出的最关键的节点分别为{74,45,1,57,21,21},这说明Ad Hoc网络拓扑结构不同时,识别出的关键节点是不同的。