摘要:针对大规模无线传感器网络(WSN)流量随访问者数量增加而上升的问题,设计并实现了一种适用于构建大型WSN网络并降低系统流量的应用系统框架。系统采用第六版互联网协议(IPv6)和低功耗无线个域网的IPv6技术(6LoWPAN)搭建大规模WSN网络,使用消息队列遥测传输(MQTT)协议和针对WSN设计的消息队列遥测传输(MQTTSN)协议在应用层搭建了连接WSN网络和传统互联网的发布/订阅结构。实验结果显示,当系统中存在5个传感器节点时,与受限应用协议(CoAP)构建的WSN应用系统相比,提出的系统框架的数据流量仅为前者的18%左右。这表明该系统框架可有效地控制访问者增加对WSN网络流量造成的影响。
关键词:物联网;无线传感器网;发布/订阅消息系统;消息队列遥测传输协议;IPv6
中图分类号:TP393.09
文献标志码:A
Abstract:Aiming at the problem that the data traffic rises with the increase of data visitors in largescale Wireless Sensor Networks (WSN), a data traffic optimization WSN system framework was designed and implemented to build largescale WSN and reduce the network data traffic. The IPv6 and IPv6 over Low Power Wireless Personal Area Network (6LoWPAN) technology were adopted to build largescale WSN. To integrate the WSN and traditional Internet, the Message Queuing Telemetry Transport (MQTT) and Message Queuing Telemetry Transport for Sensor Network (MQTTSN) protocols were deployed in application layer to build system publish/subscribe model. The experimental results show that, when system has 5 sensor nodes, compared with the Constrained Application Protocol (CoAP) based WSN system, the data traffic of the proposed system is 18% of the former. It proves that the proposed system framework can effectively control the impact caused by increasing visitors to WSN data traffic.
英文关键词Key words:Internet of Things (IoT); Wireless Sensor Network (WSN); publish/subscribe messaging system; Message Queuing Telemetry Transport (MQTT) protocol; IPv6
0 引言
无线传感器网络(Wireless Sensor Network, WSN)是物联网重要的组成部分之一,在地质灾害检测、气象环境监控等方面都有广泛的应用[1-2]。WSN网络通常由数量庞大的节点组成,这些节点运算、通信通讯能力较弱且使用电池供电,当电池耗尽时停止工作。因此,如何降低WSN能耗是影响网络使用寿命的重要问题。此外,WSN相对于传统互联网属于异构网络,如何将WSN系统无缝融入传统互联网也是影响系统可用性的重要问题。
文献协议作为应用层协议。以上两种方案使用的MQTTSN协议更符合WSN网络特点,可有效降低WSN的流量,但方案中使用的ZigBee网络与GPRS技术与传统互联网的IP网络融合时存在转换等问题。
在研究上述工作优劣的基础上,本文提出一种基于IPv6网络并使用发布/订阅交互模型的WSN应用系统框架。系统框架使用IPv6协议与基于低功耗无线个域网的IPv6(IPv6 over Low Power Wireless Personal Area Network, 6LoWPAN)技术协议构建系统的发布/订阅结构。MQTT是移动互联网中广泛使用的消息发布/订阅协议,MQTTSN协议可使WSN节点以很低的通信通讯代价接入MQTT系统。另外,框架定义了系统的组成结构与编程接口,仅需在编程接口上实现业务逻辑即可构建完整的应用系统。这使得开发者可专注于WSN系统的功能开发而非系统架构,且开发的产品易于移植与二次开发。
1 整体架构设计
1.1 架构层次设计
目前,众多WSN应用系统专用性较强,不易针对其他应用环境进行移植,也不易与其他系统进行融合。本文框架设计中,注重系统的兼容性与可拓展性,系统可后向兼容旧的WSN网络,并易于拓展新功能。此外,框架进行模块化的分层,易于移植。系统框架的网络层次如图1所示。
该系统可抽象为4个层次的网络模型:
1)感知层:感知层由众多WSN节点组成,可分为传感器与执行器节点。节点部署于待监控的环境中,并具备通信通讯功能。系统兼容多种类型的物理链路,节点可使用电气和电子工程师协会(IEEE)制定的IEEE 802.15.4标准通信通讯,也可通过蓝牙等方式通信通讯。
2)网络层:WSN网络层通信通讯协议以IPv6为主,兼容其他异构网络协议。
使用IPv6作为主要协议的原因为:第一,IPv6与现有互联网的融合性好,转换代价小;第二,易于搭建大规模WSN网络;第三,符合业界技术发展方向,例如ZigBee联盟已经推出了ZigBee IP规范。网络层兼容其他网络协议,可使系统兼容旧的异构系统。例如建筑物中基于485总线的烟雾报警系统已有成熟的工业标准并大规模部署。后向兼容旧系统能大幅降低新系统的部署成本。
网关作为WSN到传统互联网的出口,负责实现网络协议的转换。对基于IP的WSN而言,网关完成数据的转发;对于非IP的网络,网关还需实现异构网络的协议转换。
3)汇聚层:WSN网络数据通过网关到达汇聚层的服务器中,服务器将WSN网络抽象成一个网络资源,对应用层提供了统一的访问接口。
4)应用层:应用程序实现了系统的业务逻辑。程序可以根据汇聚层提供的访问接口来操作WSN网络。应用程序可以是个人智能设备、科研数据库或自动化控制系统等。
系统框架中分层的设计可为系统提供良好的移植性与拓展性。系统框架中的网络层与汇聚层相对稳定不需要修改,通过修改应用层的程序和增加感知层的节点功能,就能满足不同系统的需求。
1.2 交互模型选择
传统WSN应用系统中比较常用的交互模型有两种:第一种是如图2(a)所示的请求响应模型,节点在收到访问请求后回复数据;第二种是如图2(b)所示的推送模型,节点在检测到某个事件后向访问者发送数据,常见的事件类型包括定时器超时和采样数据超过阈值等。
然而,在WSN中使用请求响应模型存在两个较大的缺点:1)通信通讯代价高,访问者需要先向节点发送数据请求;2)有资源发现的消耗,访问者在发起数据请求前需要获取节点的网络地址与数据类型。推送模型的缺点有:节点需存储访问者的地址等信息,并对每个访问者逐一发送数据。这对节点的存储和运算性能都提出了较高的要求。当数据访问者众多时,节点需重复发送相同的数据,通信通讯代价很高。
本系统选择发布/订阅模型来避免以上缺点,其工作逻辑如图3所示。该模型中存在3个角色:订阅者、服务器、发布者。订阅者向服务器登记自己需要的消息类型;发布者向服务器发送某种消息类型的数据;服务器使用消息类型来匹配订阅者与发布者,再将发布者的数据推送给对应的订阅者。
该模型中,WSN的数据访问者可作为模型中的订阅者,传感器节点可作为数据发布者。对于数据访问者而言,它们只和服务器通信通讯,不需要知道节点的信息,也不需要和节点直接通信通讯以进行资源发现;对节点而言,它们仅需将新数据发送给服务器,无需存储访问者的信息和数量,由服务器完成对访问者们的数据推送。这种方式极大地降低了节点的存储和通信通讯代价。
2 系统交互模型设计
2.1 通信通讯协议选择
系统部署时,新系统往往需要满足兼容或融入现有系统的需求。互联网中使用比较广泛的发布/订阅协议有由互联网工程任务组(Internet Engineering Task Force, IETF)已完成标准化工作的可扩展消息处理现场协议(Extensible Messaging and Presence Protocol, XMPP)[10]、国际商业机器公司(International Business Machines Corporation, IBM公司设计的MQTT协议等。这类协议主要针对智能手机、PC等设备设计,并不符合WSN的特点。不过,IBM在推出了MQTT协议后,又专门针对WSN网络设计了MQTTSN协议。MQTTSN针对WSN的特点优化了协议的运行开销,使WSN节点能接入已部署的MQTT系统。
考虑到WSN节点资源受限的特点以及与现有系统的融合需求,本文框架使用MQTT协议和MQTTSN协议来搭建系统的交互结构。以MQTT协议搭建系统发布订阅结构的核心,用MQTTSN使节点以较低的消耗接入MQTT核心系统。将MQTT、MQTTSN协议应用在系统框架之后,系统的软件结构如图4所示。
MQTT协议中有客户端和服务器两个部分。互联网中的应用程序通过MQTT客户端协议接入MQTT服务器。运行MQTTSN协议的WSN节点通过具备跨协议转换功能的MQTTSN网关接入现有的MQTT服务器。由于MQTT协议在传统互联网中已经有成熟开源的服务器程序和协议库,本系统中软件部分的设计与实现工作主要集中在MQTTSN协议上。
2.2 协议工作流程与机制
MQTTSN协议的工作流程如图5所示:第1步,节点通过连接网关操作和网关交换了初始化连接的相关参数;第2步,节点向网关协商将要使用的消息类型标识,即消息主题(topic);第3步,节点可以开始向网关以“消息类型+消息内容+服务质量(Quality of Service, QoS)”的方式发布采集到的传感器数据;第4步,节点可以向网关订阅自己可执行的命令消息;第5步,如果网关接收到服务器推送来的订阅消息则发布给已订阅消息的节点;第6步,节点可使用断开命令来结束和网关的连接。
MQTTSN的重要机制,主要包括以下3点:
1)重传机制:由于节点通信通讯能力弱且网络链路质量差的特点,协议自身设计了可靠传输机制,而底层仅依赖于无连接的网络。节点向网关发送命令后,使用重传计时器等待网关的回复命令,若超时未收到回复则再次发送;当重传次数超过阈值时认为已和网关断开连接,重新开始网关连接的过程。
2)QoS机制:节点可用4种QoS级别发布消息,以满足不同类型消息的质量需求。级别0:发送方仅发送一次消息;级别1:发送方将等待接收方的确认消息,若超时则重发;级别2:在级别1的基础上,使用消息标识(Message ID)确保接收方不会接收到重复的消息;级别-1:该级别允许性能极其精简的节点越过连接网关的过程,直接向网关发布消息。
3)网络异常控制:节点在注册过程中指定保持活动时间值(Keep Alive Timer)。节点需在该时间周期内向网关发送PINGREQ命令以表明处于正常运行状态,网关则回复PINGRESP命令以向节点表明自身处于正常工作状态。“WILL消息”是节点设置的“异常报警”消息,在节点入网阶段可选择向网关设置;若网关发现节点超时未回复PINGREQ命令,视其WILL消息设置情况,决定是否发布该节点离线的警报消息。若节点连续多次未收到网关的回复消息,可重新寻找其他可用网关。
2.3 MQTTSN客户端程序框架设计
根据2.2节对MQTTSN运行过程的分析,WSN节点运行MQTTSN客户端程序的过程可以用图6所示的状态转换图来表示。节点首先向网关申请连接,并交换必要的工作参数;在连接成功之后,根据程序运行逻辑开始发布消息或订阅数据;节点在空闲时可进入睡眠状态。
因此,节点工作流程可分为5个步骤:网络初始化;连接MQTTSN网关程序;协商使用的主题ID(topic ID);执行程序逻辑;适时休眠或断开连接。系统模块设计中,主要包括:数据的封包解包模块、消息重传定时器和对应于MQTTSN逻辑的应用程序编程接口设计。
2.4 MQTTSN网关程序设计
MQTTSN网关需要完成MQTTSN协议到MQTT协议的转换,是实现MQTTSN协议的核心部分。以下从3个方面介绍程序:
1)网关程序结构:MQTTSN网关运行结构如图7所示,程序初始化相应模块后分三个部分运行。其中,MQTT库线程负责网关程序与MQTT服务器的通信通讯;端口监听线程负责接收解析WSN网络数据包并调用节点命令处理模块;节点状态更新定时器用于更新接入节点的状态变化。
2)节点信息存储与状态转换:由于MQTTSN协议的运行存在状态的转换,节点命令处理模块必须依赖于节点的状态信息与状态转换结构。网关逻辑中节点的状态转换图与图6中节点的状态转换图相类似。另外,程序使用节点状态表和消息主题转换表来存储节点状态。节点状态表存有网关上所有节点的状态信息。每个节点的状态信息包括节点标识、网络地址、保持活动时间周期、运行状态等。由于MQTTSN与MQTT分别使用主题标识(topic ID)和主题名(topic name)来标识消息内容,程序使用消息主题转换表来实现跨协议时二者的转换。
3)节点命令处理:网关对节点命令的处理过程如图8所示。首先,网关的端口监听线程接收到节点数据后,将数据传给拆封包模块处理成具体的命令;然后,节点命令处理模块读取节点状态表和消息主题转换表后,以状态转换表为规则处理节点命令。诸如主题注册、PINGREG等MQTTSN内部命令将在这一步处理,如消息发布等命令将交由MQTT库线程处理后回复节点。
3 系统框架实现
3.1 各模块实现
MQTTSN与MQTT协议运行时,系统中存在4种类型的设备:WSN节点、WSN网关、服务器和一般客户主机,分别对应协议中4种角色:MQTTSN客户端、MQTTSN网关、MQTT服务器和MQTT客户端,其结构如图9所示。
下面分别介绍各个角色的实现方案。
1)节点:如图10所示,系统使用STM32W为核心的实验板作为节点的硬件平台,该芯片支持IEEE802.15.4标准的无线射频功能。使用Contiki作为操作系统,Contiki是一个采用C语言开发的小型嵌入式操作系统,包含多任务核心、IP等网络协议栈,仅占少量内存。在以上环境下,本文实现了上节所设计的MQTTSN客户端程序框架与测试程序。
2)网关:如图11所示,系统使用IPX435为核心的实验板作为WSN网关的硬件平台,并为该实验板移植了OpenWrt操作系统。OpenWrt具备多数家用路由器的功能,并提供嵌入式Linux程序的运行环境。本文使用C++语言实现了上节设计的MQTTSN网关程序,并移植入OpenWrt系统中。实验板通过USB接口连接WSN边界节点,并通过Linux系统的虚拟网卡功能实现了与WSN网络的连接。其中,与网关直接连接的WSN边界节点作为RPL路由根节点,是WSN网络的出口。
3)服务器与客户主机:服务器使用ActiveMQ[14]作为MQTT服务器程序。ActiveMQ是软件基金会Apache推出的性能优越的开源消息推送与集成服务器,其支持众多消息协议包括MQTT协议[14]。客户端主机使用Eclipse基金会下的开源项目Paho[15]的Java库作为智能手机与计算机端MQTT客户端库。根据该库设计的客户端应用程序如图12所示。
3.2 系统硬件部署结构
系统硬件部署结构如图13所示:WSN节点在网内通过RPL路由协议构建多跳网络;WSN网关位于WSN网络和传统网络之间,作为WSN内RPL路由的根节点;服务器与客户端位于传统互联网。
4 系统测试与分析
通过两组实验对系统框架的流量控制性能进行测试与验证。实验分别使用本文设计的系统框架和CoAP协议,在相同环境下搭建功能相同的WSN应用系统,再通过对两个系统的流量比较来验证本系统框架在流量控制方面的性能。实验从以下3个方面进行设计:
1)系统工作逻辑:实验系统中,节点程序使用“”字段作为光敏传感数据的资源标识,以“light:1000”字符串作为光敏数据的内容。系统的采样周期为10s。
2)实验环境:实验中使用Contiki开发工具中的虚拟机Cooja来模拟WSN环境中的Contiki节点,如图14所示。Cooja可运行单片机的程序文件,通过虚拟网卡接入宿主机网络,并可监控虚拟网络的流量。虚拟网络中设置一节点为网关节点,所有传感器节点与网关节点都为一跳的距离。通过虚拟机工具监控网关节点的流量作为判断网络流量变化的依据,在宿主机系统中使用抓包软件WireShark进行辅助分析。
3)系统搭建:本文框架设计的测试系统,使用第3章实现的MQTTSN节点程序和MQTT编程库实现测试系统的工作逻辑,并在宿主机中运行第3章设计的MQTTSN网关程序和MQTT服务器。在CoAP协议构建的测试系统中,通过对Contiki提供的CoAP例程的修改得到节点程序,并借助开源CoAP库libcoap[16]的编程实现了数据访问端程序。
第一组实验:设置WSN中仅有1个节点,控制数据访问者的数量变化,观察以上两种系统的数据流量变化,观察周期为30min。以下分析中将上述两种测试系统简称为MQTTSN系统与CoAP系统。
如图15所示,当系统仅有一个数据访问者时,CoAP系统的流量约是MQTTSN系统的两倍。这是由于CoAP协议中,客户端通过“请求”和“响应”两步通讯获取数据;而MQTTSN协议中,节点仅进行一次“发布”的过程。当系统访问者数量上升时,CoAP系统流量随访问者数量呈线性增长,而MQTT系统基本保持不变。这是由于CoAP协议中节点需独立处理每个访问请求,访问者增加导致节点需向更多的访问者发送数据;而MQTTSN协议中由服务器负责将新数据推送至访问者,节点仅向服务器发送数据,故其流量不受访问者数量的影响。
第二组实验:设置WSN存在5个节点,互联网中数据访问者的数量为3个。系统运行180min,观察两种系统流量随时间的变化。
如图16所示,两系统流量均随时间线性增长,MQTTSN系统的流量仅为CoAP系统的18%左右。
5 结语
本文针对大型WSN网络流量随访问者数量增加而大幅上升的问题,设计并实现了一种使用IPv6构建大规模WSN网络,使用发布/订阅模型优化数据流量的物联网应用系统框架。该系统框架的优势主要集中在两方面,首先使用IPv6构建的WSN网络可拓展性很好,它不依赖于一个中心节点也不存在诸如ZigBee网络中协调器的性能对网络规模的限制,且IPv6网络易于融入传统互联网。因此,本系统框架适用于大型的WSN网络搭建。另外,本系统使用的发布/订阅模型相对于传统的请求/响应模型能有效解决WSN数据流量随访问者增加而上升的问题,可有效地降低系统的数据流量。
参考文献:
// Proceedings of the 2013 27th International Conference on Advanced Information Networking and Applications Workshops. Piscataway: IEEE Press,2013:1277-1282.
// Proceedings of the 2011 IEEE 8th International Conference on Mobile Ad Hoc and Sensor Systems. Piscataway: IEEE Press,2011: 855-860.
[4]SHELBY Z, HARTKE K, BORMANN C, et al. RFC 7252, the Constrained Application Protocol (CoAP) [S]. Geneva: IETF, 2014.
. Energy Procedia, 2014, 50: 270-276.
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。