最后更新:2021-10-18 19:09
本博客涵盖MQTT的基本内容。
MQTT( 邮件队列遥测传输): 传输信息队列遥测的协议 。
其主要目标是提供两种更简单、更轻、更便于使用的订阅/分发模式,特别是在受限制的情况下(低带宽、高网络延迟、网络连接不可靠)信息传播模式,以及物联网标准传输协议。 不,我不认为如此。
优点:
MQTT 协议涉及客户端和服务器端通信,而 MQTT协议有三种身份:出版商(Publish)、代理商(Broker) (服务器)和订阅者(指令性),其中发送者和订阅者都是客户,信息代理是服务器,信息发布者既可以是订阅者,也可以是发送者。
MQTT广播分为两个部分:主题(专题)和负荷(有效载荷):
MQTT将建立一个底层网络传输:客户对服务器的连接,使两者之间能够有序、无破坏性、基于字节的双向通信。
当数据在 MQTT 网络上应用时, MQTT 将相关服务质量( Qos) 与主题名称( Topic) 连接。
使用 MQTT 协议的应用程序或设备总是建立与服务器的网络连接。
MQTT 服务器,又称 " 经纪人 ",可以是应用程序,也可以是设备。 它位于发件人和用户之间,可以从事以下工作:
订阅者拥有专题过滤器(Topic过滤器)和最高服务质量(QoS),与届会有关,届会可包含多个订阅器,届会的每次订阅都有不同的主题过滤器。
会话 : 每个客户端连接到服务器, 并且与服务器有互动状态 。 会话存在于一个网络内部, 可以连接客户端与服务器之间随后的许多网络连接 。
主题名称( Topic Name): 与服务器订阅对应的应用程序消息相关的标签。 服务器向每个订阅标签的客户端发送信件 。
主题过滤器( Topic 过滤器) : 用于订阅表达式中使用的主题名称的通配符过滤器, 用以识别订阅符合的许多主题 。
用户收到的内容称为负载(负载)。
MQTT 协议包括显示指定资源运行的方法(也称为动作) 。 此资源可以代表先前存在的或动态的数据创建, 取决于服务器的性能 。 一般来说, 资源与服务器的文件或输出有关 。
以下是图中与MQTT有关的责任:
MQTT协议旨在与低带宽、不可靠的网络中的遥控传感器和控制设备进行互动,协议包括以下关键特征:
要提供不止一对信件和未组合的应用程序, 请使用解密/ 订阅信件模式。 这与 XMP 相当相似, 但 MQTT 的信息冗余比 XMP 少得多, 因为 XMPP 使用 XML 格式文本发送数据 。
无法打开信件
提供TCP/IP网络连接。
由于这两个版本基于各种连接手段,其利弊本质上是不同的。 主流MQTT是一个基于TCP连接的数据驱动器,但也包括一个基于UDP的名为MQTT-SN的版本。
信息传播服务分为三类:
“不超过一次” (QosS0) 信息发布完全取决于底部 TCP/IP 网络。 信息将丢失或重复。 此水平可用于环境传感器数据, 无需丢失一读记录, 因为它会在不远的将来再次发送 。 这主要是普通的 AP 发送, 如果您的智能设备在发送邮件时没有连接, 并且它先前已被没收, 则不会被没收 。
“至少一次”(Qos1),以确保发送信息,但可以重复。
这一水平可用于一些要求最高的计费系统,在计费系统中,信息重复或丢失可能导致错误的结果,这种最高质量的信息分发服务也可以用于即时通信类型APP发送,以确保用户只收到一次。
小型传输、廉价成本(两字节的固定长头)和减少网络交通的最低限度交换协议。 因此,导言指出“在物体网络、传感器-服务器连接和信息收集领域”是理想的,尽管嵌入设备在计算能力和带宽方面通常有限。
利用《最后意愿》和《条约》的要点,已建立一项机制,提醒各方注意意外中断。
最后遗嘱和约言:在同一主题下通知其他设备发送最后一分钟电文的最后一分钟方法已经退役。
说明:一种与最后意愿和声明相仿的机制。
MQTT 协议中的 MQTT 数据包由三部分组成:固定头(固定信头)、可变头(可变信头)和信件正文( payload)。
所有 MQTT 控制报告以及固定信头都包含变量信头。 有效载荷也包含在 MQTT 控制报告中。 固定信头占用两个字节的空间, 如下所示:
固定信头的前四个字节分为控制报告类型(4比特)和电文类型的标志,总共14种控制类型,其中0和15种由系统保存,其他为:
固定信头的位元 0比特3 保留给路标,该路标根据电文类型有不同的含义,实际上,除PUBLISH类型报告外(PUBLISH类型报告得到系统维护),在未使用标识符的电文类型中,则保留标记。如果收到错误的符号,接收端必须停止网络连接。
DUP( 位数 3) : 释放的复制件。 如果设定为 0, 则表示这是客户端或服务首次想要发送 PUBLISH 消息, 如果设定为 1, 这可能是重复先前的邮件请求, 将信件添加到下面的长度, 并需要回复确认以确认信件已经完成, 但没有用于识别重复信件 。
QOS (bit 2-bit1): 信息服务质量,即保证信息数量
Ø00:最多一次,即:<=1
Ø01:至少一次,即:>=1
10:1,即:=1
Ø11:预留
如果发送给客户端的 PBULISH 信息保留标识设置为 1, 服务器必须保持应用程序信息及其服务质量水平( QOS), 以便将其传播给符合主题名称的未来用户。 当新订阅时, 如果最近更新了给客户端的 PBULISH 信息保留标识( RETENS) 设置为 1, 服务器必须保持应用程序信息及其服务质量水平( QOS), 以便将其传播给符合主题名称的未来用户 。 当新订阅形成时, 如果最近更新了信息, 则每个匹配主题名称必须发送给该用户 。
其余的长度字段用于记录电文的剩余长度,显示当前电文的剩余字节,包括可变信头和有效载荷区域(如果有的话),尽管剩余长度不包括编码剩余长度字段本身所需的字节。
其余的长度字段有一个可变长度编码方法,该方法对低于128的值使用单一字节编码法,而较大的字节处理如下:低的7位/字节用于编码数据长度,最高的位(Bit7)用于确定剩余长度字段是否有额外字节,并用大端模式编码,因此每个字节可能包含128个值和一个扩展名,其余的字节则使用最高位(Bit7)用于编码数据长度,因此每个字节可能包含128个值和一个扩展名,其余的字节

一般而言,MQTT信息在理论上可以传送256 M信息,这是非常不寻常的。
MQTT 数据包包含一个位于固定头和负载之间的变量头。根据数据包的类型,变量内容的变化取决于数据包的类型,而最常见的应用程序是软件包标记:
只有某些报纸有可变页眉,其内容因电文类型而异,固定页头与有效负载之间不同,但可变页头的纸张识别符(Packet I识别符)字段存在于许多类型的纸张中,而如表所示,其他报纸则没有,报告识别码的编排如下:
有效载荷信息定位MQTT数据包第三部分,包括四种信息:Centlection、Applycribe、SubACK和UNSUBCRIBE:
本文由 在线网速测试 整理编辑,转载请注明出处。