该RFC草案解释好一点的报头压缩是如何工作的。抽象中所描述的任意前缀本质上是一堆假设在某个范围内或具有特定值的信息。因此,不需要传输这些信息。
为了启用有效压缩,LOWPAN_IPHC 依赖于与整个 6LoWPAN 相关的信息。
这个假设适用于整个 6LoWPAN,分解下一个句子,我们有六个信息,这些信息假设是已知的或在相当小的值范围内。
- Traffic Class 和 Flow Label 都为零;
- 有效载荷长度可以从 6LoWPAN Fragmentation 标头或 IEEE 802.15.4 标头的较低层推断出来;
- 跳数限制将被源设置为一个众所周知的值;
- 分配给 6LoWPAN 接口的地址将使用链路本地前缀或分配给整个 6LoWPAN 的一小组可路由前缀形成;
- 分配给 6LoWPAN 接口的地址由直接从 64 位扩展或 16 位短 IEEE 802.15.4 地址派生的 IID 构成。
(我的要点,否则继续草案的第三部分。)
这也解释了为什么您的 PC 等设备不使用这种压缩。您的 PC 必须能够基本上处理整个世界。然而,上述压缩只有在充分受限的环境(整个 6LoWPAN)中使用时才真正有效,而不是在整个世界中使用。
在最好的情况下,LOWPAN_IPHC 可以通过本地链路通信将 IPv6 报头压缩为两个八位字节(调度八位字节和 LOWPAN_IPHC 编码)。
(仍然是草稿部分)
正如 RFC 草案中所描述的,当它处于更受限制的环境中时,压缩会变得更好。对于仅本地链接,它可以减少到两个八位字节。当然,我们希望我们常用的计算机和终端设备能够解决其他所有问题。但是,如果我们希望能够更改所有这些值,则此压缩理所当然地不再起作用。我们的意思和每个其他网络参与者认为我们的意思之间会存在不匹配,因为压缩认为值是理所当然的。
因此,压缩严重限制了 IPv6在一个非常明确的小环境中到达更小的报头和获得时间和能量效率的巨大可能性。