CoAP:Constrained Application Protocol协议是为物联网中资源受限的设备制定的应用层协议,即简化版的基于UDP的HTTP协议。其核心内容为资源抽象、REST式交互可扩展的头选项等。应用程序通过URI标志来获取服务器上的资源,使其可以像HTTP协议一样对资源进行GET、PUT、POST和DELETE等操作。C/S架构,功耗低不能反向控制。适用于需要通过标准互联网网络进行远程控制或监控的小型低功率传感器,开关,阀门和类似的组件,服务器对不支持的类型可以不响应

CoAP协议自身拥有如下特点:

  1)报头压缩,数据包小

  包含一个紧凑的二进制报头和扩展报头,它只有短短的4B的基本报头。

  2)方法和URIs

  为了实现客户端访问服务器上的资源,这是Web架构的主要特点。

  3)传输层使用UDP协议,适用于非安全性数据场合

  CoAP协议是建立在UDP协议之上,以减少开销(TCP需要三次握手)和支持组播功能。

  4)支持异步通信

  HTTP协议对M2M通信不适用,这是由于事务总是由客户端发起的。CoAP协议支持异步通信,这对M2M通信应用来说是常见的休眠/唤醒机制。

  5)支持资源发现

  为了自主地发现和使用资源,它支持内置的资源发现格式,用于发现设备上的资源列表,或者用于设备向服务目录公告自己的资源。

  6)支持缓存

  CoAP协议支持资源描述的缓存以优化其性能。

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)

是IBM(依托ThinkPHP框架)开发的传感器和控制器之间的一个即时通讯协议,基于发布订阅模式(消息的生产者和消费者解构decoupling,极大地提高系统的扩展性和网络拓扑),有多个客户端--》一个代理服务器(channel)《--多个目标服务器组成的多对多,基于TCP、异步常连接,功耗大可以进行反向控制(服务器对客户端的控制)。

MQTT不支持带有类型或者其它帮助Clients理解的标签消息。MQTT消息可用于任意目的,但前提是所有的Clients必须知道消息格式。而CoAP则相反,它内置内容协商和发现支持,这样允许设备彼此窥测以找到交换数据的方式

报警:设置触发条件,消息推送(各种途径短消息、GPRS/邮件。。。),远程控制和处理。

分布式缓存Redis之发布/订阅(Pub/Sub)https://blog.csdn.net/u011489043/article/details/78780255

LWM2M:移动的onenet即是

  是传统的OMA-DM协议基础之上发展起来的,属于订阅主动(服务器向客户端订阅))上报型(周期性或时间触发),基于REST架构,以coap为传输层协议,以资源为基本单位。

LwM2M载荷支持四种格式 plain text、Opaque、TLV、JSON,这四种协议要求服务器端必须都要支持,而在客户端必须支持TLV格式

  

LwM2M协议的主要开源实现有以下几个:

  • OMA LwM2M DevKit:提供可视化界面与LwM2M服务器交互。
  • Eclipse Leshan:基于Java,提供了LwM2M服务器与LwM2M客户端的实现。
  • Eclipse Wakaama:基于C,提供了LwM2M服务器与LwM2M客户端的实现。
  • AVSystem Anjay:基于C,提供了LwM2M客户端的实现。

此外,EMQ也实现了EMQ服务器上的LwM2M网关插件,实现了LwM2M协议的大部分功能,LwM2M设备可以注册至EMQ-LWM2M上,从而通过EMQ-LWM2M访问并管理设备,设备也可以向EMQ-LWM2M上报信息,并使用EMQ后端的服务来采集数据,参考:https://www.jianshu.com/p/11d34008f486

物联网协议CoAP协议学习的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. 初识CoAP协议

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

  9. COAP协议 - arduino ESP32 M2M(端对端)通讯与代码详解

    前言 最近我在研究 COAP 协议,在尝试使用 COAP 协议找了到了一个能在ESP32上用的coap-simple库,虽然库并不完善关于loop处理的部分应该是没写完,但是对于第一次接触COAP的朋 ...

随机推荐

  1. hadoop学习笔记(七):hadoop2.x的高可用HA(high avaliable)和联邦F(Federation)

    Hadoop介绍——HA与联邦 0.1682019.06.04 13:30:55字数 820阅读 138 Hadoop 1.0中HDFS和MapReduce在高可用.扩展性等方面存在问题: –HDFS ...

  2. Redis安装及局域网访问配置CentOS

    1.安装gcc,用来编译reids 通过命令 sudo yum install gcc 2.安装redis $ wget http://download.redis.io/releases/redis ...

  3. Spring Boot 框架 - 快速创建Spring Boot应用

    使用Spring的项目创建向导创建一个Spring Boot项目 创建完成目录 目录文件说明: 主启动程序已生成 resources文件夹中目录结构 static:保存所有的静态资源,例如js,css ...

  4. 2016 Google code jam 大赛

    二,RoundC import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundE ...

  5. [Qt 踩坑] 设置背景就卡退 报错 异常结束或者crashed 0xFFFFFFFF

    #开始 我现在是带着崩溃得心情写博客的 这个估计是我遇到的最混蛋的bug 我试图用Qt写个小程序 然后给窗口添加一个背景 就像这样 先不管我那个路径的问题 只要写了那个代码,就一定出错 删除了一点事情 ...

  6. 洛谷 P2239 螺旋矩阵(模拟 && 数学)

    嗯... 题目链接:https://www.luogu.org/problem/P2239 这道题首先不能暴力建图,没有简单方法,只有进行进行找规律. AC代码: #include<cstdio ...

  7. 本地简单HTTP服务器

    cd进要启动服务器的目录 python -m http.server 7800 (Python 3.x) python -m SimpleHTTPServer 7998 (Pyhton2.x)

  8. java调用exe

    前言:最近做了一个Java跨平台开启,关闭,重启nginx的功能,在Java操作exe上遇到了一些问题,下面是对这个问题一个总结 一.Java操作exe的三种方式 (1)Runtime.getRunt ...

  9. mybatis源码探索笔记-2(构建SqlSession并获取代理mapper)

    前言 上篇笔记我们成功的装载了Configuration,并写入了我们全部需要的信息.根据这个Configuration创建了DefaultSqlSessionFactory.本篇我们实现构建SqlS ...

  10. 确定BP神经网络中的节点数

    输入层 输入层节点数=输入向量维数 MNIST例子中,单张MNIST图片大小为28*28,reshape为一维数组,长度为784,所以输入层节点数为784: network = Network([78 ...