13. Link-layer considerations (链路层考虑)
13. Link-layer considerations (链路层考虑)
本节描述了将头压缩与 PPP (Point-to-Point Protocol) 一起使用时的链路层考虑.
13.1 PPP protocol numbers (PPP 协议号)
为头压缩分组分配以下 PPP 协议号:
Full header: 0x0061
Compressed TCP: 0x0063
Compressed non-TCP: 0x0065
Compressed TCP NODELTA: 0x2063
Context state: 0x2065
常规 IPv4 和 IPv6 分组使用标准 PPP 协议号 (IPv4 为 0x0021, IPv6 为 0x0057).
13.2 Negotiation (协商)
头压缩参数通过 PPP 的 IPCP (Internet Protocol Control Protocol) 或 IPV6CP (IPv6 Control Protocol) 进行协商.
可以协商的参数包括:
- 是否启用头压缩
- 最大 CID 值
- 是否支持 16 位 CID
- 压缩子头的最大长度
13.3 Packet format (分组格式)
使用 PPP 时, 头压缩分组的格式如下:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PPP Protocol (2 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Compressed header |
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload |
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
对于完整头, 压缩头包括:
- CID (1 或 2 个八位字节)
- 对于非 TCP: 代 (6 位)
- 未压缩的 IP 头和传输层头
对于压缩非 TCP 头, 压缩头包括:
- CID (1 或 2 个八位字节)
- 代 (6 位)
- 随机改变的头字段
对于压缩 TCP 头, 压缩头包括:
- CID (1 个八位字节)
- 标志八位字节 (指示哪些字段已更改)
- 已更改的字段 (编码为与先前值的差异)