简体中文
简体中文
English
注册
登录开发者平台
解决方案
行业解决方案
提供从智慧客房、智慧前台到智慧运营等酒店全场景品牌赋能,推进酒店行业数智化变革
一站式智慧照明系统解决方案,赋能企业快速实现人因照明、节能减排的智能化照明升级
综合应用智能化信息,令楼宇具有智慧和生命力,提供投资合理、安全高效、舒适便利的使用空间
快速实现数字化智慧办公空间,有效实现企业增效、降本和节能。
为连锁型品牌商业门店提供完善的管理系统, 提升门店效率
提供从租控授权、租务运营到园区管理等全方位租住解决方案,驱动租住行业智慧转型
融合全屋智能、地产社区等行业场景能力,提供居住空间丰富的产品矩阵和智能体验
IoT 助力校园场景智能化转型, 提升管理效率
全方位赋能开发者实现多场景智慧节能管理解决方案
以 IoT 平台助力中小制造企业, 实现降本、提质、增效
借助丰富硬件生态,一站式构建安全可靠私有化智能平台
为你的业务场景提供全面的 AI 服务及 AI Copilot 开发方案
海量成熟方案,超低研发门槛,极速落地产品智能化
开发者
与志同道合的开发者和专家共同交流
从初创企业到全球领先企业,涂鸦开发者平台协助实现客户成功。
快速获取并体验优秀的开发者案例
服务与支持
生态合作
成为涂鸦服务商,接入涂鸦的另一个选择,帮助更多开发者更快实现智能化
智能互联标识
携手开发者生态合作伙伴联合创新,持续创造互联互通商业价值
聚焦产业变革, 推动人工智能产业发展
智联万物,商者无界
信任中心
信任源于透明
我们严格遵守全球信息安全标准
我们严格遵守全球法规要求
您的数据始终由您掌控
诚邀安全业界同仁共同打造和维护物联网健康生态
支持
提供产品智能化开发全链路的常见问答
7×24一对一客服咨询
技术指导、故障修复以及问题解决
关于我们
全球 AI 云平台服务提供商
探索涂鸦的故事
了解涂鸦的全球视野
涂鸦智能-产品解决方案|行业解决方案|全球智能化平台
涂鸦诚聘全球精英

物联网应用层的MQTT协议MQTT协议及其构成介绍

形状
1

图片100图片100

MQTT(Message Queuing Telemetry Transport,消息队列传输)是在ISO标准(ISO/IECPRF20922)下基于发布/订阅模式的消息协议。该协议适用于TCP/IP协议,是一种发布/订阅型消息协议,适用于硬件性能较差的远程设备和网络状况较差的情况。

MQTT协议的实现需要完成客户端与服务器端的通信,在MQTT协议中,MQTT具有三种身份:发行者(Publish)、代理(服务器)、订户(Subscribe)。在这两种情况下,消息的发行者和订户是客户端,消息代理是服务器。

客户机作为使用MQTT协议的应用程序或设备,始终与服务器建立网络连接,并可以:

(1)发布信息,其他客户可以订阅。

(2)订阅其他客户机发出的邮件。

(3)退订或删除申请的邮件。

(4)从服务器断开。

MQTT服务器也称为“消息代理”(Broker),位于消息发布程序和订户之间,可以:

(1)从客户那里接受联网;

(2)接受由顾客提供的申请资料;

(3)处理客户提出的订户和退订要求;

(4)将应用程序消息转发给订阅客户。

MQTT协议中核心概念。

1)Sender 向 Receiver 发送一个带有消息数据的 PUBLISH 包, 并在本地保存这个 PUBLISH 包。

2)Receiver 收到 PUBLISH 包以后,向 Sender 发送一个 PUBACK 数据包,PUBACK 数据包没有消息体(Payload),在可变头中(Variable header)中有一个包标识(Packet Identifier),和它收到的 PUBLISH 包中的 Packet Identifier 一致。

3)Sender 收到 PUBACK 之后,根据 PUBACK 包中的 Packet Identifier 找到本地保存的 PUBLISH 包,然后丢弃掉,一次消息的发送完成。

4)如果 Sender 在一段时间内没有收到 PUBLISH 包对应的 PUBACK,它将该 PUBLISH 包的 DUP 标识设为 1(代表是重新发送的 PUBLISH 包),然后重新发送该 PUBLISH 包。重复这个流程,直到收到 PUBACK,然后执行第 3 步。

QoS 2:Sender 发送的一条消息,Receiver 确保能收到而且只收到一次,也就是说 Sender 尽力向 Receiver 发送消息,如果发送失败,会继续重试,直到 Receiver 收到消息为止,同时保证 Receiver 不会因为消息重传而收到重复的消息。

QoS 2 使用 2 套请求/应答流程(一个 4 段的握手)来确保 Receiver 收到来自 Sender 的消息,且不重复:

1)Sender 发送 QoS 为 2 的 PUBLISH 数据包,数据包 Packet Identifier 为 P,并在本地保存该 PUBLISH 包;

2)Receiver 收到 PUBLISH 数据包以后,在本地保存 PUBLISH 包的 Packet Identifier P,并回复 Sender 一个 PUBREC 数据包,PUBREC 数据包可变头中的 Packet Identifier 为 P,没有消息体(Payload);

3)当 Sender 收到 PUBREC,它就可以安全地丢弃掉初始的 Packet Identifier 为 P 的 PUBLISH 数据包,同时保存该 PUBREC 数据包,同时回复 Receiver 一个 PUBREL 数据包,PUBREL 数据包可变头中的 Packet Identifier 为 P,没有消息体;如果 Sender 在一定时间内没有收到 PUBREC,它会把 PUBLISH 包的 DUP 标识设为 1,重新发送该 PUBLISH 数据包(Payload);

4)当 Receiver 收到 PUBREL 数据包,它可以丢弃掉保存的 PUBLISH 包的 Packet Identifier P,并回复 Sender 一个 PUBCOMP 数据包,PUBCOMP 数据包可变头中的 Packet Identifier 为 P,没有消息体(Payload);

5)当 Sender 收到 PUBCOMP 包,那么它认为数据包传输已完成,它会丢弃掉对应的 PUBREC 包。如果 Sender 在一定时间内没有收到 PUBCOMP 包,它会重新发送 PUBREL 数据包。

我们可以看到在 QoS2 中,完成一次消息的传递,Sender 和 Reciever 之间至少要发送四个数据包,QoS2 是最安全也是最慢的一种 QoS 等级了。

1)Sender将PUBLISH包和Receiver发送到Receiver,并将此PUBLISH包保存在本地。

2)Receiver接收到PUBLISH包后,将PUBACK包发送给Sender,PUBACK包不包含消息体(Payload),可以改变的头部(Variable header)中有一个包头标识(Packet Identifier),以及它所接收到的Packet Identifier包中的Packet Identifier。

3)Sender接收到PUBACK后,将根据Packet Identifier中的Packet Identifier查找本地保存的PUBLISH包并将其丢弃,同时完成一次发送消息。

4)如果Sender未接收到相应于PUBLISH包的PUBACK,则将该PUBLISH包的DUP标识设置为1(表示已重新发送的PUBLISH包),然后重新发送PUBLISH包。在接收PUBACK之前重复此过程,然后执行步骤3。

QoS2:由Sender发出的消息,Receiver确保接收到并且仅接收到一次,也就是说Sender竭力将消息发送给Receiver,若发送失败,Receiver将继续重试,直到Receiver接收到消息,同时保证Receiver不会接收到重复的消息。

QoS2通过两组请求/回答过程(4段握手)确保Receiver从Sender接收到消息,并且没有重复:

1)Sender以PacketIdentifier为P发送QoS为2的PUBLISH包,并将其保存在本地;

2)Receiver接收到PUBLISH包后的PacketIdentifierP将PUBLISH包保存到本地,回覆Sender一个PUBREC数据包,Packet Identifier为P,PUBREC可变头部。无信息主体(Payload);

3)当Sender接收到PUBREC,它可以安全地丢弃Packet Identifier为P的初始PUBLISH包,与此同时,在对Receiver的PUBREL包进行回复的同时保存PUBREL包,PUBREL数据包可变的头部为P,不存在主体信息;如果发送器在某一段时间内未接收到PUBLISH包,则将PUBLISH包的DUP标识为1,重发PUBLISH包(Payload);

4)当Receiver接收到一个PUBREL包时,它可以丢弃保存的PUBLISH包的Packet Identifier P,回覆Sender一个PUBCOMP数据包,Packet Identifier在可变头部为P,无信息主体(Payload);

5)当Sender接收到一个PUBCOMP包,它认为数据包传输已经结束,它将删除相应的PUBREC包。当Sender未接收到某一PUBCOMP包时,它将重新发送PUBREL包。

在QoS2中,我们可以看到Sender和Reciever之间至少要发送4个包,QoS2是最安全、最慢的QoS级别。

免责声明:凡注明来源的文章均转自其它平台,目的在于传递有价值的AIoT内容资讯,并不代表本站观点及立场。若有侵权或异议,请联系我们处理。
相关标签
相关标签
换一换
形状

智能鞋柜解决方案

传感器智能化

物联网统计列表

智能家庭影院解决方案

智慧食堂功能开发公司

物联网数据

智能系统方案

智能餐具消毒方案分析

智能门锁重要性

空气检测仪解决方案

智能水龙头市场前景

智慧酒店的优势

物联网平台作用

儿童智能手表

智能照明开发

物联网功能

智能防盗系统

工业SaaS

智慧校园集成商

智慧办公空间设计

电饭煲智能化方案

无线技术的作用

智能家居一体化别墅解决方案

智慧用电方案设计

智能防盗报警系统

智能体脂秤开发方案

智能家居在厨房中的表现如何吸引消费者

智慧养老

物联网技术有哪些重大应用

智能奶瓶实用吗

物联网与人工智能

单片计算机原理

智能穿戴设备如何使用

智能应用

智能消毒柜是如何工作的

全屋智能设计方案

物联网是什么意思

智能传感器

激光传感器开发

垃圾桶智能化方案

智能家居优势

物联网与智能设备

护眼照明

智慧食堂案例分析

体育馆设计方案

软硬件平台

物联网应用

弱电工程

虹膜识别技术

智慧灯杆建设

智慧社区养老方案

无尾电器

车站人脸识别技术

物联网社区

物联网技术价值

智慧办公空间设计案例

智慧酒店功能模块组成

智能眼镜

空调究竟怕什么

工厂能耗管控方案

零售物联网安全

嵌入式

智能扫地机器人工作原理

物联网连接

AI玩具

OEM硬件

智慧用电案例分析

家居智能化方案

人工智能优势

推动城市能源转型的动力

IoT技术是如何应用

无源物联网

物联网企业

工厂iot解决方案

智慧节能方案公司

云存储发展

照明用白光LED

娱乐数码产品

电子产品开发方案

温湿度传感器公司

智慧图书馆设备厂家

物联网基础架构

物联网技术

老人照护

智能芯片

智能马桶与传统马桶

户外电源

智能打印

温控品类解决方案

智能烤箱

智能垃圾桶方案

智能家居十大品牌

智能别墅设计

人脸识别技术应用案例

智能穿戴市场

生产降耗解决措施

农业传感器应用场景

智能家居发展阶段

共享咖啡机

智慧食堂系统的意义

即刻开启您的物联网之旅
即刻开启 您的物联网之旅
遇到问题了么?联系专属客户经理在线解答