IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 物联网之MQTT协议详解基础篇(一)—— MQTT介绍 -> 正文阅读

[嵌入式]物联网之MQTT协议详解基础篇(一)—— MQTT介绍

mqtt

MQTT: The Standard for IoT Messaging

开场白

大概是这么个背景

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

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

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

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

设备MQTT角色
外网服务器MQTT Broker
物联网设备MQTT Client/Publisher
米家appMQTT 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 应用程序需要更高的可靠性和错误处理,以实现关键任务消息传递功能。)

TaQini’s Blog

欢迎关注我的博客,第一时间发布后续文章
TaQini’s Blog

参考链接

Introducing MQTT

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 18:59:12  更:2021-09-11 19:00:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/20 7:13:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码