1、需求背景
近年来,由于5G、AI、大数据和物联网等技术的发展,万物互联已经成为必然的趋势,且市场甚是广大。对于人们而言,接入互联网是极其自然的事,但对于数量远超人类的设备而言,尤其是算力等条件受限的设备而言,更是难上加难:一是可用IP数量严重受限(IPv6的诞生),二是缺乏适宜的M2M通信协议(CoAP等物联网协议的诞生)。
2、协议简介
CoAP是受限制的应用协议(Constrained Application Protocol)的代名词,其是万物互联需求而诞生的应用层协议。CoAP是基于ReST架构,借鉴了HTTP协议机制并简化了协议包格式的针对受限条件下的应用层(物联)协议。 CoAP是一种应用层协议,它运行于 UDP协议之上而不是像HTTP那样运行于TCP之上,助力万物互联,让“万物触手可及”。
在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的。但对于设备而言,实现TCP和HTTP协议显然是一个过分的要求(条件和环境等的限制,如MCU的算力受限、设备供电受限、网络受限)。
在当前由各种受限设备组成的物联网世界,信息交换是通过UDP和应用层协议CoAP实现的(条件不受限,则可以是TCP+HTTP,或者MQTT等)。
3、协议特点
- 采用ReST架构,在受限环境中满足M2M要求的Web协议;
- 基于UDP协议传输,非长连接通信,支持单播和多播请求;//适用于低功耗物联网场景
- 低头部开销和解析复杂性;// 受限设备要求,适用于低功耗物联网场景
- 支持 URI 和 Content-type;// 开发者喜欢
- 无状态 HTTP 映射,允许构建代理,以统一方式通过 HTTP 访问 CoAP 资源,或者通过 CoAP 变换实现 HTTP 简单接口;
- 支持对数据报传输层安全(DTLS)[RFC6347] 的绑定。