Subject: delayed ack timer, slow start and LRO

From: jean-pascal billaud <[email-masked]>
Date: Tue, 22 Jul 2008 14:44:05 -0700

Hi,

I have a question related to the interaction between the delayed ack timer, slow start and LRO.

If the sender is doing a slow start, it is going to send one packet. The receiver's delayed ack timer is going to
kick in and when it expires it will send a ack.

Then the sender is going to send 2 packets now. LRO will aggregates them and the receiver's delayed ack timer is going
to kick in, hoping another packet will arrives which is not going to be the case. When the timer expires it is going to
send a ack.

The sender is now going to send 4 packets. LRO will aggregate them and the receiver's delayed ack timer is going to
kick in, hoping another packet will arrives which is not going to be the case. When the timer expires it is going to
send a ack.

The sender is now going to send ... So I am under the impression that due to the fact that LRO is aggregating packets,
the delayed ack timer will kick in every single time.

So how is this fixed in linux ? I believe that ABC implementation will fix this issue even if I am not completely sure
about that ?

Also as LRO adds some latency, it seems possible to me that the sender retransmission timer will expires before the 
delayed ack timer expires. In this case, how is this gonna work ? Is it possible that the sender will stay stuck in
its slow start trying to retransmit endlessly the same n packets ?

Can anyone help on that ?

thanks,

--jp