7.2.7 协议选择指南
2026/7/18大约 3 分钟常用组件组件网络协议选择最佳实践
7.2.7 协议选择指南
📚 本节导读
学习时长:约 10 分钟
难度级别:⭐⭐☆☆☆
前置知识:HTTP/MQTT/CoAP 协议基础,第 7.2.2~7.2.4 节
🎯 学习目标
- 掌握 HTTP、MQTT、CoAP 三种协议的核心差异
- 能够根据实际项目需求选择合适的网络协议
- 了解各协议的典型适用场景
一、协议对比总览
| 特性 | HTTP | MQTT | CoAP |
|---|---|---|---|
| 传输层 | TCP | TCP | UDP |
| 通信模型 | 请求/响应 | 发布/订阅 | 请求/响应 |
| 报文头大小 | 大(数百字节) | 小(最小 2 字节) | 极小(最小 4 字节) |
| QoS | 无 | QoS 0/1/2 | CON/NON |
| 安全性 | TLS | TLS | DTLS |
| 功耗 | 高 | 中 | 低 |
| 适用场景 | Web API、文件上传 | 物联网消息推送 | NB-IoT、低功耗设备 |
二、选择建议
HTTP
适用于需要与现有 Web 服务交互、需要上传文件、或需要 RESTful API 的场景。
典型场景:OTA 固件下载、调用云端 REST API。
MQTT
适用于需要双向通信、实时消息推送、一对多消息分发的场景。
典型场景:智能家居设备控制、传感器数据上报、设备远程管理。
CoAP
适用于 NB-IoT 等低功耗广域网、资源极度受限设备、需要资源发现的场景。
典型场景:智能水表/电表、环境监测传感器、智慧农业节点。
📝 网络协议栈总小结
OneOS 网络协议栈基于 LWIP 2.1.2 提供完整的 TCP/IP 协议栈能力,通过 BSD Socket 兼容层为开发者提供标准的网络编程接口。上层应用协议方面,支持 HTTP 客户端、两种 MQTT 客户端(Paho / Mini)、两种 CoAP 实现(libcoap / freecoap),以及 LwM2M 和 WebSocket。Molink 蜂窝模组抽象层统一管理 4G / NB-IoT / WiFi 等通信模组,支持 30+ 种模组型号,使得应用代码与硬件解耦,大幅提升了可移植性。
核心要点回顾:
- OneOS 网络协议栈采用 LWIP + Socket + 应用协议 + Molink 四层架构
- BSD Socket API 与 POSIX 兼容,支持 TCP/UDP 通信、select 多路复用
- HTTP 客户端支持 GET / POST / PUT / DELETE / HEAD 方法,可自定义请求头
- MQTT 支持 QoS 0/1/2、遗嘱消息、持久会话,Paho 完整版和 Mini 精简版可按需选择
- CoAP 基于 UDP,支持资源发现和 RESTful 操作,适合 NB-IoT 场景
- Molink 抽象层屏蔽 30+ 种模组差异,提供统一 AT 指令接口