协议栈的下两层用802.15.4 PHY/MAC,中间加一个IPv6-6LoWPAN适配层,传输层使用UDP协议,应用层使用CoAP协议。它包括REST的最小子集和到HTTP的无状态映射。通信主机使用CoAP协议,能够支持稳定的通信架构,以实现传感器节点与互联网的无线连接。
报头部分各字段的含义如下:V(Version)表示CoAP协议的版本号;T(Type)表示消息的信息类型;OC(Option Count)表示头后面的可选的选项数量;Code表示消息的类型:请求消息、响应消息,或者是空消息;Message ID表示消息编号,用于重复消息检测、匹配消息类型等。
事务层(Transaction layer)用于处理节点之间的信息交换,同时提供组播和拥塞控制等功能。请求/响应层(Request/Responselayer)用于传输对资源进行操作的请求和响应信息。CoAP协议的REST构架是基于该层的通信。CoAP的双层处理方式,使得CoAP没有采用TCP协议,也可以提供可靠的传输机制。利用默认的定时器和指数增长的重传间隔时间实现CON(Confirmable)消息的重传,直到接收方发出确认消息。另外,CoAP的双层处理方式支持异步通信,这是物联网和M2M应用的关键需求之一。
2.3 CoAP的交互模型CoAP使用类似于HTTP的请求/响应模型:CoAP终端节点作为客户端向服务器发送一个或多个请求,服务器端回复客户端的CoAP 请求。不同于HTTP,CoAP的请求和响应在发送之前不需要事先建立连接,而是通过CoAP信息来进行异步信息交换。CoAP协议使用UDP进行传输。这是通过信息层选项的可靠性来实现的。CoAP定义了四种类型的信息:可证实的CON(Confirmable)信息,不可证实的NON(Non- Confirmable)信息,可确认的ACK(Acknowledgement)信息和重置信息RST(Reset)。方法代码和响应代码包含在这些信息中,实现请求和响应功能。这四种类型信息对于请求/响应的交互来说是透明的。
虽然CoAP协议目前还在制定当中,但Contiki和TinyOS嵌入式操作系统已经支持CoAP协议。Contiki是一个多任务操作系统,并带有 uIPv6协议栈,适用于嵌入式系统和无线传感器网络,它占用系统资源小,适用于资源受限的网络和设备。目前,火狐浏览器已经集成了Copper插件,从而实现了CoAP协议。但是这种方式只能读取传感器节点上的实时数据,而不能查看各种历史数据。为此,在Contiki系统的基础上,基于 uIPv6START KIT无线网络开发套件,用自己编写的客户端程序实现了和数据库的交互,把历史数据存入数据库中,从而在Web浏览器端不仅可以访问传感器节点上的实时数据,还能查看历史数据,以便于分析问题。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |