书城计算机网络下一代互联网
7380800000022

第22章 下一代互联网与物联网(2)

9.3 物联网的体系结构

可以预见,物联网的广泛应用将彻底改变人们的工作方式、生活方式及行为模式等。然而,当前物联网的发展正遭遇严峻的技术瓶颈:一方面,以IPv4协议为核心技术的互联网体系自身正面临着严峻的考验,如IP地址枯竭、安全机制不足、移动性欠缺等;另一方面,物联网作为互联网的网络延伸,其端到端通信需求、感知层等外围网络带来的额外安全需求及以无线为主的通信方式,都进一步加重了当前互联网体系的负担,因此有必要设计融合物联网的下一代互联网体系结构,应对物联网的引入对当前互联网体系提出的挑战。对比当前互联网体系,以IPv6为标志的下一代互联网体系具有地址空间大、传输速率更快、更安全可靠、服务质量更高、无线通信方便等特点,这为设计融合物联网的下一代互联网体系结构提供了技术基础。

当前研究物联网和下一代互联网的组织很多,也已经提出了多种应用架构,但由于只针对某种特定场景设计,这些体系欠缺对于互联网的继承性和对于不同场景的兼容性。在参考IETF和IEEE等工作组现有工作的基础上,提出了一种融合物联网的下一代互联网体系结构,该体系结构具有兼容性、自适应性、简单性和高效性等特点。总体上,该体系的底层是由各种物体联网组成的异构的低功耗松散末梢网络,末梢网络通过网关接入以IPv6为核心的互联网;在层次上,末梢网络与互联网具有相似的体系,都具有五层结构(物理层、链路层、网络层、传输层及应用层),只是对各层做了少量的改动。

本节首先通过分析物联网的特性及其与互联网差异,提出物联网发展面临的难点与挑战,然后通过全面分析物联网体系结构的架构原则,结合当前应用,提出物联网应用场景的通用模型,并针对该模型提出一种融合物联网的下一代互联网体系结构。

9.3.1 物联网的特性

物联网虽然是在互联网的基础上提出的,但二者在很多层面上都存在较大的差异。通过对物联网和传统互联网的分析比较,总结出二者的主要差异如下。

(1)从网络体系结构来看,物联网由主干网、末梢网络和二者之间的物联网网关构成,主干网是互联网,末梢网络是终端设备(节点)连网组成的异构的低功耗松散网络,因此可以说物联网涵盖了互联网。末梢网络节点作为信息源感知信息,信息通过末梢网络传递给互联网。

(2)从应用角度来看,物联网一般是为专门功能部署的信息采集、分析和智能处理系统,而互联网则是一个互联的资源共享的综合应用服务平台。物联网不仅提供了各种终端设备的连接,其本身也具有智能处理的能力,能够对物体实施智能控制。物联网将终端设备和智能处理相结合,利用云计算、模式识别等各种智能技术,扩充其应用领域。

(3)从终端设备形态来看,物联网设备多种多样,但通常体积较小、无人看管、定期休眠、内存小、带宽低、功能受限、能量供应受限。而互联网设备一般具备较大的内存和带宽,可以持续供电,对能耗没有特殊限制,功能也较为齐全。

(4)从设备操作系统来看,由于物联网节点硬件资源受限,因此其操作系统一般比较简单(如TinyOS[21]、Contiki[22]等),内存和带宽占用少,能量消耗小,功能较为单一。而传统互联网操作系统则比较复杂,内存和带宽占用较多,几乎不用考虑能量消耗问题,功能也很完备。

(5)从路由形式来看,由于物联网节点具有休眠的特性,因此物联网网络的拓扑结构和路由会进行动态变化,通常要求路由协议具有自适应性。相比物联网节点,传统互联网终端节点通常路由变化较小。

综上,物联网与传统互联网之间存在诸多差异,这些差异导致物联网节点和末梢网络不能直接支持采用多数互联网的传统协议和技术,这给融合物联网的下一代互联网体系结构的设计工作带来了较大挑战。但物联网起源于互联网,二者在体系结构上存在着某些共性,如节点都需要身份标识(物联网节点较常用的是设备ID,互联网采用的是IP地址),都需要一定的路由方案(物联网节点采用简单的路由结构,如RPL协议,互联网有较为复杂的路由结构,如OSPF、BGP等)。这些共性说明当前互联网使用的多数策略、方案与技术都对新体系结构的设计工作具有重要的参考和借鉴意义。

9.3.2 物联网发展面临的难点

物联网的出现对当前互联网体系带来了极大的挑战,当前研究机构提出的解决方案通常只针对特殊应用场景,并没有一个明确的清晰通用体系结构,这大大制约着当前物联网自身的发展。下面首先分析物联网所独有的特点:

(1)物联网的末梢网络节点能力受限、通信方式以无线为主,这些特点导致物联网节点和末梢网络无法直接支持多数当前互联网的协议和技术,需要为其设计新的通信体系;

(2)由于欠缺通用性和全局性的考虑,各个研究组织提出的应用模型与相关技术通常只适用于其特有的应用场景,这些应用场景的感知方式、底层接入技术、信息存储和传输、智能处理手段不尽相同,导致其形态各异,难以实现整个体系内部节点之间的端到端通信;

(3)实现全局端到端通信的一个前提是为每个通信节点分配不同的IP地址,物联网的日益推广导致海量节点向互联网提出了海量地址需求,然而当前在用的IPv4体系自身的IP地址已经枯竭;

(4)当前互联网体系缺乏必要的安全防御手段及对多种无线接入通信方式的支持。综上,由于没有一个明确的物联网通用体系结构,当前物联网的发展不仅影响了互联网的功能与性能,更日益严重地制约着其自身发展,因此非常有必要对物联网体系结构进行设计,使其具有兼容性、自适应性、简单性和高效性等特点。

9.3.3 物联网体系结构设计原则

物联网有别于互联网,互联网的主要目的是构建一个全球性的计算机通信网络,而物联网则主要从应用出发,利用互联网、无线通信网络资源进行业务信息的传送,是互联网、移动通信网应用的延伸,是自动化控制、遥控遥测及信息应用技术的综合展现。当物联网概念与短距离通信、信息采集与网络技术、用户终端设备结合后,其价值才将逐步得到展现。因此,设计物联网体系结构时应该遵循以下几条原则。

(1)多样性原则:物联网体系结构需根据物联网的服务类型、节点的不同,分别设计多种类型的体系结构,没有必要建立统一的标准体系。

(2)时空性原则:物联网尚在发展之中,其体系结构应能满足在物联网的时间、空间和能源方面的需求。

(3)互联性原则:物联网体系结构需要平滑地与互联网实现互联互通;如果试图完全重新设计一套互联通信协议及其描述语言将是不现实的。

(4)扩展性原则:对于物联网体系结构的架构,应该具有一定的扩展性设计,以便最大限度地利用现有网络通信基础设施,保护已有投资。

(5)安全性原则:物物互联之后,物联网的安全性将比计算机互联网的安全性更为重要,因此物联网的体系结构应能够防御大范围的网络攻击。

(6)健壮性原则:物联网体系结构应具备相当好的健壮性和可靠性。

9.3.4 物联网参考模型

针对9.3.3节所述的难点,提出了的物联网应用参考模型,该模型底层是由各种物体联网组成的异构的低功耗松散末梢网络,其通信方式和网络接口各异,其网络体系与IPv6体系类似,并通过不同类型网关接入作为骨干网络的互联网。

该模型选择以IPv6为标志的下一代互联网作为物联网的骨干网络,主要出于以下几点考虑:

(1)IPv6将地址空间扩充到了128位,为节点预留了足够的地址空间,可为节点分配IPv6地址,以保证节点间端到端通信;

(2)IPv6具有的邻居发现、安全防御等机制,可降低部署难度并提升物联网网络安全[23];

(3)引入IPv6可更好地支持多种无线通信方式;

(4)引入IP机制可使物联网与互联网具有类似的结构,对于两者向互相兼容的方向发展具有重要意义。

另外,由于当前IPv4互联网向以IPv6为代表的下一代互联网过渡需要一个过程,因此该模型设计了IPv4/IPv6过渡模式。

以该模型为基础设计的融合物联网的下一代互联网体系结构具有诸多优点。

(1)融合的体系结构可以忽略底层接入设备的差异。接入设备千变万化,而对应设备上运行的系统也多种多样,不可能为每个新增加的设备设计一种对应的体系结构。

(2)这种体系结构可以打破不同设备间相互通信的障碍。对于不同的设备上运行的不同系统,由于其体系结构的差异,互相通信的信息格式不尽相同,造成了不同设备间通信的障碍,而采用两者融合的体系结构,规定统一的信息格式,制定统一的通信标准,这些障碍将不复存在。

(3)该体系结构可以提高通信效率。当不同设备都具有统一的结构时,设备间通信就不再需要复杂的转换机制,有效提高了通信效率。

9.3.5 物联网体系结构

根据物联网的服务类型和节点等情况,本小节给出一个由感知层、网络层和应用层组成的三层物联网体系结构。

(1)感知层。感知层的主要功能是信息感知与采集,主要包括二维码标签和识读器、RFID标签和读写器、各种传感器、视频摄像头等。传感器主要包括温度传感器、声音传感器、振动传感器、压力感应器等,完成物联网应用的数据采集和设备控制任务。

(2)网络层。网络层包括各种通信网络形成的承载网络。承载网络主要是现行的通信网络,如2G网络、3G网络、4G网络或企业网等局域网络,完成物联网接入层与应用层之间的信息通信。

(3)应用层。应用层由各种应用服务器组成(包括数据库服务器),主要功能包括对采集数据的汇聚、转换、分析,以及用户层呈现的适配和事件触发等。对于信息采集,由于从末梢节点获取了大量原始数据,且这些原始数据对于用户来说只有经过转换、筛选、分析处理后才有实际价值;这些有实际价值内容的应用服务器将根据用户的呈现设备不同完成信息呈现的适配,并根据用户的设置触发相关的通告信息。同时当需要完成对末梢节点控制时,应用层还能完成控制指令生成和指令下发控制。

应用层要为用户提供物联网应用接口,包括用户设备(如PC、手机)、客户端等。除此之外,应用层还包括物联网管理中心、信息中心等利用网络的能力对海量信息进行智能处理的云计算功能。

9.3.6 融合物联网的下一代互联网体系结构与协议栈

当前全球拟制定的物联网相关标准很多,2000年12月IEEE标准委员会成立了802.15.4工作组,目标是开发一个低速率的WPAN(LR_PAN)[24]标准。2004年11月IETF成立了6LoWPAN(IPv6 over Low power WPAN)工作组[25],目标是制定基于IPv6的以IEEE 802.15.4为底层标准的低速无线个域网标准[26][27][28]。2008年2月IETF成立了ROLL(Routing Over Low-Power and Lossy Networks)工作组[29],目标是使得公共的、可互操作的第3层路由能够穿越任何数量的基本链路层协议和物理媒体[30][31]。2010年3月IETF成立了CoRE(Constrained Restful Environments)工作组[32],目标是研究资源受限物体的应用层协议(Constrained Application Protocol, CoAP)[33]。2011年3月IETF成立了LWIP(Light-weight IP)工作组[34],目标是在小设备中实现轻量级IP协议栈[35]。

为实现模型,在IETF提出的体系结构基础上,集成IETF工作组和802.15.4工作组的研究成果,提出一种新的融合物联网的下一代互联网体系结构的协议栈层次。这种结构在层次上与原来的互联网体系结构相似,都具有五层(物理层、链路层、网络层、传输层及应用层),但各层都有少量改动。具体协议分层。

物联网节点通过物联网网关接入互联网;物联网的物理层和链路层采用IEEE 802.15.4标准;网络层使用IPv6协议,IETF的ROLL工作组提出用于解决低功耗损耗网络的路由问题的RPL协议及用于兼容IEEE 802.15.4和IPv6的6LoWPAN,6LoWPAN仅作为网络层的一个可选功能,如果是普通网络的终端,不使用适配层;如果是物联网节点,则使用适配层。传输层根据网络需求,自适应选择加载完整TCP/UDP协议或采用简化的TCP/UDP协议,以适应物联网传输的要求。应用层使用IETF的CoRE工作组提出的用于解决资源受限环境中的应用程序问题的CoAP协议。而物联网网关是装有物联网协议栈和互联网协议栈的双协议栈网关,能够将物联网协议数据和互联网协议数据进行双向转换。物联网节点这样的五层协议栈结构和互联网形成了统一的体系结构。

在上面的体系结构中,物联网节点在使用6LoWPAN适配层的情况下,数据的封装和解封装在网络层要经过特殊处理。以数据的封装为例,报文在传输过程中的变化情况。

在报文传输到网络层以前,报文的格式与传统互联网是一致的。数据首先经过应用层的封装,再经过传输层的分组,变成传输层报文,送往网络层;当报文进入网络层后,与传统的处理方式不同的是,先给传输层报文加上包括源、目的主机IP地址的IP报头,再对此报文进行报头的压缩和分片,形成若干个由选择报头(首两位为01的一个8位的报头)和特殊形式的压缩报头及载荷组成的IP数据包,进入链路层。链路层在其MAC帧的数据部分装上此IP数据包,再加上源、目的主机的MAC地址和帧头,行成MAC数据帧。MAC数据帧到达物理层,转换成二进制数据流发往传输介质中,根据其目的MAC数据地址,送往目的主机或IP路由器。

在目的主机一侧,执行相反的过程,对数据进行解封装。

9.3.7 小结

本小节从多个角度分析了物联网及互联网各自的特性及差异,提出物联网发展面临的难点,而这同时也是机遇和挑战;然后在参考IETF和IEEE等工作组现有工作的基础上,结合当前应用,提出物联网应用场景的通用模型,并针对该模型提出一种融合物联网的下一代互联网体系结构,该体系结构具有兼容性、自适应性、简单性和高效性等特点。

9.4 物联网典型协议

根据9.3节介绍的物联网协议层次,物联网典型的协议栈包括ZigBee/802.15.4、6LoWPAN适配层、ROLL、精简TCP/UDP、CoRE。本节自下而上对其进行简要介绍。

9.4.1 802.15.4

IEEE标准委员会在2000年12月份正式批准并成立了802.15.4(LR-WPAN, Low-Rate Wireless Personal Area Network)工作组,任务是开发一个低速率的无线个域网(WPAN)标准,它具有复杂度低、成本极少、功耗很小的特点,能在低成本的设备之间进行低数据率的传输。IEEE 802.15.4主要定义物理层(PHY)和媒体访问控制层(MAC)的协议,其余协议主要参照和采用现有的标准,主要应用场合是自动化读表、自动化控制和传感器网络。2003年,IEEE推出了IEEE 802.15.4-2003标准,这一标准构成了ZigBee协议和众多无线传感器网络的基础。IEEE 802.15.4-2006标准也于2006年9月份正式发布。

IEEE 802.15任务组TG1:制定IEEE 802.15.1标准[36](蓝牙无线个人区域网络标准);中等速率、近距离的WPAN网络标准。TG2:制定IEEE 802.15.2标准[37],研究IEEE 802.15.1与IEEE 802.11(无线局域网标准)的共存问题。TG3:制定IEEE 802.15.3标准[38],研究高传输速率WPAN标准。TG4:制定IEEE 802.15.4标准[24],研究低速WPAN标准。

IEEE 802.15.4标准的特征:20kbps、40kbps、100kbps、250kbps四种不同的传输速率;支持星形和点到点两种拓扑结构;在网络中采取两种地址方式:16位地址和64位地址。其中16位地址是由协调器分配的,64位地址是全球唯一的扩展地址;采用带冲突避免的载波侦听多路访问(Carrier Sense Multiple Access with Collision Avoidance, CSMA-CA)的信道访问机制;支持ACK机制以保证可靠传输;低功耗机制,信道能量检测,链路质量指示。

1.IEEE 802.15.4网络的物理特性

IEEE 802.15.4定义了两个物理层标准,分别是2.4GHz物理层和868/915MHz物理层。两个物理层都基于直接序列扩频(DSSS),使用相同的物理层数据包格式,区别在于工作频率、调制技术、扩频码片长度和传输速率。2.4GHz频段为全球统一的无须申请的ISM频段,有助于低功耗无线设备的推广和生产成本的降低。2.4GHz频段有16个信道,能够提供250kbps的传输速率;868MHz是欧洲的ISM频段,915MHz是美国的ISM频段,这两个频段的引入避免了2.4GHz附近各种无线通信设备的相互干扰。868MHz频段只有一个信道,传输速率为20kbps;915MHz频段有10个信道,传输速率为40kbps。由于这两个频段上无线信号传播损耗较小,因此可以降低对接收机灵敏度的要求,获得较远的有效通信距离,从而可以用较少的设备覆盖给定的区域。2.4GHz频段物理层采用的是O-QPSK调制,868/915 MHz频段采用BPSK调制。另外,MAC层采用CSMA-CA机制,同时为需要固定带宽的通信业务预留了专用时隙(GTS),避免了发送数据时的竞争和冲突。这些都能有效地提高传输的可靠性。IEEE 802.15.4网络构成。

一个符合IEEE 802.15.4标准的系统由多个部件组成,其中最基本的就是常见的终端或终端节点设备。IEEE 802.15.4有两种类型的设备:简化功能设备(Reduced Function Device, RFD)和全功能设备(Full Function Device, FFD)。多个在同一信道上的设备组成一个WPAN,其中,一个WPAN需要至少一个FFD来充当PAN Coordinator的角色。Coordinator指一个经过特别配置的FFD(典型的情况是一个簇状网络的簇首节点),该设备通过定期发送信标帧——Beacon,来向其他终端设备提供同步服务。如果该Coordinator是一个PAN内的主控制器,该Coordinator就被称为PAN Coordinator。与常见局域网中的服务不同,IEEE 802.15.4支持两种拓扑:单跳星形拓扑或多跳对等拓扑,星形拓扑由一个充当中央控制器的PAN Coordinator和一系列的FFD和RFD组成。网络中的设备可以使用唯一的64位长地址也可以使用PAN Coordinator分配的16位短地址。在这种拓扑中,除了PAN Coordinator以外的设备大部分都由电池供电,且只与PAN Coordinator通信,星形拓扑实现较为简单,可以最大限度地节省FFD和RFD的能量消耗。P2P拓扑(也称对等拓扑或者点对点拓扑),也需要一个PAN Coordinator,但与星形拓扑不同的是,对等拓扑中的每个设备均可与在其范围内的其他设备进行通信。对等拓扑允许实现更复杂的网络构成,如树形拓扑、网状拓扑等。同时,在网络层支持的情况下,对等拓扑还可以实现设备间的多跳路由。

2.IEEE 802.15.4网络的工作模式

IEEE 802.15.4网络可以工作在两种不同的模式下:信标使能(Beacon-enabled)模式和无信标使能(Nonbeacon-enabled)模式。在信标使能模式中,Coordinator定期广播信标,以达到相关设备实现同步及其他目的。在无信标使能模式中,Coordinator不采用定期广播信标的方式,而是在设备主动向它请求信标时再向它单播信标。

在IEEE 802.15.4中,有三种不同的数据传输流:从设备到Coordinator;从Coordinator到设备;在对等网络中从一方到另一方。为了实现低功耗,又把数据传输分为以下三种方式。

(1)直接数据传输:适用于以上所有三种数据转移。采用非时隙CSMA-CA(多路载波侦听-冲突避免)还是时隙CSMA-CA的数据传输方式,要视使用模式是Beacon-enabled模式还是Nonbeacon-enabled模式而定。

(2)间接数据传输:仅适用于从Coordinator到设备的数据传输。在这种方式中,数据帧由Coordinator保存在事务处理队列中,等待相应的设备来提取。通过检查来自Coordinator的信标帧,设备就能发现在事务处理队列中是否挂有一个属于它的数据分组。在确定有属于自己的数据时,设备使用非时隙CSMA-CA或时隙CSMA-CA来进行数据传输。

(3)有保证时隙(GTS)数据传输:适用于设备与其Coordinator之间的数据传输。在GTS传输中不需要CSMA-CA。

低功耗是IEEE 802.15.4最重要的特点。IEEE 802.15.4在数据传输过程中引入了多种延长设备电池寿命或节省功率的机制。多数机制是基于Beacon-enabled模式的,主要是限制设备或Coordinator的收发器的开通时间,或者在无数据传输时使它们处于休眠状态。

安全性是IEEE 802.15.4考虑的另一个重要问题。为了提供灵活性并支持简单器件,802.15.4在数据传输中提供了三种安全模式。第一种是无安全性方式,这是考虑到某些安全性并不重要或上层已经提供了安全保护的应用。当处于第二种安全模式时,设备可以使用访问控制列表(ACL)来防止外来节点非法获取数据,在这一级不采取加密措施。第三种安全模式则在数据传输中使用高级加密标准(AES)[39]来进行对称加密保护。

IEEE 802.15.4的主要特点总结如下。

(1)允许传输的报文长度较短。MAC层允许的最大报文长度为127字节,除去MAC头部25字节后,仅剩下102字节的MAC数据。如果在MAC加入安全机制,则另外需要最大21字节的安全相关字段,因此提供给上层的报文长度将仅剩下81字节。

(2)支持两种地址。长度为64bit的标准EUI-64长MAC地址及长度仅为16bit的短MAC地址,可以视协议实现选用两种地址。

(3)低带宽。802.15.4协议在不同的工作频率下提供不同的数据速率:250kbps(2.4GHz)、40kbps(915MHz)、20kbps(868MHz)。

(4)网络拓扑简单,支持星形网络、树形网络及网状网络,可以在拓扑中进行多跳路由的操作。

(5)低耗电量。一般运行802.15.4的节点都要求使用低功耗的硬件设备,使用电池供电。

(6)低开销。通常无线节点上都会附着某些传感器(如温度传感器、湿度传感器等),而控制这类传感器所采用的微控制单元通常都是低速率的,内存空间也相当有限。

(7)网络内部署的节点数量较大。根据具体的应用需求,一般地,无线传感器网络都会部署大量的传感器节点,以达到数据采集的目的。

(8)无法预知传感器节点的物理位置。通常情况,传感器节点是通过随机布撒的方式进行部署,而且某些部署的地方是人类难以触及的。同时,节点也有一定的移动性,但是其对移动性的要求并没有IEEE 802.11协议所要求的那么高。

(9)为了达到省电的目的,节点通常具有休眠模式,绝大部分时候处于休眠模式,并通过一定方式来与其他节点同步。

9.4.2 ZigBee[40]

ZigBee是一种新兴的短距离、低复杂度、低功耗、低数据传输速率、低成本的无线网络技术,依据IEEE 802.15.4标准。由于IEEE 802.15.4标准并没有为网络层和应用层等高层通信协议建立标准,为了保证采用IEEE 802.15.4标准的设备间的互操作性,必须对这些高层协议的行为进行规定。ZigBee联盟的任务就是开发这些规范。ZigBee联盟是一个由芯片制造商、OEM厂商、服务提供商即无线传感器市场的客户组成的工业联盟,联盟中的大部分成员都曾经参加过IEEE 802.15.4标准的开发。除了制定上层规范外,联盟还负责基于IEEE 802.15.4的产品的市场开发及兼容性管理,这与WiFi联盟同IEEE 802.11 WLAN标准之间的关系类似。

ZigBee网络规范的第一版于2004年上半年完成,它支持星形网络拓扑和点对点的网络拓扑结构,并提出了第一个应用原型;其第二版于2006年年底推出,它进一步支持现在在工业领域应用非常广泛的网状网络,对第一版进行了全方位的改进和提高,在低功耗、高可靠性等方面有了全面进步。随着无线传感器网络应用领域的不断发展,ZigBee联盟也在不断改进,推出支持新功能的协议栈和应用原型。ZigBee联盟也已将IPv6 over ZigBee列入了开发进程中。

9.4.3 6LoWPAN

IETF于2004年11月正式成立6LoWPAN(IPv6 over Low-Power Wireless Personal Area Networks)工作组[25],制订基于IPv6的低速无线个域网标准,旨在将IPv6引入以IEEE 802.15.4为底层标准的无线个域网中。目前已制定出关于综述和协议适配的标准草案RFC 4944和RFC 4919,提出了一些关于报头压缩、邻居发现、安全、移动性管理等方面的草案。同ZigBee技术一样,6LoWPAN技术也采用IEEE 802.15.4规定的物理层和MAC层,不同之处在于6LoWPAN技术在网络层上使用IETF规定的IPv6,采用IPv6协议栈,6LoWPAN协议栈参考模型:

将IPv6与IEEE 802.15.4结合能够较好地满足LoWPAN的许多需求:IPv6的巨大地址空间能够满足LoWPAN网络的地址需求;IPv6的一些新技术(如邻居发现、无状态的地址自动配置等技术)使构建IPv6环境下LoWPAN网络要相对容易一些;在LoWPAN网络数据包长度受限的情况下,可以选择用IPv6地址直接包含IEEE 802.15.4 MAC地址等,将IPv6与LoWPAN结合,那么LoWPAN与Internet互联就能轻松实现[41][42]。然而,IEEE 802.15.4的网络特性使得IPv6不能直接构建于IEEE 802.15.4网络上,在实现IPv6 over IEEE 802.15.4时将会面对一系列问题,主要包括以下方面[43]。

(1)IP的连通性:IPv6巨大的地址空间和无状态地址自动配置技术使数量巨大的传感器节点可以方便地接入包括Internet在内的各种网络。但是,由于有报文长度和节点能量等方面的限制,标准的IPv6报文传输和地址前缀通告无法直接用于IEEE 802.15.4网络。

(2)网络拓扑:IPv6 over IEEE 802.15.4网络需要支持星形和网状拓扑。当使用网状拓扑时,报文可能需要在多跳网络中进行路由,这与Ad-Hoc网络在功能上是相同的。但是,同样是由于报文长度和节点能量的限制,IEEE 802.15.4网络的路由协议应该更简单,管理的消耗也应该更少。此外,还需要考虑节点计算能力和存储的限制。

(3)报文长度限制:IEEE 802.15.4物理层支持的最大帧长度是127字节,而IPv6的报头就占据了40字节,再加上MAC层报头,安全报头、传输层报头的长度,实际能够给应用层使用的报文长度变得非常小。IPv6协议(RFC2460)中规定的MTU值最小是1280字节。如果链路层支持的MTU小于此值,则链路层需要自己负责分片和重组。这样,一方面需要IEEE 802.15.4网络的应用尽量发送小的报文以避免分片,另一方面也需要节点在链路层对超负荷的IPv6报文进行分片和重组。

(4)组播限制:IPv6特别是其邻居发现协议的许多功能均依赖于IP组播。然而IEEE 802.15.4仅提供有限的广播支持,无论在星形还是网状拓扑中,这种广播均不能保证所有的节点都能收到封装在其中的IPv6组播报文。

(5)有限的配置和管理:在IEEE 802.15.4网络中,设备布置在各种各样的环境中,而这些设备仅拥有有限的显示和输入功能。因此,IEEE 802.15.4网络所使用的协议应该只需要最少量配置且易于初始化。

(6)安全性:IEEE 802.15.4提供基于AES的链路层安全支持,然而,该标准并没有定义诸如初始化、密钥管理及上层安全性之类的任何细节。此外,一个完整的安全方案还需要考虑不同应用的需求,这都是6LoWPAN所需要解决的。

为了解决IPv6 over IEEE 802.15.4所面临的问题,6LoWPAN协议工作组针对上述问题提出了要实现的目标:降低报文消耗、带宽消耗、处理需求及能量消耗,主要解决思路如下[27]。

(1)分片与重组:为了解决IPv6最小MTU为1280字节与IEEE 802.15.4 Payload长度仅有81字节冲突的问题,6LoWPAN需要对IPv6报文进行链路层的分片和重组,这也是RFC 2460中所规定的。

(2)报头压缩:在使用IEEE 802.15.4安全机制时,IP报文只有81字节的空间,而IPv6头部需要40字节,传输层的UDP和TCP头部分别为8字节和20字节,只留给上层数据33字节或21字节。如果不对这些报头进行压缩,6LoWPAN数据传输的效率将非常低。

(3)地址自动配置:RFC 2462中定义的无状态地址自动配置机制对6LoWPAN非常有吸引力。但实现该机制需要6LoWPAN提供从IEEE 802.15.4的EUI-64地址获得接口标识(Interface Identifier)的方法。

(4)组播支持:IEEE 802.15.4不支持组播也不提供可靠的广播,6LoWPAN需要提供额外的机制以支持IPv6在这方面的需要。

(5)Mesh路由:一个支持多跳的Mesh路由协议是必要的,但现有的一些无线网络路由协议(如AODV等)并不能很好地适应LoWPAN的特殊情况。此外,减小路由协议开销及避免报文超过IEEE 802.15.4最大帧长也是必须考虑的问题。

(6)安全:应该被考虑到不同层次的安全威胁,6LoWPAN需要提供将设备加入安全网络的解决方案。

6LoWPAN工作组为IEEE 802.15.4设计了一个适配层,把IPv6数据包适配到IEEE 802.15.4规定的物理层和链路层之上,支持报文分片和重组,同时6LoWPAN规定了IPv6报头的无状态压缩方法,减小IPv6协议带来的负荷。

1.分片重组

IEEE 802.15.4 MAC帧由以下几部分组成。

(1)MAC头部(MHR):包括控制字段、帧序列号及地址信息。

(2)MAC负载:主要指MAC层以上的上层协议的内容,如6LoWPAN的适配层、ZigBee的网络层等。

(3)MAC尾部(MFR):通常为校验码。

IEEE 802.15.4 MAC帧结构。

MAC层帧格式中控制部分(包括MHR和MFR)的最大长度为25字节,最小长度为5字节,这主要是由于地址信息字段中目的PAN标识符和源PAN标识符(PAN_ID)可以选择使用,另外,目的地址和源地址可以选用16位短地址或64位长地址,同时也可以不使用源地址和目的地址,从而造成控制头部变长。MAC层服务数据单元(MSDU)的最小长度为102字节(最大报文长度为127字节,除去MAC层控制部分的25字节),上层协议(如6LoWPAN)的适配层或ZigBee的网络层数据包含在MSDU中。

为了使IPv6报文能够在IEEE 802.15.4网络上传输,在MAC层之上和IP层之间加入了适配层,因此相应地在报文格式上也应做了一定的修改,必须在MAC层帧头部之后加入适配层帧头部。

为了减小报文长度,适配层帧头部分为两种格式,即不分片格式与分片格式,分别用于负载大于MAC层MTU(102字节)的报文及负载小于MAC层MTU的报文。当IPv6报文要在IEEE 802.15.4链路上传输时,IPv6报文必须封装在这两种格式的适配层报文中,即IPv6报文作为适配层的负载紧跟在适配层帧头部后面。特别地,如果“M”或“B”位被置为1,适配层帧头部后面将首先出现Mesh Delivery字段或Broadcast字段,IPv6报文则位于这两个字段之后。如果要将这两种情况的帧格式统一成一种格式,则需要更大的报文头部开销,因此,为了最大限度地减少报文头部的开销,在草案中分别定义了两种适配层报头。

1)不分片报文格式

不分片报文格式。

(1)LF:长度为2位,链路分片(Link Fragment),报文不分片时此处应为0。

(2)prot_type:长度为8位,指出紧随在头部后的报文类型。特别地,1表示为IPv6,2表示为HC1头部压缩编码字段,3表示路由错误报文(如果有)。

(3)M:1位,指出头部后是否存在“Mesh Delivery”字段,1表示存在。

(4)B:1位,指出头部后是否存在“Broadcast”字段,1表示存在。

(5)rsv:4位,保留字段,应该全部设置为0。

2)分片报文格式

为了便于之后的报文接收处理,将分片的第一片与后续分片进行区分处理。

(1)LF:链路分片状态,其中“00”表示不分片;“01”表示第一片;“10”表示最后一片;“11”表示中间分片。

(2)prot_type:报文类型,只在第一个链路分片中出现。

(3)M:如果需要在多跳拓扑中路由,每个分片中都应该包含该字段。

(4)B:如果是广播帧,每个分片中都应该包含该字段。

(5)datagram_size:11位,负载报文的总长度。该字段支持的最大负载报文长度为2048字节,可以满足在IEEE 802.15.4中传输IPv6报文1280字节MTU的要求。另外,在每个分片中都需要携带该字段,这样做的目的是使目的节点能在收到任何一个分片后(因为目的节点不一定首先收到第一个分片)确定重组后报文的大小而做其他必要的处理,如预先分配缓冲区或直接丢弃超过本节点能处理最大字节数的报文。

(6)fragment_offset:8位,报文分片偏移,只出现在第二个及后继分片中,该字段以8字节为单位,因此分片报文的Payload必须以8字节边界对齐。

(7)datagram_tag:9位,分片标识,同一负载报文的所有分片的datagram_tag应该相同。每个节点需要维护一个变量来记录该tag值,在节点初始化时将该值初始化为一个随机值,每发送一个完整的帧(不是一个分片)该值加1,当该值达到511时,向后翻转为0。

2.报文压缩

6LoWPAN报头压缩的主要原理是通过压缩编码省略掉报头中的冗余信息。

(1)版本号Version(4位):在运行IPv6协议的网络中,此项可以省略。

(2)流类型Traffic class(8位):可以通过压缩编码压缩。

(3)流标识Flow label(20位):可以通过压缩编码压缩。

(4)载荷长度Payload Length(16位):可以省略,IP头长度可以通过MAC头中的载荷长度字段计算出来。

(5)Next Header(8位):可以通过压缩编码压缩,假设下一个头是UDP、ICMP、TCP或扩展头的某一种。

(6)Hop Limit(8位):唯一不能够进行压缩的信息。

(7)Source Address(128位):可以压缩,省略前缀。

(8)Destination Address(128位):可以压缩,省略前缀。

IPv6和IEEE 802.15.4的协调。IEEE 802.15.4帧不能封装完整的IPv6数据包。因此,要协调二者之间的关系,就要在网络层与MAC层之间引入适配层,用来完成分片和重组的功能。

地址配置和地址管理。IPv6支持无状态地址自动配置,相对于有状态地址自动配置来说,配置所需开销比较小,这正适合低速率无线个域网(LR-WPAN)设备的特点。同时,由于LR-WPAN设备可能大量、密集地分布在人员比较难以到达的地方,实现无状态地址自动配置就更加重要。

6LoWPAN技术的主要思想是在IPv6网络层和MAC层之间加入一个适配层,以提供对IPv6必要的支持。6LoWPAN工作组之所以极力推崇在IEEE 802.15.4上使用IPv6技术,是因为IPv6技术相对于ZigBee、IEEE 1451等其他技术而言,具有如下优势。

(1)普适性。IP网络应用广泛,深入人心,作为下一代互联网核心技术的IPv6,也在加速其普及的步伐,在LR-WPAN网络中使用IPv6更易于被接受。IP网络协议栈架构受到了广泛认可,LR-WPAN网络完全可以基于此架构进行简单、有效的开发。

(2)开放性。LR-WPAN使用IPv6技术,使其更易于接入其他基于IP技术的网络,包括基于IPv6的下一代互联网,使其可以充分利用IP网络的技术进行发展。IP协议是开放性协议,不牵扯复杂的产权问题,这是6LoWPAN技术相对于ZigBee技术的优势。目前基于IPv6的许多技术已比较成熟,并被广泛接受,针对LR-WPAN的特性对这些技术进行适当的精简和取舍,简化了协议开发的过程。

(3)地址空间与地址自动配置。IPv6应用于LR-WPAN最大的亮点就是庞大的地址空间,这恰恰满足了部署大规模、高密度LR-WPAN网络设备的需要。IPv6中当节点启动时,可以自动读取MAC地址,并根据相关规则配置好所需IPv6地址。这个特性对LR-WPAN网络来说非常有吸引力,因为在大多数情况下,不可能对LR-WPAN节点配置用户界面,节点必须具备自动配置功能。

为了对IPv6报头进行无状态压缩,6LoWPAN工作组制定了两种压缩算法:LOWPAN_HC1(RFC 4944)和LOWPAN_IPHC(draft-ietf-6LoWPAN-hc-06)。其中,LOWPAN_HC1算法用于使用本地链路地址(Link-local Address)的网络,节点的IPv6地址前缀固定(FE80:/10),IID可以由MAC层的地址计算而来,但是这种算法不能有效压缩全局的可路由地址和广播地址,因此不能用于LoWPAN网络与互联网互访的应用。LOWPAN_IPHC算法的提出主要是为了有效压缩可路由的地址,目前LOWPAN_IPHC算法正在IETF 6LoWPAN工作组进行最后的修订。

LOWPAN_HC1算法和LOWPAN_IPHC算法在MAC报头之后定义了一个8位的选择报头,此选择报头的取值决定了压缩报头的具体格式和算法,详细信息。例如,如果前8位的取值是01000001,那么表示接下来是LOWPAN_HC1算法对应的压缩报头,如果前3位的取值是011,那么表示接下来的是LOWPAN_IPHC算法对应的压缩报头。

在选择报头后紧跟的是压缩编码,压缩编码由一些指示位组成,指示位的不同取值表明了IPv6报头压缩的不同方法。具体参见RFC 4944。

除了IPv6无状态报头压缩的方法之外,6LoWPAN工作组还制定了一系列相关标准,包括支持网状路由的方法,简化的IPv6邻居发现协议、应用场景和路由需求等几个关键的技术规范。6LoWPAN工作组是IETF物联网感知层工作的发源地,其中的很多研究和探索直接影响了另外几个工作组的成立和方向,下面将分别介绍。