我们近期都在讨论MQTT这一物联网通信协议,但是,实际上物联网的通信协议不仅仅只有MQTT,可能在工业物联网IIOT领域涉及到且应用更普遍的是OPC UA和MQTT。所以,我们这期简单介绍下其他几种物联网协议,以便于更好地使用这些协议。
通信协议是物联网(IoT)应用中数据通信的重要组成部分。然而,选择一种通信协议具有挑战性,因为它取决于物联网系统的性质及其数据传输系统。在过去十年中,研究人员根据其需求开发并使用了大量通信协议。尽管如此,没有任何一种协议能够满足所有标准要求,如能效、安全性、服务质量等。在所有类型的物联网系统中,通信协议是物联网行业的持续难题;因此,分析这些协议的行为和机制以确定其最佳应用场景非常重要。
那么,本文对已建立的通信协议 HTTP、MQTT、DDS、XMPP、AMQP 和 CoAP 在物联网应用中的表现进行了评估。首先,它对这些通信协议进行了广泛的比较,以介绍它们的特性。随后,它对理解它们的优势和局限性的相关过程进行了详细和深入的分析。最后,可以基于此详细的评估,用户可以根据其需求、效率和适用性来确定各种物联网应用的适当使用方式。
物联网协议是机器之间或与平台之间通信的标准或“语言”,它们负责处理和协调物联网设备之间的通信。物联网协议根据其特性和功能可以分为不同的类型,主要包括接入协议和通讯协议。
我们可以通过OSI模型来详细介绍下不同层级的协议,如下图所示:
最上层的层次是第 5-7 层(会话层、表示层和应用层),它们用于处理数据处理。像我们日常生活接触到的蓝牙、WIFI、5G等就属于下面几层,用来传输。而应用层作为最后一层,将是唯一与最终用户交互的层次。实际上,我们这期讨论的就是应用层协议。
上图是一个典型的物联网系统架构,MQTT只是其中一项通信协议。使用物联网技术的应用程序包括三个关键部分:
7种通信协议
1.REST/HTTP
REST(Representational State Transfer)是一种架构风格,而不是设计网络应用程序的标准,通常使用HTTP作为其传输协议来实现其架构原则。
REST/HTTP主要旨在简化互联网的系统架构,快速实现客户端与服务器交互的松散耦合,从而降低交互延迟。因此,它适用于物联网应用,通过REST公开物联网资源,使服务能够被其他应用程序调用。
2.CoAP
CoAP(Constrained Application Protocol)为受限设备提供简单高效的通信,使其非常适合在低功耗、低带宽和高延迟环境中运行。
CoAP是基于HTTP的简化版RESTful API。CoAP是6LoWPAN协议栈中的应用层协议,适用于资源受限的通信IP网络,如低功耗传感器和嵌入式系统。
3.MQTT
MQTT协议采用发布/订阅模式,物联网终端通常通过TCP连接到MQTT代理。代理通过主题管理通信内容,并负责在设备之间转发消息。
MQTT通常适用于设备数据采集到终端(例如,设备->服务器)以及星型网络架构中的集中通信,代理作为中心枢纽。它广泛应用于物联网场景,并且也被一些移动应用采用,如Facebook Messenger(历史上)。
4.DDS
DDS(Data Distribution Service)是为实时系统创建的中间件标准。它通过提供低延迟、高吞吐量和确定性性能,满足分布式应用的严格需求。
适用于设备的分布式、高可靠、实时数据通信。目前,DDS广泛应用于民航和工业控制等领域。
5.AMQP
AMQP是一种开放标准的应用层协议,旨在确保可靠的消息传递和队列机制。
最初用于金融系统中的交易消息传递,AMQP现在主要用于移动设备和后台数据中心之间的物联网应用通信和数据分析。
6.XMPP
作为一种开放式通信协议,XMPP(Extensible Messaging and Presence Protocol)旨在进行实时通信,如即时消息和在线状态信息。
XMPP用于即时通讯、网络管理、内容分发、协作工具、文件共享、游戏、远程系统监控等。
7.JMS
JMS(Java Message Service)是Java平台的分布式应用消息标准API。它允许应用程序通过消息队列进行通信,从而实现异步、灵活和可靠的消息交换。
JMS适用于需要异步消息、系统解耦和高可靠性的分布式应用,如企业应用集成、事件驱动架构和实时数据处理。
物联网协议比较
我们通过下表详细进行对比:
当然,不同的文献有不同的介绍,但是基本上MQTT、CoAP、AMPP等常用的物联网协议都包含在内,其他未详尽的可以参考文末链接。
结论
在设计特定的物联网系统架构时,选择最合适的通信协议之前,必须考虑以下实际通信需求:
参考链接: