初识MQTT:为什么 MQTT 是最适合物联网的网络协议?

导读:本篇文章讲解 初识MQTT:为什么 MQTT 是最适合物联网的网络协议?,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

0、初始MQTT

  MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种ISO标准的消息传递协议,两位工程师Andy Standford Clark和Arlen Nipper于1999年撰写了该协议的第一个版本,旨在通过不可靠的网络连接传感器。其基于TCP/IP协议,是一种基于发布/订阅(publish/subscribe)模式的”轻量级”通讯协议。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
在这里插入图片描述

1、优势

  自开发以来,MQTT就深受物联网设备的喜爱,已发展成为许多IOT系统中使用的关键消息传递协议。MQTT是为大量计算能力有限,且工作在低带宽,不可靠的网络环境下的远程Sensor和设备控制而设计一种轻量级的,灵活的网络协议,故:
●-轻量级使得其可以在严重受限的设备硬件和高延迟/带宽有限的网络上实现;
●-灵活性使其能够为IOT设备和服务多样化的应用场景提供支持的可能。

2、特性

●-使用Publish/Subscribe模型,提供一对多的消息发布。
●-对负载内容屏蔽的消息传输。
●-基于TCP/IP网络连接。
●-有三种消息发布的服务质量:
1)“至多一次”,消息发布完全依赖底层TCP/IP网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。这一种方式主要普通APP的推送,倘若你的智能设备在消息推送时未联网,推送过去没收到,再次联网也就收不到了。
2) “至少一次”,确保消息到达,但消息重复可能会发生。
3) “只有一次”,确保消息到达一次。在一些要求比较严格的计费系统中,可以使用此级别。在计费系统中,消息重复或丢失会导致不正确的结果。这种最高质量的消息发布服务还可以用于即时通讯类的APP的推送,确保用户收到且只会收到一次。
●-小型传输,开销很小(固定长度的头部是2字节),协议交换最小化,以降低网络流量。
●-使用Last Will和Testament特性通知有关各方客户端异常中断的机制。

3、MQTT如何工作

  MQTT基于Publish/Subscribe模型,由Broker和Client两个元素组成,实现消息的发布者和使用者的分耦
  MQTT系统的核心是名为“Broker”的代理器,其可以接收和传输来自MQTT的消息,当Broker接收到消息时,其可以将消息发送至订阅了该消息Topic的相关客户端。在MQTT协议中,MQTT数据包由:Fixed header ,Variable header, Payload三部分构成。Publish/Subscribe模型允许MQTT客户端一对一,一对多或多对一进行通信。

附录、学习参考资料传送门

1)MQTT中文网:
http://mqtt.p2hp.com/

2)开源MQTT Server:
https://github.com/emqx/emqx
https://www.emqx.cn/mqtt

3)标准profile:
http://docs.oasis-open.org/mqtt/mqtt/v5.0/csprd02/mqtt-v5.0-csprd02.pdf

4)开源C库:
http://www.eclipse.org/paho/files/mqttdoc/MQTTClient/html/index.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116950.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!