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

【网络】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 开源社区

相关文章:

  • NLP系列【自然语言处理的深度学习模型综述】
  • 水池水位自动控制器如何征服污水水池?
  • c#加密证件号的中间部分,改为*号
  • Redis高频面试题——String对象
  • [ESP-IDF]:esp32-camera 使用指南 ESP32S3-OV2640 用例测试
  • 优化非线性复杂系统的参数
  • Linux基础IO(十一)之动态库(基础IO的最后一篇啦!)
  • CentOS系统防火墙服务介绍
  • 发放优惠券
  • 初窥Java内存模型(JMM)
  • 精益数据分析(24/126):聚焦第一关键指标,驱动创业成功
  • 边界凸台建模与实例
  • PGSql查看表结构以及注释信息
  • NAT穿透
  • 通过API接口在自己的独立站系统上架商品信息。(实战案例)
  • 【Java学习笔记】冒泡排序
  • NEGATIVE LABEL GUIDED OOD DETECTION WITH PRETRAINED VISION-LANGUAGE MODELS
  • WHAT - 前端开发书单推荐
  • 【vue】【element-plus】 el-date-picker使用cell-class-name进行标记,type=year不生效解决方法
  • DeepSeek回答过于笼统,提示词如何优化
  • 中信证券:“国家队”未曾减持ETF,应充分相信国家维稳决心
  • 上海银行一季度净赚逾62亿增2.3%,不良贷款率与上年末持平
  • 加拿大财长:加拿大需要抗击美国关税
  • 央行副行长陆磊:国际化程度有效提升是上海国际金融中心建设的一个主要方向
  • 央行研究局局长答澎湃:持续优化跨境金融服务政策工具箱,有效支持企业走出去
  • 上海34年“老外贸”张斌:穿越风暴,必须靠过硬的核心竞争力