[OpenAFS-devel] RX: why retain soft acked packets at the sender?

Rainer Toebbicke rtb@pclella.cern.ch
Mon, 10 Mar 2008 09:38:41 +0100


Looking at some of the RX performance problems that we see in 
particular with respect to single stream throughput I stumbled across 
the following:

upon receipt of an ACK the sender retains all ACKed packets above 
[t]first in the transmission queue (i.e. until they're hard acked).

The question is: why? The packet has been received by the RX stack at 
the receiver, albeit not delivered to the "consumer". There is 
certainly a point throttling transfer at the sender for congestion, 
hence transmission and congestion windows, but why would the sender 
ever need to resend a packet to a receiver who's already got it?

And if it could... what would be the mechanism? I only see the 
possibility of explicitly nacking the packet later again, but unless 
the receiver would drop a packet already received this can't be as far 
as I can see, and I don't see the latter happening. Am I struck with 
blindness or is this ancient history?

Given that long queues in conjunction with big window sizes are a drag 
I plan to short-circuit this. Any comments?


-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Rainer Toebbicke
European Laboratory for Particle Physics(CERN) - Geneva, Switzerland
Phone: +41 22 767 8985       Fax: +41 22 767 7155