无线物联网中CoAP协议的研究与实现(一)

2013-10-09 08:11:29来源: 互联网

由于物联网中的很多设备都是资源受限型的,即只有少量的内存空间和有限的计算能力,所以传统的HTTP协议应用在物联网上就显得过于庞大而不适用。 IETF的CoRE工作组提出了一种基于REST架构的CoAP协议。CoAP是6LowPAN协议栈中的应用层协议。该文在详细介绍了CoAP协议的内容、特点和交互模型后,在uIPv6 START KIT无线网络开发套件上,使用Contiki嵌入式操作系统,不仅在浏览器端实现了CoAP协议而且用自己编写的客户端程序实现了CoAP协议,增加了和数据库之间的交互功能,从而实现了在Web界面上不仅可以查看实时数据,还可以查看历史数据的功能。

  0引言

  物联网是在互联网的基础上延伸和扩展的一种网络,其用户端延伸和扩展到了任何物品之间,彼此进行信息交换和通信,目的是实现所有物品与网络的连接,从而方便识别、管理和控制。

  无线物联网的特点包括:全面感知、实时准确传递物品信息、利用智能计算技术对海量数据进行分析和处理,以实现智能化控制。

  由于无线物联网中的设备很多都是资源受限型的,这些设备只有少量的内存空间和有限的计算能力。为此,IETF(Intemet Engineering Task Force)的CoRE(Constrained RESTful Environment)工作组为受限节点制定相关的REST(Representational State Transfer)形式的应用层协议。这就是CoRE工作组正在制订的CoAP(Constrained Application Protocol)协议。

  1 6LoWPAN协议栈

  由于TCP/IP协议栈不适用于资源受限的设备,因此提出了一种6LoWPAN(IPv6 over Low power Wireless Personal Area Networks)协议栈。CoAP是6LoWPAN协议栈中的应用层协议。6LoWPAN使IPv6可用于低功耗的有损网络,它是基于IEEE 802.15.4标准的。6LoWPAN协议栈如图1所示。

  

  协议栈的下两层用802.15.4 PHY/MAC,中间加一个IPv6-6LoWPAN适配层,传输层使用UDP协议,应用层使用CoAP协议。它包括REST的最小子集和到HTTP的无状态映射。通信主机使用CoAP协议,能够支持稳定的通信架构,以实现传感器节点与互联网的无线连接。

  2 CoAP协议

  在2010年3月,CoRE工作组开始制定CoAP协议,到目前为止,该协议还没有定稿。CoAP协议是为物联网中资源受限设备制定的应用层协议。它是一种面向网络的协议,采用了与HTTP类似的特征,核心内容为资源抽象、REST式交互以及可扩展的头选项等。应用程序通过URI标识来获取服务器上的资源,即可以像HTTP协议对资源进行GET、PUT、POST和DELETE等操作。CoAP协议具有如下特点:(1)报头压缩:CoAP包含一个紧凑的二进制报头和扩展报头。它只有短短的4 B的基本报头,基本报头后面跟扩展选项。一个典型的请求报头为10~20 B.图2是CoAP协议的信息格式。

  

  报头部分各字段的含义如下:V(Version)表示CoAP协议的版本号;T(Type)表示消息的信息类型;OC(Option Count)表示头后面的可选的选项数量;Code表示消息的类型:请求消息、响应消息,或者是空消息;Message ID表示消息编号,用于重复消息检测、匹配消息类型等。

  (2)方法和URIs:为了实现客户端访问服务器上的资源,CoAP支持GET、PUT、POST和DELETE等方法。CoAP还支持URIs,这是Web架构的主要特点。

  (3)传输层使用UDP协议:CoAP协议是建立在UDP协议之上,以减少开销和支持组播功能。它也支持一个简单的停止和等待的可靠性传输机制。

  (4)支持异步通信:HTTP对M2M(Machine-to-Machine)通信不适用,这是由于事务总是由客户端发起。而CoAP协议支持异步通信,这对M2M通信应用来说是常见的休眠/唤醒机制。

  (5)支持资源发现:为了自主的发现和使用资源,它支持内置的资源发现格式,用于发现设备上的资源列表,或者用于设备向服务目录公告自己的资源。它支持RFC5785中的格式,在CoRE中用/.well—known/core的路径表示资源描述。

  (6)支持缓存:CoAP协议支持资源描述的缓存以优化其性能。

  (7)订阅机制:CoAP使用异步通信方式,用订阅机制实现从服务器到客户端的消息推送。实现CoAP的发布,订阅机制,它是请求成功后自动注册的一种资源后处理程序。是由默认的EVENT_和PERIODIC_RESOURCEs来进行配置的。它们的事件和轮询处理程序用 EST.notify_subscri bers()函数来发布。

  2.1 CoAP协议栈图3是CoAP协议栈。CoAP协议的传输层使用UDP协议。由于UDP传输的不可靠性,CoAP协议采用了双层结构,定义了带有重传的事务处理机制,并且提供资源发现和资源描述等功能。CoAP采用尽可能小的载荷,从而限制了分片。

  

  事务层(Transaction layer)用于处理节点之间的信息交换,同时提供组播和拥塞控制等功能。请求/响应层(Request/Responselayer)用于传输对资源进行操作的请求和响应信息。CoAP协议的REST构架是基于该层的通信。CoAP的双层处理方式,使得CoAP没有采用TCP协议,也可以提供可靠的传输机制。利用默认的定时器和指数增长的重传间隔时间实现CON(Confirmable)消息的重传,直到接收方发出确认消息。另外,CoAP的双层处理方式支持异步通信,这是物联网和M2M应用的关键需求之一。

  2.2 CoAP的订阅机制HTTP的请求/响应机制是假设事务都是由客户端发起的,通常叫做拉模型。这导致客户端不能高效的知统中,设备都是无线低功耗的,这些设备大部分时间是休眠状态,因此不能响应轮询请求。而CoRE认为支持本地的推送模型是一个重要的需求,也就是由服务器初始化事务到客户端。推送模型需要一个订阅接口,用来请求响应关于特定资源的改变。而由于UDP的传输是异步的,所以不需要特殊的通知消息。订阅机制如图4所示。

  

  2.3 CoAP的交互模型CoAP使用类似于HTTP的请求/响应模型:CoAP终端节点作为客户端向服务器发送一个或多个请求,服务器端回复客户端的CoAP 请求。不同于HTTP,CoAP的请求和响应在发送之前不需要事先建立连接,而是通过CoAP信息来进行异步信息交换。CoAP协议使用UDP进行传输。这是通过信息层选项的可靠性来实现的。CoAP定义了四种类型的信息:可证实的CON(Confirmable)信息,不可证实的NON(Non- Confirmable)信息,可确认的ACK(Acknowledgement)信息和重置信息RST(Reset)。方法代码和响应代码包含在这些信息中,实现请求和响应功能。这四种类型信息对于请求/响应的交互来说是透明的。

  CoAP的请求/响应语义包含在CoAP信息中,其中分别包含方法代码和响应代码。CoAP选项中包含可选的(或默认的)请求和响应信息,例如URI和负载内容类型。令牌选项用于独立匹配底层的请求到响应信息。

  请求/响应模型:请求包含在可证实的或不可证实的信息中,如果服务器端是立即可用的,它对请求的应答包含在可证实的确认信息中来进行应答。图5是基本的 GET请求和响应模式,其中图5(a)表示成功发送请求和收到ACK确认信息,图5(b)表示重传了请求信息,然后才收到ACK确认信息。

  

  虽然CoAP协议目前还在制定当中,但Contiki和TinyOS嵌入式操作系统已经支持CoAP协议。Contiki是一个多任务操作系统,并带有 uIPv6协议栈,适用于嵌入式系统无线传感器网络,它占用系统资源小,适用于资源受限的网络和设备。目前,火狐浏览器已经集成了Copper插件,从而实现了CoAP协议。但是这种方式只能读取传感器节点上的实时数据,而不能查看各种历史数据。为此,在Contiki系统的基础上,基于 uIPv6START KIT无线网络开发套件,用自己编写的客户端程序实现了和数据库的交互,把历史数据存入数据库中,从而在Web浏览器端不仅可以访问传感器节点上的实时数据,还能查看历史数据,以便于分析问题。

关键字:无线  物联网  CoAP协议

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2013/1009/article_19822.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
无线
物联网
CoAP协议

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved