MQTT学习(一)

MQTT是一种与HTTP类似的应用层协议。

在某些物联网应用中,MQTT优于HTTP。
在这里插入图片描述
首先,HTTP是用于客户端服务器计算的以文档为中心的请求-响应协议。
HTTP是万维网的基础,但它不是专门为机器之间通信而设计的。

MQTT是一种机器对机器、以数据为中心的轻量级协议。用于在资源受限的环境中运行。

许多物联网项目要求设备在各种资源有限下运行。
在这里插入图片描述
与HTTP中的直接客户端服务器交互不同。
在这里插入图片描述
MQTT在发布/订阅范例下运行,中间有MQTT代理。

在这里插入图片描述
客户端可以将主题发布到MQTT代理或订阅主题。

MQTT还允许MQTT客户端和代理之间的持久连接,以及不同的服务质量级别。
在这里插入图片描述
连接到MQTT代理的所有设备都是MQTT客户端。
MQTT客户端的范围从计算机到移动电话,再到小型受限的传感器设备。

MQTT代理是一个MQTT服务器。

阿里云物联网简介

产品:设备的集合,通常指一组具有相同功能的设备。物联网平台为每个产品颁发全局唯一的productKey。每个产品下最多可以包含50万个设备。

设备:归属于某个产品下的具体设备。物联网平台为设备颁发产品内唯一的证书DeviceName。设备可以直接连接物联网平台,也可以作为子设备通过网关连接物联网平台。

Topic:Topic是UTF-8字符串,是发布(Pub)/订阅(Sub)消息的传输中介。可以向Topic发布或者订阅消息。

Topic类:同一产品下不同设备的Topic集合,用 p r o d u c t K e y 和 {productKey}和 productKey{deviceName}通配一个唯一的设备,一个Topic类对一个ProductKey下所有设备通用。

在这里插入图片描述

  • 设备接入:传统开发需要搭建基础设施,联合嵌入式开发人员与云端开发人员共同开发。开发工作量大,效率低。基于阿里云物联网平台的开发,提供设备端SDK,快速连接设备上云,效率高。同时支持全球设备接入、异构网络设备接入、多环境下设备接入和多协议设备接入。
  • 性能:传统开发需要自行实现扩展性架构,极难做到从设备粒度调度服务器、负载均衡等基础设施。基于阿里云物联网平台的开发,具有亿级设备的长连接能力、百万级并发处理能力,架构支撑水平性扩展。
  • 安全:传统开发需要额外开发、部署各种安全措施,保障设备数据安全是个极大挑战。基于阿里云物联网平台的开发提供多重防护,保障设备数据安全。设备认证保障设备安全与唯一性。传输加密保障数据不背篡改。云盾护航和权限校验保障云端安全。
  • 传统开发需要自行发现宕机,并完成迁移。迁移时服务会中断。稳定性无法保障。而基于阿里云物联网平台的开发,服务可用性高达99.9%,去中心化,无单点依赖。拥有多数据中心支持。
  • 传统开发需要购买服务器搭建负载均衡分布式架构,需要花费大量人力物力开发“接入+计算+存储”一整套物联网系统。
  • 一站式设备管理、实时监控设备场景、无缝连接阿里云产品。可灵活简便地搭建复杂物联网应用。

操作步骤

在这里插入图片描述

CONNECT控制报文

固定报头+可变报头+有效载荷

  • 固定报头:必须存在,用于描述报文信息。里面有指出什么类型的报文,报文的等级。
  • 可变报头:不一定存在,主要看什么样子类型的报文。
  • 有效载荷部分:这是内容。也是通信信息的存放的地方,只是有时候还会存放一些额外的信息。如客户ID。

在这里插入图片描述
固定报头(2字节)
在这里插入图片描述
可变报头

  • 协议名
    在这里插入图片描述

  • 协议级别
    在这里插入图片描述

  • 连接标志
    在这里插入图片描述

  • 保持连接
    保持连接(Keep Alive)是一个以秒为单位的时间间隔,表示为一个16位的字,它是指在客户端传输完成一个控制报文的时刻到发送下一个报文的时刻,两者之间允许空闲的最大时间间隔。
    客户端负责保证控制报文发送的时间间隔不超过保持连接的值。如果没有任何其他的控制报文可以发送,客户端必须发送一个PINGREQ报文。

在这里插入图片描述
在这里插入图片描述
有效载荷:客户端标识符+用户名+密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
UTF-8编码字符串,每一个字符串都有一个两字节的长度字段作为前缀。

连接返回码的值
在这里插入图片描述
在这里插入图片描述

剩余长度

在这里插入图片描述
剩余长度表示当前报文剩余部分的字节数,包括可变报头和负载的数据。

在这里插入图片描述

  • 剩余长度字段使用一个变长度编码方案,对小于128的值,它使用单字节编码。
  • 低7位有效位用于编码数据,最高有效位用于指示是否有更多的字节。剩余长度字段最大4个字节。

在这里插入图片描述
第7位为提示位,表示后面还有字节来表示。
低字节在前,高字节在后
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

服务质量QOS

报文在发送的过程中可能存在丢失的情况,最直接的解决方案就是重新发送。

服务质量就是表示报文要分送几次。

  • QOS 0:最多分发一次
  • QOS 1:至少分发一次
  • QOS 2:只分发一次
  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饼干饼干圆又圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值