物联网在使用商业以及工业方向上,可以被划分为IoT(物联网)和IIoT(工业物联网),二者在使用上存在着些许区别:
IoT可用于很多细分市场,包括消费品、农业、制造业和医疗等;而IIoT主要面向工业应用,比如制造和能源行业。IoT涉及的范围比IIoT更广。IIoT更加侧重于对数据的访问,以便工业领域可以及时的调整相应的制作流程。
了解了IoT和IIoT的区别,现在让我们来了解MQTT。
首先,要了解MQTT是什么,我们可以从它的名称入手,既MQTT是哪些单词的缩写:
消息(Message ):简单来讲,MQTT包括一个数据源,它会向“代理”(Broker)发布消息,然后由代理将消息推送给所有已经订阅了该主题的设备或终端。
队列(Queue或Queuing):尽管名字中包含“队列”一词,但MQTT并不是一种基于队列的协议,显然这一项在整个协议更多过程中都没有使用过。
遥测(Telemetry):IoT(物联网)和IIoT(工业物联网)的关键,数据传输是遥测技术的核心。
传输(Transport):通过中央集线器或代理进行点到点的数据传输。
MQTT是一个简单的中心辐射型系统:传感器、应用和设备之间的通信是通过运行在数据中心的中央代理来实现的。从处理需求的角度来看,这些设备也不会尝试彼此通信,因为所有数据都通过一个中央代理来实现的。MQTT是轻量级的,因此它可以用于带宽和延迟受限的网络环境中的各种应用。MQTT简单快捷,整个操作分为:连接、身份验证、通信和终止。随着数据量的增加,MQTT协议的简单性和轻量级使得它具有很强的可扩展性。MQTT协议非常适合于涉及许多传感器的大型远程网络系统,如输电线、管道、油井等。
上面,我们介绍了工业物联网(IIoT)和物联网(IoT)之间的区别,以及MQTT的含义。接下来,我们将介绍MQTT协议的应用。
除了能够监控长距离石油管道和其他能源传输场景监控数据传输之外,MQTT精简的低带宽特性使其适合于许多其他应用。家庭自动化应用包括供暖、通风、空调(HVAC)、照明、智能设备和安全系统。例如,在家庭园艺中,光、温、湿度传感器将采集到的实时数据传输到相应的接收端,然后根据这些数据自动远程浇水,实现高科技管理。医疗监测、交通网络监测、资产跟踪、环境状况监测、气候数据记录和自动报亭监测等,这些环境同样也在使用MQTT协议。
家庭自动化 — MQTT协议的一种应用
MQTT在协议设计时就考虑到了不同设备的计算性能的差异,所以所有的协议采用二进制格式编解码,并且编解码格式都非常易于开发和实现。最小的数据包只有2个字节,对于低功耗低速网络也有很好的适应性。同时,MQTT占用极少的带宽,使得在进行长距离数据传输的时候能够将数据响应延迟的问题降低到很小,使得数据、指令的传输更加的迅速。
Mqtt的优点
1、Mqtt有许多优点
1.mqtt的独特功能是每个消息头可以缩短為2个字节。对于HTTP,為每个新请求消息重新建立HTTP连接会产生相當大的开销。MQ和mqtt使用的持久连接可以极大地减少这种开销。
2.遏制不稳定网络。Mqtt和MQ可以从诸如断开连接之类的故障中恢复,而无需进壹步的代码要求。但是,HTTP本身无法实现这壹目标,客户端必须重试编码,这将增
加身份问题。
3.低功耗mqtt设计用于低功耗。
HTTP设计中未考虑此因素,这将增加功耗。
4.當连接数百万个客户端时,在HTTP堆栈中维护数百万个并發连接需要大量工作来提供支持。
尽管这种支持是可行的,但大多数商业产品都经过优化,以处理此订单上的持久连接。可以通过mqtt处理多达壹百万个并發设备。相比之下,MQ不是為许多同时出现的客户设计的。
5.推送通知。
您需要能够及时向客户發送通知。為此,应使用常规轮询或推送方法。就电池、系统负载和带宽而言,推送是最好的解决方案。
6.客户端平台之间的差异。HTTP和mqtt客户端都在许多平台上实现。mqtt的简单性帮助您在其他客户机上以最小的工作量实现mqtt。
7.防火墙容错。某些公司防火墙将出站连接限制為某些预定义端口。这些端口通常限于HTTP(端口80)、HTTPS(端口443)等。HTTP显然在这种情况下起作用。Mqtt封装在WebSockets连接中,并显示為HTTP升级请求,因此它可以在这种情况下运行。
mqtt的缺点
事实上,mqtt被广泛使用,几乎可以在任何大型硬件和互联网公司中找到,如Facebook、BP、阿里巴巴和百度。
由于mqtt的技术优势,越来越多的公司选择mqtt作為物联网产品通信的标准协议。因此,工程师们逐渐意识到mqtt协议的功能需要通过大规模商业化来改进。例如:
1.如果没有完整的SDK,则需要不同异构设备的软件SDK包与mqtt服务器(如MCU、Linux、Android、IOS、web)进行通信,实现互联互通。
2.不支持文件和AV。在壹些应用场景中,要传输的信息可能不限于需要通过AV与文件通信的指令,例如语音和视频信号。
3.不支持与第叁方HTTP集成。Mqtt协议优于传统的HTTP协议,但基于传统HTTP协议的Web服务器在主流市场上仍占据主导地位。这些服务器应与mqtt协议互连,以降低升级成本。
4.不支持负载分配。负载分布服务器对于高并發性和防止恶意攻击也至关重要。
5.不支持用户管理界面。这在用户分析设备行為数据时尤為重要。在工业4.0和大数据时代,这是壹种必然的需求。
6.设备脱机后,不支持脱机消息来补偿从mqtt服务器到设备的控制信息丢失。
7.不支持点对点通信,使用标准mqtt协议。理论上,点对点通信可以通过相互订阅来实现,但逻辑相对复杂,涉及设备安全。
8、不支持集团沟通和集团管理,实现集团成员的管理。团队成员可以交换消息,如果壹台设备由多人控制或多台设备由一人控制,这一点尤其有用。