明 芳
(贵州师范大学 机械与电气工程学院,贵州 贵阳 550025)
Zigbee C+A路由协议研究*
明芳
(贵州师范大学 机械与电气工程学院,贵州 贵阳 550025)
摘要:近年来,科学技术发展得越来越快,如何快速有效的获得信息,成为关注的焦点。随着传感器技术的研究及物联网的发展,人们开始关注Zigbee技术,然而,Zigbee还是一个比较新的技术,在很多方面都及需改进优化,特别是Zigbee网络层现存的路由协议存在大量的冗余分组被转发,大大增加了网络功耗,针对这个问题,提出了一种改进路由算法:该算法综合考虑了最短路由,能量均衡,大大降低了网络开销,同时提高了网络寿命,最后,使用NS2进行仿真分析,改进的方法在理论上是可行的。
关键词:Zigbee;网络开销;能量均衡;NS2 仿真
0引言
最近几年,随着三网融合及物联网的发展,使人们又再次把目光转向了Zigbee技术。但是Zigbee协议在某些方面仍有待于改进和完善,比如其网络层使用的两种路由协议:树形路由和按需驱动路由分别具有路径不够优化和能耗过大的不足。因此,对Zigbee路由协议进行研究分析后,指出了现有路由协议的问题,并针对这些问题对Zigbee路由算法进行了改进,改进后的路由算法在一定程度上降低了功耗、提高了网络寿命,这对Zigbee技术性能的提高和应用推广都将起到十分积极的作用。
1Zigbee节点设备及拓扑结构
Zigbee网络中存在两种设备,全功能设备(FFD)和半功能设备(RFD)。FFD节点通常作为网络协调器或路由,能和任何设备通信;RFD节点只能作为网络的终端节点,负责本地信息收集和数据处理,只能和FFD节点通信[1]。协调器是整个网络的控制中心,一个网络中只能有一个协调器。
协调器主要负责网络启动和配置,保持同网络设备的正常通信,确定网络的唯一标示符[2]。路由器用来转发消息,支持关联,它能获得由协调器分配的一定的16位短地址空间,其他节点可以通过路由器直接加入或者离开,并为加入的节点分配地址。终端设备不具有路由功能,其他节点不能通过终端设备加入或离开网络,只能和为它分配了16位短地址的父节点之间进行消息传输,信息也只有通过父节点获得,能够加入或离开网络。
Zigbee网络最常见的拓扑结构有星状、树状、网状三种,如图1所示。
图1 星状、树状、网状
在星状结构中,网络由协调器来控制,节点之间的通信,所有的设备只能与协调器通信。
在树状结构中,节点只与其父节点通信。
网状结构中,通过使用完全对等的点对点方式来进行通信,只要在通信范围内,全功能设备可以任何其他全功能设备通信。
2Zigbee路由协议
2.1地址分配机制
Zigbee网络中的节点在加入网络后都会收到其父节点为其分配的16位短地址,且每一个节点都有一个64位的唯一的IEEE地址。
(1)
An=Aparent+Cskip(d)·Rm+n
(2)
式中,1≤n≤(Cm-Rm)
2.2Zigbee树路由
树路由中,节点在收到数据时,通过式(3)判断节点是否是当前节点的后代来传播数据,若是,将数据帧往下级子节点传送,若不是,将数据帧往上级父节点转发。将目的节点的地址设为D,Zigbee当前路由器地址设为A,深度设为d,若式(3)成立,那么目的节点是当前路由器的后代:
A (3) 若已知目的节点是现节点的一个后代,并且目的节点是当前节点的子节点的同时是终端节点,那么下一跳的地址为: N=D(D>A+Rm·Cskip(d)) (4) 若目的节点不是现节点的后代,那么下一跳地址N可以通过式(5)计算而来,为: (5) 2.3AODVjr路由协议 一个完整的路由建立过程分三步完成,第一步:路由发现,广播路由请求分组,第二步:反向路由建立,单播路由请求回复,第三步:单播正向路由的建立。 2.4Zigbee C+A路由协议 根据节点是否具有路由功能将Zigbee网络中的节点分为RN+(具有路由功能),和RN-(无路由功能)两类。ZigBee网络层路由协议采取按需驱动路由算法和树路由相结合的路由协议,RN+节点通过AODVjr算法找到最优路径,通过路由表来获得下一跳地址,而RN-节点执行Cluster-Tree算法,通过计算得到下一跳地址。 3基于剩余能量RREQ控制的路由改进算法 Zigbee是着眼于低功耗,低速率的无线通信技术,低功耗是其发展优势,而Zigbee网络中的RN+节点在使用广播RREQ分组时,会产生使大量冗余的RREQ分组被转发,而这些冗余分组对路由的建立是没有起到任何作用,却占用了很多网络资源,消耗节点能量,占用节点内存,使网络提早死亡,因此,从两个方面,对Zigbee使用的路由协议进行了改进,首先对RREQ分组的泛洪广播范围进行控制,主要从两个方向进行改进,一是RREQ的传输范围,二是RREQ的传播方向;其次考虑节点的剩余能量,避免关键节点过早死亡。 3.1控制RREQ广播半径 若减小RREQ分组的广播半径,那么在网络中转发的分组就会减小,相应的网络需要的分组控制开销也会降低。因此,在进行分组转发之前,如果能够计算出目的节点和源节点的深度,只需将广播半径设置为两节点的深度之和就能保证至少有一个RREQ分组能到达目的节点。只考虑最差情况,即在树状拓扑下,分组沿父子关系进行递交,源节点与目的节点的公共父节点为协调器,即只要RREQ的传播半径Radius≤Hs+Hd(式中Hs为源节点深度,Hd为目的节点深度),就能满足要求,并且用这种方法算出的网络深度肯定不大于2*Lm,控制开销也大大小于Radius=2*Lm时的控制开销。若源节点与目的节点的公共父节点不是协调器,如图1所示,则广播半径为式(6): Radius=Hs+Hd-2H (6) 式中,H为公共父节点的网络深度。 这种算法确定目标节点的深度的思路为将目标地址所在的地址块范围不断缩小。通过内循环来确定目的地址所在的地址块,如果找到地址的块首地址与目的地址相等,则认为找到目的地址,目的地址为路由器,路由当前深度即为目的地址深度,若找到地址块范围包含了目的地址的地址,则将FDB置为1,表示找到目的地址所在地址块,然后跳出内循环,执行外循环把Hx(节点深度)加1,将刚刚内循环找到的地址块作为新的搜索范围,并将该地址块以新的地址偏移重新划分,然后继续执行上一步的内循环过程,直到空间块的块首或者目的地址是空间块中的终端节点,则认为在当前深度找到目的节点。由此,可以计算出目的节点所在的深度Hd。 下面先假设H=0,源节点与目的节点的公共父节点为协调器,然后从协调器向源节点发送一个分组,节点A在收到分组后求出下一跳节点地址D后,根据A 此时,通过公式Radius=Hs+Hd-2H可得RREQ分组的传输的最大范围,根据这种算法,动态的设置RREQ传输范围,当传输范围大于这个值时,不再对该分组进行转发,丢弃该分组。 3.2控制RREQ广播方向 由树路由的传播特性可知,若已知目的节点为当前节点的父节点,则将分组向当前节点的后代传播是没有意义的,不可能找到最优路径,同样,若目的节点为当前节点的后代,将分组向当前节点的父节点转发也没有太大意义,因此,当节点在转发分组前,若对目的节点的方向能先进行判断,可以大大减少网络中冗余分组的传播,以此来降低控制开销。 当前节点在对RREQ分组进行转发之前,先通过下面的伪码来判断哪一类节点转发RREQ: if(RREQ目的节点D是节点A的后代) F=“0”;//表示节点A的后代适合转发此RREQ e1se F=“1”;//表示节点A的父节点适合转发此RREQ 节点B收到节点A发送给它的一个RREQ分组后,对RREQ的处理执行如下伪码: if(F=“0”) {if(节点B是节点A的父节点) 丢弃RREQ; else 处理RREQ;//使用改进ZigBee路由协议 } else//RREQ中的标志位为“1” { if(节点B是节点A的一个子节点) 丢弃RREQ; else 处理RREQ;//使用改进ZigBee路由协议 } 改进的路由算法,限制了RREQ分组的传输范围,并控制了传播方向,很大程度上减少了无用的RREQ的转发,降低了网络控制开销。 3.3基于节点剩余能量的改进 改进后的路由算法大大的降低网络中的冗余分组,也一定程度上降低了节点的能耗,网络寿命有所提高。但是,具有路由功能的节点由于要进行路由发现,并对路由进行维护,因此其消耗的能量远远的大于通过树路由来进行分组转发的节点,而不具备路由功能的节点中网络深度小的节点由于要进行大量的数据传输和转发,也会由于负荷过大而使能量过早消耗完,某些关键节点的死亡,就有可能会造成网络分割,严重时甚至会引起网络失效。 假设每个节点最小剩余能量为Emin,节点初始能量值设为Estart,对于任意网络深度为Di的节点,其剩余能量为: (7) 式中,t表示网络运行时间,α表示Emin减小的速度的快慢,为一常数,仿真时使用α=2。 在基于RREQ广播控制的路由算法的基础上,每个节点收到RREQ分组后,先判断自身剩余能量是否低于给定的门限值Emin,如果低于,丢弃分组,源节点重新进行路由发现,以避开剩余能量过低的节点,若高于,按照3.2的改进算法处理REEQ。改进算法二的具体流程如下,S为源节点,A为转发节点,D为目的节点: (1)计算最大转发范围Radius,S广播RREQ。 (2)A节点收到RREQ,判断是否目的节点,若是,转到(3),否,转到(4)。 (3)回复RREP建立正向路由。 (4)判断节点剩余能量是否满足E>Emin,若满足,执行(5),若不满足,转到(7)。 (5)判断目的节点是否为为节点A后代,若是,执行(6),若不是,执行(8)。 (6)是,F=1,继续判断节点B是否为A父节点,若是,执行(7),若不是,执行(9)。 (7)丢弃该路由请求分组。 (8)否,F=0,继续判断节点B是否为A子节点,若是,执行(7),若不是,执行(9)。 (9)判断是否超出Radius,若超出,执行(7),若未超出建立反向路由并转发分组。 3.4仿真分析 使用NS2软件进行仿真分析,本次仿真只对协调器在网络边缘的网络情况进行仿真分析,Zigbee网络中有20个节点,仿真参数设置:网络运行时间设为500 s,数据流使用CBR,数据包长度:70 byte,发包速率设为2 p/s,每个节点初始能量设为1 000 J,改变CBR数据流个数,对改进算法二、改进算法一和ZBR路由协议的控制开销进行仿真比较,仿真结果如图1所示。 图1 改进前后控制开销比较 图1是改进前后路由控制开销的仿真结果,改进算法2的控制开销和改进算法一相差不大,由于算法二在算法一的基础上增加了能量控制,也就是说对于某些剩余能量低的节点,其处理的数据包小于改进算法一,因而减少了分组在网络中的传输,从而使网络的控制开销减小。 通过图2可以看出,改进算法二由于每个节点在对分组进行转发前都要先对节点剩余能量进行判断,是否高于门限值,当节点能量小于门限值时,会丢弃分组,因此找到的路径有可能不是最优路径,因而时延略大于改进算法一,但是,当网络对能量消耗要求较高,或者考虑延长网络寿命时,用稍微大一点的时延来换取网络较高寿命是值得的。 图2 改进前后端到端时延比较 从图3可以看出,改进算法二的平均跳数和改进算法一相差不大,由于剩余能量低的节点不处理分组,因此有些时候可能导致有些路径不是最优,因而平均跳数略大于改进算法一。 图3 改进前后平均跳数比较 下面,将CBR的数据流个数固定为2,改变发包速率,对改进前后路由算法的分组递交率进行仿真分析,结果如图4所示。 图4 改进前后分组递交率 改进算法二的初衷是延长网络寿命,可以从节点的死亡个数和死亡节点出现的时间来评估网络的生存时间,对改进算法一和改进算法二进行仿真分析。仿真参数设置如下:数据流类型采用CBR数据流,将数据包大小设置为100 byte,发包速率为2 p/s,节点初始能量值Estart设为1 000 J,下面随着网络运行时间增长,进行仿真分析,结果如图5所示。 图5 死亡节点个数 由图5可知,ZBR算法死亡节点出现的时间最早,改进算法一次之,改进算法二最晚出现死亡节点。这是由于改进算法一控制了RREQ的传播,因而网络消耗比ZBR算法小,改进算法二在改进算法一的基础上由于增加了节点能量控制,减少了剩余能量低的节点的分组转发,降低了低能量节点的功耗,防止节点死亡过早。 4结语 提出的改进算法通过控制RREQ的广播半径和传播方向,大大降低了网络消耗,同时考虑了节点的剩余能量问题,在一定程度上延迟了网络关键节点的死亡。但是由于是在NS2 仿真环境下进行的仿真分析,不可能完全模拟真实的网络环境,无法估计在实际网络中会发生的各种突发情况,及实际网络中存在的无法避免的干扰等,并且,仿真环境都是在节点数量较少的情况下进行,当节点数量很大,或者电池本身容量很大或更换很方便的情况下,提出的改进算法的实用性还有待进一步的研究。 参考文献: [1]俞仁来,谭明皓.基于ZigBee的无线传感器网络路由分析[J].通信技术,2011,44(01):129-131. YU Ren-lai,TAN Ming-hao.Analysis of Wireless Sensor Network Routing based on Zigbee[J].Communications Technology,2011,44(01): 129-131. [2]敬朝晖.基于IEEE802.15.4/ZigBee的语音通信技术研究与实现[D].上海:上海交通大学,2008. JING Chao-hui.Research and Implementation of Voice Communication Technology based on IEEE802.15.4/Zigbee[D].Shanghai: Shanghai Jiaotong University,2008. [3]贾海瑞,李众立.基于邻居表的ZigBee网络能量损耗转移算法[J].传感器与微系统,2013(08):121-124.JIA Hai-rui,LI Zhong-li.Zigbee Network Energy Loss Transfer Algorithm based on Neighbor Table[J].Transducer and Micro System Technologies,2013(08):121-124. Zigbee C+A Route Protocol MING Fang (School of Mechanical and Electrical Engineering,Guizhou Normal Univ.,Guiyang Guizhou 550025,China) Abstract:With the rapid development of science and technology in recent years,how to quickly acquire information attracts much attention from the people.Again with the development of sensor and IoT technologies,the people begin their concerns on Zigbee technology.However,Zigbee,as a fairly new technology,needs prompt improvement in many fields,particularly in its route protocol,where large quantity of redundant packets exist,and a modified route algorithm is thus proposed.This algorithm,by comprehensively considering the shortest route,energy equilibrium,this algorithm could great reduce the network overhead,and improve the network lifetime.Finally simulation with NSZ indicates that this modified algorithm is theoretically feasible and applicable. Key words:Zigbee ; network overhead; energy equilibrium;NS2 simulation doi:10.3969/j.issn.1002-0802.2016.02.014 * 收稿日期:2015-09-05;修回日期:2015-12-15Received date:2015-09-05;Revised date:2015-12-15 中图分类号:TN929.5 文献标志码:A 文章编号:1002-0802(2016)02-0194-05 作者简介: 明芳(1988—),女,硕士研究生,讲师,主要研究方向为物联网。