[e2e] Some questions about TCP.
perfgeek at mac.com
Mon Nov 23 07:47:25 PST 2009
On Nov 22, 2009, at 1:24 PM, Detlef Bosau wrote:
> Noel Chiappa wrote:
>> > 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.
> Argh! :-[
I always thought that without data one would call it a control
segment, or perhaps overhead :) A SYN or FIN segment can also flow
sans data, but they are not necessarily ACKs.
>> All TCP packets contain both i) an ack field (for acking
> Correct. So, basically I would expect acks to flow "piggypack" on
> the data packets.
> The problem occurs when you clock out several segments from a TCP
> peer. In that case, several segments / TCP packets will contain the
> same ack number.
> Now, the RFC states explicitly that a segment _MUST_ _NOT_ be
> acknowled more than once. So, how do we avoid
> incoming packets to be mistaken for dup acks?
IIRC the duplicate ACK test includes the advertised window holding
fixed. If the arriving segment updates the window, then it would not
qualify for a duplicate ACK. I have some other recollection about the
arriving segments being ack-only, but perhaps that is ancient recall
and things were updated?
there is no rest for the wicked, yet the virtuous have no pillows
More information about the end2end-interest