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

【网络】MQTT协议

MQTT协议全称是(Message Queuing Telemetry Transport),即消息队列遥测传输协议

是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上

MQTT通信模型

特点:

1、客户端使用它连接服务端

2、高可靠,低开销:提供有序的、可靠的、双向字节流传输

3、消息传输无需知道负载内容

4、使用发布/订阅的消息模式,提供了一对多的消息发布与应用间的解耦

5、提供三种等级的服务质量QoS:

        QoS 0:最多分发一次。消息可能会丢失。

        消息的传递完全依赖底层的TCP/IP网络,协议里没有定义应答和重试。

        消息要么只会到达服务端一次,要么根本没有到达。

        QoS 1:至少分发一次。确保消息到达,但消息重复可能会发生。

        服务器的消息接收由PUBACK消息进行确认。

        如果通信链路或发送设备异常,或者指定时间内没有收到确认消息,

        发送端会重发这条在消息头中设置了DUP位的消息

        QoS 2:只分发一次。确保消息仅到达一次,最高级别的消息传递。

        消息丢失和重复都是不可接受的,使用这个服务质量等级会有额外的开销。

6、很小的传输消耗和协议数据交换,最大限度减少网络流量——固定头部长度 2 bytes

7、异常连接断开发生时,能通知到相关各方:

        Last Will:遗言机制。通知同一主题下的其他设备发送遗言的设备已经断开了连接。

        Testament:遗嘱机制。

        

报文结构:

固定头部
可变头部
数据部分

固定头格式:

剩余长度不包括用于编码剩余长度字段本身的字节数。

使用一个变长度编码方案,对小于 128 的值它使用单字节编码。

更大的值按下面的方式处理。
低 7 位有效位用于编码数据,最高有效位用于指示是否有更多的字节。因此每个字节可以编码 128 个数值和一个延续位(continuation bit) 。
剩余长度字段最大4个字节。


参考文档:

一文读懂MQTT协议-CSDN博客

MQTT协议史上最全解析(纯干货分享)_网络_吾爱技术圈-GitCode 开源社区

http://www.xdnf.cn/news/2176.html

相关文章:

  • Spring-Ai-McpSever从外到内
  • 深入 Vue 核心:通信、生命周期与 API 的全面解析
  • 如何通过电路测量运放的增益带宽积(GBP)和压摆率(SR)
  • vant表单自定义校验
  • 20242817-李臻-课上测试:网络编程
  • 跟着尚硅谷学vue-day5
  • Office 2019 (含Visio+Project)官方IOS 下载
  • 【软件测试学习day5】Selenium自动化测试框架Java环境搭建
  • Shell脚本-for循环应用案例
  • OS库的常用操作
  • 用python进行OCR识别
  • etcher 刻录系统,装系统,ubuntu安装不要联网,grub tryinstall参数记得改为nomodeset
  • datax通过官网工具包,使用Python命令启动时报错
  • Python图像变清晰与锐化,调整对比度,高斯滤波除躁,卷积锐化,中值滤波钝化,神经网络变清晰
  • 多层级的对象如何修改、或json格式
  • Python实验四
  • 2025年保安员证考试题库及答案
  • 深入剖析EM算法:原理、推导与应用
  • CV大模型、NLP大模型与语音处理技术全景解析-AI学习Day5
  • 三维天地智能路径规划引擎:以算法驱动,重新定义智能路径优化技术
  • 前端面试(Vue React)内容目录与备考建议
  • NCCL通信中Group与独立操作的区别
  • OpenCv高阶(九)——背景建模
  • 每天学一个 Linux 命令(31):md5sum
  • SQL语句练习 自学SQL网 基础查询
  • 伟世通与火山引擎深度合作 前沿AI智能座舱解决方案亮相上海车展
  • playwright的简单使用
  • 信令与流程分析
  • 谷歌终止新冠疫情时期结构化数据支持:SEO影响与应对策略
  • 14-DevOps-快速部署Kubernetes