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

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

3天内不再提示

使用MQTT在任何地方访问任何物联网事物

星星科技指导员 来源:嵌入式计算设计 作者:David Brook 2022-09-17 17:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

无论物联网是如何配置的,都会有许多支持微控制器的设备分布在连接到基于云的数据中心的大面积区域。为实现这一目标,工程师需要一种小型、简单、稳健且安全的连接协议。

迎接这一挑战的主要候选人是 MQTT,或消息队列遥测传输。MQTT 是一个简单的协议,它允许嵌入式设备在云中发布/接收消息。与 HTTP 等协议相比,它的数据包开销最小,因此非常高效,适合低功耗环境。

MQTT 发布/订阅系统由许多客户端组成,这些客户端连接到充当代理的服务器。客户端既是 MQTT 数据的生产者,也是消费者。图 1 展示了一个简单的 MQTT 发布/订阅事务。MQTT 消息传递协议是围绕几个基本原则构建的:

消息代理充当多个订阅者之间的中介。它是一个服务器和一个集中的系统,通过它传递客户端数据。

发布和订阅元素永远不需要连接。

订阅者订阅一个或多个主题。

一条发布的消息可以发送给有兴趣接收有关某个主题的信息的许多订阅者。

订阅者可以接收来自多个发布者的消息。

订阅者可以随时取消订阅主题。

pYYBAGMVxpaAb0cQAABy-RVi9ZA644.png

【图1 | 一个简单的发布和订阅操作]

客户端使用应用程序定义的“主题”向代理发布自由格式的数据。代理将数据传输到订阅该主题的所有客户端。使用通配符,单个订阅可能会导致接收来自多个客户端的数据。类似地,来自单个发布操作的数据可能会转发给许多客户端。

用户手机上的应用程序请求汽车锁定主题“Message_Car001”的车门。

经纪人收到请求。

Car001 通过订阅接收消息。

汽车锁门并发送确认信息。

应用程序收到确认。

消息负载包含锁定门的指令。可以通过相同的发布/订阅系统发送一系列其他指令。

【图2 | 这是如何使用 MQTT 监视和控制汽车锁定系统。]

MQTT 提供了三个服务质量 (QoS) 级别,代表了通信开销和消息到达保证之间的权衡。0 级是“即发即弃”,不保证会收到消息。级别 1 将保证消息将至少到达一次,但可能不止一次。级别 2 将确保消息只收到一次。选择支持所有三个级别的 MQTT 实现将使开发人员能够灵活地针对他们的数据需求进行优化。

MQTT 不保证安全连接,但与传输层安全性 (TLS) 一起使用时可以形成安全的通信机制。TLS 处理安全连接:服务器和客户端使用密钥交换相互验证,并协商一个双方都可以接受的数据交换加密套件。MQTT 3.1 版允许在数据包中使用用户名和密码,以允许客户端向代理进行身份验证。

安全策略中一个经常被忽视的弱点是 MQTT 消息传递软件本身的质量。最近发生的一连串备受瞩目的安全漏洞不是因为算法被黑,而是因为源代码质量差。诸如 Heartbleed 之类的事件表明,质量差的代码可以提供漏洞,黑客可以利用这些漏洞获取访问权限。由于这些原因,选择一个使用并能够证明质量软件开发过程证据的供应商是有利的。HCC Embedded 实施了 MQTT 协议,该协议在其受信任的符合 MISRA 的 TCP/IP 堆栈上运行,并提供生命周期证据来验证其质量声明。

MQTT 代表一种小型、通用的通信协议,当与 TLS 等安全机制一起使用时,可以为无数小型设备提供高效、可靠和安全的连接。但是,并非所有 MQTT 实现都是相同的。应用程序必须建立在高质量、可靠的软件平台上,以确保安全性和可靠性。

审核编辑:郭婷

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

    关注

    2939

    文章

    47317

    浏览量

    407759
  • 服务器
    +关注

    关注

    13

    文章

    10094

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    wiznet+w5500程序卡死怎么解决?

    , &arg)函数无效,于是想到手动关闭端口,在link status becomes link down处添加closesocket后程序卡死,进一步调试发现在任何地方调用
    发表于 09-10 06:48

    联网MQTT网关是什么

    联网MQTT网关是一种采用MQTT联网协议的智能设备或软件组件,其核心功能是连接不同通信协议的物联网设备与消息代理服务器,实现设备间的数
    的头像 发表于 08-29 15:24 645次阅读

    远程访问内网MySQL数据库?这个方案更简单

    各位开发者朋友们,是否还在为无法随时随地访问内网MySQL数据库而烦恼?今天分享一个超实用的方法,通过容器部署 MySQL 结合 ZeroNews 内网穿透,让你在任何地方都能安全访问和管理数据库
    的头像 发表于 07-04 18:06 650次阅读
    远程<b class='flag-5'>访问</b>内网MySQL数据库?这个方案更简单

    CYW920820M2EVB-01开发套件可以与蓝牙的免提配置文件一起使用吗?

    我有英飞凌 CYW920820M2EVB-01 开发套件,我想将它与蓝牙的免提配置文件一起使用。 是否可以。 该套件是否支持该配置文件? 我无法在任何地方找到该套件支持的配置文件。 如果是,那么我可以得到一些关于如何执行此操作的提示吗?
    发表于 06-30 06:15

    Arm携手微软共筑云计算和PC未来

    计算平台并从中受益。无论是在 Microsoft Azure 的云端还是在 Windows on Arm PC 的边缘侧,开发者可以在任何地方加速其应用和工作负载。
    的头像 发表于 05-28 14:08 742次阅读

    在任何平台上使用PetaLinux的先决条件

    本篇文章介绍了在任何平台上使用 PetaLinux 的先决条件。PetaLinux 是一种嵌入式 Linux 软件开发套件 (SDK),主要用于基于 FPGA 的系统级芯片 (SoC) 设计或 FPGA 设计。
    的头像 发表于 04-24 10:40 1205次阅读
    <b class='flag-5'>在任何</b>平台上使用PetaLinux的先决条件

    GPS时间服务器提供高精度的授时-唯尚

    该产品提供的高精度的网络同步时钟直接来自于GPS系统中各个卫星的原子钟(也可以根据用户的要求选择其他卫星授时系统作为时间的基准源)。产品内部集成了一个高品质的12通道GPS授时,可以在任何地方为网络提供高精度的授时及同步服务。
    的头像 发表于 04-23 14:05 516次阅读
    GPS时间服务器提供高精度的授时-唯尚

    可以在任何FLEXCOMM接口上使用MDIO吗?

    我正在使用 NXP LPC55S28JBD100与 I2C 和 MDIO 设备通信。在MCUXpresso IDE的PINS工具中,我在FLEXCOMM3显示屏中看到引脚列为MDIO和MDC。FLEXCOMM3 可以作为 MDIO 主站运行吗?或者,我可以在任何 FLEXCOMM 接口上使用 MDIO 吗?
    发表于 04-08 07:52

    由 树莓派4 驱动的货运农场!

    由树莓派4驱动的垂直水培农场让客户可以在任何地方种植和监控新鲜农产品FreightFarms需要强大的计算能力以及灵活的I/O和物联网功能来支持其高产出的集装箱农场。RaspberryPi4提供了高性能和无摩擦开发,价格也非常优惠,这正是他们产品所需的小外形尺寸
    的头像 发表于 03-25 09:48 534次阅读
    由 树莓派4 驱动的货运农场!

    请问在哪里可以下载AN3942SW?

    的 DoOnStack 软件包吗? 我在任何地方都找不到下载链接。我看到的唯一参考资料是发布到此论坛的问题,要求提供该软件包。
    发表于 03-25 06:17

    Nordic NRF9151低功耗蜂窝模组 助力卫星物联网应用.

    和基于蜂窝的定位功能。今年晚些时候的产品更新中将包括Skylo设备认证和 NTN 支持,为用户带来更丰富的无线连接选择。 通过利用 Skylo 现有的商用卫星网络,我们现在可以在任何地方实现连接
    发表于 03-24 11:12

    在Tresos中收到警告11115,指出缺少Resource模块怎么解决?

    ? 它对功能没有影响,只是很烦人。这可能是 EB Tresos 的问题吗? 我搜索了resource_ts_t40d34m30i0r0字符串,并且在任何地方都找不到它,除了在 ”.tresoslog”文件。
    发表于 03-20 07:30

    MQTT联网平台有哪些?有哪些功能?

    MQTT(Message Queuing Telemetry Transport)是一种基于客户端-服务器架构的发布/订阅模式的消息传输协议,它广泛应用于机器与机器的通信(M2M)以及物联网环境
    的头像 发表于 03-15 14:23 1217次阅读
    <b class='flag-5'>MQTT</b>物<b class='flag-5'>联网</b>平台有哪些?有哪些功能?

    通过Skyvia Connect SQL终端节点访问任何数据

    通过 Skyvia Connect SQL 终端节点访问任何数据   通过 Skyvia Connect SQL 终端节点访问任何数据ADO.NET 数据网关 使用 Skyvia Co
    的头像 发表于 01-02 09:31 592次阅读
    通过Skyvia Connect SQL终端节点<b class='flag-5'>访问</b><b class='flag-5'>任何</b>数据

    搭建云电脑的成本,搭建云电脑的成本有哪些因素?

        服务器远程连接是指通过网络技术,在远程位置控制和访问服务器。通过远程连接,用户可以在任何地方登录到自己的服务器,进行各种操作,如安装软件、运行程序、管理文件等,就像直接在服务器前操作一样
    的头像 发表于 12-24 13:40 1045次阅读
    搭建云电脑的成本,搭建云电脑的成本有哪些因素?