0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

“不会过时”的协议?CoAP与其他协议相比有何不同?

亿佰特物联网应用专家 2023-10-20 08:21 次阅读

什么是CoAP协议?

CoAP(Constrained Application Protocol,受限应用协议)是一种专为物联网IoT)设备和资源受限网络设计的应用层协议。它的诞生也是由于物联网设备大多都是资源限制型的,比如 CPURAM、Flash、网络宽带等;对于这类设备来说,想要直接使用现有网络的TCP和HTTP来实现设备信息交换是不现实的,为了让这部分设备能够顺利接入网络,CoAP 协议因此诞生。

8e1c37c2-6ede-11ee-9788-92fbcf53809c.png

如上图所示,CoAP协议是一个应用层协议,基于传输层UDP而开发,而MQTT/HTTP协议则是基于TCP开发的。它采用了与HTTP类似的特征,同时又弥补了UDP传输的不可靠性。对于物联网小型设备而言,CoAP协议是一个极佳的选择,CoAP这种轻量级协议可以很好地适配资源受限的设备和场景。

CoAP协议特点

CoAP 参考了很多 HTTP 的设计思路,同时也根据受限资源限制设备的具体情况改良了诸多的设计细节,增加了很多实用的功能。以下是关于其特点的简易介绍。

(1)轻量级

CoAP协议的设计非常简单,使用的头部和选项字段较少,占用的网络带宽和资源较少。这使得它非常适合在资源受限的设备和网络中使用。

(2)基于UDP

CoAP通常在UDP上运行,而不是TCP。这使得它更适用于无连接、低延迟和高效率的通信。此外,CoAP还支持对消息的可靠性传输,通过CoAP的CON(Confirmable)和ACK(Acknowledgment)消息。

8e33692e-6ede-11ee-9788-92fbcf53809c.png

CoAP传输

(3)RESTful架构*

CoAP采用RESTful架构风格,使用类似于HTTP的请求-响应模型。它支持GET、POST、PUT和DELETE等常用的HTTP方法,以进行资源的读取、创建、更新和删除。

RESTful架构*:REST(Representational State Transfer)是一种设计风格而不是标准,如果一个架构符合REST原则,我们就称它为RESTful架构,REST可以直译为表现层状态转化,表现层其实指的是资源的表现层。

(4)低能耗和低带宽消耗

CoAP协议针对资源受限设备和网络进行了优化,具有低能耗和低带宽消耗的特性。它使用了一些机制,如观察(Observing)和分组(Grouping),以减少通信的开销。

(5)资源标识符

CoAP使用统一资源标识符(URI)来标识资源,这样客户端可以通过URI来定位和操作特定资源。这与HTTP的URL类似。

(6)支持IP多播

允许一对多的通信,这对于物联网中的多个设备同时接收更新非常有用。

8e4181a8-6ede-11ee-9788-92fbcf53809c.png

一对多通信

(7)可靠性

CoAP协议支持可靠传输,通过使用重传和确认机制来确保消息的可靠传递。

(8)安全性

CoAP协议可以与DTLS(Datagram Transport Layer Security)结合使用,提供端到端的安全性。DTLS是基于UDP的安全传输协议,用于保护CoAP通信的机密性和完整性。

8e52d188-6ede-11ee-9788-92fbcf53809c.png

CoAP与DTLS结合

(9)自定义选项

CoAP允许在消息头中包含自定义选项,以满足特定应用的需求,这使得它非常灵活和可扩展。

CoAP协议 VS MQTT协议

CoAP和MQTT都是比较适合嵌入式设备的轻量级协议,以下是CoAP与MQTT协议的简单对比。

MQTT协议不支持带有类型或者其它帮助Client理解的标签信息,所有MQTT Client需要知道消息格式。而CoAP协议则恰恰相反,因为CoAP内置发现支持和内容协商,这样便能允许设备相互窥测以找到数据交换的方式。

MQTT是长连接而CoAP是无连接。MQTT Client与Broker之间保持TCP长连接,这种情形在NAT环境中也不会产生问题。若是在NAT环境下使用CoAP,就需要采取一些NAT穿透性措施。

MQTT是多个客户端通过中央代理进行消息传递的多对多协议,即消息不是直接从客户端发送到客户端,而是由客户端发布到存储在 MQTT 代理中的主题,客户端可以通过订阅一个或多个主题来接收消息。CoAP基本上就是一个在Server和Client之间传递状态信息的单对单协议

CoAP协议的应用领域

CoAP协议几乎已在所有行业得到了广泛的应用,它提供轻量级、高效的方式来进行通信和控制,适用于各种资源受限的环境,方便我们的生活和工作。

如:CoAP被广泛用于连接和管理物联网设备,因为它轻量级且能够在受限的网络和资源条件下高效运行。这包括智能家居设备、传感器智能城市系统等。医疗设备和健康监测系统可以使用CoAP进行数据传输和远程监控。这对于远程医疗保健和慢性病患者的远程监测非常有用。此外,在工业自动化、智能交通系统、农业和环境监测等场景,CoAP协议同样适用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2869

    文章

    41622

    浏览量

    358384
  • 协议
    +关注

    关注

    2

    文章

    570

    浏览量

    38911
  • 网络
    +关注

    关注

    14

    文章

    7251

    浏览量

    87442
  • CoAP
    +关注

    关注

    0

    文章

    9

    浏览量

    10531
收藏 人收藏

    评论

    相关推荐

    Modbus协议网关是什么?Modbus协议网关的功能

    Modbus协议网关是一种专门用于工业自动化环境中的网络设备,其主要功能是实现不同通信协议之间的转换,尤其是将基于Modbus协议的设备或系统与使用其他
    的头像 发表于 04-11 15:51 130次阅读

    WITS协议是什么?WITS协议的功能

    WITS协议(Wireless Information Transmission System)是一种用于无线信息传输系统的协议,旨在确保高效、可靠的数据传输和通信。本协议旨在规范WITS协议
    的头像 发表于 01-05 16:23 330次阅读

    EtherCAT协议和Modbus协议在风电领域

    Modbus协议还可以与其他工业自动化协议进行集成,例如Ethernet/IP、Profinet等,以实现更高效和可靠的数据传输和控制。在风电领域,EtherCAT协议和Modbus
    的头像 发表于 12-22 15:03 201次阅读
    EtherCAT<b class='flag-5'>协议</b>和Modbus<b class='flag-5'>协议</b>在风电领域

    单板计算机是什么?它与其他计算机有何不同?

    单板计算机是什么?它与其他计算机有何不同? 单板计算机(Single Board Computer,SBC)是一种集成了所有计算机部件的完整计算机系统,包括中央处理器(CPU)、内存、输入输出接口
    的头像 发表于 12-15 09:58 657次阅读

    虹科技术 | BabyLIN产品如何轻松搞定K线协议实现?

    在V.6.18以上)的BabyLIN设备都可以执行KLine Raw协议。 1. KLine Raw协议实现 与其他协议实现相同,需要在SessionConf中新建 Protocols
    的头像 发表于 12-04 13:46 262次阅读
    虹科技术 | BabyLIN产品如何轻松搞定K线<b class='flag-5'>协议</b>实现?

    COAP协议的双层模型及其传输特性

    作为物联网世界的主流协议之一,CoAP协议为低功耗受限设备的数据交互和网络接入提供了可能,IETF在RFC7252中对其进行了详细的定义,本文结合CoAP
    的头像 发表于 11-20 10:19 373次阅读
    <b class='flag-5'>COAP</b><b class='flag-5'>协议</b>的双层模型及其传输特性

    基于串口哪些标准通讯协议

    像RS232485这些物理层就不用说了,我想了解的是哪些标准协议。 比如MODBUSRTUASCII 等 还有其他的标准协议吗?
    发表于 11-06 06:35

    什么是毫米波技术?它与其他低频技术相比有何特点?

    什么是毫米波技术?它与其他低频技术相比有何特点? 毫米波技术是一种用于通信、雷达和成像的超高频电磁波技术。它的频率范围通常被定义为30 GHz到300 GHz,有时也被称为毫米波段或E波段。与其他
    的头像 发表于 10-23 10:10 752次阅读

    一文读懂QUIC协议:更快、更稳、更高效的网络通信

    HTTP/3 是第三个主要版本的 HTTP 协议与其前任 HTTP/1.1 和 HTTP/2 不同,在 HTTP/3 中,弃用 TCP 协议,改为使用基于 UDP 协议的 QUIC
    的头像 发表于 08-24 15:43 795次阅读
    一文读懂QUIC<b class='flag-5'>协议</b>:更快、更稳、更高效的网络通信

    tcpip协议栈是什么?tcpip协议栈有哪些协议?tcpip协议栈中报文封装和解封装过程

    tcpip协议栈是什么? TCP/IP协议栈是计算机网络中使用的最常见的网络协议栈。它是一个四层协议栈,每一层使用不同的协议来实现特定的任务
    的头像 发表于 08-01 17:51 4274次阅读
    tcpip<b class='flag-5'>协议</b>栈是什么?tcpip<b class='flag-5'>协议</b>栈有哪些<b class='flag-5'>协议</b>?tcpip<b class='flag-5'>协议</b>栈中报文封装和解封装过程

    FPGA以太网-UDP协议

    UDP协议是一种不可靠的协议,也就是说在传输的过程中如果出错了,并不会去重新传输这个协议包,这个和TCP是不一样的。
    发表于 07-10 11:00 1089次阅读
    FPGA以太网-UDP<b class='flag-5'>协议</b>

    udp协议的特性有哪些 udp的应用原理

    UDP(User Datagram Protocol)是一个独立的传输层协议,不包含其他协议。它仅在IP协议上增加了端口号的概念,以便能够将数据报正确地传送给目标端口。
    的头像 发表于 06-14 18:21 1428次阅读

    MQTT 5协议中的基础更改(二)

    上期文章中给大家介绍了MQTT 5协议中基础更改的信息和CONNACK返回码,本篇文章我们继续介绍MQTT 5协议其他新功能的细节。
    的头像 发表于 05-16 10:46 358次阅读
    MQTT 5<b class='flag-5'>协议</b>中的基础更改(二)

    无法通过COAP POST发送数据怎么解决?

    我正在使用 2 个 ESP8266 板来测试 COAP 协议。 一个是 COAP 服务器,另一个是客户端。 我使用了 ESP8266-FreeRTOS-SDK 的 CoAP 示例,但是
    发表于 05-15 06:23

    Modbus协议的理解

    传输,0x0D和0X0A可能出现在数据位中。所以,如果数据采用高4字节+低4字节的传输方式,可以将停止位换成0X20(空格)等高4字节值的数,这样一来就不会跟前面的数据位相冲突。(我自己定的
    发表于 05-05 16:47