物联网的神经系统

当今世界有数十亿的智能设备,但是如果这些设备是相互连接的呢?如果这些设备可以像它们的主人一样相互作用,形成一种全球性的神经系统呢?这从本质上描述了人们所说的物联网。物联网彻底改变了IT世界和我们创新的方式。在深入研究物联网时,必须考虑从性能到安全性的所有内容。

消息队列遥测传输协议(MQTT)

MQTT是一种基于发布/订阅的轻量级消息传递协议,用于在TCP / IP协议之上进行机器对机器(M2M)通信。该协议提供遥测技术,MQTT开发人员正在努力连接不断发展的互联网世界,这有望产生更多样化的智能设备。 MQTT协议的第一个版本由Stanford-Clark,IBM和Arlen Nipper编写。

为什么是MQTT?

Facebook已将MQTT用于其信使应用程序,该应用程序需要持续连接到其服务器而不会终止电池寿命。它需要较低的网络带宽并且代码占用空间较小。它通过广泛分布的,有时是间歇性的网络传输数据。这些功能转化为具有很少内存和处理能力的远程设备的优势。

MQTT的其他显著特点是:

· 它是开放源码的,免版税,因此易于采用和适应

· 它遵循一对多发行版的发布/订阅模型

· 小邮件标题

· 多种服务质量水平

· 简单的命令消息

· 数据类型不可知

· 保留的消息

· 清洁会话和持久连接

· 遗嘱(LWT)

MQTT与HTTP

MQTT

http

设计

以数据为中心

以文件为中心

模型

发布/订阅

请求/答复

复杂性

简单命令

复杂

消息大小

小,压缩二进制头大小为2字节

更大,因为标题是文本格式的

服务水平

3个QoS级别

所有消息的服务级别相同

分布

一对多

一对一

MQTT拓扑的示例:

服务质量水平

QoS值决定每条消息的传递方式,并且它是为发送的每条消息设置的强制值。

QoS 0(最多一条消息传递)

当为消息设置QoS值为0时,不期望响应,并且没有定义重试规则。一条消息一次到达或根本不会到达代理。如果客户端断开连接或服务器失败,则会丢失QoS 0消息。MQTT层不尝试重试。从性能角度看,这是使用MQTT发送消息的最快方法。这里只使用MQTT命令发布,并且没有其他命令流用于QoS 0消息。

QoS 1(至少一条消息传递)

MQTT客户端或服务器将尝试至少传递一次消息,但是存在重复消息的可能性。当代理收到消息时,发送确认PUBACK。如果没有收到PUBACK,则发送方再次发送消息,并设置DUP(重复)位。在接收到设置了DUP位的消息时,代理将消息重新发布给其所有订户,并发送另一个PUBACK消息。这样可以实现MQTT持久性。当发生PUBLISH时,消息存储在诸如磁盘的持久层中,并在接收到PUBACK时被移除。具有QoS 1的消息在消息头中具有消息ID。

QoS 2(准确地说是一条消息传递)

QoS 1的附加流程确保消息仅传送一次。消息在PUBLISH流中发送,消息由客户端存储在持久层中。 PUBREC消息作为对PUBLISH的响应发送。同时,消息被锁定在服务器上。在接收PUBREC时,将PUBREL发送到服务器。在接收PUBREL时,代理发送消息,发送回PUBCOMP并丢弃存储的状态。具有QoS 2的消息将在消息头中具有消息ID。

MQTT的安全性

MQTT的目标是为物联网提供轻量级的通信,但安全性是以处理器利用率和通信开销为代价的。这就是为什么议定书中只有少数安全机制的原因。但是许多MQTT实现都使用了SSL/TLS之类的安全标准。

MQTT中的安全性分为多层。

网络级别:使用物理安全网络或VPN进行通信可提供安全连接。

传输级别:TLS / SSL可用于传输加密,以确保通信已加密且身份已通过身份验证。

应用程序级别:该协议具有客户端ID,用户名/密码凭据,可以进行设备身份验证。另一种方法是在没有大量传输加密的情况下进行有效负载加密。

MQTT行动:家庭监测解决方案

基于MQTT的应用程序的一个典型例子是家庭监控系统。例如,房间加热器的当前温度根据请求发送到设备。

与任何其他应用程序一样,当两个应用程序/设备之间存在通信时,有可能出现故障,因此非常重要的是对应用程序进行监视,以确保应用程序的有效运行和良好的用户体验。

Catchpoint现在可以使用MQTT协议监视物联网设备的性能和可用性。MQTT测试可以用于通过MQTT发布和订阅特定主题的消息并测量需要多长时间来发布/订阅通信。

原文标题《MQTT: The Nerve System of IoT》

作者:Abhinaya Balaji

译者:lemon

不代表云加社区观点,更多详情请查看原文链接

原文链接:https://dzone.com/articles/mqtt-the-nerve-system-of-iot

原文作者:Abhinaya Balaji

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算D1net

云存储访问控制措施实战经验

不管是对于商业还是家庭用户来说,云存储正成为一种流行产品。如亚马逊S3、Box、Copiun和Thru等服务拥有功能丰富的产品,使用户可以轻松地备份、同步和...

3745
来自专栏CSDN技术头条

如何优化让日志处理速达到 5万/s?

本文来自作者 jason 在 GitChat 上分享 「大数据项目性能优化实战分享」

1135
来自专栏存储

痛并快乐着:浅谈大数据时代的分布式存储架构

从全球知名咨询公司麦肯锡宣称“大数据”时代的到来,时至今日,数据量已经几何倍数的翻增,麦肯锡称:“数据,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因...

2937
来自专栏分享达人秀

Android开发环境概述

工欲善其事,必先利其器。Android开发人员在自己的计算机上编写和测试应用程序,然后将其部署到实际的设备上,那首先必不可少的就是开发环境的搭建。 ...

2375
来自专栏IT技术精选文摘

高并发大容量NoSQL解决方案探索

1603
来自专栏BestSDK

Zenedge随原生SDK一起发布API安全解决方案

网络安全提供商Zenedge的主营业务包括AI驱动的Web应用防火墙、恶意机器人检测以及机器人管理服务,这家公司近期为web和移动设备随原生SDK一起发布了AP...

3155
来自专栏FreeBuf

微软发布Windows Defender System Guard运行时认证技术

上周,微软推出了一项新的 Windows 平台安全技术:Windows Defender System Guard 运行时认证。这项技术主要用于应对软件中的攻击...

1602
来自专栏顶级程序员

学了Python后,我走哪里都可以连WIFI!

源 / 程序员之家 直接给上Python脚本的核心源码先!WIFI破解,Python程序员必学技能。WIFI已经完全普及,现在Python程序员没网,走到哪里都...

5018
来自专栏原创

高并发大容量NoSQL解决方案探索

1608
来自专栏黑白安全

Google Chrome 将从9月开始,默认 HTTPS 页面为安全站点

据外媒 bleepingcomputer 5月17日报道,谷歌正计划停止在地址栏中标记 HTTPS 页面为“安全”站点,换句话说,在没有发现异常的情况下,所有 ...

621

扫码关注云+社区

领取腾讯云代金券