[e2e] Some questions about TCP.
jnc at mercury.lcs.mit.edu
Sun Nov 22 13:05:46 PST 2009
> From: Detlef Bosau <detlef.bosau at web.de>
> 1.: Recently, I was told, however I did not find a reference in some
> RFC, we had two distinct packet types in TCP:
> - those _with_ payload, which are _data_ _segments_,
> - those _without_ payload, which are _acknowledgements_.
> If this is correct, I would appreciate some reference.
No, not really. All TCP packets contain both i) an ack field (for acking
data bytes sent from the other end), and ii) provisions for carriage of
data. (Well, putting data in with a SYN is allowed, but is a bit odd.)
Iff there is bi-directional data flow, a packet with data in it (going in
one direction) can _also_ ack bytes received from the other side. An ack
packet is just a normal TCP data packet with 0 bytes of data in it. You
sometimes see the term 'ack packet' used to describe such packets.
More information about the end2end-interest