CN103781144A - 一种交互邻居表模式的Zigbee网络树型路由方法 - Google Patents
一种交互邻居表模式的Zigbee网络树型路由方法 Download PDFInfo
- Publication number
- CN103781144A CN103781144A CN201410073228.3A CN201410073228A CN103781144A CN 103781144 A CN103781144 A CN 103781144A CN 201410073228 A CN201410073228 A CN 201410073228A CN 103781144 A CN103781144 A CN 103781144A
- Authority
- CN
- China
- Prior art keywords
- node
- address
- neighbor
- destination address
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Abstract
本发明公开了一种交互邻居表模式的Zigbee网络树型路由方法,该方法在原有的树型路由算法基础上采用了邻居表,并同自身的邻居节点交互邻居表信息,使得节点在路由选择时,能够有效减少路由跳数,降低网络时延,减少网络总能量消耗,同时也能够均衡不同网络深度节点的转发数据量,从而平衡节点的能量消耗,延长网络生命周期。
Description
技术领域
本发明涉及一种交互邻居表模式的Zigbee网络树型路由方法。
背景技术
缩略语和关键术语定义
FFD Full Functional Device 完整功能设备
RFD Reduced Functional Device 精简功能设备
二级邻居节点:当前节点的邻居节点的邻居节点,称为该当前节点的二级邻居节点。
最小跳数:节点A按照树型路由传输数据到达节点B所需要经过路由器的次数并加1,其值称为节点A到达节点B的最小跳数。
节点网络深度:节点按照树型路由传输数据到达协调器所需要的最小跳数,协调器节点的网络深度定义为0。
最大深度公共父节点:在树型结构中,节点A和节点B所有公共父节点(或祖先节点)中网络深度最大的父节点(或祖先节点)。
Zigbee技术简介
Zigbee技术是一种低成本、低功耗、低数据传输率的短距离无线通信技术,它的这些自身特性使其能够快速灵活地进行自组网以及方便地满足用户自定义应用的需求,已广泛应用于家庭自动化、医疗护理、工业控制、智能农业、消费电子等领域。但同时随着人们的应用需求的多样性、应用场景的复杂性,现有的Zigbee技术并不能满足所有的这些多样化的应用需求。
Zigbee网络可以支持星型、树型以及网格型拓扑结构,网络层采用的是树型路由与AODVjr路由相结合的路由算法。网络中的节点设备可分为FFD和RFD两种,RFD设备处理能力弱,只能作为网络中的终端节点,只使用树型路由算法转发数据;FFD设备具有足够的存储空间以及较强的处理能力,可以作为网络中的路由器节点和协调器。同时,FFD设备按照路由能力也可以分为2类:RN+节点和RN-节点,其中RN+节点有路由能力使用AODVjr路由算法,RN-节点路由能力有限,只能使用树型路由算法转发数据。
Zigbee网络的树型路由算法中,节点只需要根据父子关系进行数据的转发,不需要进行路由发现,能够降低节点的能量消耗以及路由控制开销。但是也存在弊端,节点只能沿着树型结构来选择路径,该路径一般偏长,并不是最优的,从而给数据的传输带来较高的延时;另外,在树型路由算法中,网络深度越低的节点转发的数据量会越大,这样造成了节点的流量分配以及能量消耗的不均衡,降低了网络的生命周期。
Zigbee网络分布式地址分配方案与树型路由算法的基本原理
Zigbee网络中的节点采用分布式地址分配方案(ZigBee Alliance,Document053474r17ZigBee Specification[S].2008,1),加入网络的节点会通过MAC层提供的关联过程组成一个逻辑树,当网络中的节点接受新节点加入网络时,它们之间就形成了父子关系。同时,父节点会为新加入的子节点分配网络地址,此时每个子节点也就拥有了自身可分配的地址块。每一节点分配的地址具有规律性,因此能够很好的支持树型路由。Zigbee网络的分布式地址分配方案原理如下:
首先,假设网络中父节点可允许连接的最大子节点数为Cm,子节点中允许是路由器的最大数目为Rm,网络的最大深度为Lm,则可以根据式(1)来计算网络深度为d的父节点分配给子节点的地址偏移量Cskip(d):
当一个节点的Cskip(d)值为0时,说明该节点不具备分配网络地址的能力,也即该节点不能作为父节点接受子节点连接请求。若Cskip(d)值不为0,则该节点可以作为父节点接受子节点加入网络的请求,并根据子节点的设备类型来给子节点分配不同的网络地址。其次,假设父节点的网络地址为Ap,若是第n个RFD设备子节点通过Ap加入到网络中所拥有的网络地址An将按照式(2)进行分配:
An=Ap+Cskip(d)*Rm+n,1≤n≤Cm-Rm (2)
若是第n个FFD设备子节点通过Ap加入到网络中所拥有的网络地址An将按照式(3)进行分配:
An=Ap+1+Cskip(d)(n-1),1≤n≤Rm (3)
最后,父节点按照上述方案给子节点分配地址,直到父节点所拥有的地址块全部分配完而不再接受新的节点申请加入网络的请求为止。
Zigbee网络的树型路由算法基本原理如下:
(1)如果RFD设备节点需要发送目的地址为D的数据,则将数据直接发送给其父节点,由父节点转发;RFD设备节点不转发任何数据;
(2)如果是网络地址为A深度为d的FFD设备节点需要发送(或转发)目的地址为D的数据,则节点首先需要根据式(4)判断目的节点是否为自己的子孙节点:
A<D<A+Cskip(d-1) (4)
(3)若目的地址为D的节点满足式(4),说明目的节点为当前节点的子孙节点,需要按照式(5)进一步判断目的节点是否为终端子节点;
D>A+Rm*Cskip(d) (5)
(4)如果目的地址D满足上式,则说明目的节点是当前节点的终端子节点,则下一跳节点的地址N为N=D;否则下一跳节点地址N由式(6)确定:
(5)如果是目的节点不是当前节点的子孙节点,也即不满足式(4),则将数据直接发送给父节点;
(6)中间节点接收到数据后,按照上述步骤(2)~(5)进行转发数据,直到数据到达目的节点为止。
现有的改进树型路由算法技术方案一
一种改进的Zigbee网络Cluster-Tree路由算法(李刚,陈俊杰,葛文涛,一种改进的Zigbee网络Cluster-Tree路由算法[J].测控技术,2009,28(9):52-55.)中给出了一种改进Zigbee网络树型路由算法的方案。该方案主要是引入了邻居表使处于一跳范围内但不是父子关系的节点可以直接通信,克服了原有树型路由在该情况下仍需要沿着树型多跳转发的缺陷;另外,若目的节点是当前节点的子孙节点时,则当前节点按照原有树型路由算法选择下一跳节点;否则,当前节点在邻居表中选择距离目的节点最小跳数值最小的邻居节点作为下一跳节点,因为在转发的过程中,当前节点每次都是在邻居表中选择局部最优的节点,从而减少了数据传输的跳数。
现有的改进树型路由算法技术方案二
在中国专利CN102256324A中,提出了一种改进的Zigbee网络树型路由算法的方案。该方案同样采用了邻居表,具体实现过程如下:
(1)判断目的节点是否是当前节点的子孙节点,若是,则按照树型结构转发数据给目的节点;若目的节点不是当前节点的子孙节点,则进入步骤(2);
(2)判断目的节点是否是当前节点的最近邻居节点(邻居表中节点地址与目的节点地址之差的绝对值最小的节点)或最近邻居节点的子孙节点,若是,则将数据直接转发给最近邻居节点;若不是,则进入步骤(3);
(3)搜索最近邻居节点的祖先节点:计算最近邻居节点的祖先节点地址比较跳数来选择一条更好的到达目的地址的路由,并将数据转发给该祖先节点。
该方案应用了最近邻居节点是因为Zigbee网络采用的是分布式地址分配方案,故节点地址相近的节点在某些情况下距离一般比较近,从而能够减少数据传输的跳数。
现有技术方案的缺点
图1是Zigbee网络拓扑结构示意图,现有改进树型路由算法的方案的缺点如下:
(1)方案一中尽管采用了选取最小跳数值最小的邻居节点的策略,但该策略只是局部优化的结果,某些情况下选取的路径并不是最优的。如图1中,源节点为R32,目的节点为R26,邻居关系是:R31是R32的邻居,R26是R31的邻居,R24是R28的邻居;则按照方案一选择的路径是:R32—R29—R28—R24—R25—R26;而最佳的路径是R32—R31—R26;
(2)方案一中当前节点邻居表中距离目的节点最小跳数值最小的节点一般是当前节点的父节点,这样就导致处于网络上层的节点转发数据过多消耗能量过快,从而易引起网络节点消耗能量不均衡而降低了网络生命周期;
(3)方案二中采用了选取最近邻居节点的策略,但节点的地址与该节点加入网路的顺序有关,并不能精确反映该节点所处的位置,所以邻居表中节点地址与目的地址之差的绝对值最小的节点并不一定距离目的节点最近,采用该策略选取的路径有时会比原有树型路由选择的路径更差;
(4)方案二中,当目的节点不是当前节点的最近邻居节点或最近邻居节点的子孙节点时,当前节点选择最近邻居节点的祖先节点作为下一跳节点。在某些情况下,最近邻居节点的祖先节点并不在当前节点的一跳通信范围内,所以当前节点并不能直接将数据转发给该祖先节点。另外,在选取最近邻居节点时,如果目的节点D是当前节点的其他邻居节点Ak的邻居,并不是当前节点最近邻居节点Ac的邻居,则将数据转发Ak比转发给Ac具有更少的跳数。
发明内容
发明目的:针对Zigbee网络中原有的树型路由算法选择路径偏长、传输数据时延大以及节点能量消耗不均衡而降低了网络生命周期等问题,本发明提供一种交互邻居表模式的Zigbee网络树型路由方法,该方法在原有的树型路由算法基础上采用了邻居表,并同自身的邻居节点交互邻居表信息,使得节点在路由选择时,能够有效减少路由跳数,降低网络时延,减少网络总能量消耗,同时也能够均衡不同网络深度节点的转发数据量,从而平衡节点的能量消耗,延长网络生命周期。
技术方案:为实现上述目的,本发明采用的技术方案为:
一种交互邻居表模式的Zigbee网络树型路由方法,包括如下步骤:
(1)协调器节点建立Zigbee网络,其他各节点在加入Zigbee网络时分别建立自身的邻居表;
(2)各节点同自身的所有邻居节点交互邻居表;
(3)当某一当前节点接收到一个数据帧时,检查该数据帧的目的地址是否是自身地址,若目的地址是当前节点的自身地址,则直接将该数据帧转发至当前节点的上层;否则,则进入步骤(4);
(4)搜索当前节点的所有邻居节点,检查目的地址是否是当前节点的某一邻居节点地址,若目的地址是当前节点的某一邻居节点地址,则直接将该数据帧转发至该邻居节点;否则,进入步骤(5);
(5)检查目的地址是否是当前节点的子孙节点地址,若目的地址是当前节点的子孙节点地址,则按照原有的Zigbee网络树形路由算法选择下一跳地址,转发该数据帧;否则,进入步骤(6);
(6)当前节点根据步骤(2)获取的所有邻居节点的邻居表信息,检查目的地址是否是当前节点的某一二级邻居节点地址(即目的地址是否是当前节点的某一邻居节点Ac的邻居),若目的地址是当前节点的某一二级邻居节点地址,则直接将该数据帧转发至与该二级邻居节点对应的当前节点的邻居节点(即邻居节点Ac);否则,进入步骤(7);
(7)在当前节点的所有二级邻居节点中搜索到达目的地址最小跳数值最小的节点及对应的二级邻居节点,将该数据帧转发至与该二级邻居节点对应的当前节点的邻居节点(即如果当前节点的某一邻居节点Ak的邻居,距离目的地址的最小跳数值最小,则将数据帧转发至节点Ak);
(8)中间节点接收到数据帧后,返回步骤(3)继续转发数据帧,直至数据帧到达目的节点。
所述步骤(2)中,各节点同自身的所有邻居节点交互邻居表,具体过程如下:
(21)协调器节点周期性广播信标帧或转发节点转发信标帧时,在信标帧的负载中添加自身的邻居表信息;
(22)协调器节点或转发节点的邻居节点在接收到信标帧时,提取并保存该信标帧中的邻居表信息,同时将该信标帧负载中的邻居表信息替换为自身的邻居表信息,并继续广播或转发该信标帧;
(23)协调器节点或转发节点在每一个信标帧周期中,只广播或转发一次信标帧,同时只接收一次同一节点广播或转发的信标帧。
所述步骤(5)中,检查目的地址是否是当前节点的子孙节点地址,若目的地址是当前节点的子孙节点地址,则按照原有的Zigbee网络树形路由算法选择下一跳地址,转发该数据帧,具体过程如下:
(51)设当前节点的地址为A、网络深度为d,网络深度为d的节点分配给子节点的地址偏移量为Cskip(d),目的地址为D,根据下式(即式(4))判断目的地址是否为当前节点的子孙节点:
A<D<A+Cskip(d-1)
若目的地址为D满足上式,则目的地址是当前节点的子孙节点地址;否则,目的地址不是当前节点的子孙节点地址;
(52)目的地址D是当前节点A的子孙节点地址,按照原有的Zigbee网络树形路由算法选择下一跳地址,由于在步骤(4)中已经判断了目的地址D是否是该当前节点A的某一邻居节点地址,所以不需要再判断目的地址是否是该当前节点的终端子节点地址;即按照下式(即式(6))确定下一跳地址:
其中N为下一跳地址。
所述步骤(7)中,计算当前节点的二级邻居节点到达目的地址最小跳数值的方法如下:
设当前节点A的某一二级邻居节点的网络深度为currentDepth,目的地址D的网络深度为destDepth,该二级邻居节点与目的地址的最大深度公共父节点的网络深度为parentDepth,则根据式(7)计算所述二级邻居节点与目的地址之间的最小跳数minhop:
minhop=currentDepth+destDepth-2×parentDepth (7)
其中:二级邻居节点的网络深度currentDepth通过交互后的邻居表信息获得;目的地址D的网络深度destDepth根据原有的Zigbee网络树形路由算法,从协调器开始,不断循环计算下一跳地址,直到下一跳地址等于目的地址D,所用的循环次数即为目的地址D的网络深度destDepth;二级邻居节点与目的地址的最大深度公共父节点的网络深度parentDepth计算过程如下:
(701)初始化最大深度公共父节点地址P=0、网络深度parentDepth=0;
(702)按照式(8)进行计算:
P<A<P+Cskip(parentDepth-1) (8)
若当前节点A满足式(8),则进入步骤(703),否则进入步骤(704);
(703)则按照式(9)计算下一最大深度公共父节点地址N:
同时,令P=N,parentDepth=parentDepth+1;返回步骤(702);
(704)parentDepth=parentDepth-1;
其中,Cskip(d)表示网络深度为d的节点分配给子节点的地址偏移量。
有益效果:本发明提供的交互邻居表模式的Zigbee网络树型路由方法,与现有技术相比,在原有的树型路由算法基础上采用了邻居表,并且各节点同自身的邻居节点交互邻居表信息,使得节点在路由选择时,能够有效减少路由跳数,降低网络时延,减少网络总能量消耗,同时也能够均衡不同网络深度节点的转发数据量,从而平衡网络中节点的能量消耗,延长网络生命周期。
附图说明
图1为Zigbee网络拓扑结构示意图;
图2为基于交互邻居表的Zigbee网络树型路由改进方法流程图;
图3为邻居表信息结构图;
图4为最大深度公共父节点的网络深度计算流程图;
图5为四种方案在平均端到端时延上的性能仿真图;
图6为四种方案在平均总能量消耗上的性能仿真图;
图7为四种方案在平均跳数上的性能仿真图;
图8为四种方案在不同网络深度节点的平均中继次数上的性能仿真图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
如图2所示为一种交互邻居表模式的Zigbee网络树型路由方法,包括如下步骤:
(1)协调器节点建立Zigbee网络,其他各节点在加入Zigbee网络时分别建立自身的邻居表;
(2)各节点同自身的所有邻居节点交互邻居表,所述邻居表信息的结构如图3所示;
(3)当某一当前节点接收到一个数据帧时,检查该数据帧的目的地址是否是自身地址,若目的地址是当前节点的自身地址,则直接将该数据帧转发至当前节点的上层;否则,则进入步骤(4);
(4)搜索当前节点的所有邻居节点,检查目的地址是否是当前节点的某一邻居节点地址,若目的地址是当前节点的某一邻居节点地址,则直接将该数据帧转发至该邻居节点;否则,进入步骤(5);
(5)检查目的地址是否是当前节点的子孙节点地址,若目的地址是当前节点的子孙节点地址,则按照原有的Zigbee网络树形路由算法选择下一跳地址,转发该数据帧;否则,进入步骤(6);
(6)当前节点根据步骤(2)获取的所有邻居节点的邻居表信息,检查目的地址是否是当前节点的某一二级邻居节点地址(即目的地址是否是当前节点的某一邻居节点Ac的邻居),若目的地址是当前节点的某一二级邻居节点地址,则直接将该数据帧转发至与该二级邻居节点对应的当前节点的邻居节点(即邻居节点Ac);否则,进入步骤(7);
(7)在当前节点的所有二级邻居节点中搜索到达目的地址最小跳数值最小的节点及对应的二级邻居节点,将该数据帧转发至与该二级邻居节点对应的当前节点的邻居节点(即如果当前节点的某一邻居节点Ak的邻居,距离目的地址的最小跳数值最小,则将数据帧转发至节点Ak);
(8)中间节点接收到数据帧后,返回步骤(3)继续转发数据帧,直至数据帧到达目的节点。
所述步骤(2)中,各节点同自身的所有邻居节点交互邻居表,具体过程如下:
(21)协调器节点周期性广播信标帧或转发节点转发信标帧时,在信标帧的负载中添加自身的邻居表信息;
(22)协调器节点或转发节点的邻居节点在接收到信标帧时,提取并保存该信标帧中的邻居表信息,同时将该信标帧负载中的邻居表信息替换为自身的邻居表信息,并继续广播或转发该信标帧;
(23)协调器节点或转发节点在每一个信标帧周期中,只广播或转发一次信标帧,同时只接收一次同一节点广播或转发的信标帧。
所述步骤(5)中,检查目的地址是否是当前节点的子孙节点地址,若目的地址是当前节点的子孙节点地址,则按照原有的Zigbee网络树形路由算法选择下一跳地址,转发该数据帧,具体过程如下:
(51)设当前节点的地址为A、网络深度为d,网络深度为d的节点分配给子节点的地址偏移量为Cskip(d),目的地址为D,根据下式(即式(4))判断目的地址是否为当前节点的子孙节点:
A<D<A+Cskip(d-1)
若目的地址为D满足上式,则目的地址是当前节点的子孙节点地址;否则,目的地址不是当前节点的子孙节点地址;
(52)目的地址D是当前节点A的子孙节点地址,按照原有的Zigbee网络树形路由算法选择下一跳地址,由于在步骤(4)中已经判断了目的地址D是否是该当前节点A的某一邻居节点地址,所以不需要再判断目的地址是否是该当前节点的终端子节点地址;即按照下式(即式(6))确定下一跳地址:
其中N为下一跳地址。
所述步骤(7)中,计算当前节点的二级邻居节点到达目的地址最小跳数值的方法如下:
设当前节点A的某一二级邻居节点的网络深度为currentDepth,目的地址D的网络深度为destDepth,该二级邻居节点与目的地址的最大深度公共父节点的网络深度为parentDepth,则根据式(7)计算所述二级邻居节点与目的地址之间的最小跳数minhop:
minhop=currentDepth+destDepth-2×parentDepth (7)
其中:二级邻居节点的网络深度currentDepth通过交互后的邻居表信息获得;目的地址D的网络深度destDepth根据原有的Zigbee网络树形路由算法,从协调器开始,不断循环计算下一跳地址,直到下一跳地址等于目的地址D,所用的循环次数即为目的地址D的网络深度destDepth;二级邻居节点与目的地址的最大深度公共父节点的网络深度parentDepth计算如图4所示,具体过程如下:
(701)初始化最大深度公共父节点地址P=0、网络深度parentDepth=0;
(702)按照式(8)进行计算:
P<A<P+Cskip(parentDepth-1) (8)
若当前节点A满足式(8),则进入步骤(703),否则进入步骤(704);
(703)则按照式(9)计算下一最大深度公共父节点地址N:
同时,令P=N,parentDepth=parentDepth+1;返回步骤(702);
(704)parentDepth=parentDepth-1。
综上,在当前节点的所有二级邻居节点中搜索到达目的地址最小跳数值最小的节点的计算步骤如下:
(71)在交互后的邻居表中获取当前节点的每一二级邻居节点的网络深度;
(72)根据Zigbee原有树型路由算法计算目的节点的网络深度;
(73)按照式(8)、式(9)计算每一二级邻居节点与目的节点的最大深度公共父节点的网络深度;
(74)按照式(7)来计算当前节点每一二级邻居节点与目的节点之间的最小跳数;
(75)比较当前节点所有二级邻居节点到达目的节点的最小跳数值,选取其中最小跳数值最小的节点。
下面结合实施例对本发明做出进一步的说明。
本发明适用于Zigbee网络的普遍拓扑结构,实施例场景仅作为说明。实施例采用的Zigbee网络拓扑结构如图1所示。实施例的仿真平台为OPNET14.5EducationalVersion;场景设置为:父节点允许的最大子节点数Cm=6,子节点中允许是路由器的最大数目为Rm=4,网络的最大节点深度为Lm=6;场景范围为100×100m2;每一节点传输距离为10m;源节点发送数据包的大小为128bit、间隔为1s、持续时间为180s;每一对源节点和目的节点表示为(源节点,目的节点),实验场景设置的(源节点,目的节点)包括:(ED18,ED5)、(ED3,ED11)、(ED11,ED13)(ED23,ED14)、(Coordinator,ED17)、(R31,ED20)、(R38,ED26)、(R32,R3)、(R45,R4)、(ED1,R12)、(ED6,R22)、(R35,R27)、(R11,R34)、(ED9,R40)、(R4,R42)。
基于交互邻居表的Zigbee网络树型路由改进方法的具体实施例包含以下步骤:
步骤1,协调器节点Coordinator建立Zigbee网络,其他各节点在加入网络时分别建立自身的邻居表。
步骤2,各节点同自身的所有邻居节点交互邻居表。如Coordinator节点发送信标帧时,会在负载中携带自身的邻居表信息,当R24节点接收到Coordinator节点发送的信标帧时,会提取保存Coordinator节点的邻居表信息,这样R24节点就知道了Coordinator节点的邻居节点信息;同时R24节点会转发接收到的信标帧,并将信标帧中的邻居表信息替换成自身的邻居表信息,这时Coordinator节点接收到R24节点转发的信标帧时,会提取保存R24节点的邻居表信息,这样R24节点和Coordinator节点便完成了一次邻居表交互过程,其他节点的邻居表交互过程相同。
以下各步骤均以该对(R35,R27)源节点和目的节点为例来详细说明本发明的余下的具体过程,其他对源节点和目的节点处理步骤相同。
步骤3,当R32节点接收到R35源节点发送的数据帧时,会判断数据帧的目的地址是否是自身地址,若是,则直接发送数据至自身的上层;否则进入步骤4处理。显然目的地址不是R32节点的自身地址,所以会进入步骤4。
步骤4,R32节点搜索自身的所有邻居节点(包括R29、R30、R31、R33、R35、R36),判断目的节点是否是自身的某一邻居节点,若是,则将该数据帧直接发送至该邻居节点;否则,进入步骤5处理;显然R32节点的所有邻居节点都不是目的节点,所以会进入步骤5。
步骤5,R32节点根据式(4)检查目的节点是否是自身的子孙节点:若是,则按照原有树型路由算法也即根据式(6)确定下一跳节点并转发该数据帧;否则,进入步骤6处理。显然目的节点不是R32节点的子孙节点,所以会进入步骤6。
步骤6,R32节点根据步骤2获取的所有邻居节点的邻居表信息,检查目的地址是否是自身的某一二级邻居节点:若是,则直接将数据帧发送至与该二级邻居节点对应的R32节点的邻居节点(若目的节点是ED16节点,它是R32节点的二级邻居节点,则R32节点将数据帧发送至自身的邻居节点R31节点);否则,进入步骤7处理。显然目的节点并不是R32节点的二级邻居节点,所以会进入步骤7。
步骤7,R32节点按照式(7)、式(8)、式(9)计算自身的所有二级邻居节点到达目的节点的最小跳数值,选取最小跳数值最小的二级邻居节点,并将该数据帧发送至与该二级邻居节点对应的R32节点的邻居节点。具体来说,R32节点的所有二级邻居节点中,R26节点距离目的节点R27只有一跳距离,最小跳数值最小,因此R32节点将数据帧发送至自身的邻居节点R31。
步骤8,R31节点接收到R32节点转发的数据帧后,会按照步骤3~7所述要求继续转发该数据帧,直到数据帧到达目的节点R27为止。
在该实施例设置的同样实验场景下,原有树型路由算法方案、现有改进技术方案一、现有改进技术方案二、本发明改进技术方案分别对网络的不同性能进行了仿真比较。图5是四种方案在平均端到端时延上的性能比较;图6是四种方案在平均总能量消耗上的性能比较;图7是四种方案在平均跳数上的性能比较;图8是四种方案对不同网络深度节点的平均中继次数的性能比较。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (4)
1.一种交互邻居表模式的Zigbee网络树型路由方法,其特征在于:包括如下步骤:
(1)协调器节点建立Zigbee网络,其他各节点在加入Zigbee网络时分别建立自身的邻居表;
(2)各节点同自身的所有邻居节点交互邻居表;
(3)当某一当前节点接收到一个数据帧时,检查该数据帧的目的地址是否是自身地址,若目的地址是当前节点的自身地址,则直接将该数据帧转发至当前节点的上层;否则,则进入步骤(4);
(4)搜索当前节点的所有邻居节点,检查目的地址是否是当前节点的某一邻居节点地址,若目的地址是当前节点的某一邻居节点地址,则直接将该数据帧转发至该邻居节点;否则,进入步骤(5);
(5)检查目的地址是否是当前节点的子孙节点地址,若目的地址是当前节点的子孙节点地址,则按照原有的Zigbee网络树形路由算法选择下一跳地址,转发该数据帧;否则,进入步骤(6);
(6)当前节点根据步骤(2)获取的所有邻居节点的邻居表信息,检查目的地址是否是当前节点的某一二级邻居节点地址,若目的地址是当前节点的某一二级邻居节点地址,则直接将该数据帧转发至与该二级邻居节点对应的当前节点的邻居节点;否则,进入步骤(7);
(7)在当前节点的所有二级邻居节点中搜索到达目的地址最小跳数值最小的节点及对应的二级邻居节点,将该数据帧转发至与该二级邻居节点对应的当前节点的邻居节点;
(8)中间节点接收到数据帧后,返回步骤(3)继续转发数据帧,直至数据帧到达目的节点。
2.根据权利要求1所述的交互邻居表模式的Zigbee网络树型路由方法,其特征在于:所述步骤(2)中,各节点同自身的所有邻居节点交互邻居表,具体过程如下:
(21)协调器节点周期性广播信标帧或转发节点转发信标帧时,在信标帧的负载中添加自身的邻居表信息;
(22)协调器节点或转发节点的邻居节点在接收到信标帧时,提取并保存该信标帧中的邻居表信息,同时将该信标帧负载中的邻居表信息替换为自身的邻居表信息,并继续广播或转发该信标帧;
(23)协调器节点或转发节点在每一个信标帧周期中,只广播或转发一次信标帧,同时只接收一次同一节点广播或转发的信标帧。
3.根据权利要求1所述的交互邻居表模式的Zigbee网络树型路由方法,其特征在于:所述步骤(5)中,检查目的地址是否是当前节点的子孙节点地址,若目的地址是当前节点的子孙节点地址,则按照原有的Zigbee网络树形路由算法选择下一跳地址,转发该数据帧,具体过程如下:
(51)设当前节点的地址为A、网络深度为d,网络深度为d的节点分配给子节点的地址偏移量为Cskip(d),目的地址为D,根据下式判断目的地址是否为当前节点的子孙节点:
A<D<A+Cskip(d-1)
若目的地址为D满足上式,则目的地址是当前节点的子孙节点地址;否则,目的地址不是当前节点的子孙节点地址;
(52)目的地址D是当前节点A的子孙节点地址,按照原有的Zigbee网络树形路由算法选择下一跳地址,即按照下式确定下一跳地址:
其中N为下一跳地址。
4.根据权利要求1所述的交互邻居表模式的Zigbee网络树型路由方法,其特征在于:所述步骤(7)中,计算当前节点的二级邻居节点到达目的地址最小跳数值的方法如下:
设当前节点A的某一二级邻居节点的网络深度为currentDepth,目的地址D的网络深度为destDepth,该二级邻居节点与目的地址的最大深度公共父节点的网络深度为parentDepth,则根据式(7)计算所述二级邻居节点与目的地址之间的最小跳数minhop:
minhop=currentDepth+destDepth-2×parentDepth (7)
其中:二级邻居节点的网络深度currentDepth通过交互后的邻居表信息获得;目的地址D的网络深度destDepth根据原有的Zigbee网络树形路由算法,从协调器开始,不断循环计算下一跳地址,直到下一跳地址等于目的地址D,所用的循环次数即为目的地址D的网络深度destDepth;二级邻居节点与目的地址的最大深度公共父节点的网络深度parentDepth计算过程如下:
(701)初始化最大深度公共父节点地址P=0、网络深度parentDepth=0;
(702)按照式(8)进行计算:
P<A<P+Cskip(parentDepth-1) (8)
若当前节点A满足式(8),则进入步骤(703),否则进入步骤(704);
(703)则按照式(9)计算下一最大深度公共父节点地址N:
同时,令P=N,parentDepth=parentDepth+1;返回步骤(702);
(704)parentDepth=parentDepth-1;
其中,Cskip(d)表示网络深度为d的节点分配给子节点的地址偏移量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410073228.3A CN103781144A (zh) | 2014-02-28 | 2014-02-28 | 一种交互邻居表模式的Zigbee网络树型路由方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410073228.3A CN103781144A (zh) | 2014-02-28 | 2014-02-28 | 一种交互邻居表模式的Zigbee网络树型路由方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103781144A true CN103781144A (zh) | 2014-05-07 |
Family
ID=50572845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410073228.3A Pending CN103781144A (zh) | 2014-02-28 | 2014-02-28 | 一种交互邻居表模式的Zigbee网络树型路由方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103781144A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104869603A (zh) * | 2015-05-08 | 2015-08-26 | 中山大学 | 一种适用于无线监测控制网络的ZigBee路由方法 |
CN105050149A (zh) * | 2015-06-01 | 2015-11-11 | 苏州博联科技有限公司 | 用于解决Zigbee树型网络拥塞问题的路由方法 |
CN105847150A (zh) * | 2016-03-23 | 2016-08-10 | 贵州电网有限责任公司电力科学研究院 | 一种无线与电力载波有线混合路由选择方法 |
CN106060822A (zh) * | 2016-08-18 | 2016-10-26 | 中国联合网络通信集团有限公司 | 接入传感器节点的方法、增强设备和传感器网络 |
CN106332213A (zh) * | 2016-08-24 | 2017-01-11 | 河海大学 | 一种减少ZigBee无线传输网络路由跳数的方法 |
CN107332777A (zh) * | 2017-06-22 | 2017-11-07 | 北京中宸泓昌科技有限公司 | 一种基于树的低压电力线宽带载波通信组网方法 |
CN108495352A (zh) * | 2018-05-21 | 2018-09-04 | 中国联合网络通信集团有限公司 | 路由方法和路由系统 |
CN109412953A (zh) * | 2018-12-27 | 2019-03-01 | 北京比新科技有限公司 | 一种基于区块链overlay网络的路由信息交互方法 |
CN112492057A (zh) * | 2020-11-16 | 2021-03-12 | 电子科技大学 | 一种固定根节点的地址自配置方法 |
CN113286345A (zh) * | 2021-05-19 | 2021-08-20 | 北华航天工业学院 | 一种ZigBee网络路由及其控制方法 |
CN113301670A (zh) * | 2021-05-28 | 2021-08-24 | 深圳市吉祥腾达科技有限公司 | 发送和转发无线广播包的方法、装置、系统及存储介质 |
CN114860813A (zh) * | 2022-06-30 | 2022-08-05 | 北京电科智芯科技有限公司 | 计量装置的全生命周期管理系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060045776A (ko) * | 2004-08-06 | 2006-05-17 | 삼성전자주식회사 | 클러스터-트리 구조로 연결된 이후에 어드레스를 할당하는지그비 네트워크 디바이스, 그 어드레스 할당 방법, 및,라우팅 방법 |
CN101184037A (zh) * | 2007-10-31 | 2008-05-21 | 北京航空航天大学 | 基于概率有效广播系数的洪泛方法 |
CN101710895A (zh) * | 2009-11-30 | 2010-05-19 | 中国人民解放军信息工程大学 | 一种获取多下一跳路由的方法、装置和路由器 |
CN101883394A (zh) * | 2010-05-10 | 2010-11-10 | 南京大学 | 一种支持无线自组网网络编码机会发现的方法 |
CN101965031A (zh) * | 2010-05-19 | 2011-02-02 | 北京科技大学 | 一种基于最大概率的认知无线电多径组播路由方法 |
CN102083164A (zh) * | 2011-02-28 | 2011-06-01 | 无锡泛联物联网科技股份有限公司 | 基于能量感知的无线传感器网络机会路由方法 |
CN102137462A (zh) * | 2011-04-19 | 2011-07-27 | 西安电子科技大学 | 车辆自组织网络中基于预测的交叉路口处的路由方法 |
CN102256324A (zh) * | 2011-07-06 | 2011-11-23 | 南京航空航天大学 | 一种基于树型路由算法的物联网自组织网络协议 |
CN102264114A (zh) * | 2011-08-12 | 2011-11-30 | 重庆邮电大学 | 一种ZigBee传感网树路由低开销优化方法 |
CN102595550A (zh) * | 2012-02-16 | 2012-07-18 | 河海大学常州校区 | 基于跨层优化的自适应无线传感器网络路由方法 |
CN103442403A (zh) * | 2013-09-17 | 2013-12-11 | 重庆大学 | 风电场无线自主监控网络的数据路由传输控制方法 |
-
2014
- 2014-02-28 CN CN201410073228.3A patent/CN103781144A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060045776A (ko) * | 2004-08-06 | 2006-05-17 | 삼성전자주식회사 | 클러스터-트리 구조로 연결된 이후에 어드레스를 할당하는지그비 네트워크 디바이스, 그 어드레스 할당 방법, 및,라우팅 방법 |
CN101184037A (zh) * | 2007-10-31 | 2008-05-21 | 北京航空航天大学 | 基于概率有效广播系数的洪泛方法 |
CN101710895A (zh) * | 2009-11-30 | 2010-05-19 | 中国人民解放军信息工程大学 | 一种获取多下一跳路由的方法、装置和路由器 |
CN101883394A (zh) * | 2010-05-10 | 2010-11-10 | 南京大学 | 一种支持无线自组网网络编码机会发现的方法 |
CN101965031A (zh) * | 2010-05-19 | 2011-02-02 | 北京科技大学 | 一种基于最大概率的认知无线电多径组播路由方法 |
CN102083164A (zh) * | 2011-02-28 | 2011-06-01 | 无锡泛联物联网科技股份有限公司 | 基于能量感知的无线传感器网络机会路由方法 |
CN102137462A (zh) * | 2011-04-19 | 2011-07-27 | 西安电子科技大学 | 车辆自组织网络中基于预测的交叉路口处的路由方法 |
CN102256324A (zh) * | 2011-07-06 | 2011-11-23 | 南京航空航天大学 | 一种基于树型路由算法的物联网自组织网络协议 |
CN102264114A (zh) * | 2011-08-12 | 2011-11-30 | 重庆邮电大学 | 一种ZigBee传感网树路由低开销优化方法 |
CN102595550A (zh) * | 2012-02-16 | 2012-07-18 | 河海大学常州校区 | 基于跨层优化的自适应无线传感器网络路由方法 |
CN103442403A (zh) * | 2013-09-17 | 2013-12-11 | 重庆大学 | 风电场无线自主监控网络的数据路由传输控制方法 |
Non-Patent Citations (6)
Title |
---|
周 鑫, 林 勇: "一种基于 ZigBee 树状路由协议的改进算法ATSPF", 《科学技术与工程》 * |
姚玉坤,李鹏翔,任智,顾缘: "适用于zigbee网络的借地址分配算法", 《计算机应用》 * |
戚剑超,魏臻: "ZigBee树型路由算法的改进", 《合肥工业大学学报》 * |
李 刚,陈俊杰,葛文涛: "一种改进的ZigBee网络Cluster-Tree路由算法", 《测控技术》 * |
王俊杰,陈其工,江明,高文根: "LR-WPAN捷径式能量均衡树路由算法研究", 《COMPUTER ENGINEERING AND APPLICATIONS》 * |
王胜平,胥布工: "ZigBee 网络路由发现广播策略", 《计算机工程》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104869603B (zh) * | 2015-05-08 | 2018-08-14 | 中山大学 | 一种适用于无线监测控制网络的ZigBee路由方法 |
CN104869603A (zh) * | 2015-05-08 | 2015-08-26 | 中山大学 | 一种适用于无线监测控制网络的ZigBee路由方法 |
CN105050149A (zh) * | 2015-06-01 | 2015-11-11 | 苏州博联科技有限公司 | 用于解决Zigbee树型网络拥塞问题的路由方法 |
CN105847150A (zh) * | 2016-03-23 | 2016-08-10 | 贵州电网有限责任公司电力科学研究院 | 一种无线与电力载波有线混合路由选择方法 |
CN105847150B (zh) * | 2016-03-23 | 2019-03-12 | 贵州电网有限责任公司电力科学研究院 | 一种无线与电力载波有线混合路由选择方法 |
CN106060822B (zh) * | 2016-08-18 | 2019-09-17 | 中国联合网络通信集团有限公司 | 接入传感器节点的方法、增强设备和传感器网络 |
CN106060822A (zh) * | 2016-08-18 | 2016-10-26 | 中国联合网络通信集团有限公司 | 接入传感器节点的方法、增强设备和传感器网络 |
CN106332213A (zh) * | 2016-08-24 | 2017-01-11 | 河海大学 | 一种减少ZigBee无线传输网络路由跳数的方法 |
CN106332213B (zh) * | 2016-08-24 | 2019-07-12 | 河海大学 | 一种减少ZigBee无线传输网络路由跳数的方法 |
CN107332777A (zh) * | 2017-06-22 | 2017-11-07 | 北京中宸泓昌科技有限公司 | 一种基于树的低压电力线宽带载波通信组网方法 |
CN108495352A (zh) * | 2018-05-21 | 2018-09-04 | 中国联合网络通信集团有限公司 | 路由方法和路由系统 |
CN109412953A (zh) * | 2018-12-27 | 2019-03-01 | 北京比新科技有限公司 | 一种基于区块链overlay网络的路由信息交互方法 |
CN109412953B (zh) * | 2018-12-27 | 2023-03-07 | 深圳微言科技有限责任公司 | 一种基于区块链overlay网络的路由信息交互方法 |
CN112492057A (zh) * | 2020-11-16 | 2021-03-12 | 电子科技大学 | 一种固定根节点的地址自配置方法 |
CN113286345A (zh) * | 2021-05-19 | 2021-08-20 | 北华航天工业学院 | 一种ZigBee网络路由及其控制方法 |
CN113301670A (zh) * | 2021-05-28 | 2021-08-24 | 深圳市吉祥腾达科技有限公司 | 发送和转发无线广播包的方法、装置、系统及存储介质 |
CN114860813A (zh) * | 2022-06-30 | 2022-08-05 | 北京电科智芯科技有限公司 | 计量装置的全生命周期管理系统 |
CN114860813B (zh) * | 2022-06-30 | 2022-09-23 | 北京电科智芯科技有限公司 | 计量装置的全生命周期管理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103781144A (zh) | 一种交互邻居表模式的Zigbee网络树型路由方法 | |
Robinson et al. | FD-AOMDV: fault-tolerant disjoint ad-hoc on-demand multipath distance vector routing algorithm in mobile ad-hoc networks | |
CN104038965B (zh) | 一种高效利用能源的移动无线传感网机会路由方法 | |
Fu et al. | Sustainable multipath routing protocol for multi-sink wireless sensor networks in harsh environments | |
CN101415248B (zh) | 基于负载均衡的跨层动态源路由协议的建立方法 | |
CN102264114B (zh) | 一种ZigBee传感网树路由低开销优化方法 | |
CN103200643B (zh) | 基于剩余能量感知的分布式容错拓扑控制方法 | |
Bhattacharjee et al. | Lifetime maximizing dynamic energy efficient routing protocol for multi hop wireless networks | |
Tashtoush et al. | Fibonacci sequence based multipath load balancing approach for mobile ad hoc networks | |
CN107404745A (zh) | 一种基于自组网的火灾探测器远程检测系统 | |
CN104507168A (zh) | 认知Ad Hoc网络的分布式拓扑控制方法 | |
Wen et al. | Energy-efficient and delay-aware distributed routing with cooperative transmission for Internet of Things | |
CN101267401B (zh) | 一种结合aodv协议的混合式拓扑控制方法 | |
CN103118412A (zh) | Ad Hoc网络中基于信任的按需多路径矢量路由算法 | |
CN103281747B (zh) | 一种无线中继路径优选方法 | |
Mu et al. | Performance analysis of the ZigBee networks in 5G environment and the nearest access routing for improvement | |
Zheng et al. | A resource-efficient and scalable wireless mesh routing protocol | |
Tabatabaei et al. | Fuzzy-based routing protocol to increase throughput in mobile ad hoc networks | |
Chen et al. | Energy-balanced cooperative routing in multihop wireless networks | |
CN104010338A (zh) | 一种基于终端能量感知的改进aodv路由方法 | |
Singh et al. | A review paper on introduction to MANET | |
Benakappa et al. | An energy-aware node disjoint multipath routing protocol for MANETs with dynamictransmission range adjustment | |
Vimala et al. | Strongest persistent multicast routing protocol for reliable transmission in both ad-hoc and mobile ad-hoc networks | |
Pozveh et al. | Improving the AODV protocol to satisfy the required level of reliability for home area networks | |
CN103685038A (zh) | 一种在无线自组织网中基于节点相对运动速度和节点密集程度的广播路由选择方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140507 |
|
RJ01 | Rejection of invention patent application after publication |