欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > Linux平台MQTT测试抓包分析

Linux平台MQTT测试抓包分析

2025/5/6 4:32:57 来源:https://blog.csdn.net/gang542725/article/details/147072604  浏览:    关键词:Linux平台MQTT测试抓包分析

Linux平台搭建MQTT测试环境-CSDN博客基于这里的测试代码抓包

sudo tcpdump -i any -w mqtt1.cap

上述源码中 tcp://localhost:1883

配置连接:

  • Broker Address: localhost
  • Port: 1883

整体通信流程

1. Subscriber和Broker(代理服务器)建立连接

  • 客户端向Broker发送‌CONNECT报文‌,包含:

    • Client ID‌:唯一标识客户端的ID(若为clean session=true,Broker不保存会话状态)。
    • 认证信息‌:如用户名、密码(可选)。
    • 遗嘱消息(Last Will)‌:客户端异常断开时,Broker自动发布的预设消息。
    • 心跳间隔(Keep Alive)‌:客户端定期发送心跳包维持连接。
  • Broker → 客户端
    Broker返回‌CONNACK报文‌,确认连接成功或失败(包含状态码)。

2. 订阅主题(Subscriber)

  • Subscriber → Broker
    订阅者发送‌SUBSCRIBE报文‌,指定要订阅的‌主题(Topic)‌(支持通配符+#,如sensor/+/temperature)。

  • Broker → Subscriber
    Broker返回‌SUBACK报文‌,确认订阅成功及QoS等级。

 3. Publisher和Broker(代理服务器)建立连接

4. 发布消息(Publisher)

  • Publisher → Broker
    发布者发送‌PUBLISH报文‌,包含:

    • Topic‌:消息的主题(如sensor/room1/temperature)。
    • Payload‌:消息内容(二进制或文本)。
    • QoS等级‌:服务质量级别(0、1、2)。
      • QoS 0‌:最多一次(可能丢包)。
      • QoS 2‌:精确一次(需两次握手)。
      • QoS 1‌:至少一次(需确认)。
    • Broker → Subscriber
      Broker根据主题匹配规则,将消息转发给所有订阅该主题的客户端。

 5. 消息确认(QoS 1/2)

  • QoS 1‌:接收方返回‌PUBACK报文‌确认收到。
  • QoS 2‌:发送方和接收方通过‌PUBREC/PUBREL/PUBCOMP报文‌完成两次握手,确保消息不重复。

6. 取消订阅

  • Subscriber → Broker
    发送‌UNSUBSCRIBE报文‌,移除对特定主题的订阅。

  • Broker → Subscriber
    返回‌UNSUBACK报文‌确认。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词