报文协议

TCP

TCP 报文

我们首先要了解 TCP 报文组成,根据 TCP 报文组成格式,重点了解几个重要的字段有助于我们在后面分析 TCP/IP 报文。

TCP 报文标志位

上图中有几个字段需要重点介绍下:

  • 序号:Seq 序号,占 32 位,用来标识从 TCP 源端向目的端发送的字节流,发起方发送数据时对此进行标记。
  • 确认序号:Ack 序号,占 32 位,只有 ACK 标志位为 1 时,确认序号字段才有效,Ack=Seq+1。
  • 标志位:共 6 个,即 URG、ACK、PSH、RST、SYN、FIN 等,具体含义如下:
    • URG:紧急指针(urgent pointer)有效。
    • ACK:确认序号有效。
    • PSH:接收方应该尽快将这个报文交给应用层。
    • RST:重置连接。
    • SYN:发起一个新连接。
    • FIN:释放一个连接。

需要注意的是:不要将确认序号 Ack 与标志位中的 ACK 搞混了,确认方 Ack=发起方 Req+1,两端配对。