无线传感器网络节点自主决策式路由协议的制作方法

文档序号:15648535发布日期:2018-10-12 22:52阅读:250来源:国知局

本发明涉及一种无线传感器网络节点自主决策式路由协议,属于无线传感器网络技术领域。



背景技术:

无线传感器网络(wirelesssensornetwork,wsn)是由大量多功能、低功耗、廉价的传感器节点组成的智能专用网络系统,节点间采用自组织的无线通信方式相互传递信息,协同完成特定功能。通常传感器节点在能量、计算能力、存储容量和通信带宽等各方面的资源都非常有限,如何设置有效的能量均衡策略,控制节点的能量消耗成为无线传感器网络路由协议研究的重点。

在现有的路由协议中,leach(lowenergyadaptiveclusteringhierarchy,leach)协议是典型的分簇路由协议。但其分簇算法会造成能量不均衡问题,并且簇头节点和sink节点直接通信的方式加快簇头能量的消耗,限制了网络的规模。leach_c协议改进了leach协议中簇首个数不稳定,位置分布不均匀的问题。但需要网络的全局信息且需要集中计算,协议开销大,可扩展性差。

针对均匀分簇存在簇间能耗不均衡的问题,一种非均匀分簇和簇间多跳路由有机结合的路由协议(energy-efficientunevenclustering,eeuc)通过使用不同的竞争范围构造大小非均匀的簇,缓解了簇首间的能量消耗不均衡现象,但无法从整体上实现节点间的能量平衡。一种能量均衡的无线传感器网络非均匀分簇路由协议(distributedenergy-balancedunequalclusteringrouting,debuc)采用竞争方式选举簇首,根据邻居簇首的通信代价选择中继节点作为下一跳。虽然平衡了节点的簇内通信代价和簇间通信代价,但会使远离基站的簇规模过大造成网络节点能耗不均。

一种基于非均匀分簇的无线传感器网络分层路由协议(hierarchicalroutingprotocolbasedonnon-uniformclustering,hrpnc)根据每层的面积和节点个数控制节点的竞争半径,但未考虑节点的能量及密集度等因素,影响了簇头选择的合理性。一种基于非均等分区的非均匀分簇路由协议(unequalpartitionareaunevenclusteringroutingprotocol,uauc)对网络区域进行非均等分区,根据剩余能量从各区内选择簇首,按照就近原则跨区成簇。但簇首的轮换受到分区的限制,使各区节点能耗不均。



技术实现要素:

为了解决上述存在的技术问题,本发明提供一种无线传感器网络节点自主决策式路由协议(nodeautonomousdecisionroutingprotocol,nad)。该协议根据虚拟坐标参量确定下一跳;通过自组织通信构建路径树;利用局部能量均衡策略优化路径树。均衡节点能耗,延长网络生命周期。

本发明的目的是通过下述技术方案实现的:

无线传感器网络节点自主决策式路由协议,其特征在于,包括如下步骤:

步骤1:网络初始化:sink节点向所有传感器节点广播msg_adv消息启动网络运行;所有传感器节点接收sink节点广播的msg_adv消息,根据rssi接收信号强度计算距sink节点距离;

步骤2:邻居发现:所有节点以初始通信半径向其邻节点广播msg_hello消息进行邻居发现,该消息包含节点自身距sink节点的距离;所有传感器节点接收其邻居节点广播的msg_hello消息,根据rssi接收信号强度计算距邻居节点的距离,创建邻居节点信息表;

步骤3:建立虚拟坐标模型并选择下一跳:节点首先确定自己是否可以向sink节点直接发送数据;如果节点的前向邻域内含有sink节点,则节点采用单跳的方式向sink节点发送数据;如果节点的前向邻域内没有sink节点,建立虚拟坐标模型,计算出邻节点的虚拟坐标参量并选择下一跳;

步骤4:建立连接:节点通过广播rts/cts控制消息与下一跳建立连接;利用cts消息更新邻居节点信息表中的节点剩余能量信息;

步骤5:数据通信:节点采集数据并封装到data包中,无线通信的方式发送给下一跳节点;根据ack消息确认数据传输状态;

步骤6:数据融合。路径树中的分枝节点对来自多个邻节点的数据包进行数据融合处理。减少冗余数据以提高数据传输效率。

步骤7:剩余能量检查:节点完成一轮数据传输后检查自身剩余能量是否充足;如果节点剩余能量不足,则执行步骤9;如果节点剩余能量充足,则检查邻居节点信息表,将剩余能量不足的节点从表中删除掉并执行步骤8;

步骤8:能量均衡控制:sink节点一跳邻域外的节点根据局部能量均衡策略选择下一跳;末端节点进一步结合当前自身状态选择下一跳。如果末端节点当前不是分枝节点,但却选择其初始通信半径邻域外的前向节点作为下一跳,则向其初始通信半径内的邻节点广播msg_change消息宣布建立分枝。接收到msg_change消息的节点将位于自己后向邻域内的末端节点作为下一跳。如果末端节点当前是分枝节点,但却选择其初始通信半径邻域内的节点作为下一跳,则向其初始通信半径内的节点广播msg_cancel消息取消分枝。接收到msg_cancel消息的节点重新选择自身前向邻域内的邻节点作为下一跳;节点确定下一跳后,转至步骤4;

步骤9:退出网络:剩余能量不足的节点不再发送数据包。如果接收到rts请求消息,则发送附带能量信息的cts控制消息,使未失效节点及时更新邻居节点信息表。

步骤3中所述建立虚拟坐标模型的过程如下:

(1)节点邻域空间的划分,如图1,设点a表示sink节点,点ni表示传感器节点;以点ni为圆心,r0为半径作圆ni,其中r0为传感器节点的初始通信半径;以点a为圆心,ri为半径作圆a,其中ri为传感器节点ni距sink节点的距离,ri=d(ni,sink));圆ni与圆a的相交区域,即为节点ni的前向邻域,圆ni内与圆a不相交的区域,即为节点ni的后向邻域;

(2)根据节点ni的邻域空间建立节点ni的虚拟坐标模型。作一条连接点a,即sink节点,与点ni的直线li;设直线li为节点ni的虚拟坐标轴,sink节点方向为虚拟坐标轴li的正向;直线li与圆ni相交于圆a内一点oi,设点oi为节点ni的虚拟坐标轴上的坐标原点;

(3)设节点nx为节点ni的前向邻域内的某一邻节点,即不含弧bnic上的点,称节点nx为节点ni的前向邻节点;将节点nx在节点ni的虚拟坐标模型中的坐标用公式(4)表示。

posi(nx)=(ρix,hix)(4)

其中,posi(nx)表示邻节点nx在节点ni的前向邻域内的虚拟坐标,ρix表示节点nx到节点ni的虚拟坐标原点oi的距离,ρix=d(nx,oi),hix表示节点nx到节点ni的虚拟坐标轴li的距离,hix=d(nx,li)。节点nx的坐标参量ρix可以根据余弦定理计算求得,如公式(5);

其中cosθix为三角形ninxa中∠nxnia的余弦值,cosθix的值可以根据公式(6)计算求得;

节点nx的第二个坐标参量hix可以根据三角形面积公式计算求得,如公式(7)。

其中sδix为三角形ninxa的面积,sδix的值可以根据海伦公式计算求得,

如公式(8);

其中pix为三角形ninxa的周长的一半,如公式(9);

对于任意节点ni和节点ni的前向邻域内的节点nx(不含弧bnic上的点),都有不等式d(ni,sink)>d(nx,sink)成立。节点ni从其前向邻域内选择前向邻节点作为下一跳,可以避免产生路由环路。

设线段nioi的长度为r,其中r=r0,r0是节点ni的初始通信半径,将线段nioi分别分成n段和n+1段;根据leach协议所采用的能耗模型可以推导出公式(10)和(11);

由于射频能耗系数eelec远大于功率放大系数efs,对于同一段直线路径,增加路段将导致eelec的倍数增大和消耗更多能量;选择距离最近的邻节点作下一跳并不是最合适的选择,而选择距离最远且最靠近sink节点的邻节点作为下一跳则有助于避免在局部路径增加路段,减少能耗。在节点ni的前向邻域中,点oi距sink节点的距离最短,经点oi所形成的路径最靠近直线li。网络初始时选择贴近直线的邻节点作下一跳有助于建立快速向sink节点收敛的路径。对于任意节点ni的虚拟坐标模型而言,虚拟坐标原点oi的位置是节点ni的前向邻域内下一跳节点的最优位置;坐标轴li上线段nioi内的位置是节点ni的前向邻域内下一跳节点的次优位置。

步骤8中所述局部能量均衡策略具体为:

完成网络初始化和首轮数据传输后,节点通过监听邻节点cts控制信息捎带的剩余能量信息,对自身邻居节点信息表进行更新;

若节点的当前下一跳节点为前向邻节点中剩余能量最小的节点,简称局部剩余能量最小节点);则节点从前向邻域内重新选择剩余能量最大的节点作为下一跳,简称局部剩余能量最大节点;

对于网络边缘上一些没有后向邻节点的节点,这些节点通常是路径树的末端节点,简称末端节点;如果末端节点按照原始路径树发送数据,将永远不会接收和处理任何其他节点的数据;

末端节点m在完成一轮数据传输后,通过cts控制消息更新邻节点剩余能量信息;如果末端节点m的剩余能量大于节点m的所有邻节点,则节点m增大功率,扩大通信半径,要求扩大后的通信半径依然小于多路径衰减模型中的限制半径d0;搜索满足限制条件且距离最近的非初始通信半径邻域内的前向节点;该前向节点n需满足以下限制条件,以确保能够建立数据通信链路,且不产生路由环路;

1)节点n的剩余能量充足,可增大功率与m进行通信;

2)节点n距sink节点的距离比节点m小;

3)节点n的后向邻域内不含任何末端节点;

4)节点n的前向邻域内不含任何末端节点的前向邻节点;

其中,末端节点选择出合适的前向节点后将其作为下一跳,并向其初始通信半径邻域内的前向邻节点广播分枝消息宣布成为分枝节点;

接收到分枝消息的节点与邻域内的末端节点建立连接,并将数据发送给末端节点;

末端节点接收到数据后,对数据进行融合处理,并将融合后的数据发送给扩大通信半径后所建立连接的前向节点;当作为分枝节点的末端节点检测到其初始通信半径邻域内的所有邻节点的剩余能量都比自己多时宣布取消分枝;末端节点继续从自身初始通信半径的前向邻域内选择下一跳,末端节点的邻节点也都从自身前向邻域内的前向邻节点中选择下一跳,准备新一轮的数据传输。

本发明的有益效果:本发明采用上述方案,针对无线传感器网络节点能量消耗不均衡的问题,对节点的邻域空间进行划分;采用提出的虚拟坐标模型,根据邻节点的虚拟坐标参量选择下一跳,加快路径向sink节点的收敛速度;利用分布式计算和自组织通信构建一棵以sink节点为根的路径树;采用提出的局部能量均衡策略,根据节点的剩余能量信息优化路径树。在omnet++平台下进行了仿真,与debuc协议和uauc协议相比,nad协议在首个节点死亡的时间上分别延长了71.8%和66.5%;在节点的平均剩余能量上分别提高了45.8%和27.9%;在节点的剩余能量标准差上分别提高了51.2%和34.2%。仿真结果表明:nad协议能够有效延长网络生命周期,均衡节点能耗。

附图说明

图1为节点的邻域空间划分示意图。

图2为节点的虚拟坐标模型示意图。

图3为网络中节点对路径树进行优化的示意图。

图4为路由协议在节点存活率上的对比图。

图5为路由协议在节点平均剩余能量上的对比图。

图6为路由协议在节点剩余能量标准差上的对比图。

图7为路由协议的实现流程图。

具体实施方式

本发明提供一种无线传感器网络节点自主决策式路由协议(nodeautonomousdecisionroutingprotocol,nad),该协议包括如下步骤:

步骤1:网络初始化:sink节点向所有传感器节点广播msg_adv消息启动网络运行;所有传感器节点接收sink节点广播的msg_adv消息,根据rssi接收信号强度计算距sink节点距离;

步骤2:邻居发现:所有节点以初始通信半径向其邻节点广播msg_hello消息进行邻居发现,该消息包含节点自身距sink节点的距离;所有传感器节点接收其邻居节点广播的msg_hello消息,根据rssi接收信号强度计算距邻居节点的距离,创建邻居节点信息表;

步骤3:建立虚拟坐标模型并选择下一跳:节点首先确定自己是否可以向sink节点直接发送数据;如果节点的前向邻域内含有sink节点,则节点采用单跳的方式向sink节点发送数据;如果节点的前向邻域内没有sink节点,建立虚拟坐标模型,计算出邻节点的虚拟坐标参量并选择下一跳;

步骤4:建立连接:节点通过广播rts/cts控制消息与下一跳建立连接;利用cts消息更新邻居节点信息表中的节点剩余能量信息;

步骤5:数据通信:节点采集数据并封装到data包中,无线通信的方式发送给下一跳节点;根据ack消息确认数据传输状态;

步骤6:数据融合。路径树中的分枝节点对来自多个邻节点的数据包进行数据融合处理。减少冗余数据以提高数据传输效率。

步骤7:剩余能量检查:节点完成一轮数据传输后检查自身剩余能量是否充足;如果节点剩余能量不足,则执行步骤9;如果节点剩余能量充足,则检查邻居节点信息表,将剩余能量不足的节点从表中删除掉并执行步骤8;

步骤8:能量均衡控制:sink节点一跳邻域外的节点根据局部能量均衡策略选择下一跳;末端节点进一步结合当前自身状态选择下一跳。如果末端节点当前不是分枝节点,但却选择其初始通信半径邻域外的前向节点作为下一跳,则向其初始通信半径内的邻节点广播msg_change消息宣布建立分枝。接收到msg_change消息的节点将位于自己后向邻域内的末端节点作为下一跳。如果末端节点当前是分枝节点,但却选择其初始通信半径邻域内的节点作为下一跳,则向其初始通信半径内的节点广播msg_cancel消息取消分枝。接收到msg_cancel消息的节点重新选择自身前向邻域内的邻节点作为下一跳;节点确定下一跳后,转至步骤4;

步骤9:退出网络:剩余能量不足的节点不再发送数据包。如果接收到rts请求消息,则发送附带能量信息的cts控制消息,使未失效节点及时更新邻居节点信息表。

本协议基于的系统模型、路由协议、相关策略、具体应用流程及验证过程详述如下:

网络模型

本文协议适于周期性采集数据的无线传感器网络应用。网络模型中的传感器节点随机分布在监测区域内,sink节点位置固定、能量充足。传感器节点性质如下:

节点具有全网唯一的id编号。

节点部署后位置固定,能量有限。

节点结构相同,初始通信半径相同。

3)节点通信功率可调,可根据距离调整发射功率。

4)节点采用rssi近似测距。

能耗模型

本文采用与leach协议相同的无线通信能量消耗模型。节点发送数据的能耗为发射电路损耗与功率放大电路损耗之和,如式(1)所示。

其中,k为节点发送信息的数据量;d为发送距离;eelec为射频能耗系数;efs和emp为不同信道传播模型下的功率放大系数;d0为多路径衰减模型中的限制半径,其计算公式如式(2)所示。

当传输距离大于d0时,路径消耗会相当大,因此传输距离一般不超过d0。节点接收数据的能耗,如式(3)所示。

erx(k)=keelec(3)

nad路由协议

节点部署完毕后,sink节点广播信息,启动所有传感器节点的运行。每个节点根据接收到的信号强度计算距sink节点距离。节点间相互发送hello消息并根据rssi计算相互间距离,生成邻居节点信息表。邻居节点信息表中记录了邻节点距sink节点距离、节点距邻节点的距离和邻节点的剩余能量信息。

由于节点位置和邻节点个数不尽相同,采用固定路径会导致节点能耗不均。节点必须周期性调整路径以平衡节点能耗。因此,nad协议采用轮循机制,每一轮包括三个阶段:选择下一跳、建立连接构建路径树和数据传输。网络初始时节点能量都相同,首轮第一阶段节点根据虚拟坐标模型中的坐标参量选择下一跳。之后每轮的第一阶段节点根据邻居节点剩余能量信息,采用局部能量均衡策略选择下一跳。

虚拟坐标模型

节点邻域空间的划分,如图1所示。设点a表示sink节点,点ni表示传感器节点。以点ni为圆心,r0为半径作圆ni(r0为传感器节点的初始通信半径)。以点a为圆心,ri为半径作圆a(ri为传感器节点ni距sink节点的距离,ri=d(ni,sink))。圆ni与圆a的相交区域,即为节点ni的前向邻域(如图1中的阴影区域),圆ni内与圆a不相交的区域,即为节点ni的后向邻域。

根据节点ni的邻域空间建立节点ni的虚拟坐标模型,如图2所示。作一条连接点a(sink节点)与点ni的直线li。设直线li为节点ni的虚拟坐标轴,sink节点方向为虚拟坐标轴li的正向。直线li与圆ni相交于圆a内一点oi,设点oi为节点ni的虚拟坐标轴上的坐标原点。

设节点nx为节点ni的前向邻域内的某一邻节点(不含弧bnic上的点),称节点nx为节点ni的前向邻节点。将节点nx在节点ni的虚拟坐标模型中的坐标用公式(4)表示。

posi(nx)=(ρix,hix)(4)

其中,posi(nx)表示邻节点nx在节点ni的前向邻域内的虚拟坐标,ρix表示节点nx到节点ni的虚拟坐标原点oi的距离,ρix=d(nx,oi),hix表示节点nx到节点ni的虚拟坐标轴li的距离,hix=d(nx,li)。节点nx的坐标参量ρix可以根据余弦定理计算求得,如公式(5)。

其中cosθix为三角形ninxa中∠nxnia的余弦值,cosθix的值可以根据公式(6)计算求得。

节点nx的第二个坐标参量hix可以根据三角形面积公式计算求得,如公式(7)。

其中sδix为三角形ninxa的面积,sδix的值可以根据海伦公式计算求得,如公式(8)。

其中pix为三角形ninxa的周长的一半,如公式(9)。

由图2中所建立的虚拟坐标模型可知,对于任意节点ni和节点ni的前向邻域内的节点nx(不含弧bnic上的点),都有不等式d(ni,sink)>d(nx,sink)成立。节点ni从其前向邻域内选择前向邻节点作为下一跳,可以避免产生路由环路。

设线段nioi的长度为r(r=r0,r0是节点ni的初始通信半径),将线段nioi分别分成n段和n+1段。根据公式(1)可以推导出公式(10)和(11)。

前文所引用的能耗模型中,射频能耗系数eelec远大于功率放大系数efs,对于同一段直线路径,增加路段将导致eelec的倍数增大和消耗更多能量。选择距离最近的邻节点作下一跳并不是最合适的选择,而选择距离最远且最靠近sink节点的邻节点作为下一跳则有助于避免在局部路径增加路段,减少能耗。在节点ni的前向邻域中,点oi距sink节点的距离最短,经点oi所形成的路径最靠近直线li。网络初始时选择贴近直线的邻节点作下一跳有助于建立快速向sink节点收敛的路径。对于任意节点ni的虚拟坐标模型而言,虚拟坐标原点oi的位置是节点ni的前向邻域内下一跳节点的最优位置;坐标轴li上线段nioi内的位置是节点ni的前向邻域内下一跳节点的次优位置。

首轮第一阶段,节点ni根据其前向邻节点nx的虚拟坐标参量ρix、hix和nx的节点编号idx确定其下一跳节点nexthop(ni)。节点ni首先从前向邻节点中选择ρix最小的邻节点作为下一跳;如果存在多个邻节点的ρix相同,则从ρix相同的邻节点中选择hix最小的邻节点作为下一跳;如果存在多个邻节点的hix相同,则从hix相同的邻节点中选择idx编号小的邻节点作为下一跳。

局部能量均衡策略

所有节点从第二轮开始根据邻节点剩余能量信息对路径进行调整。完成网络初始化和首轮数据传输后,节点通过监听邻节点cts控制信息捎带的剩余能量信息,对自身邻居节点信息表进行更新。若节点的当前下一跳节点为前向邻节点中剩余能量最小的节点(简称局部剩余能量最小节点),则节点从前向邻域内重新选择剩余能量最大的节点作为下一跳(简称局部剩余能量最大节点)。

对于网络边缘上一些没有后向邻节点的节点,这些节点通常是路径树的末端节点(简称末端节点,如图3(a)中的节点m)。如果末端节点按照原始路径树发送数据,将永远不会接收和处理任何其他节点的数据。这将导致网络的能耗不均,加大节点之间的能量差。为了进一步均衡网络能耗,现对原始路径树进行优化,如图3(b)所示。末端节点m在完成一轮数据传输后,通过cts控制消息更新邻节点剩余能量信息。如果末端节点m的剩余能量大于节点m的所有邻节点,则节点m增大功率,扩大通信半径(要求扩大后的通信半径依然小于多路径衰减模型中的限制半径d0)。搜索满足限制条件且距离最近的非初始通信半径邻域内的前向节点(如图3(b)中的节点n)。该前向节点n需满足以下限制条件,以确保能够建立数据通信链路,且不产生路由环路。

1)节点n的剩余能量充足,可增大功率与m进行通信。

2)节点n距sink节点的距离比节点m小。

3)节点n的后向邻域内不含任何末端节点。

4)节点n的前向邻域内不含任何末端节点的前向邻节点。

末端节点选择出合适的前向节点后将其作为下一跳,并向其初始通信半径邻域内的前向邻节点广播分枝消息宣布成为分枝节点。接收到分枝消息的节点与邻域内的末端节点建立连接,并将数据发送给末端节点。末端节点接收到数据后,对数据进行融合处理,并将融合后的数据发送给扩大通信半径后所建立连接的前向节点。当作为分枝节点的末端节点检测到其初始通信半径邻域内的所有邻节点的剩余能量都比自己多时宣布取消分枝。末端节点继续从自身初始通信半径的前向邻域内选择下一跳,末端节点的邻节点也都从自身前向邻域内的前向邻节点中选择下一跳,准备新一轮的数据传输。

数据传输

位于sink节点一跳邻域内的所有节点采用单跳的方式向sink节点发送数据。sink节点一跳邻域外的所有节点采用多跳的方式将数据发送至sink节点。

任意节点向下一跳节点发送data数据包,下一跳节点接收到data数据包对数据进行融合处理并反馈ack确认消息,节点接收到ack确认消息后即完成一轮数据传输。下一跳节点可能会同时接收到多个节点的数据包,这些数据包之间往往存在大量的冗余数据。如果节点将这些数据包直接转发给下一跳,会降低通信效率、浪费节点能量。节点有必要对所接收到的多个节点的数据进行数据融合处理,再将融合后的数据发送给下一跳节点。

路由空洞

随机投放部署节点时需尽量保证网络初始时的基本覆盖率和连通性。网络形成时所有节点都以初始通信半径搜索前向邻节点,如果节点发现其前向邻域内没有邻节点,则增大功率和扩大通信半径以搜索距离最近的前向节点,避免网络初始时产生空洞节点或孤立节点。

网络运行后期,低于最低能量阈值的节点进入失效状态。此时失效节点的后向邻节点将有可能成为空洞节点或孤立节点。失效节点利用剩余能量响应邻节点的控制信息,维持网络的链路调整。未失效节点将失效的邻节点从邻居信息表中删除掉。如果未失效节点的邻居信息表中还有前向邻节点,则从中选择剩余能量最多的前向邻节点作为下一跳;如果邻居信息表中没有前向邻节点,则未失效节点成为空洞节点;如果邻居信息表为空,则未失效节点成为孤立节点。成为空洞节点或孤立节点的未失效节点需增大发射功率和扩大通信半径,搜索其通信范围内的最近前向节点,将其作为下一跳继续发送数据。

本协议模型的架构及应用过程通过仿真实验进行相关验证,具体流程为:

使用omnet++5.2仿真环境对nad协议的性能进行验证。将nad协议与debuc协议和uauc协议在网络生命周期和节点能量均衡性这两个方面进行了比较。

1、实验参数设置

选择100个节点随机分布在100×100m2的区域内,sink节点位于矩形区域底边的中间位置。节点初始能量为0.5j,最低能量阈值为0.25j。能耗模型中各参数的取值分别为:efs=10pj/(bit·m2),emp=0.0013pj/(bit·m4),eelec=50nj/bit,d0=87.7m。数据包大小为4000bit,控制包大小为200bit。节点初始通信半径r0=20m。通信频率为2.4ghz,采用rts/cts/data/ack通信方式进行无线通信。

2、网络生命周期

把从网络初始运行时到网络中首个节点失效时所经历的时间段定义为网络的生命周期。本文通过统计节点的存活率对三种路由协议的网络生命周期进行了比较。采用的统计公式如式(12)。

lifenet(t)=[nrest(t)/ninital]·100%(12)

其中lifenet(t)表示网络net在仿真时间为t时的节点存活率;nrest(t)表示仿真时间为t时网络中的剩余节点个数;ninital表示网络初始时的节点个数。

三种路由协议在节点存活率上的对比图见图4。从图中可见,uauc协议和debuc协议的网络生命周期都小于nad协议。这是由于nad协议采用局部能量均衡策略,利用节点自身通信半径内的局部剩余能量信息,以局部邻域内的剩余能量最值为判定标准来调整数据传输路径和优化路径树,从而减小节点之间的剩余能量差、均衡节点能耗和延长网络生命周期。而uauc协议在选择簇首时是按照分区来计算节点的平均剩余能量,在成簇时又采用就近原则选择簇首。节点跨区成簇导致簇首计算的节点剩余能量平均值与区域内节点的实际剩余能量平均值存在差异,影响了簇首选择的合理性。而debuc协议中用来选择邻居簇首的最小代价函数无法满足簇首节点间建立路径的实际需要,导致成簇半径过大的远端簇首能耗增大,使节点能耗不均衡,减少网络的生命周期。因此与其他两种路由协议相比,本文的nad协议通过局部能量均衡策略有效地降低了节点的能量消耗,延长了网络生命周期。

3、节点的平均剩余能量

节点平均剩余能量的计算公式如式(13)。

其中表示仿真时间为t时网络中所有节点的平均剩余能量。ei(t)表示仿真时间为t时节点i的剩余能量。n代表网络初始时的节点个数。

三种协议节点平均剩余能量的对比图见图5。从图5可见,与uauc协议和debuc协议相比,nad协议中节点的平均剩余能量较高。debuc协议没有对簇间数据进行融合处理而是直接转发,簇首能量消耗快。uauc协议中各区域内的簇首需要接收并处理多个节点的数据,簇首能耗大。nad协议利用路径树中的分枝节点进行多级数据融合处理,将处理数据的任务分散给更多的节点,均衡网络能耗。

4、节点的剩余能量标准差

节点剩余能量平均值的计算公式如式(14)。

其中stdnet(t)表示网络net在仿真时间为t时的节点剩余能量标准差,n代表网络的初始节点个数,ei(t)表示仿真时间为t时节点i的剩余能量;表示仿真时间为t时网络中所有节点的平均剩余能量。

三种协议节点的剩余能量标准差对比图见图6。从图6可见,uauc协议和debuc协议的节点剩余能量标准差均大于nad协议。这是因为nad协议利用路径树中的分枝节点进行多级数据融合处理,减少了由于直接转发数据包所造成能量消耗。同时利用网络末端节点的特殊性,采用局部能量均衡策略调整路径树,进一步缩小节点间的剩余能量差,均衡节点能耗。而uauc协议按分区选簇首,又按照就近原则成簇,簇成员可能来自不同分区。簇首在簇内轮换会造成某些分区内无簇首,使簇首之间相隔一个分区建立通信,增大簇首能耗,使节点能耗不均。debuc协议中不同的竞争半径产生不同大小的簇,竞争半径大的簇首簇内成员多,接收数据多,能量消耗快,容易造成网络中节点的能耗不均。因此,在网络的生命周期内,nad协议在网络节点能量均衡性上优于其他两种路由协议。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1