首页/网络/工控与物联网速查/CoAP消息类型与可靠传输机制
物联网协议60 条

CoAP消息类型与可靠传输机制

CoAP 用可确认、不可确认、确认与复位四种消息类型组织交互:可靠性靠可确认消息的确认与重传,去重靠消息标识。这套机制在应用层替代了 TCP 承担的角色,因此参数配置直接影响可靠性。

工控与物联网速查网络更新于 2026-10-17
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​​​​​​‌​‌‌​‌​‌‌​‌‌​‌​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌‌​​‌‌​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌​‌​‌‌‌​‌​​​‌‌‌‌​​‌​‌‌‌​​​​​‌‌​​‌​‌​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌‌​​‌​​‌‌​​‌​‌​‌‌​‌‌​​​‌‌​‌​​‌​‌‌​​​​‌​‌‌​​​‌​​‌‌​‌​​‌​‌‌​‌‌​​​‌‌​‌​​‌​‌‌‌​‌​​​‌‌‌‌​​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

四种消息类型

可确认消息要求对端回确认,未收到时按初始超时与随机因子逐次加倍重传,重传次数有上限;不可确认消息不要求确认,适合可容错的周期数据;确认报文可以只做链路级确认,也可以在响应就把结果捎带回来;复位报文表示收到了但无法处理,例如上下文中找不到对应的请求。

类型与用途

类型含义适用
可确认消息要求对端回复确认,未收到则重传需要保证到达的请求或响应
不可确认消息不要求确认可容忍丢失的周期上报
确认消息表示已收到,可捎带响应与请求使用同一消息标识
复位消息表示收到但无法处理取消订阅、上下文缺失等场景

重传与去重参数

重传与去重参数
# 以下为规范默认值,具体实现可能不同,以所用实现文档为准
# 初始确认超时:约 2 秒
# 随机因子:1.0 至 1.5 之间,避免多个设备同时重传
# 重传次数上限:4 次
# 单次交互最长等待:约 45 秒
# 去重依据:对端地址加消息标识,在去重窗口内视为同一报文

典型使用场景

  • 关键控制指令:使用可确认消息并处理响应,确认设备确实执行
  • 周期数据采集:容错要求低时可用不可确认消息降低开销
  • 网络拥塞控制:调整重传参数避免重传放大拥塞
  • 会话清理:对失效的通知回复复位报文,让服务端移除订阅关系
确认与响应是两件事:服务端可以先发确认再单独发响应,也可以把响应直接放在确认报文里捎带,客户端两种情形都要能处理。
在丢包率高的链路上大量使用可确认消息会让重传进一步放大拥塞,需要同时调整设备上报周期与业务超时。

易错点

  • 把确认当成业务响应:确认只是链路级回应,实际结果可能在另一条报文中返回
  • 关键指令使用不可确认消息:网络抖动时静默丢失,业务层无从感知
  • 重传参数与业务超时冲突:业务层先超时而协议仍在重传,产生重复处理
  • 忽略去重窗口:重传报文被当作新请求处理,导致同一动作被重复执行

数据来源与参考

  • RFC 7252 CoAP 协议(消息层与重传)
  • RFC 7959 CoAP 分块传输

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/ics/coap-message-types-reliability.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​​​​​​‌​‌‌​‌​‌‌​‌‌​‌​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌‌​​‌‌​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌​‌​‌‌‌​‌​​​‌‌‌‌​​‌​‌‌‌​​​​​‌‌​​‌​‌​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌‌​​‌​​‌‌​​‌​‌​‌‌​‌‌​​​‌‌​‌​​‌​‌‌​​​​‌​‌‌​​​‌​​‌‌​‌​​‌​‌‌​‌‌​​​‌‌​‌​​‌​‌‌‌​‌​​​‌‌‌‌​​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​