2.3.4 Thread
图2.10 Thread协议栈
2014年7月,谷歌旗下智能家居公司Nest组织创建产业联盟Thread Group。Thread Group从最开始有7个会员组织,现在已经拥有超过200名成员,并开发超过30款产品。Thread Group的会员包括LG电子公司、微软公司和皇家飞利浦电子公司、三星公司、泰科国际有限公司、高通、飞思卡尔等机构,中国家电企业美的集团也在其中。ThreadGroup旨在为了替家用物联网设备建立可靠、安全、低功耗的网状网络协议,让像智能住宅和其他连接设备等接入固定位置的第二网络。
2016年9月,Thread Group正式发布推出了物联网技术规范Thread,并表示将揭开九月认证计划序幕,网络规格已经由主题组成员开始提供。为了推动Thread标准的应用,Nest Labs公司发布了开源网络协议Open Thread。
Thread是一种基于简化版IPv6的网状网络协议,通过IEEE 802.15.4网络传输IPv6包。该协议由行业领先的多家技术公司联合开发,旨在实现家庭中各种产品间的互联,以及与互联网和云的连接。Thread易于安装、高度安全,并且可扩展到数百台设备。Thread基于低成本、低功耗的802.15.4芯片组开发。目前正在使用的大量产品,只需一次简单的软件升级,便可支持Thread。
图2.10是Thread网络协议栈结构图。由图可以看出,Thread标准是基于IEEE 802.15.4的物理层与MAC层工作在2.4GHz频带上,传输速率为250kbit/s。Thread协议栈使用的是IEEE802.15.4-2006版本的物理层与MAC层。802.15.4MAC层是用基本的消息处理和拥塞控制,MAC层包括设备用于来监听信道的CSMA机制,以及链路层处理重传和对相邻设备之间可靠通信和ACK帧的发送。MAC层中用于消息上的加密和完整性保护是基于密钥的建立和协议栈软件上更高层的配置,网络层是建立在这些基本机制的基础上,以保证网络中端到端通信的可靠性。网络层实现Thread协议,主要有6LoWPAN、IPv6、Routing和UDP,带加密等安全功能。最上层为应用层。
Thread协议栈是一种可靠、性价比高、低功耗、无线D2D(Device-to-Device)通信的开放标准。它是基于IP网络并在协议栈上能用多种应用层,是专门为连接家庭应用而设计的标准。
Thread协议栈的基本特性主要表现在以下六个方面。
1)网络的安装、启动、运行简单。Thread网络允许在必要的时候进行自我修复并解决路由问题,对于网络的形成、连接以及维护,Thread协议都是很简单的。
2)安全性高。所有的设备只有在授权以及所有通信都是加密和安全的情况下才会加入网络。
3)网络的规模可以是小型的,也可以是大型的。家庭网络中的设备可以是几个到上百个之间进行变化,并且这些设备之间可以进行无缝通信。Thread协议的网络层是在预期使用的基础上对网络的操作进行了优化设计。
4)通信范围。典型的设备与网状网络进行连接所提供的足够范围足以覆盖一个正常的家庭,并且Thread协议栈的物理层使用扩频技术能够提供较为良好的抗干扰能力。
5)无单点故障。Thread协议栈能够提供安全与可靠的操作,即使在网络中的个别设备出现了故障或是离开网络,也不会对网络的可靠性与安全性造成影响。
6)低功耗。Thread网络中的主机设备通过合适的工作周期能保证让两节AA类型的电池工作数年。
Thread具有简单性。如图2.11所示,网络中只有两种类型的设备:路由器资格设备(RouterEligible)和终端设备(EndDevice)。RouterEligible节点在需要支持网状网络时,可以成为网络中的路由器。路由器为网络设备提供路由服务。路由器在设计的时候不采用休眠策略,但是路由器能够降级处理,可作为具有路由器资格的终端设备(RouterEligibleEnd Device,REED)。
构建网络时,第一个路由器资格设备节点被指定为首领(Leader)节点。Leader节点需要执行网络管理的任务并做出相应的决策。网络中其他路由器资格设备节点也能够自动地担任首领的角色,但是在任意时间内每一个网络中仅能有一个首领节点。
作为终端设备加入的节点不支持任何路由功能。它们只能把信息发送给指定为“父节点(parent)”的路由器,由“父节点”执行路由操作。终端设备通过父节点进行路由通信并且能够进入“休眠(Sleep)”状态来减少功耗。
图2.11所示为带有REED、一个首领节点和Thread路由器的Thread节点网络。
图2.11 Thread节点类型