一种减少ZigBee无线传输网络路由跳数的方法与流程

文档序号:12630717阅读:668来源:国知局
一种减少ZigBee无线传输网络路由跳数的方法与流程
本发明涉及一种减少ZigBee无线传输网络路由跳数的方法,属于ZigBee无线传输网络
技术领域

背景技术
:基于ZigBee技术的无线传感器网络可广泛应用于各种领域如环境检测、健康监测、车辆跟踪、军事侦察和地震观察等;不过ZigBee无线传感器网络的大规模组网实用也存在一些限制性因素,这主要包括诸如如何有效地控制节点能量消耗、提高节点的计算能力和通信能力等。为了延长无线传感器网络的寿命,路由算法的优化被公认为解决这一问题的一项重要技术手段。常见的ZigBee路由算法有:Cluster-Tree(簇树路由协议)、AODVjr(按需路由协议)等。Cluster-Tree路由协议是一种由网络协调器展开生成的树簇状拓扑结构的路由协议,常用于网络节点流动较小或静止的场合。它是由父节点逐步寻找子节点的一种路由方式,不需要存储路由表,属于静态路由;其路由机制主要包括树节点地址分配和树路由两部分。AODVjr路由算法是通过查找和记录路由包的传播路径实现的。路由包包括路由请求RREQ(RouteRequest)包与路由回复RREP(RouteReply)包。当路由包在源节点和目的节点间传送时,有多条路径可以选择。这时,这两点间能量损耗最小的那条路径则会被记录并保存在路由表中。技术实现要素:针对现有技术存在的不足,本发明目的是提供一种减少ZigBee无线传输网络路由跳数的方法,通过区域的预先划分,来控制路由寻径过程中RREQ传播的跳数,从而减少不必要的RREQ广播,这样就能有效地减少路由跳跃的级数,从而降低网络的整体能量消耗和时延。为了实现上述目的,本发明是通过如下的技术方案来实现:本发明的一种减少ZigBee无线传输网络路由跳数的方法,包括以下几个步骤:(1)对ZigBee无线传输网络进行区域分组划分,并用变量M来代表区域划分的次数,初始值为1;(2)对源节点的类型进行判断;(3)判断目的节点与源节点分组是否相同,如果相同,则转向步骤(5),如果不相同,则转向步骤(4);(4)判断源节点的一跳邻居节点中是否有节点与目的节点分组相同,如果有,则将数据帧转发给该节点,并转向步骤(5);如果没有,则转向步骤(6);(5)将目的节点所在区域看作一个新的ZigBee无线传输网络,将其中网络地址最小的节点看作根节点,对根节点再次进行区域分组划分即M=M+1;(6)判断目的节点和当前节点是否在同一区域中,若是,则重复步骤(5),若不是,则转向步骤(7);(7)将数据帧由路由转发到第M次分组的根节点,然后启动路由功能(把数据从一个地方传送到另一个地方的行为和动作),并判断RREQ的最大广播跳数是否大于|Dd-M+1|,如果不是,则此根节点将RREQ分组广播到目的节点的相应区域内,以寻找目的节点,并将RREQ的最大广播跳数设置为|Dd-M+1|,如果是,则丢弃RREQ;其中,Dd为目的节点的网络深度,M-1为根节点的网络深度;(8)所述目的节点接收到路由请求(RREQ)后,将向寻找路由的源节点回复一个RREP应答,其传送路径为路由建立过程的反向路由;所有接收到RREP回复的源节点将此路由信息替换并且记录(也即是将路由表中已存在的信息先进行删除,然后再将新的路由信息写入路由表,完成对新路由信息的替换与记录)此时,即建立了从源节点到目标节点的正向路由。步骤(1)中,所述区域划分的规则如下:(1-1)以协调器为根节点,将根节点的每一个子树划成一个区域;(1-2)记录每一个区域中的最大地址Amax和最小地址Amin,在同一区域内的节点地址Ai都符合Amin≤Ai≤Amax,即该区域的网络地址范围为[Amin,Amax],并且每一个区域的地址范围之间不相交,即一个确定的地址在且仅在一个区域内。步骤(2)中,对所述源节点的类型进行判断的方法如下:(2-1)判断是否为RFD节点,如果是,则直接将数据帧转发给其父节点,如果不是,则转向步骤(2-2);(2-2)判断RREQ的最大广播跳数是否大于1,如果是,则丢弃RREQ,如果不是,则直接进行数据帧路由转发。本发明降低了网络传输的能量消耗并延长了网络的寿命;在ZigBee无线传感器网络中,通常传感节点只能和与它相邻的、并且在它的射频传输范围之内的节点直接通信,由于ZigBee网络中每个节点的“邻居表”中包含有其射频覆盖范围内各个邻居节点的相关信息,因而本发明可以充分利用邻居表中所记录的有效信息,以便源节点发送给目的节点的数据帧经过最便捷途径到达目的节点。该发明与传统路由协议的主要区别在于:当收到消息的节点不是目的节点时,先查看当前节点的邻居表,查看目的节点是否是与源节点分组相同(即是否划分在同一区域内),若是就直接转发;若不是,则再查看是否有源节点的邻居节点与目的节点分组相同,若有,则向该邻居节点转发消息,若没有,则按传统的路由方法以对每个节点都进行广播路径的方式进行寻找;从而减少了不必要的RREQ广播,这样就能有效地减少路由跳跃的级数,从而降低网络的整体能量消耗和时延。附图说明图1是本发明的减少ZigBee无线传输网络路由跳数方法的工作流程图;图2是节点进行第一次区域划分的示意图;图3是节点进行第二次区域划分的示意图。具体实施方式为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。本发明是在两种主要传统路由算法的基础上,为进一步解决路由算法能耗而提出的一种改进方法,即试图优化路径、减少路由跳数,进而减少能量消耗和通信延迟。一般而言,当一个ZigBee网络组建时,网络各节点就会被分配相应的网络地址;而本发明的基本思想就是根据各节点的网络地址进行区域预划分,即先以协调节点为根节点,把每个根节点的子节点所组成的树划分成一个区域;再将协调节点的子节点看作根节点,把其所有的子节点组成的树再次划分成另一个区域;按照上述区域划分规则可以进行区域的一次次划分。本发明利用ZigBee协议中的“邻居表”(将维护邻居节点的一些必要的信息记录在该表中,以方便查询和寻找最佳路径)来减少数据帧的传送跳数,并通过区域的预先划分,来控制路由寻径过程中RREQ传播的跳数,从而减少不必要的RREQ广播,这样就能有效地减少路由跳跃的级数,从而降低网络的整体能量消耗和时延。本发明涉及一种改进的基于ZigBee技术的无线传输网络路由方法,尤其适用于传统ZigBee网络中由于路由耗能较高而导致能量过早耗尽的场合,以此减少ZigBee节点间路由的跳数和延迟,有效降低了能耗、提高了路由效率。本发明的一种改进的基于ZigBee技术的无线传输网络路由方法,以降低网络传输的能量消耗并延长网络的寿命。在ZigBee无线传感器网络中,通常传感节点只能和与它相邻的、并且在它的射频传输范围之内的节点直接通信。由于ZigBee网络中每个节点的“邻居表”中包含有其射频覆盖范围内各个邻居节点的相关信息,因而本改进路由方法可以充分利用邻居表中所记录的有效信息,以便源节点发送给目的节点的数据帧经过最便捷途径到达目的节点。该方案与传统路由协议的主要区别在于:当收到消息的节点不是目的节点时,先查看当前节点的邻居表,查看目的节点是否是与源节点分组相同(即是否划分在同一区域内),若是就直接转发;若不是,则再查看是否有源节点的邻居节点与目的节点分组相同,若有,则向该邻居节点转发消息,若没有,则按传统的路由方法以对每个节点都进行广播路径的方式进行寻找。本方法是依据各节点分配的网络地址,再由此进行区域划分。在ZigBee无线传输网络中,系统一般根据父节点的地址为其子节点进行网络地址的分配(即由父节点的网络地址,再运用下面公式(1)和(2)计算出子节点的网路地址);任何节点想要加入网络,必须通过已存在于网络中的协调器或路由器节点。当成功加入网络后,该节点自动获得一个唯一的网络地址。在建立网络初期,协调器为自身分配的网络地址为0,并设置网络深度(指该节点到协调节点所需跳跃的最小次数)D0为0;定义父节点(若节点A向上一级要通过节点B才能与协调节点进行通信,那么节点B就是节点A的父节点,而节点A就是节点B的子节点)可连接的最大子节点数为Cm(若连接过多的子节点会造成网络拥堵,增加网络消耗),这些子节点中拥有的最大路由节点数为Rm,Dm为网络的最大深度(例如图2,整个网络的网络节点中,父节点2最多连接了4个子节点(节点5、6、7、8)即Cm=4;而这4个子节点中最多有3个路由节点即Rm=3;节点34到达协调节点1要跳跃4次即Dm=4)。定义函数Cskip(d)表示网络深度为d的父节点为其子节点分配的网络地址之间的偏移量,偏移量值可以按照下述公式计算:深度为d的父节点分配的第k个路由节点和第n个终端节点的地址分别为:Ak=Ap+Cskip(d)(k-1)+1,1≤k≤RmAn=Ap+Cskip(d)Rm+n,1≤n≤Cn-Rm---(2)]]>上式中,Ap表示父节点的地址。具体的路由过程为:假设源节点的网络地址为S,目的节点的网络地址为D,路由器的地址为C,网络深度为d;则当路由节点转发源节点的数据时,首先判断目的节点是否是该路由节点的后代节点,若满足不等式:C<D<C+Cskip(d-1)(3)则证明目的节点为该路由节点的一个子节点,这时路由节点将数据发送给它的一个子节点。此时又分两种情况,如果满足下述不等式:D>C+Rm·Cskip(d)(4)则说明该目的节点是一个终端节点,这时路由下一跳地址A为A=D(5)反之,如果不满足不等式(4),则说明该目的节点不是路由节点的一个终端节点,此时路由下一跳地址为:A=1+C+[N-(S+1)Cskip(d)]×Cskip(d)---(6)]]>上式中N表示该目的节点的父节点的网络地址。若不满足式(3),则说明目的节点不是路由节点的后代节点,此时路由的下一跳地址为路由节点的父节点,也即将分组数据发送给父节点进行处理。本发明所提出的ZigBee路由优化方法实现流程如图1所示,具体实现步骤如下:步骤1:ZigBee网络进行区域分组划分,并用变量M来代表区域划分的次数,初始值为1。区域划分规则如下:以协调器为根节点,将根节点的每一个子树(比如图2中的2、3、4)划成一个区域。记录每一个区域中的最大地址Amax和最小地址Amin。由ZigBee网络地址分配机制可知,在同一区域内的节点地址Ai都符合Amin≤Ai≤Amax,即该区域的网络地址范围为[Amin,Amax],并且每一个区域的地址范围之间不相交,即一个确定的地址在且仅在一个区域内。步骤2:对源节点的类型进行判断。若为精简功能设备RFD(ReducedFunctionDevice)则直接将数据帧转发给其父节点;若不是,则判断目的节点是否为源节点的子节点或邻居节点(拥有相同网络深度的节点互为邻居节点),若是,则直接进行数据帧路由转发,若RREQ的最大广播跳数大于1,则丢弃RREQ;若不是,则进行下一步。步骤3:判断目的节点属于哪个区域。若目的节点和源节点在同一区域中,则进行步骤5;若不在同一区域中,则进行步骤4。步骤4:判断源节点的一跳邻居节点中是否有节点和目的节点在同一区域。如果有,则将数据帧转发给该节点,并进行步骤5;如果没有,则进行步骤6。步骤5:对区域进行再次的划分,即M的值加1。将目的节点所在区域看作一个新的ZigBee网络,将其中网络地址最小的节点看作根节点,并按照步骤1的分区原则将其进行再次分区;步骤6:判断目的节点和当前节点是否在同一区域中。若是,则重复步骤5;若不是,则进行步骤7。步骤7:将数据帧由路由转发到第M次分组的根节点(因为是转发到第M次分组的根节点,故该根节点的网络深度是M-1),然后启动路由功能,由此根节点将RREQ分组广播到目的节点的相应区域内,以寻找目的节点,并将RREQ的最大广播跳数设置为|Dd-M+1|(其中Dd为目的节点的网络深度,M-1为根节点的网络深度),若超出这个范围则丢弃RREQ。步骤8:目的节点接收到RREQ请求后,将向寻找路由的源节点回复一个RREP应答,其传送路径为路由建立过程的反向路由。所有接收到RREP回复的节点将此路由信息替换并且记录,此时,从源节点到目标节点的正向路由就成功建立起来。图2是ZigBee无线网络节点第一次区域划分示意图,其中网络参数Cm=4,Rm=3,Dm=4。(以图2中左上角虚线所画的区域为例,父节点2链接有节点5、6、7、8,故Cm=4;这些节点中只有6、7、8是路由节点,故Rm=3;节点26要经过节点14、6、2最后到达协调节点1,故Dm=4)按照ZigBee网络地址分配方式进行网络中各节点相应地址的分配,假设源节点是11。则具体工作过程如下:1、若目的节点是20时,则此时目的节点是源节点11的子节点,进行直接转发,且RREQ广播跳级限制是1。2、若目的节点是12时,由于12是源节点的邻居节点,且RREQ广播跳级限制是1,则由“邻居表”中记录的途径直接将数据帧转发至12。3、若目的节点是19时,这时目的节点与源节点在同一区域,则要进行再一次分区划分,此时M=M+1。经第二次分区后的ZigBee网络节点区域划分示意图如图3所示。此时,源节点11和目的节点19已不在同一区域,则将数据帧经路由转发给第2次分区的根节点,即节点3。随后由该节点向第二次区域划分时目的节点所在区进行广播RREQ,此时RREQ广播跳级限制是|3-2+1|=2。4、若目的节点是24时,此时源节点与目的节点并不在同一区域,而源节点的邻居节点12与目的节点在同区域;则先将数据帧转由节点11的“邻居表”中记录的途径发给节点12,然后再类似上述步骤3,对节点12所在区域进行第二次划分,随后转发给第2次分区的根节点4,最后转发到目的节点24。以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1