MQTT物联网观察物联网

CoAP协议简介

2018-07-22  本文已影响77人  EMQ

背景定义

协议背景

随着越来越多的人通过PC、手机等设备相互连接,现代互联网蓬勃发展使得人们的生活发生了翻天覆地的变化。很多人预测将会有更多其他的设备相互连接,这些设备的数量将远远超过人类的数量,到时候形成的网络将是现有网络的N个量级,这个网络带给世界的变化将是无法估量的。

不像人接入互联网的简单方便,由于物联网设备大多都是资源限制型的,有限的CPU、RAM、Flash、网络宽带等。对于这类设备来说,想要直接使用现有网络的TCP和HTTP来实现设备实现信息交换是不现实的。于是为了让这部分设备能够顺利接入网络,CoAP协议就被设计出来了。

概念定义

Constrained Application Protocol (CoAP) is a specialized Internet Application Protocol for constrained devices, as defined in RFC 7252.It enables those constrained devices called "nodes" to communicate with the wider Internet using similar protocols. CoAP is designed for use between devices on the same constrained network (e.g., low-power, lossy networks), between devices and general nodes on the Internet, and between devices on different constrained networks both joined by an internet. CoAP is also being used via other mechanisms, such as SMS on mobile communication networks.

以上是来自维基百科对CoAP的定义。简言之,CoAP是受约束设备的专用Internet应用程序协议。

协议特点

协议内容

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

CoAP首部

请求方法

响应码

1、 Success 2.xx

这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。

2、 Client Error 4.xx

这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。

3、 Server Error 5.xx

这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器的软硬件资源无法完成对请求的处理。

媒体类型

工作模式

CoAP参考了很多HTTP的设计思路,同时也根据受限资源限制设备的具体情况改良了诸多的设计细节,增加了很多实用的功能。

消息类型

请求/响应模型

  1. 携带模式


  2. 分离模式


  3. 非确认模式


HTTP、CoAP、MQTT

CoAP协议的设计参考了HTTP,CoAP和MQTT都是行之有效的物联网协议,一下为它们之间的异同。

HTTP和CoAP

CoAP和MQTT

EMQ与CoAP

EMQ的开源版提供了一个Generic CoAP的实现,读者如果有兴趣的话可以试用一下。在EMQ的商业版中,包含了对CoAP的完整支持。

上一篇下一篇

猜你喜欢

热点阅读