Page 36 - 网络电信2019年3月刊下
P. 36
(3)灵活:HTTP允许传输任意类型的数据对象。正在传输的 (2)实现对负载内容进行屏蔽的消息传输。
类型由Content-Type加以标记。 (3)使用TCP/IP提供网络连接,相比HTTP协议,MQTT数据包
(4)无连接:所谓无连接是指每次连接只处理一个客户端的 的头部开销非常低,头部是固定的,且只有两个字节。
请求。服务器处理完客户端的请求,并收到客户端的回答后, (4)提供三种消息发布的服务,用户能够针对网络的实际情
立即断开连接。采用这种方式可以节省传输时间。 况以及服务要求选择三种不同的通信质量等级,分别是:
(5)无状态:HTTP协议是无状态协议,所谓无状态是指协议 ①至多一次,消息发布完全依赖底层网络的TCP/IP,可能
对于事务处理无记忆能力。缺少状态信息意味着如果后续处理 发生消息丢失这一等级适用于环境数据采集等应用场景,丢失
需要前面的信息时,则前面的信息必须重传,这样可能导致每 一次数据影响不大,因为不久后还会有第二次的数据发送。
次连接传送的数据量增大。另一方面,当服务器不需要先前信 ②至少一次,能够确保消息到达,但消息可能会重复发
息时,它的响应就比较快。 送。
HTTP在构建初期协议开发成本低,在早期构建物联网系统 ③只有一次,确保消息到达一次。这一等级适用于可靠的
时,很多厂商都是基于HTTP协议进行开发的。 消息送达的应用场景,例如计费系统。
但在因数据量大导致网络带宽资源相对紧张的物联网环境 (5)支持遗嘱机制:根据用户设置的遗嘱机制,当由于网络
中,或者面对负载计算性能微弱的传感器设备时(这些设备甚至 因素等非正常原因导致终端连接断开时,将以发布话题的方式
无法加载HTTP客户端),HTTP协议并不适用。 通知可能对该终端感兴趣的其他终端。
3、物联网对通信协议的要求 MQTT协议分为两部分:即MQTT消息代理和MQTT客户端,其中
综上所述,物联网通信协议需要能更好地兼容物联设备计 客户端直接通过MQTT协议与消息代理连接,并通过消息代理进
算性能强弱不一的特点,即系统资源占用越少越好。归纳起来 行消息过滤。订阅者能收到其订阅的主题上的所有消息,并且
主要有以下要求: 所有订阅这一相同主题的订阅者都能接收到同样的消息;发布者
(1)较小的通信开销,以降低网络带宽的消耗。 负责定义订阅者所订阅的消息的类型 [6] 。消息代理通过存储转
(2)协议开放,以支持在多种网络中的应用。 发功能将消息从发布者发送到订阅者。
(3)低耦合度,即去除了应用的耦合连接。 MQTT消息传输模型如图1所示。
(4)支持QOS,针对网络的实际情况以及不同的服务要求采 图 1 MQTT 消息传输模型示意图
取与之相适应的通信质量等级。
4、MQTT协议的优势
MQTT(Message Queuing Telemetry Transport)协议最早由
IBM提出,用推送的方式取代传统拉取的方式来进行消息的传递
[3]
,是基于消息发布/订阅编程模式的消息协议,如今已经成
为OASIS(结构化信息标准促进组织)规范。与HTTPCoAPXMPP等通 三、基于 MQTT 协议的物联网通信网关
信协议相比,MQTT协议有以下的优势: MQTT虽然符合物联网对通信协议的要求,但在实际应用中
(1)MQTT基于TCP的协议,在反控设备的应用中比CoAP等基 仍存在几个问题:即大量的现有的和即将投入应用的物联网终端
于UDP的协议更为可靠,比如CoAP在进行3G通信的时候须通过相 均不直接支持MQTT,物联网系统架构在接入海量物联网终端设
关技术实现CoAPoverTCP,否则反控很不稳定。 备和采集终端的数据时,需要分布式汇聚和管理设备。
(2)MQTT通过异步模式实现通信,类似发短信,无需等待对 为解决这个问题,针对支持MQTT的物联网系统架构,设计
方确认便可以继续发送信息,而不像HT-TP那种必须等待对方应 了一个MQTT数据通信网关,物联网系统架构与MQTT协议的对应
答才能返回的同步模式,大大简化了连接过程。 关系见图2。
(3)MQTT为物联网通信提供了许多满足特定需求的设计,比
图 2 物联网系统架构与 MQTT 协议的对应关系
如QoS、“遗嘱”等。
(4)MQTT的二进制格式比是轻量级的,几乎能轻易嵌入到任
何终端中,终端通信模块的功耗也大大降低,尤其适合无线终
端的电池供电工作模式。
轻巧可扩展对低功耗低速率网络的绝佳适应性,再加上
MQTT完全开源开放,国内外的公有云供应商如Ali、Baidu、
Tencent、AWS、Azure、Bluemix等都以各种形式加入了对MQTT
的支持,已经形成了良好的MQTT生态圈。因此,MQTT协议是当
前符合上述要求的物联网通信协议 [4] 。 考虑到具体的行业应用,因此将物联网系统架构在前述的
5、MQTT协议的工作原理 三层基础上分为四层:即设备层MQTT边缘网关层、物联网云平台
MQTT的工作原理如下 [5] : 层以及应用层。设备层包含各种传感设备和通信终端等;MQTT边
(1)使用发布/订阅消息的模式,提供一对多的消息发布, 缘网关的主要功能是汇聚采集设备的数据,实现不同设备不同
并实现应用程序的解耦合。 协议的适配,统一转换为MQTT协议,再通过内置的MQTT客户端
网络电信 二零一九年三月 63