当前位置: 首页 > news >正文

ZigBee的Many-to-One和Source Routing

1. Many-to-One Routing

Many-to-One Routing,是一种简单的路由机制,使得整个网络中的路由设备拥有回到中心节点的路由。
在这种机制下,中心节点周期性发送Many-to-One route discovery广播(协议栈默认设置为60s,可以在Plugin中更改)。当网络中的路由设备收到这条广播之后,其拥有回到中心节点的下一跳路由,并将此跳节点信息存储在自己的路由表中。至此,只要网络中的路由设备收到Many-to-One route discovery的广播,就知道回中心节点的路由(上行路由已经确认)。

2. Source routing

Source routing,是指中心节点将发往其它路由设备的路由机制。对于中心节点而言,其还不知道下行的路由,即将信息发往每个路由设备的路由还未知。当每个路由设备发送单播到中心节点时,会在此之前发送一条Route Record给中心节点。中心节点收到这条Route Record,将这条路由反向并存储在中心节点的Source routing表里。这样,中心节点就可以通过查询Source routing表来获取发给目的节点的路由。

简而言之,只要路由设备收到Many-to-One route discovery广播,就知道回到中心节点的路由。只要中心节点的Source routing表里面有路由设备的Source routing信息,则中心节点就知道发往该路由设备的路由。

3. 芯科Silicon Labs 网关开发注意点

注意在Gateway的”Concentrator Support” Plugin里面可以配置Source routing表的大小(理论上要大于网络中的路由设备的数量)以及Concentrator Type (LowRamConcentrator以及HighRamConcentrator)。两种不同的Concentrator Type使用的RAM空间不同。

对于HighRamConcentrator,Gateway会存储所有路由节点的信息到Source routing表中。

对于LowRamConcentrator,Gateway只将部分最新的路由节点的信息存储到Source routing表中。

  1. 当设为HighRamConcentrator时,每个路由节点只有在收到Many-to-One route discovery广播之后的第一条发送给中心节点的单播时,在此之前发送一条Route Record给中心节点。中心节点收到Route Record则会更新Source routing表的路由。
  2. 当设为LowRamConcentrator时,每个路由节点发送给中心节点的单播时,都会提前发送一条Route Record给中心节点。中心节点收到Route Record则会更新Source routing表信息。

在正常网络路由建立起来之后,Gateway节点和路由节点之间的上下行通信都能正常工作。

当某种异常情况出现时,在网络组建之后的某个时刻,Gateway复位或断电重启,其Source routing表的信息会全部丢失。此时需要有相应的机制来恢复其Source routing表。否则,中心节点不能发送单播到指定目的节点。在此情况下,可以使Gateway先发送一条Many-to-One route discovery路由,之后再发送一条广播到各路由节点,使得路由节点向Gateway回复一条单播。路由节点在发送此条单播之前,会返回一条Route Record。当Gateway收到Route Record就会将此条路由重新添加到Source routing表中。

如果在某种异常情况下,路由设备节点全部断电或重启,其中各路由节点的路由表也会丢失。此时需要等待至少16s左右之后,每个路由节点建立起与邻居路由节点的链路之后。再由Gateway端发送Many-to-One route discovery广播。一旦各路由节点设备收到Many-to-One route discovery广播,就拥有了回到Gateway的路由。

4.为什么多对一路由请求需要多跳,即使我所有的节点都在很近的范围内?

在ZigBee PRO中,一个节点只能听到来自其邻居表中的节点的广播。这样做的原因是它必须跟踪与之通信的每个节点的帧计数器,并且它只能对有限数量的节点这样做。因此,当多对一路由请求发出时,只有在其邻居表中具有集中器的节点才能听到它。然后这些节点会重复这个过程,直到所有节点都有了自己的新路由。

5.以下是设计大型密集网络的一些有用提示,例如用于办公室、酒店或大型住宅区的楼宇自动化网络。

Guidelines for Large/Dense Networks with EmberZNet PRO

http://www.lryc.cn/news/135088.html

相关文章:

  • 七夕节 Chinese Valentine‘s Day 的由来
  • 掌握JDK21全新结构化并发编程,轻松提升开发效率!
  • 【SA8295P 源码分析】00 - 系列文章链接汇总 - 持续更新中
  • TCP拥塞控制详解 | 6. 主动队列管理
  • 前端学习清单
  • go atomic原子操作详细解读
  • Vue用JSEncrypt对长文本json加密以及发现解密失败
  • Excel/PowerPoint折线图从Y轴开始(两侧不留空隙)
  • C++的类成员对齐
  • 敏感挂载userhelper容器逃逸复现
  • 深度解读Promise.prototype.finally
  • 如何实现24/7客户服务自动化?建设智能客服知识库
  • 和鲸 ModelWhale 与中科可控多款服务器完成适配认证,赋能中国云生态
  • selenium +Jmeter 的性能测试
  • 探索高效的HTTP异步接口测试方法:从轮询等待到自动化方案
  • Android资深工程书之LiveData核心组件原理剖析
  • Vue的五种方法实现加减乘除运算
  • C++(1)Linux基础知识
  • 接口自动化yaml文件读取与写入
  • Java Map、JSONObject、实体类互转
  • 在Hive/Spark上执行TPC-DS基准测试 (PARQUET格式)
  • 基于CentOS搭建私有仓库harbor
  • PDF怎么转Word?8 个最佳 PDF 转 Word 转换器
  • 老板都爱看的财务数据分析报表,全在这了
  • ZooKeeper(zk)与 Eureka 的区别及集群模式比较分析
  • 搜狗拼音占用了VSCode及微信小程序开发者工具快捷键Ctrl + Shit + K 搜狗拼音截图快捷键
  • PMI-ACP值得考吗?在中国的前景如何?
  • centos 安装防火墙,并开启对应端口号
  • 学习微信小程序时间延迟setTimeout和setInterval的使用方法
  • Vite好用的前端构建工具