6LowPAN与CoAP协议

  基于REST架构的COAP协议是6LowPAN协议栈中的应用层协议,可运行在内存受限和计算能力有限的嵌入式设备中,并具有请求响应工作模式和可靠的数据传输性能,在物联网领域中具有极大的发展潜力。

6LowPAN

  6LowPAN作为一种新型的无线传感器网络技术,基于和ZigBee技术相同的IEEE 802.15.4标准,具有和IPv6互联网兼容的特点,成为人们研究和关注的热点之一。
  6LowPAN技术可以让每个传感器节点拥有独一无二的IPv6地址,便于无线传感器网络与IPv6互联网的融合,从而实现无线传感器网络和互联网络的无缝连接,方便用户远程对传感器节点进行访问和控制。

COAP

  在6LowPAN协议栈中,基于REST架构的COAP协议是其应用层协议,其架构如下图所示:
在这里插入图片描述
  为了利用UDP协议占用硬件资源少、支持多播等优点,克服其数据传输不可靠的缺点,COAP采用了双层架构:

  • Transaction层负责处理节点间的信息交换,同时增加了对多播的支持。
  • Request/Response层用来传输对资源进行操作的请求和响应信息,其REST架构也是基于该层。

这种双层方式使得COAP协议在没有采用TCP协议的情况下也可以实现数据的可靠传输。
  目前ContikiTiny OS这两大开源的物联网操作系统实现了COAP服务器部分,可以将代码移植到嵌入式硬件设备中。

COAP应用

  COAP应用的一般架构如下图所示。图中,每个传感器节点实际就是一个COAP服务器,传感器上的每一个硬件资源被描述为一个URL,例如coap://[aaaa::1]/led表示IPv6地址为aaaa::1的传感器节点上的led硬件资源。用户可以通过getputpostdelete这四种方式对传感器节点上的硬件资源进行访问或控制。
在这里插入图片描述
  上图中的RPL是低功耗有损网络IPv6路由协议,该协议能够让众多的传感器节点实现点对点通信,从而组成无线传感器网络。边界路由器是6LowPAN无线传感器网络与IPv6互联网络的桥梁,其作用是实现无线传感器网络的数据包和IP数据包之间的相互转换。

COAP服务器

  COAP服务器的软件架构如下图所示,该软件架构移植了Contiki操作系统。
  图中,uip6是一个简易的IPv6网络协议栈,为嵌入式设备融入IPv6互联网提供了条件。
  由于最大MTUMAC层路由等原因,IPv6不能直接运行在IEEE 802.15.4 MAC层之上,图中的6LowPAN作为适配层同时提供对上下两层的支持。该层一方面将上层的IPv6数据包进行头部压缩和分片,传输至IEEE 802.15.4协议栈中,另一方面将从IEEE 802.15.4协议栈中接收到的数据包进行重组,传输至IPv6的网络层。

在这里插入图片描述

边界路由器

  边界路由器的硬件设计如下图所示。串口用于微处理器和openWRT路由器之间的数据交互。微处理器中移植了Contiki操作系统,并在该操作系统下完成了边界路由器和6LowPAN协议栈相关程序设计。
  openWRT是一种嵌入式Linux系统,该系统移植了libcoap和链接服务器的代码,负责串口数据和IPv6互联网数据的交换和路由。
在这里插入图片描述

  边界路由器中的微处理器和openWRT路由器之间的通讯采用了SLIP协议。SLIP协议实现了在串行通信线路上运行TCP/IP协议及其应用服务的功能。

猜你喜欢

转载自blog.csdn.net/fukangwei_lite/article/details/121776298