[e2e] Is DUPACK filtering even _harmful_? Re: Some questions about TCP.

Detlef Bosau detlef.bosau at web.de
Wed Jan 20 03:23:29 PST 2010

Ethan Blanton wrote:
>> Not quite, because only pure ACKs can be "DupAcks", refer to RFC 5681.
> I'm quite familiar with RFC 5681.  ;-)

Oh, I forgot about it.....

I apologize, Highness ;-)

However, you gave an helpful answer to my question.

Basically, you point to a scenario where missing _acks_ lead to a 
livelock. Correct?

O.k., then you are correct and we must consider "old" packets out of 
sequence, becuase
- a segment _beyond_ the ack point as sean by the receiver indicates one 
or more lost _segments_.
- a segment _before_                                
""                                           one or more lost _ACKs_.

The latter will end up in a livelock, as long as the sender does not 
recognize the correct ack point and hence the receiver MUST signal 
exactly this.

Luckily, packet duplication does not cause a problem here, because as 
soon as the sender got the correct ack point, there may be any number of 
copies of the recognized ACKs on the net: As the cumulative ack point as 
seen by the sender has changed, these ACKs are no longer DupAcks 
followed by your definition given in RFC 5681. Correct?

O.k., now for something completely different. (No, I don't sell parrots.)

When my understanding is correct, the DupAck filtering as done in Snoop 
is actually harmful:
IIRC, the SNOOP agent looks for acks on L2 and in case of a missing ACK, 
it may retransmit a cached segment.
Actually, this may cause MH to emit an ACK, as you said in your post, 
and actually, IIRC the SNOOP agent deletes duplicates of this ACK.

Now: _First_, this will go wrong if the first (the "tolerated") ACK does 
not reach FH. In that case, the first ACK is lost on the path, the next 
ones are killed by the SNOOP agent - and MH will run into a livelock.

_Second_ BS does not know whether an ACK by MH is a DupAck or not, 
because whether a pure ACK is a DupAck or not depends, among the other 
conditions mentioned in your RFC, upon the cumulative ack point as seen 
by the receiver - which is not known to the SNOOP Agent.

Hence, in summary, packet duplication does not lead to DUPACK confusion, 
_AND_ any agent, middlebox, router, whatever must not delete ACKs, 
because this may cause severe harm.

Do you agree here?


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