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

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

3天内不再提示

MQTT协议的概念和主要特性 MQTT协议于物联网有何好处

kae1_cdebyte 来源:亿佰特物联网应用专家 2023-07-28 11:21 次阅读

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是ISO标准下基于发布/订阅方式的轻量级消息协议。MQTT通常使用TCP / IP(传输控制协议/Internet协议)作为其传输,但也可以使用其他双向传输。MQTT通常应用于物联网智能家居等设备和应用程序之间的通信。在嵌入式领域,MQTT已经占据着无法替代的分量,因为大多数的嵌入式设备,都需要这样的协议进行数据交互。

MQTT协议的主要特点

(1)开放消息协议,简单易实现。

(2)发布订阅模式,一对多消息发布。

(3)基于TCP/IP网络连接,提供有序、无损、双向连接。

(4)1字节固定报头,2字节心跳报文,最小化传输开销和协议交换,有效减少网络流量。

(5)消息QoS支持可靠传输保证。

MQTT深层特性

01一对多信息发布

首先,他是基于订阅与发布的一种协议,所以他可以一对多地进行消息发布,这样的功能应用场景非常多,局限性广播能够让服务器灵活控制想要控制的那个设备,并且服务器可以提供多个可以订阅的主题,这是极为关键的。

因为对于服务器而言,接收数据并处理是核心任务,但是当设备的增多、设备功能行的增多,服务器处理逻辑将会几何倍数增长。同样是接收的数据,也许是完全不同类设备上传的完全不一样的信息,所以当可以提供多个订阅主题与发布主题时,这种逻辑上的差异性就能被区分开,给开发者带来了很大的便利。

02不同底层协议

MQTT的第二个特性其实就是他基于了TCP/IP而生,注定它是靠上层的一个协议,现在接触的其实大多都是基于TCP协议而开发的,但它其实是有基于UDP版本的,名为MQTT-SN,但大家都知道,TCP面向连接,而UDP不面向连接,所以基于不同的底层协议类型,MQTT展现的特性肯定也是不同的。

03消息可靠性

对于常用的MQTT协议,它有一个很重要的保证消息可靠性的特性——QoS(服务质量),QoS可分为三个等级:QoS 0、QoS 1、QoS 2。

QoS 0其实相当于MQTT没有做额外信息保护,因为本身是基于TCP协议的,所以其消息可靠性完全依赖于TCP协议。而QoS 1,则是代表至少承诺会有一次发送给接收者,这是在MQTT层进行的信息保护,而不只是依靠TCP协议层。最后QoS 2,则是保证消息仅仅传送到目的地一次。

因为对于QoS 1,可能会因为消息没有反馈而多次发送,而接收方也可能收到多次消息,为此,QoS 2传输的消息带有唯一的ID,带有唯一消息ID的消息会存储两次,首先来自发送者,然后是接收者QoS级别2在网络中具有最高的开销,因为在发送方和接收方之间需要两个流。

MQTT两个主要版本

MQTT有v3 和 v5两个主要版本。这两个版本原理基本相同,但它们之间存在一些关键的差异,下面将从以下几个方面来介绍它们之间的区别。

01主题别名

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

caf3d4d4-2c71-11ee-815d-dac502259ad0.png

然而,在 MQTT v5中,主题的结构得到了扩展,新增了一些更高级的功能。具体来说,MQTT v5引入了一个名为主题别名的新概念,它允许客户端将主题字符串映射到预定义的主题ID,从而减少网络流量和消息大小。这使得客户端能够在发送消息时只发送主题ID,而不必每次都发送完整的主题字符串。这对于IoT设备和网络带宽有限的环境来说非常有用。

02订阅操作

MQTT v5引入了一种名为共享订阅的新订阅类型。如下图所示,共享订阅允许多个客户端共享一个订阅,并按照一定规则进行分配。这种订阅类型对于订阅高负载主题非常有用,因为它可以平衡订阅请求,减轻单个客户端的负载压力。

cb183c2a-2c71-11ee-815d-dac502259ad0.png

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

03遗嘱消息

遗嘱消息是MQTT为那些可能出现意外断线的设备提供的将遗嘱优雅地发送给第三方的能力。

cb40b650-2c71-11ee-815d-dac502259ad0.png

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

04错误处理

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

05流量控制

MQTT v5在v3版本基础上引入了一些新的机制用于流量控制,为了更好地控制消息的传输和处理,避免因为消息传输速度过快导致的网络拥塞和负载过高。

最大报文大小限制(Maximum Packet Size):MQTT v5 允许客户端和服务端在握手时协商最大报文大小。如下图所示,这个最大报文大小限制可以用于控制客户端和服务端之间传输的最大消息大小,防止因为传输的消息过大导致网络拥塞和负载过高。

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

06性能与效率

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

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

MQTT协议于物联网有何好处?

01操作简单

启动和运行MQTT既快速又简单,有数百万个现成的客户端应用程序和几乎同样多的代理可应用。

02安全可靠

许多物联网设备依靠无线电连接来传输和收集数据,这意味着连接并不总是可靠的。MQTT可以允许将消息存储在代理中,直到设备准备好接收它。由于QoS(服务质量),MQTT能够对消息进行排队,确保它们到达目的地,如果需要,请确保它们只到达一次。

03双向消息传递

也许更准确地说MQTT是全向的。任何设备、事物或应用程序都可以发布或订阅代理处理的任何主题。这意味着在网络上可以交谈或收听的内容没有限制。

04大规模消息传递

将消息广播到一百万台设备与发送到一百台设备一样容易,要被网络上的所有内容听到,事物只需要发布到所有设备都订阅的主题。

归根结底,物联网(IoT)有一项工作就是在网络上获取设备之间的数据。而这些网络可能位于世界任何地方,每个网络都面临着许多可能导致它们数据传输失败的情况,MQTT具有无数内置的功能来帮助缓解其中一些问题,从而让使用者的烦恼有所减少。

审核编辑:汤梓红

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

    关注

    5082

    文章

    19104

    浏览量

    304808
  • 物联网
    +关注

    关注

    2909

    文章

    44557

    浏览量

    372774
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1353

    浏览量

    79055
  • MQTT
    +关注

    关注

    5

    文章

    650

    浏览量

    22487
  • MQTT协议
    +关注

    关注

    0

    文章

    97

    浏览量

    5362

原文标题:【分享】MQTT协议详解「概念、特性、版本及作用」

文章出处:【微信号:cdebyte,微信公众号:亿佰特物联网应用专家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    mqtt协议怎么用?以MQTT3.1协议ESP8266连接阿里云联网平台

    、移动应用等方面有广泛的应用。MQTT属于应用层协议。最新版本为MQTT v5.0标准。本次连接阿里云联网平台
    的头像 发表于 05-25 18:32 5793次阅读
    <b class='flag-5'>mqtt</b><b class='flag-5'>协议</b>怎么用?以<b class='flag-5'>MQTT</b>3.1<b class='flag-5'>协议</b>ESP8266连接阿里云<b class='flag-5'>物</b><b class='flag-5'>联网</b>平台

    联网传输协议MQTT到底是个什么?

    MQTT协议针对低带宽网络,低计算能力的设备,做了特殊的优化,使得其能适应各种联网应用场景。目前MQTT拥有各种平台和设备上的客户端,已
    发表于 01-08 11:27

    工业无线MQTT联网网关

    本帖最后由 wtblchenwei1981 2018-2-10 16:25 编辑 产品简介 随着越来越多的联网采用 MQTT 作为支持
    发表于 02-07 14:00

    MQTT 协议开发入门

    的即时通讯协议,使其在联网、小型设备、移动应用等方面有较广泛的应用。MQTT是一个基于客户端-服务器的消息发布/订阅传输协议
    发表于 11-05 09:38

    MQTT 协议 开发入门

    计的协议,它具有以下主要的几项特性:(1)使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。这一点很类似XMPP,但是MQTT
    发表于 11-07 15:51

    联网的基石-MQTT协议初识

    1、联网的基石-mqtt协议初识随着 5G 时代的来临,万互联的伟大构想正在成为现实。联网
    发表于 09-08 16:03

    联网传输协议MQTT的优势

    联网传输协议为什么首选MQTT
    的头像 发表于 01-09 14:46 4110次阅读

    联网网关协议MQTT和Modbus的区别

    联网网关协议MQTT和Modbus:用于短距离设备连接的本地协议Modbus以及支持联网进行
    发表于 06-15 14:23 2108次阅读

    联网协议MQTT

    的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,作为一种低开销、低带宽占用的即时通讯协议,使其在联网、小型设备、移动应用等方面有较广泛的应用。如:机器与机器(M2M)通信和
    的头像 发表于 11-22 09:53 1515次阅读
    <b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>协议</b><b class='flag-5'>MQTT</b>

    MQTT 5协议你知道多少?

    MQTT协议是当今世界上最流行、接受度最高的联网协议。自推出以来,MQTT
    的头像 发表于 02-23 13:14 803次阅读

    智联联分享之联网协议MQTT简述,MQTT协议特点

    )基于客户端/服务器的信息发布/订阅的联网常用传输协议。1999年由开发商IBM发布,MQTT协议是轻量、简单、开放和易于实现的,这些特点
    的头像 发表于 03-28 18:10 1290次阅读
    智联<b class='flag-5'>物</b>联分享之<b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>协议</b><b class='flag-5'>MQTT</b>简述,<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>特点

    MQTT主要特性哪些

    MQTT主要特性 MQTT 协议是为工作在低带宽、不可靠网络的远程传感器和控制设备之间的通讯而设计的
    的头像 发表于 07-30 14:42 1888次阅读

    MQTT协议详解 概念特性、版本及作用

    /Internet协议)作为其传输,但也可以使用其他双向传输。MQTT通常应用于联网、智能家居等设备和应用程序之间的通信。在嵌入式领域,MQTT
    的头像 发表于 08-01 00:09 9458次阅读
    <b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>详解 <b class='flag-5'>概念</b>、<b class='flag-5'>特性</b>、版本及作用

    联网中的MQTT协议概述

    MQTT协议已经成了联网通信中的一个热词,今天我们一起来学习一下关于MQTT协议的一些知识。
    的头像 发表于 11-25 14:09 1318次阅读

    MQTT协议网关的工作原理及功能特性

    的数据传输。本文将详细探讨 MQTT协议网关 的工作原理、功能特性及其在联网应用中的重要作用。 一、M
    的头像 发表于 09-18 17:00 474次阅读
    <b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>网关的工作原理及功能<b class='flag-5'>特性</b>