Thread 1.3 建立在 Thread 1.1 和 Thread 1.2 的坚实基础之上,引入了 Thread Border Router 定义的增强与补充,以启用双向 IPv6 连接、使用 DNS 的服务发现以及使用 NAT 提供 IPv4 向后兼容支持。它包括对 Thread-over-Infrastructure(non-802.15.4 IPv6 链路)的支持,并将 TCP 支持定义为一个标准组件。Silicon Labs 包含了 OpenThread 栈的当前默认协议版本 1.3(版本号 = 4)。Documentation Index
Fetch the complete documentation index at: https://mintlify.com/dsyx/docs.silabs.com_zh/llms.txt
Use this file to discover all available pages before exploring further.
本文档中的配置方法适用于 EFR32MG1x 和 EFR32MG2x 系列的 SoC、RCP 和 Module 设备。
Thread 1.3 新特性概览
Service Registration Protocol (SRP)
SRP 使 Thread 设备能够向 Border Router 上的 SRP 服务器注册网络服务,并通过 DNS-SD 向外部网络发布,实现零配置服务发现。
DNS-SD 服务发现
Thread 网络内的服务通过 DNS-SD 协议对外发布,外部网络的客户端可通过标准 DNS 查询发现 Thread 设备提供的服务。
NAT64(IPv4 向后兼容)
Border Router 通过 NAT 转换机制,允许 Thread 设备与仅支持 IPv4 的外部服务器通信。
Thread-over-Infrastructure (TREL)
支持通过非 802.15.4 IPv6 链路(如以太网)连接 Thread 分区,允许多个 Border Router 通过共享基础设施链路形成单一 Thread 分区。
TCPlp(低功耗 TCP)
Thread 1.3 将 TCP 支持定义为标准组件,引入低功耗 TCP(TCPlp)特性,解决高吞吐量场景下的传输需求。
增强型 Border Router
Thread 1.3 显著增强了 Border Router 的能力定义,使其成为 Thread 网络与外部 IP 生态系统之间更可靠的桥梁。
在 SoC 应用程序中配置 Thread 1.3 特性
Silicon Labs 提供了许多示例的 SoC OpenThread 应用程序,可以修改这些应用程序以包含 Thread 1.3 特性(其中一些特性默认启用)。以下以 OpenThread – SoC CLI (FTD) 为例,说明如何配置 Thread 1.3 特性。创建基础项目
在 Simplicity Studio 5 中,基于示例 OpenThread – SoC CLI (FTD) 创建新项目。如需了解项目创建的详细步骤,请参阅 Simplicity Studio 5 User’s Guide 和 QSG170: Silicon Labs OpenThread Quick Start Guide。
打开 Stack 组件配置
在项目的 SOFTWARE COMPONENTS 选项卡中,搜索并选中 Stack (FTD) 条目。
- FTD 应用程序:选择 Stack (FTD)
- MTD 应用程序:选择 Stack (MTD)
- RCP 应用程序:选择 Stack (RCP)
配置 Thread 1.3 编译时选项
配置各种编译时设置,这些选项在 OpenThread 文档 中进行了解释。对于 Thread 1.3 特性,以下标志是必要的。每个标志的描述指示其是强制的、可选的还是推荐的。
Thread 1.3 配置标志详解
SoC 应用程序配置标志
Thread Stack Protocol Version(强制)
Thread Stack Protocol Version(强制)
设置为:Thread 1.3这是启用 Thread 1.3 合规性的基础配置,必须设置为 Thread 1.3 才能使用其他 Thread 1.3 特性。
DNS Client(强制)
DNS Client(强制)
配置项:
OPENTHREAD_CONFIG_DNS_CLIENT_ENABLEThread 1.3 合规性必需项。启用 DNS 客户端支持,允许设备发送 AAAA(IPv6)DNS 查询记录。SRP Client(强制)
SRP Client(强制)
配置项:
OPENTHREAD_CONFIG_SRP_CLIENT_ENABLEThread 1.3 合规性必需项。启用 SRP(Service Registration Protocol)客户端支持。SRP 客户端 Thread 设备会向 SRP 服务器注册服务,与对应的 DNS-SD 权威服务器通信,并使用 DNS 递归解析器进行 DNS 解析。更多信息请参阅 SRP Client CLI 文档。DNS-SD Server(推荐,仅 FTD)
DNS-SD Server(推荐,仅 FTD)
配置项:
OPENTHREAD_CONFIG_DNSSD_SERVER_ENABLEThread Border Router 上 Thread 1.3 合规性必需项;对于普通节点为可选。启用 DNS-SD 服务器支持,本地 SRP 服务器的服务信息将用于解析 DNS-SD 查询。DNS-SD 服务器应实现以下功能:- DNS 递归解析器:回答所有有效 DNS 记录类型的查询,包括 A 和 AAAA 地址记录
- DNS 权威服务器:权威回答通过 SRP 注册的 DNS-SD 服务发现记录
- DNS 更新服务器:接受经过正确认证的客户端请求以更新权威 DNS 数据
SRP Server(推荐,仅 FTD)
SRP Server(推荐,仅 FTD)
配置项:
OPENTHREAD_CONFIG_SRP_SERVER_ENABLEThread Border Router 上 Thread 1.3 合规性必需项;对于普通节点为可选。启用 SRP(Service Registration Protocol)服务器支持。SRP 服务器在 DNS 更新服务器功能基础上增加了公钥加密安全机制,以及针对受限客户端的附加增强功能。更多信息请参阅 SRP CLI 文档。TCPlp / TCP Low Power(可选)
TCPlp / TCP Low Power(可选)
配置项:
OPENTHREAD_CONFIG_TCP_SERVER_ENABLE非 Thread 1.3 合规性必需项,但可选启用以测试低功耗 TCP 特性。启用此选项将使用 OpenThread 栈中包含的第三方 tcplp 库。更多信息请参阅 TCP CLI 文档。Thread over Infrastructure / TREL(推荐,仅 NCP)
Thread over Infrastructure / TREL(推荐,仅 NCP)
配置项:
OPENTHREAD_CONFIG_RADIO_LINK_TREL_ENABLE启用用于 Thread-over-Infrastructure 特性的 TREL 无线电链路。Thread 1.3 配置标志汇总
| 配置标志 | 说明 | 必要性 |
|---|---|---|
OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE | 启用 DNS 客户端,支持 AAAA 记录查询 | 强制 |
OPENTHREAD_CONFIG_SRP_CLIENT_ENABLE | 启用 SRP 客户端,向 SRP 服务器注册服务 | 强制 |
OPENTHREAD_CONFIG_DNSSD_SERVER_ENABLE | 启用 DNS-SD 服务器(仅 FTD,Border Router 必需) | 推荐 |
OPENTHREAD_CONFIG_SRP_SERVER_ENABLE | 启用 SRP 服务器(仅 FTD,Border Router 必需) | 推荐 |
OPENTHREAD_CONFIG_TCP_SERVER_ENABLE | 启用低功耗 TCP(TCPlp) | 可选 |
OPENTHREAD_CONFIG_RADIO_LINK_TREL_ENABLE | 启用 Thread-over-Infrastructure(仅 NCP) | 可选(实验性) |
在 OpenThread Border Router 中配置 Thread 1.3
RCP 应用程序的 Thread 1.3 支持
Silicon Labs 提供了几个示例的 OpenThread RCP 应用程序。默认情况下,如果 Host(Border Router,POSIX 栈版本也为 1.3)上存在受 Silicon Labs 支持硬件上的 RCP 应用程序,那么它们会自动支持 Thread 1.3 特性。Thread 1.3 的所有特性都不是 RCP 特定的,因此为 RCP 示例应用程序打开或关闭这些标志没有任何效果。 有关如何为 Raspberry Pi 3B+ 或更高版本构建 OpenThread Border Router 的详细说明,请参阅 AN1256: Using the Silicon Labs RCP with the OpenThread Border Router。您必须将 Thread 1.3 RCP 与协议栈版本也为 1.3 的 Border Router 一起使用。Border Router POSIX 平台的 CMake 配置
通过确保 POSIX 栈启用以下 CMake 标志,可以在 Border Router 上单独启用 Thread 1.3 特性。这些标志在当前默认的 OpenThread Border Router 产品中默认启用:Border Router CMake 标志与配置项映射
| CMake 标志 | 对应 Thread 1.3 配置项 |
|---|---|
OT_DNS_CLIENT | OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE |
OT_DNSSD_SERVER | OPENTHREAD_CONFIG_DNSSD_SERVER_ENABLE |
OT_SRP_CLIENT | OPENTHREAD_CONFIG_SRP_CLIENT_ENABLE |
OT_SRP_SERVER | OPENTHREAD_CONFIG_SRP_SERVER_ENABLE |
OT_TREL | OPENTHREAD_CONFIG_RADIO_LINK_TREL_ENABLE |
启用
OT_TREL 时,还需要通过 OPENTHREAD_CONFIG_POSIX_APP_TREL_INTERFACE_NAME 属性指定希望启用 TREL 的 IPv6 链路接口名称(即通过 trel:// 参数传入)。在具有至少两个 Border Router 的网络中,若两个 Border Router 均在同一共享基础设施链路上启用了 TREL,则它们可以自动利用该链路提供单一 Thread 分区。OTBR 部署方式
在配置好 Thread 1.3 特性后,可以通过以下两种方式部署 OpenThread Border Router:- Docker 容器(推荐):访问 Silicon Labs OTBR Docker Hub 页面 获取预构建镜像,其中已包含所有默认启用的 Thread 1.3 特性。
- 手动构建安装:按照 AN1256: Using the Silicon Labs RCP with the OpenThread Border Router 或 OpenThread Border Router 构建指南 中的步骤手动安装。
相关资源
OpenThread 配置参考
GitHub 上 OpenThread 编译时配置选项的完整说明文档。
Border Router 配置指南
深入了解 OpenThread Border Router 的完整配置与部署方法。
开发者指南
OpenThread 开发者指南,涵盖各专项领域的详细技术信息。
基础原理
了解 Thread 协议基础及 OpenThread 生态系统资源。