Coap协议

本文深入解读了CoAP协议,一种专为小型设备和受限网络设计的简单、低开销的Web传输协议。介绍了其特点如异步消息、URI支持和安全性选项,并详细剖析了确认与非确认消息模型及在物联网应用中的优势,与MQTT进行对比。
摘要由CSDN通过智能技术生成

什么是Coap协议

CoAP是一种低开销的简单协议,专门针对受限设备(例如微控制器)和受限网络而设计。

特征

  1. 受限制的小型设备的Web传输协议
  2. 异步消息交换
  3. 低开销,非常易于解析
  4. URI和内容类型支持
  5. 代理和缓存功能

层次

CoAP协议有两个不同的层:消息负载和请求/响应。消息层处理UDP和异步消息。请求/响应层基于请求/响应消息来管理请求/响应交互。

Coap消息模型

这是CoAP的最低层。该层处理端点之间的UDP交换消息。每个CoAP消息都有一个唯一的ID。这对于检测消息重复很有用。

CoAP协议使用两种消息:确认消息、不可确认的消息
可确认消息是可靠消息。在两个端点之间交换消息时,这些消息可能是可靠的。在CoAP中,使用确认消息(CON)获得可靠的消息。使用这种消息,客户端可以确保消息将到达服务器。反复发送确认消息,直到另一方发送确认消息(ACK)。ACK消息包含与确认消息(CON)相同的ID。

另一个消息类别是“不可确认(NON)”消息。这些是不需要服务器确认的消息。它们是不可靠的消息,或者换句话说,这些消息不包含必须传递给服务器的关键信息。包含从传感器读取的值的消息属于此类别。即使这些消息不可靠,它们也具有唯一的ID。

CoAP请求/响应模型

CoAP请求/响应是CoAP抽象层中的第二层。使用“确认”(CON)或“非确认”(NON)消息发送请求。根据服务器是否可以立即响应客户端请求或答案(如果不可用),有几种方案。

安全方面

在安全方面,虽然 CoAP 不能使用 SSL/TLS 提供安全(因为这需要 TCP 传输层),但可以使用通过 UDP 运行的 DTLS(数据报传输层安全标准),这可提供与 TLS 相同的保证。具有 DTLS 功能的 CoAP 设备通常支持 ECC 和 AES 或 RSA 和 AES 。

MQTT

MQTT的特点是可以保持长连接,具有一定的实时性,云端向设备端发送消息,设备端可以在最短的时间内接收到并作出响应,所以MQTT更适合需要实时控制的场合,更适合执行器。要保持长连接,那么就要时不时地发送心跳包,这就不会省电了。所以低功耗的场合并不适合MQTT。MQTT的长连接需要建立在TCP的基础上,TCP协议的复杂性决定了对设备的要求是比较高一些的,相比UDP。

CoAP

CoAP的特点是低功耗,数据发完就可以休眠了。所以CoAP更适合数据采集的场合,更适合纯粹的传感器设备,特别是电池供电的传感器设备。基于UDP协议,对设备的要求比较简单。华为出的NB-IoT芯片就只支持UDP和CoAP,华为的决策告诉我们CoAP和NB-IoT是一对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值