I cannot figure out why a pure ACK will increment the sequence number of the sending host by 1 when the TCP segment contains only a header, such as in the third segment in a three-way handshake for establishing a TCP connection.
- Host1 sends a SYN segment (seq = ISN(c), options) to Host2.
- Host2 sends a SYN+ACK segment (seq = ISN(s), ACK = ISN(c)+1, options) back to Host1.
- Host1 sends the last ACK segment (seq = ISN(c)
+1, ACK = ISN(s)+1) to server to complete the handshake.
But there is no data contained in the 3rd segment, meaning Host1 does not inject more bytes into the communication path. What is being sent is the header only. Why would its
seq be different from segment 1?