CoAP是什么?受限应用协议核心内容、应用领域一文梳理
导读 CoAP全称Constrained Application Protocol(受限应用协议),是IETF为极简物联网设备设计的类HTTP轻量级协议。本文从RESTful风格、UDP可靠性、多播支持、与MQTT对比等维度全面解读。
CoAP是什么?
CoAP 全称为 Constrained Application Protocol,中文译为受限应用协议。
CoAP 是 IETF(互联网工程任务组)专门为资源严重受限的物联网设备设计的类 HTTP 的轻量级通信协议。
如果说 HTTP 是为服务器设计的"重型卡车",MQTT 是为传感器设计的"面包车",那么 CoAP 就是为极简传感器设计的"摩托车"——非常轻量、能在最窄的带宽上运行、能在最弱的处理器(RAM < 10KB)上实现。
CoAP 建立在 UDP 之上(而非 TCP),免去了 TCP 三次握手和连接状态维护开销,报文头部仅 4 字节(HTTP 通常数百字节)。
CoAP的核心特性
- RESTful 风格
CoAP 模仿 HTTP 的 RESTful 风格——用 GET/POST/PUT/DELETE 操作资源,用 URI 标识资源(如 coap://192.168.1.10/sensors/pressure)。Web 开发者无需学习全新范式即可上手物联网开发。
- 可靠性机制
虽基于不可靠 UDP,但通过应用层重传实现可配置可靠性:
-
Confirmable(CON)消息:要求 ACK 回复,未收到则指数退避重传(最多 4 次)
-
Non-Confirmable(NON)消息:发完不管,适用于高频采集允许偶尔丢包
- 多播支持
CoAP 原生支持 UDP 多播——一条消息全网设备同时接收,在批量控制(如"所有排水泵停止")场景中非常高效。
- 资源发现
设备启动后通过 /.well-known/core 自动列出所有可用资源,实现即插即用。
CoAP vs MQTT
| 维度 | CoAP | MQTT |
|---|---|---|
| 传输层 | UDP | TCP |
| 架构 | 请求/响应(类HTTP) | 发布/订阅 |
| 报文头 | 4 字节 | 2 字节(最小) |
| 多播 | 原生支持 | 不支持 |
| 代理依赖 | 无需 Broker | 需 Broker |
| 适用场景 | 局域网传感器/执行器 | 广域网大规模设备 |
在城市生命线中的应用
-
管廊内部传感器网络:自建 6LoWPAN/Thread 网络,CoAP 为应用层协议
-
泵站设备间通信:PLC、传感器、执行器局域网 CoAP 互联
-
边缘计算节点:边缘网关收集本地数据后通过 CoAP 暴露 RESTful API
在广域传输领域 MQTT 仍是首选,但 CoAP 在局域网和极低功耗场景中不可替代。
结论
CoAP 是物联网协议栈中"最轻量的一环",把 Web 的 RESTful 设计哲学压缩到了极致。局域用 CoAP,广域用 MQTT,共同构成完整物联网通信链路。
参考文献
-
IETF RFC 7252. The Constrained Application Protocol (CoAP)
-
IETF RFC 8323. CoAP over TCP, TLS, and WebSockets