伽利略的悲伤|CoAP协议浅析

目录
CoAP协议
CoAP架构
CoAP消息头格式
CoAP消息交换
HTTP与CoAP协议对比
CoAP是约束应用协议的缩写形式 。
CoAP协议在RFC7252中规定 。 它是一种Web传输协议 , 用于受约束的节点或网络 , 如WSN , IoT , M2M等 。 因此 , 名称为ConstrainedApplicationProtocol 。 该协议针对具有较少内存和较少功率规范的物联网(IoT)设备 。
由于它是为Web应用程序设计的 , 因此它也被称为“WebofThingsProtocol” 。 它可用于通过Web应用程序将数据从几个字节传输到1000个字节 。 它存在于UDP层和应用层之间 。
以下是CoAP协议的功能:
?它是非常有效的RESTful协议 。
?易于代理到HTTP/从HTTP代理 。
【伽利略的悲伤|CoAP协议浅析】?它是开放的IETF标准
?它是嵌入式Web传输协议(coap://)
?它使用异步事务模型 。
?UDP与可靠性和多播支持绑定 。
?使用GET , POST , PUT和DELETE方法 。
?支持URI 。
?它使用小而简单的4字节标头 。
?支持绑定到UDP , SMS和TCP 。
?使用基于DTLS的PSK , RPK和证书安全性 。
?使用MIME类型和HTTP响应代码的子集 。
?使用内置的发现机制 。
伽利略的悲伤|CoAP协议浅析
文章图片
图1描绘了CoAP架构 。 如图所示 , 它将普通HTTP客户端扩展到具有资源约束的客户端这些客户端称为CoAP客户端 。 代理设备基于HTTP协议弥合了传统环境与典型互联网环境之间的差距 。 同一服务器负责HTTP和CoAP协议消息 。
伽利略的悲伤|CoAP协议浅析
文章图片
图2描绘了CoAP消息格式包括4个字节的头部 , 后跟令牌值(从0到8个字节) 。 下表提到了由4个字节组成的标题 , 即32位 。
CoAP邮件头
描述
版本它是2位无符号整数 。 它提到了CoAP版本号 。 设置为一个 。 ?它是2位无符号整数 。 表示消息类型即 。 确认(0) , 不可确认(1) , ACK(2)或重置(3) 。 漳州灿坤它是4位无符号整数 , 表示令牌的长度(0到8个字节) 。 码它是8位无符号整数 , 它分为两部分即 。 3位类(MSB)和5位细节(LSB) 。 消息ID16位无符号整数 。 用于匹配响应 。 用于检测邮件重复 。
伽利略的悲伤|CoAP协议浅析
文章图片
有两种模式可以在CoAP客户端和CoAP服务器之间交换CoAP协议消息 。 没有单独的回应和单独的回应 。
通过单独响应 , 服务器通知客户端收到请求消息 。 这将增加处理时间 , 但有助于避免不必要的重传 。
由于使用UDP , CoAP是不可靠的协议 。 因此 , CoAP消息在到达目的地时会无序或丢失 。
为了使CoAP成为可靠的协议 , 停止并等待指数退避重传功能 。 还引入了重复检测 。
CoAP约束应用协议协议是HTTP的升级版本 。
它专为资源构成应用而设计 , 如IoT/WSN/M2M等 。 它基于UDP 。 它使用ACK消息 , 使其像TCP一样可靠 。 与HTTP相比 , 它具有低延迟并且消耗更少的功率 。
伽利略的悲伤|CoAP协议浅析
文章图片
图1描述了客户端和服务器之间使用的HTTP协议作为不安全连接 。 HTTP的HTTPS版本用于提供安全连接 。 HTTP主要用于查看网页或网站 。 该协议是为基于互联网的应用程序和设备而设计的 , 其中不存在电源和任何其他组件 。 它是基于TCP的协议 。
以下是CoAP和HTTP协议之间的表格差异 。
特征
CoAP协议
HTTP
协议它使用UDP 。 它使用TCP 。 网络层它使用IPv6和6LoWPAN 。 它使用IP层 。 多播支持它支持 。 它不支持 。 架构模型CoAP使用客户端-服务器和发布-订阅模型 。 HTTP使用客户端和服务器架构 。 同步通信CoAP不需要这个 。 HTTP需要这个 。 开销开销更少 , 而且很简单 。 与CoAP相比 , 开销更大 , 而且很复杂 。 应用专为资源受限的网络设备而设计 , 例如WSN/IoT/M2M 。 专为没有任何资源问题的互联网设备而设计 。


推荐阅读