物联网通信协议–CoAP

发表于 知识科普  |  标签 , , ,

概述

CoAP( Constrained Application Protocol 约束应用程序协议)是 RFC 7252 中定义的用于受限设备的专用 Internet 应用程序协议。它使设备能够通过互联网进行通信。它被定义为一种旨在用于非常简单的硬件的协议。该协议特别适用于受约束的硬件,例如8位微控制器,低功耗传感器和无法在HTTP或TLS上运行的类似设备。这是对在UDP上运行的HTTP协议的简化,有助于节省带宽。它设计用于同一受限网络(例如,低功耗、有损网络)上的设备之间、Internet 上的设备和一般节点之间,以及由互联网连接的不同受限网络上的设备之间。CoAP还通过其他机制使用,例如移动通信网络上的SMS.

CoAP特点

  • 在受限制的情况下满足M2M要求的网络协议环境
  • 具有可选可靠性的UDP [RFC0768]绑定支持单播和多播请求
  • 异步消息交换
  • 低报头开销和解析复杂性
  • URI和内容类型支持
  • 简单的代理和缓存功能

CoAP协议

它将普通的 HTTP 客户端扩展到具有资源约束的客户端。这些客户端称为 CoAP 客户端。代理设备基于HTTP协议弥合了受约束环境与典型互联网环境之间的差距。同一台服务器负责处理 HTTP 和 CoAP 协议消息。

CoAP协议栈

CoAP架构

CoAP数据格式

CoAP数据格式

CoAP 消息格式,由 4 个字节的标头和令牌值(从 0 到 8 个字节)组成。下表提到了由4个字节(即32位)组成的头部标识

CoAP消息头部标识说明
Ver它是 2 位无符号整数。它提到了 CoAP 版本号。设置为 1。
T它是 2 位无符号整数。指示消息类型,即可确认 (0)、不可确认 (1)、确认 (2) 或 RESET(3)。
TKL它是 4 位无符号整数,表示令牌的长度(0 到 8 个字节)。
Code它是 8 位无符号整数,它分为两部分,即 3 位类 (MSB) 和 5 位详细信息 (LSB)。
Message ID16 位无符号整数。用于匹配响应。用于检测邮件重复。
CoAP 头部标识

CoAP数据交换

协议消息在 CoAP 客户端和 CoAP 服务器之间交换有两种模式,单独响应模式和非单独响应模式

通过单独的响应,服务器通知客户端收到请求消息。这将增加处理时间,但有助于避免不必要的重新传输。由于使用了UDP,CoAP物联网是不可靠的协议。因此,CoAP消息到达无序或到达目的地时会丢失。

为了使CoAP成为可靠的协议,停止和等待时,其中包含指数退避重传功能。还引入了重复检测

CoAP在智慧家庭的应用

智能家居网络提供家庭设备的控制和监控能量。能源控制系统采用智能插座管理和监控耗电设备,以提供电压、电流和其他能源信息。可实现事故预警、远程控制、动态节能。系统结构如图12所示。使用CoAP客户端的每个数据收集节点都可以与其他节点交换信息。CoAP都可以安装在局域网或互联网上。与许多用于家用汽车设备的无线协议不同,CoAP的设计不受本地网络的限制,而是提供网络的基础数据,在此系统中,使用 CoAP-HTTP 代理来提供与 CoAP 资源的 HTTP 客户端连接,反之亦然。

能量控制系统

设备的能源信息和环境信息由智能插座采集,通过无线通道传送到数据采集模块,然后向代理发送串行数据进行处理和打包。控制服务器分析所有数据并将其存储在数据库中。系统集家庭网络和互联网于一体,用户可访问系统网页,远程控制开关、管理配置、查询能耗等

CoAP & MQTT

MQTT是另一种广泛用于物联网的协议。这两种协议之间存在一些差异。要注意的第一个方面是使用的不同范式。MQTT 使用发布者-订阅者,而 CoAP 使用请求-响应范例。MQTT 使用中央代理将来自发布者的消息分派给客户端。CoAP本质上是一个一对一的协议,与HTTP协议非常相似。此外,MQTT 是一种面向事件的协议,而 CoAP 更适合于状态传输

参考资料

网站总编:

内容审核: