ZigBee路由算法

2024-05-04

ZigBee路由算法(精选八篇)

ZigBee路由算法 篇1

Zig Bee技术是一种新兴的针对于无线传感器网络的短距离无线通信技术。它依据IEEE802.15.4标准,在数千个微小的传感器之间相互协调,以接力的方式通过无线电波将数据从一个传感器传到另一个传感器,由于这些传感器只需要很少的能量,所以具有非常高的通信效率。与蓝牙和Wi-Fi相比,Zig Bee具有数据传输速率低、功耗低、成本低,复杂度低、时延短、网络容量大、工作频段灵活等特点,其技术特性决定它将是无线传感器网络最具潜力的选择,具有广阔的应用前景[1]。

为了达到低成本、低功耗、可靠性高等设计目标,Zig Bee网络中采用了Cluster-Tree+AODVjr路由算法,结合了Cluster-Tree算法和AODVjr算法各自的优点。Cluster-Tree(簇-树)是一种由协调器展开生成的树型网络拓扑结构,适合于节点静止或者移动较少的场合,属于静态路由,不需要存储路由表。AODVjr(AODV Junior)[2]是对按需距离矢量路由(Ad-hoc On-Demand Distance Vector Routing,AODV)[3,4]算法的改进,充分考虑了降低成本、节能、使用的方便性等因素,简化了AODV的一些特点,但是仍然保持AODV的原始功能。

路由开销是衡量路由算法性能的一个非常重要的指标,它是传递数据分组时使用的控制分组总和,较大的路由开销将会给网络的运行带来负面影响。由于控制分组相对于数据分组是一种资源的浪费,因此在保证网络的分组递交率和平均时延性能不受影响的前提下,尽量减少无用的控制分组,降低路由算法的路由开销,对于网络的优化和减负具有重要的意义。

2 Zig Bee路由算法分析

在Zig Bee网络中,节点使用Cluster-Tree算法按照父子关系选择路径,即当一个节点接收到数据分组后如果发现该数据分组不是给自己的,则只能转发给它的父节点或者子节点,不存在路由发现过程,然而由Cluster-Tree建立的路由不一定是最优的路径,会造成分组传输时延增加,而且容易造成网络中通信流量分配不均衡。为了提高路由效率,Zig Bee中允许具有路由功能的节点使用AODVjr算法去发现路由,即具有路由功能的节点可以不按照父子关系而直接发送信息到其通信范围内的其它具有路由功能的节点,寻找通往目的节点的最优路径;而不具有路由功能的节点仍然使用Cluster-Tree路由发送数据分组和控制分组。由于AODVjr的使用,降低了分组传输时延,提高了分组递交率。

2.1 网络地址的分配机制[5]

假定每个父节点最多可以连接Cm个子节点,这些子节点中最多可以有Rm个路由节点,网络的最大深度为Lm,用Cskip(d)表示网络深度为d的父节点为其子节点分配的地址间的偏移量,它的值可按如下公式计算:

对于地址为A深度为d的Zig Bee路由器,如果地址为D的目的节点满足下面的不等式,那么D是它的一个子节点:

若目的节点是当前节点的后代,那么从到的下一跳节点地址可以表示为:

2.2 路由建立过程

路由的建立过程分为以下两大步骤:

第一步,广播RREQ分组,建立反向路由:

节点创建并向周围节点广播一个RREQ分组,如果收到RREQ的节点是一个RN-节点,它就按照Cluster-Tree路由转发此分组;如果收到RREQ的节点是一个RN+节点,则在路由表中建立一个指向RREQ源节点的反向路由,并继续广播此RREQ分组。

第二步,回复RREP分组,建立正向路由:

经过一系列广播后,一旦RREQ到达目的节点(RN+)或者目的节点(RN-和RFD)的父节点,此节点就向RREQ的源节点回复一个RREP分组,RREP将沿着已建立的反向路由向源节点传输,每个收到RREP的节点建立到目的节点的正向路由并更新相应的路由信息。

图1给出了一个路由建立的例子。

3 降低路由开销的改进算法研究

由于Cluster-Tree算法的使用,Zig Bee路由相比AODVjr具有较少的路由开销,但是我们分析Zig Bee的路由机制,发现在寻找路径的过程中仍然会产生很多多余的控制分组,这些控制分组虽然也参与路由发现,但对于最终找到一条最优路径并没有什么帮助。如果我们能够在路由发现过程中适当地限制这些控制分组的产生或转发,将能够显著地降低网络的路由开销。能否准确地找到这部分控制分组是非常关键的,因为如果抑制了一些可能找到最优路径的控制分组的产生或转发,将会降低路由协议的性能(如分组递交率、平均端到端时延等)。

针对第3节对Zig Bee路由算法的分析,我们从两个角度分析降低路由开销的策略:

(1)限制RREQ分组的传输范围

Zig Bee路由中,RN+节点在选择路径时会向周围节点广播路由请求分组RREQ,网络中的其它节点帮助转发RREQ以便找到一条通往目的节点的最优路径。这样随着网络业务量的增加,节点需要处理的控制分组也会大量增加。路径的长度直接影响着网络的各项性能,Zig Bee在Cluster-Tree算法中加人AODVjr的一个主要原因就是为了寻找相比Cluster-Tree更优的路径,如果找到的路径比按照Cluster-Tree算法选择的路径长,便没有了实际的意义,而且较长的路径往往会对网络的平均端到端时延和寿命等产生负面影响。因此,如果我们能够事先确定RREQ分组的传输范围,使之不超过节点按照Cluster-Tree算法找到的路径长度,那么就能够丢弃一些超出传输范围的控制分组,达到降低路由开销的目的。

(2)限制RREQ分组的转发方向

由第3节路由建立过程中RREQ分组的广播机制可知,RN+节点收到RREQ分组后如果发现自己不是路由的目的节点,便向周围所有的邻节点转发此RREQ,事实上这样做存在着很大一部分浪费,而且随着转发跳数的增加,此种无益的开销增加得更大。究其原因主要有两点:其一,并不是所有的邻节点都有可能帮助其找到到达目的节点的最优路径,有些邻节点几乎不可能找到通往目的节点的路径,而有些邻节点只会使路由选择走很大弯路;其二,在大多数路由算法的路由发现过程中,数据可以传输的范围通常限制在网络直径的范围之内,超过传输范围的RREQ会被节点丢弃,因此存在一些邻节点由于距离目的节点太远而不可能将RREQ分组转发过去。从上述分析可知,如果我们在每个节点转发RREQ分组前,加入一个路由方向判断机制,如果此节点是对路由发现无益的节点,令它丢弃分组不再转发,那么可以节省很大一部分路由开销。随着网络深度的增加,这种节省会更加明显。

4 改进算法的实施方案

4.1 限制RREQ分组的传输范围

根据上一节的分析,我们可以在源节点广播RREQ分组前根据目的节点的地址来设置分组传输的最大范围,当传输的路径超过此范围时,节点自动丢弃收到的这个分组。

从树型结构可以很容易地看出,如果仅使用Cluster-Tree算法选择路由,可能存在的最长路径应是网络最大深度的2倍,即2Lm,可以规定RREQ的最大传输范围为2Lm,这样当RREQ的传输范围到达2Lm时,节点便自动丢弃收到的RREQ。

为了进一步合理地缩小传输范围,尽量降低路由开销,我们利用Zig Bee网络的Cluster-Tree参数Cm、Rm、Lm和目的节点的网络地址D0来确定RREQ的最大传输范围l。发起RREQ的源节点地址为A深度为d,均为已知量,目的节点的深度为d0,为未知量。下面详细阐述求解l的过程。

首先判断目的节点与源节点的位置关系。如果目的节点是源节点的后代或源节点是目的节点的后代,那么RREQ到达目的节点后所发现的路径长度应不大于目的节点与源节点的深度之差,即l=│d0-d│;如果目的节点和源节点均不是对方的后代,那么所发现的路径长度应不大于目的节点与源节点相对于最高深度公共父节点的深度之和,设最高深度公共父节点的深度为dc,则l=d+d0-2dc。作为特例,当它们的公共父节点只有协调器节点时,dc=0,此时l=d+d0。

事实上,目的节点是源节点的后代或者源节点是目的节点的后代也是一种特殊情况,此时dc=d或dc=d0,我们可以统一用l=d+d0-2dc来求。然而由于源节点发送分组时只知道目的节点的地址D0不知道其深度d0,也不知道它与目的节点的最大深度父节点的深度dc,我们无法直接得到l。

易知0≤dc≤d,我们可以沿树型结构从协调器节点向地址为的源节点发送分组,循环利用本文2.1节式3求出下一跳地址N,此时dc将从0开始依次增加至d-1,在每一个中间节点处利用式2判断目的节点是否是当前节点的后代:当它是深度为dc的节点的后代而不是深度为dc+1的节点的后代时,则dc即为源节点和目的节点的最大深度父节点的深度。

求dc的算法流程如图2。

在求得dc之后,我们从协调器节点开始沿着树型结构,利用循环过程直至求得的下一跳地址等于目的节点地址D0,统计出的循环次数便是从协调器节点到目的节点的跳数,即深度d0,进而求得RREQ的最大传输范围l=d+d0-2dc。其计算流程如图3。

计算出l后,源节点在广播RREQ分组前可以将RREQ的传输范围设为l,当传输路径到达l时自动丢弃RREQ,这样就进一步缩小了RREQ的传输范围,减少了不必要控制分组的转发,达到降低路由开销的效果。

4.2 限制RREQ分组的转发方向

从前面的介绍可以得知,Zig Bee网络中所有节点在收到分组后都可以利用本文2.1中的式2判断分组想要到达的目的节点是否是自己的一个后代。如果节点确定了RREQ分组的目的节点是自己的一个后代,那么此时如果仍然让其父节点为其转发RREQ,此RREQ找到通往目的节点的最优路径的可能性是非常小的,甚至有可能无法到达目的节点;反之,如果节点确定了RREQ分组的目的节点不是自己的一个后代,却仍然将RREQ发送给它所有的子节点,这些子节点再转发RREQ已没有太大的意义。我们可以使用式2判断RREQ目的节点的大致方向,从而限制其向与目的节点相反的方向传输,达到节省路由开销的目的。

具体做法如下:

在路由请求分组RREQ中增加一个标志位flag,用来记录RREQ的目的节点与本节点的关系:flag=1,目的节点是本节点的后代;flag=0,目的节点不是本节点的后代。设目的节点为D,在路由发现过程中存在两个中间节点A和B,A向B转发分组。我们的算法是:

(1)A在转发RREQ分组前,执行下列伪码:

(2)B收到A转发的RREQ分组后,执行下列伪码:

综合上述两种改进策略,我们将其应用在Zig Bee原始路由算法中,基于降低路由开销的改进算法流程如下图4所示。

5 仿真结果及性能分析

本文采用NS2软件对改进算法和原算法的性能进行仿真,仿真采用下图5所示的网络拓扑。

仿真参数见表1。

对改进前后算法路由开销情况的仿真结果如图6所示。

从仿真结果可以看出,ZBR改进算法的路由开销始终远远小于原始ZBR算法的路由开销。这是因为:一,ZBR改进算法在源节点广播RREQ分组前利用树型结构和Cluster-Tree算法限制了RREQ的最大传输范围,丢弃了一部分超出范围的不必要的控制分组;二,在每个中间节点转发之前,都进行当前节点与目的节点关系的判断,以便指示下一跳节点该如何处理。路由开销得到了很好的改善,那么改进后网络的分组递交率、平均跳数和平均端到端时延性能会不会由于改进算法的引用导致明显的下降呢?图7分别给出了仿真的结果。

从图7(a)中可以看出,随着CBR数据流个数的增加,ZBR改进算法与ZBR算法的分组递交率相差不大,仍然维持在99.6%左右,说明改进方案并没有影响数据包的发送效率。从图7(b)(c)可以看出,随着CBR数据流个数的增加,ZBR改进算法的平均跳数、平均端到端时延始终与原始ZBR算法保持一致,ZBR改进算法的平均跳数和平均端到端时延并没有明显高于ZBR,这说明改进算法对RREQ分组范围和方向的限制策略是合理的,丢弃的分组基本为没有意义的冗余分组,改进算法的使用并没有使节点选择更长的路径,没有增加发送分组的时延。

综合以上分析可以得出下述结论:

降低路由开销的Zig Bee路由改进算法通过限定RREQ分组的最大传输范围和约束RREQ分组在每个中间节点的转发方向,使节点在路由发现时丢弃了一部分无益的控制分组,从而在保证网络分组递交率、平均跳数和平均端到端时延性能的同时,达到了降低路由开销的目的。

6 结束语

本文在分析Zig Bee路由算法和路由机制的基础上,针对降低网络的路由开销这一目标探讨了改进方案,并在NS-2仿真平台中进行了验证和对比分析。

改进方案从两个角度考虑:通过设置路由请求分组RREQ的最大传输范围,丢弃超出此范围的无益控制分组,通过限定每一个中间节点转发分组的方向,丢弃对路由发现无益的反方向控制分组。经过上述方案对算法的改进,明显减少了路由开销,同时从仿真结果可以看出,分组递交率、平均跳数、平均端到端时延等性能没有受到较大影响。这是由于本方案丢弃的分组均为对节点发现最优路径无关紧要的节点,准确地找出这些节点是方案可靠性的关键。

7 致谢

本文研究得到了国家自然科学基金重点项目(70531020)资助,在此谨表谢意。

摘要:ZigBee技术是为无线传感器网络技术设计的一项新兴的低成本、低功耗的短距离无线通信技术。在分析ZigBee路由机制的基础上,针对控制分组的传输范围和转发方向提出降低路由开销的改进方案,并与原算法进行仿真分析。

关键词:ZigBee,路由算法,路由开销

参考文献

[1]郦亮.IEEE802.15.4标准及其应用.电子设计应用,2003.

[2]Ian D.Chakeres,Luke Klein-Berndt.AODVjr,AODV simplified.Mobile Computing and Communications Review,2002,6(3):100-101

[3]Charles E.Perkins,Ad hoc On Demand Distance Vector Routing,Mobile Computing Systems and Applications,1999.

[4]Masayuki Tauchi,Ad-Hoc Routing Protocol Avoiding Route Breaks Based on AODV,System Sciences,2005.

ZigBee路由算法 篇2

【摘 要】Zigbee新作为一种新兴的低成本,低功耗,近距离,双向通信网络技术,在物联网飞速发展的进程中得到了广泛的应用。随着应用范围越来越广泛,ZigBee网络的数据安全也变得原来越重要。目前,在ZigBee平台上,尚未有非对称加密算法的相关研究,本文给出了在cc2530平台上,实现RSA算法的过程,并给出了收集的相关运行数据。最后,本文给出了运行的结果和分析数据。

【关键词】通信安全 Zigbee 非对称加密算法 性能分析

引言

基于IEEE 802.15.4无线技术的ZigBee,被广泛应用于工业,家庭,医疗等对数据率和QoS要求不高,但覆盖面积较大的无线通信场合之中。随着基于ZigBee的应用实例越来越多,其数据的安全性也变得越来越重要。作为ZigBee实现方式之一的ZStack虽然自带了一套基于AES128加密解密算法,但在互联网应用之中,普遍认为非对称加密技术比对称加密算法更为优越。所以实现一套基于非对称秘钥的加密算法变得非常具有参考意义。

一、利用RSA算法的加密体系

在cc2530平台上,我们实现了简单的RSA加密解密算法,并根据对于该算法的统计信息,试探性地探讨在ZigBee系列的小型嵌入式芯片上,在不使用协处理器的情况下,RSA算法的性能。整个算法的实现是基于ZStack平台进行的。算法在Windows平台下开发后进行结果验证。最后移植到ZStack平台上进行相关数据的收集。

二、实现过程

为方便对多种加密长度运行结果进行采样,必须将算法实现在长度可变的整形数据结构基础之上。所以在实现过程中,建立了一个长度可变的简易整形数据结构。

由于硬件资源有限,必须在设计和实现上,权衡安全性和性能开销。开销主要分为两方面:占用的内存空间大小及运算时间。

三、内存占用的统计过程及方法

为统计使用内存,对内存分配及释放函数(ZStack上为osal_mem_alloc及osal_mem_free,在Windows下为malloc及free)进行封装。统计整个加密解密过程中,占用内存空间的高峰值,所分配的最大内存块等信息。在PC端运行算法时,由于统计结果小于ZStack预计的动态管理内存的范围32768Bytes[4],所以直接写入,试运行。但由于频繁地申请和释放用来保存临时结果的内存块,导致内存严重碎片化,致使ZStack无法分配出更大的内存空间而导致算法无法正常进行。所以更改方案为:将表示整数的内存块长度进行统一,并利用对象池技术来复用所分配到的内存块。

在优化的过程中,通过分析对象池所统计的信息,确定了算法分配的最多内存块数量。然后,通过将内存块声明为全局静态变量,来减少调用内存管理功能的开销,以此优化整体性能。最后采用覆盖方法,实现内存块的复用,减少内存空间的占用。

在分配静态内存空间时,需要重新调整XDATA布局。因为动态管理的内存空间是在编译时设定好的,无法在运行时改变 [4],所以在实现算法过程中,将ZStack代码的OnBoard.h文件中的INT_HEAP_LEN从3027改为2048。以此减少动态管理內存所占用的空间,以增加静态变量所占用空间。

四、运算时间统计过程及方法

运算占用时间,通过在运算前后获得系统时钟(在ZStack上为osal_getSystemClock),计算差值来获得。值得注意的是osal_getSystemClock本身仅仅返回uint32_t类型的, osal_systemClock数值,并不会自动更新系统时钟。所以在每次获得系统时钟之前,必须主动更新系统时钟(即主动调用osalTimeUpdate)。

对于MUC,RSA加密位数不宜过长。初次测试采取很小的64位加密。在节点A对明文进行加密,加密后,发送加密统计信息和密文到节点B。节点B进行解密并对解密过程进行统计,在核对解密结果是否和明文一致后,将核对结果和所有统计信息通过串口发送到PC进行数据处理。

五、算法伪代码

由于被加密的数据长度是不确定的,所以应先对被加密数据进行分块,不满一块的,填零补齐。然后对每块依次进行加密,返回加密数据。

六、生成秘钥

八、解密算法的伪代码

九、运行结果

在实现中,大数的长度是在宏中定义的,为44字节。整个实现中,一共使用了34个大数,总共占用的静态内存空间为34*sizeof(bn),即1496字节。

根据收集到的数据,可以计算出:平均加密耗时为1819.96ms,平均解密耗时为8371.66ms。

十、结论

根据初步收集的数据,在加密位数很低的情况下(相对于普遍使用的1024位加密解密而言),耗时过长。由于cc2530附带AES协处理器,所以,对比于AES128的100ms以下的耗时[1],RSA算法在没有协处理器的情况下,不宜在8051芯片上进行大量数值计算的应用意义并不是很大。虽然cc2530使用的是加强的8051微处理器,但在计算性能上仍有所欠缺。

在实际应用中,应对较短的数据(如秘钥)进行RSA加密解密操作。或在计算能力更强的芯片上运算,然后由cc2530进行数据传输。

加强ZigBee对于非对称加密算法支持程度,引入协处理器,将会称为一种较为可取的解决方案。

参考文献:

[1]黄太波,赵华伟,潘金秋,聂培尧,杨泽军.ZigBee协议栈的安全体系综述[J].山东科学,2012,25(2):59-66.

[2]谢琦,赵森,仇婷婷. ZigBee消息在应用层的安全机制研究[J].计算机应用与软件,2013,30(8):311-313.

[3]杨斌.基于AES的ZigBee标准安全机制分析[J].计算机工程与科学,2010,32(7):42-45.

ZigBee路由算法 篇3

关键词:无线传感网络,ZigBee,地址分配算法,树路由,负载均衡

0 引言

Zig Bee协议默认的地址分配算法为分布式地址分配算法(Distributed Address Assignment Mechanism,DAAM)[1]。地址分配算法为每一个路由器节点预留一个网络内部唯一的地址块。通过分布式地址分配算法(DAAM)分配给节点的地址空间是固定的,直到节点离开网络,这些地址资源都只能被它自己使用而不能用来和别的节点共享。虽然预留地址空间使得网络的可扩展性可以得到部分的保证,但是这种算法在节点分布不均的时候面临这样的问题:网络中某些路由器节点的地址空间已经用完,而另外的节点地址空间还有大量的富余。

同时,DAAM分配的地址呈规律性。包含了“地址—位置”的对应关系。即可以从节点的地址,再结合网络的参数配置,就可以判断节点之间是否存在父子关系。而这正是Zig Bee网络树路由的基础。但是树路由没有考虑节点的负载均衡,对于能量受限的Zig Bee节点,负载不均衡将导致网络寿命的缩短。

本文的研究目标有两个,一个是为了解决上边提及的地址空间利用不平衡的问题。同时,为了能够继续使用树路由,算法改进的时候应该尽量不改变网络地址包含的“地址-位置”关系。第二个研究目标是均衡路由节点负载,推迟网络分割的到来。

1 Zig Bee地址分配算法和路由算法简介

Zig Bee节点按照角色可以分为协调器、路由器和终端节点[2]。协调器负责网络的初始化和维护;路由器负责数据的采集和传输;终端节点负责数据采集。

1.1 分布式地址分配算法简介

分布式地址分配算法(DAAM)是Zig Bee协议默认的地址分配算法。协调器建立网络时定义了网络的父节点可以连接的最大子节点数Cm、网络的最大深度Lm和父节点可以连接的最大的路由节点数量Rm。分布式地址分配算法通过一个函数来计算父节点分配给拥有路由功能的子节点的地址块的大小。地址块大小的计算方式如公式(1-1)所示。其中,d表示当前节点的深度。

新节点加入网络时,父节点根据类型为其分配地址。子节点为路由器和终端节点时,地址分别通过公式(1-2)和(1-3)计算得到。

其中,m的取值范围是1到Cm-Rm,代表父节点的地址。

1.2 树路由算法简介

DAAM算法分配的地址包含“位置-地址”对应关系,使用树路由的时候不需要复杂的路由控制分组就可以完成路由过程[3]。具体的,地址为A,深度为L的节点收到一个目的节点地址为B的数据以后,先判断B的范围,如果A

反之,如果A

2 Zig Bee地址分配算法改进

为了解决地址空间利用不均衡的问题,有人提出了借地址的算法,这类算法在地址空间不足的情况下向协调器申请空闲的地址[4],或者地址空间不足的父节点根据剩余地址节点的优先级发出申请并且分配空闲地址空间[5],或者发送广播向周围有空闲地址的路由器借地址[6]。这些算法都可以提高节点的入网率,但是并不能完整的保留原有的“位置-地址”关系,增加了树状网络的冗余路径,所以在树路由算法中会增加额外的路由开销,并且节点需要存储相应的地址信息。

2.1 分布式地址分配算法简介

本文提出的算法以DAAM算法为基础进行改进,除协调器外,每个节点维护一个备选父节点表用于保存邻居节点中有地址分配能力的节点作为备选父节点。地址空间不足的路由器可以通过让子节点加入其备选父节点的办法获取空闲地址空间,一定程度上缓解地址空间不能得到充分利用的问题。以图1为例:

框中的数字表示节点的编号,黑色的线相连表示父子关系,黄色的线表示想要加入网络但是没有足够的空闲地址,红色的线表示备选父节点。

网络的参数分别为Cm=5、Lm=5、Rm=3。节点1到节点5已经组成了一个网络,此时节点6想要加入,但是他的潜在父节点只有一个节点1,而且此时节点1已经没有空闲地址了。于是节点6向节点1发起地址调整请求,节点1收到后给自己的孩子节点发送询问;节点4通过查询发现自己的备选父节点表里除了节点1还有一个节点5,于是给节点1应答。节点1收到4的应答后发消息给节点4让他通过备选父节点5重新加入网络,同时将节点4的地址分配给节点6。

2.2 算法仿真与结果分析

仿真工具采用OMNET++4.2.2,操作系统是ubuntu11.04。网络参数的设置为:通信范围:300m*300m,协调器节点处在中心位置,节点的位置是随机的,节点的类型也是随机的,其中路由器节点的比例为40%,剩下的是终端节点。仿真的时候借助第三方的软件包Mi Xi M提供的基于802.15.4的MAC层和PHY层。数据的传输速率为250Kbps。网络参数的设置为Cm=5,Rm=2,Lm=5。以SLAR[7]算法和DAAM算法作为对比,改进的地址分配算法的仿真结果如图2所示。

从仿真结果可以,节点数目在10以下的时候三者的性能是一样的,这是由于我们的节点位置是随机的,所以当节点数目过少的时候大部分的节点都没有办法连接网络。当节点数目大于20以后,改进的算法与DAAM算法相比,可以获得不小于11%的性能提升。而SLAR算法由于减小了网络深度,入网率显著下降。

3 Zig Bee树路由算法能量均衡研究

树路由算法简单,没有复杂的控制开销,所以很适用于节点的能量和存储空间都有限的Zig Bee网络。考虑到大多数情况下,Zig Bee网络的数据都是由节点采集并且传递给网络的协调器节点这样一个应用的特点,很显然网络深度越低也就是越靠近协调器的节点需要转发的数据量将越大。这样的后果是使得越靠近协调器的节点将因为能量的耗尽而越早离开网络造成网络分割,缩短了网络的寿命。

3.1 树路由算法的能量均衡改进

为了延迟网络分割的到来,我们提出了基于改进的分布式地址分配算的负载均衡的树路由算法。这个算法在原来的基础上增加了流量调整的过程,以图3为例进行说明:

红色的线表示一个节点是另一个节点的备选父节点备选父节点,黑色的线表示节点父子关系。

组网完成以后,假设数据发送的周期相同,并且数据都是发送给协调器的。如果每个节点的流量设为1,那么节点1的负载是4,而节点2的负载只有2.显然的,经过一段时间以后,如果节点1能量耗尽离开网络,那么节点3和6也将离开网络而造成网络分割。如果引入负载均衡的树路由算法,协调器将发起流量调整的过程。这时节点1通过查询知道节点4还有备选的父节点,于是与节点4这个子节点解除父子关系,节点4通过节点5重新加入网络,这样一来节点1和2的流量就都变成了3,于是达到了负载均衡的目的。

3.2 算法仿真与结果分析

仿真条件:节点数量为40,节点开始的时候能量都是1000单位。同时假设节点接收一次数据耗费的能量为1个单位,发送一次数据消耗的能量是2单位。所有在网络中的节点都以10s为周期发送数据。由于节点能量消耗主要集中在数据传输上[8],所以假设收发数据耗费的能量就是总的耗能。其它参数与上一章的设置相同。仿真结果如图4所示。

图中红色的线表示原算法死亡节点数随时间变化的情况,可见由于没有考虑能量均衡,负载较重的路由器节点在270s左右就死亡了,由此造成了一大批节点离开网络。而绿色的线表示改进的算法。可以看出,负载均衡的树路由算法由于考虑了能量均衡,网络直到370s左右才有节点开始离开网络。因此改进算法对网络寿命的延长是很显著的。图中,时间大于1000s以后曲线重合了,这是因为这个时候除了直接连接在协调器上的节点,其他节点都已经离开网络。这部分直接与协调器相连的节点直到自己的能量耗尽才离开网络。

4 结论

本文对Zig Bee的分布式地址分配算法进行了改进。改进的地址分配算法通过与邻居节点进行协商,从而提高地址空间利用率,进而提高节点的入网率。本文在此基础上进一步提出了负载均衡的树路由算法。当节点负载过重的时候,将发起一个负载调整的过程从而使得节点负载趋于均衡,以达到延长网络寿命的目的。仿真结果表明,改进的地址分配算法可以显著的提高节点的入网率;负载均衡的树路由算法可以延长网络寿命。

参考文献

[1]ZigBee Alliance,Document053474r17-2008.ZigBee specification[s].San Ramon:ZigBee Alliance Inc.2008.

[2]Pan Meng-Shiuan,Tsai Chia-Hung,Tseng Yu-Chee.The orphan problem in ZigBee wireless networks[J].IEEE Transactions on Mobile Computing,2009,8(11):1573-1584.

[3]Seong Hoon Kim,Yong Soon Choi.Mesh Routing Protocol using Cluster Label in the ZigBee Network.[A].Kwang Koog Lee.2006IEEE International Conference on Mobile Ad-Hoc and Sensor System[C].New York:IEEE Press,2006.801—806.

[4]ROY U K.Address borrowing in wireless personal area network[A].GIRI D.2009IEEE International Advance Computing Conference[C].New York:IEEE Press,2009.18l—l86.

[5]Wang Jian,Xu Xian Ghua.A Preemptive distribution address assignment mechanism for wireless sensor networks[A].Fang MiaoQi.Proceedings of the4th Interrnational Confernce on Wireless Communications,Networking and Mobile Computing[C].dalian:IEEEPress,2008.l-5.

[6]Pottie GJ,Kaiser WJ.Wireless integrated network sensors[J].Communications of the ACM,2004,43(5):51-58.

[7]ROY U K Single level address reorganization in wireless personal area network[A].GIRI D.4th International Conference on Computers and Devices for Communication[C],Kolkata:IEEE Press,2009.1-4.

ZigBee路由算法 篇4

1 节能算法的提出

Zig Bee网络中,若路由节点的电池能量消耗较大,会导致网络分割时刻提前,使网络的吞吐量、传输时延等性能指标急剧恶化。适当地降低网络路由节点的能量开销对于网络具有更大的优化效果。

AODVJr算法继承了AODV(按需路由协议)算法的特性,同时在AODV算法基础上取消了Hello包的发送,并规定只有目的节点对RREQ(路由请求)包进行应答,中间节点不会产生RREP(路由响应)。通过采用这种端到端的通信方式,可以大大降低网络的开销。虽然AODVJr算法在寻找路径的过程中有较大的优势,然而该算法在路由发现过程中仍然会产生一些多余的RREQ分组,该分组虽然也参与了路由发现过程,然而却对最终结果却不起任何作用,如果在路由发现过程中去除掉这些RREQ包,将会有效地降低节点的开销,增加网络的生存时间。

问题的提出:

(1)按照图1所示的树路由传输规律,节点3发送数据给节点17要经过3跳,如果在RREQ分组跳数大于4的情况下仍然继续泛洪,则对最终找到路径没有任何作用;

(2)当节点12需要发送数据到节点7时,若节点12没有到节点7的路由表项,则节点12向其所有的邻居节点发送RREQ分组进行路由发现过程。由于节点7并不是节点12的后裔节点,所以节点12向其后裔节点发送RREQ分组对于需找到节点7的最优路径丝毫不起任何作用;

(3)若节点12发送数据到其后裔节点19,从而节点12发送RREQ分组到其父节点3来寻找最优路径所起的作用也不大。

(4)由于AODVJr协议过于简化,没有考虑路由的安全性,使得路径信息可能被更改,数据在传输过程中也极有可能被丢弃或者篡改,不利于安全机制的运行。

针对这些问题,本文将TR算法和AODVJr算法相结合,并适当限制路由过程中RREQ分组的泛洪,规定在改进算法中RREQ的最大传输范围为网络最大深度L的2倍,这样当RREQ的传输范围超过2L时,节点便丢弃接收到的RREQ分组。

2 降低能耗的安全算法设计

在上述提出降低能耗的基础上,结合SRP安全算法,使得改进的算法既起到降低能耗又能保障路径传输数据的安全。由于SRP与AODVJr在路由机制上略有差异,本文在此对SRP算法也进行了一些适用于AODVJr的改进:

(1)考虑到AODVJr协议禁止中间节点对路由请求作出响应,本文也将SRP算法限制中间节点对路由请求作出响应。

(2)根据AODVJr协议中的“最快即最好”原则,本文同样对SRP进行一些设定,即目的节点只响应最先收到的RREQ,对之后接收到的全部丢掉。

(3)考虑到AODVJr协议中的RREP(路由响应)报文只能以单播的方式传送回源节点,因此在SRP算法中,目的节点发出的RREP包只能以逆着接收到RREQ报文来的路径传回到源节点。

在SRP和AODVJr协议基础上,对RREQ分组中增加flag标志位和随机问询标志QID,flag=0表示当前节点的父节点不应该转发RREQ分组,flag=1表示当前节点的后裔节点不宜转发RREQ分组。为避免中间节点将同一问询转发多次或者目的节点对同一问询作出多次响应,应使源节点在同一次发出的问询获得相同的标志。结合树路由算法、AODVJr协议和SRP协议的改进路由算法步骤如下:

(1)如果Zig Bee网络中的RFD(终端)节点要发送数据到该网络中的其他节点,则RFD首先将数据发送给其具有路由功能的父节点,再由其父节点进行转发。

(2)如果具有路由功能的FFD节点要发送数据到网络中的其他节点,则RFD首先查看目的节点是否在邻居列表中,如果没有则启动路由发现请求;否则,直接进行数据转发。

(3)将源节点IP地址、目的节点IP地址、问询标示QID地址、flag标志位、SRP消息识别码MAC和初始值为0的跳数值hops加入到RREQ包中。其中QID是在源节点发起RREQ时激发产生的一个32 bit随机问询标志,在路由发现阶段,中间节点通过该标志来识别路由请求,如果转发成功,则跳数值hops加1。而MAC码是由目的节点地址,源节点地址和共享的钥匙KS、D作为单向散列函数的输入,通过计算其输出[6],可以获得相应的MAC码。

(4)当源节点需要与另一节点进行通信而又没有通往该节点的路径信息时,源节点便向邻居节点广播一个路由请求消息RREQ发起一个路径寻找过程[5]。

(5)假如节点M作为中间转发节点收到节点N发送来的RREQ包时,首先查看分组RREQ分组里的跳数值和对随机问询标志QID提取,如果跳数hops>2L或者是当QID与节点问询表的某个入口相符合时,则丢弃该RREQ包。

(6)否则若QID与节点问询表的某个入口不相符合且hops<2L时,节点M继续提取出源节点和目的节点地址,与QID一起在问询表中创建一个入口,且同时查看RREQ包里的flag值:如果flag=0,则说明N的父节点不适合转发此RREQ包;如果flag=1,说明N的子节点不适合转发RREQ。

(7)路径上的每个中间节点都会重复步骤(5)~(6)同时检测从邻节点接收到问询的频率次数。检测到的频率次数大于预先设定的一个频率次数值时,可以将该邻居节点看成一个坏节点而丢弃,这样坏节点就达不到消耗网络资源、消耗网络性能的目的了。

(8)当目的节点接收到RREQ包时,利用改进的SRP算法来验证该RREQ是否有效,如果有效则目的节点开始构造响应的路由响应RREP,并将该响应RREP逆着RREQ来的路径传输回源节点。

(9)当接收到来自目的节点的路由响应时,源节点先检查RREP中源节点地址、目的地址和问询标志QID,如果与当前最迫切的问询不一致,则将RREP丢弃;若一致,则源节点利用参考文献[6]计算消息识别码MAC。若结果与RREP中的MAC码相符合,则源节点就会认为路由请求确实完好无损地到达了目的节点,并且目的节点的响应能够沿着该路径被源节点S成功,从而证实了该连接信息的有效性。具体的实现过程如图2、图3、图4所示。

3 改进算法的仿真及图形分析

网络仿真软件采用NS-2对改进后的ZigBee算法进行模拟实验。模拟的区域是1 000 m×1 000m,节点的总数为100个,随机分布在这个区域内,每个节点的初始能量均为1 000 J,数据包长度为128 bit,信道传输数据的传输率为250 kb/s。将改进安全算法与传统AODVJr算法的仿真结果进行比较,如图5和图6所示。

图5中,曲线1表示传统的AODVjr路由算法运行时网络消耗的总能量,曲线2表示改进算法运行时网络消耗的总体能量。由于改进算法引入了邻居列表,在路由传输的过程中综合考虑了路由跳数并限制了路由泛洪,在网络运行到6 s时大约节省17.0%的网络总能量。

图6中,曲线3表示传统网络在受到恶意节点攻击时,数据包的丢失率随恶意节点的增多而变化的曲线。曲线4表示由于考虑了网络的路由安全,将SRP算法与AODVJr算法相结合,提高了网络的安全性,即使存在恶意节点的攻击时,数据包的丢失率相对曲线3和会减少很多。而在初始时刻,不存在恶意节点时,曲线3曲线4几乎相聚于零点,因而可以得出在无攻击的恶意节点时,两种算法的丢包率接近,且都非常小。

针对传统的Zig Bee路由算法,本文提出一种在传统的Zig Bee路由算法的基础上,引入邻居表,在数据传输过程中,考虑了跳数hops,并与SRP算法相结合,通过实验验证了该算法降低了网络总能耗,提高了网络安全。但是该算法仅仅考虑了局部的路由跳数而没有考虑整体的路由跳数的最优化,同时只采用了传统的SRP算法,面对恶意节点的攻击时还不能很好地保护传输数据。今后的工作中,可以在这两方面做进一步的研究。

参考文献

[1]ZigBee Alliance.ZigBee Specification(version 1.1)[S].2006.

[2]谢川.基于ZigBee的AODVjr算法研究[J].计算机工程.2011,37(10):87-89.

[3]钟永锋,刘永俊.ZigBee无线传感网络[M].北京:北京邮电大学出版社,2011:93-95.

[4]MARSHALL J.An analysis of SRP for mobile Ad Hocnetworks[C].Proceeding of the 2002 Internation Multi Con-ference in Computer Science.Las Vegas,USA.2002.

[5]戴逸民,王培康,陈巍.通信网的安全理论与技术[M].北京:清华大学出版社,2006:126-246.

ZigBee路由算法 篇5

不可避免地,Zig Bee网络也会受到某些因素限制,如节点能量、同频段其他无线通信技术干扰、网络拥塞等,如何提供较为可靠的数据分组传输成为了Zig Bee网络近期亟待解决的问题[3]。许多学者针对这一问题做出了广泛研究。文献[4]从节点能量优化角度出发,在分簇机制基础上,提出一种Zig Bee网络能量优化算法(Cluster Label based ZBR,CLZBR),通过簇内节点路由信息共享的方式有效减少节点能量消耗,从而效提高了网络分组投递率。文献[5]提出一种能量有效跨层网络操作模型,该模型根据节点间相对位置关系调整节点的发送功率,从而控制节点能量消耗水平,避免网络因为节点能量消耗过快导致网络可靠性低的问题。文献[6]提出一种链路状态感知的Zig Bee路由算法(Link State Aware-AOMDV Junior,S-AOMDVjr)。该算法选择链路状态最好的路径进行数据转发,可保证算法在恶劣环境下的可靠性。文献[7]证明了网络中链路质量好坏与节点间距离大小呈正相关性,可通过节点间距离大小粗略估计链路质量。文献[8]从网络拥塞程度出发,根据链路的连通率和拥塞程度选择最合适的路径转发数据分组,可以有效减少网络时延。

大量研究表明:数据分组转发路径的优劣在很大程度上决定了路由算法的好坏[3]。所以,本文主要从选择最优路径方向做出研究。

1 ZBR路由算法

ZBR路由算法根据节点是否具有路由能力而将节点划分为RN+和RN-两种[9]。该算法的基本思路如下:路由过程中,RN+节点可以使用AODVjr路由算法发起路由发现过程,RN-节点只能使用Cluster-Tree路由算法[10]。ZBR路由算法的工作流程如图1所示。

一方面,AODVjr算法可以通过全网广播路由请求消息(RouteREQuest,RREQ)来寻找源节点和目的节点之间的最短路径;但另一方面,转发大量冗余RREQ消息会导致网络能量消耗过快、分组投递率下降等问题。而Cluster-Tree算法尽管复杂度较低,极易实现,存储空间需求小,路由开销和能量消耗均被控制在一定程度内。但随着网络节点数量和节点密度的增加,Cluster-Tree算法中节点能量消耗极度不均衡,协调器附近节点能量消耗程度远远大于其他节点。另外,由于Cluster-Tree算法中采用的路径并非源节点和目的节点之间的最短路径,所以数据分组的传输时延较大。相较AODVjr算法和Cluster-Tree算法而言,ZBR路由算法在一定程度上缓解了AODVjr算法和Cluster-Tree算法存在的问题,所以,本文在ZBR算法基础上做出改进。

2 GRA-ZBR路由算法

2.1 灰色关联理论

灰色系统是由邓聚龙教授在20世纪80年代提出的科学理论[11],其中,灰色关联分析算法根据各影响因子在发展过程中出现的相似或差异情况来描述它们之间的关联程度。本文采用灰色关联分析算法来分析目的节点接收到的各RREQ消息中携带的影响因子。目的节点选择灰色关联度最大的RREQ消息回复RREP消息,并将该RREQ消息转发路径作为数据分组转发路径。灰色关联分析算法主要步骤如下:

1)选择影响因子

ZBR路由算法将路径长度作为路径选择的唯一度量因素,这将导致网络性能随着时间推移而快速下降。本文在考虑路径长度因素的基础上,进一步将节点剩余能量、链路质量、节点剩余队列长度等作为影响评估因子。其中,链路质量反映出节点间距离大小,节点剩余队列长度反映出链路的拥塞程度。

2)RREQ消息处理

路由发现过程中,目的节点会接收到来自多个中间节点转发的RREQ分组。假设目的节点d接收到m条RREQ分组,则由这些RREQ分组组成的序列如

3)影响因子序列

RREQ分组由代表不同含义的字段组成,将代表特定影响因子的n个字段读取出来。由此生成影响因子序列,如

此外,X还可以写成矩阵形式,如

4)无量纲化处理

根据各影响因子对路径好坏的正相关性和负相关性,将影响因子分成效益型因子(剩余能量、链路质量、剩余队列长度)和成本型因子(路径长度)。效益型因子和成本型因子的处理方式[12]为

5)参考序列

为了更准确地反映出各RREQ消息的优劣程度,本文根据实时网络状况设定最优、最差两个参考序列,分别如

6)灰色关联系数

影响评估因子的最优、最差灰色关联系数[12]的计算式如

式中:ξ为分辨系数,且有ξ=0.5。

7)灰色关联度

各条RREQ消息的最优、最差灰色关联度的计算式为

式中:ρk为各影响因子的加权值,满足

8)RREQ消息灰色关联度

各条RREQ消息的灰色关联度[12]的计算式为

GRA-ZBR算法实际上是将各条RREQ消息中的影响评估因子字段分别与最优、最差参考序列相比较,最终计算最优灰色关联度占灰色关联度总和的比重。所占比重越大,表明该条RREQ消息中影响评估因子与最优参考序列关联越大,该条RREQ消息的转发路径质量越好。

2.2 GRA-ZBR路由算法实现过程

与经典ZBR算法相比,GRA-ZBR算法主要对路由发现过程做出改进,如图2所示。

GRA-ZBR路由算法主要步骤如下:

步骤1,有数据传输需求的节点首先查询自身路由表,若具有目的节点相关表项,则根据该目的路由表进行数据分组转发;否则,判断自身节点类型。

步骤2,若源节点为RN-节点,则使用Cluster-Tree路由算法转发数据分组;若源节点为RN+节点,则进入路由发现过程。

步骤3,将源节点的剩余能量、剩余队列长度、链路质量、路径跳数等信息添加到RREQ消息对应字段。

步骤4,中间节点接收到RREQ消息后,判断自身是否为目的节点:若当前节点为中间节点,则更新RREQ消息中对应字段,将新的RREQ消息向周围节点转发出去。根据木桶原理可知,通信链路性能取决于最差的因素,所以,剩余能量、剩余队列长度以及链路质量字段更新方式如下:将当前节点对应影响因子数值与RREQ消息中对应字段数值作比较,它们中的较小值成为新的RREQ消息中对应的字段数值。另外,每经过一个中间节点,路径跳数字段的数值加1。

步骤5,目的节点接收到RREQ消息后不会直接回复RREQ消息,而是启动定时器。通过灰色关联分析算法计算在定时器时间段内接收到的各条RREQ消息的灰色关联度,其中,不同的影响因素对路径好坏影响程度不同。由于节点剩余能量因素不仅反映了路径的稳定性,还与路径长度因素一起影响着网络整体生存时间。因此,为节点能量分配的权值最重,ρk为0.4。针对节点频繁移动的场景,若在路径选择时考虑LQI因素,则可以有效延长路由有效时间。所以,LQI因素的权重设置为0.3。其余两个影响因素的权值均设为0.15。为了简化算法复杂度,在网络运行期间,上述影响因子权重固定不变。

步骤6,目的节点选择灰色关联度最大的RREQ消息回复RREP消息。

步骤7,源节点接收到RREP消息后,建立源节点和目的节点之间数据分组转发路径。

3 仿真分析

为了验证GRA-ZBR算法的性能,本文采用NS2.35+Cygwin软件平台,在IEEE 802.15.4PHY层和MAC基础上来实现网络层的仿真。本文将GRA-ZBR算法与Zig Bee网络经典路由算法AODVjr和ZBR在不同节点数量、不同移动速率等场景下进行仿真实验,性能指标包括分组投递率和平均端到端时延。所有仿真结果都是网络独立运行50次后取得的算术平均值。实验过程中所有节点随机分布,数据分组最大联机数为10个,平均发包率为1 packet/s,其余参数设置如表1所示。

3.1 分组投递率

图3为最大移动速率设置为6 m/s时,3种算法在不同节点数量场景下的分组投递率比较,可以发现,随着网络规模逐渐加大,网络中的冗余RREQ消息增多,网络拥堵现象越来越频繁,所以3种算法的分组投递率都有所降低。但由于GRA-ZBR算法在选择路径时考虑到节点剩余队列长度这一因素,有效避免选择堵塞节点作为数据分组转发的中间节点,在一定程度上缓解了网络拥堵问题,所以性能优于AODVjr算法和ZBR算法。

图4为节点数量固定在80时,3种算法在不同节点最大移动速率场景下的分组投递率比较情况。随着节点移动速率加快,通信链路质量变差,网络逐渐出现间歇性连接,3种算法的分组投递率曲线均呈下降趋势。对于只考虑路径跳数的AODVjr算法和ZBR算法而言,分组投递率下降速率随着节点移动速率而增加。但由于GRA-ZBR算法在路径选择时添加了路径质量这一度量因素,转发数据分组使用的链路不易断裂,所以,分组投递率下降趋势较为平缓。

3.2 平均端到端时延

图5为最大移动速率设置为6 m/s时,3种算法在不同节点数量场景下的平均端到端时延比较,可见,随着网络节点数量的增加,网络拥塞情况日益严重,数据分组在排队等待阶段花费的时间越多,3种算法的平均端到端时延均呈上升趋势。尽管AODVjr算法可以选择源节点与目的节点之间的最短路径转发数据分组,但AODVjr算法在网络拥塞情况较为严重。而GRA-ZBR算法在考虑路径长度基础上,避免选择拥塞情况较为严重的节点作为中间节点,所以性能优于其他算法。

图6为节点数量固定在80时,3种算法在不同节点最大移动速率场景下的平均端到端时延比较结果,随着网络中节点移动性增强,转发路径上的通信链路逐渐开始断裂,越来越多的数据分组需要重新寻找转发路径,所以3种算法的平均端到端时延越来越大。但是由于GRA-ZBR算法在路径选择时选择链路质量作为路由度量因素,有效降低了中间链路发生断裂的可能性,所以GRA-ZBR算法的性能优于AODVjr算法和ZBR算法。

4 小结

节点移动特性逐渐成为Zig Bee网络路由算法设计的一大挑战,而经典Zig Bee网络ZBR路由算法仅以路径长度作为路径选择依据,未考虑实时网络链路状态,从而导致网络性能下降。本文针对这一问题,提出一种基于灰色关联的Zig Bee网络混合路由算法GRA-ZBR,该算法根据链路实时能量水平、拥塞程度、链路质量以及路径长度作为路由度量依据,选择最佳路径进行数据传输。仿真结果证明,GRA-ZBR算法在较大网络规模和移动速率的复杂场景下,仍然能将分组投递率和端到端时延等性能指标控制在可接受范围内,验证了GRA-ZBR算法的有效性。但由于GRA-ZBR算法在RREQ消息中增加了3个字段,所以,系统控制开销会稍高于原ZBR算法。

参考文献

[1]任智,李鹏翔.基于分段的Zig Bee网络按需可扩展地址分配算法[J].通信学报,2012,33(5):131-137.

[2]白乐强,王玉涛,孙晶晶.基于邻居表的能量均衡Zig Bee树路由改进算法[J].计算机工程与设计,2015,36(12):3204-3208.

[3]韩挺.基于信任理论的路由协议安全技术研究[D].北京:北京邮电大学,2015.

[4]钱志鸿,朱爽,王雪.基于分簇机制的Zig Bee混合路由能量优化算法[J].计算机学报,2013,36(3):485-493.

[5]AL-JEMELI M,HUSSIN F A.An energy efficient crosslayer network operation model for IEEE 802.15.4-based mobile wireless sensor networks[J].IEEE sensors journal,2014,15(2):

[6]谢忠明,何华冰,李云飞.一种基于链路状态感知的Zigbee多径路由算法[J].微电子学与计算机,2015,32(9):65-75.

[7]GOMEZ C,BOIX A,PARADELLS J.Impact of LQI-based routing metrics on the performance of a one-to-one routing protocol for IEEE 802.15.4 multihop networks[J].Eurasip journal on wireless communications&networking,2010,4(2):50-50.

[8]SECCI L,BURATTI C.Reducing traffic congestion in ZigBee networks:experimental results[C]//2013 9th International Wireless Communications and Mobile Computing Conference(IWCMC).Sardinia:IEEE,2013:627-632.

[9]ICHIHARA T,MITANI T,SHINOHARA N.Study and development of an intermittent microwave power transmission system for a ZigB ee device[C]//2014 IEEE Wireless Power Transfer Conference(WPTC).Jeju:IEEE,2014:40-43.

[10]MURUGAN T S.Shortest energy based optimal route in zigbee mesh network[J].International journal of applied engineering research,2015,10(15):35258-35260.

[11]宋倩倩,王宏刚,卢光跃.基于灰色关联度的Leach算法的改进[J].电视技术,2015,39(3):144-147.

ZigBee路由算法 篇6

ZigBee是一种基于802.15.4协议的无线网络技术,具有低速率、短距离、高可靠性、低功耗等特点,常用于无线传感器网络(WSN)以及其他无线个域网络(WPAN)的组建,在工业控制和监控、家庭网络、楼宇自动化、汽车自动化等领域发挥着越来越重要的作用[1]。

目前,ZigBee网络采用的树状路由协议只是简单地根据节点间父子关系进行路径创建和数据的传输[2],当节点收到数据后,如果自己不是目的节点,就将数据交给父节点进行中继直至目的节点,这种处理方式虽然较为简单,但很容易产生较长的路径,消耗网络更多的能量,增加网络的时延[2,3]。

本文提出一种改进的基于ZigBee树状路由的协议ATSPF(Address Transforming Short Path First,地址转换路径最短优先),该算法的核心思想有两点,一是如何将ZigBee网络中节点的16位网络地址转换为树的逻辑地址;二是如何根据逻辑地址计算出所有邻居节点到目的节点的跳数,并选择到目的节点路径最短(以去往目的节点跳数最少为判断依据)的邻居为下一跳地址。

1 Zigbee树状路由算法

已在ZigBee网络中的节点允许一个新节点通过它加入网络时,它们之间就形成了父子关系,此时,父节点通过分布式机制为子节点分配一个16位的网络地址[2,3]。以下是几个与树状路由相关的基本概念:

协调器:主节点,通常一个网络只有一个协调器,协调器管理网络中的其他节点,并选择适当的参数初始化网络。

Cm:每个父节点最多可连接的子节点个数。

网络深度d:节点到协调器的跳数。

Lm:网络的最大深度。

Rm:子节点中最多可连接的路由节点个数。

Cskip(d):网络深度为d的父节点为其子节点分配的地址之间的偏移量。Cskip(d)的计算方法见公式(1):

Cskip(d)={1+Cm(Lm-d-1),Rm=11+Cm-Rm-CmRmLm-d-11-Rm(1)

ZigBee网络中有两类设备,分别叫做FFD(全功能设备)和RFD(精简功能设备)。RFD设备不能接受新的节点加入网络,其Cskip(d)=0; FFD设备可以接受新的节点加入网络并为其分配一个16位的网络地址,其Cskip(d)>0。ZigBee 协议中规定, 协调器的网络深度为0, 其网络地址也为0。父节点为第n个子节点(n=0,1,2,3…)分配网络地址An的方法见公式(2),其中Aparent表示当前父节点的网络地址[4]。

An={Aparent+Cskip(d)n+1,FDEAparent+Cskip(d)Rm+1,RFD(2)

为方便起见,本文以图1所示拓扑进行描述和说明。

如图1所示网络,Cm=3,Lm=3,Rm=3,通过公式(1),可计算出各个网络深度的偏移量Cskip(d);通过公式(2),可得出各节点的网址地址,如图2所示。

文献[4,5]对树状路由寻址过程进行了详细的说明,过程如下:节点接收到数据后,首先检查自己是否为目的节点, 如果是则接收数据;否则检查自己的后代节点是否为目的节点,如果是则将数据送到指定的子节点;如果不是,则将数据送给其父节点进行中转。如图2所示,若节点A要发数据到F,它总是将数据交给自己的父节点B进行中继,因此会建立A→B→C→D→E→F的路由,然而这并非最优的路径,若能选择A→J→E→F进行数据传输,则路由跳数更小,有利于平衡网络负载、延长网络生存时间[6,7,8]。

2 ATSPF路由算法

如前所述,当Zigbee网络使用原有的树状路由协议时,容易产生较长的路径,从而降低网络的各种性能。基于此,本文提出一种改进的树状路由协议ATSPF,该算法是将网络中各节点的16位网络地址转换成逻辑索引值列表,并根据索引值列表计算出所有邻居到目的节点的路由跳数,然后选择距离目的节点最近的邻居作为下一跳节点,据此来建立路由。ATSPF算法描述如下:

第1步:当节点收到数据后,发现自己或其子节点并非目的节点,此时节点不会将数据转交给上一级父节点进行转发,而是检查自己的邻居表,如果目的节点在其邻居表中,则直接进行传输,否则转入到第2步。

第2步:将邻居节点和目的节点的16位网络地址转换成逻辑索引值列表,对于同一颗子树分支中不同网络深度的子节点,其逻辑索引值列表的格式见表1。

列表中的元素个数为网络的最大深度值,处于同一网络深度的子节点,其逻辑索引值列表中的元素Ix从1开始,根据16位网络地址的大小顺序依次加1分别取值。如图2所示网络拓扑,各节点转换后的逻辑索引值列表如图3所示。

第3步:根据逻辑索引值列表计算所有邻居节点到目的节点的跳数,并把到目的节点跳数最小的邻居节点作为下一跳(如果有两个以上邻居节点到目的节点跳数同为最小,则随机选择一个节点作为下一跳)。

假设有两个节点S和D,二者的逻辑索引值列表分别为:[S1S2 S3 … Sn]和[D1 D2 D3 … Dn],计算S到D的跳数方法如下:

①查找S、D节点最近的共同父节点节点C,并 计算出节点C的网络深度DCO,DCO等于节点S和节点D的逻辑索引值列表对应元素相等的个数。

②计算出节点S和节点D的网络深度DS和DD, 其值等于各自逻辑索引值列表中不等于0的元素个数。

③节点S到节点D的跳数为Count=|DS-DCO|+ |DD-DCO|。

例如:节点S和节点D的逻辑索引值列表分别为:S:[1,2],D:[2],,即S1=D1=2,即两节点对应元素相等的元素个数为1,所以DCO=1;节点S和节点D的逻辑索引值列表中各有2个和3个元素不为0,因此DS=2,DD=3;则节点S到节点D的跳数为|2-1|+ |3-1|=4。

根据以上规则,以图3为例,A节点要发送数据到F节点,先计算其所有邻居(节点J、B、G)到F的跳数,如表2所示。

此时A节点就会选择节点J为其下一跳节点,节点J会按照同样的方法计算其所有邻居节点(E、D、A)到节点F的跳数,并将跳数最小的的节点E作为下一跳,并将数据通过E直接传输到F,这样就建立起完整的传输路径A→J→E→F。

3 实验与仿真

为了验证上述算法,本文采用NS-2.30软件对ATSPF和ZigBee树状路由两种协议进行仿真,通过比较平均路由跳数、分组丢失率和端到端延时、协调器能量值变化四个参数来衡量网络的性能。仿真网络场景范围100 m×100 m,100个通信节点,协调器位于网络中心,其余节点分布在周围,节点间最大通信距离为15 m,数据流类型为CBR,分组包大小为60 Bytes,Cm=4,Rm=4,Lm=6,假设进行数据传输的源节点和目的节点分别为10对,15对,20对,30对,40对,仿真时间100 s,仿真数据均为仿真20次取均值。

图4是ATSPF和ZigBee树状路由协议建立路由时的平均跳数对比,可以看出,随着发起路由寻址次数的增加,参与寻址的节点数越来越多,通信范围也越来越大,平均路由跳数因而也随之增加。由于ATSPF算法根据逻辑索引地址,选择到目的节点跳数最小的邻居节点为下一跳,路径最短,这样可以减少节点能量消耗,延长网络生存时间。

图5显示的是两种协议分组丢失率对比,随着通信节点的增加,网络会变得拥塞,因此丢包率会逐渐上升,尤其是树状路由协议,当节点很多的时候,由于父节点中转的数据越来越多,其丢包率会明显增加;ATSPF算法选择跳数最小的路径进行传输,减轻了父节点的处理任务,因而丢包数也较少。

图6和图7分别是节点间通信的端到端延时图以及协调器能量值变化图。可以看出,相比于树状路由协议,ATSPF路由算法的路径更短,其时延也更小,实时性优于树状路由协议;而随着通信节点的增加,协调器的能量会逐渐减少,因为ATSPF算法并不总是把数据转交给协调器中继,比树状路由协议更加节省协调器的能量,这对于延长网络的生存时间也更有利。

4 结束语

本文提出一种基于ZigBee树状路由的改进协议ATSPF,将ZigBee网络地址转换为逻辑索引值列表,并通过逻辑索引值计算出所有邻居节点到目的节点的跳数,选择跳数最小的节点作为下一跳地址进行路径的建立。通过NS2仿真验证,相比于ZigBee网络原有树状路由协议,ATSPF协议可以有效减少路由跳数,降低分组丢失率和传输时延、延长网络生存时间。

参考文献

[1]贺玲玲.Zigbee传感网络Cluste-Tree改进路由协议算法研究.传感技术学报,2010;23(9):1303—1307

[2]郑娟毅,石明卫.基于ZigBee技术的无线传感器网络树形路由的研究.西安邮电学院学报.2010—1;15(1):23—26

[3]张栋.ZigBee无线传感器网络路由协议研究与优化.济南:山东大学.2009

[4]朱向庆,王建明.ZigBee协议网络层的研究与实现.电子技术应用,2006;32(1):137—140

[5] BI Jun-lei1,Chen Jing.Research on routing protocols for wirelesssensor networks.Computer Knowledge and Technology(AcademicEx-change),2007;06(1):54—55

[6]杜焕军,张维勇,刘田国.zigbee网络的路由协议研究.合肥工业大学学报,2008;31(10):1617—1621

[7]邹国霞,李燕.Zigbee中Cluste-Tree路由算法改进研究.制造业自动化,2011;7(11):110—112

ZigBee路由算法 篇7

ZigBee是一种高可靠性、低功耗、低数据传输速率、低成本的短距离无线网络技术, 广泛地应用于煤矿、工业控制、环境监控等领域。由于ZigBee技术出现较晚, 其规范及应用仍在不断的完善和发展中。本文在对ZigBee协议规范研究与分析的基础上, 针对传统ZigBee网络树路由算法[1,2,3,4,5]中存在的问题, 利用基于NS2 (Network Simulator Version 2) 的ZigBee网络仿真平台对ZigBee网络路由协议性能进行分析研究, 提出一种改进的基于节点能量感知与能量均衡的ZigBee网络树路由算法, 用以改善ZigBee的网络性能, 延长无线传感器网络节点的使用寿命。

1 ZigBee网络树路由算法

1.1 网络地址分配机制

ZigBee网络树路由算法规定每个父节点最多可以连接Cc个终端子节点, Rc个路由子节点, 且最大网络深度为dc。设定中心协调器的网络地址初始值为0, 其网络深度为0。

如果某父节点网络地址为Ap, 网络深度为dp, 父节点与其子节点的地址偏移量为Cskip (dp) , 则此父节点为第n个终端子节点分配的网络地址为

此父节点为第k个路由子节点分配的网络地址为

式中:1≤n≤Cc-Rc;1≤k≤Rc;

1.2 树路由寻址

在无线传感器网络中, 一个终端子节点在向其他目的节点传输数据包时, 不能直接向对应目的节点发送数据, 而是需要通过其上级父节点将待发数据包转发至目的节点。

已知一个路由子节点的网络地址为A, 网络深度为d, 则该路由子节点转发数据包到网络地址为AM的目的节点时, 需要做以下处理。

首先, 该路由节点依据式 (4) 判断目的节点是否为其子节点:

若目的节点是其子节点, 则路由的下一跳节点地址为

若目的节点不是其子节点, 则路由的下一跳的节点地址就是其父节点地址。

在传统ZigBee网络树路由算法中, 节点只会根据目的节点的网络地址确定路由, 而不考虑是否为其邻居节点[4], 即使目的节点就在发送节点的一跳范围之内, 数据包也必须沿树路由传送到目的节点, 而不能直接传送到目的节点。因此, 有些节点在频繁传送数据时, 会过快耗尽节点上的能量, 导致网络瘫痪[5,6]。鉴于以上问题, 本文在引入邻居表[7]的基础上, 综合考虑路由开销和剩余能量等因素的情况下, 提出基于节点能量感知与能量均衡的ZigBee网络树路由优化算法。

2 能量均衡算法

当节点需要选择一条路径来传输数据时, 通过能量均衡控制策略从路径上有剩余能量的节点中选择合适的节点进行数据发送[2,8]。该算法在提高ZigBee网络路由性能的同时, 可避免节点过早耗尽全部能量而失效的问题。

ZigBee网络树路由算法在路由发现和路由维护期间利用路径损耗作为选择标准。假设路径P的长度为L, 那么路径损耗就是求整个路径在每一条链路上的链路损耗总和:

式中:C{[Di, Di+1]}为从节点Di到节点Di+1这条链路上的链路损耗。

路径P的累积路径损耗可变换为

式中:f (Ei, Ei+1, Eavg) 为能量开销函数, Ei, Ei+1分别为第i个、第i+1个节点的剩余能量, Eavg为网络节点的平均能量。

另外, 设数据帧在链路上转发的能量消耗为J, 那么对于有r条链路的路径P来说, 能量消耗为

设路径P为采用能量均衡算法发现的路径中的最优路径, 路径Q为发现的任意其他一条路径, 则最优路径应该满足如下条件:

最优路径满足的条件可以化简为

式中:Ji, Jj, Jm分别为第i个、第j个、第m个节点的能量消耗;Em, Em+1分别为第m个、第m+1个节点的剩余能量。

在实际应用过程中, 一般不存在最优路径。能量均衡算法通过综合考虑总的路径损耗和能量消耗选择次优路径[3], 该路径满足的条件为

式中:ε为表示路径能量消耗对路径选择影响程度大小的参数。

次优路径的选择条件是累积路径损耗和路径能量消耗均较低的路径, 因此, 符合均衡能量和降低功耗2个方面的要求。

3 基于能量感知与能量均衡的ZigBee网络树路由算法

在传统的ZigBee网络树路由算法中只通过父子关系选择路由, 建立的路由不够优化, 会造成网络较大的路由消耗。因此, 为降低节点在数据传输过程中的路由开销, 在路由选择时需要将邻居节点纳入到考虑范围内[6]。

基于能量感知与能量均衡的ZigBee网络树路由算法在引入邻居表的基础上, 同时应用最小路径能量消耗、节点能量感知和能量均衡3种策略。该算法在原有树路由算法的路由发现过程中, 将邻居节点考虑在内, 在确定路由的下一跳节点时, 在更大的搜索范围内寻找路由开销最小的网络路径来降低功耗。同时根据路径上节点的剩余能量来确定路径选择, 为保证网络的生存周期, 尽量避开低能量的节点, 选择累积路径损耗和路径能量消耗较低的路径发送数据, 从而降低网络的总体能耗。

3.1 基于能量感知与能量均衡的树路由选择策略

基于能量感知与能量均衡的树路由选择策略把路径上节点剩余能量作为路径选择的依据[7], 尽量避开低能量的节点, 防止低能量节点死亡现象的过早发生。为此, 根据节点上能量剩余的多少将节点划分为不同的域, 一个是标准域, 一个是警告域。在划分区域前, 先确定一个能量阈值Cwarning, 该阈值根据每个节点正常工作时的维持能量和网络生命来确定。如果节点当前剩余能量值大于Cwarning时, 该能量范围内的路由节点就可以用来选择作为参与数据的转发节点, 属于标准域;如果节点当前剩余能量值小于Cwarning, 在路由选择的过程中尽量避开这些节点, 该区域范围内节点不宜参与数据的传输, 属于警告域。

3.2 基于能量感知与能量均衡的路由算法设计

将目的节点和源节点的网络深度分别用dDst和dSrc表示, 根据ZigBee地址分配机制可以得到同时包含源节点和目的节点的最大深度子树节点, 并将其网络深度用dmax表示, 则根据树路由算法可得路由开销为

基于能量感知与能量均衡的ZigBee网络树路由算法具体步骤如下:

(1) 初始化阶段。首先, 网络的中心协调器根据树状网络的地址分配机制为每一个进入网络的无线节点分配一个唯一的网络地址。然后, 每个网络节点按照各个节点的地址初始化各自的邻居表, 并保存好其邻居节点的相关信息。最后, 将邻居节点的剩余能量与能量阈值Cwarning进行比较, 判断所属区域, 进一步判断是否参与数据转发。

(2) 路由选择过程。若目的节点包含在源节点的邻居表中, 那么源节点就直接向目的节点发送数据;若目的节点为源节点的后代节点, 那么就按照原有的路由算法通过子节点向目的节点转发数据;若不是上述2种情况, 那么就从邻居表里查找位于标准域的路由节点, 计算每条路径的路径损耗和路径消耗, 取最小者MinHop作为下一跳节点;将下一跳节点NextHop的地址附加到该数据包里, 发送数据, 并且修改自身的剩余能量值, 发送消息给其邻居节点, 修改邻居节点的邻居表中该转发节点的相关信息。

3.3 仿真结果及分析

将基于能量感知与能量均衡的ZigBee网络树路由算法与传统ZigBee网络树路由算法在NS2环境中进行仿真实验, 对比2种算法在传输时的网络传输性能。仿真结果表明, 基于能量感知与能量均量的ZigBee网络树路由算法可有效降低网络总体功耗和端到端的传输时延, 延长网络节点寿命。

NS2仿真环境参数设置:网络覆盖面积为500m×500m, 网络节点数目为30个, 数据包均为512B, 信道带宽为3 Mbit/s, 节点的初始能量均为10 000J, Cc=4, Rc=3, dc=4。

ZigBee网络总体耗能随时间变化的曲线如图1所示。从图1可看出, 由于改进算法在路由的过程中综合考虑了最小路由开销, 尽量选择具有总的路由开销最小的路径进行传输数据, 从而节省了网络的总体能耗。

ZigBee网络中死亡节点个数随时间的变化曲线如图2所示。从图2可看出, 在仿真的起始阶段, 就2种算法而言, 由于每个节点的能量都比较充足, 基本不会产生死亡节点。但随着网络运行仿真时间的增长, 由于传统ZigBee网络树路由算法没有考虑到节点的剩余能量值, 有的节点由于频繁作为转发节点而消耗很大的能量, 死亡节点的出现时间较早。同时, 由于改进算法避开剩余能量低的节点, 通过选择能量多的节点进行数据转发, 均衡了网络的负载, 改善了个别节点过早死亡的现象, 从而延长了网络寿命。

ZigBee网络中端到端的平均时延变化曲线如图3所示。从图3可看出, 当节点的运动速度降低时, 2种路由算法端到端的平均时延都会随之降低。随着节点移动的减少, 节点链路被断开的概率也随之下降, 各节点之间的路由失效次数从而减少, 时延也随之降低。

4 结语

针对传统的ZigBee网络树路由算法, 提出了一种改进的基于能量感知与能量均衡的ZigBee网络树路由算法。该算法重点考虑了ZigBee网络低功耗、低数据传输率的特点。仿真结果表明, 该算法能避开能量过低的节点进行数据传输, 提高了网络性能, 降低了总体能耗, 延长了传感器节点的寿命。

摘要:针对传统ZigBee网络树路由算法存在节点能量消耗大的问题, 提出了一种改进的基于能量感知和能量均衡的ZigBee网络树路由算法。该算法将邻居节点考虑在内, 在确定路由的下一跳节点时, 在更大的搜索范围内寻找路由开销最小的网络路径来降低功耗, 同时根据路径上节点的剩余能量选择累积路径损耗和路径能量消耗较低的路径进行数据发送, 从而降低了网络的总体能耗。仿真结果表明, 该算法能避开能量过低的节点进行数据传输, 实现了节点的能量均衡, 延长了节点的生存时间。

关键词:ZigBee网络,树路由算法,路径能量损耗,节点剩余能量,低功耗路径,能量感知,能量均衡,邻居表

参考文献

[1]钱学忠, 吴丽杰, 窦维江.基于AODV的能量优化路由协议[J].计算机工程与设计, 2007, 28 (12) :2839-2841.

[2]丁飞, 张西良, 张世庆.基于ZigBee的无线通信技术及其应用[J].江苏通信技术, 2006, 22 (5) :24-27.

[3]LEE S J, BELDING-ROYER E M, PERKINS C E.Scalability study of the ad hoc on-demand distance vector routing protocol[J].International Journal on Network Management, 2003, 13 (2) :97-114.

[4]郝晓辰, 窦晶晶, 刘浩然, 等.基于链路质量的WSN代价均衡路由选择算法[J].电子与信息学报, 2010, 32 (5) :1212-1218.

[5]CHAKERES I D, KLEIN-BERNDT L.AODVjr, AODV simplified[J].Mobile Computing and Communications Review, 2002, 6 (3) :100-101.

[6]GOWRISHANKAR S, SARKAR S K, BASAVARAJU T G.Performance analysis of AODV, AODVUU, AOMDV and RAODV over IEEE 802.15.4in wireless sensor networks[C]//2nd IEEE International Conference on Computer Science and Information Technology, Beijing, 2009.

[7]KHAN M, AMINI F, MISIC J, et al.The cost of security:performance of ZigBee key exchange mechanism in 802.15.4beacon enabled cluster[C]//3rd IEEE International Conference on Mobile AdHoc and Sensor Systems, Vancouver, 2006.

ZigBee路由算法 篇8

1 Zig Bee技术特点与发展现状

Zig Bee技术是一种低功耗、低成本、动态拓扑的短距离无线传感网络技术。它可以应用在短距离范围内的电子设备之间, 实现低传输速率的数据传输, 节省资源。Zig Bee无线传感技术不需要实时传输或更新数据, 比较适合应用于工业控制这样复杂的环境中。

1.1 Zig Bee技术特点

(1) Zig Bee网络采用空闲时休眠的技术, 因此, 具有低功耗的特点。

(2) Zig Bee网络采用了碰撞避免机制, 为了避免数据发送过程中数据之间的冲突, 为固定带宽的业务预留空隙, 同时在整个Zig Bee无线网络中采用了动态组网的功能, 通过自动路由的方式进行数据之间的传输, 因此, Zig Bee网络信息传输更加稳定, 增强了其可靠性。

(3) 对通信时延的应用进行优化, 缩小时延。

(4) Zig Bee一般采用星状、网状网络结构, 包含一个主节点和若干个子节点, 形成一个节点众多的大容量网络。

(5) 采用AES-128加密算法, 并且对数据进行完整性的检查, 提高数据传输的安全性。

(6) Zig Bee网络采用低速率进行数据传输, 以此来满足数据传输的应用要求。

1.2 Zig Bee的发展现状

随着无线网络技术的不断发展, Zig Bee技术在很多领域得到了广泛的应用, 例如:无线传感器网、射频识别、安全监视、无线遥控器等方面。虽然Zig Bee技术在各个领域中得到了广泛的应用, 但是如何改进Zig Bee技术逐渐成为现在网络性能发展的热点。目前, 我国以清华大学、哈尔滨工业大学为首的各大高校已经开始了对Zig Bee无线网络技术的研究, 重点在网络层和加密层。路由选择算法主要负责将收到的数据通过最优路径分组转发到目的节点。与传统的无线网络路由协议相比, 无线传感网中节点是通过电池进行供电的, 而传统无线网络的路由协议不能满足无线传感网的需求。因此, 我们应该选用相应的路由选择策略。

(1) 泛洪式路由选择策略。数据由源节点通过广播的方式发送到各个相邻节点, 相邻节点再将收到的数据转发给自己本身的各个相邻节点, 最终完成数据的发送。

(2) 动态式路由选择策略。网络中的节点通过动态地分析相邻节点接收数据的状态, 动态地选择最优路径, 这种方式应用最为广泛。

(3) 随机式路由选择策略。节点通过自身任意一条路径将接收到的数据转发到目的节点。

2 Zig Bee无线网络的路由协议研究

2.1 Zig Bee技术体系结构

Zig Bee技术是一种高效、低功耗的无线通信技术, 它的体系结构由层来量化其各个简化标准, 每一层向上层提供实体服务。Zig Bee的技术体系由物理层、媒体接入控制层、网络层以及应用层组成。

物理层的数据服务主要是通过无线信道发送和接收数据单元, 主要功能是进行链路质量的检测、信道的选择以及对数据包进行发送和接受等等。

MAC层也提供两种类型的服务, MAC层管理实体服务接入点向MAC层管理和数据提供相应的服务。MAC层的主要特点是信道的接入、信道管理、发送确认帧、发送连接和断开连接等。

网络层主要包括路由的建立、路由的维护以及数据转发机制并为新加入的设备分配网络短地址等功能。

Zig Bee应用层由应用支持子层、Zig Bee设备对象和制造商所定义的应用对象组成。应用支持子层包括处理数据单元APDU;APS数据传输机制等。Zig Bee设备对象的功能包括:建立网络中的安全机制、相应初始者的绑定要求、发现网络中存在的设备并向其提供相应的服务。

2.2 Zig Bee网络组建

没有加入到任何网络的Zig Bee可以组建一个新的ZigBee网络, 而发起组建网络的节点就是这个网络的协调器。首先协调器需要设定自己的通信信道, 通过检测16个信道, 选择其中的空闲信道设置为该网络的通信信道。其次要对信道进行扫描, 发出信号请求, 确定网络地址。完成网络参数设定之后, 协调器接收其它节点加入, 未加入网络的节点首先进行网络发起操作, 发起操作完成之后, 子设备开始选择合适的网络以及父设备, 并发出连接请求。父设备首先检测子设备的网络地址是否存在, 如果存在直接将对应的短地址分配给子设备, 否则分配新的短地址给请求接入的子设备。子设备在加入网络前, 会更新自己的短地址以及邻居表。

2.3 Zig Bee网络分配机制

Zig Bee网络由一个16位网络短地址和一个64位IEEE扩展地址构成整个网络的节点。16位网络地址仅在网络内部使用, 用于路由机制和数据的传输。由父节点在节点加入网络时动态分配, 分配的原则如下: (1) 负责节点之间数据传输的16-bit的网络地址; (2) 从此节点到根节点协调器的最短跳数即网络深度, 它标识该节点在网络拓扑中的层次位置。

当协调器建立一个新的网络之后, 将会初始化网络地址与网络深度, 通常情况下, 网络地址与网络深度都会设置为0。

Zig Bee网络中网络深度分配的规律如下:

(1) 假设节点n是接入父节点的第n个没有路由能力的节点, 则它的父节点将会为它分配地址:

(2) 假设节点n是接入其父节点的第n个具有路由能力的节点, 则它的父节点将会为它分配如下地址:

当一个路由节点Cskip (d) 为0时, 子节点将不具备分配地址的能力。

2.4 Zig Bee路由协议分析

路由算法主要是为了能够充分利用网络的带宽竭尽所能地提高数据传输的速率和传输的质量。Zig Bee无线网络中数据的传输速率较低。因此, Zig Bee路由算法要能够充分利用有限的能量节点传输数据, 节点受路由选择的影响, 同时由于存储空间有限, 只能获取少量的局部网络信息。根据网络节点的限制应该采用最优路径进行数据的传输。在Zig Bee网络中, 不同类型的节点扮演着不同的角色, 如端节点只能进行简单的数据收发, 不能充当路由器, 因此, 传统的无线传感网络的路由协议并不适用于Zig Bee网络。针对不同的ZigBee网络的拓扑结构, 设计与之匹配的路由算法。Zig Bee路由协议主要规范路由的相关算法和功能, 在Zig Bee网络中一般采用树路由算法和无线自组织按需距离矢量相结合的混合路由算法。

3 结语

Zig Bee作为近年来发展迅速的通信技术之一, 具有非常广泛的应用特性。相信随着技术的不断成熟, 其将为人们的生产生活带来更大的便利。

摘要:ZigBee无线网络是一种新兴的短距离通信的无线个域传感网, 它的主要特点是功率低、设计成本低, 在网络迅速发展的过程中, 逐步渗入到军事、工业、智能家居等领域, 为人们的日常生活带来极大的方便。因此, 应该投入更多的人力物力对ZigBee无线网络进行研究和开发, 提高ZigBee网络性能, 使其能够更好地为社会的发展提供有力的支持。

关键词:无线个域网,ZigBee,ZigBee路由算法

参考文献

[1]杜焕军, 张维勇, 刘国田.ZigBee网络的路由协议研究[J].合肥工业大学学报 (自然科学版) , 2008, 31 (10) :75-76

[2]贺玲玲.ZigBee传感网络Cluster-Tree改进路由算法研究[J].传感技术学报, 2010, 23 (9) :92-93

上一篇:经济增长波动下一篇:古代写景散文