10. Improving loss recovery for TCP (改进 TCP 的丢包恢复)
10. Improving loss recovery 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 分组.