I have looked through other questions on here involving the relevant topics, but I am still not clear on this.
I have just been reading this explanation of TCP sequence & acknowledgment numbers.
About half-way down there is this diagram:
Near the end of the page, the explanation of the final step, step 4, includes this text:
Note that the sequence number of the segment in line 4 is the same as
in line 3 because the ACK does not occupy sequence number space.So keep in mind that any packets generated, which are simply
acknowledgments (in other words, have only the ACK flag set and
contain no data) to previously received packets, never increment the
sequence number.
I am currently struggling to understand this:
- I can clearly see that the sequence number in the packet sent in step
4 has the same sequence number as the packet sent in step 3. - It is also clear to see that the acknowledgement number is also the same in these steps
- Basically, the author seems to be saying that the step 4 packet is identical to the step 3 packet, except that the step 4 packet contains data/payload.
With regards to my first two points, is this correct?(as in has the author got it right?)
With regards to my third point, is this correct?
And finally, assuming the answer to the first two questions is basically 'yes', then is the reason that these numbers are the same in both packets because there hasn't been any intervening packet received from the Gateway server?
I am seeking general clarification on this.
Best Answer
PSH
flag set.Packet 3 is sort of redundant. The TCP layer could decide to wait a few microseconds before sending it and go straight to packet 4, if the application did write something to the socket during those microseconds.
I can recommend using Wireshark to inspect real traffic on your computer, that may help get an idea of what is going on.