CoAP协议之初探(一)

CoAP 是一个基于 REST 模型的网络传输协议。主要用于轻量级 M2M 通信。由于物联网中的很多设备都是资源受限型的,即只有少量的内存空间和有限的计算能力,所以传统的 HTTP 协议应用在物联网上就显得过于庞大而不适用,CoAP 应运而生。

本文介绍物联网平台支持的CoAP协议规范;

1.概念

支持 RFC 7252 Constrained Application Protocol协议,更多信息,请参见RFC 7252

2.协议内容

CoAP是一个完整的二进制应用层协议,消息格式紧凑,默认运行在UDP上。

一个CoAP资源可以被一个URI所描述,例如一个设备可以测量温度,那么这个温度传感器的URI被描述为:CoAP://machine.address:5683/sensors/temperature。请注意,CoAP的默认UDP端口号为5683

3.CoAP头

  • 【Ver】版本编号。

  • 【T】报文类型,CoAP协议定了4种不同形式的报文,CON报文,NON报文,ACK报文和RST报文。

  • 【TKL】CoAP标识符长度。CoAP协议中具有两种功能相似的标识符,一种为Message ID(报文编号),一种为Token(标识符)。其中每个报文均包含消息编号,但是标识符对于报文来说是非必须的。

  • 【Code】功能码/响应码。Code在CoAP请求报文和响应报文中具有不同的表现形式,Code占一个字节,它被分成了两部分,前3位一部分,后5位一部分,为了方便描述它被写成了c.dd结构。其中0.XX表示CoAP请求的某种方法,而2.XX、4.XX或5.XX则表示CoAP响应的某种具体表现。

  • 【Message ID】报文编号。

  • 【Token】标识符具体内容,通过TKL指定Token长度。

  • 【Option】报文选项,通过报文选项可设定CoAP主机,CoAP URI,CoAP请求参数和负载媒体类型等等。

  • 【1111 1111B】CoAP报文和具体负载之间的分隔符。

4.方法

POST、GET、PUT、DELETE

5.数据类型

  • 【text/plain】 编号为0,表示负载为字符串形式,默认为UTF8编码。

  • 【application/link-format】编号为40,CoAP资源发现协议中追加定义,该媒体类型为CoAP协议特有。

  • 【application/xml】编号为41,表示负载类型为XML格式。

  • 【application/octet-stream】编号为42,表示负载类型为二进制格式。

  • 【application/exi】编号为47,表示负载类型为“精简XML”格式。

  • 【applicaiton/cbor】编号为50,可以理解为二进制JSON格式。

6.消息类型

  • CON:需要被确认的请求,如果CON请求被发送,那么对方必须做出响应。

  • NON:不需要被确认的请求,如果NON请求被发送,那么对方不必做出回应。

  • ACK:应答消息,接受到CON消息的响应。

  • RST:复位消息,当接收者接收到的消息包含一个错误,接收者解析消息或者不再关心发送者发送的内容,那么复位消息将会被发送。

7.通道安全

使用 DTLS v1.2保证通道安全,更多信息,请参见DTLS v1.2

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值