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协议应用于医疗设备领域,能够实现远程健康监测和医疗数据的实时传输与分析。