前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MQTT,CoAP, AMQP, REST/HTTP,JMS,XMPP & DDS: 我该如何选择哪种物联网IOT通信协议?

MQTT,CoAP, AMQP, REST/HTTP,JMS,XMPP & DDS: 我该如何选择哪种物联网IOT通信协议?

作者头像
Hello工控
发布2025-06-11 15:38:50
发布2025-06-11 15:38:50
1290
举报
文章被收录于专栏:Hello工控Hello工控

我们近期都在讨论MQTT这一物联网通信协议,但是,实际上物联网的通信协议不仅仅只有MQTT,可能在工业物联网IIOT领域涉及到且应用更普遍的是OPC UA和MQTT。所以,我们这期简单介绍下其他几种物联网协议,以便于更好地使用这些协议。

通信协议是物联网(IoT)应用中数据通信的重要组成部分。然而,选择一种通信协议具有挑战性,因为它取决于物联网系统的性质及其数据传输系统。在过去十年中,研究人员根据其需求开发并使用了大量通信协议。尽管如此,没有任何一种协议能够满足所有标准要求,如能效、安全性、服务质量等。在所有类型的物联网系统中,通信协议是物联网行业的持续难题;因此,分析这些协议的行为和机制以确定其最佳应用场景非常重要。

图片
图片

那么,本文对已建立的通信协议 HTTP、MQTT、DDS、XMPP、AMQP 和 CoAP 在物联网应用中的表现进行了评估。首先,它对这些通信协议进行了广泛的比较,以介绍它们的特性。随后,它对理解它们的优势和局限性的相关过程进行了详细和深入的分析。最后,可以基于此详细的评估,用户可以根据其需求、效率和适用性来确定各种物联网应用的适当使用方式。

图片
图片

IOT Communication Protocols

物联网通信协议

物联网协议‌是机器之间或与平台之间通信的标准或“语言”,它们负责处理和协调物联网设备之间的通信。物联网协议根据其特性和功能可以分为不同的类型,主要包括接入协议和通讯协议。

我们可以通过OSI模型来详细介绍下不同层级的协议,如下图所示:

图片
图片

最上层的层次是第 5-7 层(会话层、表示层和应用层),它们用于处理数据处理。像我们日常生活接触到的蓝牙、WIFI、5G等就属于下面几层,用来传输。而应用层作为最后一层,将是唯一与最终用户交互的层次。实际上,我们这期讨论的就是应用层协议。

图片
图片

上图是一个典型的物联网系统架构,MQTT只是其中一项通信协议。使用物联网技术的应用程序包括三个关键部分:

  1. 应用程序中使用的物联网设备
  2. 运行在应用层上提供互联网(云)连接的物联网通信协议
  3. 用于存储和处理来自物联网设备的大数据的系统(分布式数据库和云系统),以及用于监控、分析和管理物联网应用程序的云平台。
图片
图片

7种通信协议

1.REST/HTTP

REST(Representational State Transfer)是一种架构风格,而不是设计网络应用程序的标准,通常使用HTTP作为其传输协议来实现其架构原则。

图片
图片

特点:

  • 无状态: 每个请求都包含所有必要的信息,服务器不维护客户端的状态。
  • 资源标识: 在服务器端,应用程序状态和功能可以划分为各种资源,并向客户端公开。例如,资源包括应用程序对象、数据库记录、算法等。每个资源都通过URI(通用资源标识符)分配一个唯一的地址。
  • 统一接口: 使用标准的HTTP方法来操作资源,如GET、POST、PUT、DELETE。

应用:

REST/HTTP主要旨在简化互联网的系统架构,快速实现客户端与服务器交互的松散耦合,从而降低交互延迟。因此,它适用于物联网应用,通过REST公开物联网资源,使服务能够被其他应用程序调用。

2.CoAP

CoAP(Constrained Application Protocol)为受限设备提供简单高效的通信,使其非常适合在低功耗、低带宽和高延迟环境中运行。

图片
图片

特点:

  • 头部压缩: CoAP具有紧凑的二进制头部,基础为4字节,随后是扩展选项,通常请求头部为10-20字节。
  • 方法和URI: 支持GET、PUT、POST、DELETE方法和URI,用于访问服务器资源。
  • 传输层: 基于UDP构建,最小化开销并支持多播,并具有简单的停等可靠性机制。
  • 异步通信: 与HTTP不同,CoAP支持异步通信,非常适合M2M(机器到机器)应用。
  • 资源发现: 包括内置的资源发现格式,符合RFC 5785标准,使用/.well-known/core进行资源描述。
  • 缓存: 支持资源描述的缓存,以提高性能。

应用:

CoAP是基于HTTP的简化版RESTful API。CoAP是6LoWPAN协议栈中的应用层协议,适用于资源受限的通信IP网络,如低功耗传感器和嵌入式系统。

3.MQTT

MQTT协议采用发布/订阅模式,物联网终端通常通过TCP连接到MQTT代理。代理通过主题管理通信内容,并负责在设备之间转发消息。

图片
图片

特点:

  • 发布/订阅模式: 客户端可以向主题发布消息,并订阅从特定主题接收消息。这种模式实现了灵活的消息分发。
  • 低带宽: 消息头部极小,通常仅为2字节,支持高效的带宽使用,使其适用于低带宽、高延迟和不稳定网络。
  • 可靠性: MQTT提供三种消息传递的服务质量(QoS)级别:“至多一次”、“至少一次”和“恰好一次”。

应用:

MQTT通常适用于设备数据采集到终端(例如,设备->服务器)以及星型网络架构中的集中通信,代理作为中心枢纽。它广泛应用于物联网场景,并且也被一些移动应用采用,如Facebook Messenger(历史上)。

4.DDS

DDS(Data Distribution Service)是为实时系统创建的中间件标准。它通过提供低延迟、高吞吐量和确定性性能,满足分布式应用的严格需求。

图片
图片

特点:

  • 数据为中心
  • 无代理的发布/订阅消息模型 支持点对点、点对多点和多点对多点通信。
  • 提供多达21种服务质量(QoS)策略

应用:

适用于设备的分布式、高可靠、实时数据通信。目前,DDS广泛应用于民航和工业控制等领域。

5.AMQP

AMQP是一种开放标准的应用层协议,旨在确保可靠的消息传递和队列机制。

图片
图片

特点:

  • 线缆级协议: 将数据作为字节流在网络上传输。
  • 由于开放标准,具有高度兼容性
  • 灵活且安全: 支持多种消息模式,包括发布/订阅和点对点。它还结合了多种安全机制,如加密和认证。

应用:

最初用于金融系统中的交易消息传递,AMQP现在主要用于移动设备和后台数据中心之间的物联网应用通信和数据分析。

6.XMPP

作为一种开放式通信协议,XMPP(Extensible Messaging and Presence Protocol)旨在进行实时通信,如即时消息和在线状态信息。

图片
图片

特点:

  • 客户端/服务器通信模型 客户端向服务器发送请求,服务器处理请求并向客户端发送适当的响应或资源。
  • 分布式网络: 多个独立节点构成网络,消除了单点故障。
  • 简单客户端: 客户端处理的任务较少,大多数计算在服务器端完成。
  • 使用XML描述数据,确保跨平台兼容性,尽管在现代应用中JSON已变得更流行。

应用:

XMPP用于即时通讯、网络管理、内容分发、协作工具、文件共享、游戏、远程系统监控等。

7.JMS

JMS(Java Message Service)是Java平台的分布式应用消息标准API。它允许应用程序通过消息队列进行通信,从而实现异步、灵活和可靠的消息交换。

图片
图片

特点:

  • 异步通信: 允许在不同时间发送和接收消息,增加系统的灵活性和响应性。
  • 消息持久性: 提供消息持久化,确保在系统故障时消息不会丢失,从而增强可靠性。
  • 事务支持: JMS提供事务支持,确保一组消息操作的原子性,即所有操作完全成功或完全失败,从而保证数据一致性。

应用:

JMS适用于需要异步消息、系统解耦和高可靠性的分布式应用,如企业应用集成、事件驱动架构和实时数据处理。

图片
图片

物联网协议比较

我们通过下表详细进行对比:

图片
图片

当然,不同的文献有不同的介绍,但是基本上MQTT、CoAP、AMPP等常用的物联网协议都包含在内,其他未详尽的可以参考文末链接。

图片
图片

结论

在设计特定的物联网系统架构时,选择最合适的通信协议之前,必须考虑以下实际通信需求‌:

  • 传输速率和带宽需求‌:不同的物联网应用对传输速率和带宽的需求不同。例如,实时视频监控需要较高的传输速率和带宽,而简单的传感器数据传输则对速率和带宽要求较低‌。
  • 延迟要求‌:某些应用(如自动驾驶)对网络延迟非常敏感,需要低延迟的通信协议。而一些非实时应用则可以容忍较高的延迟‌。
  • 可靠性‌:某些应用(如工业控制)需要高可靠性的通信,以确保数据的准确传输。
  • 设备兼容性‌:选择的协议需要与现有的设备和技术兼容,确保系统的可扩展性和维护性‌。
  • 安全性‌:在涉及敏感数据传输的应用中,协议需要提供足够的安全性措施,如加密和认证机制‌。
  • 成本效益‌:考虑到部署和维护成本,选择性价比高的协议可以降低总体拥有成本‌。

参考链接:

  1. https://www.minew.com/iot-communication-protocols/
  2. https://dzone.com/articles/which-are-the-iot-messaging-protocols
  3. https://pmc.ncbi.nlm.nih.gov/articles/PMC8540579/
  4. https://www.nexpcb.com/blog/different-data-protocols-which-one-to-choose
  5. https://webbylab.com/blog/mqtt-vs-other-iot-messaging-protocols/
  6. https://lab.wallarm.com/what/mqtt-vs-amqp/
  7. https://insights2techinfo.com/iot-protocols-comparing-mqtt-coap-and-http-for-efficient-device-communication/
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hello工控 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • IOT Communication Protocols
  • 物联网通信协议
  • 特点:
  • 应用:
  • 特点:
  • 应用:
  • 特点:
  • 应用:
  • 特点:
  • 应用:
  • 特点:
  • 应用:
  • 特点:
  • 应用:
  • 特点:
  • 应用:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档