1. CoAP协议的简单介绍

CoAP是一种面向网络的协议,采用了与HTTP类似的特征,核心内容为资源抽象、REST式交互以及可扩展的头选项等。这些关键特征使得因特网由简单的文档检索机制(World Wide Web)演进成为现在繁荣的应用平台(Web 2.0)。HTTP作为IETF 成功长期采用的标准,可以用较小的脚本程序来融合不同的资源和服务。它提供的互操作性正是物联网的关键讨论内容,从而HTTP 被推向设备层面。但是由于HTTP基于TCP传输协议,采用点对点的通信模型,不适合于推送通知服务,而且对于受限设备(如8-bit 微处理器)HTTP过于复杂。

CoAP协议基于REST 构架,REST 是指表述性状态转换架构,是互联网资源访问协议的一般性设计风格。为了克服HTTP对于受限环境的劣势,CoAP既考虑到数据报长度的最优化,又考虑到提供可靠通信。一方面,CoAP提供URI,REST 式的方法如GET,POST,PUT和DELETE,以及可以独立定义的头选项提供的可扩展性。另一方面,CoAP基于轻量级的UDP协议,并且允许IP多播。而组通信是物联网最重要的需求之一,比如说用于自动化应用中。为了弥补UDP传输的不可靠性,CoAP定义了带有重传机制的事务处理机制。并且提供资源发现机制,并带有资源描述。

CoAP协议不是盲目的压缩了HTTP协议,考虑到资源受限设备的低处理能力和低功耗限制,CoAP重新设计了HTTP的部分功能以适应设备的约束条件。另外,为了使协议适应物联网和M2M 应用,CoAP协议改进了一些机制,同时增加了一些功能。图1 显示了HTTP和CoAP的协议栈。CoAP和HTTP在传输层有明显的区别。HTTP协议的传输层采用了TCP协议,而CoAP协议的传输层使用UDP协议,开销明显降低,并支持多播。

CoAP协议采用了双层的结构。事务层(Transaction layer)处理节点间的信息交换,同时,也提供对多播和拥塞控制的支持。请求/响应层(Request/Response layer)用以传输对资源进行操作的请求和相应信息。CoAP协议的REST 构架基于该层的通信,REST请求附在一个CON 或者NON消息上,而REST响应附在匹配的ACK消息上。CoAP的双层处理方式,使得CoAP没有采用TCP协议,也可以提供可靠的传输机制。利用默认的定时器和指数增长的重传间隔时间实现 CON消息的重传,直到接收方发出确认消息。另外,CoAP的双层处理方式支持异步通信,这是物联网和M2M应用的关键需求之一。

2. 开源实现

维基百科:http://en.wikipedia.org/wiki/Constrained_Application_Protocol

其中两个开源版本:libcoap(C语言实现)和Californium(java语言实现),比较实用。

3.相关论文

《CoAP协议分析及应用场景设计》《基于CoAP的智能家居功耗监控系统的通信机制设计与实现》

介绍CoAP协议、应用场景、实现方案等等。

4.CoAP协议内容

其中比较重要的有:

draft-ietf-core-block-10:介绍块传输

draft-ietf-core-coap-14:CoAP协议的核心内容

draft-ietf-core-link-format-14:介绍link format

draft-ietf-core-observe-14:介绍观察者模式的实现

CoAP协议及开源实现相关推荐

  1. CoAP协议学习——CoAP基础

    [原连接地址] 更多CoAP文章请参考博文索引--[物联网学习笔记--索引博文] 推广 <IoT开发实战:CoAP卷>已经由机械工业出版社出版,如果想学习CoAP的更多内容请于淘宝.天猫或 ...

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

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

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

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

  4. 干货 | CoAP协议例析

    点击上方"中兴开发者社区",关注我们 每天读一篇一线开发者原创好文 在物联网领域中,MQTT和CoAP是最主要的两个应用协议.MQTT(Message Queuing Teleme ...

  5. 物联网的coap协议

    1. CoAP协议的简单介绍 CoAP是一种面向网络的协议,采用了与HTTP类似的特征,核心内容为资源抽象.REST式交互以及可扩展的头选项等.这些关键特征使得因特网由简单的文档检索机制(World ...

  6. libcoap 接口分析与 CoAP 协议开发

    libcoap 作为一个重要的 CoAP 开源实现,完整实现了 RFC 7252.很多优秀的 IoT 产品都用到了 libcoap,libcoap 为资源受限的设备(例如计算能力,射频范围,内存,带宽 ...

  7. coap协议学习之搭建coap测试环境

    本篇目标:简单初步认识coap,以及怎么去测试自己搭建的coap协议应用. 材料准备: 谷歌浏览器/火狐浏览器(55.0)与 copper插件 linux系统(搭建在虚拟机下的 Ubantu)与 li ...

  8. esp8266实现coap协议。

    CoAP协议 是一种基于UDP的轻量级协议. 分为CoAP server和CoAP client, 本文目的是使用多个esp8266,自组网实现coap服务, ps:本来是看看CSDN别人怎么写的,能 ...

  9. Android中使用CoAP协议

    什么是CoAP协议 CoAP(Constrained Application Protocol)协议是一种物联网协议.与传统的PC.智能手机相比,物联网设备大多是资源限制型的,有限的CPU.RAM.F ...

最新文章

  1. 自学笔记——Python内置的处理字符串的函数
  2. .NET中多线程的使用
  3. windows xp系统驱动安装问题
  4. Android中项目中各个文件夹的含义和用途详解
  5. android JNI层线程回调Java函数
  6. 项目中缺少maven dependencis,或者pom文件报红
  7. Linux下nm和ldd 命令
  8. learning to rank评价指标
  9. 第43课 最大公约数 动动脑 第2题《小学生C++趣味编程》
  10. 【动态规划】区间dp: P1063能量项链
  11. python密码传参有特殊字符如何解决_am start的总结,-d参数的总结,以及python中传递内容包含中文及特殊字符的解决方案...
  12. RB750 固件升级 图文
  13. Python实现SMMS图床
  14. 视频号网站微信视频下载方法
  15. 思科学院cisco-基本网络连接和通信
  16. Docker全面详解(二)
  17. c语言实现大数运算加法
  18. 2020.2.13普及C组 马蹄印【纪中】【dfs】
  19. 如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。
  20. Android System WebView老版本大全

热门文章

  1. 十大常见的电子元器件
  2. DCM4CHEE-ARC-LIGHT
  3. 国际象棋绘制java_java使用swing绘制国际象棋棋盘
  4. 最近微信上很火的小游戏【壹秒】android版——开发分享
  5. CVPR 2022 | 百变发型!中科大/微软/港城大提出HairCLIP:基于文本和参考图像的头发编辑方法...
  6. 计算机相关专业零基础论文画图详细教程(避免掉坑教程)
  7. 拉卡拉前三季度净利润7.35亿元 继续保持高速增长态势
  8. opencv学习手册(三)(线条识别)(更新中
  9. 你的私密照片可能正被“合法”观看
  10. QBC 通过Heibernate查询 discriminator 配置的属性问题