1.压缩方案
SICSLOWPAN_CONF_COMPRESSION 编译选项定义了支持的压缩方案,Contiki 系统支持HC1、HC01 和IPv6 压缩机制。草案RFC4944 定义了HC1 和IPv6压缩方案,draft-hui-6lowpan-hc定义了HC01压缩方案。这里称之为IPv6压缩,意味着发送没有压缩分组,并在IPv6 报头之前添加IPv6 分派(dis⁃patch)。如果在编译时选择IPv6“压缩”,则永远不会压缩发送的分组,并且不会在接收时处理压缩分组。如果在编译时选择HC1或HC01,将尝试在发送时压缩所有字段,并将接收使用所选方案压缩的分组以及未压缩的分组。
2.压缩相关的函数
收到分组时,会调用输入函数处理分片问题,然后检查分派字节。如果是IPv6,将分组内联处理;如果是HC1 或HC01,则调用相应的解压缩函数uncompress_hdr_hc1()或uncompress_hdr_hc01()。当需要发送分组时,会尝试压缩它。如果仅启用了IPv6 压缩支持,只需在802.15.4 有效负载之前添加IPv6分派。如果启用了HC1 或HC01 支持,会调用相应的压缩函数com⁃press_hdr_hc1()或compress_hdr_hc01()来尽可能地压缩分组。
3.HC1注解(www.xing528.com)
在HC1 中,如果未压缩IPv6 流标签,可能需要在流标签之后字节中间位置(流标签长度为20 位)开始复制字段。为避免这种情况,仅在所有字段都可以压缩时压缩分组,如果不能,使用IPv6 分派并内联发送所有首部字段,这种操作是draft-hui-6lowpan-interop-00草案中定义的操作。同样,如果分组是UDP 分组,只有在所有字段都可以压缩的情况下,才会压缩UDP 报头。要注意的是,HC1只能压缩单播链路本地地址,因此建议使用HC01。
4.HC01注解
HC01使用地址上下文来启用全局单播地址的压缩,所有节点必须共享上下文(即使用全球前缀)以成功压缩和解压缩此类地址,上下文编号用2 位定义,上下文00 保留,用于链接本地上下文,其他上下文必须通过尚未定义的ND扩展,动态地在LoWPAN 内分发。如果要测试全球地址压缩,则需要手动配置全球上下文。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。