Thread 是无线网状网络的未来,并有望成为将“事物”连接到互联网的关键技术。“事物”可以广泛地定义为对功耗敏感且空间受限的设备,其系统组件包含微控制器(MCU)、传感器、射频技术和软件等。无线连接将这些设备串连到互联网,然后可以通过远程控制实现自动化。市场上有多种无线技术支持这种互联性,但 Thread 是唯一能满足互联家庭特定需求的技术。它基于成熟的标准,提供低功耗、安全、可扩展的基于 IP 的无线网状网络协议,借此填补了物联网(IoT)领域的关键技术空白。点击文末的阅读原文按钮或复制下方链接至浏览器获取白皮书内容:https://www.silabs.com/whitepapers/thread-ushering-in-new-era-of-internet-connectivity
物联网
分析公司 IHS Technology 预测,到 2025 年,物联网连接设备将增加到 754 亿台。这种行业前所未有的连接性是技术显著进步的结果。连接性的发展最早可以追溯到 20 世纪 70 年代初,当时英特尔(Intel)发布了第一款商用微处理器 4004。十年后,桌面计算达到了先进的水平,迎来了一个前所未有的个人生产力时代。笔记本电脑出现于 20 世纪 90 年代,与互联网的扩张同时出现,标志着互联移动的开始。然而,直到 2000 年代中期智能手机的出现,我们才真正意识到不受束缚的互联网体验。智能手机将个人计算能力与互联网连接结合在一起,让我们触手可及。低功耗计算、传感和通信技术的进步催生了一类新的互联设备。这些小的、资源有限的、电池供电的“设备”不再仅仅关注个人生产力,而是以全新有用的方式在家里、工作场所和整个城市环境中感知、互动和自动化我们的周围环境。图 1 显示了连接设备发展过程中的这些变化。
图1:物联网的出现
为什么 IP 技术如此重要
Internet Protocol (IP) 是互联网的主要通信协议。IP 提供了跨 IP 网络中继数据包(datagrams)的核心机制,其路由功能实现了互联互通。经过互联网几十年来的快速扩张,IP 已经无处不在。不支持 IP 的网络技术必须通过网关才得以支持,这个过程涉及到本地网络地址的映射和将网络层有效负载重新打包到 IP 数据包中。如图 2 所示,加密的本地数据包必须在网关处解密,然后在 IP 数据包中重新进行保护。
图2: 没有本地IP支持的网络
相比之下,具有本地 IP 支持的网络(如 Thread 和 Wi-Fi)可以在不受干预的情况下转发和路由应用程序有效负载。因此在本地网络中加密的数据包可以保持端到端的安全,如图 3 所示。
图3: 支持本地IP的网络
IPv6 与 IPv4 之比较
IPv4 支持 32 位寻址。在 20 世纪 90 年代,43 亿(2^32 = 4 294 967 296)的地址空间显然不足以支持互联网连接的预期增长。随后,IPv6 将地址大小增加到 128 位,并将产生的地址空间增加到大约 240 个十兆位!具有 IPv6 全局唯一地址(GUAs)的本地设备可以通过广域网(WAN)直接寻址。
6LoWPAN
6LoWPAN 是 IPv6 低功耗无线个人区域网络(IPv6 over Low Power Wireless Personal Area Network)的首字母缩写。它旨在通过 802.15.4 链路实现 IPv6 数据包的高效传输,从而使资源受限的设备能够从本地参与物联网。它支持三个关键功能:
数据包大小适配(Packet Size Adaptation):IPv6 支持的最小 MTU(Maximum Transmission Unit)为 1280 字节。使用用户数据包协议(UDP)和数据包传输层安全协议(DTLS)的 802.15.4 数据包中的典型应用程序有效负载大小为 63 字节。6LoWPAN 提供了一种碎片和重组机制,使 IPv6 数据包适应这些较小的 802.15.4 有效负载。不适合的 IPv6 数据包被分割成片段,并通过 802.15.4 通过无线传输(over the air)。不是所有的片段都可以按照正确的顺序接收。然而,6LoWPAN 只要求接收所有的片段,并在需要时重新组装片段。
标头压缩(Header Compression):为了最小化在 802.15.4 帧中发送 IPv6 消息的开销,6LoWPAN 为 IPv6 和传输标头提供无状态的压缩机制,利用协议之间的跨层冗余,如源和目标地址(destination addressing)、有效负载长度(payload length)、通信类型(traffic class)和流标签(flow labels)。Thread 利用改进的标头压缩(IPHC)和下一个标头压缩(NHC)。使用 IPHC 来压缩 IPv6 标头。采用 NHC 压缩 UDP 标头。
二层转发(Layer Two Forwarding):Thread 通过 IP 路由转发封包。IP 路由表由每个目的地址和下一跳组成。6LoWPAN mesh header 用于根据 IP 路由表信息进行链路级下一跳转发。
市场中存在各种各样的无线技术。从长远来看,有三种主要解决方案将成为互联家庭和物联网的领先协议:Wi-Fi、蓝牙(Bluetooth)和 802.15.4 网状网络协议。Wi-Fi 是一种无线技术,适合在家中传输音频、视频和数据。然而,它所支持的高数据速率和输出功率需要大量的电力。因此,它在电池电源方面的应用是有限的。蓝牙是智能手机连接点解决方案和电池供电设备上的批量数据传输的理想选择。虽然现有的解决方案不支持 IP,但蓝牙核心规范 4.2 的引入通过增加对 IPv6 和 6LoWPAN 的支持奠定了基础。Zigbee PRO 和 Thread 等网格技术构成了互联家庭的支柱。
这些自修复网络已经过优化,以支持低带宽控制和自动化应用,其中多年的电池寿命是至关重要的。Zigbee PRO 作为 802.15.4 mesh 网络解决方案已经超过 10 年了。它提供了一个强大、安全、可扩展的网状网络,支持超过 250 个节点,以及对电池支持操作的休眠终端设备的广泛支持。Thread 建立在 Zigbee 的基础上,在安全性、路由和容错方面都有进步。它还解决了市场对支持 IPv6 和 6LoWPAN 的网状网络技术期待已久的吸引力,为物联网中的每个终端节点带来急需的 IP 连接。表 1 列出了各种网络协议的特性。
表1:物联网无线协议
为什么现在是启用 Thread 的良机?
Thread Group 成立于2014年7月15日,旨在合作、汇集专业知识并开发满足这些需求的解决方案。一年后,Thread Group 发布了 Thread 规范。该组织的创始成员包括 Silicon Labs(亦称“芯科科技”)、Nest Labs、Yale Security、Samsung Electronics、Freescale Semiconductor、Big Ass Fans 和 ARM 等等。
Thread 专注于低功耗和对 IP 的本地支持,承诺实现“物”与互联网之间的无缝连接。它不仅提供了低成本、电池支持的设备之间的高效通信,而且还简化了与云和移动设备的接口。Thread 提供了一个引人注目的新型无线网状网络解决方案,旨在满足互联家庭的需求:
基于标准的协议: 基于开放标准的协议从同行技术的评审、跨供应商互操作性和竞争中皆可获益。Thread 基于现有的 IEEE 和 IETF 标准,包括 IEEE 802.15.4。Thread Group 于2015年7月13日发布了官方 Thread 规范。
简化配置:Thread 消除了先前网状网络标准的一些复杂性。只有两种不同的节点类型-符合条件的路由器或终端设备。
路由器如果需要支持网格,符合条件的节点将成为路由器。形成网络的第一个路由器合格节点将被自动指定为路由器和 Leader。Leader 执行额外的网络管理任务,并代表网络做出决策。网络中的其他路由器节点可以自主地承担 Leader 的角色,但在给定的时间,每个网络只有一个 Leader 。以终端设备身份加入的节点不支持任何路由功能。相反,它们将消息发送到指定为 “Parent” 的路由器,该路由器代表它的 “Child” 执行路由操作。终端设备通过 Parent 设备路由通信,并可编程为“休眠”以降低功耗。在多次尝试后无法与父设备通信的终端设备将自动搜索并连接到新的 Parent 设备。图 4 显示了具有路由器合格终端设备(REEDs)、Leader 和 Thread 路由器的 Thread 节点网络。
图4: Thread节点类型
基于 IP 的消息
Thread 提供了对 IP 的本地支持。Thread 网络中的所有设备都有一个 IPv6 地址,可以被家庭区域网络(HAN)上的本地设备直接访问,也可以通过名为边界路由器(Border routers)的支持 Thread 的 IP 路由器在网络外访问。图 5 演示了一个典型的 Thread 网络设置。
图5:Thread网络连接性
网络上的节点通过边界路由器分配的前缀(prefixes)形成 IPv6 全局地址,或者在本地通过自分配的前缀形成唯一本地地址(ULA)。网络中使用的路由标识由 Leader 分配。Thread 利用用户数据包协议(UDP)进行消息传递,而不是它的更重量级的替代方案-传输控制协议(TCP)。与 TCP 不同,UDP 是一种无连接协议,它放弃了 TCP 的特性,如错误检查、数据包排序和重传,以换取更快、更有效的传输。这种效率等同于更少的开销,这对于电池支持的、资源受限的设备来说是极其重要的。Thread 利用 UDP 的约束应用协议(CoAP)来保持轻量级,但克服了 UDP 的一些限制。CoAP 重新整合了对重试和数据包排序的支持。CoAP 还提供了对 GET、POST、PUT 和 DELETE 方法的轻量级版本的支持,这些方法可以很容易地转换为 HTTP,以简化与 Web 的集成。利用离网 CoAP 到 HTTP 代理,Thread 可以直接从浏览器查询物联网设备。
低功耗操作
Thread 为采用休眠模式的终端节点提供了广泛的低功耗操作(Low-Power Operation)支持。顾名思义,这些休眠设备大部分时间都处于低功率睡眠状态。通过 Thread,休眠设备不需要连接网络,从而延长了电池寿命。处于休眠状态的设备收到的信息会被它们的 Parent 节点缓冲。消息传输只有在休眠设备醒来并轮询其 Parent 设备以获取入站消息后才会触发。
可扩展性和弹性
Thread 的架构目标是支持 250+ 节点的网络。有了这个特定目标,其特性和功能被调整为最大限度地提高吞吐量和最小化资源需求。在 Thread 网络中,运行路由器的最大数量是 32 个。这样做的一个直接而重要的结果是路由信息可以有效地分布在整个网络中,并且所有路由器都能够保持网络中所有路由的可见性。随着节点的增加和网络拓扑结构的变化,网络通过交换 Mesh Link Establishment(MLE)消息进行调整。如果有路由器合格设备作为终端设备运行,则可以自动添加其他路由器。这样的路由器合格终端设备(REEDs)可监听路由消息,如果确定有必要提高网络的整体性能还可请求网络的 Leader 成为路由器。
Thread 是一个健壮的、自我修复的网状网络,提供没有单点故障的架构。如果路由器发生故障,网络将围绕故障节点动态地重新路由流量。如果一个 Leader 失败,网络上的另一个路由器将自动选出新的 Leader。可以使用多个边界路由器为网络外通信提供故障安全冗余。
可互操作
Thread Group 已经签约了一个标准测试装置,用于所有 Thread 协议栈以及最终 Thread 产品的认证。该测试套件将提供给所有 Thread 成员公司,以便在 Thread 认证测试之前进行高质量的软件开发和测试。所有 Thread 组件(IC 或软件堆栈)在被客户用于最终产品之前必须被认证为 Thread 兼容。所有想带有 Thread 标志的终端产品必须将其设备提交到认可的测试实验室进行认证。
安全易用
Thread 网络虽被构建为易于使用,但是非常安全。Thread 使用 AES-128 保护 MAC 级别的所有网络事务,并结合 ECC 和 J-PAKE 算法安全地将设备添加到网络(即调试)。应用程序可以选择利用基于标准的IP安全协议(例如 DTLS )来额外保护应用程序有效负载。
Thread 网络假设用户可以指定一个调试设备向 Thread 网络添加新设备。Thread 可以同时指定网络外设备(如智能手机和计算机)和网络上的 Thread 设备成为 Commissioner。离网设备必须首先使用 Thread 指定的安全 DTLS 身份验证握手向 Thread 边界路由器申请成为已注册的 Commissioner。一旦注册,边界路由器将代表与 Leader 进行仲裁,以成为授权 Commissioner。联网设备不需要注册,但可能需要与 Leader 进行仲裁才能获得授权。Leader 确保同一时间网络上只有一个 Commissioner 处于活动状态。一旦获得授权,活跃的 Commissioner 将在整个 Thread 网络中被告知。加入时,用户需要在调试设备上输入与加入设备相关联的唯一密码。该密码短语用于建立一个安全的 DTLS 会话,以验证和授权加入设备。只有这样,设备才可以访问 Thread 网络。设备加入网络后,调测设备不再处于活动状态。
加快上市时间
随着物联网设备的迅速普及,将产品从创意阶段尽快推向商店货架变得更加关键。以下是 Silicon Labs 通过 Thread 技术帮助加快产品上市时间的两种方式。
应用程序开发
Thread 没有指定应用层,而是使用 UDP 和 CoAP 提供基本的消息服务,例如单播和组播消息服务。与 Wi-Fi 类似,Thread 专注于安全可靠的信息传输,但使用的是低功耗的网状网络,而不是高功率的星形网络。Silicon Labs 提供的AppBuilder 等工具通过易于使用的回调函数(callbacks)和插件(plug-ins)抽象出堆栈级别的细节,从而简化了这些 IP 消息传递服务的使用。在此框架中开发的应用程序代码具有高度的可移植性,并且可以在受支持的 802.15.4 设备之间重用。AppBuilder 提供了一个简单的图形用户界面(GUI),用于配置设备和组网参数,如设备类型、命令、网络组建和加入行为、安全模式和操作等。Silicon Labs 为 Thread 提供了一个快速启动的示例应用程序,可以轻松地自定义和扩展。
网络调试
在开发网状网络应用程序时,理解、适应和调整网络级行为是一个重要的开发阶段。传统的解决方案使用无线封包监听(sniffers)来远程捕获空中网络事务。Silicon Labs 的网络集成电路通过使用一种称为数据包跟踪(Packet Trace)的独特双线接口来构建这种功能,该接口输出设备发送和接收的每个数据包,并附带链路质量信息。使用 Desktop network Analyzer 工具,这些信息可以跨网络中的所有节点聚合到单个视图中,从而提供所有网络活动的完整而全面的视图。Network Analyzer 将所有流量关联到事件中,并可以解码 Thread 消息。可以对网络活动进行长时间的日志记录,以找出网络中可能不频繁或间歇性发生的问题。
结论
这是一个互联网连接的新时代。物联网将超越台式电脑、笔记本电脑和智能手机的历史巅峰。小型、资源受限的设备将推动这一令人难以置信的广泛应用增长。从家庭自动化到建筑安全传感器,从农业灌溉到工业自动化,从医疗保健到个人卫生。它将触及我们生活的多个方面,改变我们与环境的互动方式。这些设备大部分都是无线连接的,目前有多种无线技术可以提供 IP 连接,但预计有三种解决方案将主导互联家庭:Wi-Fi、蓝牙和 802.15.4 网状网络协议。Thread 是网状网络的未来。它实现了基于 IP 的网状网络解决方案的承诺,并且针对安全、可靠、可扩展和低功耗操作进行了优化。
更多参考资源
Thread网络解决方案页面:
https://cn.silabs.com/wireless/thread
Thread学习中心:
https://www.silabs.com/products/wireless/learning-center/mesh-networking/thread-networking