delayed ack timer, slow start and LRO
From: jean-pascal billaud <hidden>
Date: 2008-07-22 22:01:29
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