物联网为什么青睐MQTT?丨【拜托了,物联网!】

举报
liuzhen007 发表于 2021/10/19 00:38:17 2021/10/19
【摘要】 前言MQTT(Message Queuing Telemetry Transport),消息队列遥测传输,早在二十几年前就被发明出来了,但是我们很少听过说这个名词,随着物联网(IoT)技术的快速发展,MQTT逐渐为大家所熟知。MQTT 协议的诞生可以追溯到1999年,当时 IBM 公司的安迪·斯坦福-克拉克和 Cirrus Link 公司的阿兰·尼普撰写了 MQTT 协议的第一个版本。后来,...

前言

MQTT(Message Queuing Telemetry Transport),消息队列遥测传输,早在二十几年前就被发明出来了,但是我们很少听过说这个名词,随着物联网(IoT)技术的快速发展,MQTT逐渐为大家所熟知。MQTT 协议的诞生可以追溯到1999年,当时 IBM 公司的安迪·斯坦福-克拉克和 Cirrus Link 公司的阿兰·尼普撰写了 MQTT 协议的第一个版本。后来,MQTT 被国际标准化,成为了 ISO 的标准消息协议。

正文

优势特点

MQTT 协议之所以成为物联网领域的新宠,一个非常重要的原因就是轻量级且灵活,具体表现如下:

1)使用发布/订阅消息模式,提供一对多的消息发布。

2)对负载内容屏蔽的消息传输。

3)使用 TCP/IP 提供网络连接。

4)提供了三种消息发布服务质量:

至多一次,消息发布完全依赖底层TCP/IP网络,可能会发生消息丢失情况。

至少一次,确保消息到达,但消息可能会重复发送或者收到。

只有一次,确保消息到达一次。这种最高质量的消息发布服务还可以用于即时通讯类的APP的推送,确保用户收到且只会收到一次。

5)小型传输,开销很小,协议交换最小化,以降低网络流量。

6)使用Last Will和Testament特性通知有关各方客户端异常中断的机制,这是 http 协议所不具备的。

MQTT 协议是工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,因此能够非常贴合物联网的使用场景。

使用方式

MQTT工作模式是基于客户端和服务端通讯模式运作的,在整个通讯过程中,有三种身份:发布者(Publisher)、代理服务器(Broker)、订阅者(Subscriber)。其中,消息的发布者和订阅者都是客户端,它们之间的消息是通过代理服务器转发的,消息发布者可以同时是订阅者。

MQTT的消息体分为:主题(topic)和负载(payload)两部分,其中,

topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload)。
payload,可以理解为消息的具体内容,是指订阅者希望收到的信息内容。payload消息体位MQTT数据包的第三部分,包含四种类型的消息:

1)CONNECT,消息体内容主要是:客户端的ClientID、订阅的Topic、Message以及用户名和密码。
2)SUBSCRIBE,消息体内容是一系列的要订阅的主题以及QoS。
3)SUBACK,消息体内容是服务器对于SUBSCRIBE所申请的主题及QoS进行确认和回复。
4)UNSUBSCRIBE,消息体内容是要订阅的主题。

结尾

大规模的物联网网络面临的最大挑战之一就是数据传输成本。因为成千上万的设备每年可能产生数千亿条消息,看似很小的每条消息汇总到一起就非常大。数据通讯量的大小会影响到设备用电量的多少。由于这些原因,必须控制传输数据量的大小和频率,最好在必要时才发送。MQTT是一种轻量级的机器对机器(M2M)消息传递协议,由于其代码占用量非常小且消息大小较小,因此是大型拓扑网络的理想选择。所以,今后 MQTT 协议会在物联网领域发挥非常重大的作用。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。