跳到主要内容

Appendix A. Detailed classification of header fields (头字段的详细分类)

Appendix A. Detailed classification of header fields (头字段的详细分类)

本附录提供了 IPv4、IPv6、UDP 和 TCP 头字段的详细分类.这些表格显示了每个字段如何在头压缩中处理.

A.1 IPv6 header (IPv6 头)

FieldSizeDEFTmplCTmpl & CInferredNotes
Version4NoYesNoNoNo常量 (6)
Traffic Class8NoYesYesNoNo可能改变
Flow Label20YesYesNoNoNo定义字段
Payload Length16NoNoNoNoYes从帧长度推断
Next Header8NoYesYesNoNo可能改变
Hop Limit8NoYesYesNoNo可能改变
Source Address128YesYesNoNoNo定义字段
Destination Address128YesYesNoNoNo定义字段

A.2 IPv6 extension headers (IPv6 扩展头)

IPv6 扩展头的处理取决于扩展头的类型:

Hop-by-Hop Options header (逐跳选项头)

通常不压缩, 因为它可能在每跳改变.

Routing header (路由头)

最终目的地地址是定义字段.其他字段作为模板的一部分.

Fragment header (分片头)

标识字段不用于分组流识别.其他字段作为模板的一部分.

Destination Options header (目的地选项头)

作为模板的一部分.

Authentication Header (AH) (身份验证头)

SPI 是定义字段.序列号和认证数据在压缩头中发送.

Encapsulating Security Payload (ESP) (封装安全有效载荷)

SPI 是定义字段.序列号在压缩头中发送.

A.3 IPv4 header (IPv4 头)

FieldSizeDEFTmplCTmpl & CInferredNotes
Version4NoYesNoNoNo常量 (4)
IHL4NoYesNoNoNo常量 (通常为 5)
Type of Service8NoYesYesNoNo可能改变
Total Length16NoNoNoNoYes从帧长度推断
Identification16NoNoYesNoNo随机改变
Flags3NoYesYesNoNo可能改变
Fragment Offset13NoYesYesNoNo分片时改变
Time to Live8NoYesYesNoNo可能改变
Protocol8YesYesNoNoNo定义字段
Header Checksum16NoNoYesNoNo每跳重新计算
Source Address32YesYesNoNoNo定义字段
Destination Address32YesYesNoNoNo定义字段
OptionsvarNoYesYesNoNo很少使用

A.4 UDP header (UDP 头)

FieldSizeDEFTmplCTmpl & CInferredNotes
Source Port16YesYesNoNoNo定义字段
Destination Port16YesYesNoNoNo定义字段
Length16NoNoNoNoYes从帧长度推断
Checksum16NoNoYesNoNo随机改变

A.5 TCP header (TCP 头)

FieldSizeDEFTmplCTmpl & CInferredNotes
Source Port16YesYesNoNoNo定义字段
Destination Port16YesYesNoNoNo定义字段
Sequence Number32NoYesYesNoNo差分编码
Acknowledgment Number32NoYesYesNoNo差分编码
Data Offset4NoYesYesNoNo选项改变时改变
Reserved4NoYesNoNoNo通常为零
Flags8NoYesYesNoNo可能改变
Window16NoYesYesNoNo按原样发送
Checksum16NoNoYesNoNo按原样发送
Urgent Pointer16NoYesYesNoNo很少使用
OptionsvarNoYesYesNoNo很少改变