COAP协议学习
1、CoAP简单介绍
在2010年3月,CoRE工作组开始制定CoAP协议,到目前为止,该协议还没有定稿。CoAP协议是为物联网中资源受限设备制定的应用层协议。CoAP是受限制的应用协议Co
strai
edApplicatio
Protocol的代名词。在最近几年的时间中,专家们预测会有更多的设备相互连接,而这些设备的数量将远超人类的数量。在这种大背景下,物联网和M2M技术应运而生。虽然对人而言,连接入互联网显得方便容易,但是对于那些微型设备而言接入互联网非常困难。在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的。但是对于小型设备而言,实现TCP和HTTP协议显然是一个过分的要求。为了让小设备可以接入互联网,CoAP协议被设计出来。CoAP是一种应用层协议,它运行于UDP协议之上而不是像HTTP那样运行于TCP之上。CoAP协议非常的小巧,最小的数据包仅为4字节。
为了克服HTTP对于受限环境的劣势,CoAP既考虑到数据报长度的最优化,又考虑到提供可靠通信。一方面,CoAP提供URI,REST式的方法如GET,POST,PUT和DELETE,以及可以独立定义的头选项提供的可扩展性。另一方面,CoAP基于轻量级的UDP协议,并且允许IP多播。而组通信是物联网最重要的需求之一,比如说用于自动化应用中。为了弥补UDP传输的不可靠性,CoAP定义了带有重传机制的事务处理机制。并且提供资源发现机制,并带有资源描述。
CoAP协议不是盲目的压缩了HTTP协议,考虑到资源受限设备的低处理能力和低功耗限制,CoAP重新设计了HTTP的部分功能以适应设备的约束条件。另外,为了使协议适应物联网和M2M应用,CoAP协议改进了一些机制,同时增加了一些功能。下图1显示了HTTP和CoAP的协议栈。CoAP和HTTP在传输层有明显的区别。HTTP协议的传输层采用了TCP协议,而CoAP协议的传输层使用UDP协议,开销明显降低,并支持多播。
f事务层Tra
sactio
layer用于处理节点之间的信息交换,同时提供组播和拥塞控制等功能。请求/响应层Request/Respo
selayer用于传输对资源进行操作的请求和响应信息。CoAP协议的REST构架是基于该层的通信。CoAP的双层处理方式,使得CoAP没有采用TCP协议,也可以提供可靠的传输机制。利用默认的定时器和指数增长的重传间隔时间实现CONCo
firmable消息的重传,直到接收方发出确认消息。另外,CoAP的双层处理方式支持异步通信,这是物联网和M2M应用的关键需求之一。
2、CoAP协议是否可以替换HTTP协议?
CoAP并不能替代HTTP协议,但是对于那些小设备(256KBFlash32KBRAM20MHz主频)而言CoAPr