陈远龙 孙知信
摘 要:异构网络互联互通技术是物联网关键技术之一,主要是为了将有线网络与无线网络技术有效的集成,实现透明的无缝连接,IP网络架构因其可扩展性、通用性、具备成熟的基础设施等优势成为当前物联网异构网互通合的研究热点。本文提出了将6lowpan技术应用于异构网络,从而设计出一套基于轻量级IPv6技术的跨网络互联互通系统。系统可实现6lowpan节点通过一个运行6lowpan协议和标准ip协议的网关与一台运行标准ip协议的远程PC机进行通信。
关键词:IPv6;物联网;6lowpan ;轻量级
The analysis and design of interconnectivity prototype system
base on light weight IPv6
CHEN Yuan-long1,SUN Zhi-xin2(1.School of Computer.Nanjing University of Posts & Telecommunications,Nanjing 210003;2.School of Internet of things;Nanjing University of Posts & Telecommunications,Nanjing 210003)
Abstract:Heterogeneous network interconnection is one of the key technologies of Internet of Things(IOT), to achieve effective integration and seamless connection between wired network and wireless network .Because of its scalability, commonality and mature infrastructure, IP structure becomes the hot spot of the heterogeneous network integration research. This paper uses 6lowpan technologies to design a set of internetwork system.In this system,we can see that a 6lowpan node can communicates with a remote PC which runs ip protocol by a gateway who runs both 6lowpan and ip protocol.
Key words:IPv6;Internet of Things;6lowpan;lightweight
1 引言
物联网是以互联网为核心,各通信节点一般以嵌入式设备、嵌入式系统构成。通过各种比较先进的信息传感设备按规定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。为了实现真实通信节点的广泛互联,在传统网络基础设施的基礎上实现新兴无线传感网络的异构融合是当前物联网的一个研究热点。
本文主要研究并实现一种基于轻量级IPv6的互联互通原型系统,通过该原型系统可以实现无线传感网接入到传统IP网络,实现异构网络的互联互通,这也是实现真正意义的物联网最重要的目标,即“物物相连”。
2 轻量级IPv6技术研究现状
轻量级的IPv6技术一方面体现在支持低功耗无线传输的6LoWPAN适配协议,另一方面体现在轻量级的TCP/IP协议栈及其承载系统。
2.1 6LoWPAN研究现状
IEEE802.15.4[1]是一组低功耗低速率短距离无线传输协议,作为Zigbee WirelessHART,MiWi与6LoWPAN等协议的基础,描述了低速率无线个人局域网的物理层和媒体接入控制协议。基于Zigbee协议[2]的应用已经遍布于工业控制、智能测绘、医疗、家居等各行各业,但Zigbee协议栈的独立性与非开源性质增加了其与传统IP网络及其节点的交互的难度。
6LoWPAN协议主要实现了在IEEE802.15.4网络中运行简化了的IPv6协议,通过在链路层与IP层间添加适配层实现首部压缩与数据包的分片重装,很好的实现了IPv6网络与低功耗无线网络之间的协议适配。目前,IETF 6LoWPAN工作组已经形成的三个标准文档,提出了低功耗网络中运行IPv6协议的假设、问题和目标[3],制定了6LoWPAN的功能以及报文格式[4],以及基于context的IPHC报文压缩方法[5]。此外继续对简化的IPv6 Neighbor Discovery协议[6],应用场景和路由需求等几个关键的技术规范公开标准草案。
大多数针对6LoWPAN相关协议进行了分析与相应的改进,包括首部压缩技术[7,8]、邻居发现协议与路由协议[9]。其中,文献[7]对比分析了两种IPv6首部压缩方式HC1与IPHC方式,后者更为全面,文献[8]在此基础上设计了一套TCP首部压缩的方法。此外,文献[10]专门针对6LoWPAN协议设计了一套测试方法与系统以自动完成一致性检测,文献[22]参考物联网应用模型,提出了一种基于6LoWPAN的物联网应用平台网络架构。
2.2 轻量级协议栈及其系统
6LoWPAN及其相关协议均需承载于一个完整的网络协议栈,一个典型的6LoWPAN协议栈一般包含以下几个基本元素[11]:无线射频驱动、链路层协议、集成6LoWPAN适配功能的的IPv6协议、UDP、ICMPv6、邻居发现协议以及一个类套接字的协议栈API接口,除此之外,还可能包含一个或多个路由协议、TCP或者各种集成的应用层协议。嵌入式的6LoWPAN协议栈通常只要15-20Kb的flash空间,目前应用较为广泛的开源操作系统分别为携带BLIP的TinyOS系统[2,5]以及携带uIPv6的contiki操作系统[12]。
3 互联互通系统设计
整个系统形态包含四个主要实体:6lowpan传感节点,6lowpan控制器,物联网网关以及PC。
6lowpan传感节点采用基于contiki系统的嵌入式单板,实现改进的contiki协议栈,通过网关完成与标准IPv6主机之间的互联互通;6LoWPAN控制器在试验阶段采用嵌入式单板,主要完成IEEE802.15.4的MAC和PHY层的功能,通过USB接口接入网关;物联网网关由6LoWPAN控制器与一台植入6LoWPAN处理逻辑的Linux网关构成;PC即为一般的个人计算机。
PC和6LoWPAN传感节点可以通过物联网网关进行交互,整体系统架构如下图1所示:
3.1 6LoWPAN传感节点
6LoWPAN传感节点功能包括如下逻辑:
⑴根据从网关获取的信息生成GUA地址,并向6LBR注册自己;
⑵响应标准的IPv6的ping命令;
⑶实现一个定时机制,定时将温度值封装成6LoWPAN数据包,发送给指定IPv6地址的服务器;
⑷响应外部传过来的“读温度值”6LoWPAN数据报文,并将当前温度值作为回应返回源IPv6地址。
3.2 6LoWPAN控制器
本系统结构中6lowpan控制器同样基于嵌入式单板,作为网关的一个“6lowpan无线网卡”,在其微处理器中直接实现IEEE Std 802.15.4?-2006对802.15.4MAC层和PHY层功能、格式的定义,并驱动cc2420完成与802.15.4网络的数据收、发,通过USB串口驱动模块与网关实现6lowpan数据包及其地址属性的双向传输。
3.3 物联网网关
本项目网关中采用标准linux系统,通过6lowpan驱动与USB 串口驱动实现网关中标准TCP/IP协议栈与6LoWPAN控制器中的802.15.4MAC層的对接。物联网网关最主要的目的是整合6LoWPAN功能,完成6LoWPAN域的组网,并与标准IPv6网络中设备互联互通,即具备6LBR功能。其实现的相关功能要遵循如下规范的定义:
⑴RFC4944对6LoWPAN功能、格式的定义;
⑵draft-ietf-6lowpan-nd-18对6LoWPAN,邻居发现功能、格式的定义;
⑶RFC6282中对报文头压缩功能、格式的定义;
3.4 远程PC
远程PC在标准IPv6环境中通过6LoWPAN物联网网关与传感节点交互,用于验证互联互通。包括如下应用功能:
⑴接收6LoWPAN物联网网关传上来的传感器注册信息,维护传感器信息表;
⑵给指定的IPv6地址(传感器)发送读温度指令;
⑶接收传感器主动发来的信息包,并根据信息包中的温度值更新传感器信息;
本PC以及其他PC能ping传感器的IPv6地址,并能收到正确回包。
4 关键技术分析
4.1 6lowpan协议
6lowpan协议介于IPv6层与IEEE802.15.4之间,由RFC4944定义。分别在传感节点以及网关上实现,主要通过对IPv6以及UDP首部的编码压缩和数据包的分片重装实现数据包大小适配功能。
4.2 6lowpan在linux中的实现
将6lowpan协议的处理逻辑直接放在网关中的控制器驱动程序中实现,当该无线收发器接收链路层数据后直接在该驱动程序的内部对数据进行处理,经过移植在驱动程序里的6lowpan协议逻辑处理后将得到ipv6数据,驱动程序再将该ipv6数据交与Linux系统中TCP/IP协议栈的协议处理函数进行进一步的处理。
4.3 6lowpan邻居发现在linux中的实现
早期的Linux内核让L3(网络层)协议直接调用邻居协议提供的函数,因此ipv4子系统直接与ARP程序互相作用。在新版本的内核中,开发商分析了不同的协议的共同要求,并将其抽象为一个新层,称作邻居基础结构。
图2给出了Linux邻居子系统的主要部分和内核中与其交互的其他部分。L3协议与邻居层的交互通过一个通用接口,它根据请求地址映射的L3协议来使用正确的邻居协议(ARP、ND)。
实现方案是对内核中提供的通用邻居接口的实现函数进行修改,在发送ICPMv6的数据包时添加新的选项,用于发送定制于6lowpan的邻居发现协议数据包。
需要添加的选项:ABRO(授权边界路由选项),6CO(context信息选项),ARO(地址注册选项)。
需要添加的处理机制:context的管理与分发,同时维护context信息表;收到节点发来的携带ARO选项的NS消息时,将节点地址加入邻居缓存表中并回复NA消息。
5 结束语
物联网的广泛互联与融合已成为未来发展的必然趋势,在基础性网络构建的公共通信平台之上,实现各种异构网络共性的融合与个性的协同,是当前亟需研究与解决的问题。本文分析设计的基于轻量级IPv6的互联互通原型系统完成6lowpan传感节点、物联网网关与局域网内或外网IPv6主机的基本交互机制,通过将6lowpan协议移植到网关嵌入式linux系统中实现6lowpan节点与IPv6主机的通信,为低功耗无线传感网络与传统IPv6网络的真正融合奠定基础。
[参考文献]
[1]Standard 802.15.4-2006: Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks (LR-WPANs).IEEE,October 2006.
[2]ZigBee Specification Version 1.0.ZigBee Alliance,December 2004.
[3]Kushalnagar N,Montenegro G,Schumacher C.IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs):Overview, Assumptions,Problem Statement,and Goals.IETF RFC4919,August 2007.
[4]Montenegro G,Kushalnagar N,Hui J,etal.Transmission of IPv6 Packets over IEEE 802.15.4 Networks.IETF RFC4944,September 2007.
[5]Hui J,Thubert P.Compression Format for IPv6 Datagrams over IEEE 802.15.4-Based Networks.IETF RFC 6282,September 2011.
[6]Shelby Z,Chakrabarti S,Nordmark E.Neighbor Discovery Optimization for Low Power and Lossy Networks.IETF RFC6775, November 2012.
[7]劉佳,陈家福.6LoWPAN报头压缩算法的研究[A].2010年中国通信国际会议,2010-10-01.
[8]马哲,黄小红,马严.6LoWPAN网络中基于HTTP协议的TCP首部压缩方法[J].广西大学学报(自然科学版),2011,(S1):222-227.
[9]安彦超.基于6LoWPAN的邻居发现和路由设计与实现[D].吉林大学, 2011.
[10]陈小红.6LoWPAN协议栈一致性测试系统研究与实现[D].华东师范大学,2007.
[11]Shelby Z,Bormann C.6LoWPAN: The Wireless Embedded Internet.John Wiley & Sons Ltd,2009.
[12]Vlado H,Jan-Hinrich H,Cory S,etal.TinyOS 2.x TEP2:Hardware Abstraction Architecture [EB/OL].http://www.TinyOS.net/TinyOS-2.x/doc/html/tep2.html.