物联网环境那么复杂,单单一款协议当然不能适应所有种类的物联网环境的呀,所以就有除了MQTT之外的另外的几种协议,这次小生先带你们了解一下,COAP协议!
1、什么是COAP协议?
COAP,全称Constrained Application Protocol,中文意思是受限制的应用协议,是IETF组织发布的互联网系列标准之一!是一种目的在于实现M2M应用中的嵌入式消息传递,支持多播,异步消息传输。
COAP和HTTP协议类似,也是一种文档传输协议,但是和HTTP不同的是,HTTP是基于TCP的传输,但是COAP是基于UDP协议运行,客户端和服务器之间是通过无连接数据报进行通信的,支持UDP广播和多播用于寻址!
2、COAP的结构模型
COAP结构图
如上图所示,COAP协议遵循客户端/服务器模型,这样和我们日常使用的HTTP协议的架构很像。但是和HTTP不一样的是,使用COAP的节点,既可以是客户端也可以是服务器!和HTTP很像,COAP也支持REST模型,可以使用GET,PUT,POST,DELETE等方法对资源进行操作!
3、COAP报文格式
COAP协议报文类型可以分为,待确认报文(Confirmable Message)、无需确认报文(Non-Confirmable Message)、确认报文(Acknowledge Message)和重置报文(Reset Message),这几种报文的只要实现在于下面报文格式中T(类型),占2位。
COAP报文格式
4、COAP报文传输实现
上文小生说到,COAP是基于UDP实现的,了解UDP的都知道,UDP是无连接的,是一种不可靠传输协议。所以在报文传输的过程中,很容易出现报文乱序,丢失和重复等现象。所以COAP为了解决这些问题,实现了一种可靠传输机制,不像TCP那么复杂,COAP可靠传输具有重传和重复检测的两个特点:
(1)报文发送完CON类型报文后,会启动一个简单的指数型避让stop-and-wait机制
(2)不管什么类型的报文,都会经过报文重复检测的步骤!
5、COAP的特点
(1)基于轻量级的UDP,支持IP多播。
(2)协议轻量级,最小的数据报只有4字节。
(3)基于REST结构,是目前互联网主流架构。
(4)提供可靠传输机制。
(5)消息模型,以消息为数据通信载体。
(6)等等...