法律状态公告日
法律状态信息
法律状态
2018-02-27
授权
授权
2015-05-27
实质审查的生效 IPC(主分类):H04W28/08 申请日:20150123
实质审查的生效
2015-05-06
公开
公开
技术领域
本发明涉及ZigBee网络,具体是一种基于分簇结构的ZigBee网络能量均衡 路由方法。
背景技术
ZigBee是一种基于IEEE 802.15.4的Ad-hoc网络新兴技术,它常用于近距 离低数据速率的无线传感网络。它随着物联网发展而快速成长,同时,由于 ZigBee节点具有低速率、低成本、低功耗、低复杂度及高可靠性等特点,在智 能家居,矿业开采、智能温室、现代交通、医疗监护、工业自动化等方面都具 有广泛应用。但随着各行业自动化程度地增强,ZigBee技术需要做出不同的改 进以适应于日益复杂的应用场景。同时,优化ZigBee网络路由方法,均衡节点 功耗,减少网络总体能量消耗仍然是迫切需要解决的问题。
ZigBee网络支持星型、簇型、网格型三种拓扑结构,网络层采用簇树路由 算法Cluster-Tree与AODVjr路由算法相结合,综合考虑节点的计算能力和路由 能力,将全功能设备FFD节点分为RN+节点和RN-节点,其中RN+节点具备良 好的路由能力,可以使用AODVjr路由算法进行数据转发,而RN+节点只能采 用Cluster-Tree路由算法进行数据转发。
ZigBee网络Cluster-Tree路由算法中,源节点根据目的节点的网络地址确定 数据的发送路径,此算法没有路由控制开销,能有效降低全网的发送次数。但 此算法中的数据沿ZigBee网络簇结构进行转发,通常选出的不是最优径,路径 较长,跳数较多,增大了网络中数据发送的时延,同时,网络流量分布不均, 靠近协调器节点的节点转发次数较多,耗能较快,容易因节点能量耗尽而造成 网络分割。
ZigBee网络中的AODVjr算法通过在全网范围内广播RREQ消息,可以得 到源节点与目的节点之间的最短径,可以有效改善数据包的传输时延。但同时 由于在全网范围内进行RREQ消息广播,网络控制开销急剧增加,节点转发次 数随之增加,从而过度消耗网络能量。
现有ZigBee路由算法主要集中于限制RREQ消息广播范围,平衡网络业务 量,均衡节点能耗,延长网络生存时间等方面。公开号CN104049602A,提出了 一种无线传感网络的路由优化算法,通过设置节点剩余能量等级,来判断当前 节点是否接纳新的子节点、是否当作中继路由节点完成数据转发,此算法能增 加数据传输速率和系统吞吐量,使整个信息传输高效畅通。但随着网络工作时 间增大,网络节点的平均剩余能量减少,这种静态设置节点剩余能量等级阈值 的方法会造成无路径可选的情况。公开号CN103702370A,通过启用路由失败定 时器、数据等待定时器,综合考虑链路质量、数据发送时延等因素来选择路径, 能有效解决传统ZigBee网络中LQI值不能随时更新的问题。该方法可以在一定 程度上克服传统路由方法不能有效分配网络负载的问题,但未考虑路径中单个 节点剩余能量,网络可能因单个节点死亡而造成网络分割。公开号 CN103298057A,公开了一种基于ZigBee技术的并发多径路由方法,将节点能 量进行等级划分,根据掌握的路径能量信息自适应地选择时延最短和剩余能量 最高的两条路径进行多径传输,该方法考虑了节点剩余能量,能在一定程度上 均衡网络能量,延长网络生存时间,但此方法路径考量因素仍是整条路径总剩 余能量,未考虑单个节点剩余能量,网络仍可能因单个节点能量耗尽,而造成 网络分割。
同时,以上方法多从总路径剩余能量角度出发对ZigBee技术原有的 Cluster-Tree算法和AODVjr算法做出改进,未从路径最小节点剩余能量角度考 虑,有效避免剩余能量较小的节点;且未从减少AODVjr方法的路由控制开销 角度进行考虑。如何减少RREQ消息的发送次数,减少网络整体功耗,从而延 长网络生存时间仍是亟待解决的问题。
发明内容
针对以上现有技术中的不足,本发明的目的在于提供一种减少RREQ消息 发送次数,减少网络整体功耗,从而延长网络生存时间的基于分簇结构的 ZigBee网络能量均衡路由方法,本发明的技术方案如下:一种基于分簇结构的 ZigBee网络能量均衡路由方法,包括网络成簇阶段和路由发现阶段,其中网络 成簇阶段具体包括以下步骤:
101、协调器节点建立ZigBee网络,其它节点请求加入ZigBee网络,并在 加入网络时分别建立自身的邻居表;
102、获取步骤101中建立的ZigBee网络的簇树拓扑结构,并将网络分成N 个簇,其中N为协调器节点的子节点数目;
103、对步骤102分成的每个簇根据簇头选举策略进行簇头选举,形成拓扑 结构,具体步骤如下:
①判断当前节点是否是全功能设备FFD节点,若当前节点是全功能设备 FFD节点,则执行步骤②,否则执行步骤④;
②如公式(1)所示,分别计算各簇的平均节点深度davg(j);如公式(2)所示, 分别计算各簇的平均节点度数TNavg(j),其中,M是簇j的簇内节点总数,d(i) 是簇j内节点i的深度,TN(i)是簇j内节点i的节点度数;
③通过公式(3)计算各节点的簇头权值函数W(i),对节点度数、节点深度 两方面因素进行归一化处理,得到最终簇头权值函数;
④重复步骤①~③,直到计算出簇j内全部节点的簇头权值函数;
⑤比较各节点的权值函数,将权值函数最小的节点当作簇头,并对簇内 节点进行簇信息广播,簇内节点实行路由信息共享;
104、簇内节点查询自身邻居表,并将邻簇信息发送给簇头节点,簇头节 点对接收到的邻簇信息进行整合,并转发给协调器节点;协调器节点根据来自 各簇头的邻簇信息,生成邻簇序列SoAC,协调器节点向全网广播邻簇序列 SoAC,完成网络成簇阶段;
路由发现阶段具体包括以下步骤:
105、当ZigBee网络中的节点有数据包要进行发送时,网络进入路由发现阶 段,根据数据包的源节点网络地址、目的节点网络地址去查询源节点、目的节 点的簇号,判断源节点、目的节点是否同簇,若源节点、目的节点同簇,则执 行步骤106,否则执行步骤107;
106、若源节点、目的节点具有相同的邻居节点,则将数据包转发给相同的 邻居节点,邻居节点再将数据包转发给目的节点;反之,则按照簇树路由算法 Cluster-Tree进行数据转发;
107、查询邻簇序列SoAC,利用公式(4)计算源节点到目的节点之间的最大跳 数,其中,dS、dD分别是源、目的节点深度、dMCP是源目的节点最大公共父节 点深度,hmax表明数据包沿Cluster-Tree方法在网络中传输的路径长度,即数据 包在网络中传输的最大跳数;
hmax=dS+dD-2·dMCP (4)
108、在原路由请求RREQ结构的基础上添加最大跳数hmax、当前跳数位h、 以及最小节点剩余能量位RREQe,并根据公式(5)初始化当前跳数位和最小节点 剩余能量位,其中Einit为节点的初始能量值;
h=0
RREQe=Einit (5)
109、根据源节点、目的节点簇号查询邻簇序列SoAC,在邻簇序列基础上 生成正向邻簇序列fSoAC和逆向邻簇序列rSoAC;判断fSoAC的长度是否大于 rSoAC,若fSoAC长于rSoAC,且rSoAC中没有0,则RREQ消息沿rSoAC中 簇序列方向进行转发;若rSoAC长于fSoAC,且fSoAC中没有0,则RREQ消 息沿fSoAC中簇序列方向进行转发;否则,RREQ消息沿源簇→协调器节点→ 目的簇方向进行转发;
110、节点i接收来自上一跳节点的RREQ消息后,首先判断自身是否是目的 节点,若当前节点不是目的节点,则计算节点i的剩余能量Eres(i),并更新RREQ 消息,使得RREQ消息中的RREQe位为路径中最小节点剩余能量;
111、当RREQ消息到达目的节点时,根据公式(6)计算最大节点能量消耗 Econs,根据公式(7)计算路径代价函数cost;
Econs=Einit-RREQe (6)
目的节点选择代价函数最小的路径回复RREP消息,源节点接收到目的节点 发送的RREP消息后,按RREP消息的发送路径发送数据包。
进一步的,步骤102中根据络簇树结构将ZigBee网路分成N个簇,其中N 为协调器节点的子节点数目,且这N个子节点分别为各簇内节点的父辈节点。
进一步的,步骤104中的邻簇序列SoAC是由一系列表征各簇的数字组成的 集合,能反映出各簇与协调器节点的相对位置,默认SoAC中首簇和尾簇相邻, 当某簇未检测到一侧或两侧的邻簇信息,则这侧或两侧的邻簇信息由0替代。
进一步的,步骤108中发送的RREQ中字段包括:控制分组类型、源节点 地址、目的节点地址、最小剩余能量RREQe、当前跳数h、生存期hmax,按照 公式(8)进行RREQ消息初始化,其中,dS、dD分别是源、目的节点深度,dMCP是 源、目的节点最大公共父节点深度。
h=0
RREQe=Einit
(8)
hmax=ds+dD-2·dMCP
本发明的优点及有益效果如下:
本发明技术方案与现有技术方案相比,采取分簇的方式管理网络节点,在簇 头节点选择上综合考虑簇内通信和簇外通信两方面因素,有效减小簇头节点能 量消耗;可以限制AODVjr算法中RREQ消息的转发方向和转发范围,从而降 低网络整体功耗;可以避开剩余能量较小的节点,选择较短的路径进行数据转 发,从而有效分配网络负载。
附图说明
图1是按照本发明优选实施例的基于分簇结构的能量均衡ZigBee网络路由 方法成簇阶段流程图;
图2本发明所涉及到的ZigBee网络簇树拓扑结构;
图3本发明所涉及到的ZigBee网络分簇拓扑结构;
图4本发明所涉及到的ZigBee网络簇头节点拓扑结构;
图5本发明所涉及到的基于分簇结构的能量均衡ZigBee网络路由方法路由 发现阶段流程图;
图6本发明所涉及到的RREQ消息转发方向及转发范围判断演示图。
具体实施方式
本发明所设计的算法施用在ZigBee簇树网络中。以下将结合算法流程附图, 对本发明的算法进行详细的描述;应当理解,算法仅为了说明本发明,而不是 为了限制本发明的保护范围。本方法可分为两个阶段,成簇阶段和路由发现阶 段。如图1所示,成簇阶段包括如下步骤:
步骤1:如图2所示,协调器节点建立ZigBee网络,其他各节点在加入ZigBee 网络时分别建立自身的邻居表。
步骤2:如图3所示,沿ZigBee网络簇树拓扑结构,将网络分成N个簇,其 中N为协调器节点的子节点数目。
步骤3:根据簇头选举策略进行簇头选举,形成如图4所示的拓扑结构,具 体步骤如下:
①判断当前节点是否是FFD节点,若当前节点是FFD节点,则执行步 骤②,否则执行步骤④
②如公式(1)所示,分别计算各簇的平均节点度数;如公式(2)所示,分别 计算各簇的平均节点深度。其中,M是簇j的簇内节点总数,d(i)是簇j内节 点i的深度,TN(i)是簇j内节点i的节点度数。
③通过公式(3)计算各节点的簇头权值函数,对节点度数、节点深度两方 面因素进行归一化处理,得到最终簇头权值函数。
④重复步骤①~③,直到计算出簇j内全部节点的簇头权值函数
⑤比较各节点的权值函数,将权值函数最小的节点当作簇头,并对簇内 节点进行簇信息广播,簇内节点实行路由信息共享。
步骤4:从深度为Lm的簇内节点开始查询自身邻居表,当发现邻居表中有 非本簇节点时,向簇头节点发送邻簇信息。当簇内节点查询到两个不相同的非 邻簇信息时停止查询;若所有簇内节点查询完毕后仅得到单个邻簇信息,或未 获得邻簇信息,簇内节点同样停止查询,这表明当前簇在其通信范围内仅有一 个邻簇,或一个邻簇也没有。
步骤5:簇头节点对接收到的邻簇信息进行整合,并转发给协调器节点
步骤6:协调器节点根据来自各簇头的邻簇信息,生成邻簇序列SoAC,需 要注意的是,当单个簇头仅上传一个邻簇信息或未上传邻簇信息时,当前簇的 一侧邻簇信息或两侧邻簇信息由0代替。
步骤7:协调器节点向全网广播邻簇序列SoAC。
至此,网络分簇阶段步骤全部完成。如图5所示,一旦节点有数据包进行发 送,则网络进入路由发现阶段,详细步骤如下:
步骤1:根据源、目的节点网络地址去查询源、目的节点的簇号,判断源、 目的节点是否同簇。若源、目的节点同簇,则执行步骤2,否则执行步骤3。
步骤2:若源、目的节点具有相同的邻居节点,则将数据包转发给相同的邻 居节点,邻居节点再将数据包转发给目的节点;反之,则按照Cluster-Tree算法 进行数据转发。
步骤3:利用公式(4)计算源节点到目的节点之间的最大跳数,其中,dS、dD分别是源、目的节点深度、dMCP是源目的节点最大公共父节点深度,hmax表明数 据包沿Cluster-Tree算法在网络中传输的路径长度,即数据包在网络中传输的最 大跳数。
hmax=dS+dD-2·dMCP (4)
步骤4:在原RREQ结构基础上添加生存最大跳数hmax、当前跳数位h、以及 最小节点剩余能量位RREQe,并根据公式(5)对初始化当前跳数位和最小节点剩 余能量位,其中Einit为节点的初始能量值。
h=0
RREQe=Einit (5)
步骤5:如图6所示,根据源、目的节点的簇号查询邻簇序列SoAC,在邻簇 序列基础上可生成正向邻簇序列(fSoAC,forward SoAC)和逆向邻簇序列(rSoAC, reverse SoAC)。
步骤6:判断fSoAC的长度是否大于rSoAC,若fSoAC长度较长,则执行步 骤7,否则执行步骤8。
步骤7:判断rSoAC中是否存在0,若存在,则只有源、目的节点所在簇中 节点能转发RREQ消息,否则RREQ消息沿着rSoAC中的簇路径进行转发。
步骤8:判断fSoAC中是否存在0,若存在,则只有源、目的节点所在簇中 节点能转发RREQ消息,否则RREQ消息沿着fSoAC中的簇路径进行转发。
步骤9:节点i接收来自上一跳节点的RREQ消息后,首先判断自身是否是 目的节点,若当前节点不是目的节点,则执行步骤10,否则执行步骤14。
步骤10:按公式(6)计算节点i的剩余能量,其中txPower、rxPower是节点发 送、接收单个数据包消耗的能量,而txTimes(i)、rxTimes(i)是节点i发送、接收 包的次数。
Eres(i)=Einit-txPower·txTimes(i)-rxPower·rxTimes(i) (6)
步骤11:根据公式(7)更新RREQ包,RREQ消息每被转发一次,RREQ跳数 位加1;比较节点i的剩余能量和RREQ消息中能量位RREQe,使得RREQ消 息中的RREQe位为路径中最小节点剩余能量。
h=h+1
步骤12:根据前面确定的簇路径向下一跳节点转发RREQ消息。
步骤13:重复执行步骤10~12,直到当前节点为目的节点。
步骤14:目的节点根据公式(8)计算路径代价函数,综合考虑路径长度和路径 上最大节点能量消耗,其中Econs为路径中节点最大能量消耗,根据公式(9)计算。
Econs=Einit-RREQe (9)
步骤15:目的节点选择代价函数最小的路径回复RREP消息。
步骤16:源节点接收到目的节点发送的RREP消息后,按RREP消息的发送 路径发送数据包。
综上所述,本发明技术方案与现有计算方案相比,采取分簇的方式管理网络 节点,在簇头节点选择上综合考虑簇内通信和簇外通信两方面因素,有效减小 簇头节点能量消耗;可以限制AODVjr算法中RREQ消息的转发方向和转发范 围,从而降低网络整体功耗;可以避开剩余能量较小的节点,选择较短的路径 进行数据转发,从而有效分配网络负载。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范 围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或 修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
机译: 构建集群树结构后向子节点分配地址的zigbee网络设备,地址分配方法和路由方法
机译: 构建集群树结构后为孩子分配地址的ZigBee网络设备,地址分配方法及其路由方法
机译: ZigBee网络设备,用于在构造集群树结构后为子节点分配地址,地址分配方法和路由方法