MQTT简介

2.1.MQTT协议

2.1.1 MQTT协议简介

MQTT协议是ISO标准(ISO/IEC PRF 20922)中工作在TCP/IP协议簇下的基于发布/订阅式的消息协议,是专门为性能低下硬件设备及不稳定网络条件下提供远程数据传输而开发的“轻量级”通信协议[7]。MQTT协议的最大优点在于,可以以极小的代价为远程设备提供实时可靠的消息服务。其低开销、低带宽占用的协议特点,其在小型设备、物联网、移动应用等方面得到较广泛的应用[8]。

2.1.2 MQTT协议实现方式

MQTT通信需要客户端和服务器协同完成,一个完整的MQTT通信链路结构上有三种身份:发布者(Publish)、代理服务器(Broker)、订阅者(Subscribe)[9]。通信模型如图2-1所示。

 

图2-1 MQTT通信示意图

(1)代理服务器(Server)

代理服务器可以是一个程序或设备,作为消息发送者和主题订阅者之间的转发中介。其主要作用是接收发布者发布的消息信息,再将消息转发给主题和权限均符合条件的订阅者。

(2)客户端(Client)

客户端指使用MQTT协议的程序或设备,客户端包括主题订阅者和消息发布者。发布者和订阅者只是角色上的不同,在实现上发布者和订阅者可以是同一个客户端。客户端可以发布消息或者订阅主题(接收消息)。

(3)传输媒介

MQTT工作在TCP/IP协议簇下,其信息负载使用MQTT协议封装后使用公共互联网发送给代理服务器。其中一般使用Internet网络作为传输媒介,客户端凭借可以连接广域网的设备接入代理服务器。

MQTT传输的消息分为两个部分:主题(Topic)、负载(Payload)[10]。Topic指明消息的所属的主题组,Payload容载消息的具体内容。MQTT通过“主题”实现发布者客户端和接收者客户端之间的数据传输。主题是附加在消息上的一个标记,服务器通过主题识别消息所属的类别,并将该消息转发至每一个订阅了该主题的订阅者,如图2-2所示:

https://doc.bce.baidu.com/bce-documentation/IOT/IoT_MQTT_protocol_02.png?responseContentDisposition=attachmen

图2-2 MQTT通信模型

2.1.3 MQTT协议重要特征

(1)QoS特征:QoS是MQTT中一个十分重要的特征机制,QoS机制通过发布者和订阅者对消息可靠性等级规定来更改每个消息的消耗时间和性能[11]。发布者可以通过QoS级别发布给订阅者,客户端也可以以某一QoS级别订阅话题内容,客户端将以消息发布者和主题订阅者中最低级别的方式订阅主题内容。QoS分为QoS Level0、QoS Level1、QoS Level2三个级别,更高等级的QoS说明消息的可靠性更高,同时也带来了更高的延迟和性能需求。

(2)信息缓存:任何一条消息都可以设置为缓存模式,这意味着消息经代理服务器推送给所有订阅客户端后仍会保存该条消息内容。当有一个新客户端订阅主题时,这个新的用户将会接收到这些缓存内容。

(3)持久性连接:在建立一个新连接的时候,可以选择设置session选项,session也被理解为“净身启动”。其被设定为true时,每次客户端连接代理服务器时都将是一个新连接,当其被设定为false,那就代表在它断开连接后,代理服务器将会保存它的订阅条目,当该客户端重新连接时它订阅的QoS Level1和QoS Level2的话题内容将被推送给该客户端。

(4)遗嘱(wills)机制:当客户端连接到代理服务器时,客户端可以向服务器提供一个意愿。意愿中主要包含话题、QoS、信息缓存模式等信息。当该客户端意外断开连接时,代理服务器会为所有该话题的订阅者推送这条意愿。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值