Contiki 操作系统早期版本的实现是基于RFC4944 草案中IEEE 802.15.4 网络传输IPv6 数据包、draft-hui-6lowpan-interop-00 草案中6LoWPAN 互操作性测试以及draft-hui-6lowpan-hc-01 草案6LoWPAN 网络中IPv6数据报压缩格式的。RFC4944 定义了基于IEEE 802.15.4 协议16 位和64 位地址的地址配置机制、IP 层以下的IPv6 数据分组分片、IPv6 和UDP 报头压缩机制,RFC4944 也定义了允许网状网中实现链路层转发的网状网报头,以及允许网状网中实现广播的报头。
Contiki操作系统实现了寻址、分片和首部压缩机制,支持draft-hui-6low⁃pan-interop-00 中定义的首部压缩方案,该草案定义了ArchRock 和Sensinode实现之间使用的互操作性方案。但是Contiki 操作系统没有实现网状网相关的特征。
draft-hui-6lowpan-hc-01定义了一个有状态的首部压缩机制,该机制弃用了RFC4944 中定义的无状态头压缩机制,它更加强大和灵活,特别是它允许压缩一些多播地址和所有全球单播地址。(www.xing528.com)
Contiki 操作系统中6LoWPAN 不作为单独的进程运行,当接收到6LoWPAN 分组时,由MAC 层进程调用它,当需要发送IPv6 分组时,由tcpip进程调用它。6LoWPAN 由MAC 层进程调用sicslowpan_init()函数初始化,该函数给出指向mac_driver 结构的指针参数。主要的6LoWPAN 函数在sicslowpan.h和sicslowpan.c 文件中实现,这两个文件保存在core/net/ipv6/文件夹下,它们用于格式化IEEE 802.15.4协议层和IPv6协议层之间的分组,6LoWPAN 还会创建一些IPv6协议和链路层需要的其他机制。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。