跳转至

IoT 应用层协议全面对比:MQTT vs CoAP vs LwM2M vs AMQP vs HTTP

难度:🟡 中级 | 领域:应用层协议、选型 | 阅读时间:约 28 分钟

日常类比

超文本传输协议(Hypertext Transfer Protocol, HTTP)像标准纸箱:结实通用,但箱子本身有重量。寄电视合适;寄一颗“药丸”(几字节温湿度)时,纸箱可能比货还重。物联网(Internet of Things, IoT)才需要更“薄”的信封:消息队列遥测传输(Message Queuing Telemetry Transport, MQTT)、受限应用协议(Constrained Application Protocol, CoAP)等[8][9]。

摘要

从架构模型、报头开销、服务质量(Quality of Service, QoS)、传输绑定与场景选型对比 MQTT、CoAP、轻量机器到机器(Lightweight M2M, LwM2M)、高级消息队列协议(Advanced Message Queuing Protocol, AMQP)与 HTTP。延迟/吞吐表为文献与基准的量级示意,测量拓扑不同不可横比硬 SLA[5][6][9]。

1 为何不能全用 HTTP

HTTP 请求-响应与偏大的头部,对电池与低带宽不友好;发布/订阅也非其长项。HTTP/2、HTTP/3(基于 QUIC)改善了多路与握手,但受限终端上仍常逊于专用 IoT 协议[5][8]。

2 五协议速览

协议 模型 典型传输 定位
MQTT 发布/订阅 + Broker TCP(亦有 QUIC 实验) 设备到云遥测主流
CoAP REST 风格 + Observe UDP(可 TCP/WebSocket) 受限设备、易 HTTP 映射
LwM2M 对象模型 + 生命周期 常基于 CoAP 运营商级设备管理
AMQP Exchange/Queue/Binding TCP 企业可靠路由
HTTP 请求/响应 TCP / QUIC 大文件、管理 API、Web 生态
  • MQTT:固定头可小至 2 字节量级;QoS 0/1/2;5.0 含共享订阅、消息过期、主题别名等[1]。
  • CoAP:约 4 字节固定头;CON/NON;与 HTTP 语义接近,便于代理[2][12]。
  • LwM2M:Bootstrap/注册/管理/上报;IPSO 对象;1.1+ 可绑 TCP/MQTT 等[3]。
  • AMQP:路由强、可持久化与事务;资源开销高于 MQTT/CoAP,多在网关/服务器侧[4]。
  • HTTP:工具链最全;低频大数据仍实用[8]。

3 开销与性能(量级)

3.1 报头与小载荷

指标 MQTT CoAP AMQP 1.0 HTTP/1.1 HTTP/2
最小固定头(B,量级) ~2 ~4 ~8 数百级文本头 帧头更小但仍有头压缩态
传 2B 传感值总大小(量级) 十余~数十 十余~数十 数十~百 数百~千 数十~百(视头表)
传输层 TCP UDP 为主 TCP TCP TCP/QUIC

“差几十倍”只在特定小载荷对比中成立;加密握手、主题字符串、JSON 封装会显著抬高实际字节数[5][9]。

3.2 延迟与吞吐倾向

倾向 更常见观察
单次请求、无长连接 CoAP(UDP)建连成本低
持续高频小消息 MQTT 长连接 + 极简头更占优
弱网可靠投递 MQTT QoS1/2 或 CoAP CON;依赖实现与重传参数
通用 Web/CDN HTTP/2 或 HTTP/3

具体 ms 与 msg/s 随 Broker、硬件、TLS、QoS 剧烈变化,表意在机制而非绝对值[5][6]。

4 QoS 机制对比

特性 MQTT CoAP AMQP LwM2M HTTP
确认 QoS 1/2 CON+ACK 显式确认 继承 CoAP 响应码
恰好一次 QoS 2 无对等 事务等 无对等 靠幂等设计
持久化 Broker 可配 通常无 原生强 通常无 不适用
离线/遗嘱 Session / Will 队列

实践中 MQTT QoS 1 最常用:QoS 2 四次握手在高吞吐下成本高[1][9]。

5 传输绑定:TCP / UDP / QUIC

  • TCP 系(MQTT、AMQP、HTTP/1.1–2):可靠有序,有握手与队头阻塞;长连接可摊薄建连成本。
  • UDP 系(CoAP、经典 LwM2M):无连接,可靠性上移到应用;NAT 存活需应用保活。
  • QUIC(HTTP/3,MQTT-over-QUIC 实验):0-RTT、多路无 TCP 式队头阻塞;移动弱网叙事积极,端侧栈与中间盒仍是部署变量[7]。

6 选型框架

场景 更常推荐 理由(机制)
家居传感 MQTT QoS 0/1 小消息、推送、生态成熟
工业大规模遥测 MQTT 5.0 共享订阅、主题别名
运营商电表/管理 LwM2M 生命周期 + 对象模型
Class 0/1 受限节点 CoAP / LwM2M 难扛完整 TCP 栈
IT/OT 企业总线 AMQP 或桥接 路由与持久化
OTA / 大文件 HTTP/2 或 CoAP Block 分块与工具链

资源:极小 RAM 优先 CoAP 系;网关级才优先 AMQP。模式:Pub/Sub→MQTT;REST→CoAP;管设备→LwM2M[3][8]。

7 多协议共存

现实架构常为:末端 CoAP/LwM2M → 边缘汇聚 MQTT → 云侧 AMQP/Kafka → 应用 HTTP/gRPC。协议网关与 Sparkplug、DDS-MQTT Bridge 等补齐互操作;数据分发服务(Data Distribution Service, DDS)更偏去中心实时横向,与 MQTT 中心化南向互补[10][11]。

8 局限、挑战与可改进方向

1. 基准不可横比

局限:公开延迟/吞吐表混合实验室拓扑、是否含 TLS、不同 QoS,易被误当成通用排名。 改进:固定载荷、丢包、TLS、硬件后复测;选型写清测量口径[5][9]。

2. “一个协议打天下”

局限:设备管理、遥测、文件、人机 API 需求冲突,单协议要么过重要么缺能力。 改进:按平面拆协议 + 边缘归一;用 LwM2M/MQTT 分工而非互相替代[3][6]。

3. 安全与中间盒

局限:UDP/DTLS、QUIC 穿越与证书生命周期在现场常比选协议本身更痛。 改进:先验证 NAT/防火墙路径;证书轮换与时钟同步纳入验收;必要时 CoAP over TCP/WebSocket[12]。

4. 语义互操作

局限:MQTT 只保证管道,主题与载荷混乱导致多厂商无法协作。 改进:工业侧评估 Sparkplug 等;管理侧用 LwM2M 对象;Schema 与版本策略与网关篇对齐[10]。

9 总结

选型是资源开销、功能、生态的权衡,不是找“冠军协议”。MQTT 主导设备到云遥测,CoAP/LwM2M 守住受限与管理,AMQP 守企业路由,HTTP 守 Web 与大对象;用场景矩阵与同口径实测决策。

参考文献

[1] OASIS, "MQTT Version 5.0," OASIS Standard, 2019.

[2] Z. Shelby et al., "The Constrained Application Protocol (CoAP)," RFC 7252, IETF, 2014.

[3] OMA SpecWorks, "Lightweight M2M Technical Specification v1.2," 2022.

[4] OASIS, "AMQP Version 1.0," OASIS Standard, 2012.

[5] T. Yokotani et al., "Performance Comparison of IoT Protocols: MQTT, CoAP and HTTP," IEEE Access, 2024.

[6] Eclipse IoT Working Group, "IoT Developer Survey 2024," Eclipse Foundation, 2024.

[7] R. Banno et al., "MQTT over QUIC: Leveraging Modern Transport for IoT Communication," IEEE Internet of Things Journal, 2024.

[8] N. Naik, "Choice of Effective Messaging Protocols for IoT Systems," IEEE Systems Journal, 2017.

[9] D. Thangavel et al., "Performance evaluation of MQTT and CoAP via a common middleware," IEEE ISSNIP, 2014.

[10] Eclipse Sparkplug Working Group, "Sparkplug Specification v3.0," 2022.

[11] Connectivity Standards Alliance, "Matter Specification," 2022–.

[12] A. Betzler et al., "CoAP over TCP, TLS, and WebSockets," RFC 8323, IETF, 2018.

[13] OMG, "DDS-MQTT Bridge," Object Management Group, related specifications.