1.MQTT概述
Mqtt(消息队列遥测传输)是一种基于发布/订阅模式的“轻量级”通信协议,建立在TCP/IP协议之上,由IBM于1999年发布。MQTT最大的优点是可以为连接代码少、带宽有限的远程设备提供实时可靠的音频服务。作为一种低开销、低带宽的即时通讯协议,它已经广泛应用于物联网、小型设备、移动应用等领域。
MQTT是一种基于客户机-服务器的音频发布/订阅传输协议。MQTT协议轻量级、简单、开放、易于实现,使其具有广泛的适用性。在许多情况下,包括有限的环境,如机器对机器(M2M)通信和物联网。它已被广泛用于通过卫星连接进行通信的传感器、偶然拨号的医疗设备、智能家居和一些小型化设备。
2014年发布的MQTT v3.1.1是当前MQTT协议的最新版本。除了标准版,还有MQTT-SN的简化版,主要针对嵌入式设备,一般工作在TCP/IP网络,比如ZigBee。
2.MQTT规划标准
由于物联网的环境非常特殊,MQTT遵循以下规划指南:
(1)精简,不增加可有可无的职能;
(2)发布/订阅(Pub/Sub)模式,方便传感器之间的音频传输;
(3)允许用户以零运营和维护成本动态创建主题;
(4)最小化传输量,提高传输功率;
(5)考虑低带宽、高延迟、网络不稳定等因素;
(6)支持连续会话控制;
(7)明白客户端计算能力可能很低;
(8)供应和服务质量管理;
(9)假设数据未知,不坚持数据传输的类型和模式,保持灵活性。
3.MQTT特性
MQTT协议是为低带宽和不可靠网络中远程传感器和控制设备之间的通信而规划的协议。它具有以下主要特征:
(1)使用发布/订阅音频模式来提供一对多的音频发布和应用程序的解耦。
这个和XMPP很像,但是MQTT的信息冗余度远远小于XMPP,因为XMPP是用XML模式来传输数据的。
(2)音频传输屏蔽负载内容。
(3)利用TCP/IP提供网络连接。
主流的MQTT是根据TCP连接推送数据的,但是也有一个版本是根据UDP的,叫做MQTT-SN。这两个版本的优劣自然是不同的,因为链接方式不同。
(4)音频出版服务质量有三种:
“最多一次”,音频发布完全取决于底层TCP/IP网络。会攻击音频丢失或重复。这个级别可以用于以下情况:环境传感器数据丢失一次也没关系,因为很快会有第二次传输。这个方法是第一个推送普通应用的。如果您的智能设备在音频推送过程中没有连接到互联网,并且过去没有接收到推送,则在再次连接到互联网后将不会接收到推送。
“至少一次”,以确保音频的到达,但音频可能会重复出现。
“就一次”,保证消息到达一次。在一些有严格要求的计费系统中,可以应用这个级别。在计费系统中,重复或丢失音频将导致不正确的结果。这种最高质量的音频发布服务也可以用于推送即时消息应用程序,确保用户只接收一次。
(5)传输小,开销低(定长头2字节),协议通信最小化,减少网络流量。
这也是为什么介绍中说非常适合“物联网领域的传感器与服务器之间的通信和信息采集”。要知道嵌入式设备的计算能力和带宽都比较薄,用这个协议传输音频是再合适不过了。
(6)利用遗嘱和遗嘱的特点通知客户异常中断的机制。
Last Will:遗言机制,用于通知同一主题下的其他设备,发送遗言的设备已断开连接。
遗嘱:遗言的机制,作用类似于遗嘱。
4.MQTT协议原理
4.1 MQTT协议的实现方法
MQTT协议的实现需要完成客户端和服务器之间的通信。在通信过程中,MQTT协议中有三个身份:发布、代理和订阅。其中,音频发布者和订阅者都是客户端,音频代理是服务器,音频发布者可以同时是订阅者。
MQTT传输的音频分为两部分:主题和有效负载:
(1)话题,可以理解为音频的类型,在订阅者订阅后,将接收到该话题的音频有效载荷;
(2)有效载荷,可以理解为音频的内容,是指用户要使用的特定内容。
4.2音频的网络传输和应用
MQTT将构建底层网络传输:它将建立客户端和服务器之间的连接,并在它们之间提供有序、无损和省字的双向传输。
当应用程序数据通过MQTT网络发送时,MQTT会将相关的服务质量与主题相关联。
430万吨客户端
使用MQTT协议的应用程序或设备总是与服务器建立网络连接。客户可以:
(一)发布其他客户可以订阅的信息;
(2)订阅其他客户端发布的音频;
(3)退订或删除应用的音频;
(4)与服务器断开连接。
4.4 MQTT服务器
MQTT服务器被称为“音频代理”,它可以是一个应用程序或设备。它位于音频发布者和订阅者之间,可以:
(1)接受客户的网络连接;
(2)接受客户发布的申请信息;
(3)处理客户的订阅和退订请求;
(4)将应用音频转发给订阅的客户。
4.5 MQTT协议中的订阅、主题和会话
(1)订阅(Subion)
订阅包括主题过滤和最大服务质量。订阅与会话相关联。一个会话可以包含多个订阅。每个会话中的每个订阅都有不同的主题选取器。
(2)会期(会期)
每个客户端与服务器连接后,就是一个会话,客户端和服务器之间有一个情境交互。会话存在于一个网络之间,或者它们可以通过几个连续的网络连接在客户端和服务器之间。
(3)主签名(主题名)
连接到与服务器订阅相匹配的应用程序音频的标签。服务器将向订阅匹配标签的每个客户端发送音频。
(4)主题过滤器
在订阅表达式中使用的主签名通配符选择器指示订阅匹配多个主题。
(5)载荷(有效载荷)
音频用户实际收到的内容。
4.6 MQTT协议中的措施
MQTT协议中间边界表示一些方法(也称为动作)来指示在某些资源上执行的操作。根据服务器的实现,该资源可以表示预先存在的数据或动态生成数据。一般来说,资源是指服务器上的文件或输出。第一个措施是:
1)连接.等待与服务器的连接。
2)断开连接。等待MQTT客户端完成作业,并从服务器断开TCP/IP会话。
3)订阅。正在等待订阅完成。
4)取消订阅.等待服务器撤销客户端的一个或多个主题订阅。
5)出版.MQTT客户端发送音频请求,发送后返回应用线程。
1.《mqtt协议 MQTT是什么 一文详解MQTT协议》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《mqtt协议 MQTT是什么 一文详解MQTT协议》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/641774.html