zigbee 路由选择效率低下

按需路由协议

https://blog.csdn.net/u013300635/article/details/82842332

 

 协调器只能存有限的路由表,当需要给不在路由表且不在邻居表的设备发送数据就需要在发送前进行路由发现,找到发送路径。

假设网络中有100个设备,理想情况下20个在邻居表(一跳范围内直接发送)、20个在路由表中,那么剩下的60个节点,协调器想要发送数据就必须在发送前发送route request帧进行route discovery。

首先协调器通过route request全网广播找路径,网络中节点在转发广播的时候临时维护一个路由发现表,记录下自己转的数据从哪来的,链路开销是多少,然后加入自己的链路开销转发出去!

这样全网广播,目标节点肯定是可以收到这个数据,并且这个数据还会收到多次,周围的七大姑八大姨一人给自己转发一次。

目的节点对比收到的数据看那个数据的链路开销是最小的,然后选择开销最小的链路进行单播回复route recored。是六姑给你的链路质量最好,目标节点就将回复单播给六姑,然后六姑根据路由发现表同样找链路质量最好的回复。如此一直回复到协调器。

这个回复的过程也是网络中的设备节点开始建立关于目标节点路由表的时候,设备中的路由发现表就随着路由表的建立而销毁。

这效率多低啊??真实有60个设备每次发送前都这样广播一遍单播一遍,而且还要保证这一来一回的路径发现不出现问题(基本不可能的)

 

link status是用来维护邻居表的,如果多次未收到对方的link status,会判定链路断开!用于移除僵尸节点的。

// Source routing table
typedef struct
{
  uint8    expiryTime;
  uint8    relayCount;
  uint16   dstAddress;
  uint16*  relayList;
} rtgSrcEntry_t;

 

// Route discovery table entry
//路由发现表,该表仅在路由发现过程中存在,发现完成即可销毁
typedef struct
{
  byte    rreqId;
  uint16  srcAddress;
  uint16  previousNode;
  byte    forwardCost;
  byte    residualCost;
  byte    expiryTime;
} rtDiscEntry_t;
// Routing table entry
//   Notice, if you change this structure, you must also change
//   rtgItem_t in ZDProfile.h
//路由表
typedef struct
{
  uint16  dstAddress;//目标地址
  uint16  nextHopAddress;//到目标地址的下一跳
  byte    expiryTime;//超期时间,linkStatus维护
  byte    status;
  uint8   options;
} rtgEntry_t;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ZigBee路由协议的改进源码主要涉及以下几个方面: 1. 路径选择: ZigBee路由协议改进的一个重点是路径选择算法的优化。通过增加或改进路由表的数据结构,提供更高效、灵活的路径选择机制。源码会包含改进后的路径选择算法的实现,以保证网络中数据包的传输能够按照最佳路径进行。 2. 链路质量: Zigbee网络中与改进的路由协议相关的源码中还可能包括链路质量的优化。这可能涉及到信号强度和信噪比的测量,以及对链路质量进行动态调整的算法。源码会提供更准确、可靠的链路质量信息,以在路径选择时进行较为准确的评估。 3. 路由表管理: Zigbee路由协议的源码改进还可能包括对路由表的管理优化,例如通过改进更新路由表的机制以提高网络的自适应性和鲁棒性。源码可能会涉及如何更有效地维护和更新路由表中的信息,以及如何在网络拓扑结构发生变化时及时更新路由表。 4. 网络拓扑优化: ZigBee路由协议的改进源码还可能包括如何优化网络拓扑结构的算法。通过对网络拓扑结构进行优化,可以减少网络延迟、提高数据传输速度和可靠性。源码会提供相应的算法和数据结构,以实现对网络拓扑的优化。 总之,ZigBee路由协议的改进源码主要着眼于路径选择、链路质量、路由表管理和网络拓扑优化等方面的优化。源码的改进旨在提高ZigBee网络的性能、可靠性和扩展性,以满足不同应用场景下的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值