5. Size Issues (大小问题)
5. Size Issues (大小问题)
5.1 Context Identifiers (上下文标识符)
上下文标识符可以是 8 位或 16 位长.它们的大小与查找上下文无关.值为 2 的 8 位 CID 和值为 2 的 16 位 CID 是等效的.
TCP 和非 TCP 的 CID 空间是分开的, 因此 TCP CID 和非 TCP CID 永远不会标识相同的上下文.即使它们具有相同的值.这在使用相同比特数的 CID 时将可用 CID 空间加倍.总是可以判断完整或压缩头是用于 TCP 还是非 TCP 分组, 因此不会发生混淆.
非 TCP 压缩头使用压缩头第二个八位字节中的一位来编码 CID 的大小.8 位 CID 允许非 TCP 分组的最小压缩头大小为 2 个八位字节, CID 使用第一个八位字节, 大小位和 6 位代值适合第二个八位字节.
对于 TCP, 唯一可用的 CID 大小是 8 位, 如 [RFC-1144] 中所述.8 位可能足够, 因为 TCP 连接总是点对点的.
对于点对点链路可能不需要 16 位 CID 大小; 它旨在用于多址链路, 其中可能需要更大的 CID 空间以有效选择 CID.
多址链路的主要困难在于多个压缩器共享解压缩器的 CID 空间.CID 不能再由压缩器独立选择, 因为可能发生冲突.这个问题可以通过让解压缩器为每个压缩器拥有单独的 CID 空间来解决.拥有单独的 CID 空间要求解压缩器可以识别哪个压缩器发送了压缩分组, 也许通过利用链路层信息来确定谁发送了链路层帧.如果此类信息不可用, 则多址链路上的所有压缩器可以被枚举, 自动或其他方式, 并将其编号作为 CID 的一部分提供.后一种方法需要大的 CID 空间.
5.2 Size of the context (上下文的大小)
上下文的大小应该被限制以简化压缩器和解压缩器的实现, 并对其内存施加限制.限制上下文的大小也防止通过发送具有大量扩展头的分组来进行拒绝服务攻击.
上下文的大小由完整头中的子头决定.仅存储到某个子头为止的子头, 包括该子头.这由链路层分组类型中的一位指示, 该位告诉从完整头中存储多少.如果省略了分组的某些尾部, 则尾部不会存储在上下文中.
链路层分组类型中的该位, 加上下一个头字段值, 唯一确定压缩头的格式.因此, 如果尾部被省略, 链路层将丢失尾部长度的信息, 因此尾部不能包含填充.
第 13 节中有更详细的信息.