由于TCP/IP协议不适用于资源受限的嵌入式设备,IEFT提出了6lowpan协议栈,6lowpan框架如下:
图1
正如实现Zigbee协议的协议栈有z-stack、ember、Freakz一样,目前支持6lowpan的协议栈有Contiki、Tinyos。这里我们主要介绍Contiki系统。
Contiki系统内部集成了两种类型的网络协议栈:uIP和Rime。
Rime是一个独立、轻量级、专为LLN设计的协议栈,Rime本身提供了大量原语,能够实现单播、多播到复杂的多跳数据通信,Rime是一个完整的协议栈,就像Atmel LWMesh一样的小协议栈。在Rime中没有IP架构和协议的概念,所以,它既不基于IPv4,也不基于IPv6。实际中几乎没人使用Rime,因为使用Rime协议进行通信,就失去了Contiki设计的初衷了。
uIP是一个符合RFC规范的标准TCP/IP协议栈(和LWip类似),使得Contiki可以直接和Internet通信。uIP包括了IPv4和IPv6两个版本(注意,uIP是在sicalowpan的支持下实现IPv6的),支持TCP、UDP等协议,