当前位置: 首页 > article >正文

物联网IoT系列之MQTT协议基础知识

文章目录

    • 物联网IoT系列之MQTT协议基础知识
      • 物联网IoT是什么?
      • 什么是MQTT?
      • 为什么说MQTT是适用于物联网的协议?
      • MQTT工作原理
        • 核心组件
        • 核心机制
      • MQTT工作流程
        • 1. 建立连接
        • 2. 发布和订阅
        • 3. 消息确认
        • 4. 断开连接
      • MQTT工作流程图
      • MQTT在物联网中的应用

物联网IoT系列之MQTT协议基础知识

物联网IoT是什么?

物联网(Internet of Things,简称IoT)是一个由互联网、传统电信网、传感器网络等组成的庞大网络,它通过嵌入式传感器、设备和软件,将物理世界中的物体连接起来,实现物与物、物与人、物与网络之间的智能化交互。简单来说,物联网就是让“万物互联”,让设备能够自主地感知、传输和处理数据,从而为人类生活和工业生产带来更高的效率和便利。

什么是MQTT?

MQTT(Message Quelemetry Transport)是一种轻量级的、基于发布订阅模式的网络传输协议,适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境。它在物联网环境中应用广泛,能够实现传感器、执行器和其他设备之间的高效通信。

为什么说MQTT是适用于物联网的协议?

  • 轻量级设计:MQTT协议头部最小仅2字节,网络传输开销极小,适合在窄带网络(如NB-IoT)中使用。
  • 低功耗:使用异步传输机制和较小的数据包传输,使得设备在通信过程中的能耗更低。
  • 高可靠性:提供3种QoS级别(0/1/2),确保消息必达。
  • 灵活扩展:通过主题(Topic)和通配符机制,设备可以灵活订阅和发布消息,支持大规模设备接入。
  • 适应不稳定网络:心跳机制和会话恢复功能,确保设备在断网后能够快速恢复连接并获取未读消息。

MQTT工作原理

核心组件
  • 发布者(Publisher):将消息发布到指定的主题(Topic),例如温度传感器、智能开关等。
  • 消息代理(Broker):作为中间节点,负责接收发布者的消息并转发给订阅者,例如EMQX、Mosquitto、AWS IoT等。
  • 订阅者(Subscriber):订阅特定Topic的消息,例如手机App、云端控制台等。
核心机制
  • Topic通配符
    • 示例:home/floor1/#,订阅floor1下所有子主题的消息。
  • QoS机制
    • QoS是MQTT中用于控制信息传输质量的机制,MQTT定义了三种不同的QoS等级:QoS 0、QoS 1和QoS 2。
QoS等级传输过程适用场景
0最多发送一次(无需确认)实时性高但允许丢失数据的场景
1至少一次(Broker确认)设备控制指令
2精确一次(四次握手确保唯一性)支付、安全告警

MQTT工作流程

1. 建立连接

客户端向Broker发送CONNECT报文,包含客户端ID、用户名和密码等认证信息。Broker验证后返回CONNACK报文,表示连接成功。

2. 发布和订阅
  • 发布:发布者将消息通过PUBLISH报文发送到Broker指定的主题(Topic),Broker根据订阅关系将消息发送给指定的订阅者。
  • 订阅:订阅者发送SUBSCRIBE报文,指定要订阅的主题(Topic)和QoS级别。
3. 消息确认

根据QoS级别,消息可能需要确认:

  • QoS 0:消息“最多发送一次”,无需确认。
  • QoS 1:消息“至少发送一次”,需要确认。
  • QoS 2:消息“仅发送一次”,需要复杂的确认流程。
4. 断开连接

客户端发送DISCONNECT报文,通知Broker主动断开连接。

MQTT工作流程图

以下是文字描述的流程图结构:

客户端
  |
  v
[建立连接] -> [发送CONNECT报文] -> [接收CONNACK报文]
  |
  v
[发布消息] -> [发送PUBLISH报文] -> [Broker转发消息]
  |
  v
[订阅消息] -> [发送SUBSCRIBE报文] -> [接收消息]
  |
  v
[消息确认] -> [根据QoS级别确认消息]
  |
  v
[断开连接] -> [发送DISCONNECT报文]

MQTT工作流程图:
在这里插入图片描述

MQTT在物联网中的应用

MQTT广泛应用于设备监控、车联网、智能家居等领域。例如:

  • 工业设备监控:通过MQTT实现设备状态的实时传输。
  • 智慧城市:用于环境传感器实时传输温度、湿度等数据。
  • 智能家居:通过MQTT连接智能设备,实现远程控制和自动化管理。

http://www.kler.cn/a/581934.html

相关文章:

  • 入门到入土,Java学习 day16(算法1)
  • Spring 源码硬核解析系列专题(十三):Spring Cache 的缓存抽象源码解析
  • 2025-03-11 学习记录--C/C++-C-返回字符串t在字符串s中首次或最后一次出现的位置、返回字符串s中第一个匹配或不匹配字符串t中任意字符的位置
  • 使用 Docker 和 Nginx 实现反向代理:统一端口路由多服务的完整指南
  • Data Science Agent in Colab完全指南:AI驱动的智能数据分析助手
  • 网络安全linux命令
  • 记一次Spring Boot应用中数据库连接阻塞问题排查过程
  • AI Agent开发框架分析:前端视角
  • GStreamer —— 2.18、Windows下Qt加载GStreamer库后运行 - “播放教程 6:音频可视化“(附:完整源码)
  • 使用格式工厂提取视频中的音频
  • 智慧停车小程序:实时车位查询、导航与费用结算一体化
  • Docker换源加速(更换镜像源)详细教程(2025.2最新可用镜像,全网最详细)
  • 科技职场与文化的未来:2025年ISACA全球研究报告解读
  • 数据结构和算法--仅仅用于理解里面的术语,入门级别
  • RK3568平台开发系列讲解(内核篇)Linux kbuild编译系统
  • 万字技术指南STM32F103C8T6 + ESP8266-01 连接 OneNet 平台 MQTT/HTTP
  • ubuntu 部署deepseek
  • 【系统架构设计师】操作系统 - 进程管理 ⑤ ( 进程死锁 | 死锁 四大条件 | 死锁资源数计算 )
  • facebook游戏投广:提高广告关键数据的方法
  • Java实用注解篇:@Transactional 事务失效的场景深度解析