什么是 TCP 段首部?
每个 TCP 段都包含一个 20 字节的固定格式首部。首部选项可能位于固定首部之后。带有一个首部,以便它可以标记最多 65535 个数据字节。
TCP 首部格式如下所示:
源端口
这是一个 16 位的源端口号,接收方用来回复。
目标端口
这是一个 16 位的目标端口号。
序列号
此段中第一个数据字节的序列号。在 SYN 控制位被设置时,序列号为 n,第一个数据字节为 n + 1。
确认号
如果 ACK 控制位被设置,则此字段包含接收方期望接收的下一个序号。
数据偏移量
TCP 首部中几个 32 位字显示用户数据从哪里开始。
保留 (6 位)
保留供将来使用。
URG
它指示紧急指针字段,数据类型是否紧急。
ACK
它表示段中的确认字段具有重要意义,如前所述。
PUSH
PUSH 标志根据发送的数据类型立即发送或不发送而设置或重置。
RST
它重置连接。
SYN
它同步序列号。
FIN
这表示发送方不再有数据。
窗口
它用于确认段。它指定接收方准备接受的数据字节数,从确认号字段中指示的一个开始。
校验和
它用于错误检测。
选项
IP 数据报选项提供额外的准确性。它可以在 TCP 发送方和接收方之间使用多个可选参数。这取决于所使用的选项。字段的长度可能会有所不同,但由于首部字段的大小为 4 位,因此它不能大于 40 字节。
最典型的选项是最大分段大小 MASS 选项。TCP 接收方使用此选项向 TCP 发送方传达它可以接受的分段的总长度。其他各种选项用于流量控制和拥塞控制,每个选项在表中都有说明。
选项表
TCP 段首部中的选项表如下所示:
种类 | 长度 | 含义 |
---|---|---|
0 | - | 选项列表结束 |
1 | - | 无操作 |
2 | 4 | 最大分段大小 |
3 | 3 | 窗口缩放 |
4 | 2 | 允许 Sack |
5 | X | Sack |
8 | 10 | 时间戳 |
填充
每个选项的大小可能不同,并且可能需要用零“填充”TCP 首部,以便该段根据标准以 32 位字边界结束。
数据
尽管在某些情况下(例如,反向方向上没有数据的确认段),可变长度字段承载来自发送方到接收方的应用程序数据。此字段与 TCP 首部字段一起构成一个 TCP 段。
广告