介绍
MQTT是一种为低带宽和不可靠网络环境设计的轻量级消息协议,特别适合物联网(IoT)应用。 MQTT协议基于发布/订阅模式,专门针对低带宽和不稳定网络环境的物联网应用而设计,可以用极少的代码为联网设备提供实时可靠的消息服务。
MQTT协议IBM于1999年首次提出,旨在为远程传感器和控制设备提供轻量级的通信机制。其设计目标是减少网络带宽的使用,优化数据传输效率,并确保在不稳定网络环境中的可靠性。MQTT协议建立在TCP/IP协议之上,运行在TCP协议上,采用异步请求-响应模式。
MQTT协议具有以下特点和优势:
- 轻量级:MQTT协议本身非常简洁,消息头部占用较少的带宽,适用于资源受限的设备。
- 发布/订阅模型:客户端可以订阅特定的主题,当有消息发布到这些主题时,所有订阅了该主题的客户端都将收到消息。
- 可靠性:MQTT支持三种服务质量等级,确保消息的可靠传递。
- 持久会话:允许客户端建立持久会话,在连接丢失后能够恢复之前的订阅和消息传递状态。
MQTT协议广泛应用于各种领域,包括物联网、移动互联网、智能硬件、车联网、智慧城市、远程医疗、电力、石油与能源等。由于其轻量级和高效的特性,MQTT在物联网和传感器网络中得到了广泛的应用
基本概念
MQTT 客户端
一个使用 MQTT 协议的设备、应用程序等,它总是建立到服务器的网络连接。
可以发布信息,其他客户端可以订阅该信息
订阅其它客户端发布的消息
退订或删除应用程序的消息
断开与服务器连接
MQTT 服务器
MQTT 服务器也称为 Broker(消息代理),以是一个应用程序或一台设备。它是位于消息发布者 和订阅者之间
接受来自客户端的网络连接
接受客户端发布的应用信息
处理来自客户端的订阅和退订请求
向订阅的客户转发应用程序消息
主题(Topic)
连接到一个应用程序消息的标签,该标签与服务器的订阅相匹配。服务器会将消息发送给订阅所匹配标签的每个客户端。
要订阅的主题。一个主题可以有多个级别,级别之间用斜杠字符分隔。例如,/world 和 emq/emqtt/emqx 是有效的主题。
订阅者的Topic name支持通配符#和+ : # 支持一个主题内任意级别话题,+ 只匹配一个主题级别的通配符,这里可能解释的不到位,请读者查阅资料
客户端成功订阅某个主题后,代理会返回一条 SUBACK 消息,其中包含一个或多个 returnCode 参数
主题筛选器(Topic Filter)
一个对主题名通配符筛选器,在订阅表达式中使用,表示订阅所匹配到的多个主题。
QoS(消息传递的服务质量水平)
服务质量,标志表明此主题范围内的消息传送到客户端所需的一致程度。
值 0:不可靠,消息基本上仅传送一次,如果当时客户端不可用,则会丢失该消息。
值 1:消息应传送至少 1 次。
值 2:消息仅传送一次。
会话(Session)
每个客户端与服务器建立连接后就是一个会话,客户端和服务器之间有状态交互。会话存在于一个网络之间,也可能在客户端和服务器之间跨越多个连续的网络连接。
订阅(Subscription)
订阅包含主题筛选器(Topic Filter)和最大服务质量(QoS)。订阅会与一个会话(Session)关联。一个会话可以包含多个订阅。每一个会话中的每个订阅都有一个不同的主题筛选器。
客户端在成功建立TCP连接之后,发送CONNECT消息,在得到服务器端授权允许建立彼此连接的CONNACK消息之后,客户端会发送SUBSCRIBE消息,订阅感兴趣的Topic主题列表(至少一个主题)
订阅的主题名称采用UTF-8编码,然后紧跟着对应的QoS值
发布(publish)
控制报文是指从客户端向服务端或者服务端向客户端传输一个应用消息,MQTT 客户端发送消息请求,发送完成后返回应用程序线程
比如安卓的推送服务,还有一些即时通信软件如微信等也是采用的推送技术。
负载(Payload)
消息订阅者所具体接收的内容
例题
某公司拟开发一套基于边缘计算的智能门禁系统,用于如园区、新零售、工业现场等存在来访、被访业务的场景。来访者在来访前,可以通过线上提前预约的方式将自己的个人信息记录在后台,被访者在系统中通过此请求后,来访者在到访时可以直接通过"刷脸"的方式通过门禁,无需做其他验证。此外,系统的管理员可对正在运行的门禁设备进行管理。
基于项目需求,该公司组建项目组,召开了项目讨论会。会上,张工根据业务需求并结合边缘计算的思想,提出本系统可由访客注册模块、模型训练模块、端侧识别模块与设备调度平台模块等四项功能组成。李工从技术层面提出该系统可使用 Flask 框架与 SSM 框架为基础来开发后台服务器,将开发好的系统通过 Docker 进行部署,并使用 MQTT 协议对 Docker 进行管理。
【问题1】(5分)
MQTT 协议在工业物联网中得到广泛的应用,请用300字以内的文字简要说明 MQTT 协议。
MQTT是一种为低带宽和不可靠网络环境设计的轻量级消息协议,特别适合物联网(IoT)应用。它的核心特点是发布/订阅模型,允许设备发布消息到主题,同时订阅感兴趣的主题以接收消息。 MQTT协议的优势在于其简单性和效率,它使用小尺寸的数据包,支持多种服务质量(QoS)以确保消息的可靠传递,并且可以通过加密保障通信安全。此外,MQTT还具备良好的连接管理和重连机制,即使在网络不稳定的情况下也能保证设备间的持续通信。 在工业物联网中,MQTT广泛应用于传感器数据收集、设备监控和远程控制等场景,提供了一种高效、可靠的通信方式。