物联网的coap协议
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协议FAQ
CoAP协议是否可以替换HTTP协议?
CoAP消息类型
CoAP消息结构
![](/assets/blank.gif)
CoAP观察模式
CoAP块传输
物联网的coap协议相关推荐
- 【物联网】CoAP协议总结
[物联网]CoAP协议总结 一.概述 二.CoAP报文结构 1.报头 2.可选字段 3.数据 参数详解 三.CoAP逻辑分层 四.CoAP传输模型 4.1 CoAP Message模型 1. CoAP ...
- Thingsboard 物联网平台 CoAP 协议介绍
可复制:121202538 中文社区:http://thingsboard.org.cn TB的MQTT设备协议 TB官网: https://thingsboard.io/ TB GitHub: ht ...
- 物联网基础之了解CCP协议,COAP协议,MTQQ协议等
首先介绍下背景.最近开始研究物联网的套件.公司选中了阿里物联网套件,所以博主就开始投入到漫长的开发文档中.由于博主并非嵌入式开发者,所以一些名字没有听过,这对文档的阅读造成了不少的困扰,所以在此记录一 ...
- 物联网协议Coap协议介绍
COAP协议简介 Coap(Constrained Application Protocol)是一种在物联网世界的类web协议,它的详细规范定义在 RFC 7252.COAP名字翻译来就是" ...
- 物联网通信之Coap 协议
物联网通信之Coap 协议 Coap 简介 名为受限制的应用协议,是UDP上的应用层协议.适用于小内存,低处理和低存储能力的设备.传输内容小巧精简,对于较大的数据可分块传输.客户端可以发送观察者请求, ...
- 阿里云物联网平台 > 设备接入 > 使用开放协议自主接入 > CoAP协议接入 >
CoAP连接通信 更新时间:2020-08-27 17:20:05 编辑我的收藏 本页目录 基础流程 使用对称加密自主接入 使用DTLS自主接入 物联网平台支持CoAP协议连接通信.CoAP协议适用在 ...
- 物联网协议-CoAP协议简介
1. 什么是CoAP CoAP是受限制的应用协议(Constrained Application Protocol)的简称.最近几年专家们预测会有更多的设备相互连接,而这些设备的数量将远超人类的数量. ...
- 物联网平台 源码 智慧农业物联网平台 ,支持mqtt,h ttp,coap协议 java+postgresql,支持集群
物联网平台 源码 智慧农业物联网平台 ,支持mqtt,h ttp,coap协议 java+postgresql,支持集群. 支持萤石云摄像头接入,云台控制,支持nbiot,lora物联网平台,5g物联 ...
- 物联网协议之CoAP协议开发学习笔记之术语解释
哪有什么天生如此,只是我们天天坚持. -Zhiyuan 此文章主要总结CoAP协议的术语解释: 只在网上找到了[RFC2616] 的解释,但是这些都是通用的 本文档要求读者熟悉[RFC2616]中讨论 ...
最新文章
- 脑机综述(一) | 脑机接口在康复医学中的应用进展
- SpringCloud系列——Zuul 动态路由
- 一文弄懂YOLO目标检测算法
- MySQL 安装包下载教程
- 好文转发《我现在是这样编程的》
- win7+计算机+桌面图标不见了怎么办,win7电脑系统桌面图标不见了怎么办
- 惊呼!JavaScript基本数据类型和引用数据类型详解
- 反编译用unity打包的资源文件
- 到达一个数 Reach a Number
- 移动云正式发布基于龙蜥 Anolis OS 的 BC-Linux V8.2 通用版操作系统
- Part Ⅱ At the Restaurant 在饭店??
- AspNetCore中使用Ocelot之 IdentityServer4(1)
- 最长回文串之中心扩散法
- Mysql更新关联子查询报错
- wxWindows的事件表机制
- Typora设置高亮
- 如何用友远程到服务器,怎么安装用友T3远程通
- 黄金分割数0.618与美学有重要的关系。舞台上报幕员所站的位置大约就是舞台宽度的0.618处
- 宅男福利!爬虫实战,爬取原神真人c图片并保存,谁的老婆快抱走
- 爽啊,这么多有趣好玩强大的 Python 库