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

【认识OpenThread协议】

OpenThread 是一种基于 IPv6 、IEEE 802.15.4 标准的低功耗无线 Mesh 网络协议,主要用于智能家居、物联网设备等场景。它的设计目标是实现设备之间的高效通信、低功耗运行和高可靠性。

OpenThread官方文档

特性
低功耗: 适合电池供电的设备。
Mesh 网络: 支持多跳通信,扩展网络覆盖范围。
安全性: 提供端到端加密和身份验证。
IPv6 支持: 基于 6LoWPAN,支持 IPv6 协议。
自修复能力: 网络动态调整,支持节点加入和离开。
跨平台支持: 可在多种硬件和操作系统上运行。

网络架构
路由器(Router): 负责转发数据包、维护网络路由表、允许子节点(子设备)加入网络。
终端设备(End Device): 通常是低功耗设备,通过父节点(路由器或边界路由器)通信,不支持数据包转发。
边界路由器(Border Router): 连接 Thread 网络与其他网络(如 Wi-Fi 或以太网),提供 IPv6 路由和网络服务(如 DHCPv6、NDP)。
Leader: 网络中的管理节点,负责分配路由器 ID 和维护网络状态。每个 Thread 网络只有一个 Leader。

协议栈

物理层(PHY): 基于 IEEE 802.15.4,工作在 2.4 GHz 频段。
MAC 层: 提供介质访问控制和帧传输功能,支持 CSMA-CA(载波侦听多路访问/冲突避免)。
6LoWPAN 适配层: 将 IPv6 数据包压缩为适合 IEEE 802.15.4 的小帧。
网络层: 实现 Thread 的 Mesh 路由协议(MLE,Mesh Link Establishment),支持多跳通信和动态路由。
传输层: 支持 UDP 协议,适合低功耗设备。
应用层: 支持 CoAP(受限应用协议),用于 IOT 的设备通信。

关键技术
Mesh 路由: OpenThread 使用 MLE(Mesh Link Establishment)协议实现动态路由,支持多跳通信,数据包可以通过多个路由器中继传输;路由表动态更新,适应网络拓扑变化。
安全性: 支持密钥轮换和安全策略更新。

Thread 网络连接过程
Thread 网络的连接分为网络发现网络构建两种
网络发现:

  • 设备启动后发送MLE通告初始化自己的网络参数(网络名称、PAN ID、信道、网络密钥),这些将帮助设备识别和选择要加入的网络。
  • Thread 网络的路由器或Leader 回复MLE响应,包含自己的网络参数。
  • 设备根据接收到的MLE响应,选择一个合适的Thread 网络加入(与信号强度、网络负载等有关)。

网络构建: 设备未发现可用的Thread 网络,可以创建一个新的。

  • 初始化自己的网络参数(可以通过用户配置或者默认值生成)。
  • 将自己变成Leader,负责管理网络状态和分配路由器 ID。
  • 广播MLE通告,包含网络基本信息和Leader的地址,邀请其他设备加入网络。
  • 其他设备通过接收MLE通告,选择加入该网络,加入过程包括身份验证和密钥交换,确保网络安全。
    在这里插入图片描述

应用场景
智能家居: 如智能灯光、温控器、安防设备,通过OpenThread协议实现智能家居设备之间的无缝连接和智能化控制。
工业物联网: 如设备监控、资产跟踪,OpenThread协议适用于工业物联网场景,能够实现设备之间的可靠通信和数据传输。
智能城市: 如环境监测、智能交通,OpenThread协议助力智能城市的建设和管理,通过物联网技术实现城市资源的智能化配置和优化。
医疗设备: 如远程健康监测,OpenThread协议应用于医疗设备领域,能够实现远程健康监测和医疗数据的实时传输与分析。

相关文章:

【认识OpenThread协议】

OpenThread 是一种基于 IPv6 、IEEE 802.15.4 标准的低功耗无线 Mesh 网络协议,主要用于智能家居、物联网设备等场景。它的设计目标是实现设备之间的高效通信、低功耗运行和高可靠性。 OpenThread官方文档 ① 特性 低功耗: 适合电池供电的设备。 Mesh 网络: 支持多…...

Qt入门笔记

目录 一、前言 二、创建Qt项目 2.1、使用向导创建 2.2、最简单的Qt应用程序 2.2.1、main函数 2.2.2、widget.h文件 2.2.3、widget.cpp文件 2.3、Qt按键Botton 2.3.1、创建一个Botton 2.3.2、信号与槽 2.3.3、按键使用信号与槽的方法 2.4、文件Read与Write-QFile类 2…...

【前端】【nuxt】几种在 Nuxt 客户端使用console的方式

方法1:在Vue生命周期钩子中使用 只在客户端执行的钩子(如mounted)中打印: export default {mounted() {console.log(仅在客户端显示, this.$route.path)} }方法2:通过环境判断 使用process.client判断当前环境&…...

安装 ubuntu 2404 LTS 服务器 设置 服务器名称

安装 ubuntu服务器 设置 服务器名称 hostname 打开终端(Terminal),通过快捷键CtrlAltT或在应用程序中搜索"终端"来打开;在终端中输入以下命令:hostname,然后按下回车键即可查看本机服务器名称。…...

C语言一维数组

学习任何数据结构,都可以分为三个主要步骤: 了解基本概念:首先,我们需要理解数据结构的基本概念。以数组为例,首先要知道什么是数组,数组的定义是什么。数组是一种存储固定大小的元素集合的数据结构,它的元素类型是统一的,且通过索引访问。 了解数组的构造和内存分布:…...

霍夫变换法是基于传统视觉特征的道路车道线检测算法中的一种经典方法

霍夫变换法是基于传统视觉特征的道路车道线检测算法中的一种经典方法,以下是对它的详细介绍: 基本原理 霍夫变换的基本思想是将图像空间中的点映射到参数空间中,通过在参数空间中寻找峰值来确定图像中特定形状的参数。在车道线检测中&#…...

静态时序分析:SDC约束命令set_ideal_latency详解

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 当使用set_ideal_network命令将当前设计中的一组端口或引脚标记为理想网络源后,理想属性会沿着组合逻辑进行传播,理想网络中的线网和单元…...

DeepSeek引领端侧AI革命,边缘智能重构AI价值金字塔

目录 一、AI从“技术炫耀”到“价值兑现” 二、边缘侧部署:从技术挑战到商业必然 三、小规模模型:精度与效率的再平衡 四、Coovally的前瞻性:降低边缘AI开发门槛 五、生产级部署:跨越从实验室到车间的鸿沟 六、未来演进&…...

完整例子和调用关系qt OpenGL

项目结构 首先,你需要在 Qt 项目中创建一个类,继承自 QOpenGLWidget 来进行 OpenGL 渲染。文件结构如下: - main.cpp - MyOpenGLWidget.h - MyOpenGLWidget.cpp - vertex_shader.glsl - fragment_shader.glsl 1. main.cpp 这是 Qt 项目的入口…...

SpringBoot缓存抽象:@Cacheable与缓存管理器配置

文章目录 引言一、SpringBoot缓存抽象概述二、Cacheable注解详解2.1 Cacheable的关键属性 三、缓存管理器配置四、自定义键生成策略五、缓存同步与失效策略六、SpringBoot缓存最佳实践总结 引言 缓存是提升应用性能的关键技术,SpringBoot提供了强大的缓存抽象层&am…...

环路广播风暴演示图

以下是环路广播风暴的演示图及其说明: 环路广播风暴演示图 ----------------- ----------------- | Switch A | | Switch B | | | | | | [Port1]--------------------------[Port1] |…...

【webrtc debug tools】 rtc_event_log_to_text

一、rtc_event_log 简介 在学习分析webrtc的过程中,发现其内部提供了一个实时数据捕获接口RtcEventLog。通过该接口可以实时捕获进出webrtc的RTP报文头数据、音视频配置参数、webrtc的探测数据等。其内容实现可参考RtcEventLogImpl类的定义。其文件所在路径 loggin…...

【统计至简】【古典概率模型】联合概率、边缘概率、条件概率、全概率

联合概率、边缘概率、条件概率 联合概率边缘概率条件概率全概率 一副标准扑克牌有 54 张,包括 52 张常规牌(13 个点数,每个点数有 4 种花色)和 2 张王(大、小王)。我们从中随机抽取一张牌,定义以…...

Linux 字符设备驱动实例

编写驱动程序,并将内核模块加载到内核中,等待被用户程序调用。 在控制台中借助第一步申请到的设备号,使用 mknod 命令创建一个设备节点,并拟一个设备名称。 在用户程序中,使用 open 打开第二步中的设备名称&#xff…...

【git】【网络】【项目配置运行】HTTP 协议的微型简易 Web 服务器---tinyEasyMuduoWebServer

【git】【网络】【项目配置运行】HTTP 协议的微型简易 Web 服务器—tinyEasyMuduoWebServer csdn项目: 原文链接:https://blog.csdn.net/weixin_45178775/article/details/122257814 github链接:https://github.com/wyewyewye/tinyEasyMuduo…...

STM32驱动OLED屏幕全解析:从原理到温度显示实战(上) | 零基础入门STM32第五十三步

主题内容教学目的/扩展视频OLED显示屏重点课程电路原理,手册分析,驱动程序。初始化,清屏,ASCII字库,显示分区。调用显示函数。做带有加入图形和汉字显示的RTC时钟界面。讲字库的设计原理。 师从洋桃电子,杜…...

2024年9月中国电子学会青少年软件编程(Python)等级考试试卷(三级)答案 + 解析

更多真题在线练习系统:历年真题在线练习系统 一、单选题 1、以下表达式的值为True的是?( ) A. all( ,1,2,3) B. any([]) C. bool(abc) D. divmod(6,0) 正确答案:C 答案解析:A和B选项,Fal…...

苍穹外卖实战附源码-DAY1

一、打开项目的Nginx 1.通过nginx成功打开包装后的前端网页 二、导入sky的数据库 sky.sql 数据 CREATE DATABASE IF NOT EXISTS sky_take_out ; USE sky_take_out;DROP TABLE IF EXISTS address_book; CREATE TABLE address_book (id bigint NOT NULL AUTO_INCREMENT COMMEN…...

Spring 框架学习

技术体系结构 总体技术体系 单一架构 一个项目,一个工程,导出为一个 war 包,在一个 Tomcat 上运行,也叫 all in one。 单一架构,项目主要应用技术框架为:Spring、SpringMVC 、Mybatis。 分布式架构 一个…...

股票交易所官方api接口有哪些?获取和使用需要满足什么条件

炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取…...

NAT NAPT

NAT NAT(Network Address Translation,网络地址转换) 主要用于在不同网络(如私有网络和公共互联网)之间进行 IP 地址转换,解决IP 地址短缺问题,并提供一定的安全性。 IPv4 地址是 32 位&#xf…...

调优案例一:堆空间扩容提升吞吐量实战记录

📝 调优案例一:堆空间扩容提升吞吐量实战记录 🔧 调优策略:堆空间扩容三部曲 # 原配置(30MB堆空间) export CATALINA_OPTS"$CATALINA_OPTS -Xms30m -Xmx30m"# 新配置(扩容至120MB&am…...

对比 Vue2 选项式 API 与 Vue3 setup 语法

对比 Vue2 选项式 API 与 Vue3 setup 语法 1. 代码组织方式 Vue2 选项式 API 通过独立的选项(data, methods, computed, watch, 生命周期钩子等)组织代码。 export default {data() {return { count: 0 };},methods: {increment() { this.count; }},mou…...

ragflow-组件可视化工具 es默认用户名elastic

以下是针对各个后台组件的可视化工具及配置指南&#xff0c;基于您提供的环境变量和端口设置&#xff1a; 1. Elasticsearch 可视化工具: Kibana&#xff08;官方推荐&#xff09;、Cerebro、ElasticHQ访问方式: Kibana&#xff08;集成管理&#xff09;: URL: http://<主机…...

MATLAB代码开发实战:从入门到高效应用

一、MATLAB生态系统的核心优势 &#xff08;扩展原有内容&#xff0c;增加行业数据&#xff09; MATLAB在全球工程领域的市场占有率已达67%&#xff08;2024年IEEE统计&#xff09;&#xff0c;其核心优势体现在&#xff1a; 矩阵运算速度比传统编程快3-5倍包含22个专业工具箱…...

GStreamer —— 2.18、Windows下Qt加载GStreamer库后运行 - “播放教程 6:音频可视化“(附:完整源码)

运行效果 介绍 GStreamer 带有一组将音频转换为视频的元素。他们 可用于科学可视化或为您的音乐增添趣味 player 的本教程展示了&#xff1a; • 如何启用音频可视化 • 如何选择可视化元素 启用音频可视化实际上非常简单。设置相应的标志&#xff0c;当纯音频流为 found&#…...

50个经典的python库

本文整理了50个可以迅速掌握的经典Python库&#xff0c;了解它们的用途&#xff0c;无论你是刚踏上编程之路&#xff0c;还是希望在Python的世界里更加深入&#xff0c;这50个库都能帮助你快速起飞。 1. Taipy Taipy是一个开源Python库&#xff0c;用于轻松的端到端应用程序开…...

PostgreSQL学习笔记:PostgreSQL vs MySQL

PostgreSQL 和 MySQL 都是广泛使用的关系型数据库管理系统&#xff0c;它们有以下一些对比&#xff1a; 一、功能特性 1. 数据类型支持 PostgreSQL&#xff1a;支持丰富的数据类型&#xff0c;包括数组、JSON、JSONB、范围类型、几何类型等。对于复杂数据结构的存储和处理非…...

【CentOS】搭建Radius服务器

目录 背景简介&#xff1a;Radius是什么&#xff1f;Radius服务器验证原理搭建Radius服务器环境信息yum在线安装配置FreeRADIUS相关文件clients.conf文件users文件重启服务 验证 参考链接 背景 在项目中需要用到Radius服务器作为数据库代理用户的外部验证服务器&#xff0c;做…...

C#枚举(Enum)详解

在 C# 中&#xff0c;‌枚举&#xff08;Enum&#xff09;‌ 是一种值类型&#xff0c;用于定义一组命名的常量值&#xff0c;提高代码的可读性和可维护性。以下是枚举的核心概念、用法和最佳实践&#xff1a; ‌1. 枚举的核心特性‌ 类型安全‌&#xff1a;避免使用魔法数字&…...

DeepSeek进阶应用(一):结合Mermaid绘图(流程图、时序图、类图、状态图、甘特图、饼图)

&#x1f31f;前言: 在软件开发、项目管理和系统设计等领域&#xff0c;图表是表达复杂信息的有效工具。随着AI助手如DeepSeek的普及&#xff0c;我们现在可以更轻松地创建各种专业图表。 名人说&#xff1a;博观而约取&#xff0c;厚积而薄发。——苏轼《稼说送张琥》 创作者&…...

Golang | Gin(简洁版)

文章目录 安装使用RESTful API响应页面获取请求参数路由讲解中间件 安装使用 Gin 是一个 golang 的微框架&#xff0c;封装比较优雅&#xff0c;API 友好&#xff0c;源代码比较明确。具有快速灵活&#xff0c;容错方便等特点。其实对于 golang 而言&#xff0c;web 框架的依赖…...

【C++ 系列文章 基础 01 -- std::string 与 fmt::format】

文章目录 Overview1. C 中的 std::string 简介2. fmt::format 格式化函数简介3. 示例代码解析4. 应用场景与优势2. std::string 与 fmt::format 简介std::stringfmt::format 3. 代码解析3.1 格式化字符串生成3.2 调用函数 cmd_handler3.3 返回 id_code 4. 代码整体流程与应用场…...

有效封装一个 WebSocket 供全局使用

前言 在现代 Web 应用中&#xff0c;实时通信已经成为越来越重要的一部分。而 WebSocket 技术的出现&#xff0c;使得实时通信变得更加高效和便捷。 WebSocket 协议是一种基于 TCP 协议的双向通信协议&#xff0c;它能够在客户端和服务器之间建立起持久性的连接&#xff0c;从…...

使用expect工具实现远程批量修改服务器密码

使用expect工具实现远程批量修改服务器密码 linux服务器安装Expect工具 1、首先查看系统中是否有安装expect。 # whereis expect 2、Expect工具是依赖tcl的&#xff0c;需要先安装tcl #wget https://sourceforge.net/projects/tcl/files/Tcl/8.4.19/tcl8.4.19-src.tar.gz …...

算法日记39:洛谷P4170涂色(区间DP)

一、题目 二、题解&#xff1a; 1、题目解析&#xff1a; 1&#xff09;刚刚开始阅读到题目&#xff0c;我们发现并没有什么思路&#xff0c;因此我们可以尝试来模拟一下样例的情况 2&#xff09;通过观察我们发现 n 2 : n2: n2:可以拆分成 1 1 11 11来解决问题 n 3 : n3:…...

Python学习第十三天

正则表达式 什么是正则表达式&#xff1a;简单来说就是通过特殊符号匹配想要的字符串&#xff0c;正则表达式本身就是基于字符串的一套搜索规则&#xff0c;掌握了正则表达式对于字符串有了更深的把握和理解。 概念 官网概念&#xff1a;正则表达式&#xff08;Regular Expres…...

python-53-分别使用flask和streamlit进行向量存储和检索的服务开发实战

文章目录 1 flask应用1.1 flask服务程序1.2 调用方式2 streamlit应用2.1 streamlit应用程序2.2 操作应用3 参考附录分别基于flask和streamlit,开发了向量存储和检索的应用程序,给出了主体框架的示例,可以在此基础上结合实际应用进行改写。 1 flask应用 1.1 flask服务程序 …...

Unity热更新方案HybridCLR+YooAsset,从零开始,保姆级教程,纯c#开发热更

文章目录&#xff1a; 一、前言二、创建空工程三、接入HybridCLR四、接入YooAsset五、搭建本地资源服务器Nginx六、实战七、最后八、后记 一、前言 unity热更有很多方案&#xff0c;各种lua热更&#xff0c;ILRuntime等&#xff0c;这里介绍的是YooAssetHybridCLR的热更方案&a…...

蓝桥杯嵌入式组第十二届省赛题目解析+STM32G431RBT6实现源码

文章目录 1.题目解析1.1 分而治之&#xff0c;藕断丝连1.2 模块化思维导图1.3 模块解析1.3.1 KEY模块1.3.2 LED模块1.3.3 LCD模块1.3.4 TIM模块1.3.5 UART模块1.3.5.1 uart数据解析 2.源码3.第十二届题目 前言&#xff1a;STM32G431RBT6实现嵌入式组第十二届题目解析源码&#…...

Pac-Man(吃豆人) 游戏

目录 前言 1. Pygame游戏开发基础 1.1 Pygame简介 1.2 游戏开发基本概念 1.3 Pygame核心模块介绍 2. 游戏设计与规划 2.1 游戏规则设计 2.2 游戏对象规划 2.3 技术方案选择 3. 创建游戏窗口与初始化 3.1 初始化Pygame环境 3.2 设置游戏窗口 3.3 定义颜色和游戏参数…...

Unity Dots从入门到精通 Mono和Dots通讯

文章目录 前言安装 DOTS 包Mono To DotsDots To Mono 前言 DOTS&#xff08;面向数据的技术堆栈&#xff09;是一套由 Unity 提供支持的技术&#xff0c;用于提供高性能游戏开发解决方案&#xff0c;特别适合需要处理大量数据的游戏&#xff0c;例如大型开放世界游戏。 本文讲…...

WLAN(无线局域网)安全

WLAN安全涉及到保护无线局域网免受各种威胁和攻击&#xff0c;以确保数据的保密性、完整性和可用性。以下是关于WLAN安全的多方面介绍&#xff1a; 一、主要安全威胁 窃听&#xff1a;攻击者利用特殊设备监听无线信号&#xff0c;获取传输中的数据&#xff0c;如用户的账号密…...

故障诊断——neo4j入门

文章目录 neo4jQuickStartDemo neo4j QuickStart 详情可见博客&#xff1a;https://www.cnblogs.com/nhdlb/p/18703804&#xff0c;使用docker拉取最近的一个版本进行创建 docker run -it -d -p 7474:7474 -p 7687:7687 \ -v /disk5/neo4j_docker/data:/data \ -v /disk5/ne…...

【商城实战(25)】解锁UniApp移动端适配秘籍,打造完美商城体验

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…...

Qt 数据库操作(Sqlite)

数据库简介 关于数据库的基础知识这里就不做介绍了&#xff0c;相关博客可以查看&#xff1a; SQL基础知识 数据库学霸笔记 上面博客都写的比较详细&#xff0c;本文主要介绍如何使用Qt进行数据库相关操作&#xff0c;数据库分为关系型数据库和非关系型数据&#xff0c;关系…...

LINUX 指令大全

Linux服务器上有许多常用的命令&#xff0c;可以帮助你管理文件、目录、进程、网络和系统配置等。以下是一些常用的Linux命令&#xff1a; 文件和目录管理 ls&#xff1a;列出当前目录中的文件和子目录 bash lspwd&#xff1a;显示当前工作目录的路径 bash pwdcd&#xff1a;切…...

【Synchronized】不同的使用场景和案例

【Synchronized】不同的使用场景和案例 【一】锁的作用范围与锁对象【1】实例方法&#xff08;对象锁&#xff09;【2】静态方法&#xff08;类锁&#xff09;【3】代码块&#xff08;显式指定锁对象&#xff09;【4】类锁&#xff08;通过Class对象显式锁定&#xff09; 【二】…...

华为欧拉操作系统安装Docker服务

华为欧拉 20.03 操作系统安装 Docker 服务 一、安装前准备 系统环境检查 确认当前运行的操作系统为华为欧拉 24.03。可通过在终端执行以下命令查看&#xff1a; cat /etc/os - release欧拉系统可以使用以下命令&#xff1a; cat /etc/openEuler-release确保系统已连接互联…...

告别复杂日志解析 用bin2sql轻松实现MySQL数据闪回

mysqlbinlog⼯具使用 use test; CREATE TABLE t1 (id INT(11) NOT NULL AUTO_INCREMENT,name VARCHAR(20) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;INSERT INTO t1(id, name) SELECT 101, tome101; INSERT INTO t1(id, name) SELECT 102, tome1…...