文档章节

CoAP 综述

Jr小王子
 Jr小王子
发布于 2017/02/08 17:57
字数 503
阅读 115
收藏 1

CoAP


参考

IETF
RFC 7252 中文
coap.technology
www.rfc-base.org Constrained RESTful Environments (CoRE) Parameters


CoAP

RFC 7252 Constrained Application Protocol
“The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained networks in the Internet of Things. The protocol is designed for machine-to-machine (M2M) applications such as smart energy and building automation.”

Specification
CoAP is specified in a Standards-Track RFC. RFCs that serve as Internet Standards Documents are generated by the IETF based on an extensive technical review and quality control process. These are meant to last.


涉及标准

适用场景 特点 局限性

  • 点对点通信
  • 数据采集
  • M2M
  • 反向控制能力弱
  • 无状态连接
  • 遵循RESTful
  • DTLS

CoAP占用资源

RFC 7228 Terminology for Constrained-Node Networks

  • RAM:10KB
  • ROM:100KB

CoAP 实现

  • wakaama http://www.eclipse.org/wakaama/
    OMA Lightweight M2M C implementation designed to be portable on POSIX compliant systems

  • libcoap https://libcoap.net/
    C-Implementation of CoAP
    libcoap implements a lightweight application-protocol for devices that are constrained their resources such as computing power, RF range, memory, bandwith, or network packet sizes

  • microcoap https://github.com/1248/microcoap
    A tiny CoAP server for microcontrollers
    最精简实现,只有最简单的CoAP build dump,适用于单片机

  • lobaro-coap http://www.lobaro.com/portfolio/lobaro-coap/
    Complete CoAP Implementation in C 完整的实现CoAP
    The target audiance are experienced programmers with rich knowledge of the „C“ programming language.

    • Royalty-free CoAP stack
    • complete request/response logic
    • easy to use
    • small memory footprint
    • using C99 stdlib, suitable for embedded projects
    • detached packet receive/send logic
    • Arduino support (experimental)

DTLS

  • tinydtls
    tinydtls is a library for Datagram Transport Layer Security (DTLS) covering both the client and the server state machine. It is implemented in C and provides support for the mandatory cipher suites specified in CoAP.

COAP工具

为了测试代码的正确性,需要CoAP相关测试工具。

  • CoAP-cli,一个基于NodeJS的CoAP命令行工具,其核心是基于Node-CoAP库。
  • libcooap,一个用C写的CoAP命令行工具。
  • FireFox Copper, 一个Firefox的插件。
  • Wireshark,Wireshark 支持CoAP协议的解析器

REST model for small devices

server 提供可用的资源在一个URL下,client 使用四种方法获取GET, PUT, POST, and DELETE.

  • GET
  • PUT
  • POST
  • DELET

REST

web client 可以通过跨协议代理(CoAP HTTP)访问web资源和传感器资源,client不必关心资源到底是web提供还是传感器提供。

Discovery integrated

© 著作权归作者所有

共有 人打赏支持
Jr小王子
粉丝 11
博文 119
码字总数 18368
作品 0
深圳
程序员
私信 提问
CoAP协议学习笔记——CoAP格式详解

  CoAP是受限制的应用协议(Constrained Application Protocol)的代名词。在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的。但是对于小型设备而言,实现TCP和HTTP协议显然...

中成才
2016/09/01
87
0
物联网应用协议学习笔记 2.1.2 一张表了解 CoAP 协议

1 前言 对于CoAP协议的学习,这份100多页的文档肯定没法背下来。我们只需把协议当作工具书,大体知道主体的内容,在遇到细节问题时再去具体章节找问题。 本篇笔记中先对 CoAP 协议内容做个基...

iotisan
04/25
0
0
物联网应用协议学习笔记 2.1.3 用UDP工具来调试CoAP

1 前言 CoAP的调试,目前没找到好用的工具,网上说的火狐插件现在也不能用了,多希望手头的TCP/UDP网络调试工具就可以支持。 既然CoAP是基于UDP来组包的,那肯定是可以实现。 所以这篇文章给...

iotisan
04/25
0
0
物联网应用协议学习笔记 2.1.1 为什么物联网要使用 CoAP 协议

1 前言 前几年,Json比较火的时候,和朋友在讨论项目协议时就在感慨,要是咱们的这些设备都能走Json,那该多爽。由于HTTP协议对于物联网设备实在是太铺张了,我们只好作罢。 知识限制了我们的...

iotisan
04/25
0
0
CoAP协议学习笔记 2.2 阿里云IoT平台接入 基础版CoAP协议接入测试

这篇笔记涉及 阿里云CoAP接入,CoAP协议学习笔记可点此查看。 1 前言 上篇笔记完成了云端产品功能定义,并生成了相应的设备证书。 这篇笔记将会跟着教程走,使用 Ubuntu 对 SDK 编译验证,先...

iotisan
05/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

小白带你认识netty(三)之NioEventLoop的线程(或者reactor线程)启动(一)

在第一章中,我们看关于NioEventLoopGroup的初始化,我们知道了NioEventLoopGroup对象中有一组EventLoop数组,并且数组中的每个EventLoop对象都对应一个线程FastThreadLocalThread,那么这个...

天空小小
今天
3
0
PHP动态扩展Redis模块

查看已有模块 [root@test-a ~]# /usr/local/php/bin/php -m[PHP Modules]bz2Core...zlib[Zend Modules] 下载包,解压,生成configure文件 [root@test-a ~]# cd /usr/local/src/[ro......

野雪球
今天
4
0
在Ignite中使用线性回归算法

在本系列前面的文章中,简单介绍了一下Ignite的机器学习网格,下面会趁热打铁,结合一些示例,深入介绍Ignite支持的一些机器学习算法。 如果要找合适的数据集,会发现可用的有很多,但是对于...

李玉珏
今天
5
0
Mybatis应用学习——简单使用示例

1. 传统JDBC程序中存在的问题 1. 一个简单的JDBC程序示例: public class JDBCDemo {public static void main(String[] args) {Connection con=null;PreparedStatement statemen...

江左煤郎
今天
5
0
使用JavaScript编写iOS应用业务逻辑

JSAUIKitCocoa使你可以使用JavaScript编写对性能要求不高但可能变动性很大的iOS应用的业务逻辑部分,View组件、需要多线程支持的Model等则直接使用原生对象。 编写方式与React Native相似,但...

neal01
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部