摘 要:为了研究基于ZigBee 的无线传感器网络路由协议的性能优劣,在路由设计中有选择地改进。介绍了ZigBee无线传感器网络结构,分析了AODV、LEACH 和ZigBee 路由三种路由协议的基本原理,并使用NS2 模拟仿真软件,在其他外部条件相同的情况下,分别对ZigBee 路由和AODV 进行模拟仿真,以能量消耗和网络生命周期为衡量网络性能的指标,仿真结果表明ZigBee 路由在能耗上高于AODV,算法在节能上有待改进。指出了ZigBee 路由算法在节能上的改进方法。
0 引言
无线传感器网络(WSN, Wireless Sensor Network)采用微小型的传感器节点获取信息,节点之间具有自动组网和协同工作能力,网络内部采用无线通信方式,采集和处理网络中的信息,发送给观察者。目前WSN 使用的无线通讯技术过于复杂,非常耗电,成本很高。而ZigBee是一种短距离、低成本、低功耗、低复杂度的无线网络技术,在无线传感器网络应用领域极具发展潜力。
路由协议是无线传感器网络中一个关键技术,其优劣直接影响着网络的性能。这里的工作就是在分析研究了多种应用在WSN 上的路由协议之后,对比分析ZigBee 路由算法,分析得出各自优劣及其适用的环境,为路由协议设计人员提供参考。
1 WSN中路由算法研究
1.1 AODV 协议
AODV是逐跳的按需距离向量路由协议。当源节点没有已知的路由到达目的节点时,广播一个请求消息(RREQ),每个接收到RREQ 的中间节点记录下到源节点的逆向路径(以便为之后的应答消息(RREP)提供路由),然后重新广播RREQ.当RREQ 到达目的节点时,目的节点利用记录在报文中的逆向路径发送RREP.如果中间节点知道的指向目的节点的路由,它就代替目的节点发送RREP.每个接收到RREP 的节点以相同的方式记录下本节点到目的节点的路径,以便为将来数据分组报文的到来提供路由服务。
1.2 LEACH 路由协议
LEACH[5]是MIT 的Heinzelman 等人提出的基于簇的数据融合的层次型路由算法。该算法以轮为单位计算网络周期。每一轮从建立阶段开始,即节点自组织成一个一个的簇,然后进入稳定阶段,即成员节点将其数据发送给其簇首节点,然后簇首节点将所收成员的数据进行数据融合,发送给基站。
2 ZigBee无线传感器网络
ZigBee 网络支持两种类型的物理设备:全功能设备节点(FFD)和半功能设备节点(RFD)。FFD 节点通常作为网络协调器或路由,能和任何设备通信;RFD 节点只能作为网络的终端节点,负责本地信息收集和数据处理,只能和FFD 节点通信。ZigBee 网络支持三种节点类型:主节点、路由节点以及终端节点。主节点即协调器,必须由FFD 节点构成,它是网络的,负责建立一个网络并下发地址。路由节点也是FFD 节点,搜索网络并加入,给加入路由的终端节点分配地址。终端节点可以是FFD 节点或者RFD 节点。ZigBee 的网络拓扑结构有三种:星型网络、树簇型网络、网型网络,如图1 所示。
图1 ZigBee 三种网络拓扑结构
另外,每个节点都维护有一个目的序列号用于判断更新路由。节点广播HELLO 消息来维护本地邻居表及其一跳内的链路。
2.1 ZigBee 中的路由算法
ZigBee 网络常见的路由算法有Cluster-Tree、AODVjr 和Cluster-Tree+AODVjr 等。ZigBee 路由通常采用Cluster-Tree与AODVjr 相结合的路由算法。
2.1.1 Cluster-Tree
Cluster-Tree 是一种逻辑链路和网络层协议,使用链路状态数据包建立一个简单的簇网络或是一个潜在的更大型的簇树网络。该网络具有自组织能力,并支持网络冗余,有一定的错误冗余度和自修复能力。网络中的节点形成父子关系,当有节点加入网络时,父节点将为其分配地址。分配机制如下:根据式(1),父节点为节点分配地址,其中C 为父节点包容的节点数,R 为参与路由的子节点数,L 为网络的深度,d 为当前网络深度,A 为节点地址。为第n个RFD 分地址为式(2);为第n 个FFD 分配地址为式(3)。
网络路径上的下一跳节点地址分配如下:对于地址为A的节点,如果满足式(4),则地址为D 的节点为该节点后代:
如果满足式(5),则下一跳为终端后代,地址为N = D ,否则,地址为式(6)。
2.1.2 AODVjr
AODVjr 具有AODV 的主要功能,但考虑到降低成本、节能、使用的方便性等因素,对AODV 作了一些简化。①没有使用目的节点序列号,并规定只有目的节点可以回复RREP;②不存在"先驱节点列表",简化了路由表结构;③节点不发送HELLO 分组,仅根据收到的分组或者MAC 层提供的信息更新邻居节点列表;④RERR 消息格式仅包含一个不可到达的目的节点。
另外,每个节点都维护有一个目的序列号用于判断更新路由。节点广播HELLO 消息来维护本地邻居表及其一跳内的链路。
3 路由仿真
文中基于NS-2.34 模拟仿真软件对路由协议进行仿真。
NS即网络模拟,是面向对象的、离散事件驱动的网络环境模拟器,可以完整地模拟整个网络环境。主要用于解决网络研究方面的问题。
在NS2 下分别仿真ZigBee 路由和AODV 协议,以比较两者的实现效果。采用101 个节点随机分布在(100m×100m)的空间中, 消息长度设置为500 byte,运行时间200 s.每个节点的初始能量相同,均为2 J.rxPower 和txPower 都设为0.3 W.通讯距离设为25 m,消息发送间隔设为0.05 s,以802.15.4 为底层。ZigBee 簇树数量为:set Cm 4;set Lm 7.源节点(84.124781416787201, 85.201271942444734),目的节点(0,0)。
在仿真运行到151 s 时,ZigBee 和AODV 中各节点的剩余能量如图2 所示,除了一部分节点的剩余能量大致相同外,大部分AODV 节点的剩余能量比ZigBee 节点多,即ZigBee能量消耗相比AODV 较多。这表明采用Cluster-Tree+AODVjr的ZigBee 路由算法在能量损耗上,并不比AODV 节省,反而消耗更多能量。
图2 节点剩余能量
图3 显示,Zigbee 节点在151 s 之后有71 个存活节点;AODV 节点在151 s 之后有80 个存活节点,在181 s 之后仍有70 个存活节点。Zigbee 在151 s 之后,网络活动停止,而AODV 在181 s 之后网络活动才停止。可知,AODV 网络在151 s 之后发现第二条路径,继续传输数据,使网络存活时间延长。
图3 网络存活节点
4 结语
由于AODVjr 主要适用于动态网络中发现的转发路径,但在网络拓扑变化很慢的无线传感器网络中,AODVjr就显得太过复杂,导致Zigbee 路由能耗过大。而LEACH 协议实现了所有节点间能量均匀分布的分群自适应算法和群首位置循环算法,节省了通信资源,降低了节点能耗,大大提高系统寿命。因此,以LEACH 为参照修改Zigbee 路由协议,将更有利于延长网络的生存时间。
仿真结果表明,采用Cluster-Tree+AODVjr 的Zigbee 路由,没有考虑到节点在通信和路由处理过程中能量的变化,能量损耗超过了AODV,限制了网络的生存时间。因此,Zigbee 路由算法应更注重节能设计。
[1]. 100m datasheet https://www.dzsc.com/datasheet/100m_2509927.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。