源端口
Source Port
16位字段,指定发送端的应用程序端口号。
目标端口
Destination Port
16位字段,指定接收端的应用程序端口号。
序列号
Sequence Number
32位字段,用于对每个TCP报文进行编号,以确保按正确的顺序重新组装它们。
确认号
Acknowledgement Number
32位字段,只有在ACK标志位被设置为1时才有效。确认号表示接收端期望收到的下一个字节的序列号。
数据偏移
Data Offset
4位字段,表示TCP首部的长度,以32位字(4字节)为单位计算。它指示TCP报文段的数据从哪里开始。
保留
Reserved
6位字段,保留供将来使用,目前应设置为0。
控制位
Flags
6个标志位,用于指示TCP报文段的各种控制信息。这些标志包括:
URG
Urgent
表示紧急指针字段是否有效。
ACK
Acknowledgment
表示确认号字段是否有效。
PSH
Push
表示接收端应该尽快将数据交给应用程序。
PST
Reset
用于重置连接。
SYN
Synchronize
用于建立连接。
FIN
Finish
用于关闭连接。
窗口大小
Window Size
16位字段,指定发送端希望接收端为此连接分配的缓冲区大小。
校验和
Checksum
16位字段,用于检测TCP报文段是否在传输过程中发生错误。
紧急指针
Urgent Pointer
16位字段,只有在URG标志位被设置为1时才有效。指示紧急数据的边界。
选项
Options
可变长度的字段,用于在TCP首部中传递额外的控制信息,它可以包含诸如最大报文段长度、时间戳等选项。
总结
总体上,TCP首部的长度为20字节(当没有选项字段时),并且可以根据选项字段的存在而变化。