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

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

3天内不再提示

强大的MQTT! 关于它你应该知道什么

瑞科慧联(RAK) 2022-08-03 11:15 次阅读

作为物联网世界玩家,我们知道你想通过设备快速传递信息。你希望一直保持更新,从而获得最新的实时信息。然而,我们也知道要找到合适的技术来实现此愿望是十分困难的。幸运的是,MQTT或许对你有所帮助。

MQTT指消息队列遥测传输,是物联网的机器对机器(M2M,machine-to-machine)连接协议。MQTT是一个轻量级的发布和订阅协议,通过它可以在低带宽环境中发送和接收机器对机器的遥测消息。例如,通过卫星链路与broker沟通或在家庭自动化和一些小型设备场景中,MQTT是非常适用的。因为它体积小,功耗低,数据包最小化,并能有效地将信息分发到一个或多个接收者,因此MQTT也是移动应用的理想选择。

MQTT最初由Andy Stanford-Clark(IBM)和Arlen Nipper(Arcom)于1999年设计,用于通过卫星连接石油管道遥测系统。尽管MQTT是在很久之前创建的,目的仅在特定场景下进行有限使用,但它正在迅速成为物联网(Internet of Things)的主要协议之一,其中包含了大量的应用程序。它一开始只是一个专有协议,但这些年来对它的需求日益增大,因此它在2010年发布了免税版,并在2014年成为OASIS标准。

自从其标准化以来,该协议一直很容易适应各种物联网设备、平台和操作系统。Microsoft、Azure等企业云平台通过MQTT公开其IoT PaaS,而那些没有使用MQTT的物联网应用开发者都无法取得更进一步的突破。

不同的 MQTT 版本

  • MQTT v3.1.0 - 最初的版本,设计于1999年,为TCP/IP网络创建。
  • MQTT v3.1.1 - 目前开发者最常使用的版本,与v3.1.0版本差别极小。
  • MQTT v5 - 这是该协议的最新版本(2018年1月),从1.6版开始,Mosquito broker除了支持MQTT v3.1.1之外还支持MQTT v6,因此你可以继续通过旧的客户端使用最新的 broker。
  • MQTT-SN – 在2013年左右指定,旨在通过UDP、ZigBee和其他传输协议工作。MQTT-SN目前还不是很流行,且该规范几年来没有改变。随着物联网的部署开始大大增加,这种情况可能会改变。

MQTT功能的基本概念与定义

首先是发布和订阅机制。在一个发布和订阅系统中,一个设备可以在一个主题上发布消息,或者它可以订阅一个特定的主题来接收消息。当有更新时,消息会自动推送给相应主题的订阅者。

MQTT流量Figure 2: MQTT流量

Messages是在设备之间交换的信息,是一个命令或一组数据。

另一个重要的概念是topics。它是为传入信息注册感兴趣的方式,或者指定要在何处发布消息的方式。

主题用字符串表示,用正斜杠隔开。每一个正斜杠表示一个主题级别。

MQTT clients就是我们所说的订阅了一个或多个主题的设备(如果没有选择一个特定的主题,将会看到它们全部)。当其他客户端在这些主题中发布东西时,它们要以信息的形式接收数据包。对于MQTT 3.1.1版本,Eclipse Paho项目提供了几乎所有编程语言和主要操作系统Linux、Windows、Mac的客户端软件。

MQTT client的对应部MQTT broker。Broker是任何发布和订阅协议的核心。根据不同的实现方式,一个broker可以处理多达数千个同时连接的MQTT client。Broker负责接收和过滤所有信息,确定每条信息的订阅者,并将信息发送给这些订阅的客户端。Broker还持有所有持续存在的客户端的会话,包括订阅和错过的消息。

MQTT Security 是指其支持各种认证和数据安全机制的能力。需要注意的是,这些安全机制是在MQTT broker上配置的,而客户端则要遵守现有的机制。

MQTT使用发布和订阅模式,将有关各方相互连接起来。它通过将该模式与接收和订阅模式解耦来实现这一点。发布者向一个中心主题发送消息,该主题有多个订阅者等待接收消息。发布者和订阅者是自主的,这意味着他们不需要知道对方的存在。

MQTT协议的小缺点

  • MQTT不是RESTful,所以它没有利用现有协议的优势。
  • MQTT工作在灵活的主题订阅上,所以它没有一个稳定的资源发现机制。
  • MQTT 是不加密的,需要使用TLS/SSL来保证安全。

尽管有缺点,MQTT仍然是物联网项目中最受欢迎的协议之一,因为使用它的好处远远超过了缺点。例如,RAKwireless通过使用内置的MQTT桥接器增强了他们的LoRaWAN网关的能力。商业网关,如RAK7249和RAK7258具有带有MQTT桥接器的嵌入式LoRa网络和应用服务器。

这将Semtech Packet-forwarder UDP协议抽象为MQTT上的JSON,直接安全地将数据传输到应用程序。这正在成为其他制造商的一种做法,并不限于LoRaWAN,也包括其他物联网技术。

MQTT一些独特的功能

  • 这是一个轻量级协议。它在快速数据传输方面最终是高效的。此外,使用MQTT可以减少系统的计算负担。
  • 小尺寸的数据包最大限度地减少了开销并降低了流量。
  • 这是一个非常节能的机制。这使得它非常适合使用LoRaWAN的项目,因为它可以节省电池寿命,而电池是很多LoRa-end节点的主要电源
  • 它是实时的,所以它是物联网应用的理想选择。
  • 它是开源的,除了容易实现和配置外,还可以免费使用。同样,在RAKwireless商业网关系列中设置你的MQTT桥接器是快速而简单的。如果想在LoRaWAN网关中获得一个好的实现示例,可以参考本文档了解如何做到这一点。

最后,MQTT有很多优势,因此我们相信,在未来的几年里,通过更多自然的采用和改进它会变得更加主流。

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

    关注

    2909

    文章

    44624

    浏览量

    373178
  • MQTT
    +关注

    关注

    5

    文章

    650

    浏览量

    22502
收藏 人收藏

    评论

    相关推荐

    Air201:MQTT实用示例的终极指南

    今天我们学习的是关于Air201的MQTT实用示例的终极指南。
    的头像 发表于 11-07 19:30 168次阅读
    Air201:<b class='flag-5'>MQTT</b>实用示例的终极指南

    MQTT网关接入工业物联网平台解析

    ,还能通过数据预处理功能,如数据过滤、汇聚等,优化数据上传效率,减轻云端处理负担。同时,MQTT网关还集成强大的加密与认证机制,确保数据在传输过程中的安全性与隐私保护。 MQTT网关接入工业物联网平台的步骤 1. 选择合适的
    的头像 发表于 10-16 16:31 271次阅读

    MQTT物联网云平台有什么功能

    关键作用。MQTT物联网云平台基于MQTT协议,为物联网设备提供连接、管理和数据处理服务,其丰富的功能特性使得物联网应用更加高效、灵活和安全。 一、设备连接与管理 MQTT物联网云平台的首要功能是设备连接与管理。
    的头像 发表于 10-09 14:15 268次阅读

    MQTT网关:物联网中的关键桥梁

    基于发布/订阅模式的轻量级通信协议,特别适用于低带宽、不稳定网络环境下的数据传输。MQTT网关则是连接物联网设备与消息代理服务器之间的桥梁,通过,物联网设备能够高效、可靠地进行通信和数据交换。 MQTT网关的定义与功能
    的头像 发表于 08-22 14:15 401次阅读
    <b class='flag-5'>MQTT</b>网关:物联网中的关键桥梁

    【电磁兼容标准解析分享】汽车电子零部件EMC标准解析---应该了解和知道的细节(二)

    【电磁兼容标准解析分享】汽车电子零部件EMC标准解析---应该了解和知道的细节(二)
    的头像 发表于 08-08 08:17 5046次阅读
    【电磁兼容标准解析分享】汽车电子零部件EMC标准解析---<b class='flag-5'>你</b><b class='flag-5'>应该</b>了解和<b class='flag-5'>知道</b>的细节(二)

    知识科普 MQTT Broker 代理 是什么

    MQTT Broker作为MQTT通信的核心组件,扮演着关键的角色,负责管理客户端连接、消息路由和订阅管理等任务。它在物联网和M2M通信中发挥着不可或缺的作用,使得设备和应用能够高效地进行实时通信,为物联网的发展和应用提供了强大
    的头像 发表于 08-01 16:51 299次阅读
    知识科普 <b class='flag-5'>MQTT</b> Broker 代理 是什么

    MQTT物联网平台是什么

    MQTT物联网平台是一种软件平台,基于MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议,为物联网(IoT)设备提供连接、管理和数据处理的服务
    的头像 发表于 07-18 14:22 588次阅读

    关于定位系统技术知道多少?

    定位系统在如今这个没有隐私的社会,已不是稀奇的技术。 不管是在大街上走还是在商场里逛, 只要想知道的行踪就被定位系统锁定了。就像我们看的西部大片,罪犯在这边打电话,FBI在那边定位,唧唧几声
    的头像 发表于 07-12 11:16 327次阅读
    <b class='flag-5'>关于</b>定位系统技术<b class='flag-5'>你</b><b class='flag-5'>知道</b>多少?

    求助,请问如何在RTOS SDK 1.5的PlatformIO IDE ESP8266实现MQTT

    ESP8266设备连接到 mqtt 代理。但 PlatformIO IDE 内置的 RTOS SDK 1.5 版本不支持 mqtt。此 SDK 没有 mqtt 示例。所以能不能让我
    发表于 07-08 06:22

    关于主干布线,应该知道什么

    做什么用的?究竟是如何工作的?继续阅读以找出这些问题的答案以及更多信息。 什么是骨干布线? 在大多数建筑物中,不同楼层都有房间,对整个建筑物执行重要功能。这些房间包括您预计需要大量连接的房间,例如通信室。但是,
    的头像 发表于 04-16 17:15 717次阅读

    MQTT物联网平台是什么?MQTT物联网平台的功能

    MQTT(Message Queuing Telemetry Transport)是一种基于客户端-服务器架构的发布/订阅模式的消息传输协议。基于TCP/IP协议栈构建,设计轻巧、开放、简单和规范
    的头像 发表于 04-01 10:20 731次阅读

    MQTT网关是什么?MQTT网关的功能

    MQTT网关是支持MQTT协议的物联网网关,是一种用于连接不同设备和云端平台之间的中间件。充当了设备和云端服务之间的数据传输桥梁。MQTT网关能够接收来自各种设备的数据,并将其发送到
    的头像 发表于 03-18 17:10 810次阅读

    PSoC6上的Wi-fi_mqtt_Client出现MQTT连接错误怎么解决?

    错误: `MQTT 连接失败,错误代码为 0x8060009。` 我已经验证了证书、密钥文件和其他配置的正确性。 Wi-Fi 连接已建立,没有问题。 如果有人对这个特定的错误代码有经验,或者对Wi-fi_MQTT_Client示例中的常见陷阱有见解,我将不胜感激。 我
    发表于 03-04 06:37

    什么是MQTTMQTT协议中的方法

    MQTT是一种轻量级消息传递协议,由IBM开发,于1999年首次发布。使用发布/订阅模式并在设备、服务器和应用程序之间转换消息。
    的头像 发表于 02-25 17:04 1335次阅读
    什么是<b class='flag-5'>MQTT</b>?<b class='flag-5'>MQTT</b>协议中的方法

    MQTT物联网平台是什么?MQTT物联网平台的功能有哪些

    MQTT(Message Queuing Telemetry Transport)是一种基于客户端-服务器架构的发布/订阅模式的消息传输协议。基于TCP/IP协议栈构建,设计轻巧、开放、简单和规范
    的头像 发表于 01-24 09:23 1149次阅读