[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
--
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