Router 选择

2023-05-16

Connected Dominating Set

在这里插入图片描述

Example of a Connected Dominating Set

Router 必须形成一个 CDS(Connected Dominating Set,连接支配集),这意味着:

  1. 在任何两个 Router 之间都有一个 Router-only 的路径。
  2. Thread 网络中的任何一个 Router 都可以通过完全位于 Router 集中而到达其他任何 Router。
  3. Thread 网络中的每个 End Device 都直接连接到 Router。

Thread 使用分布式算法维护 CDS,从而确保最低程度的冗余。每个设备最初都作为 End Device(子)连接到网络。随着 Thread 网络状态的更改,算法会增添或移除 Router 以维护 CDS。

Thread 在下列情况下将会增添 Router:

  • 如果网络低于 Router 阈值(16) —— 为了增加覆盖范围
  • 增加路径多样性
  • 保持最低程度的冗余
  • 扩展连接并支持更多子节点

Thread 在下列情况下将会移除 Router:

  • 将路由状态减少到最多 32 个 Router 以下
  • 必要时允许在网络的其他部分使用新 Router

升级成 Router

子设备连接到 Thread 网络后,可以选择成为 Router。在开始 MLE Link Request 过程之前,子设备会向 Leader 发送 Address Solicit 消息,以请求一个 Router ID。如果 Leader 同意该请求,则它将响应一个 Router ID 给子设备,并且子设备会将自身升级为 Router。

然后,MLE Link Request 过程用于与相邻的 Router 建立双向 Router-Router 链路。

  1. 新 Router 将发送一个多播 Link Request 到相邻的 Router。
  2. Router 使用 Link Accept and Request 消息进行响应。
  3. 新 Router 使用单播的 Link Accept 响应每个 Router,以建立 Router-Router 链路。

1. Link Request

Link Request 是从 Router 到 Thread 网络中所有其他 Router 的请求。首次成为 Router 时,设备会发送一个多播 Link Request 到 ff02::2。稍后,在通过 MLE Advertisement 发现其他 Router 后,设备将发送单播的 Link Request。
在这里插入图片描述

Link Request Message Contents
VersionThread 协议版本
Challenge测试 Link Response 的及时性,以防止重放攻击
Source Address发送者的 RLOC16
Leader DataRouter 的 Leader 的相关信息(RLOC, Partition ID, Partition weight)

2. Link Accept and Request

Link Accept and Request 是 Link Accept 和 Link Request 消息的组合。Thread 在 MLE Link Request 过程中使用此优化将消息的数量从四减少到三。
在这里插入图片描述

3. Link Accept

Link Accept 是对来自相邻 Router 的 Link Request 的单播响应,该响应提供有关自身的信息并接受到相邻 Router 的链路。
在这里插入图片描述

Link Accept Message Contents
VersionThread 协议版本
Response测试 Link Response 的及时性,以防止重放攻击
Link Frame Counter发送者上的 802.15.4 帧计数器
MLE Frame Counter发送者上的 MLE 帧计数器
Source Address发送者的 RLOC16
Leader DataRouter 的 Leader 的相关信息(RLOC, Partition ID, Partition weight)

降级成 REED

当 Router 降级成 REED 时,其 Router-Router 链路断开,并且设备开始 MLE Attach 过程以建立父子链路。

有关 MLE Attach 过程的更多信息,请参阅 加入现有网络。

单向接收链路

在某些情况下,建立单向接收链路是有必要的。

在 Router 重置后,相邻 Router 可能仍具有与重置的 Router 的有效接收链路。在这种情况下,重置的 Router 发送 Link Request 消息以重新建立 Router-Router 链路。

置的 Router 的有效接收链路。在这种情况下,重置的 Router 发送 Link Request 消息以重新建立 Router-Router 链路。

End Device 也可能希望与相邻的 Router(非父节点)建立接收链路,以提高多播可靠性。当我们进入多播路由时,我们将学习更多与此相关的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Router 选择 的相关文章

  • 编译mavlink-router

    1 首先安装meson ninjia gcc g 43 43 等工具 xff1a sudo apt install git meson ninjia build pkg config gcc g 43 43 system 可能会出现一下错误
  • Vue路由(vue-router)详细讲解指南

    中文文档 xff1a https router vuejs org zh Vue Router 是 Vue js 官方的路由管理器 它和 Vue js 的核心深度集成 xff0c 让构建单页面应用变得易如反掌 路由实际上就是可以理解为指向
  • angular 路由

    参考 angular 路由 文档 路由案例 路由参数 paramMap和Snapshot 当组件需要复用的时候使用paramMap获取路由参数 如一个组件不刷新 只更改了路由参数 那么就可以实时获取路由参数 当确定组件不复用的时候直接使用S
  • Bookmarklet:将隐藏的 iframe 附加到页面并加载 url

    我有一个用于重置路由器的书签 我只需要访问并让页面完成加载 然后我的路由器开始重置 javascript function w window open http 192 168 0 1 goform formReboot width 1 h
  • 如何从android代码中知道路由器的IP地址?

    如何从代码中找到路由器的IP地址 网关地址 WifiInfo getIpAddress 返回设备的 IP 地址 在 shell 命令中 ipconfig 不返回任何值 这是我的解决方案 但如果有更好的方法 请告诉我 WifiManager
  • ZF2:获取应用程序布局中的模块名称(或路由)以突出显示菜单

    如何在 ZF2 中获取应用程序布局中当前 选定的 模块名称 目的 我的应用程序布局包括zf2应用程序的主菜单 每次选择模块时我需要突出显示该模块的菜单语音 另外 当用它制作菜单时 我需要设置正确的路线 url action 每个模块都有菜单
  • Angular2注入的路由器未定义

    如果我将路由器从 angular router 注入到组件中然后使用它 我会收到一条错误消息 指出无法调用未定义的 navigatorByUrl 这是我使用路由器实例的组件 import Component OnInit from angu
  • Express/Mongoose 路由器:“由于路径“_id”处的值“未定义”,转换到 ObjectId 失败”

    我在 Express 中有一个简单的 API 允许用户将帖子标题 发布 和 删除 到 MongoDB 数据库中 由于某种原因 当我添加帖子标题 然后 删除 它时 我收到 在路径 id 处 值 未定义 转换到 ObjectId 失败 当我创建
  • play Framework2:查明应用程序是否在 http 或 https 上运行

    我试图查明 play 2 使用 scala 应用程序是否在 http 或 https 上运行 我尝试使用routes Application index absoluteURL request 像这样 def chatUri usernam
  • angular2 TypeError:无法设置未定义的属性“名称”

    我有一个 Angular2 项目 在 Mac OS 上创建并运行 但是当我在Windows上git它时 它无法运行 在 Chrome 中 我收到此错误 core umd js 3491 EXCEPTION Uncaught in promi
  • Express GET 路由不适用于参数

    我是 Express 和 Mongoose 的新手 我目前正在开发我的第一个项目 这不是教程 我遇到了问题 我有多个路由 它们在 index js 中定义如下 app use api client require routes client
  • 在反应路由器中刷新时出现空白页面

    当我从 home 导航到 dashboard 时 路由器工作正常 但是当我从 home 导航到 profile id 时 路由器将我导航到也工作正常的配置文件页面 但是当我刷新它时 它会变成空白页面并且没有给我任何 404 或重定向回主页
  • React Router id 作为参数

    在我的 app js 组件中 我有一个名为 recipes 的数组 它具有我喜欢在路由器中呈现这些元素的元素 认为是 id App 组件应通过配方组件呈现它 我这里有一些代码 但它不能正常工作 我尝试了一整夜 但找不到错误 我是新来反应的
  • 有条件地禁用 Angular 中的路由器链接

    我在 Angular 项目 使用 Angular 2 中有许多链接 类似于 a Link a 我想根据上下文 状态禁用其中一些 通过更改颜色并防止操作发生 对于样式 我已添加到链接 class disabled isValidLink 这让
  • 主干路由器 + RewriteRule 不触发带有“/”的路由

    我将所有链接转换为example com action to example com index html action然后由我的主干路由器解析 然而 我的新页面 signup inviteAuthHash eg signup 9d519a
  • Drupal 6 无法构建菜单路由器和链接

    当我在 Drupal 中启用新菜单 例如 mymodule 时 Drupal 应该能够从 mymodule menu hook menu 获取菜单项 处理这些菜单项并将菜单项插入到 menu router 和 menu links 表中 然
  • 如何用python脚本控制TP LINK路由器

    我想知道是否有一个工具可以让我连接到路由器并关闭它 然后从 python 脚本重新启动它 我知道如果我写 import os os system ssh l root 192 168 2 1 我可以通过 python 连接到我的路由器 但是
  • (mininet) 如何创建具有两个路由器及其各自主机的拓扑

    该场景由两个相互连接的路由器r1 r2组成 我在Mininet给出的示例中找到了LinuxRouter类 将 3 台主机连接到 r1 每台主机属于不同的子网 网络 ping 正常 class LinuxRouter Node def con
  • React:如何从react-router-dom通过链接传递道具?

    我正在努力通过title从道具到我的Dishes组件使用但找不到解决方案 有什么建议么 import Link from react router dom const Category title gt return title expor
  • router.navigate() 不会在 .subscribe 内重定向

    我有一个像这样的登录功能 login clear error text this state errorText try to login this sb login this model username this model passw

随机推荐

  • C++和js交互方案对比

    c 43 43 和js交互方案对比 一 xff1a nodejs技术 nodejs技术是基于V8引擎的一套前后端交互技术 nan h为c 43 43 提供了与js交互的一系列V8 API 参考链接 缺点 xff1a 在Node js中 xf
  • C++实现HTTP服务

    一个多平台的系统基本架构 xff08 如下图 xff09 xff0c 数据库部分我们以后可以使用HDFS和MapReduce进行分布式存储 xff0c 之前大致介绍了js和c 43 43 交互的几种方式对比 xff0c 考虑到拓展性和访问效
  • gstreamer获取视频采集卡的数据

    gstreamer获取视频采集卡的视频数据 gstreamer可以用于采集硬件视频数据 xff0c 转码 xff0c 播放 xff0c 传输等 xff0c 但由于框架相对于FFmpeg较为小众 xff0c 所以资料较少 xff0c 整理一份
  • 使用c++来实现一个简单的数据库功能

    使用c 43 43 来实现一个简单的文件数据库功能 功能点1 xff1a 建表 1 创建和表同名的文件 2 在文件中存储表的信息 xff0c 包括attribute的name xff0c 数量 xff0c 类型 xff0c 是否唯一 3 添
  • 【性能优化】cpu时间抖动问题的解决修复

    问题描述 xff1a 边缘设备的cpu在低占有率时 xff0c 进程运行时间抖动较大 xff0c 在高占有率时 xff0c 运行时间抖动更稳定 低占有率运行情况图 xff1a 相同处理逻辑循环中 xff0c 两次处理的时间间隔 xff1a
  • pointRCNN 结果可视化

    由于pointRCNN源码的训练和inference很详细 xff0c 但是没有可视化的代码 xff0c 本文介绍其3d框结果的可视化方法 1 跑通pointRCNN https github com sshaoshuai PointRCN
  • C/C++学习笔记——C提高: 函数指针和递归函数

    函数指针 函数类型 通过什么来区分两个不同的函数 xff1f 一个函数在编译时被分配一个入口地址 xff0c 这个地址就称为函数的指针 xff0c 函数名代表函数的入口地址 函数三要素 xff1a 名称 参数 返回值 C语言中的函数有自己特
  • 算法基础22-最小生成树

    最小生成树 primkruskal prim 链接 acwing上一个关于prim很好的题解 prim 算法干的事情是 xff1a 给定一个无向图 xff0c 在图中选择若干条边把图的所有节点连起来 要求边长之和最小 在图论中 xff0c
  • C/C++学习笔记——C提高:预处理

    预处理的基本概念 C语言对源程序处理的四个步骤 xff1a 预处理 编译 汇编 链接 预处理是在程序源代码被编译之前 xff0c 由预处理器 xff08 Preprocessor xff09 对程序源代码进行的处理 这个过程并不对程序的源代
  • C/C++学习笔记——C提高:动态库的封装和使用

    库的基本概念 库是已经写好的 成熟的 可复用的代码 每个程序都需要依赖很多底层库 xff0c 不可能每个人的代码从零开始编写代码 xff0c 因此库的存在具有非常重要的意义 在我们的开发的应用中经常有一些公共代码是需要反复使用的 xff0c
  • FreeRTOS学习笔记——基础知识与移植(STM32F103)

    1 1 前后台系统 xff1a 早期嵌入式开发没有嵌入式操作系统的概念 xff0c 直接操作裸机 xff0c 在裸机上写程序 xff0c 比如用51单片机基本就没有操作系统的概念 通常把程序分为两部分 xff1a 前台系统和后台系统 简单的
  • STM32开源代码——MAX30100程序

    正点原子精英开发板 模块化封装 xff0c 入口函数简明 xff0c 易上手操作 展示main c代码 xff0c 完整代码请下载 xff08 数据打印到串口在MAX30100 PulseOximeter c xff09 点击下载代码 in
  • STM32开源代码——2.8寸TFTLCD屏虚拟键盘触摸程序

    正点原子精英开发板 模块化封装 xff0c 入口函数简明 xff0c 易上手操作 展示main c代码 xff0c 完整代码请下载 点击下载代码 include 34 sys h 34 include 34 delay h 34 inclu
  • STM32开源代码——光敏传感器

    正点原子精英开发板 模块化封装 xff0c 入口函数简明 xff0c 易上手操作 展示main c代码 xff0c 完整代码请下载 点击下载代码 include 34 led h 34 include 34 delay h 34 inclu
  • 个人项目——机智云开源APP基础修改教程(Android)

    之前写过一篇STM32接入机智云的教程 xff0c 最后说要有时间给大家写一篇修改机智云开源Demo APP的教程 xff0c 刚好楼主考完直流传动 xff0c 然后帮小学弟的一个32项目接入了机智云 xff0c 然后打算帮他修改一下Dem
  • FreeRTOS学习笔记——FreeRTOS任务创建和删除实验(静态方法)

    6 3 任务创建和删除实验 静态方法 6 3 1 实验程序设计 1 实验目的 上一小节我们讲了使用函数xTaskCreate 来创建任务 xff0c 本节在上一小节的基础上做简单的修改 xff0c 使用函数xTaskCreateStatic
  • FreeRTOS学习笔记——FreeRTOS 系统内核控制函数

    FreeRTOS 中有一些函数只供系统内核使用 xff0c 用户应用程序一般不允许使用 xff0c 这些API 函数就是系统内核控制函数 本章我们就来学习一下这些内核控制函数 xff0c 本章分为如下几部分 xff1a 10 1 内核控制函
  • FreeRTOS学习笔记——FreeRTOS 时间管理

    在使用FreeRTOS 的过程中我们通常会在一个任务函数中使用延时函数对这个任务延时 xff0c 当执行延时函数的时候就会进行任务切换 xff0c 并且此任务就会进入阻塞态 xff0c 直到延时完成 xff0c 任务重新进入就绪态 延时函数
  • 算法基础23-二分图

    二分图 二分图的判断二分图的最大匹配数 可以去看acwing题解 二分图的判断 span class token comment AcWing 860 染色法判定二分图 span span class token macro propert
  • Router 选择

    Connected Dominating Set Example of a Connected Dominating Set Router 必须形成一个 CDS xff08 Connected Dominating Set xff0c 连接