APP下载

IETF 6TiSCH 工业物联网研究综述:标准、关键技术与平台*

2020-03-19万亚东曹远龙刘清华

计算机与生活 2020年3期
关键词:时隙低功耗路由

杨 伟,汪 浩,万亚东,曹远龙,刘清华

1.江西师范大学 软件学院,南昌330022

2.北京科技大学 计算机与通信工程学院,北京100083

1 引言

物联网是一种新型的网络形态,它通过大量的物理感知设备,按照一套标准的通信协议,实现任何物品的智能化识别与实时状态监管[1-3]。物联网可以广泛应用在环境监测、智慧城市、智慧医疗以及工业控制等领域[4-5],其中工业物联网是物联网领域中最为重要的发展方向之一。美欧发达国家正着手将工业物联网技术应用于高端制造业。《中国制造2025》战略规划指出“推动物联网、大数据等新一代信息技术与传统制造业深度融合,促进传统制造业向智能制造转型升级”任务。由此可见,工业物联网是未来智能制造领域中一套核心支撑技术体系。

工业和信息化部于2018年5月发布了《工业互联网发展行动计划(2018—2020年)》报告,其明确提出了采用一批新的无线通信技术来升级建设工业互联网,并计划到2020年底初步建成高可靠、广覆盖、大带宽并且支持互联网协议第六版(IPv6)的工业互联网基础设施和产业体系。由于标准在新的通信技术发展与应用过程中起到至关重要作用,各个国家及相关标准工作组在该领域展开了激烈竞争。目前,无线物联网接入技术主要分为短距离和长距离无线通信技术。短距离无线通信技术标准主要包括IEEE802.15.4 标准协议、IEEE802.15.1 标准协议以及IEEE802.11 标准协议。长距离无线通信技术特别是低功耗广域网(low-power wide-area network,LPWAN)在物联网领域发展迅速,代表性技术包括窄带物联网NB-IoT[6]和LoRa[7],其中窄带物联网NB-IoT 工作频谱需要授权。目前,工业物联网领域中有三个典型的国际标准,其分别是ISA100[8]、WirelessHART[9]和WIA-PA[10],以上三大国际标准均采用了基于IEEE802.15.4 标准协议的短距离无线通信技术。

IEEE802.15.4 标准也是在不断更新中。早期IEEE802.15.4—2006标准[11]主要存在空闲监听和抗干扰能力差问题,无法满足工业无线应用对低功耗和高可靠的要求。2012年4月,IEEE802.15.4e 新标准[12]正式发布,其采用时隙跳频(time synchronized channel hopping,TSCH)新技术。在IEEE802.15.4e TSCH 网络中,节点之间通过精确时间同步来协调工作状态,可以减少空闲监听时间,从而达到低功耗目的;节点之间的通信信道是不断变化的,该跳频机制可以提高无线通信可靠性。研究表明,IEEE802.15.4e TSCH新技术可以使得工业无线通信的可靠性接近有线通信的可靠性[13]。

2013年,互联网工程任务组(Internet engineering task force,IETF)成立了6TiSCH(IPv6 over the TSCH mode of IEEE 802.15.4e)标准组,其主要目标是制定一套完整的工业物联网协议栈[14-15]。IETF 6TiSCH 工业物联网融合了IPv6 技术与低功耗无线通信技术,使得工业物联网节点可以无缝连接到基于IP 的互联网,推动了工业化与信息化的融合,促进了工业物联网协议的标准化发展,为未来工业互联网发展提供核心技术支撑。图1为IETF 6TiSCH 工业物联网的总体框架图,资源受限节点运行了一套标准的物联网协议栈,从而可以实现与远端的服务器进行相互通信。该协议栈自顶向下主要包括:应用层CoAP 协议[16]、传输层UDP 协议、IPv6 网络层协议、链路层协议和物理层IEEE802.15.4 协议。IPv6 网络层协议比较复杂,主要由RPL[17]、ICMPv6 与6LoWPAN协议[18]组成。链路层协议包括6TOP[19]、MSF[20]与IEEE802.15.4e TSCH 协议[12]。

Fig.1 Framework of IETF 6TiSCH industrial Internet of things图1 IETF 6TiSCH 工业物联网的总体框架图

IETF 6TiSCH 工业物联网在网络层引入IPv6 技术,可以解决海量的资源受限物联网节点无缝接入基于IP 的互联网问题;在链路层引入时隙跳频技术,可以解决复杂工业环境下无线通信的可靠性和低功耗的问题。IETF 6TiSCH 标准组一直致力于工业物联网架构、标准、关键技术与平台等相关研究,截止到2019年4月,其已经发布了6TiSCH 系统架构、最小的安全框架、最小的调度框架与6TOP 子层协议等相关草案10 余份。为了有效地对新的标准草案进行性能评估,IETF 6TiSCH 标准组核心成员开发了一套OpenWSN开源平台[21]。目前,OpenWSN 开源软件可以很好地支持GINA、TelosB、OpenMote-CC2538与OpenMoteSTM 等十余种硬件平台。IETF 6TiSCH工业物联网凭借其低功耗、高可靠、实时性以及支持IPv6 技术等特点,将在未来工业物联网领域起到至关重要作用。因此,深入研究IETF 6TiSCH 工业物联网的标准、关键技术与平台具有重要的理论和现实意义。

2 发展历程及现状

标准通信协议在工业物联网发展过程中起到至关重要作用,过去工业物联网领域的通信标准各式各样(如ZigBee、ISA100[8]、WirelessHART[9]等),不同通信标准会导致设备之间互操作性差。另外,将IPv6 技术引入工业网络标准是大势所趋,也是工业化与信息化深度融合的必然要求。互联网工程任务组基于以上背景成立了IETF 6TiSCH 标准组,负责制定一套开放、完整的工业物联网标准协议。由于工业物联网协议主要应用于条件苛刻的工业过程控制领域,与普通物联网协议相比,其对可靠性、低功耗和实时性要求更加苛刻。工业物联网协议在制定过程中主要面临两大难题:(1)在复杂工业环境下,如何实现高可靠、低功耗无线通信;(2)如何将海量的资源受限边缘节点接入基于IP 的互联网。IETF 6TiSCH工业物联网协议是在各种标准和技术基础上逐步发展起来的,并很好地解决了以上两个难题。

IETF 6TiSCH 工业物联网发展早期,主要解决复杂工业环境下如何达到高可靠性和低功耗无线通信的难题。早期工业无线国际标准ISA100[8]和WirelessHART[9]以及ZigBee 协议在通信底层均采用IEEE802.15.4—2006 标准,而IEEE802.15.4—2006 标准存在单一信道通信和空闲监听的问题。在复杂工业环境下,单一信道通信容易受到各种干扰,网络丢包率非常大。空闲监听就是节点的射频必须一直处于监听状态,从而造成能量浪费。IETF 6TiSCH 工业物联网采用TSCH 技术,解决了复杂工业环境下无线通信可靠性和低功耗的难题。在时隙跳频网络中,节点之间需要保持精确的时间同步,通过资源调度算法协调节点之间在何时使用哪个信道通信,网络空闲时节点可以进入休眠状态,从而可以降低能耗。在复杂工业环境下,跳频通信技术可以增强抗干扰能力,大大提高无线通信的可靠性[22-23]。研究表明,在复杂工业环境下,采用TSCH 技术,工业无线网络可以达到超低功耗和接近有线通信的可靠性[24]。IETF 6TiSCH 工作组通过采用时隙跳频关键技术,解决了工业物联网发展过程中通信可靠性与低功耗的难题。

另外,如何将海量的工业物联网节点接入现在基于IP 的互联网,以推动工业化与信息化的融合也是工业物联网发展过程中的一大难题。传统的工业监控网络与基于IP 的互联网无法直接进行通信,IETF 6TiSCH 工业物联网通过引入IPv6 技术,使得工业物联网节点可以无缝连接到基于IP 的互联网。将IPv6 技术引入到资源受限的工业物联网环境是一件非常困难的事情,需要对现有IP 协议进行大量深度修改。IETF 6LoWPAN 标准工作组[18]是比较早从事该方面研究的团队,其在编址、报头压缩、分片和邻居发现等方面进行了大量的前期研究,并于2007年发布了第一个6LoWPAN规范。但是,IETF 6LoWPAN标准主要建立在早期的IEEE802.15.4—2006 链路层标准之上,对后期IEEE802.15.4 新标准缺乏支持。2008年IETF RoLL 工作组正式成立,其目标在低功耗有损网络(low-power and lossy networks,LLN)中设计一套IPv6 路由协议,并命名为RPL[17]。IETF 6TiSCH 工作组在整合了先前6LoWPAN 协议和RPL协议基础上,对复杂IPv6 网络层协议进行不断修改与完善,使得其可以运行在低功耗、高可靠的IEEE802.15.4e TSCH 协议之上,以解决工业物联网协议面临的第二个难题。

IETF 6TiSCH 工作组仍在不断完善该协议栈,以更好推动工业物联网标准的发展。比如,标准中没有定义压缩IPv6 数据包选用哪个时隙哪个信道进行发送,如何提供最基本的安全服务以抵御攻击者入侵等。目前IETF 6TiSCH 工作组重心在于网络架构完善、资源分配算法、最小安全架构以及验证测试平台搭建,其中2019年3月发布了6TiSCH 网络架构的规范[25],2019月8月发布了资源分配算法和最小安全架构的规范。截止到目前为止,IETF 6TiSCH 工业物联网的资源分配算法和最小安全架构仍然在完善中,其正式RFC 文档需要到2020年发布。

3 标准协议

IETF 6TiSCH工业物联网协议栈自顶向下主要包括:CoAP 应用层协议[16]、UDP 传输层协议、IPv6 网络层协议[17]、IEEE802.15.4e链路层协议[12]和IEEE802.15.4物理层协议。由于UDP 传输层协议是直接从互联网标准中借鉴过来,并非IETF 6TiSCH 工作组设计的。因此,本文将不详细介绍UDP 传输层协议。

3.1 CoAP 应用层协议

IETF CoRE 工作组于2014年正式发布CoAP 标准[16],它是一种专用于资源受限网络的Web 应用层协议。资源受限网络中节点的计算、存储和能量受限,典型的是低功耗无线个人区域网(low-power wireless personal area networks,LoWPANs)。CoAP 是一种基于REST 架构的物联网应用层协议,其采用了请求/响应通信模型。CoAP 协议相比于互联网应用层HTTP协议更加轻量级,数据包长度仅为4 Byte,主要运行在UDP 协议和DTLS 协议[26]之上。

CoAP 协议信息被编码成简单二进制格式。如图2 所示,CoAP 协议报文的头部长度为4 Byte,由版本号Version、报文类型Type、CoAP 标识符长度Token Length、功能码/响应码Code和信息编号组成。信息头部后面是Token 字段,其一般用于请求包与响应包之间的匹配。Token 的长度是可变的,一般为0~8 Byte,信息头部中TKL 字段可以指定Token 长度。Options为报文选项,通过报文选项可设定CoAP 主机、CoAP URI、CoAP 请求参数和负载媒体类型等。Payload 为负载信息,该字段必须以0xFF起始,后面跟消息内容。

Fig.2 Format of CoAP protocol message图2 CoAP 协议报文格式

CoAP 使用URI 方式来标识与定位网络资源。CoAP URI的格式是Coap://ipv6::addr[port]/well-known/,其中ipv6::addr 是必填项,port 字段为UDP 协议的端口号,well-known 是资源名称。

3.2 IPv6 网络层协议

IETF 6TiSCH 工业物联网的通信协议栈在网络层上引入IPv6 新协议,使得海量的物联网节点可以无缝接入互联网,实现了可操作技术与信息技术的融合。IETF 6TiSCH 物联网中IPv6 网络层协议比较复杂,其主要由RPL[17]、ICMPv6 与6LoWPAN[18]等协议组成。IPv6 数据报的格式如图3 所示,其源地址和目的地址均为128 bit。IPv6 数据报的头部中下一个首部字段为58 时,表示数据报类型是ICMPv6。

Fig.3 Format of IPv6 data message图3 IPv6 数据报的格式

IPv6 RPL 是一种距离矢量路由协议,主要应用于低功耗有损网络。RPL 通过使用目标函数和度量构建有向非循环图(destination oriented directed acyclic graph,DODAG),从而使得叶子节点可以很快找到去根节点的路径。RPL 路由协议将网络的拓扑构建成有向非循环图,主要分为两个阶段:向上路由和向下路由建立。向上路由是通过周期性广播DIO 包方式建立的,从而构建一条从叶子节点到根节点的路径;向下路由是通过周期性向边界路由器发送DAO 包方式建立的,从而构建一条从根节点到叶子节点的路径。如图4 所示,RPL 路由协议构建有向非循环图的具体步骤如下:(1)边界路由器首先使用DIO 消息来广播有关图的信息;(2)边界路由器的邻居节点A收到DIO 消息后,根据Rank 值、跳数和信号质量等参数,通过目标函数计算一个综合评估值,然后决定是否加入到这个DODAG 图;(3)节点A选择加入到图中,于是节点A与边界路由器之间建立起一条路由,边界路由器会成为节点A的父节点。节点A计算自己在图中Rank 值,接着向边界路由器发送包含路由前缀信息的DAO 消息。节点B与C以同样方式加入到有向非循环图中。在RPL DODAG 图中,节点之间的Rank 值大小是有规律的,子节点Rank 值在父节点Rank 值的基础上增加RankIncrease(RankIncrease>0)。假设节点N和节点P(P为父节点),其Rank 大小关系如式(1)所示。另外,RPL 协议中规定RankIncrease计算方法,具体计算过程如式(2)所示,其中numTx代表发包个数,numTxAck代表收到ACK 包数量。

Fig.4 Process of building DODAG in IPv6 RPL protocol图4 IPv6 RPL 路由协议构建有向非循环图的过程

互联网控制信息协议第6 版本(Internet control managemet protocol version 6,ICMPv6)是IPv6 网络层协议的重要组成部分,主要用于邻居节点发现、网络状态检测与差错报告。邻居发现协议实现了地址解析与邻居的状态跟踪功能。ICMPv6 协议会记录邻居IPv6 地址与物理网卡地址的对应关系。网络状态检测可以判断网络中任意两个节点能否通信。差错报告是ICMPv6 中重要报文类型,其主要包括超时、目的不可达和数据包过长等。另外,ICMPv6 协议提供了无状态自动配置IPv6 地址功能,从而使得IPv6 终端设备可以方便地接入IPv6 网络。

IETF 于2004年开始成立6LoWPAN(IPv6 over low power wireless personal area networks)协议工作组[18],负责制定可以运行在低功耗个人局域网的IPv6协议。IEEE802.15.4 链路层规定数据包最大长度为127 Byte,而标准IPv6数据报头部达到40 Byte,留给数据部分长度很短。6LowPAN 通过对IPv6 包头进行压缩,将IPv6数据报头部缩减为2 Byte。此外,6LowPAN采用分组实现应用层对于物理层的透明传输,支持IPv6 的1 280 Byte 长数据包,并通过在包头中添加MESH 路由字段,实现基于IPv6 的多跳路由转发。

3.3 IEEE802.15.4e链路层协议

Fig.5 Example of IEEE802.15.4e TSCH network communication图5 IEEE802.15.4e TSCH 网络通信示意图

IEEE802.15.4e链路层协议采用TSCH 关键技术,可以实现一个低功耗、高可靠的无线网络[12]。研究表明,射频模块能量消耗占传感器节点功耗50%以上[27]。因此,如何降低传感器节点的空闲监听时间在低功耗无线网络中是一个关键问题。在IEEE802.15.4e TSCH 链路层协议中,网络中节点需要保持精确时间同步。节点大部分时间处于休眠状态,仅在有数据包收发的时隙才打开射频模块。图5表示IEEE802.15.4e TSCH 网络通信示意图。横轴代表时间,时间由许多时隙组成,时隙长度一般10 ms,超帧是多个时隙组合,它是周期性重复的。纵轴代表信道,通过使用不同信道实现跳频技术,从而可以抵抗周围环境中噪声干扰和多径干扰,提高无线通信可靠性。在一个超帧周期中,节点D仅在时隙2 和时隙100 处于工作状态,其他时候都可以休眠以降低功耗。在一个时隙内部,通常有足够长的时间让一对节点交换数据包,节点需要精确的时间去发送和接收数据包,但是如何进行高精度时间同步将在本文4.1 节进行介绍。同一个节点可以在不同时隙使用不同信道进行通信,如节点B在时隙2 使用信道2 进行通信,在时隙3 使用信道1 进行通信。

在IEEE802.15.4e TSCH 网络中,节点之间通信信道计算如式(3)所示,其中ASN表示网络时隙值,ChannelOffset表示信道偏差,chTemplate表示默认跳频序列数组,IEEE802.15.4e 标准中建议默认的跳频序列5,6,12,7,15,4,14,11,8,0,1,2,13,3,9,10;NC表示当前可用信道数目,默认大小为16;f代表节点实际无线通信信道,通常2.4 GHz无线信道从11 到26。超帧由若干个时隙组合而成,故ASN=T×NS+X,其中T表示超帧周期,NS表示超帧中时隙个数,X表示超帧中时隙偏差。因此,节点之间通信信道计算公式也可以表达为式(4)。在IEEE802.15.4e 网络中,节点的通信资源可以通过[X,ChannelOffset]二元组表示,其也可以称为Cell,Cell 是资源分配的基本单元。在IETF 6TiSCH 工业物联网的通信协议栈中,6TOP 和MSF子层协议定义了资源分配相关操作及算法,其中6TOP 子层协议定义了相邻节点之间对时隙增加或者删除操作,MSF 定义的6TiSCH 网络最小资源调度算法,本文4.2 节将进行深入的分析。

3.4 IEEE802.15.4 物理层协议

IEEE802.15.4 物理层主要任务是射频模块开启和关闭、通信信道的选择、链路质量预测以及数据发送和接收。IEEE802.15.4 物理层使用了868 MHz、915 MHz 和2.4 GHz 三个公共频段,并且支持ASK、BPSK 和O-QPSK 多种调制方法。大部分支持IEEE802.15.4 标准的射频模块(如CC2420)的数据传输速率最高可达250 Kb/s,通信距离可达100 m。目前,三大工业无线国际标准ISA100[8]、WirelessHART[9]和WIA-PA[10]在物理层上均采用IEEE802.15.4 标准。表1 对比了IETF 6TiSCH、LoRa 与NB-IoT 三种物联网技术物理层的性能指标。IETF 6TiSCH 物联网通信距离比LoRa、NB-IoT 短很多,其属于短距离无线通信技术,但是其支持网状网的拓扑结构,可以延长其感知范围。从功耗角度分析,其发送功率和接收功率远低于LoRa和NB-IoT。

Table 1 Comparison of physical layer parameters of three kinds of Internet of things technologies表1 三种物联网技术的物理层参数对比

4 关键技术

在构建一套低功耗、高可靠的IETF 6TiSCH 工业物联网平台过程中,需要涉及到高精度时间同步、资源调度以及安全等多项关键技术。

4.1 高精度时间同步技术

在IETF 6TiSCH 网络中,每个节点都需要保持精确的时间同步,从而可以在精确的时间去发送和接收数据包。因此,高精度时间同步技术是IETF 6TiSCH 网络中一项关键技术。传感器节点的计算能力、存储能力以及能量受限,不会配备高精度时钟源(如GPS),通常采用低功耗的晶振作为时钟源,从而使得设计高精度时间同步技术成为一项挑战。IETF 6TiSCH 网络中时间同步分为两个阶段:(1)新节点入网时需要进行ASN 时间同步;(2)节点成功入网后的Device-to-Device 时间同步。

ASN 是整个网络资源分配和正常通信的最重要的基础,网络中所有节点必须与网络保持ASN 同步。在IETF 6TiSCH 网络中,已入网的节点会周期性广播EB(enhanced beacon)包。新节点入网时,监听来自邻居节点的EB 包。EB 包中主要包含了JP(join priority)值和ASN 值,其中JP 值代表了节点在网络的层级关系。通常,新入网的节点会从选择一个JP值更小的邻居节点加入,并默认该节点为其路由父节点。新入网的节点在入网的同时获取到了路由父节点的ASN 值,然后每隔一定时间(典型10 ms)进行自增。

节点成功加入网络后,需要进一步采用Deviceto-Device 时间同步机制来保持精确的同步。由于传感器晶振在制造工艺、电压和温度等方面存在差异,其自身存在时钟偏移的现象(典型30 ppm)。因此,节点之间需要周期性进行Device-to-Device 同步。在IETF 6TiSCH 网络中,RPL 路由会将网络组织成一个树状分层结构。为了节省能耗,IETF 6TiSCH 网络使用网络树状结构作为时间同步树,子节点需要与自己父节点进行同步。Device-to-Device 时间同步包括两种同步方式:Frame-based 同步和Ack-based 同步。图6(a)表示了Frame-based 时间同步过程。子节点需要提前一段时间开启射频,这段时间称为保护时间(guard time,GT)。父节点在时隙模板的TsTxoffset ms时刻发送数据包,子节点收到数据包的前导码后记录下当前的时间,然后通过式(5)计算时间偏差。当获取到时间偏差后,子节点可以通过式(6)调整自己的时隙长度,从而与父节点保持精确的同步。图6(b)表示了Acknowledgment-based 时间同步过程。与Frame-based 同步不同,Acknowledgment-based 时间同步是子节点向父节点发起同步请求,父节点通过Ack 包将时间偏差信息发送给子节点,然后子节点调整自己的时隙长度,从而与父节点保持精确的同步。

在IETF 6TiSCH 网络时间同步过程中,需要周期性交换同步包,以维持高精度时间同步。为了降低同步过程中的能量开销,一些自适应时间同步算法相继被提出[28-30]。Stanislowski 等人[28]提出一种小巧的自适应同步算法,通过建立相邻节点的时钟偏差模型,然后周期性地进行软件补偿,从而有效地降低时钟偏移速度。该算法可以减少10%以上的同步包数量,提高网络寿命。Chang 等人[29]进一步提出了多跳网络下自适应同步算法,其通过RPL 路由构建无环的时间同步树,子节点与上级父节点保持精确的时间同步,并针对多跳网络同步容易导致误差累积现象,提出上级父节点同步完后子节点应该立即同步的策略。

Fig.6 Two methods in device-to-device synchronization图6 Device-to-Device 时间同步的两种方式

4.2 资源调度

在IETF 6TiSCH 工业物联网中,IEEE 802.15.4e TSCH 链路层协议定义了时隙跳频通信机制。但是,节点使用哪个时隙哪个信道进行通信缺乏定义,从而使得资源调度成为该物联网中的一个至关重要技术。IETF 6TiSCH 工作组及其他研究团队都在对资源调度关键技术展开深入研究。资源调度主要任务:(1)当资源不足以处理当前流量时,应该增加cell;(2)当资源过载时,应该减少cell 以节约资源。资源调度方式主要分为集中式和分布式两大类。集中式资源调度需要一个计算能力比较强的网关,其可以提供无冲突分配方案,可以最大化网络吞吐量,典型集中式资源调度算法包括流量感知算法[31]、基于队列调度[32]与机会选播调度[33]等。集中式资源调度适用于静态网络,对于流量或拓扑经常变化的网络,网关需要重新计算并分配资源,带来非常大的开销。分布式资源调度比较灵活,可以减少链路建立时间以及管理带来带宽消耗,并且更适用于动态网络,从而使得分布式资源调度策略研究成为当前研究热点。目前,IETF 6TiSCH 工作组及其他研究团队在分布式资源调度策略方面开展了大量的研究,下面将重点分析与讨论其研究成果。

IETF 6TiSCH 工作组设计了6TOP 协议子层,其采用了多次握手协议,并定义了邻居节点之间对时隙增加或者删除操作。但是,何时需要调用6TOP 对时隙进行分配以及分配哪些时隙缺乏定义。OTF(on-the-fly)[34]是IETF 6TiSCH 工作组提出的第一个资源分配算法。OTF 算法的核心思想是节点带宽资源的分配数量取决于其实际流量需求。OTF 算法中定义了三个参数S、R、T,其中S代表当前已分配cell 数量,R代表需要的cell 数量,T代表阈值,其具体步骤如下:

步骤1判断当前已分配cell 数量S与实际需要的cell 数量R的大小关系,当已分配cell 数量S比需要的cell 数量R大,并且超过了预设阈值T,说明当前已分配cell 数量过多,会造成网络资源浪费,需要调整已分配cell 数量S值,S值可设置为当前实际需要的cell 数量R与预设阈值一半(即T/2)之和;否则,进入步骤2。

步骤2当已分配cell 数量S比需要的cell 数量R大,但是没有超过预设阈值T,说明当前已分配cell数量合适,不需要调整已分配cell 数量S值;否则,进入步骤3。

步骤3当已分配cell 数量S比需要的cell 数量R小时,说明当前已分配cell 数量不满足实际流量需求,需要分配更多cell 才能满足需要,S值可设置为当前实际需要的cell 数量R与预设阈值一半(即T/2)之和;否则,报错处理。

下面,以一个实际例子说明OTF 算法运行过程。图7 是OTF 资源分配算法在三种不同情况下运行示例图。假设当前已分配cell 数量S(k)是11(其中k为状态标志),预设阈值T大小3。当R(k)=4 时,说明当前已分配cell 数量过多,需要删除一些cell,根据OTF 算法步骤1,已分配cell 数量S(k+1) 应调整为5。当R(k)=9 时,说明当前已分配cell 数量比较合适,根据OTF 算法步骤2,已分配cell 数量S(k+1)依然为11。当R(k)=15 时,说明当前已分配cell 数量不够,需要增加cell 数量,根据OTF 算法步骤3,已分配cell数量S(k+1)应该增加到17。

Fig.7 Example of OTF allocation algorithm图7 OTF 资源分配算法示例图

2017年9月,IETF 6TiSCH 工作组在OTF 资源分配算法基础上发布了SF0 标准草案[35]。SF0 是一种分布式资源调度算法,每个节点根据其当前资源分配和资源需求动态调整自身与其邻居之间的时隙表。2018年4月,IETF 6TiSCH工作组发布了SF1标准草案[36]。SF1 是端到端分布式资源调度算法,具有逐跳预留功能,并采用分布式资源预留协议(resource reservation protocol,RSVP)[37]。实时性要求很强的应用需要保障端到端通信资源,SF1 可以分配从源到目的地的专用路径,从而保障带宽资源和网络服务质量。目前,最新的MSF(minimal scheduling function)标准草案[38]正在完善中,其也是根据节点之间实际的流量来动态地分配带宽资源。MSF 可以提供最小调度功能,包括新节点入网通信资源分配、自适应流量的资源分配以及冲突检测等。

其他研究团队也在分布式资源调度策略方面开展了大量的研究,主要包括DeTAS[39]、LLSF[40]、CCR[41]与ReSF[42]。DeTAS[39]是一种基于流量感知的分布式资源调度算法。在分层树状结构的网络中,子节点将自己带宽需求发送给上一级父节点,父节点计算出带宽需求并往上发,最后根节点根据上报的带宽需求进行合理分配,这种管理方式类似集中式,但是采用了分布式方式运作。LLSF[40]是一种低时延的分布式资源调度算法。LLSF 算法[40]在选择时隙方式不同于SF0 标准草案中随机选择,其选择相对比较邻居时隙进行资源分配,从而可以大大降低通信时延。在资源分配过程中,可能会分配到相同cell 从而导致相互干扰,CCR[41]提出了一种冲突检测方法,从而可以有效地降低网络的丢包率。ReSF[42]充分考虑工业物联网中周期性数据感知与通信特点,建立了线性规划模型,仅在预期流量时激活资源,可以满足公平、低延时与能量有效性等多方面性能。但是,该算法仅考虑单信道通信应用场景,而6TiSCH 是时隙跳频网络,应该扩展到多信道通信网络。

4.3 安全相关技术

由于IETF 6TiSCH 工业物联网主要应用于国家关键基础设施领域,网络安全将是其发展和应用过程中的一个关键问题。信息安全界RSA2017 盛会发布的七大致命攻击中就包括对工业物联网的攻击。然而,当前IETF 6TiSCH 工业物联网协议存在诸多严重的安全问题。由于IPv6 网络层与IEEE802.15.4e链路层是IETF 6TiSCH 物联网的核心,下面主要介绍这两层面临的安全挑战及相应的安全策略。

IPv6 RPL 是一种距离矢量路由协议,其设计之初主要考虑网络跳数、低功耗以及无线链路可靠性等因素,缺乏安全方面考虑。文献[43]指出了RPL 路由协议容易遭受选择前向攻击、黑洞攻击、虫洞攻击以及女巫攻击;建议采用安全的加入过程、轻量级的入侵检测方法与基于熵理论的信任模型等方案来抵御以上路由攻击。文献[44-46]分析了Hello 洪泛攻击、黑洞攻击对RPL 路由协议的影响,其将导致网络端到端的数据传输率下降和延时增加。文献[47-48]也指出了RPL 路由协议存在严重的安全漏洞,攻击者很容易破坏协议正常运行。文献[49]指出了内部攻击者假冒网关将导致网络中大部分信息流向攻击者或消耗正常节点能量,然后提出了一种基于哈希链的VeRA 算法抵御内部攻击。文献[50-51]指出RPL 路由协议面临拓扑攻击问题,恶意攻击节点可以通过伪造Version Number 值或者Rank 值方式来非法提高其在有向非循环图地位,然后提出了一种连接Version Number 和Rank 的加密链方法。文献[52]发现一种新的RPL 内部入侵方式,将其命名为路由选择入侵,然后设计了一套基于ETX 度量的入侵检测系统。文献[53]指出仅使用信任平台模块(trusted platform module,TPM)来确保节点之间的信任是不够的,内部攻击仍然可以破坏RPL 拓扑构建,然后采用了基于节点行为的信任值方式,将安全方面的计算与处理交给TPM 模块。文献[54]指出6LoWPAN协议定义了资源受限物联网设备运行IP通信的机制,但是没有相应的安全机制,提出了一种6LoWPAN/IPsec 扩展机制来保障物联网端到端通信的安全性。文献[55]指出IPv6 协议采用无状态地址自动配置方法容易暴露设备的地址,让攻击者可以很容易对这些设备进行监听、追踪和定位,然后提出一种不断变换地址方式来隐藏正在通信设备,从而使得攻击者无法对某个设备进行长时间的监控和追踪。

普通无线传感网络(wireless sensor network,WSN)的链路层协议在可靠性与实时性方面存在不足,IEEE802.15.4e 链路层标准采用了TSCH 关键技术,其可以更好地满足工业无线应用对实时性与可靠性要求。但是,该协议存在一些严重的安全漏洞,攻击者可以利用这些漏洞破坏协议正常运行。文献[56-58]指出篡改同步误差可以破坏IEEE802.15.4e 网络正常时间同步,可以采用加密、认证等安全机制抵 御该类攻击,但是安全机制引入会带来额外的时间开销,文中采用OpenMote-CC2538硬件节点[59]和OpenWSN软件平台[21]来评估AES 和CCM*安全算法对最小时隙影响。文献[60]指出选择性干扰攻击会破坏IEEE802.15.4e TSCH 网络中节点的跳频通信,文中提出了一种分布式的随机置换超帧中时隙和信道的算法,使得节点在每个超帧中通信模式变得不可预测,攻击者无法预测出节点通信信道。文献[61]分析了IEEE802.15.4e 标准中加密、认证以及重放保护等安全服务的特点,指出了该标准没有解决密钥安全分发问题;另外,将IPsec 安全协议[62]应用于资源受限的设备是一个非常大的挑战。文献[63]指出WSN 中链路层协议无法抵御拒绝睡眠的攻击,该攻击将导致节点的电池寿命从几年下降到几天,IEEE802.15.4等安全协议均无法抵御拒绝睡眠,文中提出了一个安全防御框架,该框架包括强认证、重放保护、干扰检测、广播攻击保护和自适应流量限制等安全机制,可以有效地抵御拒绝睡眠攻击。

5 平台

为了有效地验证IETF 6TiSCH 工业物联网协议栈的相关性能(如可靠性、低功耗、网络延时等),需要搭建一套实测平台或仿真平台。目前,该领域有两种比较典型的实现平台:(1)OpenWSN 实测平台[21];(2)6TiSCH仿真平台[64]。OpenWSN开源平台是IETF 6TiSCH 工作组核心成员开发的,完整实现了IEEE802.15.4e 标准、IPv6 RPL 标准以及6TOP 协议。6TiSCH 模拟器是一套实现了IETF 6TiSCH 标准的开源仿真平台,可以支持几千个节点的网络仿真。

5.1 OpenWSN 实测平台

OpenWSN 是由Thomas Watteyne 教授研究团队设计开发的一套低功耗、高可靠、可接入互联网的开源物联网平台[21]。如图8 所示,该平台主要包括硬件节点、节点程序与上位机软件三个组成部件。在硬件节点方面,目前已有TelosB、GINA、WSN430、USP Mote、IoT-LAB_M3[65]、OpenMoteCC2538[66]和Open-MoteSTM,以上硬件节点大部分采用了高性能、低功耗的ARM芯片作为微控制器。另外,以上硬件节点电路板的原理图均公开。在节点程序方面,采用C 语言完整地实现了CoAP 协议、IPv6 RPL 协议、6LoWPAN协议、6TOP 协议、IEEE802.15.4e 协议以及各种硬件驱动程序,并且包含了一个微型的任务调度模块。为了进一步提高节点程序的性能,IETF 6TiSCH 工作组计划将FreeRTOS 开源实时操作系统[67]融入进来。此外,TelosB、GINA 与OpenMoteSTM 硬件节点均选用IAR 开发环境进行程序开发、编译及烧写。Open-WSN 平台提供了OpenVisualizer 上位机软件,其主要功能为管理网络、接收来自节点的数据以及下发命令给节点。OpenVisualizer 上位机软件采用Python 语言开发,可以可视化显示网络拓扑、传感数据以及同步精度等各项参数,并且提供了一个基于离散事件的模拟器OpenSim,可以在没有硬件节点情况下开展仿真研究。

Fig.8 Three major components of OpenWSN testing platform图8 OpenWSN 实测平台的三大组成部件

5.2 6TiSCH 仿真平台

目前,网络仿真器比较繁多,如NS-3[68]、OMNet++[69]、TOSSIM[70]等。但是,以上网络仿真器暂时没有实现IETF 6TiSCH 网络协议栈,除非自己添加相关协议代码才可以对IETF 6TiSCH 网络进行仿真。OpenWSN开源平台中OpenSim 模拟器可以很好地模拟IETF 6TiSCH 网络行为,由于该模拟器中仿真节点程序基本完全兼容硬件节点,使得其仅支持几十个节点仿真,无法支持大规模网络仿真。

6TiSCH 模拟器[64]是一款采用Python 语言开发的开源软件,其完整地实现了IETF 6TiSCH 物联网标准,可以被用来测试不同条件下IETF 6TiSCH 网络性能,并且支持几千个节点的网络仿真。6TiSCH 模拟器采用了Pister-Hack 无线通信的信道模型[71]。该模型被用于设置网络中邻居节点之间的RSSI 值,并且通过转换可以估计出邻居节点之间的数据包传递率。6TiSCH 模拟器还完成了Vilajosana 等人[72]提出的能量消耗模型,从而可以比较精确地估计出网络能量开销。图9 表示6TiSCH 模拟器仿真50个节点的界面图。该模拟器默认选择SF0 资源调度算法,运行之后可以得到网络的端到端丢包率、延迟以及网络同步率等相关性能指标,并且还可以进一步分析出该网络能耗。

6 现存问题与未来发展方向

6.1 现存问题

IETF 6TiSCH 工业物联网在可靠性与低功耗等方面性能比较突出,并能实现与下一代IPv6 互联网进行互联互通。但是,目前还存在一些不足。

(1)全网同步。IETF 6TiSCH 网络通过RPL 路由协议构建时间同步树,叶子节点通过Device-to-Device时间同步方式与父节点进行精确同步。但是,该同步方式维持的是一种相对时间,并且多跳之后其同步误差会变大,整个网络没有进行全网同步,缺乏一个绝对时间。然而,工业物联网某些应用需要全网时间同步,比如需要采集某个时刻网络中所有传感器数据,目前IETF 6TiSCH 网络缺乏这方面支持。

(2)网络时延。工业物联网应用对实时性要求非常苛刻,需要在毫秒级时间做出反应。IETF 6TiSCH网络在底层通信上采用时隙跳频技术,端节点数据传输到根节点的网络时延与时隙长度、网络跳数、资源分配算法紧密相关。IETF 6TiSCH 网络的时隙长度值10~15 ms。当网络规模比较大时,存在远端节点与根节点的跳数比较多,网络时延会比较大。资源分配算法决定了节点之间何时进行数据转发,其也将影响网络时延。最新研究表明[42],IETF 6TiSCH网络规模达到50 节点时,网络平均延时接近250 ms,这与实际工业物联网应用有点差距。另外,IETF 6TiSCH 网络没有对高优先级数据包(比如告警命令)进行优先调度,其可能导致高优先级响应没有及时处理。

Fig.9 User interface of 6TiSCH simulator图9 6TiSCH 模拟器的界面图

(3)安全性。由于工业物联网主要应用于国家关键基础设施领域,网络安全将是其发展和应用过程中的一个关键问题。IETF 6TiSCH 工业物联网引入了AES 对称加密算法、基于数字证书的安全加入过程与消息完整性认证等安全机制,以提高网络的安全性能。但是,目前该网络无法抵御路由攻击[50]与选择性干扰攻击[60],需要进一步增强安全性能。

6.2 未来发展方向

目前,IETF 6TiSCH 工业物联网还存在一些不足,未来要实际部署应用,还需要在以下几个方面进一步研究发展:

(1)网络同步。工业物联网节点大都比较廉价,通常采用低功耗的晶振作为时钟源。晶振计时容易受到工作环境影响(比如温度),从而使得网络中所有节点保持高精度同步比较困难。IETF 6TiSCH 网络的时间同步技术可以实现相邻节点之间相对时间同步,以满足时隙通信要求,但是无法达到全网节点时间同步。然而,工业物联网有时需要采集某个时刻所有传感器数据进行对比分析。因此,如何在资源受限的工业物联网中达到全网同步是一个重要的研究方向。

(2)资源调度。IETF 6TiSCH 网络中节点采用时间同步信道跳频的通信方式,如何选择时隙与信道是一个关键技术。资源调度算法主要用于网络时隙与信道资源的分配。由于集中式资源分配算法无法适应网络流量或拓扑变化,分布式资源调度算法成为了研究重点。目前,IETF 6TiSCH 工作组以及其他研究团队在分布式资源调度算法有一些初步成果,但是存在网络延时过大、开销大等问题,需要进一步研究低时延、低功耗资源调度算法。

(3)可信执行环境。由于IETF 6TiSCH 工业物联网主要应用于国家关键基础设施领域,网络安全将是其发展和应用过程中必须考虑的问题。可信执行环境是主处理器上的一个安全区域,它提供一个隔离的执行环境,可以保证安全网络协议中密钥安全存储、加解密算法和随机数生成安全执行。如何将可信安全技术应用于资源受限的IETF 6TiSCH 网络中,从而更好地保障工业物联网安全、可靠的运行也是一个重要的研究方向。

7 结束语

IETF 6TiSCH 工业物联网融合了IPv6 新技术与低功耗无线通信技术,不仅解决了海量的资源受限物联网节点无缝接入基于IP 的互联网的问题,而且解决了复杂工业环境下无线通信的可靠性和低功耗的难题。IETF 6TiSCH 作为一套开放、完整的工业物联网标准协议,可为未来工业互联网发展提供核心的技术支撑。本文首先介绍了IETF 6TiSCH 工业物联网发展历程及现状;其次根据物联网协议的体系结构自顶向下依次分析了应用层CoAP 协议、网络层IPv6 协议、链路层IEEE802.15.4e 协议以及物理层标准协议;然后深入分析了该工业物联网中三个关键技术,分别包括高精度时间同步技术、资源调度算法与安全技术;并对两种典型的实现平台进行了详细的剖析;最后对当前面临的挑战与未来发展方向进行了探讨。总之,希望通过本文系统梳理IETF 6TiSCH工业物联网的标准、关键技术与平台,可以为开展该领域的研究提供借鉴与启示。

猜你喜欢

时隙低功耗路由
基于阵列天线的数据时隙资源比例公平动态分配方案设计
复合材料结构的低功耗冲击区域监测方法
数据通信中路由策略的匹配模式
基于时分多址的网络时隙资源分配研究
OSPF外部路由引起的环路问题
核芯互联发布高性能ADC模数转换器
路由重分发时需要考虑的问题
Link—16中继时隙自适应调整分配技术研究
物联网产业离不开低功耗蓝牙通信技术
一种车载网络中基于簇的时隙碰撞解决方法