image.png
源端口号 (Source Port, 16 bits):源计算机上的应用程序端口(哪个端口发送数据)
目的端口号 (Destination Port, 16 bits):目标计算机的应用端口(哪个端口接收数据)
序号 (Sequence Number, 32 bits):本报文段发送数据的第一个字节的编号。(TCP流式传输,注意是第一个字节的编号,而不是整个数据包的编号)
确认号 (Acknowledgment Number, 32 bits):表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。(也就是下一个接收的字节的序列号加1)
首部长度(Header Length, 4 bits): 确定TCP数据段头部的长度
保留 (Reserved, 4 bits): 4位,目前没有特定用途,为TCP将来的发展预留空间
标志位 (Flags/Control Bits, 8 bits):
- URG (Urgent): 表示本报文段中发送的数据是否包含紧急数据
- CWR (Congestion Window Reduce): 拥塞窗口减少标志,用来表明它接收到了设置 ECE 标志的 TCP 包。
- ECE (ECN Echo): 用来在 TCP 三次握手时表明一个 TCP 端是具备 ECN 功能的
- ACK (Acknowledgment): 表示前面的确认号字段是否有效
- PSH (Push): 告诉对方收到该报文段后是否立即把数据推送给上层
- RST (Reset): 表示是否重置连接
- SYN (Synchronize): 在建立连接时使用,用来同步序号
- FIN (Finish): 标记数据是否发送完毕
窗口大小 (Window Size, 16 bits): 它表示从 Ack Number 开始还可以接收多少字节的数据量,也表示当前接收端的接收窗口还有多少剩余空间。该字段可以用于 TCP 的流量控制。
校验和 (Checksum, 16 bits): 它用于确认传输的数据是否有损坏。发送端基于数据内容校验生成一个数值,接收端根据接收的数据校验生成一个值。
紧急指针 (Urgent Pointer, 16 bits):仅当前面的 URG 控制位为 1 时才有意义。