跳到主要内容

10. Low-loss header compression for TCP (TCP 的低丢包头压缩)

10. Low-loss header compression for TCP (TCP 的低丢包头压缩)​

本节描述了两种加速 TCP 压缩头丢失恢复的机制.这些机制对于具有高分组丢失率的中速链路尤其重要.

10.1 Explicit header request from decompressor (来自解压缩器的显式头请求)​

当解压缩器检测到 TCP 连接的上下文不同步时, 它可以通过向压缩器发送头请求来请求完整头.头请求是一个特殊的分组, 包含不同步的 TCP 连接的 CID 列表.

解压缩器检测到不同步的一种方式是当它接收到 TCP 分组时, 但是 TCP 校验和失败.这表明压缩的 TCP 头被不正确地解压缩.

压缩器接收到头请求后, 应该为列出的 CID 对应的 TCP 连接发送完整头或 COMPRESSED_TCP_NODELTA 分组.

10.2 CONTEXT_STATE packet (CONTEXT_STATE 分组)​

CONTEXT_STATE 分组是从解压缩器发送到压缩器的特殊分组.它包含已丢失同步的 TCP CID 列表.

CONTEXT_STATE 分组的格式如下:

 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CONTEXT_STATE marker | Number of CIDs |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CID 1 | CID 2 | ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

CONTEXT_STATE 标记是一个特殊的 16 位值, 标识此分组为 CONTEXT_STATE 分组.

Number of CIDs 字段指示此分组中包含多少个 CID.

CID 字段是 8 位 CID 值.

压缩器接收到 CONTEXT_STATE 分组后, 应该为列出的 CID 对应的 TCP 连接发送完整头或 COMPRESSED_TCP_NODELTA 分组.