coap杂谈

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了coap杂谈相关的知识,希望对你有一定的参考价值。

参考技术A coap是比较常用的物联网传输协议,基于udp协议之上的应用层协议。
下面基于rfc7252对coap报文进行分析。

rfc7252对coap的报文头定义如上,8位表示一个字节,可以看到coap协议字节还是比较节省的。
第一个字节的8位,2位表示协议版本号(每个协议都有协议版本号,为了兼容性考虑),在这里rfc7252规定这里必须填01,其他的留给以后的版本。
2位表示消息类型,其实是一个枚举值2^2有四个消息类型.对于这四种消息类型,rfc7252给的回复标准是:

4位的token,结合可选的token确定是否在报文里面携带token信息,也就是说coap协议最多可携带2^4-1的15个字节的token信息

紧接着是1字节的code信息,这里的code也是一个枚举值类型,表明请求类型,类似于http的请求方法,不过与http不同的http采用明文表明请求方法,无论你请求方法是啥,只占用1个字节。有的同学就说了,255个方法是不是有点多了,确实,所以对于这一个字节,协议又把它细分了,前三位和后五位,所以就形成了x.xx的数据结构

2个字节的messgaeid,标示请求和响应的对应关系啊。65535个,用完了再循环呗。
变字节长度的token,结合第一个字节4位的token长度可确定token的字节数。
变长度的option可选配置,有的同学说了,coap不是说是rest的方式请求的吗?那我的方法知道在哪了,uri我放在哪呢?没错就是放在options里面去配置,编码如下。

既然options是变长的,前面爷没有说明option的长度,那它和payload怎么区分边界,在这里,协议规定了ff之后就是payload内容,就是你要传递的业务数据了。

下面以一个请求响应报文说明上面的分析:

至此分解到此结束,coap协议要写的地方还很多,下次再补充吧,欢迎各位大佬斧正!

为啥需要同时使用 oBIX 和 CoAP

【中文标题】为啥需要同时使用 oBIX 和 CoAP【英文标题】:Why oBIX and CoAP together required为什么需要同时使用 oBIX 和 CoAP 【发布时间】:2016-01-22 14:43:51 【问题描述】:

我正在开发一个楼宇自动化物联网系统,该系统同时具有 oBIX 和 CoAP 应用程序来提供 Web 服务。据我所知,CoAP 层在 oBIX 处理程序之上运行。 oBIX的一些接口也与CoAP类似。

我的问题是为什么需要 oBIX?如果 CoAP 已经可用,为什么还需要 oBIX?

【问题讨论】:

【参考方案1】:

在物联网中,CoAP 被用作 oBIX 接口的绑定协议。 oBIX 规范提供了使用 REST(使用 HTTP 或 CoAP)、SOAP 和 WebSocket 与 web/internet 进行通信的绑定。在许多情况下,您的绑定选择可能取决于应用程序的需求,例如,如果您正在实现服务器在受限环境中,或用于企业级应用程序。

对于 CoAP 绑定,以下 CoAP 接口映射到 oBIX 请求:

OBIX 请求 - - HTTP 接口 读取 - - - - - - - - - GET 写 - - - - - - - - - PUT 调用 - - - - - - - - POST 删除 - - - - - - - - 删除

【讨论】:

以上是关于coap杂谈的主要内容,如果未能解决你的问题,请参考以下文章

python杂谈

职场杂谈售前工程师岗位的理解杂谈

杂谈3.py

杂谈13.py

强化学习杂谈

Redis杂谈