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
   31   32   33   34   35   36   37   38   39   40   41