文档库 最新最全的文档下载
当前位置:文档库 › ZigBee路由算法的研究和改进

ZigBee路由算法的研究和改进

ZigBee路由算法的研究和改进

ZigBee技术得益于其距离较短、复杂度较低、能耗较低和成本较低的优势,不仅适用于无线传感器网络领域,在军事、环境监控、医疗健康、智能家居和工业应用等领域也有着广泛的应用。

ZigBee协议基于IEEE 802.15.4定义的物理层(PHY)和媒体介质访问层(MAC)制定,之后ZigBee联盟在此基础上对传输层(TL)、网络层(NWK)和应用层(APL)进行了完善。其中,网络层主要负责网络的组件、发现新路由及维护已有路由,路由算法是网络层的核心。

1 ZigBee网络概述

1.1 ZigBee的网络拓扑结构

ZigBee网络通常包括三种网络拓扑结构:星型拓扑结构、簇树型拓扑结构和网状型拓扑结构。其设置可根据不同的实际需求进行变化。常见拓扑结构如图1所示。

1.2 ZigBee网络配置

ZigBee联盟和IEEE 802.15.4对网络中设备的定义有所区别。根据功能的不同,IEEE 802.15.4将网络中的设备分为全功能设备(FFD)和精简功能设备(RFD)。其中,FFD可担任网络协调器,也能用作终端设备,与RFD 或其他FFD通信。而RFD仅支持星型结构,只能与FFD通信。ZigBee联盟根据设备功能的区别划分了协调器、路由器和终端设备等。协调器和路由器均为FFD节点,通常网络最外围的终端节点由RFD来充当。

1.3 ZigBee网络地址分配

ZigBee采用分布式寻址方式分配网络地址。当网络中的一个节点同意外部节点通过自己加入该网络时,两个节点建立父子关系。此后,父节点会为该新入节点分配独一无二的网络地址。整个网络结构的地址分配涉及三个参数:Lm(网络的最大深度),Cm(每个父节点

最多拥有的子节点数量),Rm(子节点最多可作为路由器节点的个数)。上述3个参数均由协调器决定。

当网络中的父节点为子节点分配地址时,若d表示父节点的深度,则Cskip(d)地址偏移量可分配地址段的大小为:

首先将协调器深度设为0,则其余节点按照排列顺序依次将深度加1。有路由能力的子节点设备分配地址用Cskip(d)表示,依据式(2)进行地址分配,依据式(3)为终端设备进行地址分配:

2 ZigBee路由算法分析

ZigBee网络层支持树型(Cluster-Tree),AODVjr和ZBR三种算法。

2.1 樹型(Cluster-Tree)路由算法

该算法中,当地址为A,深度为d的ZigBee节点收到目的节点地址为D的数据包后,可通过(4)式对该节点的真实性进行验证,即:

若是,则通过式(5)计算下一跳地址,即:

若不是,则数据包顺着树结构被转发至父节点。Cluster-Tree算法处理流程如图2所示。

2.2 AODVjr 路由算法

AODVjr是在AODV基础上优化路由的发现和维护过程所得。AODVjr和AODV的主要区别如下:

(1)AODVjr路由算法中去掉了AODV路由算法中的目的节点序列号。为了使路由不存在回路,AODVjr路由算法中规定只有目的节点可以进行相应的RREQ分组,即便中间节点有到目的节点的路径也不可以回复RREQ。

(2)AODVjr路由算法通过目的节点向源节点发送相应连接信息维系路由。若没有收到目的节点发来的相应信号,则判断此路径失效,必要时重新进行路由发现。

(3)AODVjr路由算法中去掉了AODV 中的“先驱节点列表”,以简化路由表结构。

当源节点中没有直接到达目的节点的路由时,便会向邻居节点广播RREQ包,请求帮忙查询路径。当某个节点接收到RREQ包时,首先会判断自己是否有到达目的节点的路径。若有到达的路径,则会依据路由代价的评估确定是否更新其路由表;若没有路径,则接着广播此RREQ包,同时建立相应的反向路由。AODVjr路由查找模式如图3所示。

2.3 ZBR算法

ZBR算法既具有Cluster-Tree算法出色的实时性,又保留了AODVjr进行动态路由选择的优势,由前两种算法有机结合而产生。

按照拓扑结构中存储空间和节点能量的差异,ZBR算法把网络中的主干节点分为两类,即RN+节点和RN-节点,且均为全功能节点。RN+节点由于具有高能量和大内存的特点,可以同时运行Cluster-Tree和AODVjr两种路由算法,而RN-节点只能运行Cluster-Tree一种路由算法。ZBR路由算法处理流程如图4所示。

3 路由算法的优化策略

Cluster-Tree算法虽然有缩短时延和数据聚合方面的优势,但也有缺点,即由于非自适应算法的特性,使其在网络生存时延最大化方面有所不及。而AODVjr算法虽然在路由查找功能方面具有灵活多变的优势,但因需要维护路由表而产生延迟,且容易产生RREQ广播风暴。

为此,本文提出了一种簇树网络路由策略,即对Cluster-Tree + AODVjr进行优化,该算法融合了上述两种改进算法的优点。

3.1 簇的建立过程

首先将ZigBee 网络分成若干簇,通过选定簇首→广播簇首→建立簇→生成相应调度机制。

单个簇包括多个节点,根据功能分为3种类型:网关节点、簇成员和簇首。簇建立的规则如下:

(1)将中心节点当作簇首;

(2)充当簇首的节点必须拥有路由能力;

(3)充当簇首的节点网络深度必须为偶数;

(4)若节点网络深度为奇数,则属于其父节点的簇;

(5)终端节点的簇属于其父节点的簇。

簇首负责在建立路由后进行广播,建立簇结构,负责对簇成员的数据进行收集,并在融合处理后发送给网关节点。

形成簇之后,判断网络深度,若该节点的网络深度为偶数,则向外广播RREQ。当一个节点收到RREQ时,便向源节点发送确认信息,发送RREQ的源节点将收到的确认信息与规定的最小信号强度进行比较,若大于该值,则在邻居表中添加此节点。最后,通过对比邻居表中周围节点的数目将节点数最多的节点选作为簇首,同时,将此节点的短地址作为该簇的标签。

若一个节点被选作簇首节点,则向其周围节点发送广播报文,收到广播报文的节点发送簇加入报文,当簇首發送对应的加入响应后,成功加入到该簇。

3.2 路由过程的建立与维护

当源节点需要给目标节点发送数据时,首先在路由表中查寻目标节点的路径。若路由存在且有效,则直接发送数据;若路由不存在,则源节点通过泛洪进行路由发现。建立路由后,源节点向周围节点广播由其创建的一个路由请求包RREQ。若一个邻居节点收到RREQ,则通过计算得出目的节点的簇标签,并将该簇标签的一个路由接入点加入到其邻居表中。若一个中间节点收到RREQ,则进行路由成本的比较,若该路由成本较低,则更新路由搜索表信息,并且在到达目的节点之前持续广播。

当目标节点收到路由请求后,建立反向路径,并生成一个RREP 包,该RREP包中含有最新的各类信息,沿反向路径送至源节点。当源节点和中间节点收到RREP包后,开始进行目标节点路由的建立和系列号等信息的更新。该路由过程建立完成后,源节点向其簇首发送一个携带有路由信息的路由确认包,簇首在收到该确认包后再广播一个路由更新信息,簇成员收到该信息后,完成节点新建路由信息的共

享。

此改进表现出了对分簇思想应用路由算法的巨大优势,簇头负责融合数据,减少了数据通信量。同时,分布式算法又可以在拓扑结构得到巨大的施展空间,在大规模网络场景下有着良好的发挥余地。并且由于簇内节点长时间关闭通信模块,又达到了网络时延的效果。

4 实验结果分析

采用NS-2软件对改进后的算法和AODVjr进行仿真实验比较,从发送报文的成功率和平均时延两个方面进行分析。

报文发送成功率比较如图5所示,从图中可以看出,新算法发送报文的成功率与原算法相比有了明显提升。

两种算法的平均时延对比如图6所示。由图6可知,在源节点数目等同的实验条件下,随着节点数目增加,时延呈上升态势。经分析可知,超过正常范围数目的源节点增加了网络拥塞程度,从而增加了成功接收数据包的时间。而在源节点数目相同的情况下,优化后的算法拥有较小时延。

5 结语

本文在分析ZigBee路由算法的基础上,提出了一种改进算法。将邻居列表引入改进后的算法,在数据传输过程中,对路由跳数等方面进行了重新考量,同时从基本策略方面对AODVjr进行了改进,考虑到能量的维度,使网络生存时间得到了有效延长,提升了网络效率,并通过相关仿真实验对以上结论进行了验证。

相关文档