用于解决Zigbee树型网络拥塞问题的路由方法

文档序号:9331208阅读:1103来源:国知局
用于解决Zigbee树型网络拥塞问题的路由方法
【技术领域】
[0001] 本发明属于Zigbee树型网络,具体地涉及一种用于解决Zigbee树型网络拥塞问 题的路由方法。
【背景技术】
[0002] Zigbee技术是一种低成本、低功耗和低数据传输率的短距离无线通信技术。 Zigbee网络可以支持星型、树型和网格型拓扑结构,常见的网络层路由算法有树型路由和 AODVjr路由,前者主要用于树型结构网络,后者主要用于网格型网络。
[0003]Zigbee网络的树型路由算法中,节点不需要进行路由发现,只需根据父子关系进 行数据的转发,能够避免网络环路和控制路由开销。但是也存在弊端,节点只能沿着树型结 构进行通信,当某个树干发生拥塞时只能进行等待或放弃传输,从而带来数据传输的延时 和丢包;此外,较大负载的树干拥有很大的数据流通量,而负载较轻的树干却长时间处于空 闲状态,这样造成了能量消耗的不均衡,降低了网络的生命周期。
[0004]Zigbee网络分布式地址分配方案及路由算法基本原理: Zigbee树型路由选择算法的原理来源于其地址分配机制,分布式的地址分配方案中, 每个父节点会得到一个网络地址空间,其子节点的地址根据设备类型从这个地址空间中得 到一个地址段或一个地址。其分布式地址分配方式的原理如下: 首先,在Zigbee网络中,由协调器决定网络深度和允许挂载的最大节点数,其中协调 器的网络深度为〇,它的一级子节点网络深度为1,依次递增。以Cm表示父节点的最大子节 点数,Rm表示路由器的最大子节点数目,Lm代表网络的最大深度,Cskip(d)表示网络深度 为d的父节点为其子节点分配的地址空间,初始化协调器的网络地址和网络深度均为0。 [0005] 然后,按照公式(1)和公式⑵,
那么第K个子节点被深度为d的父节点Ap分配地址计算如公式(3)和公式(4),
(4) 最后,父节点按照上述方案给子节点分配地址,直到父节点所有的地址块分配完而不 再接受新的节点申请为止。
[0006]Zigbee网络的树型路由算法基本原理如下:
(1) 当一个节点需要转发信息到目的节点时,转播节点首先需要判断目的节点是否为 其子孙节点。若转发节点的深度为d,地址为A,如果满足公式(5)则确定目的节点是其子 孙节点_
[0007] (5) (2) 如若不满足公式(5),则向转发节点的父节点传输,数据到达父节点后再进行公示 (5)的判断。
[0008] (3)如确定目标节点为转发节点的子孙节点后,则进行下一跳的地址判断。如果 目标节点为转发节点的子节点,那么下一跳的地址就是目的地址。如果目标节点为其后裔 的非子节点,下一跳地址通过公式(6)计算得到。
[0009]
(6) (4)在确定达到目的节点的下一跳地址后,该节点会更新其路由表,这样在以后的通 信中,就不需要每次通过计算确定下一跳地址,而是可以直接通过查询路由表得到。
[0010] 现有的改进型树型路由算法优化方案大体可以分为两类,一类是通过减少信息量 的方式,即尽可能的减少树型网络中流通的数据量以达到尽可能降低拥塞情况的发生。数 据量的减少主要通过缩短数据包长度和通过增大路由表存储的信息以减少路由探索次数 等,该类方案对于某个特定规模的项目有明显的改善效果,但不利于网络的扩展和升级。另 一类优化方案主要是通过改变分布不均匀的网络结构来达到能量均衡。譬如建立动态簇头 的方式,即通过一定算法,根据需要改变树干的簇头,相当于对网络结构进行重置。该类方 案路由开销较大,且算法复杂。

【发明内容】

[0011] 针对Zigbee网络中原有的树型路由算法可能出现的树干负载分布不均衡造成拥 塞,从而带来数据传输延时或丢包的问题,本发明目的是:提供一种用于解决Zigbee树型 网络拥塞问题的路由方法,该方法在原有的树型路由算法基础上通过建立横向通信路径的 方式,使得在树干发生拥塞时,节点可以采用负载较轻的邻居节点进行转发数据,能够有效 地降低数据传输延时,解决网络能量分布不均衡的现象,从而延长网络生命周期。
[0012] 本发明的技术方案是: 一种用于解决Zigbee树型网络拥塞问题的路由方法,其特征在于,包括如下步骤: (1) 协调器节点建立Zigbee网络,其他节点加入Zigbee网络时分别建立自身的邻居 表; (2) 树型网络维护阶段,各节点通过Hello维护报文同自身的所有邻居节点交互邻居 表信息; (3) 当节点接收到数据后,检查该数据帧的目的地址,若目的地址是当前节点的自身地 址,则将数据交给当前节点的父节点;否则进入步骤(4); (4) 若目的地址是当前节点的子孙节点地址,则按原有的Zigbee网络树型路由算法选 择下一跳地址,转发该数据;否则进入步骤(5); (5) 当前节点将数据转发到其父节点,若通信顺利,将重复步骤(3)、⑷直到数据到达 目的节点;若到父节点的链路始终处于繁忙状态,则进入步骤(6); (6) 当前节点根据步骤(2)获取的邻居表信息,通过查询邻居表,向等级比自己高或相 同的非父子关系的邻居节点发送数据请求,并等待邻居节点的响应; (7) 给予响应的邻居节点在应答帧中再次添加自身的信息,发送数据请求的节点根据 应答信息对邻居表进行更新;通过对负载进行判定,选择负载最轻的邻居节点进行横向通 f目; (8) 邻居节点收到数据帧后,返回步骤(3)继续转发数据帧,直到数据到达目的节点。
[0013] 优选的,所述步骤(2)中,各节点通过Hello报文维护网络连接并同自身的所有邻 居节点交互信息,包括如下步骤: (21) 树型结构网络中的所有节点周期性发送Hello报文给自己邻居表中的节点,在 Hello报文的负载中添加自身的节点信息; (22) 接收到Hello报文的节点提取报文负载信息并保存在自己的邻居表中,同时将自 身信息添加到应答帧负载中,返回到发送节点; (23) Hello报文与邻居表中邻居节点对应的定时器相关,在定时时间内收到应答,则说 明连接有效,可对邻居表进行更新;反之,则说明链路断开,不可对邻居表进行更新。
[0014] 优选的,所述步骤(4)中,目的地址是当前节点的子孙节点地址的判断方法为:设 当前节点的网络深度为d,地址为A,网络深度为d的节点分配给子节点的地址偏移量为 Cskip(d-1),若目的地址D满足下式,A<D<4 + _1.),则目的地址是当前节点的 子孙节点地址;否则,目的地址不是当前节点的子孙节点地址;所述步骤(4)中下一跳地址 的计算公式为
其中,_%1_表示网络深度为d的节点所拥有的地址空间。
[0015] 优选的,所述步骤(7)中,对于横向通信的邻居节点的选择方法如下: (71) 如果邻居节点等级与请求横向通信的节点相同,则将邻居节点的父节点的负载 与请求节点的父节点的负载进行比较,选取负载较小的作为待选邻居节点; (72) 如果邻居节点等级比请求横向通信的节点高,则将邻居节点的负载与请求节点 的父节点负载进行比较,选取负载较小的作为待选邻居节点; (73) 如果邻居节点等级比请求横向通信的节点低,则放弃作为横向通信的待选邻居节 占. (74) 在待选邻居节点中,通过公式戀选取具有最小D#数的节点作为横向通 信的邻居节点;其中,Ei(t)表示节点的实时能力值,通过邻居节点的应答帧获取,参数D,用 来表不数据传输延时。
[0016] 本发明的优点是: 1.对Zigbee树型网络,在原有的树型路由算法基础上通过建立横向连接的方式,让树 型网络中具有非父子关系的邻近节点间能够进行通信,使得树干在发生拥塞时,能够有效 地缓解拥塞情况,降低网络延时。
[0017] 2.通过建立横向连接的方式,让网络的总能量消耗较少,同时也能够均衡不同树 干的数据量,从而平衡网络的能量消耗,延长网络生命周期。
【附图说明】
[0018] 下面结合附图及实施例对本发明作进一步描述: 图1为本发明用于解决Zigbee树型网络拥塞问题的路由方法的Zigbee网络拓扑结构 示意图; 图2为本发明用于解决Zigbee树型网络拥塞问题的路由方法的Hello报文信息结构 图; 图3为本发明用于解决Zigbee树型网络拥塞问题的路由方法的树干未发生拥塞时路 由流程图; 图4为本发明用于解决Zigbee树型网络拥塞问题的路由方法的横向连接路由流程图。【具体实施方式】
[0019]为使本发
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1