汪迅宝,刘 超 ,张 程,陈付龙 ,3
(1.安徽国际商务职业学院信息服务系,安徽合肥230000;2.网络与信息安全安徽省重点实验室,安徽芜湖241002;3.安徽师范大学计算机科学与技术系,安徽芜湖241002)
“物联网”(Internet of things,IoT)作为一种“物物相连的互联网”[1],其网络节点不再是单纯的网络设备,而是通过网络扩展到的任何物品。异构网络之间的互联互通是物联网首要解决的问题。在IoT环境中,不仅要求传感器节点能够将采集数据通过互联网发送至服务器,还要求互联网上服务器能够准确定位每一个传感器节点并向其传输控制指令,同时不应受到传感器节点网络环境变化的影响。传统的IoT中协议转换网关[2]仅考虑协议数据间的转换,当物联子网中的节点网络环境发生变化时,难以有效地实现数据通路。
IPv6作为下一代互联网核心技术,拥有庞大的地址空间,可满足部署大规模、高密度的传感器网络设备的需求,其在IoT中的应用成为必然[2]。2007年国际互联网工程任务组(The Internet Engineering Task Force,IETF)成立6LoWPAN工作组,专门研究适配层、路由、报头压缩、分片、IPv6网络接入和网络管理等技术[3]。欧盟第七框架计划也设立了IoT6[4],旨在探索用IPv6及相关标准(6LoWPAN等)解决物联网面临问题的途径。国内肖融等[5]提出一种IPv6轻量级树型层次转化模型(TFAD),进而给出IPv6层次结构地址压缩机制(IACH),利用层次结构中父子节点的IPv6地址继承关系,以保证IPv6数据包在转发过程中使用最为精简的地址形式。胡光武等[6]设计了基于IPv6的物联网末梢网络分布式源地址验证方案,以微小的代理实现了物联网节点IP地址的分配,同时保证物联子网节点之间、以及物联子网节点与互联网节点之间通信时双方IP地址的真实可靠性。然而在模型验证与实验验证方面,尚需要针对具体应用进行测试。
本文引入通信辅助网关,提出一种基于IPv6的IoT四层体系结构,即感知执行层、通信辅助层、网络传输层和应用服务层,并对感知执行层与通信辅助层工作机理及协议报文格式进行重点设计,利用Ptolemy II建模环境对新建IoT通信体系结构进行建模、仿真与验证。
传统的ZigBee/WiFi互转网关[7-10]仅考虑了两种通信协议之间的互转,若需要支持蓝牙、3G、4G等通信方式,则需要制定更多的互转协议,不利于IoT通信的扩展。因此,本文利用IPv6[11]作为中间协议,对上述互转网关进行改造。
图1为基于IPv6的物联网体系结构。该体系结构包括了感知执行层(由具有Zigbee通信功能的感知和执行节点组成)、通信辅助层(由具有协议互转功能的通信辅助网关组成)、网络传输层(由运行IPv6协议的设备组成的骨干网络)、应用服务层(提供高能性的计算与存储等应用服务)组成,其功能主要在于:为具有较强移动性的感知执行节点快速组网、身份识别;将感知执行节点数据传输至IPv6骨干网、以及从IPv6骨干网有效接收数据。其中,通信辅助网关为一个基于IPv6的互转网关,保证感知执行网络快速的建立,协助服务器对感知执行节点进行有效定位并实现感知执行网络与IPv6骨干网互连。
图1 基于IPv6的物联网体系结构Fig.1 Architecture of IoT based on IPv6
感知执行网络中,通信辅助网关充当类似于ZigBee网络中全功能集设备,网络由通信辅助网关建立,通信辅助网关上电后,选择一个信道,随后启动整个网络。同时,为实现节点快速组网,应考虑网络拓扑结构的选择、节点入网过程及帧结构的优化。
节点入网由节点主动向通信辅助网关发出申请,入网请求交互过程如图2。
1)新节点向通信辅助网关发送注册消息;
2)通信辅助网关接收注册消息后,向入网请求节点发送确认消息;
3)通信辅助网关向入网请求节点发送入网许可消息,并按地址的顺序递增方式为节点分配网络地址;
4)入网请求节点向通信辅助网关返回确认消息,节点入网完成。
图2 感知执行节点入网交互图Fig.2 Networking interaction diagram of sensing/execution node
由于协议体系差异,IPv6网络节点与感知执行节点无法直接进行数据传输。其通信障碍主要有:感知执行节点网络地址是局域性的,无法被IPv6网络唯一识别;感知执行网络与IPv6网络协议帧格式不同,且IPv6最大传输单元(MTU)最小值为1 280 B,而以IEEE 802.15.4为标准的感知执行网络协议帧长度规定不超过127 B,二者之间需进行协议转换和传输效率最优化设计。
图3所示为感知执行节点识别交互过程,其通信辅助网关实现了IPv6网络对于低功耗感知执行节点的识别。
图3 感知执行节点识别交互图Fig.3 Identification interaction diagram of sensing/execution node
感知执行节点识别主要实现过程如下。
1)通信辅助网关在建立感知执行网络的同时,通过执行IPv6无状态地址自动配置协议,生成EUI-64标识符,并结合IPv6路由器宣告的地址前缀,获取IPv6全球单播地址。
2)当感知执行网络有新节点请求入网时,通信辅助网关在接收节点注册消息的同时,获取注册消息中节点的MAC地址字段内容,并向IPv6网络中服务器发送绑定消息报文,进行通信辅助网关IPv6地址与节点MAC地址的绑定。
3)服务器接收绑定消息报文后,获取源地址字段内容(即通信辅助网关IPv6地址)和载荷字段数据(即感知执行节点MAC地址),并查找“通信辅助网关IPv6地址-节点MAC地址”映射表,若节点MAC地址字段存在相同数据,则进行对应的通信辅助网关IPv6地址更新,否则新增一条记录。映射表设计如表1。
表1 “通信辅助网关IPv6地址-节点MAC地址”映射表Tab.1 Mapping of“communication auxiliary gateway IPv6 address-node MAC address”
4)通信辅助网关向入网请求节点发送入网许可消息,分配网络地址,在收到入网请求节点确认消息后,通信辅助网关在自身的“节点MAC地址-节点网络地址”映射表中记录入网请求节点MAC地址与所分配的网络地址信息,映射表设计如表2。
在感知执行网络中,感知执行节点采集的信息数据封装为数据消息传送至通信辅助网关。通信辅助网关与IPv6网络的数据传输采用IPv6消息报文形式,并封装为依据IEEE 802.11标准规定的WiFi数据帧格式(或依据IEEE 802.3标准规定的Ethernet数据帧格式),随后传送至IPv6网关。
由于IPv6网络与感知执行网络协议体系不同,其传输帧格式、帧大小限制等存在差异,需进一步进行协议转换和适配。通信辅助网关协议转换模型如图4,其中缓存区用于存放“节点MAC地址-节点网络地址”映射表及其他所需的临时数据。感知执行网络接口、WiFi接口、Ethernet接口分别用于对感知执行网络中各类消息、WiFi帧、Ethernet帧的收发。模块A和B分别对异元网络环境下不同结构数据包逐层进行解包或封装操作。
依据通信辅助网关建立的数据通路模型如5。在感知执行节点完成入网及绑定操作前提条件下,实现数据双向传输。
表2 “节点MAC地址-节点网络地址”映射表Tab.2 Mapping of“node MAC address-node network address”
图4 通信辅助网关协议转换模型Fig.4 Protocol conversion model of communication auxiliary gateway
为了验证本文所提的基于IPv6的互转体系结构工作机制的可行性,利用Ptolemy II建模环境[12]对其进行建模仿真,其顶层模型如图6所示。感知执行网络中的节点通信通过SenseChannel信道完成,每个感知执行网络均存在一个通信辅助网关,通过WiFiChannel或Ethernet链路与IPv6网关完成连接,IPv6骨干网中设备以有线以太网方式连接,整个模型的运行时间、顺序等属性受到Wireless Director组件的控制。
图5 数据通路模型Fig.5 Data path model
理想情况下,感知执行节点按泊松分布函数,以平均时间0.1 s产生数据消息报文,经过通信辅助网关及IPv6网络传输至服务器,为便于观察,提取所传输数据报文中的应用层数据,如图7所示。可以看出,由感知执行节点采集的数据在经过一定的网络延时(包括通信辅助网关延时、路由器延时)后,服务器基本能够正常接收来自感知执行节点的传输数据。进一步在具有一定丢包率的信道中进行数据传输测试,发现存在个别数据的丢失,如感知执行节点发送的第1个、第2个数据,但大部分数据均能够被正常接收(图8),表明所设计的ZigBee/WiFi互转网关可以实现传感器网络中数据向IPv6网络中节点的有效传输。
图6 基于Ptolemy II的IoT通信体系结构模型Fig.6 IoT architecture model based on Ptolemy II
图7 理想情况数据上行传输情况Fig.7 Data uplink transmission in the ideal case
下行传输由服务器发起,服务器按泊松分布函数以平均时间0.1 s产生数据消息报文,理想情况下的下行传输结果如图9所示,服务器可准确地对指定的感知执行节点传输数据。在存在丢包率的信道中,存在数据丢失情况,如图10,且由于网络拥塞,感知执行节点接收部分数据的延时大于正常网络延时,如在6.2 s时刻由服务器发送的数据,直到7.1 s时刻才被感知执行节点接收。尽管存在网络延时、拥塞、数据丢失等情况,但最终仍有较多数据能够被感知执行节点正常接收,从而验证了下行传输数据通路的可用性。经过上行传输数据通路与下行传输数据通路的验证,可以得以下结论:在通信辅助网关的协助下,IPv6网络节点与感知执行节点可以有效进行数据传输,从而实现异构网络之间的互联互通。
图8 存在丢包率的信道中数据上行传输情况Fig.8 Data uplink transmission with a certain packet loss rate
图10 存在丢包率的信道中数据下行传输情况Fig.10 Data downlink transmission with a certain packet loss rate
构建异元网络需要解决不同协议传输转换问题,选取ZigBee无线传输模式和WiFi无线传输模式进行融合,突破了异元网络传输障碍。另外,IPv6在IoT中的应用是大势所趋,基于IPv6的IoT四层体系结构有效实现了数据的双向传输。
需要指出的是,基于IPv6的互转网关通信体系结构还有很多关键问题需要进一步研究,当感知执行网络中节点数量足够庞大时,通信辅助网关和服务器中的映射表如何进行高效的存储与检索,下行传输过程中IPv6消息报文的分片与重组问题[13],面向IoT的IPv6网络路由机制等问题将是下一步研究工作重点。