图片91
CoAP(Constrained Application Protocol),适用于无线传感网络中的协议。
用途:CoAP 是简化了HTTP 协议的RESTful API,而CoAP是6LowPAN协议栈中的一个应用层协议,适合在资源有限的IP网络进行通信。其特征如下:
(1)头部压缩。CoAP包含一个压缩二进制报头和一个扩展报头。其只有4B的基报头,基本报头后跟扩展选项。请求头部的典型值是10~20B。
(2)方法和URI。CoAP支持GET、PUT、POST和DELETE等方法来实现对服务器端资源的访问。CoAP也支持URIs,这是Web体系结构的主要特征。
3)UDP协议在传输层的应用。CoAP协议构建于UDP协议之上,降低了开销,支持了多播功能。该系统还支持可靠的停止和等待传输机制。
(4)异步通讯的支持。HTTP对M2M(Machine-to-Machine)通信是不适用的,因为事务总是由客户端启动的。CoAP协议支持异步通信,这是M2M通信应用中常用的休眠/唤醒机制。
(5)支持发现资源。为自动发现和使用资源,它支持内建的资源发现格式,该格式用于发现设备上的资源列表,或设备将自己的资源通知给服务目录。在CoRE中,它支持RFC5785格式,资源描述是使用/.well—known/core的路径。
(6)对缓存的支持。CoAP协议支持对资源进行缓存,从而优化性能。
CoAP协议的主要实现:
(1)libcoap(C语言实施)
(2)Californium(java语言实现)
此外,CoAP和6LowPan,即应用层协议和网络适配层协议,其目的是解决设备与IP网的直接连接,即IP技术在两个设备间的应用,以及因特网与设备间通讯的需要。由于IPV6技术所带来的巨大寻址空间,不仅解决了将来大量设备和资源的标识问题,因特网上的应用可以直接访问IPV6的设备,而无需额外的网关。