[e2e] Some questions about TCP.

Detlef Bosau detlef.bosau at web.de
Tue Nov 24 03:44:06 PST 2009

Dominik Kaspar wrote:
> Hi Detlef,
> Maybe the answer to your questions is that a DupACK never contains a
> payload. At least that is what a colleague and I could find in the
> Linux source code. I doubt you will find a reference in RFCs. The only
> hint that the RFC 2581 gives me, is the word "immediate" in the
> sentence "A TCP receiver SHOULD send an immediate duplicate ACK when
> an out-of-order segment arrives". I assume that "immediate" implies
> somehow a quickly sent "bare" ACK and the absence of a payload...

However, this requires to drop down the last sent acknowledgement at the 
receiver side in order to determine, whether a receiver sends a "new" 
ack or a "dup" ack. Is this correct?

> FLAG_NOT_DUPACK defines the conditions of when a segment is not a
> duplicate acknowledgment:
> http://www.gelato.unsw.edu.au/lxr/source/net/ipv4/tcp_input.c#L105
> This might also answer your question about what happens in a scenario
> with extreme difference in up- and downlink speeds (like ADSL). The
> numerous data packets that are traveling over the fast downlink may
> acknowledge the same data, which might appear to be DupACKs, but they
> all contain a payload, therefore, they are not treated as DupACKs.
> Not sure if that was of any help...

I'm still thinking ;-)

At least (after having slept one night over it ;-)) it seems to place 
the burden of discriminating new acks and dup acks on the receiver, correct?

> Greetings,
> Dominik

Detlef Bosau            Galileistraße 30        70565 Stuttgart
phone: +49 711 5208031  mobile: +49 172 6819937 skype: detlef.bosau     
ICQ: 566129673          detlef.bosau at web.de     http://www.detlef-bosau.de                      

More information about the end2end-interest mailing list