MQTT 5协议你知道多少?

news2024/11/24 2:05:27

一、MQTT 5简介

MQTT协议是当今世界上最流行、接受度最高的物联网协议。自推出以来,MQTT已经成功地连接了各种规模的部署中的无数受限设备。

流行的用例包括从连接汽车、制造系统、物流和军事到企业聊天应用程序和移动应用程序。MQTT协议的广泛使用催生了进一步发展MQTT规范的高要求。在此背景下,MQTT v5应运而生。

 

二、MQTT发展历程

在20世纪90年代末,Andy Stanford-Clark(IBM)和Arlen Nipper(Cirrus Link)发明了MQTT,用于通过卫星网络监测石油和天然气管道。他们设计的MQTT协议是开放的、简单的、容易实现的。

MQTT是一个极其轻量级的协议,在保证可靠传递的前提下,最大限度地减少了网络带宽和设备资源需求。这个设计允许从一台服务器上支持成千上万的小型设备。这些特点使得MQTT非常适合在处理能力有限、内存容量小、延迟高的受限环境和低带宽网络中使用,如物联网(IoT)

三、MQTT 发展时间线

虽然MQTT协议是在1999年发明的,但它的迅速崛起是在几年之后。开源与开放标准的结合是一个成功的组合,MQTT社区迅速发展。在MQTT 3.1.1作为OASIS和ISO标准发布5年后,MQTT 5也随之而来。2019年3月,MQTT 5作为新批准的OASIS和ISO标准取代了MQTT3.1.1的位置。

 

四、MQTT 5 设计目标

负责规范和标准化 MQTT 的 OASIS 技术委员会 面临着复杂的平衡行为:

  • 在不增加开销或降低易用性的情况下,增加长期用户需要的功能;
  • 在不增加不必要的复杂性的情况下提高性能和可扩展性。

技术委员会为MQTT 5规范确定了以下功能目标:

  • 增强可扩展性和大规模系统的功能
  • 改进错误报告
  • 正式确定通用模式,包括能力发现和请求响应
  • 包括用户属性在内的可扩展性机制
  • 性能改进和对小型客户端的支持

基于这些目标和现有 MQTT 部署的需求,技术委员会指定了几个非常有用的新功能。像虹科HiveMQ MQTT Broker企业版这样的复杂MQTT代理已经为消息和客户端会话实现了共享订阅和生存时间等功能。随着MQTT 5的发布,这些热门的功能成为官方标准的一部分。

增强可扩展性和大规模系统是新规范的关键目标之一。MQTT 3.1.1证明了MQTT是一个独特的、可扩展、有状态的物联网协议。虹科HiveMQ MQTT Broker企业版在云基础设施上为一个MQTT代理集群实现了1000万个MQTT同时连接的基准测试。MQTT 5的设计旨在使MQTT代理更容易扩展到巨大数量的并发连接的客户端。

五、为什么没有MQTT 4?

你可能会好奇,为什么MQTT 3.1.1的后续版本是MQTT 5?

答案很简单,这是因为MQTT协议在CONNECT数据包中定义了一个固定的报头,这个头包含了一个协议版本的单字节值。

如果你检查一下网络上的几个CONNECT数据包,你会注意到一些有趣的事情。MQTT 3.1的协议版本值为 "3",MQTT 3.1.1的协议版本值为 "4"。为了使线上的协议版本值与官方协议版本名称同步,新的MQTT版本在协议名称和值上都使用 "5"。

六、关于虹科 HiveMQ

虹科HiveMQ 是一个基于 MQTT 数据传输的通信平台,旨在将数据快速、高效、可靠地传递给连接的物联网设备,HiveMQ 使用 MQTT 协议在设备和企业平台之间进行实时、双向的数据推送。

 

虹科HiveMQ 的建立是为了解决企业在构建新的物联网应用时面临的一些关键技术挑战,包括:

  • 构建可靠、可扩展的关键业务物联网应用
  • 快速的数据交付,以满足终端用户对响应式物联网产品的期望
  • 通过有效利用硬件、网络和云资源降低运营成本
  • 将物联网数据整合到现有的企业系统中


更多精彩资讯 欢迎关注博主 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/365800.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【离线数仓-5-数据仓库环境准备】

离线数仓-5-数据仓库环境准备离线数仓-5-数据仓库环境准备1.数据仓库运行环境1.Hive环境搭建1.Hive引擎2.Hive on Spark配置2.Yarn环境配置2.数据仓库开发环境3.模拟数据准备离线数仓-5-数据仓库环境准备 1.数据仓库运行环境 数仓之外需要做的事情: 数据安全认证&…

OSCP-课外2(git泄露、SQL注入)

难度 中 主机发现&端口扫描 sudo arp-scan -l sudo nmap -p- 192.168.65.128 sudo nmap -p22,80 -sC -sV 192.168.65.128 首先,发现了.git目录,可能通过代码审计发现漏洞的存在。 其次,发现了一个描述“login.php修改的更安全”,说明以前login.php版本可能存在安全…

活动预告 | 2023 Meet TVM 开年首聚,上海我们来啦!

内容一览:从去年 12 月延期至今的 TVM 线下聚会终于来了!首站地点我们选在了上海,并邀请到了 4 位讲师结合自己的工作实践,分享 TVM 相关的开发经验,期待与大家线下相聚~ 关键词:2023 Meet TVM 线下活动 自…

操作系统(day15) -- I/O设备

I/O设备的基本概念与分类 I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部分。 I/O设备按使用特性可以分为以下类型: 人机交互类设备。用于与计算机用户之间交互的设备,如打印机、…

华为OD机试用Python实现 -【组合出合法最小数】(2023-Q1 新题)

华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:blog.csdn.net/hihell/category_12199275.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 组合出合法最小数…

原子化 CSS 实践

原子化 CSS 实践 jcLee95 的CSDN 博客 邮箱 :291148484163.com CSDN 主页:https://blog.csdn.net/qq_28550263?spm1001.2101.3001.5343 本文地址:https://blog.csdn.net/qq_28550263/article/details/129178547 目 录1. 概述 2. 原子化…

Flutter+【三棵树】

定义 在Flutter中和Widgets一起协同工作的还有另外两个伙伴:Elements和RenderObjects;由于它们都是有着树形结构,所以经常会称它们为三棵树。 这三棵树分别是:Widget、Element、RenderObject Widget树:寄存烘托内容…

代码随想录---二叉树的总结和二叉树的定义

二叉树的种类: 满二叉树:树的所有节点都是满,即都有左右孩子。 这棵二叉树为满二叉树,也可以说深度为k,有2^k-1个节点的二叉树。 完全二叉树:完全二叉树的定义如下:在完全二叉树中&#xff0c…

数据结构—堆(完全解析)

数据结构—堆(完全解析) 数据结构——堆(Heap)大根堆、小根堆 详解数据结构——堆 堆的基本存储 【从堆的定义到优先队列、堆排序】 10分钟看懂必考的数据结构——堆 【堆/排序】堆排序的两种建堆方法 【算法】排序算法之堆排序 C…

【Tips】通过背数据了解业务

学习资料:做了三年数据分析,给你的几点建议 1. 通过背数据了解业务 原文: 总结: 方法:每天早上去到公司第一件事情就是先背一遍最新的各种指标。原理: 数据敏感性就是建立在对数据的了解和熟悉上。业务的…

使用Autoware标定工具包联合标定相机和激光雷达

前面文章介绍了,安装autoware标定工具包、ros驱动usb相机、robosense-16线激光雷达的使用,本文记录使用Autoware标定工具包联合标定相机和激光雷达的过程。1.ros驱动相机,启动相机;启动激光雷达2.联合录制bag包rosbag record -a 参…

由浅入深了解超文本传输协议http

什么是超文本传输协议? 超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 通过HTTP或HTTPS协议请求…

8年测开经验面试28K公司后,吐血整理出1000道高频面试题和答案

1、python的数据类型有哪些 答:Python基本数据类型一般分为:数字、字符串、列表、元组、字典、集合这六种基本数据类型。 浮点型、复数类型、布尔型(布尔型就是只有两个值的整型)、这几种数字类型。列表、元组、字符串都是序列。 2、列表和元组的区别 答…

postgresql 数据库 主从切换 测试

postgresql 数据库 主从切换 测试 文章目录postgresql 数据库 主从切换 测试前言环境:主从切换1. 查看数据库状态:2. 备库切换主库3. 旧主库切换成备库;4 查看状态后记前言 因数据库等保需要,需要对老系统的数据库进行主从切换来…

【企业云端全栈开发实践-2】Spring Boot Controller

本节目录一、Web入门二、控制器1、Controller2、RestController3、路由映射4、Method匹配5、参数传递6、entity实体层一、Web入门 Spring Boot将传统Web开发的mvc、json、tomacat等框架整合,提供了spring-boot-starter-web组件,简化了Web的应用配置。 …

一条推送的背后运营逻辑

每天我们的手机都收到大量信息,大多来自各APP的推送。每收到一条推送,不只是收到了一串简单的文字,背后还有一系列的隐藏逻辑。几年前我也做过“推送背后的女人”……(其实就是干过APP消息推送运营啦~^^~)今天就来分享…

【Java 面试合集】String, StringBuffer和StringBuilder 之间的不同

String, StringBuffer和StringBuilder 之间的不同 1. 概述 嗨,大家好【Java 面试合集】又来了,今天我们分享的主题是String, StringBuffer和StringBuilder 之间的不同。 大家别看这个知识点不难,但是里面的细知识很多…

利用Python实现局部异常因子(LOF)的计算

1 LOF算法 局部异常因子(Local Outlier Factor,LOF)算法是目前比较常用的离群点检测算法,该算法通过一种模糊的手段来判断数据对象是否为异常点。 对象ppp的kkk距离:在数据集DDD中,将对象ppp与距其第kkk远的对象ooo之间的距离定义…

(二十四)、实现评论功能(4)【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】

1&#xff0c;创建reply回复页面 1.1 在comment-item子组件中添加click <view class"comment-item" click"goReply">1.2 methods中添加点击跳转回复页面的方法 //跳转去回复页面goReply() {uni.navigateTo({url: "/pages/reply/reply"})}…

Linux 基础知识之权限管理

目录一、权限的认识二、用户切换三、文件权限1.三类文件访问者2.文件权限类型3.文件访问权限4.文件权限值表示一、权限的认识 权限是对用户所能进行的操作的限制&#xff0c;如果不对用户作出限制&#xff0c;那么碰到恶意用户&#xff0c;就会损害其他用户的利益。 Linux是多用…