新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 无线物联网中CoAP协议的研究与实现

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

作者:时间:2013-04-09来源:网络收藏

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

0 引言
物联网是在互联网的基础上延伸和扩展的一种网络,其用户端延伸和扩展到了任何物品之间,彼此进行信息交换和通信,目的是实现所有物品与网络的连接,从而方便识别、管理和控制。
无线物联网的特点包括:全面感知、实时准确传递物品信息、利用智能计算技术对海量数据进行分析和处理,以实现智能化控制。
由于无线物联网中的设备很多都是资源受限型的,这些设备只有少量的内存空间和有限的计算能力。为此,IETF(Intemet Engineering Task Force)的CoRE(Constrained RESTful Environment)工作组为受限节点制定相关的REST(Representational State Transfer)形式的应用层协议。这就是CoRE工作组正在制订的CoAP(Constrained Application Protocol)协议。

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

本文引用地址:http://www.eepw.com.cn/article/153550.htm

k.JPG


协议栈的下两层用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协议的信息格式。

l.JPG


报头部分各字段的含义如下: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采用尽可能小的载荷,从而限制了分片。

m.JPG


事务层(Transaction layer)用于处理节点之间的信息交换,同时提供组播和拥塞控制等功能。请求/响应层(Request/Responselayer)用于传输对资源进行操作的请求和响应信息。CoAP协议的REST构架是基于该层的通信。CoAP的双层处理方式,使得CoAP没有采用TCP协议,也可以提供可靠的传输机制。利用默认的定时器和指数增长的重传间隔时间实现CON(Confirmable)消息的重传,直到接收方发出确认消息。另外,CoAP的双层处理方式支持异步通信,这是物联网和M2M应用的关键需求之一。
2.2 CoAP的订阅机制
HTTP的请求/响应机制是假设事务都是由客户端发起的,通常叫做拉模型。这导致客户端不能高效的知统中,设备都是无线低功耗的,这些设备大部分时间是休眠状态,因此不能响应轮询请求。而CoRE认为支持本地的推送模型是一个重要的需求,也就是由服务器初始化事务到客户端。推送模型需要一个订阅接口,用来请求响应关于特定资源的改变。而由于UDP的传输是异步的,所以不需要特殊的通知消息。订阅机制如图4所示。

a.JPG

物联网相关文章:物联网是什么



上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭