从物联网需求到MQTT协议(下)|学习笔记

简介: 快速学习从物联网需求到MQTT协议(下)

开发者学堂课程【大咖带你聊物联网:从物联网需求到MQTT协议(下)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/571/detail/7779


从物联网需求到 MQTT 协议(下)

一、理解 MQTT 协议

二、MQTT 特点

三、MQTT 传输消息分类

四、MQTT 的组成

五、实例感受 MQTT 协议的过程和特点

六、HTTP 协议与 MQTT 协议对比

一、理解 MQTT 协议

TCP/IP 参考模型可以分为四层:应用层、传输层、网络层、链路层。TCP 和 UDP 位于传输层,应用层常见的协议有HTTP、FTP、SSH 等。MQTT 协议运行于 TCP 之上,属于应用层协议,因此只要是支持 TCP/IP 协议栈的地方,都可以使用 MQTT。

实现 MQTT 协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT 协议中有三种身份:发布者( Publish )、代理( Broker )(服务器)、订阅者( Subscribe )。其中,消息的发布者和订阅者都客户端,消息代理是服务器,消息发布者可以同时是订阅者。


二、MQTT 特点

小型传输,开销很小(固定长度的头部是⒉字节),协议交换最小化,以降低网络流量。

1、使用发布/订阅消息模式,提供一对多的消息发布。

2、小型传输,开销很小(固定长度的头部是2字节),协议交换最小化,以降低网络流量。

3、有 Qo5,三种消息发布服务质量:

"至多一次,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。

"至少—次",确保消息到达,但消息重复可能会发生。

“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。

4、这个轻量级协议可在严重受限的设备硬件和高延迟/带宽有限的网络上实现。


三、MQTT传输消息分类

MQTT传输的消息分为:主题( Topic )和负载( payload )两部分:

(1) Topic,可以理解为消息的类型,订阅者订阅( Subscribe )后,就会收到该主题的消息内容( payload ) ;

(2) payload ,可以理解为消息的内容,是指订阅者具体要使用的内容


四、MQTT 的组成

(1)固定头( Fixed header )。存在于所有 MQTT 数据包中,表示数据包类型及数据包的分组类标识。它是有两个字节,第一个字节 4Byte 用于传输 MQTT 的数据包类型。

包括下面这些连接、发布,指示这个包的类型,另外,后面四个字节大多数是保留的。主要是发布的时候可以定义 QS 和重传和回传的特性。

(2)可变头( Variable header )。存在于部分 MQTT 数据包中,数据包类型决定了可变头是否存在及其具体内容。MQTT 数据包中包含一个可变头,它驻位于固定的头和负载之间。

可变头的内容因数据包类型而不同,较常的应用是作为包的标识。不同的包类型,它定义的内容也不一样。

(3)消息体( Payload )。存在于部分 MQTT 数据包中,表示客户端收到的具体内容。


五、实例感受 MQTT 协议的过程和特点

进入阿里 LoT 平台那这里,首先展示一下 LoT 平台的一些特点,首先如何进入这里简单介绍一下,在产品服务里面,选择互联网,可以看到在业务服务里面有物联网平台,点击进去就可以看到物联网平台这里没有快速入门,点开设备管理里面选择产品,这里已经创建好的产品,第一次进入的时候可以创建自己的产品,可以选择技术百分高级版,这里是一个计数板,计数板之后创建之后这里产生了一个重要的一个 Productkey ,

Productkey 产品创建之后有平台分配给我了一个 key 来标注这个产品的,也就是说一个公司可能有多个产品,那么针对这个产品会给一个产品编号,这个产品编号定了之后,就可以在这个产品下添加设备。之后可以按照产品分类,刚刚建立的 Ailibox ,这个产品已经建立好了两个设备,可以继续添加我的设备。

确定之就会产生三个重要的数据,刚刚已经产生一个 ProductKey ,第二个是 devicename ,这是刚刚定义的,第三个就是 DeviceSecret ,密码是根据归属的产品号,和产品设备名称和设备密码,也就是实际上是一个设备,一个密码。

产生之后,就会多了一个设备,但是先不用这个设备,已经创建好的两个设备可以看到点击查看之后这个设备名称一样,关键的三个叫三元组,同时密码总被隐藏起来。

之后就可以用这个三元组产生接入的关键信息,然后让设备接入到平台,用两个软件分别接入阿里LT平台,第一个就是刚刚创建的第一个设备,AiliboxGPS,第二个是 Ailibox GPS2 ,点击连接之后,就可以连上平台,那连上之后的领域它就会显示成绿色,如果连接错误就会显示成红色,有错误的说明,连接之后可以看到每一个设备,它默认会产生几个 topic ,产生三个 topic ,设备具备的订阅的权限,也可以进行消息发布。下面用抓包工具来看一下 MQTT 的通信过程以及具体的协议内容。

首先打开抓包工具,同时打开,刚刚已经建立好的,能够连接到阿里 LOT 平台的这个工具,同时,这个配置参数已经按照的案例的要求已经配置好了,然后现在设备是可以连接的,先看看,然后打开抓包工具,监控 MQTT 数据,点击连接,这时候已经有 MQTT 的包发出来,然后并且有其它连接响应,命令等等,这些包信息已经发出来了,然后关闭监控,首先来看连接的包年包里面,它显示的就是包头信息、信息的形式、连接命令消息长度,但是虽然是表达了这个含义,大家可以看到,比如说第一个消息类型,还记得结构的描述,这里面只用了一个 byte 来表示。

对于处理器来说,它只是处理一个字节的信息。这样的处理方式有什么好处?

当用串口来传输数据的时候,就是一个字节一个字节的传输到一个字节,传输过来了之后,直接分解分析里面的01代码,就可以对数据进行了识别,同样的连接返回的命令,也看到这个包的内容是非常短的,每一个信息上面是它表达表达的含义,下面,就是它实际对应的一个二进制的一个字符,所以整个在传输的时候所需要的带宽开销跟处理开销都非常的小,这就是 MQTT 的具体的结构,它的优势在物联网里面是非常明显的。


六、HTTP 协议与 MQTT 协议对比

HTTP

MQTT

机密性

协议开销性

适应不稳定的网络

低功耗

服务器信息推送

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
7月前
|
消息中间件 安全 物联网
海量接入、毫秒响应:易易互联基于 Apache RocketMQ + MQTT 构筑高可用物联网消息中枢
易易互联科技有限公司是吉利集团旗下专注于换电生态的全资子公司,致力于打造安全、便捷、便宜的智能换电网络。公司依托吉利GBRC换电平台,基于电池共享与车辆全生命周期运营,已布局超470座换电站,覆盖40多个城市,计划2027年达2000座。面对海量设备高并发连接、高实时性要求及数据洪峰挑战,易易互联采用阿里云MQTT与RocketMQ构建高效物联网通信架构,实现稳定接入、低延迟通信与弹性处理,全面支撑其全国换电网络规模化运营与智能化升级。
430 1
海量接入、毫秒响应:易易互联基于 Apache RocketMQ + MQTT 构筑高可用物联网消息中枢
|
7月前
|
数据采集 传感器 监控
Modbus 与 MQTT 协议兼容:MyEMS 的泛在能源数据采集技术实现
MyEMS深度融合Modbus与MQTT协议,破解能源数据采集中协议碎片化、网络异构、数据孤岛等难题。通过Modbus接入95%以上工业设备,实现现场数据精准“拉取”;依托MQTT构建高效物联网传输通道,支持多源数据主动“推送”与云端集成。边缘侧采集规整,中心侧汇聚分析,形成统一、可靠、低延迟的数据流。该架构兼具高兼容性、强扩展性与低运维成本,广泛应用于工业园区、商业楼宇及集团型企业,支撑实时监控、AI分析与跨系统融合,打造泛在互联的能源数据底座,助力企业实现全面智慧能源管理。
470 6
|
11月前
|
物联网
(手把手)在华为云、阿里云搭建自己的物联网MQTT消息服务器,免费IOT平台
本文介绍如何在阿里云搭建自己的物联网MQTT消息服务器,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
3340 42
|
11月前
|
物联网
如何在腾讯云等平台搭建自己的物联网MQTT服务器Broker
物联网技术及MQTT协议被广泛应用于各种场景。本文介绍物联网MQTT服务助手下载,如何搭建自己的物联网平台,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
776 37
|
数据可视化 关系型数据库 MySQL
嵌入式C++、STM32、MySQL、GPS、InfluxDB和MQTT协议数据可视化
通过本文的介绍,我们详细讲解了如何结合嵌入式C++、STM32、MySQL、GPS、InfluxDB和MQTT协议,实现数据的采集、传输、存储和可视化。这种架构在物联网项目中非常常见,可以有效地处理和展示实时数据。希望本文能帮助您更好地理解和应用这些技术,构建高效、可靠的数据处理和可视化系统。
769 82
|
10月前
|
监控 安全 Java
Java 开发中基于 Spring Boot 3.2 框架集成 MQTT 5.0 协议实现消息推送与订阅功能的技术方案解析
本文介绍基于Spring Boot 3.2集成MQTT 5.0的消息推送与订阅技术方案,涵盖核心技术栈选型(Spring Boot、Eclipse Paho、HiveMQ)、项目搭建与配置、消息发布与订阅服务实现,以及在智能家居控制系统中的应用实例。同时,详细探讨了安全增强(TLS/SSL)、性能优化(异步处理与背压控制)、测试监控及生产环境部署方案,为构建高可用、高性能的消息通信系统提供全面指导。附资源下载链接:[https://pan.quark.cn/s/14fcf913bae6](https://pan.quark.cn/s/14fcf913bae6)。
2077 0
|
监控 物联网 网络性能优化
【杂谈】-MQTT与HTTP在物联网中的比较:为什么MQTT是更好的选择
通过上述分析,可以看出MQTT在物联网应用中的确是更好的选择。其高效的通信模型、低带宽消耗、稳定的连接保持机制以及可靠的消息质量保证,使其在各种物联网场景中都能表现出色。开发者在设计和实现物联网系统时,应优先考虑采用MQTT协议,以充分发挥其在资源受限环境下的优势,提升系统的整体性能和可靠性。
2758 26
|
数据采集 传感器 监控
多协议网关BL110钡铼6路RS485转MQTT协议云网关
BL110钡铼6路RS485转MQTT协议云网关是一款高性能、易配置的工业级设备,适用于各种需要远程监控和数据采集的物联网应用场景。通过将传统RS485设备的数据转换为MQTT协议并上传至云平台,实现了设备的远程管理和智能控制,极大地提升了系统的管理效率和响应速度。
565 2
|
网络协议 物联网 网络性能优化
物联网协议比较 MQTT CoAP RESTful/HTTP XMPP
【10月更文挑战第18天】本文介绍了物联网领域中四种主要的通信协议:MQTT、CoAP、RESTful/HTTP和XMPP,分别从其特点、应用场景及优缺点进行了详细对比,并提供了简单的示例代码。适合开发者根据具体需求选择合适的协议。
678 5
|
消息中间件 监控 物联网
MQTT协议对接及RabbitMQ的使用记录
通过合理对接MQTT协议并利用RabbitMQ的强大功能,可以构建一个高效、可靠的消息通信系统。无论是物联网设备间的通信还是微服务架构下的服务间消息传递,MQTT和RabbitMQ的组合都提供了一个强有力的解决方案。在实际应用中,应根据具体需求和环境进行适当的配置和优化,以发挥出这两个技术的最大效能。
1280 0

相关产品

  • 物联网平台