CoAP(Constrained Application Protocol)

CoAP是6LowPAN协议栈中的应用层协议

CoAP是超轻量型协议

CoAP的默认UDP端口号为5683

1. 四种消息类型

typedef enum {
COAP_TYPE_CON, /* confirmables */
COAP_TYPE_NON, /* non-confirmables */
COAP_TYPE_ACK, /* acknowledgements */
COAP_TYPE_RST /* reset */
} coap_message_type_t;

ACK回应CON

RST:当接收者接受到的消息包含一个错误,接受者解析消息或者不再关心发送者发送的内容,那么复位消息将会被发送

2. 消息结构

version:版本号

type:消息类型

tkl:标记长度

id:每个CoAP消息都有一个ID,在一次会话中ID总是保持不变

token:标记是ID的另一种表现

options:类似于HTTP请求头

payload:交互数据

3. options

包含Delta、Length、Value

Delta:表示Option的增量,当前的Option的具体编号等于之前所有Option Delta的总和

Length:表示Value的具体长度

Value:表示Option具体内容

  • 3 Uri-Host:CoAP主机名称
  • 7 Uri-Port:CoAP端口号,默认为5683
  • 11 Uri-Path:资源路径。长度不计第一个”\”
  • 15 Uri-Query:资源参数。Uri-Path?Uri-Query&Uri-Query

4. code

  • 2.01:Created
  • 2.02:Deleted
  • 2.03:Valid
  • 2.04:Changed
  • 2.05:Content。类似于HTTP 200 OK
  • 4.00:Bad Request 请求错误,服务器无法处理。类似于HTTP 400
  • 4.01:Unauthorized 没有范围权限。类似于HTTP 401
  • 4.02:Bad Option 请求中包含错误选项
  • 4.03:Forbidden 服务器拒绝请求。类似于HTTP 403
  • 4.04:Not Found 服务器找不到资源。类似于HTTP 404
  • 4.05:Method Not Allowed 非法请求方法。类似于HTTP 405
  • 4.06:Not Acceptable 请求选项和服务器生成内容选项不一致。类似于HTTP 406
  • 4.12:Precondition Failed 请求参数不足。类似于HTTP 412
  • 4.15:Unsuppor Conten-Type 请求中的媒体类型不被支持。类似于HTTP 415
  • 5.00:Internal Server Error 服务器内部错误。类似于HTTP 500
  • 5.01:Not Implemented 服务器无法支持请求内容。类似于HTTP 501
  • 5.02:Bad Gateway 服务器作为网关时,收到了一个错误的响应。类似于HTTP 502
  • 5.03:Service Unavailable 服务器过载或者维护停机。类似于HTTP 503
  • 5.04:Gateway Timeout 服务器作为网关时,执行请求时发生超时错误。类似于HTTP 504
  • 5.05:Proxying Not Supported 服务器不支持代理功能

CoAP协议的更多相关文章

  1. 转:XMPP协议、MQTT协议、HTTP协议、CoAP协议的基本比较

    一.先看下相关国外的专业数据对四大协议的比较: Protocol                                    CoAP                         XMP ...

  2. CoAP 协议解析说明(转)

    CoAP 协议全面分析 HTTP与COAP 请求与响应示例 HTTP请求(文本格式) POST https://getman.cn/echo HTTP/1.1 User-Agent: Fiddler ...

  3. Coap协议学习笔记-第一篇

    1. 物联网应用上一般使用单片机(或者其他SOC),单片机的RAM内存一般只有20KB~~128KB左右,然而一个TCP协议栈可能就20KB,所以只能用UDP,因为UDP相对小很多,然后在UDP上加了 ...

  4. 无线物联网中CoAP协议的研究与实现【转】

    无线物联网中CoAP协议的研究与实现 时间:2013-04-09 来源:电子科技 作者:汤春明,张 荧,吴宇平 关键字:CoAP   无线   物联网   协议 摘要:由于物联网中的很多设备都是资源受 ...

  5. 转战物联网·基础篇09-选择MQTT协议还是CoAP协议

      前面章节介绍过,MQTT协议和CoAP协议都是物联网中比较流行的协议,都对传输量做了很大的精简,传输开销小,以适应物理网的网络环境.   XMPP协议也有人说是适合物联网通信的,但它是基于XML, ...

  6. MQTT研究之EMQ:【CoAP协议应用开发】

    本博文的重点是尝试CoAP协议的应用开发,其中包含CoAP协议中一个重要的开源工具libcoap的安装和遇到的问题调研.当然,为了很好的将EMQ的CoAP协议网关用起来,也调研了下EMQ体系下,CoA ...

  7. MQTT研究之EMQ:【CoAP协议的ECC证书研究】

    今天研究的内容,是CoAP这个协议在EMQ消息队列的支持,CoAP是一个受限资源的协议,基于UDP实现的多用于物联网环境的通信协议.相关介绍不多说,可以看RFC. CoAP协议下,基于DTLS通信,同 ...

  8. 物联网协议CoAP协议学习

    CoAP:Constrained Application Protocol协议是为物联网中资源受限的设备制定的应用层协议,即简化版的基于UDP的HTTP协议.其核心内容为资源抽象.REST式交互可扩展 ...

  9. 初识CoAP协议

    前言 本文介绍什么是CoAP,以及如何在物联网设备上使用它.CoAP是一种物联网协议,具有一些专门为受约束的设备而设计的有趣功能.还有其他一些可用于构建物联网解决方案的IoT协议,例如MQTT等. 物 ...

  10. 抓住CoAP协议的“心”

    摘要 The Constrained Application Protocol(CoAP)是一种专用的Web传输协议,用于受约束的节点和受约束的(例如,低功率,有损)网络. 节点通常具有带少量ROM和 ...

随机推荐

  1. 虚拟机设置静态ip【实测中标麒麟】

    1.打开本机的网络共享中心,记住本机的网络描述 realtek RTL...... 2.右键当前虚拟机,设置桥接模式 3.在虚拟机上方选择编辑->虚拟机网络编辑器,桥接到第一步中的描述 4.修改 ...

  2. 让pc端代码适用移动端——<meta name="viewport"

    写的代码,在pc端运行正常,在移动端就很小很小,需要放大.这时候可引入这个标签 @参考博客 用法,在<head></head>中添加<meta name="vi ...

  3. 静态站点生成器-html-markdown-hugo

    推荐指数:

  4. 【Leetcode_easy】997. Find the Town Judge

    problem 997. Find the Town Judge solution: class Solution { public: int findJudge(int N, vector<v ...

  5. SQL命令如何分发到集群的各节点

    有些数据库集群的规模是很大的,有上百个节点,那么维护SQL命令如何快速分发给各个节点,例如:要加个字段,逐个节点操作那是十分低效,枯燥的. TreeSoft增加了[SQL分发]功能,简单配置,可以快速 ...

  6. 【深度学习与神经网络】深度学习的下一个热点——GANs将改变世界

    本文作者 Nikolai Yakovenko 毕业于哥伦比亚大学,目前是 Google 的工程师,致力于构建人工智能系统,专注于语言处理.文本分类.解析与生成. 生成式对抗网络-简称GANs-将成为深 ...

  7. feign学习笔记

    使用:

  8. nginx配置的记录

    基本使用 语法规则: location [=|~|~*|^~] /uri/ { - } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url ...

  9. Java设计模式:23种设计模式(转)

    单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式. 原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多 ...

  10. Python02之continue,break语句

    Python中的break和continue用法基本一样 break和continue都是用在while和for循环中,而不是跳出if...elif..else的判断语句中,跳出是直接跳出语句所在的w ...