MQTT协议学习及模拟链接服务器

1.MQTT协议介绍
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
在这里插入图片描述

对象:
客户端 服务器
模式:
消息发布/订阅

主题--Topic 
订阅 Subscription
主题名 Topic Name
主题过滤器 Topic Filter
会话 Session
控制报文 MQTT Control Packet

MQTT协议是轻量、简单、开放和易于实现的协议
MQTT的特性

MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;
2、对负载内容屏蔽的消息传输;
3、使用 TCP/IP 提供网络连接;
4、有三种消息发布服务质量Qos(类似中断中的优先级)
5、小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;
6、使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。

在这里插入图片描述

2.MQTT报文
报文结构:
在这里插入图片描述

固定报文头部
每个MQTT控制报文都包含一个固定报头
在这里插入图片描述

高四位:类型
低四位: 标志位
控制报文的类型
在这里插入图片描述

标志位
在这里插入图片描述

DUP =控制报文的重复分发标志QoS = PUBLISH报文的服务质量等级RETAIN = PUBLISH报文的保留标志

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

可变报头 Variable header
某些MQTT控制报文包含一个可变报头部分。 它在固定报头和负载之间。 可变报头的内容根据报文类型的不同而不同。 可变报头的报文标识符( Packet Identifier) 字段存在于在多个类型的报文里。
在这里插入图片描述

报文标识符
在这里插入图片描述

标识符例子:
在这里插入图片描述

有效载荷
在这里插入图片描述

某些MQTT控制报文在报文的最后部分包含一个有效载荷
3.MQTT报文内容
发布消息:
固定报头
在这里插入图片描述

消息等级
三个等级
在这里插入图片描述
其实关于MQTT协议的可靠性,主要就是通过服务质量等级体现出来的,那么这个服务质量等级到底是什么意思呢,我们接着看:

QoS 0:最多分发一次。消息的传递完全依赖底层的TCP/IP网络,协议里没有定义应答和重试,消息要么只会到达服务端一次,要么根本没有到达。消息可能会丢失。例如,这个等级可用于环境传感器数据,单次的数据丢失没关系,因为不久之后会再次发送。
QoS 1:至少分发一次。服务器的消息接收由PUBACK消息进行确认,如果通信链路或发送设备异常,或者指定时间内没有收到确认消息,发送端会重发这条在消息头中设置了DUP位的消息。(保证交付功能)
QoS 2:只分发一次。这是最高级别的消息传递,消息丢失和重复都是不可接受的,使用这个服务质量等级会有额外的开销。例如,这个等级可用在一个计费系统中,这里如果消息重复或丢失会导致不正确的收费。
而 QoS2 相对来说就是比较严谨的了,为什么这么说,这就相当于客户端给服务端发送消息,这时候,要求保证客户端发了一次,而服务端收到一次,这样才是相当于只有一次的概念。

还是不明白的话请看下面的例子:

目前流行的共享单车智能锁,智能锁可以定时使用QoS level 0质量消息请求服务器,发送单车的当前位置,如果服务器没收到也没关系,反正过一段时间又会再发送一次。之后用户可以通过App查询周围单车位置,找到单车后需要进行解锁,这时候可以使用QoS level 1质量消息,手机App不断的发送解锁消息给单车锁,确保有一次消息能达到以解锁单车。最后用户用完单车后,需要提交付款表单,可以使用QoS level 2质量消息,这样确保只传递一次数据,否则用户就会多付钱了。

可变报头
主题 标识符
在这里插入图片描述
在这里插入图片描述

有效载荷
有效载荷包含将被发布的应用消息。 数据的内容和格式是应用特定的。 有效载荷的长度这样计算: 用固定报头中的剩余长度字段的值减去可变报头的长度。 包含零长度有效载荷的PUBLISH报文是合法的
在这里插入图片描述

4.MQTT连接阿里云测试
1.测试软件
在这里插入图片描述

2.设备的创建
准备工作:阿里云的账号
1.首先创建产品
查找物联网平台
在这里插入图片描述

进入物联网平台:
在这里插入图片描述

进入公共实例:
在这里插入图片描述

点击设备管理–》点击产品
在这里插入图片描述

创建产品

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将产品发布
在这里插入图片描述
在这里插入图片描述

2.创建具体的设备
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

找到设备,复制MQTT连接信息:
在这里插入图片描述
在这里插入图片描述

3.上位机软件(MQTT.FX)测试连接
软件介绍:
在这里插入图片描述
在这里插入图片描述

配置连接属性

在这里插入图片描述

填写连接信息:
在这里插入图片描述
在这里插入图片描述

连接服务器:
指示灯变成绿色,代表成功
在这里插入图片描述

4.数据的上传和下发
产品–》2302ceshi–》Topic类列表
在这里插入图片描述

订阅:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在设备中查看订阅信息:
在这里插入图片描述
在这里插入图片描述

客户端接收到消息:
在这里插入图片描述

发布:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Packet Tracer是一款模拟网络环境的工具,可以用来模拟各种网络协议,包括MQTT(Message Queuing Telemetry Transport)协议MQTT是一种用于物联网设备间通信的消息发布/订阅协议。 在Packet Tracer中模拟MQTT协议的过程如下: 1. 打开Packet Tracer,并创建一个网络拓扑。拓扑中需要包括至少一个MQTT Broker(代表MQTT消息服务器),一个或多个MQTT客户端(代表设备或应用程序),以及必要的网络设备。 2. 将MQTT Broker和MQTT客户端连接到相应的网络设备,可以使用交换机或路由器进行连接。 3. 配置MQTT Broker和MQTT客户端。MQTT Broker需要设置相应的代理参数,包括认证方式、端口号等。而MQTT客户端需要指定要连接的MQTT Broker的IP地址和端口号,并设置认证凭据。 4. 在MQTT客户端中,可以创建一个或多个主题(Topic),供其他客户端订阅。主题可理解为消息的目的地。在主题下发送和接收消息。 5. 在MQTT客户端中,可以通过发布(Publish)消息到特定主题,或者订阅(Subscribe)消息从特定主题接收。 6. 监控和分析MQTT消息传递的过程。使用Packet Tracer的分析工具来捕获并查看MQTT消息的传输情况,包括消息的发布和订阅。 通过使用Packet Tracer进行MQTT协议模拟,可以帮助我们更好地理解和学习MQTT的工作原理和消息传递机制。同时,可以实际模拟出不同的场景,如物联网设备之间的通信、传感器数据的采集与传输等,帮助我们更好地掌握MQTT协议的使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值