【译】介绍MQTT 5协议

20 阅读7分钟

原文:www.hivemq.com/blog/mqtt5-…

作者: Mary Brickenstein-Hofschen
发布时间: 2019年10月1日
更新于: 2023年6月29日

MQTT已经巩固了它的地位。它可以连接部署在多种平台的受限设备,也可以建立庞大的连接系统和独立设备网络。从汽车互联网 ,生产系统和物流系统到企业了聊天应用和移动APP,MQTT大量的使用激励了对其自身演变的需求。MQTT 5兑现了自身演变的需求,呈现了一系列令人兴奋的特性和改进。

在这个分为12个部分的MQTT 5基础系列课中,我们会对MQTT 5做一个深度的探究。这个系列课程能够通俗易懂的介绍所有相关主题内容,从协议的基础变化到用户属性,共享订阅,消息负载体格式描述,请求-响应 模型,主题别名,增强认证 和 数据流控制。学完本系列,你将彻底理解MQTT对于IoT的实际贡献,以及如何通过自身的优势增强IoT解决方案的优化能力. 本篇文章,我们将对MQTT起源和之后的演进提供一个高质量的概述。

研究MQTT 5之前,如果你是一个MQTT新手或者想要复习一下,我们提醒你先回顾一下MQTT基础系列, 这将会增强你对MQTT 5 基础改进和基本变化的理解。 

为什么发明MQTT,这个协议是如何发展的?

MQTT协议是由IBM的Andy Stanford-Clark和来自Cirrus Link的Arlen Nipper在90年代末精心创建的,协议用于通过卫星网络监来监测石油和天然气管道数据。他们设计的MQTT具有开放,简单,易实现特点。因此,MQTT作为一种超轻量级协议出现了,它可以节省网络带宽和设备资源,并且确保高可靠传输。它的设计允许成千上万设备连接单台MQTT服务器,这让它更适合受限的环境和低带宽、高延迟的网络 -这恰恰也是IoT生态所需要的条件。

mqtt5-timeline.jpg

MQTT 5 设计的目标

OASIS 技术委员会负责定义和标准化MQTT,对于增加期望已久的功能,OASIS技术委员会面临着复杂的挑战,如:不会新增投入,不能减少使用场景。在不增加复杂性的情况下,他们追求性能提升和可伸缩性。商议之后,技术委员会为MQTT 5确定了一系列功能目标,旨在增强可伸缩性,正式确定了通用模式(如:能力查询 ,请求-响应),并启用可扩展性机制(如用户属性)。

MQTT 5: 为大规模系统而生

MQTT 5的主要目标是提升它处理大规模系统的能力。随着HiveMQ的企业MQTT平台实现了2亿个并发连接的里程碑,MQTT 3.1.1展示出了MQTT在IoT协议中独特的可伸缩性和有状态性。MQTT 5基于MQTT 3.1.1,简化了MQTT服务器进程,使其能够扩展到支持数量惊人的客户端并发连接。

解开疑问: 为什么是MQTT 5,而不是MQTT 3.1.2?

命名规则从MQTT 3.1.1迁移MQTT 5的变动可能有点奇怪,但是,人们希望把用于更新的版本号与协议能力的版本号同步。因此,MQTT 3.1.1之后的下一个重要版本就是MQTT 5.

可以用MQTT 4命名吗?如果不可以,为什么呢?

你可能好奇MQTT 3.1.1的后一个版本为什么是MQTT 5.

答案是惊人的简单: MQTT协议在CONNECT 数据包中定义了一个固定头,头部包含了一个为协议版本设计的单字节值

如果你查看过一些CONNECT数据包,你会注意一件有趣的事情:MQTT 3.1 使用"3"做协议版本号,MQTT 3.1.1 使用的是"4"。为了同步协议版本值和正式的协议版本名称,新版MQTT使用“5”同时表示协议名称和值。

用MQTT 5解锁IoT的力量: 新特性和改进

MQTT 5引入新特性来改善提升性能和增加可靠性,并为客户端和服务器之间的通信提供更好的控制。这些重要的改善措施包括:更好的错误上报机制,增强可伸缩性,改善对离线消息队列的支持。这些改善能确保MQTT处理当代IoT环境下的任何新增的需求。IoT环境中,连接设备的数量和它们产生的数据量正在以指数级增长。MQTT 5的一个重大改进是引入了增强的身份验证机制。在当今世界,网络攻击的风险总是迫在眉睫,这些措施提供了一个更强大的安全框架。使用MQTT 5,用户可以有更多的选择来保护他们的设备和数据,包括使用更复杂的加密算法和密钥管理技术。

此外,MQTT 5引入了共享订阅,允许对多个客户端实例消息进行负载均衡。这样就可以确保人们能够有效地管理许多消息,而不会使单个客户端负载过重。在许多设备并发传输数据的场景中,共享订阅特性非常实用。

此外,MQTT 5还引入了消息属性的概念,允许在每个消息中包含额外的元数据。这对于提供关于传输数据的上下文非常有用,例如时间戳、位置信息或设备状态。

如前所述,从 MQTT 3.1.1到 MQTT 5的转换并不是简单的版本号更新,而是协议能力的一个重大飞跃,解决一些需要改进的方面。带来的结果是:一个更加健壮、可靠和可扩展的协议,更加适合现代IoT应用的需要。

当考虑IoT应用程序使用MQTT时,了解这些变化和改进是非常重要的,因为它们会显著影响IoT系统的性能和可靠性。因此,无论您是开发人员、系统集成商还是终端用户,迈向MQTT 5这一步是IoT通信协议发展中的一个关键进步。

虽然MQTT 5带来了许多好处,它也依赖好的实现。像任其它任何技术升级一样,在你的场景下评估它的实现并确保传输可控可管理是至关重要的。了解MQTT 5的好处和潜在的挑战将有助于确保成功实现协议,并最大限度地发挥这个强大的IoT通信协议的潜在好处。

展望未来,MQTT仍然是IoT领域的重要参与者。使用了MQTT 5,开发人员在设计和实现方案方面有了更多的灵活性,比如:实现方案能够处理现代IoT系统中的各种需求。

MQTT的发展并不会止于5.0版本。MQTT技术委员会已经致力于更进一步的改善和特性,这些特性将继续提高协议的能力。正在进行的这项工作表明了MQTT社区对这项技术的持续增长和进步的坚定承诺,确保 MQTT在可预见的将来仍然是IoT通信的一个有价值且强大工具。

总结

随着技术的不断发展,随着IoT系统需求的不断增长和变化,MQTT 也将不断发展。对于任何在IoT领域工作的人来说,与这些发展保持同步是至关重要的,以确保他们充分利用MQTT和其他相关技术的力量,提供尽可能有效、可靠和安全的IoT解决方案。