【网络应用层协议】【MQTT】详解消息队列遥测传输协议MQTT(超详细)

news2025/1/20 14:55:38

目录

1. MQTT 协议简介

2. MQTT 的特点

3. MQTT 协议原理

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


1. MQTT 协议简介

        MQTT( Message Queuing Telemetry Transport,消息队列遥测传输协议 )是一种消息列队传输协议,采用订阅、发布机制,订阅者只接收自己已经订阅的数据,非订阅数据则不接收,既保证了必要的数据的交换,又避免了无效数据造成的储存与处理。

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

2. MQTT 的特点

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

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

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


轻量级
        MQTT协议设计简单轻巧,数据包头部较小,使其在低带宽、高延迟的网络环境中运行效率高,可以对比HTTP协议,HTTP协议的数据报头较大,就算是不携带任何的数据,都有一定字节的大小,但是MQTT的报头只有一个字节。

发布-订阅模式
        MQTT采用发布者(Publisher)和订阅者(Subscriber)模式,发布者负责将消息发布到特定的主题(Topic),而订阅者可以选择订阅感兴趣的主题,接收与之相关的消息。这种模式使得设备之间可以异步通信,降低了耦合性,适用于多个设备之间的实时通信。发布者发布消息后,不需要等待订阅者的响应,从而提高了系统的响应性能。

可靠性
        MQTT支持消息的持久性传输,确保消息的可靠性,这在物联网应用中非常重要,MQTT可以通过控制可靠性级别来确保消息传递的可靠性。

安全性
        MQTT支持使用TLS/SSL进行加密通信,确保数据传输的安全性。此外,MQTT还支持用户名和密码进行认证,保护客户端和服务器之间的通信安全。

3. MQTT 协议原理

        实现MQTT协议需要:客户端和服务器端

        MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。

        MQTT传输的消息分为:主题(Topic)和负载(payload)两部分

        Topic: 可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload)

        payload: 可以理解为消息的内容,是指订阅者具体要使用的内容

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

订阅(Subscription)

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

会话(Session)

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

主题名(Topic Name)

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

主题筛选器(Topic Filter)

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

负载(Payload)

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

 
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1495988.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

coqui-ai/TTS 案例model文件

GitHub - coqui-ai/TTS: 🐸💬 - a deep learning toolkit for Text-to-Speech, battle-tested in research and production Coqui AI的TTS是一款开源深度学习文本转语音工具,以高质量、多语言合成著称。它提供超过1100种语言的预训练模型库&…

递增三元组(第九届蓝桥杯)

文章目录 题目原题链接思路分析二分做法1二分做法2双指针做法前缀和解法 题目 原题链接 递增三元组 思路分析 由时间复杂度可知需要至少优化到 O ( n l o g n ) O(nlogn) O(nlogn)才行 而纯暴力枚举三个数组的话: O ( n 3 ) O(n^3) O(n3) 可以考虑将b[]作为标志&…

onlyoffice监听https

修改onlyoffice 在开始将您的ONLYOFFICE Docs切换到HTTPS协议之前,您需要创建一个安全证书和证书私钥。将它们放到安装ONLYOFFICE Docs的计算机上的一个文件夹中。 获得证书后,请执行以下步骤: 所有命令都应以管理员权限执行。要以管理员身份…

【HTML】HTML基础7.3(自定义列表)

目录 标签 效果 代码 注意 标签 <dl> <dt>自定义标题</dt><dd>内容1</dd><dd>内容2</dd><dd>内容3</dd> 。。。。。。 </dl> 效果 代码 <dl><dt>蜘蛛侠系列</dt><dd>蜘蛛侠1</dd…

如何远程连接服务?

"天联"是一种远程连接服务&#xff0c;可以实现异地统一管理、随时随地协同办公和远程数据采集管理等功能。 1. 零售、收银软件应用实现异地统一管理 在医药、餐饮、商超等零售行业中&#xff0c;经常需要对分布在不同地点的店铺进行管理。"天联"提供了远…

计算机组成原理-微程序控制器实验——沐雨先生

一、实验目的 1.掌握微程序控制器的组成原理和工作过程。 2.理解微指令和微程序的概念,理解微指令与指令的区别与联系。 3.掌握指令操作码与控制存储器中微程序的对应方法&#xff0c;熟悉根据指令操作码从控制存储器中读出微程序的过程。 二、实验要求 1.做好实验预习&am…

《教育知识与能力》中教师资格证笔试黄金卷(二)

1&#xff0e;古希腊古典时代教育中&#xff0c;以雄辩和与青年智者的问答法而著名的教育家是&#xff08;A &#xff09;。 A&#xff0e;苏格拉底 B&#xff0e;柏拉图C&#xff0e;亚里士多德D&#xff0e;昆体良 2&#xff0e;世界上不同民族的教育往往表现出不同的传统和特…

学习 考证 帆软 FCP-FineBI V6.0 心得

学习背景&#xff1a; 自2024年1月起&#xff0c;大部分时间就在家里度过了&#xff0c;想着还是需要充实一下自己&#xff0c;我是一个充满热情的个体。由于之前公司也和帆软结缘&#xff0c;无论是 Fine-Report 和 Fine-BI 都有接触3年之久&#xff0c;但是主要做为管理者并…

Spark(2)-基础tranform算子(一)

一、算子列表 编号名称1map算子2flatMap算子3filter算子4mapPartitions算子5mapPartitionsWithIndex算子6keys算子7values算子8mapValues算子9flatMaplValues算子10union算子11reducedByKey算子12combineByKey算子13groupByKey算子14foldByKey算子15aggregateByKey算子16Shuff…

内含资料下载丨黄东旭:2024 现代应用开发关键趋势——降低成本、简化架构

作为一名工程师和创业者&#xff0c;创办 PingCAP 是我进入创新世界的一次深潜。这段旅程既有令人振奋的发现&#xff0c;也充满令人生畏的不确定性。作为这次探险之旅见证的 TiDB &#xff0c;现在已在全球服务超过 3000 家企业&#xff0c;其中有已经实现了商业成功的大公司&…

Mantle生态创新Meme项目Puff开启创世Mint,一文了解玩法、空投+Mint教程

大饼马上破前高&#xff0c;Ethereum 的再质押赛道吸引了大量资金&#xff0c;PEPE、DOGE等代币的 Memecoin 也一路飞涨&#xff0c;整个加密市场都充斥着金钱的味道&#xff01;目前&#xff0c;贪婪与恐惧指数已经达到了90&#xff0c;属于极度贪婪区间。越是这样的狂欢时刻&…

数据处理分类、数据仓库产生原因

个人看书学习心得及日常复习思考记录&#xff0c;个人随笔。 数据处理分类 操作型数据处理&#xff08;基础&#xff09; 操作型数据处理主要完成数据的收集、整理、存储、查询和增删改操作等&#xff0c;主要由一般工作人员和基层管理人员完成。 联机事务处理系统&#xff…

解读Linux文件目录权限:srw-rw----

在Linux系统中&#xff0c;文件或目录的权限由10个字符表示&#xff0c;分为四段&#xff1a; 第一个字符&#xff1a;表示文件类型。d代表目录&#xff0c;-代表普通文件&#xff0c;l代表符号链接&#xff0c;s代表套接字&#xff08;socket&#xff09;&#xff0c;c代表字符…

TypeScript学习笔记(上):TypeScript的介绍、安装及常用类型

我对TypeScript的理解就是&#xff0c;TypeScript是增加了类型校验的JavaScript&#xff0c;能够把运行期错误提升至编译期 TypeScript是什么&#xff1f; TypeScript&#xff08;简称&#xff1a;TS&#xff09;是 JavaScript 的超集&#xff08;JS 有的 TS 都有&#xff09…

MySQL-视图:视图概述、使用视图注意点、视图是否影响基本表

视图 一、视图概述二、使用视图注意点三、视图操作是否影响基本表 一、视图概述 在数据库管理系统中&#xff0c;视图&#xff08;View&#xff09;是一种虚拟表&#xff0c;它并不实际存储数据&#xff0c;而是基于一个或多个实际表的查询结果。视图提供了一种对数据库中数据…

机器人编程学习有哪些好处?

机器人编程学习有许多好处&#xff0c;无论是对个人还是对社会都具有重要意义。以下是机器人编程学习的一些好处&#xff1a; 1. **培养计算思维&#xff1a;** 通过机器人编程学习&#xff0c;可以培养逻辑思维、问题解决能力和创新思维。编程过程中需要分析问题、设计算法、…

3月6日龙虎榜复盘:沪指缩量调整 机器人概念股午后大涨

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日缩量震荡&#xff0c;创业板指午后涨超1%&#xff0c;随后上演冲高回落走势。风电、光伏等新能源方向…

软考高级:数据流图概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

恢复IDEA误删除的git提交,提交被删除,尝试恢复提交

​​​​​​ dgqDESKTOP-JRQ5NMD MINGW64 /f/IdeaProjects/workspace/spzx-parent ((8bb112e...)) $ git reflog 8bb112e (HEAD, origin/master, master) HEAD{0}: checkout: moving from master to 8bb112e5ac18dfe4bbd64adfd06363e46b609f21 8bb112e (HEAD, origin/master, …

大华IPC网络摄像机如何保存视频

一、背景 通常网络相机&#xff08;IPC&#xff09;不会自带存储功能&#xff0c;需要接入录像机&#xff08;NVR&#xff09;进行保存。 其中NVR也分软件存储及硬件存储&#xff0c;这里不提&#xff0c;这边单独说FTP存储 二、配置前提 要配置FTP存储需要&#xff1a;①网络…