APP下载

消息队列遥测传输协议(MQTT)技术分析

2021-11-22严彦欢

电子技术与软件工程 2021年12期
关键词:传输层终端设备灯光

严彦欢

(上海领路人照明工程有限公司 上海市 201101)

消息队列遥测传输协议,简称MQTT协议,是一种新型物联网传输协议,与请求/应答(request/response)这种同步模式不同的是,MQTT协议将传统的请求/应答方进行了解耦,消息的发送方(生产者)和接收方(订阅者)无需进行直连通信,而是由MQTT的代理方(broker)在中间进行消息的转发。broker的主要职责是接受发布者发布的所有消息,并将其过滤后分发给不同的消息订阅者。这样的传输方式非常适合一些复杂的物联网应用场景。本文就MQTT相关技术及其应用进行初步探讨和研究。

1 项目简介

1.1 项目背景和意义

现如今,物联网应用已经深入到现代生活的方方面面。从日常生活中的哈罗单车,互联网汽车再到智慧家居以及工业自动化等领域,各种不同类型的设备都在全球范围内实现了数字连接和信息共享。我国在物联网行业起步虽晚,但是发展速度却很惊人。

笔者所属公司位于上海市松江漕河泾高新技术开发区,公司拥有专利50余项,拥有城市及道路照明一级资质、照明工程设计专项甲级,“双甲”资质,是国内领先的智慧城市与文旅夜游灯光设计施工的高新技术企业。近年来,在5G商用、新基建、智慧城市等国家战略的推动下,公司以景观照明为基础,以智慧路灯为切入点,在亮化工程、智慧社区、智慧停车场等多个领域展开技术开发和应用推广,聚集了在智慧城市建设中承接重大项目的优势资源和成功经验。公司将依托优秀的人才团队、强大的运作实力及完善的服务保障,致力于为客户提供高标准解决方案,打造高效、和谐、人文的智慧城市,与合作伙伴携手共同创造智慧生活,成为优秀的合伙人。

在这样的大环境下,我司坚持从传统照明亮化工程,向物联网亮化灯光行业转型,坚持两条腿走路,开拓新的更广阔的市场空间。力争在物联网亮化灯光领域先人一步,抢占先机,发挥自身传统照明行业领导者的优势基础上,再上新的台阶。公司短期将把资源向智慧研发部门倾斜,以传统亮化灯光项目为依托,在此基础上定制开发一套基于互联网思维的云智慧管控平台。通过此平台以期达到能够同时控制灯光行业的强电和弱电设备,并借助于先进的消息队列遥测传输协议等技术,实现远程精准控制亮化灯光设备。同时,着力突破物联网与传统亮化灯光相结合产生的各种潜在的风险点,比如:如何避免黑客恶意入侵灯光控制系统,播放违规的亮化灯光节目;如何保证远距离传输指令时,播放指令不被恶意窃取并篡改;如何避免操作人员误操作导致重要的节目数据丢失等风险。

1.2 项目概述

《探路者智慧城市云平台》项目正是在这样的背景下提出并立项的,主要目标是为了在与物联网密切相关的“亮化文旅行业”抢占先机,利用笔者所属公司在亮化行业的先导地位,将传统照明灯控和亮化行业的各类设施,与云中心远程对接,旨在构建一套基于物联网思维下的智慧城市云平台。

2 平台简介

十四五规划纲要中多次提到“物联网”,重点发展的领域有:推动传感器、高精度定位等技术创新、培育车联网、医疗物联网和智能家居物联网产业[1]。

笔者所属公司为了积极响应国家政策,成立了智慧研发部门,聚合了物联网行业内高端人才,重金投入打造《探路者智慧城市云平台》系统,为企业指明了发展方向,以传统灯光照明行业为依托,全面引入物联网思维,将传统灯光照明以及楼宇亮化工程,通过与物联网思维的整合,催生出智慧研发板块。既在传统灯光照明行业做大做强,成为行业领跑者。同时,发展自身的物联网平台,将传统的灯光照明系统中用到的各种硬件设备,接入到云平台,通过统一的控制中心,做到中心端进行决策,向终端设备下发指令。同时,所有的被管对象应在接到指令的第一时间进行响应,保证指令响应及时并将执行的结果反馈给中心端。所有对接物联终端设备应纳入中心端统一进行管理,由云平台远程发送开关指令进行强电控制,并支持对亮化主体灯光节目的远程管控。

3 技术难点分析及解决方案

3.1 问题提出

本人作为智慧研发部门的技术主管,从《探路者智慧城市云平台》这个项目立项一开始就参与到项目中,对该项目的各项技术选型进行了科学的分析评估,项目开发过程中也确实遇到了不少技术难题。例如:

(1)对接的物联终端设备种类繁多,包括:强电模块下配电箱、模块、回路的远程控制,弱电模块下脱机主控、联机主控、雾森、音响、激光灯、喷泉等如何管控;

(2)灯光节目管控模块下播放策略的制定,如何将计划好的播放策略下发到采集终端上保证计划正常执行;

(3)如何实现一个项目中的多个亮化楼宇的节目联动播放等。

由于该项目中涉及到的技术难题数量较多,本篇论文只针对如何实现即时远程播放楼宇灯光节目以及定时下发节目播放场景问题做进一步研究。

3.2 问题分析

如果想要做到一个项目下的亮化主体灯光节目进行实时播放,一般有两种解决方案:

方案一:通过传统互联网行业广泛使用的TCP/IP或者UDP协议,由中心端向终端设备下发同步指令,告知终端设备立刻播放预置好的节目;

方案二:通过目前物联网行业普遍使用的MQTT协议,下发指令给到终端设备,告知终端设备播放节目。

TCP/IP和UDP协议相信对于了解互联网行业的读者来说比较熟悉,但MQTT协议为何物?本人先做一个简单的说明:一种基于物联网行业消息队列遥测传输协议。MQTT可以使用少量的代码,在带宽有限的恶劣环境下,提供实时且安全的消息服务。MQTT以其安全性高功耗低的优势,迅速应用于各类小型终端设备、医疗物联网、智能家居等行业。

通过上述对MQTT定义说明,结合以上两种解决方案综合来看,如果针对的是物联网场景,显然MQTT协议更合适。MQTT是为物联网行业而生,天生就适合在物联网、各类中小型设备以及移动应用上传输消息。但是也有其自身的缺陷,比如说:由于MQTT一般独立运行于TCP层之上并通常会以明文方式进行传输,使用某些抓包工具完全可以看到MQTT发送的所有消息,消息指令一览无余,这样就可能会产生如下的风险:

(1)设备可能会被盗用;

(2)客户端和服务端的静态数据可能是可访问的(可能会被修改);

(3)协议行为可能有副作用(如计时器攻击);

(4)拒绝服务攻击;

(5)通信可能会被拦截、修改、重定向或者泄露;

(6)虚假控制报文注入。

3.3 解决方案

《探路者智慧城市云平台》项目需要符合国家网络安全等级三级保护制度。也就是行业内通常所说的三级等保制度,国家网络安全等级三级保护制度的细则如下:

等级一,自主保护级:信息系统在遭受到外部破坏后,将会对公民、各类组织和法人的合法权益造成一定程度的损害,但不损害到国家安全和公共社会秩序。一般适用于小型私营企业、个体企业,乡镇级安全性一般的信息系统。

等级二,指导保护级:系统在遭受到外部网络攻击后,会对公民、法人及其他合法组织造成较为严重的损害,但不会损害到国家安全。一般适用于县级相关单位中的某些信息系统;

等级三,监督保护级:信息系统在受到外部破坏后,将会对社会秩序和公共利益造成很严重的损害,或者会对国家安全造成损害。这种级别一般适合地市级以上国家重要机关,企事业单位内部重要的信息系统,比如涉及国家安全、军事设施、重要商业机密等管理系统;比如:跨省调度的重要信息系统,中央各部位、省(市、区)的门户网站等。

3.3.1 技术分析

三级等保认证到底有多严格呢?展开来看:

在物理安全层面上,部署系统的机房除有最基本的安全控制之外,还应具备防火、抗风、防潮甚至电磁防护能力等,同时也要具备灾后数据恢复的能力,如要具备所有这些条件的话,平台需要付出的资金成本及人力相对是很大的,所以针对有些体量较小的软件平台完全就没有达成这些要求的实力。

三级等保认证最严的地方还是在技术层面,主要体现在系统安全管理和恶意代码防范上,简单可以理解为当有黑客对平台进行攻击时,平台应该具备一定的防范能力。

如果需要满足这样严格的要求,最终通过三级等保认证的话,使用MQTT协议的弊端就显现出来了,经过项目组成员几番激烈的讨论综合分析下来,使用MQTT的利还是大于弊的。因此,我们需要针对MQTT协议做缺陷修复。

3.3.2 技术方案

首先,我们从应用层和传输层来对MQTT协议进行认证;

(1)MQTT客户端可以使用客户标识来进一步认证;

(2)在传输层进行认证。

(3)选择用户数据格式:本系统使用JSON数据作为消息体的传输格式[2]。

3.4 完成效果

通过以上技术方案,目前可以实现如下功能:

(1)在应用层面上,MQTT支持客户标识、用户名和密码的多项认证[3];并且在传输层可以使用TLS,除了加密通讯,还可以使用X509证书来认证设备。

(2)MQTT协议;本系统使用客户标识、用户名和密码进行认证。如果后期感觉不够安全,还可以在传输层进行认证。在传输层认证是这样的:MQTT代理[4]在TLS握手成功之后可以继续发送客户端的X509证书来认证设备,如果设备不合法便可以中断连接。使用X509认证的好处是,在传输层就可以验证设备的合法性,在发送CONNECT消息之前便可以阻隔非法设备的连接,以节省后续不必要的资源浪费。而且,MQTT协议运行在使用TLS时,除了提供身份认证外,还可以确保消息的完整性和保密性。

(3)JSON的中文名称是JavaScript对象标记语言,也是基于万物皆对象的思想。因此,任何对象的定义都可以使用JSON来表示,比如:数值、字符串、对象、数组等。其语法有如下规则:

(1)对象表示为键值对(key-value)形式[5];

(2)数据之间由逗号分隔;

(3)对象由花括号进行封装;

(4)数组由方括号进行封装。

JSON格式层次结构清晰,易于阅读和编码,同时也方便机器生成和解析,大大提高了网络传输效率。

4 结语

运用MQTT协议技术能够最大满足《探路者智慧城市云平台》项目内的数据分发任务,保证物联网项目在协议层面具有高安全、低开销,并且在项目组成员的优化后能满足国家网络三级等保审核。《探路者智慧城市云平台》项目目前还在进一步功能扩充中,它的正式上线将会是“亮化文旅”行业由传统人为管控过渡到远程智能云平台管控的一次巨大变革。此项目不仅对“亮化文旅”行业是一个技术革新,并且融合了市政环保、社区生活、养老医疗、安防监控等领域的物联设备,未来可能以物联网为载体向着智慧城市方向进一步迈进。使物联网行业真正成为改善人类生活方式的贴心助手。

猜你喜欢

传输层终端设备灯光
水中灯光秀
今晚的灯光亮了天
基于Python语言的网络传输层UDP协议攻击性行为研究
来一场灯光派对
ZnO电子传输层在有机无机杂化钙钛矿太阳能电池中的应用
视频监视系统新型终端设备接入方案
物联网无线通信传输层动态通道保障机制
基于物联网GIS的消防智能巡检系统设计与实现
配电自动化终端设备在电力配网自动化的应用
车站信号系统终端设备整合及解决方案