Route Discovery Route Repair

1. Route Discovery

当单播消息从一台设备发送到另一台设备,并且没有预先存在的路由时,会发起路由发现。
我们假设没有现有的路由,因此网络软件将开始路由发现过程。为简单起见,假设所有设备的路由表都为空。
以设备A向设备C发送消息为例,如下图所示。设备A将向整个网络广播一条消息,要求设备C回复。此广播消息还用于建立回A的临时路由,因为每个中间设备都会记录从哪个设备接收到该消息。路由在中间节点上更新——注意,这些是临时条目,它们的生存期比常规条目短,并且不打算被重用。因为A是单跳邻居,所以B和D不需要存储它的路由信息。
在这里插入图片描述
C可以使用B或D作为返回A的下一跳,Zigbee将此选择留给实现;Silicon Labs使用加权算法来选择最可靠的下一跳。
当消息到达设备C时,C通过步骤1中构造的临时路由向设备A 发送一条特殊的单播消息(称为路由响应消息( Route Response message)),如下图所示。中间设备使用此消息建立回C的(永久)路由。

在这里插入图片描述
因为C是一个单跳邻居,所以B不需要存储关于它的路由信息。D没有参与这一部分的发现过程,因为在上面的步骤中D没有被A选中。当消息到达设备A时,表示路由发现完成
新的路由可以用来从A到C发送数据消息。
Zigbee PRO网络将检测非对称射频链路,并在路由发现过程中避免它们。这样可以提高发现过程和生成的路由的可靠性。
在一定的超时时间内(在EmberZNet 3.0和更高版本中为1分钟)未被使用的路由被标记为重用,新的路由可能会覆盖该内存位置。在某些情况下,可能需要一条新路由,而一个或多个中间设备将没有可用的路由表项;在这种情况下,消息将被报告为无法传递到发送节点。

应用程序指定接收方是否应该发送端到端确认(这称为APS确认)。如果是,在等待确认超时的情况下,发送方将在成功交付时收到通知。在超时的情况下,可能需要修复路由。

2. Route Repair

当发送带有请求确认的单播消息时,发送设备将在消息成功传递时得到通知。如果没有收到此确认,则可以采取步骤修复路由。路由修复的步骤与上面的路由发现完全相同,但损坏的节点(下图中的B)不参与,导致路由选择不同。
在这里插入图片描述

更新A的路由表,显示下一跳为D,消息沿新的路径成功传递,如下图所示。
在这里插入图片描述
如果没有可用的替代路径,则通知发送方无法传递消息。在EmberZNet PRO中,这由EmberStatus为EMBER_DELIVERY_FAILED (0x66)的响应表示。
在执行路由修复之前,EmberZNet PRO将尝试再次发送消息。当消息选项中同时设置了EMBER_APS_OPTION_RETRY和EMBER_APS_OPTION_ENABLE_ROUTE_DISCOVERY时,会自动进行路由修复。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/2248.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[lesson49]多态的概念和意义

多态的概念和意义 函数重写回顾 父类中被重写的函数依然会继承给子类 子类中重写的函数将覆盖父类中的函数 通过作用域分辨符(::)访问父类中的同名成员 多态的概念和意义 面向对象中期望的行为 根据实际的对象类型判断如何调用重写函数父类指针(引用)指向 父类对象则调用…

【LeetCode】---118.杨辉三角

一、题目解析: 二、知识回顾: 1.二维数组: 2. C语言中的二维数组访问方式和vector二维数组的访问, 不同区别: (1)表面是一样的,但底层不同! (2)静…

JAVA 项目<果园之窗>_2

上节主要是理论流程,这次直接用实际例子过一遍整个流程 目标是向数据库添加一个员工 上述是前端页面,点击保存 浏览器向我后端发送http请求 后端这一部分专门接收employee请求 在这里对http post请求进行转换成JAVA数据,并处理数据&#xff…

在linux系统中启动pycharm

1.找到pycharm的安装路径,一般在下载文件夹中 2.进入pycharm的安装路径,进入bin目录 3.右击,打开终端,输入./pycharm.sh

奇妙的探索——偶然发现的bug

今天想在腾讯招聘官网找几个前端的岗位投一下,最近自己也在找工作,结果简历还没有投出去,就发现了腾旭招聘官网的3个前端bug。 1.有时候鼠标hover还没有滑倒下拉选框的菜单上,就消失了,消失的太快了,根本点…

为智算产业高质量发展探寻路径,又一重要生态合作启动

4月22日,由中国工业经济联合会主办的“2024中国工业经济高峰论坛智能算力产业高质量发展论坛”落幕。院士专家、研究机构、以及来自智能算力产业上下游企业代表近180人出席,围绕完善算力基础设施、深化算力赋能行业应用、推动区域数字化发展等热点议题展…

Linux加强篇-Vim编辑器

目录 ⛳️推荐 Vim文本编辑器 编写简单文档 配置主机名称 配置网卡信息 配置软件仓库 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 Vim文本编辑器 在Linux系统中一切都…

重磅发布 | 《网络安全专用产品指南》(第一版)

2017年6月1日,《中华人民共和国网络安全法》正式实施,明确规定“网络关键设备和网络安全专用产品应当按照相关国家标准的强制性要求,由具备资格的机构安全认证合格或者安全检测符合要求后,方可销售或者提供。国家网信部门会同国务…

区区几行Python代码,就能实现全面自动探索性数据分析!

探索性数据分析是数据科学模型开发和数据集研究的重要组成部分之一。在拿到一个新数据集时首先就需要花费大量时间进行EDA来研究数据集中内在的信息。自动化的EDA Python包可以用几行Python代码执行EDA。在本文中整理了10个可以自动执行EDA并生成有关数据的见解的Python包&…

ROM修改进阶教程------安卓7_____安卓13去除签名验证操作步骤解析

同类博文: 安卓玩机搞机技巧综合资源-----修改rom 制作rom 解包rom的一些问题解析【二十一】_qcn改区域锁-CSDN博客 安卓系列机型rom修改。如果你删减了系统相关的app。那么严重会导致开机系统卡米 定屏等问题。这类一般都是系统签名验证导致的。而破解签名验证一般都是修改…

API接口的用途以及接入示例

API接口的主要用途是允许不同的软件系统之间进行通信和数据交换。具体来说,API接口可以用于以下几个方面: 数据传输和交换:API接口可以用于不同系统之间的数据传输和交换,例如将数据从一个系统传递到另一个系统,或者从…

【office安装错误1402或1406】

office安装错误1402或1406 错误如图 解决方法 打开autoremove,点击扩展,输入1402,点击搜索 等待修复成功,再尝试安装office 软件每周六选择其他登录方式可以免费使用

Python学习1--变量和简单数据类型

本章练习: Python之禅:

RocketMQ快速入门:namesrv、broker、dashboard的作用及消息发送、消费流程(三)

0. 引言 接触rocketmq之后,大家首当其冲的就会发现需要安装3个组件:namesrv, broker, dashboard,其中dashboard也叫console,为选装。而这几个组件之前的关系是什么呢,消息发送和接收的过程是如何传递的呢,…

如何在Windows 10中打开和自定义搜索?这里提供详细步骤

使用Windows 10中的搜索功能,你可以快速查找计算机上的文件、应用程序或设置。在本文,你可以学习如何在Windows 10中打开和控制搜索。 打开Windows 10搜索面板 打开Windows 10搜索面板很容易。通常,你可以在任务栏上找到搜索图标。只需单击…

如何在PostgreSQL中创建一个新的数据库,并指定所有者?

文章目录 解决方案示例代码 PostgreSQL是一个强大的开源关系型数据库管理系统,它允许用户创建和管理多个数据库。在PostgreSQL中创建一个新的数据库并指定所有者是一个常见的操作。下面,我们将详细解释如何执行这一操作,并提供示例代码。 解…

灭火器检查记录卡模板如何制作

灭火器是常见的消防设备,为确保灭火器正常使用,需要定期对灭火器进行检查和维护;而灭火器检查记录卡就是用来记录灭火器检查的重要工具。然而传统的灭火器检查记录卡都是纸质的,哪怕我们采购多好多贵材质做的检查卡终归记录有限、…

Midjourney如何利用chaos控制生成图片的差异化

hello 小伙伴们,我是你们的老朋友——树下,今天分享Midjourney提示词常用参数——chaos,话不多说,直接开始~ chaos参数什么意思呢? 它可以用来控制我们生成图片之间的差异化程度的一个参数 通常我们在用Midjourney生…

LateX的基础学习

what can i say 在text.tex中写下 \documentclass{article} \begin{document]Hello \LaTeX. \end{document} 关闭记事本,cmd中dir保存,用latex text.tex来编译,可以命令行慢慢编译,这可以做成bat文件 为什么不直接开始在texst…

Java基本语法(基础部分)

Java基本语法 文章目录 Java基本语法前言一、准备工作1.1 计算机软件与硬件1.2 计算机编程语言1.3 Java语言概述&程序分析1.4 Java环境搭建&Java API1.5 Java核心机制JVM 二、变量2.1 关键字&标识符2.2 变量2.3 数据类型(基本数据类型)2.3.1 基本数据类型2.3.2 基本…