CoAP 是一个基于 REST 模型的网络传输协议。主要用于轻量级 M2M 通信。由于物联网中的很多设备都是资源受限型的,即只有少量的内存空间和有限的计算能力,所以传统的 HTTP 协议应用在物联网上就显得过于庞大而不适用,CoAP 应运而生。

本文介绍物联网平台支持的CoAP协议规范;

1.概念

支持 RFC 7252 Constrained Application Protocol协议,更多信息,请参见RFC 7252

2.协议内容

CoAP是一个完整的二进制应用层协议,消息格式紧凑,默认运行在UDP上。

一个CoAP资源可以被一个URI所描述,例如一个设备可以测量温度,那么这个温度传感器的URI被描述为:CoAP://machine.address:5683/sensors/temperature。请注意,CoAP的默认UDP端口号为5683

3.CoAP头

  • 【Ver】版本编号。

  • 【T】报文类型,CoAP协议定了4种不同形式的报文,CON报文,NON报文,ACK报文和RST报文。

  • 【TKL】CoAP标识符长度。CoAP协议中具有两种功能相似的标识符,一种为Message ID(报文编号),一种为Token(标识符)。其中每个报文均包含消息编号,但是标识符对于报文来说是非必须的。

  • 【Code】功能码/响应码。Code在CoAP请求报文和响应报文中具有不同的表现形式,Code占一个字节,它被分成了两部分,前3位一部分,后5位一部分,为了方便描述它被写成了c.dd结构。其中0.XX表示CoAP请求的某种方法,而2.XX、4.XX或5.XX则表示CoAP响应的某种具体表现。

  • 【Message ID】报文编号。

  • 【Token】标识符具体内容,通过TKL指定Token长度。

  • 【Option】报文选项,通过报文选项可设定CoAP主机,CoAP URI,CoAP请求参数和负载媒体类型等等。

  • 【1111 1111B】CoAP报文和具体负载之间的分隔符。

4.方法

POST、GET、PUT、DELETE

5.数据类型

  • 【text/plain】 编号为0,表示负载为字符串形式,默认为UTF8编码。

  • 【application/link-format】编号为40,CoAP资源发现协议中追加定义,该媒体类型为CoAP协议特有。

  • 【application/xml】编号为41,表示负载类型为XML格式。

  • 【application/octet-stream】编号为42,表示负载类型为二进制格式。

  • 【application/exi】编号为47,表示负载类型为“精简XML”格式。

  • 【applicaiton/cbor】编号为50,可以理解为二进制JSON格式。

6.消息类型

  • CON:需要被确认的请求,如果CON请求被发送,那么对方必须做出响应。

  • NON:不需要被确认的请求,如果NON请求被发送,那么对方不必做出回应。

  • ACK:应答消息,接受到CON消息的响应。

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

7.通道安全

使用 DTLS v1.2保证通道安全,更多信息,请参见DTLS v1.2。

CoAP协议之初探(一)相关推荐

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

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

  2. 物联网基础之了解CCP协议,COAP协议,MTQQ协议等

    首先介绍下背景.最近开始研究物联网的套件.公司选中了阿里物联网套件,所以博主就开始投入到漫长的开发文档中.由于博主并非嵌入式开发者,所以一些名字没有听过,这对文档的阅读造成了不少的困扰,所以在此记录一 ...

  3. NBIOT 移远BC28模块+stm32开发板例程、教程(打通TCP、COAP协议)

    为了开发者能够快速入门BC28的开发,加快开发者的项目进度,开发出此款针对BC28的stm32开发板和完善的发送网络数据的示例程序(TCP协议.COAP协议),程序流程逻辑清楚,注释完善,上手就可以玩 ...

  4. 物联网协议Coap协议介绍

    COAP协议简介 Coap(Constrained Application Protocol)是一种在物联网世界的类web协议,它的详细规范定义在 RFC 7252.COAP名字翻译来就是" ...

  5. 物联网协议之CoAP协议开发学习笔记之术语解释

    哪有什么天生如此,只是我们天天坚持. -Zhiyuan 此文章主要总结CoAP协议的术语解释: 只在网上找到了[RFC2616] 的解释,但是这些都是通用的 本文档要求读者熟悉[RFC2616]中讨论 ...

  6. 物联网通信之Coap 协议

    物联网通信之Coap 协议 Coap 简介 名为受限制的应用协议,是UDP上的应用层协议.适用于小内存,低处理和低存储能力的设备.传输内容小巧精简,对于较大的数据可分块传输.客户端可以发送观察者请求, ...

  7. 【IoT】基于NB-IoT的CoAP协议浅析

    [IoT]基于NB-IoT的CoAP协议浅析 CoAP(Constrained Application Protocol) 协议是 IETF 提出的一种面向网络的协议,采用了与 HTTP 类似的特征, ...

  8. 阿里云物联网平台 > 设备接入 > 使用开放协议自主接入 > CoAP协议接入 >

    CoAP连接通信 更新时间:2020-08-27 17:20:05 编辑我的收藏 本页目录 基础流程 使用对称加密自主接入 使用DTLS自主接入 物联网平台支持CoAP协议连接通信.CoAP协议适用在 ...

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

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

最新文章

  1. Linux Kernel TCP/IP Stack — L1 Layer — NIC bonding
  2. java jar包 和 war包 区别
  3. iOS 单例模式全面解析
  4. 荒岛野人[exgcd]
  5. Coding:在数组中查找具有给定总和的对
  6. ccf魔数c语言,ccf 201609-4 交通规划
  7. Python3爬虫入门之beautifulsoup库的使用
  8. 浏览器css透明属性opacity
  9. python中定义的类的方法调用老出现missing 1 postional argument 或者self的解决办法
  10. C#时间的味道——任时光匆匆我只在乎你
  11. rundeck 内存溢出
  12. 初了解JS设计模式,学习笔记
  13. matlab 滤波器_数字滤波器的MATLAB与FPGA实现
  14. 基金公司产品管理系统搭建与推广
  15. matlab s变换
  16. 电缆桥架安装要求及规范指导
  17. 重新学习《C++Primer5》第16章-模板与泛型编程
  18. 新视野大学英语(第三版) 读写教程4 课后答案
  19. c语言 宏定义 去除宏定义_如何在C中重新定义宏?
  20. JavaScript适配移动端的移动元素方法

热门文章

  1. STC12系列单片机的AUXR辅助寄存器
  2. CentOS 7中jdk1.8安装
  3. char在c语言中的意思(char在c++中的意思)
  4. ubuntu 18.04 安装postgre+postgis+pgadmin3+导入shapefile
  5. 开放耳机有什么优缺点,列举出几款口碑不错的开放式耳机
  6. 基于知识图谱推荐系统
  7. yapi-404-接口字段验证不通过, 错误信息:shema 验证请求参数 schema is invalid: data.properties[‘otherParams‘].required sho
  8. Mac Zoc设置
  9. 小刚的Android研究笔记~在未开启USB调试的Android手机绕过锁屏密码
  10. MATLAB积分函数integral()的使用方法