简介
Thread是无线网状网络的未来,它有望成为“万物”与Internet连接的关键技术。“万物”可以笼统的定义为功耗敏感、资源受限的设备,它们通常结合了微控制器(MCU)、传感器、RF技术和软件。这些设备通过无线连接桥接到Internet,而且能够被远程控制和自动化运行。当前已经有多种无线技术能够支持这种相互连接,但是Thread是为满足家居互联(Connected Home)的特殊需求而设计的。它基于现有标准,通过提供低功耗、安全和可扩展的基于IP的无线网状网络协议,Thread成为IoT(Internet of Things)实现的关键技术所在。
IoT
研究公司IHS Technology的数据表明:到2025年,IoT可连接设备的数量规模将增长到754亿台。这种前所未有的连接规模是技术进步的结果,并可追溯到上世纪70年代早期,当时Intel发布了第一款商用的微处理器:4004。十年之后,台式机技术已经达到了空前的工艺水平,开创了前所未有的个人生产力时代。
笔记本电脑出现于上世纪90年代,伴随着Internet的发展,标志着移动互联的开始。然而,直到本世纪00年代中期智能电话的问世,我们才真正实现了不受限制的互联网体验。智能电话把个人计算能力和Internet连接整合到我们的手掌上。低功耗计算、感知和通信带来全新类别的可连接设备。这些小型的、资源受限的、电池供电的“万物”不再仅仅关注个人计算,而是以全新并有效的方式为家庭、工厂以及整个城市提供感测、互联和自动化服务。图1显示了可连接设备的演变。
图1:IoT的出现
为什么选择IP
IP(Internet Protocol)是Internet的主要通信协议。IP为IP网络数据中继提供了核心机制,它的路由能力实现了网络互连。在Internet数十年快速发展之后,IP已经无处不在。
本身不支持IP的网络技术必须首先在网关中适配IP。这种处理过程涉及到本地网络地址的映射,将网络层数据包重新打包为IP数据包。如图2所示,已加密的本地报文必须在网关中解密,然后重新在IP数据包中加密。
图2:本身不支持IP的本地网络
相比之下,本身支持IP的本地网络,例如Thread和Wi-Fi,能够无介入的转发和路由应用的有效载荷。本地网络加密的报文能够安全的端到端传输。如图3所示。
图3:本身支持IP的本地网络
IPv6对比IPv4
IPv4支持32位寻址。但是自从上世纪90年代起,大约43亿(2^32=4294 967296)的地址空间越来越不能满足Internet连接的增长预期。IPv6把地址长度增加到128位,这使得地址空间达到约240涧(1涧=10的36次方)!具有IPv6全球唯一地址(GUA)的本地设备可直接通过广域网(WAN)寻址。
6LoWPAN
6LoWPAN是IPv6 over Low Power Wireless Personal Area Networks的缩写。它可实现在802.15.4连接上有效传输IPv6数据报,因此资源受限的设备(例如“万物”)能够自然的加入IoT。它支持三种关键功能:
· 报文长度自适应
IPv6支持的最小MTU(最大传输单元)是1280字节。在使用UDP(User Datagram Protocol)和DTLS(Datagram Transport Layer Security)的802.15.4报文中,典型应用的有效载荷大小是63字节。6LoWPAN提供分段和重组机制以适配IPv6数据报到这些更小的802.15.4有效载荷。不合适大小的IPv6报文将被分成片段,并通过802.15.4在空中发送。不是所有的片段都能够以正确的顺序被接收。然而,6LoWPAN仅仅需要接收到所有片段,然后按照需要再重新排序分段。
· 报头压缩
为了最大限度的减少在802.15.4帧中发送IPv6消息的开销,6LoWPAN利用协议间的跨层冗余(例如源和目标地址、负载长度、传输类型和流量标签)为IPv6和传输报头提供透明的压缩机制。Thread使用IPHC(Improved Header Compression)和NHC(Next Header Compression)。IPHC被用于压缩IPv6报头。NHC被用于压缩UDP报头。
· 层间转发
Thread使用IP路由转发报文。IP路由表用于维护每一个目的和到达它的下一跳。6LoWPAN网状报头使用IP路由表来实现链路的下一跳转发。
实现互联
网络市场中存在多种无线技术。从长远来看,我们认为在互联家居和IoT领域中主要有三个领先的协议解决方案:Wi-Fi、Bluetooth Smart和802.15.4网状网络协议。
Wi-Fi是家庭网络中传输音频、视频和数据的骨干无线技术。它支持高数据率和输出功率,然而功耗较大。因此其在电池供电的应用中受到限制。
Bluetooth® Smart适合连接智能手机的点对点解决方案,也适合在电池供电的设备上批量传输数据。虽然目前的解决方案本身不支持IP,但是Bluetooth Core Specification 4.2通过支持IPv6和6LoWPAN为支持IP奠定了基础。
网状网络技术(例如ZigBee PRO和Thread)构成了家居互联的骨干连接。这些自恢复网络已经被优化去支持低带宽控制和自动化应用,在这类应用中,支撑几年的长电池寿命是关键点。
在过去的10年中,ZigBee PRO一直在802.15.4网状网络解决方案中占主导地位。它支持可靠、安全和可扩展的网状网络,支持超过250个节点,也广泛支持电池供电操作的可休眠的终端节点。
Thread建立在ZigBee®基础之上,具有安全、可靠和容错性好的优势。它也解决了市场中对于网状网络技术期待已久的需求:支持IPv6和6LoWPAN,为IoT中的每一个终端节点带来亟需的IP连接能力。表1列举了不同网络协议的特性。
表1:IoT无线技术
为什么是Thread,为什么是现在?
Thread Group成立于2014年7月15日,目的是协作、共享专长和开发满足这些需求的解决方案。成立一年后,Thread Group发布了Thread规范。该组织的创始成员包括Silicon Labs、Nest Labs、Yale Security、Samsung Electrics、Freescale Semiconductor、Big Ass Fans和ARM。
Thread的关注低功耗和固有支持IP实现了“万物”和Internet之间无缝互联的承诺。它不仅在低成本、电池供电的设备之间提供有效通信,也提供到云和移动设备的简单接口。Thread提供具有吸引力的全新无线网状网络解决方案,设计旨在满足下列家居互联需求:
· 基于标准的协议
开放基于标准的协议,实现跨厂商的互操作性和竞争性。Thread以目前的包括IEEE 802.15.4在内的IEEE和IETF标准为基础。官方的Thread Specification已经在2015年7月13日由Thread Group发布。
· 简化的配置
Thread摒弃了一些之前网状网络标准的复杂性。只有两种不同的节点类型:Router Eligible和 End Device。
Router Eligible节点在需要支持网状网络时成为路由器。构建网络的第一个Router Eligible节点将自动的被指定为路由器并作为Leader。Leader执行额外的网络管理任务并代表网络做决定。网络中的其他Router Eligible节点也能够自动的担任Leader的角色,但是在一个时间内每一个网络中仅仅只能有一个Leader。
作为End Device加入的节点不支持任何路由功能。相反,它们把信息发送给指定为“父节点(parent)”的路由器,“父节点”代表它的“子节点(child)”执行路由操作。End Device通过父节点进行路由通信并且能够进入“Sleepy”状态来减少功耗。不能与它们的父节点通信的End Device在多次尝试后将自动扫描并连接到新的父节点。图4所示为带有REED(Router Eligible End Device)、一个Leader和Thread Router的Thread节点网络。
图4:Thread节点类型
· 基于IP的信息传送
Thread全面支持IP。Thread网络中的所有设备都有一个IPv6地址,并且能够被HAN(Home Area Network)中的本地设备或者离线网络中具有Thread能力的被称为Border Router的IP路由器直接访问。图5显示典型的Thread网络连接。
图5:Thread网络连接
网络中的节点由Border Router分配的前缀构成IPv6全球地址,或者由本地自分配的前缀去构成ULA(Unique Local Address)。网络中使用的路由ID通过Leader分配。Thread使用UDP(User Datagram Protocol)进行消息传输,而不是使用TCP(Transmission Control Protocol)。与TCP不同,UDP是无连接的协议,它摒弃了一些TCP特性,例如错误检测、报文排序和重传以换取更快速和更高效的传输。这种效率相当于减少了传输成本,这对于电池供电、资源受限的设备是极其重要的。Thread使用CoAP(Constrained Application Protocol)结合UDP去保持高效性,同时克服了UDP的一些限制。CoAP实现了重构以支持重传和分组排序。CoAP进一步为GET、POST、PUT和DELETE方法的轻量级(版本提供支持,能够容易的转换成HTTP实现与万维网的连接。利用离线网络CoAP到HTTP代理,Thread可以从浏览器中直接查询IoT设备!
· 低功耗运行
Thread为低功耗运行的可休眠终端节点提供了特别支持。正如其名称所暗示,这些可休眠的终端设备大部分时间处于低功耗休眠状态。在Thread协议中,不检测处于休眠状态的设备,以此来延长电池寿命。发送给可休眠终端设备的消息由它们的父节点缓存。消息传输仅仅在休眠终端设备被唤醒并查询父节点时才被触发。
· 可扩展性和弹性
Thread的网络设计目标是支持多于250个节点。在此约束下,多种特性和功能被优化用以提供最大化的吞吐量和最小化资源需求。在Thread网络中,活动路由器的最大数量是32个。这样产生的一个重要的直接结果是路由信息能够被有效的通过网络分发,并且所有路由器能够直观的维护网络中的所有路由。当节点添加到网络并且拓扑结构改变时,网络通过交换MLE(Mesh Link Establishment)消息做调整。如果有作为终端设备操作的Router Eligible设备,能够自主添加额外的路由器。这种Router Eligible终端设备或者REED,聆听路由信息,并且在需要提升网络的整体性能时,向网络中的Leader申请成为路由器。
Thread是强大的、能自我修复的网状网络,提供无单点故障能力。如果一个路由器发生了故障,网络将动态变向发送传输,绕过故障节点。如果一个Leader失效了,网络中的另一个路由器将被自动的选择成为新的Leader。多个边界路由器能够为离线网络通信提供故障失效安全的冗余。
· 互操作性
Thread Group已经发布了标准的软件测试工具用于所有Thread协议栈和最终Thread产品认证。这种测试工具将被提供给所有Thread成员公司以便在Thread认证测试之前获得高质量的软件开发和测试。
所有Thread组件(IC、软件协议栈或模组)在作为终端产品提供给用户之前必须获得Thread认证。所有想要携带Thread标识的终端产品设备必须提交他们的设备到批准的实验室进行认证。
· 安全和人性化
Thread网络易于使用并极其安全。Thread在MAC层使用AES-128保护所有网络传输,并且利用ECC和J-PAKE逻辑组合安全添加设备到网络(即Commissioning)。应用有能力选择利用基于标准的IP安全协议(例如DTLS)以实现额外的、安全的应用载荷。
Thread网络假定用户有一个可用的Commissioning设备用于添加新设备到Thread网络。Thread可以指定离线网络设备(例如智能电话和计算机)和在线网络Thread设备成为Commissioner。离线网络设备必须首先请求Thread Border Router以成为注册Commissioner,符合Thread指定的安全DTLS认证。一旦注册,Border Router将代表Commissioner候选人与Leader协商成为授权的Commissioner。在线网络设备不需要注册,但是可能需要与Leader协商以被授权。(Leader确保网络中同一时间仅仅有一个Commissioner被激活)。一旦得到授权,激活的Commissioner将会以广播方式通知到整个Thread网络。
在加入Thread网络时,用户通知Commissioner设备有个新设备将要加入,并且输入一个唯一的与加入设备相关的密码。这种密码被用于建立安全的DTLS会话来认证并授权给加入的设备。仅仅在那时设备有权访问Thread网络。一旦设备加入到网络,Commissioner设备不再处于激活状态。
· 加速产品上市
随着物联网设备的快速普及,对于产品来说,越来越重要的是尽快从概念阶段进展到产品上市。Thread和Silicon Labs有助于加速产品上市。
· 应用开发
Thread没有规定应用层,而是为其提供基本的消息传送服务,例如使用UDP和CoAP的单播和组播消息服务。类似Wi-Fi,Thread关注消息的安全和可靠传输,使用低功耗的网状网络代替高功耗的星状网络。使用Silicon Labs AppBuilder工具,利用易于使用的回调函数(callback)和插件(plug-in)使协议栈层细节不再抽象化,以简化IP消息传输。在框架中开发的应用代码是高度可移植的,并且可以在支持的802.15.4设备之间重用。AppBuilder提供简单的GUI去配置设备和网络参数,例如设备类型、命令、组网和加入行为,以及安全模式和操作。Silicon Labs提供容易定制和扩展的Thread示例应用帮助用户快速启动项目开发。
· 网络调试
在为网状网络开发应用时,理解、适配和调整网络层是重要的开发阶段。传统的解决方案使用无线sniffer去远程捕获空中网络传输包。Silicon Labs网络IC在芯片内部集成了这种能力,使用Packet Trace专用的双线接口,输出被设备发送接收的每个数据包以及链路质量信息。这些信息能够通过Desktop Network Analyzer工具收集起来,将完整的网络信息传输可视化。Desktop Network Analyzer通过事件联系所有通信活动并且解码Thread消息。网络活动可以被记录很长时间,从而识别网络中极少发生或间歇性发生的问题。
结论
我们正在进入Internet连接的新时代。物联网将大大超越台式机、笔记本电脑和智能手机组合的历史连接规模。凭借难以置信的、广泛的应用,小型、资源受限的设备能够驱动这一增长。从家庭自动化到建筑安防传感器,从农业灌溉到工业加工自动化,从医疗保健到个人卫生。这将触及我们生活的方方面面,并改变我们与周围环境的互动方式。大多数这些设备将会是无线连接的。现有的多种无线技术可以提供IP连接,但是我们认为三种解决方案将主导家居互联,即Wi-Fi、Bluetooth Smart和802.15.4网状网络协议。Thread是网状网络的未来。它提供安全、可靠和可扩展的基于IP的网状网络解决方案,以及优化的低功耗操作。
作者:Silicon Labs IoT无线产品行销总监Greg Fyke