我无法弄清楚为什么当 TCP 段仅包含标头时,例如在建立 TCP 连接的三次握手中的第三段中,纯 ACK 会将发送主机的序列号加 1。
例如:
- Host1 向 Host2 发送一个 SYN 段(seq = ISN(c), options)。
- Host2 将 SYN+ACK 段(seq = ISN(s), ACK = ISN(c)+1, options)发送回 Host1。
- 主机 1 将最后一个 ACK 段(seq = ISN(c)
+1
, ACK = ISN(s)+1)发送到服务器以完成握手。
但是第三段中没有包含数据,这意味着 Host1 不会向通信路径注入更多字节。发送的只是标题。为什么它的 seq 与第 1 段的不同?