COAP协议
一、初识COAP协议
(一)、起源
随着越来越多的人通过PC、手机等设备相互连接,现代互联网蓬勃发展使得人们的生活发生了翻天覆地的变化。很多人预测将会有更多其他的设备相互连接,这些设备的数量将远远超过人类的数量,到时候形成的网络将是现有网络的N个量级,这个网络带给世界的变化将是无法估量的。
不像人接入互联网的简单方便,由于物联网设备大多都是资源限制型的,有限的CPU、RAM、Flash、网络宽带等。对于这类设备来说,想要直接使用现有网络的TCP和HTTP来实现设备实现信息交换是不现实的。于是为了让这部分设备能够顺利接入网络,CoAP协议就被设计出来了。
(二)、 概念
CoAP约束应用协议(Constrained Application Protocol)是一种专用于受限设备的Internet应用协议,如RFC 7252所定义,它使那些被称为“节点”的受约束设备能够使用类似的协议与更广泛的Internet进行通信。CoAP被设计用于同一受限网络(例如,低功耗、有损网络)上的设备之间、设备和因特网上的一般节点之间以及由因特网连接的不同受限网络上的设备之间使用。CoAP也被用于其他机制,如移动通信网络上的SMS。
总结:CoAP是受约束设备的专用Internet应用程序协议。
(三)、特点
-
基于消息模型,定义了4个消息类型,以消息为数据通信载体,通过交换网络消息来实现设备间数据通信
-
基于请求/响应模型 ,对CoAP Server云端设备资源操作都是通过请求与响应机制来完成,类似HTTP,设备端可通过4个请求方法(GET, PUT, POST, DELETE)对服务器端资源进行操作。 请求与响应的数据包都是放在CoAP消息里面进行传输的
-
基于消息的双向通信(M2M),CoAP Client与CoAP server双方都可以独立向对方发送请求.双方可当client或者server角色
-
轻量最小长度仅为4B
-
支持可靠传输 ,数据重传,块传输。 确保数据可靠到达。
-
支持IP多播 , 即可以同时向多个设备发送请求(比如CoAP client搜索CoAP Server)
-
低功耗 ,非长连接通信
-
支持受限设备
-
支持观察模式
-
支持异步通信
…
(四)、 与其他物联网协议(HTTP、CoAP、MQTT)的区别
协议内容:CoAP是一个完整的二进制应用层协议,消息格式紧凑&#