谢英辉,彭维捷,陶志勇
(1.长沙民政职业技术学院 软件学院,湖南 长沙 410004;2.长沙商贸旅游学院,湖南 长沙 410004)
作为一种新兴的信息采集技术,无线传感网络(Wireless Sensor Networks,WSNs)具有组织、部署便捷等优势[1-2]。目前,WSNs已在多个领域内广泛使用,如健康医疗,野外环境监测。WSNs内节点感测环境数据,再将数据传输至汇聚节点,进而监测环境。
不失一般性,多数WSNs内节点的能量和通信能力有限,这阻止了大型网络内节点与汇聚节点直接通信。因此,多数节点需通过多跳方式才能将数据传输汇聚节点。在这种场景下,如何建立能耗低的路由成为WSNs一项挑战工作。
尽管降低节点能耗是WSNs的一项重要工作,但是数据传输率以及安全问题也不容忽视。文献[3-5]讨论了如何降低WSNs的能耗问题。例如,文献[5]提出基于总能量成本的分布式能耗均衡路由(Distributed Energy Balanced Routing,DEBR)。DEBR路由依据从源节点至汇聚节点的总能量成本决策路由。除了能耗和数据传输率问题外,安全也是WSNs不容忽视的问题。然而,现存的多数研究工作只单独地考虑三个问题中某一个问题,或者两个,它们并没有同时考虑这三个问题。
此外,由于生物智能算法在解决复杂系统问题的优势,其被广泛应用于WSNs领域,其中蚁群算法得到较广泛的应用。例如,文献[6]针对信息中心网络,提出基于是蚁群的路由算法。通过相邻节点间的数据相似性、兴趣蚂蚁队列长度等因素,计算转发概率模型,并利用轮盘赌模型选择兴趣蚂蚁转发接口;文献[7]将量子蚁群算法引入簇间路由,充分利用蚁群算法在全局寻优和收敛速度的方面的优势,搜索最短路径。
受上述文献的启发,本文考虑数据传输率以及节点的信任问题,提出基于蚁群算法的能耗均衡的安全路由ACES。主要工作可归纳如下:①在构建路由时,不仅考虑能耗,还考虑了安全和数据传输率。而现存的多数路由并没有考虑这三个因素;②采用蚁群算法构建路由,利用节点的能量、信任值和位置信息融入蚁群算法中的状态转移函数、信息素启发函数和信息素的更新函数中,使寻径蚂蚁能够在能耗均衡和保证路由安全的基础上,快速建立安全路由;③建立仿真平台,分析ACES路由防御了泛洪攻击、黑洞攻击能力以及能耗和数据传输率。
在二维监测区域ℓ1×ℓ2内随机部署n个节点和一个汇聚节点。所有节点是静止的,不能移动。每个节点具有自己的唯一的ID号,令si表示第i个节点的ID号。令Einit表示节点的初始能量,且所有节点初始能量相同。假定汇聚节点有足够的能量。网络内所有节点均拥有汇聚节点的位置信息。
令Ni表示节点si的一跳邻居节点集,其定义如式(1)所示:
式中,R表示节点的通信半径;d(si,sj)表示节点si与节点sj间的欧式距离。
WSNs中的节点在感测、处理和通信(传输数据和接收数据)环节均消耗节点能量,其中传输和接收数据消耗节点的大部分能量。由于感测和处理数据与路由无关,本文仅考虑节点在通信环节所消耗的能量。
引用文献[8-10]相同的能量消耗模型,如图1所示。节点传输m比特数据所消耗的能量ETx(m,d):
图1 能量消耗模型
式中,Eelec表示发射电路处理1比特数据所消耗的能量;d0表示的阈值,其定义如式(3)所示:
式中,εfs、εamp表示在自由空间信道模型、多径衰落信道模型下功率放大电路处理1比特数据所消耗的能量;
节点接收m比特数据所消耗的能量ERx(m):
WSNs以轮为单位进行操作。在每一轮,节点先感测事件,再将事件数据传输至汇聚节点。对于某一个节点而言,节点可能是感测此事件的源节点,也可能是转发此事件数据的转发节点。在这两种情况中,节点均需要消耗能量。
假定节点传输的数据尺寸固定,每个数据包的大小为m比特。节点si在第r轮时的剩余能量为:
式中,REi(r-1)表示在第r-1轮时节点si的剩余能量;表示节点si在第r轮时所消耗的能量。
由于信道的无线特性,WSNs网络容易遭受多类攻击,如sibyel攻击、黑洞攻击[11]、泛洪攻击、女巫攻击。本文考虑泛洪攻击和黑洞攻击。在泛洪攻击中,攻击节点产生大量的数据,导致其他节点需消耗大量的能量传输数据包;在黑洞攻击中,攻击节点不积极转发数据包,拥有更多的剩余能量。拥有的剩余能量越多,攻击节点越容易成为转发节点。因此,泛洪攻击减少了网络寿命,而黑洞攻击丢失了数据包。
蚁群算法是由Dorigo M根据自然界蚂蚁觅食行为而形成的优化算法[6]。蚂蚁利用分泌信息素构建寻觅食物的最优路径。分泌的信息素越高,被吸引到寻径路径中的蚂蚁数就越多。蚁群算法将蚂蚁划分为两类:寻径蚂蚁和回退蚂蚁。寻径蚂蚁是指从源节点开始寻找至目的节点路径的蚂蚁;回退蚂蚁是依据最优路径,从目的节点返回源节点的蚂蚁,如图2所示[12]。
图2 蚂蚁寻径示意图
蚁群算法主要由状态转移函数、信息素启发函数和信息素更新函数决定。ACES路由利用节点能量、距离以及节点信任值对这些函数进行改进,进而在能耗平衡的基础上,防御泛洪攻击和黑洞攻击。
假定在WSNs内部署n个节点,u个蚂蚁。寻径蚂蚁ゐ从源节点出发,利用状态转移函数计算下一跳节点。寻径蚂蚁ゐ利用自主探索,通过多跳到达汇聚节点。然后,由回退蚂蚁ゐ′沿着具有最大浓度信息素的路径回到源节点,完成一次寻径过程。
假定寻径蚂蚁ゐ目前位于节点si的处。蚂蚁ゐ依据式(6)选择下一跳节点sj:
式中,τij表示节点si与节点sj链路上的信息素;ηij表示节点si与节点sj链路上的信息素启发值函数,其定义下文式(12)所示。
为了更好地均衡能量消耗,在选择下一跳转发节点时,考虑了节点的剩余能量信息。Eij表示了节点si与节点sj的剩余能量差值的百分比,其定义如式(7)所示:
式中,Einit表示网络内所有节点的初始能量;Ej和Ei分别表示节点sj和节点si的剩余能量。
式(6)中r表示蚂蚁ゐ在选择下一跳节点时所产生的0至1的随机数。若产生的随机数r小于阈值r0,则蚂蚁ゐ就从邻居集中选择具有最大[τij]α[ηij]β[Eij]γ值的节点作为下一跳,其中α、β、γ分别表示τij、ηij、Eij的权重系数。
若随机数q大于阈值q0,则寻径蚂蚁ゐ就计算节点sj被选为下一跳节点的概率pij:
观察式(6)可知,信息素启发函数ηij对蚂蚁ゐ所构建的路径有重要的影响。ACES路由将从距离、能量和节点信任度三方面计算ηij值。当蚂蚁ゐ目前位于节点si处时,就计算的ηij值。先计算节点sj的选择度(Selectivity Value of Node,SVN):
DTVj的定义如式(10)所示。从节点sj所接收的数据包数和其所转发的数据包数,计算节点DTVj值:
式中,λ1和λ2为权重系数;下标r表示当前执行的轮数;pr表示节点sj所接收的数据包数;pg表示节点sj所产生的数据包数;pt表示节点sj所传输的数据包数;pmax表示节点sj可以传输的最大数据包数,其定义如式(11)所示:
式中,Psize表示数据包尺寸。本文假定数据包数的尺寸固定,且为m比特。
最后,依据式(12)计算信息素启发函数ηij:
一旦寻径蚂蚁ゐ达到了汇聚节点,就沿着已建立的路径返回,并依据式(13)更新中间节点的信息素浓度:
式中,iter表示当前迭代的次数;ρ表示信息素的挥发系数,且ρ∈(0,1)。Δτij表示节点si与节点sj间信息素的增量,其定义如式(14)所示:
式中,Q为一个常数;τij的值在τmin和τmax之间变化,且τmin>0。在迭代中,如果τij小于τmin,则将当前τij赋予τmin,即τmin←τij;如果τij大于τmax,则将当前τij赋予τmax,即τmax←τij。
首先,先对各项参数进行初始化。将初始信息素浓度设置为零,即τij(0)=0。令Nmax表示最大的迭代次数。用iter表示记录迭代次数。然后,随机部署u个蚂蚁。每只蚂蚁进行迭代。先计算状态转移函数,将满足要求的节点加入节点集中,再依据式(13)对信息素更新。最后,通过判断是否达到迭代次数,若达到迭代次数,就结束,否则就进入下一次迭代环节,具体流程如图3所示。
图3 ACES路由流程
利用MATLAB 2016a软件建立仿真平台,分析ACES路由的性能。在400 m×400 m方形区域内随机部署100至400个节点,一个汇聚节点位于区域中心,其位置为(200,200)。攻击节点比例从5%至30%变化,最大的迭代次数为30,即Nmax=30。具体的仿真参数如表1所示。
表1 仿真参数
为了更好地分析ACES路由的性能,选择DEBR路由和文献[13]提出的EENC路由进行参照,并分析它们的网络寿命和数据包传递率性能。其中网络寿命是指网络内有10%的节点能量消耗殆尽时所运行的轮数。
首先,分析攻击节点数对网络寿命的影响,其中总的节点数为100个(n=100),攻击节点比例从5%至30%变化。
图4给出了DEBR路由,EENC路由和ACES路由的网络寿命随攻击节点数的变化情况。从图4可知,攻击节点数增加,使这三个路由的网络寿命呈下降趋势。此外,相比于DEBR路由和EENC路由,ACES路由的网络寿命得到提升。例如,在攻击节点比例为10%时,DEBR路由和EENC路由的网络寿命约为760轮和865轮。而ACES路由的网络寿命达到915轮。
图4 攻击节点数对网络寿命的影响
图5给出了节点数对网络寿命的影响,其中攻击节点比例为20%,节点数从100至400变化。从图可知,在攻击节点数一定的情况下,节点数的增加有利于网络寿命的增加。原因在于:节点数越多,网络内总体能量越多,若路由能够均衡节点的能耗,就能够延长网络寿命。相比于DEBR路由和EENC路由,ACES路由的网络寿命得到较大提升。这归功于:ACES路由利用蚁群算法构建路由时,平衡了节点能耗,且禁止能耗低的节点参与路由。
图5 节点数对网络寿命的影响
首先分析攻击节点数对数据包传递率的影响,其中总的节点数为100个(n=100),攻击节点比例从5%至30%变化,如图6所示。
图6 攻击节点数对数据包传递率的影响
从图6可知,ACES路由和EENC路由的数据包传递率随攻击节点数的增加而下降,但DEBR路由的数据包传递率随攻击节点数的增加而上升。原因在于:ACES路由和EENC路由均禁止攻击节点参与路由。当攻击节点比例增加,只有更少部分的正常节点靠近源节点。这就使得这些正常节点需要转发或者存储数据包。当无空间存储或者转发数据包时,节点就只能丢弃数据包,最终降低了数据包传递率。
而DEBR路由并没有识别攻击节点的行为。对于所有攻击节点而言,相比丢失数据包行为,产生数据包的行为占主导。这就会使得DEBR路由选择攻击节点作为源节点,其产生了更多数据包,这就提高了数据包传递率。
最后,分析节点数对数据包传递率的影响,其中攻击节点比例为20%,节点数从100至400变化,如图7所示。
图7 节点数对数据包传递率的影响
从图7可知,当攻击节点比例固定的情况下,数据包传递率随节点数的增加而增加。原因在于:节点数越多,拥有更多节点分担传输数据的任务,减少了节点能耗,释放了节点空间,这有利于数据包传递率的提高。此外,相比于DEBR路由和EENC路由,提出的ACES路由的数据包传递率得到较大的提升。在节点数从100至400区间变化,ACES路由的数据包传递率保持在96%以上。
针对WSNs的能量消耗及安全问题,提出基于蚁群算法的能耗均衡的安全路由ACES。ACES路由利用蚁群算法解决复杂问题的能力,建立源节点至汇聚节点路径。通过利用节点的剩余能量,距离以及信任值对蚁群算法的信息素更新函数、状态转移以及信息素的启发算法进行优化,使信任值低的节点,能耗低的节点不参与路由,提高路由的稳定性及安全性。仿真结果表明,提出的ACES路由延长了网络寿命,提高了数据包传递率。