0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

哪个版本的MQTT协议更好用?

亿佰特物联网应用专家 2023-03-17 10:06 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是ISO标准下基于发布/订阅方式的轻量级消息协议,其通常应用于物联网智能家居等设备和应用程序之间的通信de04239c-c35f-11ed-ad0d-dac502259ad0.png

MQTT协议由发布者/订阅者,消息代理Broker两部分组成,如图1所示,发布者负责消息推送至Broker,Broker将消息推送至匹配的订阅者。发布者(Publisher):设备通过主题将消息发送给订阅者。订阅者(Subscriber):作为终端设备,订阅者通过主题从发布者处接收消息。消息代理(Broker):服务器作为中央枢纽,负责发布者和订阅者之间的组织级通信。
MQTT有两个主要版本:v3 和 v5。这两个版本原理基本相同,但它们之间存在一些关键的差异,下面将从以下几个方面来介绍它们之间的区别。

01

协议格式

MQTT v5 新增了一个 Property字段,这个字段使MQTT v5 可以支持更多的新特性。而在MQTT v3 中,MQTT没有任何可以拓展的地方,限制了MQTT拓展功能的可能性。

02

主题别名

主题是MQTT中的核心概念,它用于标识消息的内容和意图。在MQTT v3 中,主题只是一个简单的字符串,其结构是由一系列以斜杠分隔的单词组成的。例如,一个 MQTT v3 主题可以是 sensors/temperature/room1,其中sensors是顶级主题,temperature是其子主题,room1是子主题下的一个特定设备。de874bf0-c35f-11ed-ad0d-dac502259ad0.png

然而,在 MQTT v5 中,主题的结构得到了扩展,新增了一些更高级的功能。具体来说,MQTT v5 引入了一个名为主题别名的新概念,它允许客户端将主题字符串映射到预定义的主题 ID,从而减少网络流量和消息大小。主题别名由客户端和服务端各自维护,且生命周期和作用范围仅限于当前连接。deca6638-c35f-11ed-ad0d-dac502259ad0.png

针对某个主题,首次发布时设置别名,之后就可以使用主题别名发布。这使得客户端能够在发送消息时只发送主题ID,而不必每次都发送完整的主题字符串。这对于 IoT 设备和网络带宽有限的环境来说非常有用。

03

订阅操作

MQTT v5 引入了一种名为共享订阅的新订阅类型。可以通过其他标志和过滤功能,来实现更灵活的订阅。如下图所示,共享订阅允许多个客户端共享一个订阅,并按照一定规则进行分配。这种订阅类型对于订阅高负载主题非常有用,因为它可以平衡订阅请求,减轻单个客户端的负载压力。
df0f5f4a-c35f-11ed-ad0d-dac502259ad0.png

另外MQTT v5 增加了订阅选项的概念,可以指定订阅选项,例如QoS等级、Retain As Publish、Retain Handling、消息的生命周期等,来对订阅行为进行更加精细地控制。

04

遗嘱消息

遗嘱消息是MQTT为那些可能出现意外断线的设备提供的将遗嘱优雅地发送给第三方的能力。在 CONNECT 报文的 Payload 中,部分字段发生了变化,其中Will Message(遗嘱消息)变成了Will Payload(遗嘱载荷)。df481ee8-c35f-11ed-ad0d-dac502259ad0.png

Will Properties(遗嘱属性)是MQTT v5新增的一个字段,不同类型的报文有着不同的属性,例如CONNECT报文有最大报文长度、会话过期间隔等属性,SUBSCRIBE报文则有订阅标识符等属性。而且MQTT v5较v3相比,遗嘱消息的内容变得更加灵活,可以包含任何主题和任何消息内容。

05

错误处理

MQTT v5支持更加详细的错误处理机制,可以通过错误码和错误原因来定位和解决问题。同时,MQTT v5还引入了一个新的控制报文——Disconnect报文,可以帮助客户端和服务器更好地处理错误情况。

06

流量控制

MQTT v5 在 v3 版本基础上引入了一些新的机制用于流量控制,为了更好地控制消息的传输和处理,避免因为消息传输速度过快导致的网络拥塞和负载过高。
最大报文大小限制(Maximum Packet Size):MQTT v5 允许客户端和服务端在握手时协商最大报文大小。如下图所示,这个最大报文大小限制可以用于控制客户端和服务端之间传输的最大消息大小,防止因为传输的消息过大导致网络拥塞和负载过高。df75ba92-c35f-11ed-ad0d-dac502259ad0.png

消息队列(Message Queue):当服务端发送的消息超出了客户端处理的速度时,服务端可以将消息存储到消息队列中,等待客户端处理。MQTT v5 定义了消息队列的队列大小和超时时间,以控制消息队列的大小和生命周期。

07

性能效率

MQTT v5 相对于 MQTT v3 来说,可以更好地处理大规模的数据传输,提高了通信的效率和性能。例如MQTT v5 支持批量发布(Batch Publish)和预取(Message Prefetch)等功能,可以大大减少MQTT通信时的开销。

总之,相比于MQTT v3,MQTT v5 具有更多的新功能和安全性。但是,需要注意的是,MQTT v5 增加了很多新的功能和概念,因此在使用MQTT v5时,需要对MQTT协议的新特性进行深入的了解,以便可以更好地使用这个新协议来构建可靠的应用程序。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信
    +关注

    关注

    18

    文章

    6447

    浏览量

    140246
  • 物联网
    +关注

    关注

    2950

    文章

    48116

    浏览量

    418232
  • MQTT
    +关注

    关注

    5

    文章

    738

    浏览量

    25249
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞芯微(EASY EAI)RV1126B mqtt

    1.MQTT简介MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯
    的头像 发表于 04-13 17:22 581次阅读
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>mqtt</b>

    工业协议转换网关哪个好用?有什么推荐?

    智能化转型的首要难题。工业协议转换网关(Protocol Conversion Gateway)正是解决这一难题的关键设备,它充当着“翻译官”和“交通枢纽”的角色,能够实现不同协议间的无缝转换与数据汇聚。面对市场上众多的产品,究竟哪个
    的头像 发表于 01-20 11:44 684次阅读
    工业<b class='flag-5'>协议</b>转换网关<b class='flag-5'>哪个</b><b class='flag-5'>好用</b>?有什么推荐?

    MQTT协议为什么成为物联网协议

    MQTT协议之所以成为物联网领域的核心通信协议,主要得益于其 轻量级设计、高效资源利用、灵活可靠的消息传递机制、强大的安全支持以及广泛的生态兼容性 ,这些特性精准解决了物联网设备在资源受限、网络
    的头像 发表于 12-10 09:15 599次阅读

    MQTT网关支持5G通信吗

    MQTT网关可以支持5G通信 ,且在实际应用中,5G与MQTT协议的结合为物联网领域带来了显著优势,以下为具体分析: 一、5G与MQTT协议
    的头像 发表于 12-08 11:13 1047次阅读

    工业智能网关可以通过MQTT协议对接到哪些平台

    工业智能网关通过MQTT协议可对接的平台范围广泛,涵盖主流公有云、私有云及第三方云平台,具体可分为以下四类: 一、主流公有云平台 阿里云物联网平台 支持MQTT协议直接接入,提供设备管
    的头像 发表于 09-29 11:29 849次阅读

    MQTT_协议中文资料

    电子发烧友网站提供《MQTT_协议中文资料.pdf》资料免费下载
    发表于 09-02 16:19 1次下载

    物联网MQTT网关是什么

    物联网MQTT网关是一种采用MQTT物联网协议的智能设备或软件组件,其核心功能是连接不同通信协议的物联网设备与消息代理服务器,实现设备间的数据交换与集中管理,同时支持边缘计算、安全防护
    的头像 发表于 08-29 15:24 1234次阅读

    通过MQTT协议能接入工业物联网云平台中吗

    通过MQTT协议完全可以接入工业物联网云平台,且因其轻量、高效、可靠等特性,已成为工业物联网场景中的主流通信协议之一。
    的头像 发表于 08-26 18:03 1014次阅读

    GraniStudio :MQTT 协议的深度剖析

    在工业物联网(IIoT)的通信协议体系中,MQTT(Message Queuing Telemetry Transport)凭借其轻量级、发布 - 订阅模式和低带宽占用等特性,成为连接边缘设备与云端
    的头像 发表于 08-04 09:48 1166次阅读
    GraniStudio :<b class='flag-5'>MQTT</b> <b class='flag-5'>协议</b>的深度剖析

    MQTT网关具备边缘计算功能吗?有什么功能?

    现代MQTT网关通常具备边缘计算功能,尤其是为适应物联网(IoT)场景中低延迟、高可靠、带宽优化等需求而设计的新一代网关。传统MQTT网关的核心功能是协议转换(如将Modbus、ZigBee等设备
    的头像 发表于 07-15 15:01 1054次阅读
    <b class='flag-5'>MQTT</b>网关具备边缘计算功能吗?有什么功能?

    MQTT介绍

    的消息传输协议,近年来被广泛应用于智能家居、工业控制、车联网等场景。 MQTT 是一种基于发布/订阅(Pub/Sub)模式的轻量级消息协议,设计初衷是为低带宽、不稳定网络环境下的设备通信而生。它更像是广播电台:你订阅频道,谁在频
    的头像 发表于 07-14 09:34 3831次阅读
    <b class='flag-5'>MQTT</b>介绍

    简析Modbus和MQTT协议

    Modbus和MQTT协议在设计目标、通信模式、应用场景、网络结构、数据传输效率、设备兼容性及安全性等方面存在显著差异,具体分析如下: 一、设计目标与定位 Modbus :诞生于1979年,由施耐德
    的头像 发表于 07-10 14:25 985次阅读

    大家都在用什么AI软件?有没有好用的免费的AI软件推荐一下?

    大家都在用什么AI软件?有没有好用的免费的AI软件推荐一下?直接发个安装包,谢谢。比如deepseek、Chatgpt、豆包、阿里AI、百度AI、腾讯AI,哪个能用、好用?没找到安装包,都是在线搜索?想要Windows
    发表于 07-09 18:30

    MQTT为何成为物联网协议

    MQTT(Message Queuing Telemetry Transport)即消息队列遥测传输协议,已成为物联网领域广泛应用的协议,这主要得益于其在资源占用、通信效率、可靠性、扩展性等多方面
    的头像 发表于 05-20 09:54 961次阅读

    KaihongOS操作系统:MQTT物联网通讯协议

    @ohos.net.khMqtt (MQTT物联网通讯协议) 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 目前
    发表于 05-08 07:51