MQTT,这个物联网协议的前世今生

好记忆不如烂笔头,能记下点东西,就记下点,有时间拿出来看看,也会发觉不一样的感受.

上篇介绍了MQTT ,今天再详细讲的讲一下这个,深入的了解下这个。
 

目录

一、MQTT 的由来

二、MQTT 的具体实现细节

三、MQTT 对于行业的改变

四、MQTT 未来的发展和期待


一、MQTT 的由来

  • 诞生背景 :20 世纪 90 年代末,工业控制领域常采用轮询机制采集设备数据,但这种方式效率低、网络负载高。当时,IBM 的 Andy Stanford-Clark 和 Arcom(现为 Eurotech)的 Arlen Nipper 在参与一个通过卫星连接石油管道上的传感器与监控设备的项目时,发现传统轮询协议存在诸多不足,如带宽浪费、设备电池消耗快等,于是萌生了开发一种新协议的想法。

  • 最初应用 :1999 年,MQTT 第一个版本诞生,最初名为 “Argo 轻量级有线协议”,后改名为 “MQ Integrator Pervasive Device Protocol”,并被应用于石油管道监控等领域,成功解决了远程设备通信问题。2002 年,该协议被正式命名为 MQTT。

  • 标准化与推广 :2003 年,IBM 和 Eurotech 联合成立 MQTT 协议工作组,推动协议标准化。2014 年,MQTT 被 OASIS 采纳并发布为官方标准(版本 3.1.1),OASIS 成为 MQTT 发展的新归宿。2018 年,MQTT 协议 5.0 版本发布,增加了共享订阅、离线消息等新功能,更加适应物联网应用需求。

二、MQTT 的具体实现细节

  • 协议架构 :基于 TCP/IP 协议族,采用客户端 / 服务器和发布 / 订阅模式。客户端可以是发布者,向服务器(消息代理)发送数据;也可以是订阅者,从服务器接收数据。服务器接收来自发布者的应用消息,并处理订阅和取消订阅的过程,将应用数据推送给作为订阅者的客户端。

  • 消息格式 :MQTT 控制数据包通过 TCP 传输,使用 1883 端口,也可通过 TLS 在 8883 端口上进行安全传输,或使用 WebSocket。每个控制数据包包含一个 2 字节的固定头部,可选的可变头部字段和可选的有效载荷。MQTT v3.1.1 定义了 14 种不同类型的控制数据包,如 CONNECT(客户端到服务器的连接请求)、PUBLISH(客户端到服务器 / 服务器到客户端的发布消息)、SUBSCRIBE(客户端到服务器的订阅请求)等。

  • 连接流程 :客户端向服务器发送 CONNECT 数据包以建立连接,服务器根据连接信息进行验证,如用户名、密码等,并返回CONNACK 数据包。客户端与服务器建立连接后,可以通过 PUBLISH 数据包发布消息,消息包含主题和消息内容。订阅者通过 SUBSCRIBE 数据包向服务器发送订阅请求,服务器将匹配的发布消息推送给订阅者。

  • 消息可靠性 :提供三种服务质量(QoS)级别,QoS 0 为 “最多一次”,消息仅传输一次,无需确认;QoS 1 为 “至少一次”,消息至少传输一次,需要确认;QoS 2 为 “恰好一次”,使用四阶段握手机制确保消息传递。

  • 消息主题与通配符 :消息主题是一个字符串,用于对消息进行分类,结构上类似文件路径,支持层次结构。MQTT 提供了两种通配符,“+” 表示匹配单层主题,“#” 表示匹配多层主题,方便客户端批量订阅相关主题。

三、MQTT 对于行业的改变

  • 推动物联网发展 :MQTT 的轻量级、低带宽消耗、异步通信和可靠性等特性,使其非常适合物联网设备之间的通信。它能够有效解决物联网设备资源受限、网络环境复杂等问题,促进了物联网技术的广泛应用,如智能家居、智能交通、工业物联网等领域,加速了万物互联的进程。

  • 提升系统架构灵活性 :基于发布 / 订阅模式,MQTT 解耦了发布者和订阅者之间的依赖关系,使得系统架构更加灵活。开发人员可以独立开发和部署不同的模块,方便对系统进行扩展和维护,提高了软件系统的可维护性和可扩展性,降低了软件开发的复杂度和成本。

  • 提高资源利用效率 :在传统的客户端 / 服务器模型中,服务器需要同时处理大量客户端的连接和请求,资源消耗较大。而 MQTT 的消息代理可以集中处理消息的分发和传输,客户端只需与代理进行通信,减轻了服务器的负担,提高了资源利用效率,使得软件系统能够在有限的资源下运行更多的设备和应用。

  • 增强软件的实时性与可靠性 :MQTT 协议提供了多种消息发布服务质量,能够根据不同的应用场景选择合适的消息传输可靠性级别,确保消息的及时、准确传输。这对于一些对实时性和可靠性要求较高的软件应用,如工业自动化控制、远程医疗监控等,具有重要意义,有助于提升软件的质量和性能。

四、MQTT 未来的发展和期待

  • 持续优化与演进 :随着物联网技术的不断发展,MQTT 协议也将不断优化和演进。例如,进一步降低协议的开销和延迟,提高消息传输效率;增强协议的安全性,防止数据泄露和恶意攻击;支持更多的设备类型和网络环境,适应不断变化的物联网需求。

  • 与新兴技术融合 :MQTT 有望与人工智能、大数据、边缘计算等新兴技术深度融合。例如,通过与人工智能技术结合,实现对物联网数据的智能分析和处理,为用户提供更精准的服务;与边缘计算结合,将部分数据处理和分析功能下沉到边缘设备,减少云端服务器的负担,提高系统的响应速度和实时性。

  • 拓展应用场景 :除了现有的应用场景,MQTT 在智能家居、智能城市、智能农业、智能医疗等领域的应用将不断拓展和深化。例如,在智能家居中实现更智能的设备联动和场景控制;在智能城市中用于交通流量监测、环境监测、公共设施管理等方面;在智能医疗中实现远程医疗设备的监控和数据传输,为医疗保健服务提供更有力的支持。

  • 促进产业协同发展 :MQTT 协议的广泛应用将促进物联网产业的协同发展。芯片制造商、设备制造商、软件开发商、云服务提供商等产业链各方将围绕 MQTT 协议,形成更加紧密的合作关系,共同推动物联网技术的创新和应用,构建更加完善的物联网生态系统,为用户提供更丰富、更便捷的物联网产品和服务


 相遇相知,让友情更长久 :“codingba” or “码出精彩” 交朋友

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值