avatar

目录
物联网通讯之MQTT协议基础篇(一)MQTT介绍

好久没发blog了,都快忘记怎么用hexo了2333

哇个坑,身为物联网专业毕业的我貌似没怎么深入了解过这个专业。

最近课题需要,从rpi到arduino,esp8266都有了个接触,通讯协议啥的也懂了一些。

于是。。学下MQTT协议?

MQTT: The Standard for IoT Messaging

开场白

大概是这么个背景

比如小米智能家居目前是这么个流程:

  • 物联网设备通过家里的wifi连接到外网服务器

  • 在外网通过米家app控制就可以家里的物联网设备

其中服务器,app,物联网设备是通过MQTT协议进行消息传递的:

设备 MQTT角色
外网服务器 MQTT Broker
物联网设备 MQTT Client/Publisher
米家app MQTT Client/Subscriber

MQTT协议基础篇 将介绍MQTT 的基本概念(发布/订阅、客户端/代理)和基本功能(连接、发布、订阅),然后介绍MQTT协议的一些特征,包括:Quality of Service, Retained Messages, Persistent Session, Last Will and Testament, Keep Alive

安全性是 MQTT协议中的比较重要的部分,内容也比较多,将在后续的MQTT协议安全篇中介绍。

MQTT介绍

MQTT协议的官方介绍如下:

“MQTT is a Client Server publish/subscribe messaging transport protocol. It is light weight, open, simple, and designed so as to be easy to implement. These characteristics make it ideal for use in many situations, including constrained environments such as for communication in Machine to Machine (M2M) and Internet of Things (IoT) contexts where a small code footprint is required and/or network bandwidth is at a premium.“

Citation from the official MQTT 3.1.1 specification

MQTT 是客户端服务器发布/订阅消息传输协议。 具有轻量、开放、简单、易于实现等特性。这些特性使其非常适合在许多情况下使用,包括受限环境,例如在机器对机器 (M2M) 和物联网 (IoT) 环境中需要少量代码占用空间或网络带宽非常宝贵的环境中的通信。

值得一提的是,与 HTTP 等协议相比,MQTT是一种二进制协议,因此它在传输数据方面表现得更加出色。

历史

MQTT 协议由 Andy Stanford-Clark (IBM) 和 Arlen Nipper (Arcom/Cirrus Link) 于1999 年发明。他们需要一种通过卫星连接石油管道的协议,以最大限度地减少电池损耗带宽。两位发明者为未来的协议规定了以下几个要求:

  • 实现简单 - Simple implementation
  • 保证数据的服务质量 - Quality of Service data delivery
  • 轻量级/高效利用带宽 - Lightweight and bandwidth efficient
  • 数据未知 - Data agnostic
  • 持续的会话意识 - Continuous session awareness

目前这些目标仍然是 MQTT 的核心。 但是,该协议的主要重点已从专有嵌入式系统转变为开放物联网 (IoT) 应用。这种关注点的转变对首字母缩略词 MQTT 所代表的含义造成了很多混淆。简单讲 MQTT 不再被视为首字母缩略词,MQTT 只是作为协议的名称。

MQTT的全称是 MQ Telemetry Transport (MQ 遥测传输)

MQ是指 MQ 系列,IBM 为支持 MQ 遥测传输而开发的产品。当AndyArlen在 1999 年创建他们的协议时,他们以 IBM 产品命名。许多文章错误地将 MQTT 认为是一种*消息队列*(Message Queue)协议。显然,并不是。MQTT 不是传统的消息排队解决方案(尽管在某些情况下可以对消息进行排队)。

在接下来的十年里,IBM 在内部使用了该协议,直到 2010 年他们发布了 MQTT 3.1 作为免版税版本。从那时起,所有人可以实现并使用该协议。

OASIS 标准和当前版本

OASIS 是一个旨在推进标准的开放组织。在MQTT协议发布大约 3 年后, OASIS 宣布将对其进行标准化。标准化过程耗时约1年。2014 年 10 月 29 日,MQTT 成为正式批准的 OASIS 标准。 从 3.1 到 3.1.1 的次要版本更改表明对以前的版本所做的更改很少。

2019 年 3 月,OASIS 批准了新的 MQTT 5 规范。这个新的 MQTT 版本为 MQTT 引入了新功能,这些功能是部署在云平台上的 IoT 应用程序所需的。(部署在云平台上的 IoT 应用程序需要更高的可靠性和错误处理,以实现关键任务消息传递功能。)

参考

https://www.hivemq.com/blog/mqtt-essentials-part-1-introducing-mqtt/

文章作者: TaQini
文章链接: http://taqini.space/2021/09/09/mqtt-beginning/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 TaQini
打赏
  • Wechat
    Wechat
  • Alipay
    Alipay

评论