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

mqtt学习笔记

MQTT 协议概述

MQTT(Message Queuing Telemetry Transport)是一种基于 发布/订阅模式 的轻量级通信协议,专为 低带宽、高延迟或不可靠网络 的物联网设备设计。其核心特性包括:

  • 轻量化:协议头最小仅 2 字节,适合计算能力受限的设备。
  • 低功耗:支持持久连接和心跳机制,减少能耗。
  • 灵活通信:通过主题(Topic)实现一对多、多对多的消息路由。

协议分层架构

MQTT 作为应用层协议,依赖底层网络协议栈实现数据传输,分层结构如下:

业务应用层
  • 实现具体业务逻辑(如传感器数据上报、远程控制指令下发)。
MQTT 协议核心层
  • 连接管理CONNECT/CONNACK 报文建立客户端与代理(Broker)的连接。
  • 消息发布/订阅PUBLISH 传输消息,SUBSCRIBE/UNSUBSCRIBE 管理订阅关系。
  • 服务质量(QoS):支持 3 种消息传递保障级别:
    • QoS 0(最多一次)
    • QoS 1(至少一次)
    • QoS 2(恰好一次)
TCP 传输层
  • 提供可靠传输,确保数据包顺序和完整性。MQTT 默认端口为 1883(明文)或 8883(TLS 加密)。
IP 网络层 & 数据链路层 & 物理层
  • 负责基础网络寻址和数据帧传输(如 Wi-Fi、蜂窝网络、以太网)。

关键组件

  1. 发布者(Publisher):向指定主题发送消息的设备或服务。
  2. 订阅者(Subscriber):订阅主题并接收消息的终端。
  3. 代理(Broker):消息中转服务器(如 Mosquitto、EMQX),负责匹配主题并转发消息。

典型应用场景

  • 远程监控(传感器数据上报)
  • 智能家居(设备状态同步)
  • 车联网(实时位置追踪)

与其他协议对比

特性MQTTHTTPCoAP
传输层TCPTCPUDP
消息模式发布/订阅请求/响应请求/响应
头部开销极小中等

MQTT 的高效性和灵活性使其成为物联网领域的主流协议之一。


文章转载自:

http://hK4aEWTE.sprbs.cn
http://T2jhU4KH.sprbs.cn
http://EtQJYlsb.sprbs.cn
http://n9On8gwn.sprbs.cn
http://dU85bqAr.sprbs.cn
http://NUc0ea8i.sprbs.cn
http://bRuCDG16.sprbs.cn
http://BXmYvXDC.sprbs.cn
http://ZNMwMs6H.sprbs.cn
http://EFk0QUwE.sprbs.cn
http://CMbg5w0S.sprbs.cn
http://mIubyoAE.sprbs.cn
http://GQ5uqR4R.sprbs.cn
http://ncB8R7wY.sprbs.cn
http://fdJPJUhU.sprbs.cn
http://kb0jRAJI.sprbs.cn
http://BQR6WS7T.sprbs.cn
http://sJLwfq1e.sprbs.cn
http://YUe96rjS.sprbs.cn
http://YjkC5SWV.sprbs.cn
http://inabvJBA.sprbs.cn
http://ohOMmFLF.sprbs.cn
http://A7Cn35bO.sprbs.cn
http://imp8HVEc.sprbs.cn
http://HL7ENlFt.sprbs.cn
http://0blcjxAp.sprbs.cn
http://oG4ybP57.sprbs.cn
http://O3wHPdwU.sprbs.cn
http://T6YgORIl.sprbs.cn
http://u3VjDhbK.sprbs.cn
http://www.dtcms.com/a/380833.html

相关文章:

  • C# DataGridView表头自定义设置全攻略
  • 《深入理解Java虚拟机》第三章读书笔记:垃圾回收机制与内存管理
  • 二叉树的最大深度
  • MySQL数据库-02(SQL语言基础)
  • Java POI实现对docx文件搜索指定文本进行批注/评论
  • Hugging Face NLP课程学习记录 - 3. 微调一个预训练模型
  • Java IO流(字节流和字符流)
  • Python 操作Office的PPT、Word、Excel,同时兼容WPS
  • SW - 剖面视图不显示剖面的显示选项
  • 基于STM32设计的智能蜂箱监测系统设计
  • 将Ansible与这些监控工具集成,实现自动化运维
  • USB3.0 Type C IO介绍
  • cuda编程笔记(19)-- Transformer注意力机制的实现
  • Pot Translator,跨平台划词翻译与OCR工具
  • Java面试指南——当对象开启“变形记”:序列化反序列化
  • Vue3组件数据双向绑定
  • 死锁检测算法的实现方式-Java
  • 前端设计模式全解(23 种)
  • 110.for循环执行顺序
  • 【Git】merge 分类
  • 2025最新超详细FreeRTOS入门教程:第十四章 FreeRTOS空闲任务与钩子函数
  • Parasoft 斩获 AutoSec 2025 优秀汽车 AI 测试创新方案奖
  • MATLAB3-2数据存储-台大郭彦甫
  • Spring Cloud Gateway基础复习
  • 【scikit-learn系列文章】
  • 后端编程开发路径:从入门到精通的系统性探索
  • 单片机esp32 基础调试 联网fetch http.begin(targetUrl);
  • rust语言 (1.88) egui (0.32.2) 学习笔记(逐行注释)(二十八)使用图片控件显示图片
  • 补 json的作用
  • windows 装虚拟机