MQTT协议-MQTT协议简介及协议原理

article/2025/9/29 13:58:23

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。做为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

  1. MQTT协议特点
  2. MQTT协议原理
    • 2.1 MQTT协议实现方式
    • 2.2 网络传输与应用消息
    • 2.3 MQTT客户端
    • 2.4 MQTT服务器
    • 2.5 MQTT协议中的订阅、主题、会话
    • 2.6 MQTT协议中的方法

 

1. MQTT协议特点

MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

MQTT协议当前版本为,2014年发布的MQTT v3.1.1。除标准版外,还有一个简化版MQTT-SN,该协议主要针对嵌入式设备,这些设备一般工作于百TCP/IP网络,如:ZigBee。

MQTT协议运行在TCP/IP或其他网络协议,提供有序、无损、双向连接。其特点包括:

  1. 使用的发布/订阅消息模式,它提供了一对多消息分发,以实现与应用程序的解耦。
  2. 对负载内容屏蔽的消息传输机制。
  3. 对传输消息有三种服务质量(QoS):
    • 最多一次,这一级别会发生消息丢失或重复,消息发布依赖于底层TCP/IP网络。即:<=1
    • 最少一次,这一级别会确保消息到达,但消息可能会重复。即:>=1
    • 只有一次,确保消息只有一次到达。即:=1。在一些要求比较严格的计费系统中,可以使用此级别
  4. 数据传输和协议交换的最小化(协议头部只有2字节),以减少网络流量
  5. 通知机制,异常中断时通知传输双方

 

2. MQTT协议原理

2.1 MQTT协议实现方式

  • 实现MQTT协议需要:客户端服务器端
  • MQTT协议中有三种身份:发布者(Publish)代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者
  • MQTT传输的消息分为:主题(Topic)负载(payload)两部分
    • Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload
    • payload,可以理解为消息的内容,是指订阅者具体要使用的内容

 

2.2 网络传输与应用消息

MQTT会构建底层网络传输:它将建立客户端到服务器的连接,提供两者之间的一个有序的、无损的、基于字节流的双向传输。

当应用数据通过MQTT网络发送时,MQTT会把与之相关的服务质量(QoS)和主题名(Topic)相关连。

 

2.3 MQTT客户端

一个使用MQTT协议的应用程序或者设备,它总是建立到服务器的网络连接。客户端可以:

  • 发布其他客户端可能会订阅的信息
  • 订阅其它客户端发布的消息
  • 退订或删除应用程序的消息
  • 断开与服务器连接

 

2.4 MQTT服务器

MQTT服务器以称为“消息代理”(Broker),可以是一个应用程序或一台设备。它是位于消息发布者订阅者之间,它可以:

  • 接受来自客户的网络连接
  • 接受客户发布的应用信息
  • 处理来自客户端的订阅和退订请求
  • 向订阅的客户转发应用程序消息

 

2.5 MQTT协议中的订阅、主题、会话

订阅(Subscription)

订阅包含主题筛选器(Topic Filter)和最大服务质量(QoS)。订阅会与一个会话(Session)关联。一个会话可以包含多个订阅。每一个会话中的每个订阅都有一个不同的主题筛选器。

会话(Session)

每个客户端与服务器建立连接后就是一个会话,客户端和服务器之间有状态交互。会话存在于一个网络之间,也可能在客户端和服务器之间跨越多个连续的网络连接。

主题名(Topic Name)

连接到一个应用程序消息的标签,该标签与服务器的订阅相匹配。服务器会将消息发送给订阅所匹配标签的每个客户端。

主题筛选器(Topic Filter)

一个对主题名通配符筛选器,在订阅表达式中使用,表示订阅所匹配到的多个主题。

负载(Payload)

消息订阅者所具体接收的内容

 

2.6 MQTT协议中的方法

MQTT协议中定义了一些方法(也被称为动作), 来于表示对确定资源所进行操作。 这个资源可以代表预先存在的数据或动态生成数据,这取决于服务器的实现。通常来说,资源指服务器上的文件或输出。

Connect,等待与服务器建立连接

Disconnect,等待MQTT客户端完成所做的工作,并与服务器断开TCP/IP会话

Subscribe,等待完成订阅

UnSubscribe,等待服务器取消客户端的一个或多个topics订阅

Publish,MQTT客户端发送消息请求,发送完成后返回应用程序线程

http://itbilu.com/other/relate/4kHBsx_Pg.html


http://chatgpt.dhexx.cn/article/TcaFOTiV.shtml

相关文章

MQTT协议详解及v5.0实践——实践类

本文主要包含了以下内容&#xff1a; 1&#xff09;MQTT协议演进历史及协议特点&#xff0c;总结和分析MQTT协议族的优缺点&#xff0c;分析和总结了为什么相比于其他协议&#xff0c;MQTT适合IoT&#xff0c;业内支持现状等。 2&#xff09;阿里云IoT MQTT3和5协议在实践中的…

MQTT与TCP通信协议的对比

一、背景 在物联网场景开发中&#xff0c;大多数通信模组都支持TCP、UDP、MQTT、CoAP、HTTP、LwM2M等网络通信协议&#xff0c;其中既有负责传输层协议&#xff0c;也有应用层协议&#xff0c;不同协议适用的场景也不尽相同。 二、协议分层 上图中举例了网络分层中最常见的几…

MQTT协议介绍

MQTT(Message Queuing Telemetry Transport, 消息队列遥测传输协议)&#xff0c;是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议&#xff0c;该协议构建于TCP/IP协议上&#xff0c;由IBM在1999年发布。MQTT最大优点在于&#xff0c;可以以极少的代码…

MQTT协议超全面总结来啦

一、概念 MQTT 是基于 Publish/Subscribe 模式的物联网通信协议&#xff0c;凭借简单易实现、支持 QoS、报文小等特点&#xff0c;占据了物联网协议的半壁江山。 MQTT&#xff08;Message Queuing Telemetry Transport&#xff0c;消息队列遥测传输协议&#xff09;&#xff0c…

【MQTT协议详解】MQTT协议

文章前注&#xff1a;本文的大量素材来自于百度百科和MQTT协议3.1.1中文板 MQTT协议3.1.1中文版网址&#xff1a;http://blog.mcxiaoke.com/mqtt/protocol/MQTT-3.1.1-CN.html 一、认识MQTT MQTT(消息队列遥测传输) 是ISO 标准(ISO/IEC PRF 20922)下基于 发布/订阅 范式的消息…

MQTT协议 详解

文章目录 一、啥是MQTT&#xff1f;1. MQTT协议特点2. 发布和订阅3. QoS&#xff08;Quality of Service levels&#xff09;QoS 0 —— 最多1次QoS 1 —— 最少1次QoS 2 —— 只有1次 二、MQTT 数据包结构1. MQTT固定头2. MQTT可变头 / Variable header3. Payload消息体 三、M…

MQTT协议图解,一文看懂MQTT协议数据包(真实报文数据解析解释)

文章目录 一、MQTT协议二、协议详解2.1 协议结构2.1.1 固定报头2.1.2 可变报头2.1.3 有效载荷 三、具体协议报文详解3.1 连接服务器报文详解3.2 发布消息报文详解 四、开源的MQTT实现五、官方文档3.1.1中文翻译下载六、官方文档5.0中文翻译下载 本文主要介绍MQTT协议的结构和具…

MQTT协议(概括与详解)

I概括 一&#xff0c;MQTT协议 1、MQTT协议可以以极少的代码和有限的带宽&#xff0c;为连接远程设备提供实时可靠的消息服务。 2、使用发布/订阅消息模式&#xff0c;提供一对多的消息发布&#xff0c;解除应用程序耦合。 对负载内容屏蔽的消息传输。 使用 TCP/IP 提供网络…

大数据挖掘分析经典案例,主要包含哪几种?

1.预测产品未来一段时间用户是否会流失&#xff0c;流失情况怎么样&#xff1b; 2.公司做了某个促销活动&#xff0c;预估活动效果怎么样&#xff0c;用户接受度如何&#xff1b; 3.评估用户信用度好坏&#xff1b; 4.对现有客户市场进行细分&#xff0c;到底哪些客户才是目…

用户复购行为预测--数据挖掘分析案例(天池/python)

–阿里天池新人赛中的一个&#xff0c;记录分享。 Repeat Buyers Prediction-Challenge the Baseline-天池大赛-阿里云天池 第一次提交&#xff1a;8简单特征&#xff0c;随机森林模型&#xff0c;score:0.5507327&#xff0c;排名&#xff1a;278 第二次提交&#xff1a;13特…

数据挖掘简介

数据挖掘&#xff08;Data Mining&#xff0c;DM&#xff09;又称数据库中的知识发现&#xff08;Knowledge Discover in Database&#xff0c;KDD&#xff09; 数据挖掘又称数据库中的知识发现&#xff08;Knowledge Discover in Database&#xff0c;KDD&#xff09;&#xf…

数据挖掘实战(聚类分析)

目录 数据探索 数据初步认识 查看数据相关信息 图形数据探索 回归分析 矩阵图分析 相关性分析 数据预处理 k-means聚类 算法简介 算法实现 k-medoids方法 算法简介 算法实现 层次聚类 som方法 实验对比 数据探索 数据初步认识 为研究我国31个省市的城镇居民…

基于数据挖掘的疾病数据可视化分析与预测系统

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目简介 随着医院信息系统&#xff08;HIS&#xff09;在全国各大医院的推广和应用&#xff0c;会有大量和病人相关的临床数据每天在医院中记录&#xff0c;而这些真实的数据随着规模积累的增加&a…

2019疫情海量数据挖掘分析与可视化实战(源码数据见附件)

海量数据挖掘分析与可视化实战报告 课程名称&#xff1a;海量数据挖掘分析与可视化实战 实训学期&#xff1a; 2021-2022学年第二学期 实训时间&#xff1a; 第16周 专 业&#xff1a; 数据科学与大数据技术 班 级&#xff1a; …

数字MIC(es7202 PDM协议)MIC录音声音较小

问题&#xff1a;我司有个项目&#xff0c;android 11 rk3566 的项目&#xff0c;该项目带audio 模块&#xff0c;项目MIC 使用的es7202(ADC)&#xff0c;该芯片是一个编码芯片&#xff0c;没有解码功能&#xff0c;该模块的录音的增益已经调到最大&#xff0c;但录入的MIC音量…

麦克风MIC 工作原理以及灵敏度调整

1、先看MIC电路连接 这是个差分输入的例子&#xff0c;MICP2和MICN2是一对差分信号&#xff0c;经过C156的滤波&#xff0c;输入到MIC两端 MIC两引脚分别是到地和供电&#xff0c;上图的R177参数就关系到MIC输入的灵敏度 2、电阻R177影响灵敏度分析 MICBIAS是提供MIC的偏置电压…

WO Mic -免费话筒

原文&#xff1a;https://wolicheng.com/womic/ WO Mic -免费话筒 一、特点 WO Mic 可以把你的手机变成电脑的麦克风。您无需支付一分钱即可购买任何小工具。如果您选择无线传输&#xff0c;它就是移动的。数以百万计的人安装了它&#xff0c;并且每天都在使用它进行通话、录…

麦克风测试指标术语

麦克风测试指标术语 1. dB 2. 谐波 3. THD 4. 灵敏度 5. 频率响应 6. 本底噪音 7. 持续中。。。 1&#xff0c;dB 多数的麦克风技术指标里最基础的就是dB 的单位。分贝是一个相对数&#xff0c;等同于人耳在声音的压力下感到的变化曲线。此外&#xff0c;分贝的变化是很…

浅析硬件“好声音”:麦克风技术指标及选型指南

如今大多数IoT类设备都具有语音唤醒和声控的功能&#xff0c;如天猫精灵、百度音箱等。 这类设备中都集成了麦克风和喇叭等电声器件&#xff0c;其中麦克风用于识别用户的声音&#xff0c;喇叭用于播放设备对用户指令的反应。麦克风的性能是影响语音唤醒率高低的重要因数&…

麦克风概述

麦克风可以将声音的变化通过特定的机制转换为电压或者电流的变化&#xff0c;再交给电路系统进行处理。声音的强度&#xff0c;通过声压表示&#xff0c;对应电压或电流的幅值&#xff1b;声音变化的快慢&#xff0c;则对应电信号的频率。 声压级和距离的关系&#xff1a;其中…