刘 芬 ,叶明全 ,陈 希 ,孙成浩 ,郭鸿飞
(1.皖南医学院弋矶山医院 医学信息中心,安徽 芜湖 241001;2.皖南医学院 医学信息学院,安徽 芜湖 241002;3.皖南医学院 健康大数据挖掘与应用研究中心,安徽 芜湖 241002)
无线传感器网络(wireless sensor network,WSN)作为物联网的重要组成部分,在环境监测、医疗卫生、智能家居、国防军事等领域具有广泛的应用前景[1-2]。根据节点感知能力、计算能力、通信能力和能量等的不同,WSN可分为同构传感网和异构传感网(heterogeneous wireless sensor network,HWSN)。同构传感网中的节点具有同样的构造,而HWSN中的节点根据各自任务的不同而采用不同的构造。无论何种WSN,路由问题均为研究热点问题。根据网络管理的不同逻辑结构,WSN的路由协议可分为平面路由和分层结构路由两类[3]。平面路由不具备可扩展性,缺乏对通信资源的优化管理,因而不适合在大规模网络中应用。而分层路由可以在一定程度上解决这个问题,LEACH协议是典型的分层路由协议。
但LEACH协议存在如下局限性:该协议在最初簇头选举过程,节点都设定为能量相同,所以不适用于能量分布不均的网络,如HWSN。同时,该协议使用的是单跳路由方式,会出现远距离通信,进而导致能量空洞问题。并且其设计主要关注于连通性与能量优化问题,而忽略了网络的安全性。
针对上述存在的局限性,文献[4]通过在T(n)中引入节点能量机制,使剩余能量高的节点更易被选为簇头,有效地延长了网络的寿命。但不适用于节点初始能量不同的HWSN,且没有考虑簇头之间的相对位置,容易导致簇的重叠问题。文献[5]在簇建立阶段通过修改T(n),加入了节点参数,使得改进的路由协议适合HWSN,增大了初始高资源节点被选为簇头的几率。但忽略了节点的剩余能量因素,使网络寿命缩短。文献[6]在簇的构造过程中引入加权函数,考虑节点与簇头、簇头与基站(base station,BS)之间的距离因素,但是忽略了节点的能量因素,将会产生能量空洞等问题。文献[7]通过在LEACH协议中引入多跳机制,摈弃了单跳路由方式,采取簇间多跳路由,避免了远距离通信。但在当前簇头选择下一跳簇头时仅仅考虑最近路由,没有考虑节点能量因素,选择的路由并不是最佳路由,且会缩短节点与网络的寿命。文献[8]提出的COCA协议,将整个网络划分为若干等尺寸的正方形单元。在协议中证明了簇头应该更多的分布于离BS较近的单元,可以避免能量空洞问题。通过最小化网络中所有节点的总能耗,得到了最优的单元数目,并且通过均衡不同单元间节点的能耗得到各单元中的簇头数目,较好地延长了网络寿命。
本文研究环境基于HWSN,网络模型如图1所示。并作如下假设:
(1)网络模型是单SINK环境,且SINK与BS邻近。
图1 网络模型示意图
(2)节点根据与接收方距离的远近,为了降低能耗可以自动调整发射功率。
(3)若知道对方发射功率,可以根据接收信号的强度来计算出自己与发送方的近似距离。
此外,本文的能耗模型是文献[9]中提出的无线通信系统能耗模型,如图2所示。功率放大电路的能耗可分为两种模型,即自由空间模型和多路径衰减模型。节点将kb的数据传输到距离为d的接收器的能耗和接收器接收kb数据的能耗分别为:
其中:Eelec代表收发电路的能量消耗,εfs、εamp为不同信道模型下的功率放大电路能耗系数,d0是两种模型的通信距离阈值。
LEACH协议在簇头选举过程中,计算阈值T(n)如下:
式中:p表示簇头节点占所有节点的百分比,r表示当前轮数,G表示在最近的1/p轮中未当选簇头的节点集合。
在LEACH协议的簇头选举过程中,没有考虑节点的能量因素,不适用于节点初始能量不同的HWSN。针对以上问题本文提出新的阈值函数T(n)。
图2 无线通信系统能量消耗模型
其中,En-residual表示节点当前剩余的能量,Ee-initial表示整个网络的平均初始能量。
为了生成分布均匀的簇,文献[10]提出的簇的构造方法,考虑了节点与候选簇头的距离,但没有考虑候选簇头的能量因素,容易造成能量空洞问题。本章在文献[8,10]的基础上做了改进,在加权函数cost中引入了能量以及候选簇头与BS的距离等因素,使得靠近BS的簇,其成员节点少,而远离BS的簇其成员节点多。
经过簇头选举过程,网络中已经生成了若干候选簇头。在成簇过程中,非簇头逐个计算与每一个候选簇头的cost值,选取具有最小cost值的候选簇头作为其最终簇头。cost的计算公式如下:
其中
其中ω1,ω2是权重因子,Dto-ch是当前节点到候选簇头的距离,Maxto-ch是当前节点距离所有候选簇头的最远距离,Maxto-ch是所有的候选簇头距离BS的最远距离,Dto-ch是候选簇头到BS的距离,Minto-bs是所有的候选簇头距离BS的最短距离。
通过加密算法与信任管理可有效地抵御基于身份的攻击,保证通信的安全性,但会带来额外的通信开销。本文引入节点认证机制,较好地避免了基于身份的攻击,本文设计的认证机制伴随着簇的构造过程完成,不需要额外的通信开销。通过三个步骤完成节点的认证,如下所示:
步骤1:网络部署前,SINK节点中存储一张对应列表,列表中包含两个表项,分别为部署节点的ID、SINK节点与每个节点共享的秘密信息s。
步骤2:在簇建立阶段,部署节点选择合适的簇头加入,并返回加入消息给相应的簇头,加入消息中包含部署节点的ID。簇头节点向SINK节点发送簇建立完成的消息,消息中包含一个字段为Ek(IDi,…,IDj,ks⊕ID),其中s为本簇头节点与 SINK节点共享的秘密信息,ID为本簇头的ID值,IDi,…,IDj为本簇节点所包含的所有普通节点的ID值,k为节点出厂时的初始通话密钥。
步骤3:SINK节点收到全部簇头的消息之后,进行解密获得每个簇头对应的ks⊕ID,并进行异或操作得到,同时根据簇头节点ID查找对应列表获得秘密信息,并进行异或操作得到两个异或值再异或的结果如果为0,则簇头都是合法节点,通过认证。如果结果不为0,则存在非法簇头,定位非法簇头的ID,将其剔除网络。
在LEACH协议中簇头将数据以单跳方式直接发送到SINK,然后由SINK发送到BS,这使得网络的寿命缩短,本章在文献[7]的基础上,引入了能量机制。簇头与BS之间的路由通过如下三个阶段完成:
阶段1:网络中每一个簇头向其余所有簇头广播通知消息,簇头通过通知消息建立各自的路由表。
阶段2:根据每个簇头与BS的距离远近,将网络中所有的簇头分为两组,即外部组和内部组。所有距离大于或等于d0的簇头组成外部组,距离小于d0的簇头组成内部组。同时为每一个内部组中的簇头根据节点类型的不同设置不同的能量阈值E(n)。
阶段3:内部组中的簇头直接将数据通过SINK发送到BS,外部组中的簇头根据通知消息建立各自的路由表,在发送数据时查找各自的路由表。当外部组中的簇头转发数据到内部组中的簇头时,只有当内部组中簇头剩余能量大于其能量阈值E(n)的情况下,才转发数据到BS。
在阶段3中又分为三种情况:
其中d0是文献[9]中提出的两种无线通信系统能量消耗模型的通信距离阈值,Dch-bs表示当前簇头与BS之间的距离,Dche-cbsi表示当前位于外部组中的簇头与位于内部组中的簇头之间的距离。
数据传输过程如图3所示。CH1,CH2和CH3满足阶段3中的第一种情况,将数据经过SINK发送到BS。CH4满足第二种情况,将数据发送到靠近自己的内部簇头CH2和CH3,此时CH2和CH3各自判断自己的剩余能量是否大于各自的能量阈值,如果大于能量阈值则转发数据,否则不转发数据。CH5,CH6满足第三种情况,CH5将数据转发到靠近自己的内部簇头,CH6将数据经过SINK发送到BS。
N-LEACH协议在T(n)中加入了节点的剩余能量因素,提高了剩余能量多的节点被选为簇头的几率,使得N-LEACH协议适合于节点初始能量不同的HWSN。在加权函数cost中引入了能量以及候选簇头与BS的距离等因素。在成簇过程中非簇头逐个计算与每一个候选簇头的cost值,选取具有最小cost值的候选簇头作为其最终簇头。靠近BS的簇,其成员节点少,而远离BS的簇其成员节点多。通过形成不同规模的簇,接近BS的簇头可以预留能量进行簇间多跳路由。
图3 数据传输过程
引入多跳机制,摈弃了LEACH协议的单跳路由方式,采用簇间多跳路由,避免了远距离通信。通过三个阶段建立了簇头与BS之间的路由,阶段1通过簇头之间广播通知消息建立各自的路由表,阶段2根据与BS距离的远近将簇头分为内部组和外部组,在阶段3中内部组的簇头通过SINK节点直接将数据发送到BS,外部组中的簇头根据通知消息建立各自的路由表,在发送数据时查找其路由表决定数据如何传输。并且在簇的构造过程中引入了认证机制,较好地避免了基于身份的攻击,实现了可信路由。
本文采用NS-2进行仿真,假定网络中有100个普通传感器节点随机部署在100 m×100 m的矩形监测区域中,节点分布拓扑图如图4所示(BS位置(0,0),SINK位于BS附近)。节点接收或发送数据需要消耗的能量为Eelec=50 nJ/b,放大器所消耗的能量为
εamp=0.001 3 pJ·(b-1m-4),εfs=10 pJ·(b-1m-2)每个数据包的大小为512 b,MAC层协议使用的是IEEE802.15.4,簇头节点占所有节点的百分比为0.05。仿真参数设置如表1所示。
通过节点存活个数,网络总数据量以及网络消耗的总能量三个指标对LEACH协议与NLEACH协议进行了对比仿真实验,如下所示:
图5反应了在两种方案下,仿真过程中存活的节点个数,可看出N-LEACH协议中首个节点能量耗尽晚于LEACH协议,且网络寿命长于LEACH协议。网络寿命增加了约16%,且网络性能更优。
图4 节点分布拓扑图
表1 仿真参数表
从图6的仿真结果可知,路由协议为NLEACH协议时,节点发送且被成功收到的总数据量(最终BS收到的数据量)高出LEACH协议130万。
从图7可以看出,初始时,N-LEACH比LEACH协议消耗更多的能量,但随着进行轮数的增加,N-LEACH协议比LEACH协议消耗更少的能量。正是由于N-LEACH协议使用了多跳的路由机制,减少了远距离通信带来的能量消耗,较好地做到了能量均衡,有效地延长了网络的寿命。
物联网技术的快速发展,直接导致了HWSN研究的深入和应用的拓展。路由协议是HWSN研究的重点问题之一,传统的LEACH协议不适合节点能量不均衡的HWSN。针对LEACH协议的缺陷,本文设计并实现了一种多跳的非均匀分簇路由协议N-LEACH,在簇头选举、成簇规模、以及路由方案问题上进行了相关改进。NS2仿真实验表明,N-LEACH协议使得网络内节点能量负载均衡,并且较好地延长了网络的使用寿命。由于HWSN本身易受到外部攻击,因此本文提出的协议实现了节点的认证过程,实现了可信路由,保证了网络通信的安全。如何实现网络寿命与网络安全之间的权衡,将是我们下一步研究的工作重点。
图5 节点存活个数
图6 网络总数据量
图7 网络消耗的总能量