目前主流的MQTT 3.1.1和MQTT 5.0协议介绍

举报
DS小龙哥 发表于 2024/07/25 10:07:02 2024/07/25
【摘要】 目前主流的MQTT 3.1.1和MQTT 5.0协议介绍

一、MQTT协议介绍

MQTT(Message Queuing Telemetry Transport)协议是一种轻量级的、基于发布/订阅模式的消息传输协议,专为在硬件性能受限、网络状况不佳的远程设备和环境中运行而设计。MQTT协议工作在TCP/IP协议族上,通过最小化传输开销和协议交换来有效减少网络流量,使其特别适用于物联网(IoT)领域中的设备间通信。

MQTT协议具有以下几个主要特点:

  1. 开放性和轻量级:MQTT是开放的消息协议,简单、易于实现。它采用发布/订阅模式,允许一对多的消息发布,使设备能够灵活地进行通信。
  2. 可靠性:MQTT支持三种不同的消息服务质量(QoS)等级,包括QoS 0(最多一次)、QoS 1(至少一次)和QoS 2(恰好一次),以确保消息的可靠传输。此外,MQTT还提供了心跳机制,用于保持客户端与服务器之间的连接状态。
  3. 高效性:MQTT协议具有极小的传输开销,包括1字节的固定报头和可选的2字节心跳报文。这种设计使得MQTT协议能够在带宽有限的情况下高效地传输数据。
  4. 灵活性:MQTT支持多种消息内容格式,包括二进制、文本等,并且支持多种编程语言实现。这使得MQTT协议能够轻松地与各种设备和系统进行集成。
  5. 安全性:MQTT协议支持TLS/SSL加密连接,确保数据在传输过程中的安全性。此外,MQTT还支持多种认证和授权机制,如用户名/密码、OAuth 2.0等,以保护设备免受未经授权的访问。

MQTT协议主要由发布者(Publisher)、代理(Broker)和订阅者(Subscriber)三个主要组件组成。发布者负责将消息发布到特定的主题(Topic),而订阅者则通过订阅这些主题来接收相关的消息。代理作为中介,负责接收来自发布者的消息,并将其传递给所有已订阅该主题的订阅者。这种基于主题的发布/订阅模式使得MQTT协议能够灵活地支持各种物联网应用场景,如智能家居、工业自动化、远程监控等。

MQTT协议是一种高效、可靠、灵活的轻量级消息传输协议,特别适用于物联网领域中的设备间通信。其开放性和轻量级设计使得MQTT协议能够轻松地与各种设备和系统进行集成,为物联网应用提供强大的支持。

二、MQTT3.1.1 和 MQTT5.0

目前主流的MQTT协议版本主要有两个:MQTT 3.1.1和MQTT 5.0。

  1. MQTT 3.1.1:
    • 这是MQTT协议的一个较早且广泛使用的版本。
    • 它提供了基本的发布/订阅消息模式,支持一对多的消息发布,解除了应用程序的耦合。
    • 基于TCP/IP提供网络连接,同时也有基于UDP的版本,称为MQTT-SN。
    • 支持QoS(服务质量)等级,允许根据消息的重要性设置不同的服务质量等级。
    • 具有小型传输、开销小的特点,协议交换最小化,以降低网络流量。
    • 使用will遗嘱机制来通知客户端异常断线。
    • 基于主题发布/订阅消息,对负载内容屏蔽的消息传输。
    • 支持心跳机制以保持连接状态。
  2. MQTT 5.0:
    • 作为MQTT协议的最新版本,它在3.1.1版本的基础上增加了许多新特性和改进。
    • 提供了更多的会话管理功能,如共享订阅和会话持久化。
    • 增强了认证和授权机制,包括使用TLS加密连接和OAuth 2.0进行认证。
    • 引入了新的QoS级别3,提供了更加可靠的消息传递保证。
    • 增加了消息过期时间、主题别名和响应主题等特性,以优化消息传输和处理。
    • 提供了更好的错误处理和恢复机制,以及更加灵活的连接和断开方式。

MQTT 3.1.1版本已经足够满足大多数物联网应用的需求,并且由于其广泛的兼容性和稳定性而被广泛使用。而MQTT 5.0版本则提供了更多的高级特性和改进,适用于需要更高性能和更复杂功能的场景。在选择使用哪个版本的MQTT协议时,需要根据具体的应用需求和技术环境来做出决策。

三、MQTT协议与NBIOT的区别

NBIOT( NarrowBand Internet of Things)与MQTT协议之间是互补的技术,它们在物联网(IoT)领域共同发挥作用,但各自负责不同的层面和功能。

NBIOT是一种低功耗广域网(LPWAN)技术,专为物联网设备设计,特别是在需要远距离通信、低功耗和大量连接的场景下。NBIOT利用现有的蜂窝网络基础设施,提供了更深层次的网络覆盖,使得设备即使在地下室或偏远地区也能保持连接。它适用于发送小数据包,如传感器读数或简单的控制命令,非常适合智慧城市、智能农业、远程监控等应用。

MQTT则是一种基于发布/订阅模式的轻量级消息传输协议,它位于应用层,设计用于在低带宽、高延迟或不可靠的网络环境中高效传输数据。MQTT通过一个称为Broker的中间服务器来实现设备间的通信,设备可以发布消息到特定主题,其他订阅了该主题的设备可以接收这些消息。这种模式简化了设备间的数据交换,增强了系统的可扩展性和灵活性。

两者之间的关系在于,NBIOT作为底层的无线通信技术,可以作为承载MQTT协议的一种网络连接方式。换句话说,物联网设备通过NBIOT网络连接到互联网后,可以使用MQTT协议来进行高效的数据传输和设备间通信。这样结合,既利用了NBIOT的广域覆盖和低功耗优势,又发挥了MQTT在数据传输上的高效与灵活性,共同促进了物联网应用的普及和发展。例如,一个使用NBIOT模块的远程传感器可以将收集到的数据通过MQTT协议发布到云端服务器,而服务器或其他订阅者则可以实时获取这些数据进行分析或触发相应动作。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。