文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MQTT协议介绍,MQTT是物联网标准消息传递协议(物联网人必懂)

2024-11-30 07:41

关注

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于 TCP/IP 协议上,由 IBM 在1999年发布,现已是用于物联网 (IoT) 的 OASIS 标准消息传递协议。MQTT 最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。

MQTT 协议是轻量、简单、开放和易于实现的,这些特点使其在物联网、小型设备、移动应用等方面有较广泛的应用。MQTT 协议运行在传输控制协议/互联网协议 (TCP/IP) 堆栈之上,提供有序、无损、双向连接。MQTT 协议在处理网络连接不稳定、带宽有限的环境中有较强的适应性,常被用于智能家居、医疗设备、卫星通信等场景中。

为什么选MQTT?

MQTT 协议具有以下特点:

常见名词术语解释

1.MQTT Broker

MQTT Broker 是消息中间件,它负责接收发布者发送的消息,并根据订阅者订阅的主题将消息转发给订阅者。它管理客户端连接、处理订阅和退订,并保证按照指定的服务质量(QoS)级别发送消息。MQTT 是一种开放的轻量级机器对机器协议,专为物联网交互设计。在 MQTT 网络中,MQTT Broker 是协调所有 MQTT 代理之间的交互的服务器。MQTT 客户端可以是发布者,也可以是订阅者,或者两者都是。MQTT 架构可以是集中式的,也可以是分布式的,以适应不同的应用场景。

2.Bridge

Bridge在MQTT协议中是指桥接,是指将两个MQTT代理(Broker)连接起来,使得它们可以相互通信,以实现消息的互通。

当两个Broker被桥接后,它们可以作为接入节点提供服务,对外可配置一个虚拟IP或域名来访问。这种桥接方式可以实现负载均衡和故障转移,提高系统的可用性和稳定性。

在配置Bridge时,需要指定消息同步的Topic,而不是同步所有Topic来规避流量放大的问题,更推荐通过垂直切分的方案进行分流。

MQTT协议中的Bridge主要有以下特点:

3.MQTT Client

MQTT Client 是指运行MQTT库并通过网络连接到MQTT broker的设备,这些设备可以是微控制器,也可以是成熟的服务器,它实现了MQTT协议的客户端。在MQTT协议中,一个典型的客户端会有以下主要操作:发布消息到某个topic、从某个topic订阅消息、处理接收到的消息、对接收到的QoS 1或QoS 2消息进行确认。MQTT协议的客户端实现非常简单直接。

4.RSMB

RSMB(Very Small Message Broker)是IBM开发的一个轻量级消息代理,主要用于MQTT协议的C/S(客户端/服务器)架构中的消息传输服务。之后,Eclipse Foundation将RSMB接纳为其下的一个项目,并将其命名为Eclipse Mosquitto。

Eclipse Mosquitto是一个开源的消息代理,它实现了MQTT协议的版本3.1和3.1.1,被设计用于从低功耗的单板计算机到完整的服务器等各种设备。MQTT协议使用发布/订阅模型进行消息传递,这种模型被证明在许多场景下,特别是物联网(IoT)应用中,都非常有效。

5.LWT

Last Will and Testament (LWT) 是 MQTT 协议中用于处理非正常断开连接时的一种机制。

LWT 可以被理解为在连接到 MQTT Broker 时提到的遗嘱。当 Broker 检测到 Client 非正常地断开连接的时候,就会向遗嘱主题里面发布一条消息。遗嘱相关的设置是在建立连接的时候,在 CONNECT 数据包里面的 Variable header (可变头与) Payload (有效载荷) 中指定的。

6.M2M

机器对机器Machine to machine (M2M)是指数据从一台终端传送到另一台终端,也就是机器与机器的对话。M2M应用系统构成有智能化机器、M2M硬件、通信网络、中间件。M2M应用领域有家庭应用领域、工业应用领域、零售和支付领域、物流运输行业、医疗行业等。

7.IoT

物联网(Internet of Things,IoT)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。物联网是一个基于互联网、传统电信网等的信息承载体,它让所有能够被独立寻址的普通物理对象形成互联互通的网络。

8.QoS

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)中设计了保证消息稳定传输的机制,包括消息应答、存储和重传。在此机制下,提供了三种不同层次的服务质量(Quality of Service,QoS)等级:

不同的QoS等级为MQTT的应用提供了不同的选择和灵活性,可以根据实际需求和网络环境来选择最合适的QoS等级。需要注意的是,QoS是Sender和Receiver之间的协议,而不是Publisher和Subscriber之间的协议。

常见问题

1.什么是 MQTT?

MQTT 是 IoT 连接的 OASIS 标准。它是一种发布/订阅、极其简单且轻量级的消息传递协议,专为受限设备和低带宽、高延迟或不可靠的网络而设计。设计原则是最大限度地减少网络带宽和设备资源需求,同时尝试确保可靠性和一定程度的交付保证。这些原则也使该协议成为连接设备的“物联网”世界以及带宽和电池电量非常宝贵的移动应用的理想选择。

2.MQTT 是谁发明的?

MQTT 由 IBM 的 Andy Stanley-Clark 博士和 Arcom(现为 Eurotech)的 Arlen Nipper 于 1999 年发明。

3.MQTT用在什么地方?

自 1999 年以来,MQTT 已在各个行业广泛实施。

4.MQTT 是标准吗?

v5.0 和 v3.1.1 现已成为 OASIS 标准(v3.1.1 也已获得 ISO 批准)。

5.是否有可供 MQTT 使用的标准端口?

是的。TCP/IP 端口 1883 已由 IANA 保留用于 MQTT。TCP/IP 端口 8883 也已注册,用于通过 SSL 使用 MQTT。

6.MQTT 支持安全性吗?

在协议 V3.1 中,您可以使用 MQTT 数据包传递用户名和密码。网络上的加密可以使用 SSL 进行处理,独立于 MQTT 协议本身(值得注意的是,SSL 不是最轻的协议,并且确实会增加大量的网络开销)。可以通过应用程序加密其发送和接收的数据来增加额外的安全性,但这不是协议内置的东西,以便保持简单和轻量级。

来源:物联网星球内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯