网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

受限应用协议(Constrained Application Protocol,CoAP)

更新时间:2026年03月27日   作者:spoto   标签(Tag):

受限应用协议(Constrained Application Protocol,CoAP)是一种专为在资源有限的节点和网络上运行的网络传输协议。这类网络常被用于物联网等应用场景中,因为在这些场景中,设备的处理器、内存和电力资源往往有限。CoAP协议的设计理念是简单、低开销且高效,因此非常适合用于机器对机器的通信场景。

CoAP到底是什么?

CoAP,即受限应用协议。顾名思义,这是一种由互联网工程任务组在2014年推出的应用层协议。CoAP旨在适用于那些资源有限的环境。它是一种基于网络的协议。HTTP它也是基于请求-响应模型的。这种协议遵循REST风格的架构,将网络中的各种对象视为资源。这些资源都被分配了唯一的URI来表示。统一资源标识符从一个资源到另一个资源的数据传输,是通过CoAP消息包的形式进行的。这些消息包的格式将在后面详细说明。客户端请求某些资源,作为回应,服务器会发送一些响应信息,而客户端则会对这些响应信息进行确认。不过,有些类型的CoAP协议中,接收方并不需要为接收到的信息发送确认消息。

CoAP是如何工作的呢?

受限应用协议(Constrained Application Protocol,CoAP)是一种/属于某种类别应用层协议该解决方案专为资源有限的设备和网络设计,特别适用于物联网领域的应用场景。

  • 客户端-服务器模型CoAP模型本质上是一种客户端/服务器模型。在这种模型中,客户端可以根据需要向服务器请求服务,而服务器则会对客户端的请求作出响应。
  • 以资源为导向CoAP将网络中的各种对象视为资源,这些资源都通过URI(统一资源标识符)来唯一标识。客户端可以请求有关这些资源的信息,而服务器则负责提供相应的响应。2.
  • 方法/手段CoAP支持多种与HTTP类似的方法。
    • 获取/得到
    • POST
    • 删除
    • PUT
  • 异步消息传递CoAP消息是异步传输的,因为它采用了异步传输方式。用户数据报协议(UDP)与基于TCP的协议不同,CoAP不需要对每条消息都进行确认处理。这一特性有助于在资源有限的设备中节省能源。
  • 能源效率CoAP的设计目标是在减少能耗的同时,简化客户端与设备之间的通信过程。它通过管理资源、提供设备描述,以及支持判断设备是否处于开启或关闭状态的机制来实现这一目标。

CoAP中的方法

  • 获取/得到GET方法用于获取由请求URI所标识的资源信息。当GET方法成功执行时,会返回200(成功)的响应。
  • POST“Post”方法会在服务器请求的父URI下创建一个新的子资源。如果资源创建成功,则会返回状态码201(已创建);如果创建失败,则会返回状态码200(成功)。
  • 删除“delete”方法用于删除由请求的URI所标识的资源。如果操作成功,则会返回200(成功)的响应码。
  • PUTPUT方法用于更新或创建由请求URI所标识的资源,同时还会携带相应的消息体。如果资源已经存在于指定的URI中,那么消息体就被视为该资源的修改版本;否则,就会为该URI创建一个新的资源。在前者的情况下,会收到200(成功)的响应;而在后者的情况下,则会收到201(已创建)的响应。如果资源既没有被创建也没有被修改,那么就会返回一个错误响应码。

CoAP与HTTP之间最根本的区别在于:CoAP定义了一种在HTTP中不存在的新方法。这种新方法被称为……观察/留意该方法与GET方法非常相似,只不过它增加了“观察”选项。这样,当资源发生任何变化时,服务器就会向客户端发送相应的更新信息。这些响应可以单独发送,也可以一起发送。背负式.

CoAP的消息格式

CoAP消息采用编码方式进行传输。二进制格式或者采用0/1格式。与其他消息格式类似,CoAP消息也包含头部、有效载荷部分以及可选的部分。CoAP头部的大小是4字节或者32位。这种大小是每个CoAP消息的固定值。而消息的其余部分则是可选部分,其中包括了不同大小的负载和标记,这些标记的大小可以有所不同。0到8字节CoAP消息的格式包含以下字段:

  • 版本/型号“版本字段的大小为2位。它用来表示CoAP协议的版本。”
  • 类型代码“类型字段”的大小为2位。共有四种类型的消息,分别用00、01、10、11这四种二进制模式来表示:可确认的消息、不可确认的消息、确认消息以及重置消息。
  • 选项/选择计数“选项计数字段”的大小为4位。这4位表示,在头部中总共可以有16种可能的选项。
  • 代码代码字段的大小为8位。这可以用来判断消息是空的、请求消息还是响应消息。
  • 消息ID消息ID字段的大小为16位。该字段用于检测消息的重复情况以及消息的类型。
  • 代币[可选] – “Token大小”字段的大小是可变的,范围在0到8字节之间。该字段用于确保响应与请求的内容相匹配。
  • 选项/选择[可选] – CoAP消息中的选项字段具有可变化的尺寸。它用于定义负载消息的类型。
  • 有效载荷[可选] – 与“选项”字段类似,负载字段的大小也是可变的。请求或响应的负载通常代表了所请求的资源,或者所执行的操作的结果。
CoAP消息格式

CoAP特性

  • 轻便且简单
  • RESTful架构
  • 基于UDP的协议
  • 异步通信
  • 低开销的Header处理方式
  • 多播通信
  • 代理以及缓存功能

CoAP的应用

  • 电网中的实时监控系统智能城市可以远程监控电力的分配和生成情况。CoAP传感器可以被嵌入到变压器内部,而数据则可以通过GPRS或6LowPAN进行传输。
  • 国防相关公用事业机构——如今,武器库和坦克都配备了传感器,因此可以在不受到任何干扰的情况下进行远程信息传输。CoAP传感器能够检测到任何入侵行为。这使得它们即使在带宽较低的网络环境下也能传输更多的数据。
  • 飞机上的各种实用设备/工具飞机上的传感器和执行器可以与其他传感器连接,而通信则可以通过基于智能CoAP协议的传感器和执行器来实现。

关于MQTT协议与CoAP协议之间的区别,可以参考GFG网站上发布的这篇文章来理解。CoAP与MQTT之间的区别

结论

CoAP是一种功能丰富且高效的协议,它被开发出来以满足受限设备与网络的特殊需求。 由于CoAP具有较低的开销,并且能够在低带宽环境下有效传输数据,因此它已成为物联网和云计算系统架构中首选的协议。 CoAP消息的头部具有固定的大小,为4个字节。 此外,CoAP消息格式还包含一些可选的字段,比如令牌、选项以及有效载荷等字段。 CoAP的消息格式采用二进制编码方式,以0/1的形式来表示数据。 CoAP采用请求-响应模型进行通信。这一模型与HTTP中的GET、POST、PUT和DELETE等请求方法非常相似。此外,CoAP还拥有自己独特的方法。

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料