<br><br><div class="gmail_quote">On Wed, Sep 21, 2011 at 6:29 PM, Daniel Baluta <span dir="ltr">&lt;<a href="mailto:daniel.baluta@gmail.com">daniel.baluta@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hello,<br>
<br>
RFC2582, Section 4.2 says:<br>
<br>
&quot;... an ACK SHOULD be generated for at least every second<br>
full-sized segment, and MUST be generated within 500 ms<br>
of the arrival of the first unacknowledged packet. &quot;.<br>
<br>
<br>
I guess that the delayed ACK timeout is computed in tcp_send_delayed_ack:<br>
<br>
===<br>
void tcp_send_delayed_ack(struct sock *sk)<br>
{<br>
        struct inet_connection_sock *icsk = inet_csk(sk);<br>
        int ato = icsk-&gt;icsk_ack.ato;<br>
        unsigned long timeout;<br>
<br>
       /* .... */<br>
        /* Stay within the limit we were given */<br>
        timeout = jiffies + ato;<br>
====<br>
<br>
<br>
Can one explain what is the difference between TCP_DELACK_MIN and<br>
TCP_ATO_MIN, specifically if the timeout (ato) is always in the interval<br>
[TCP_DELACK_MIN, TCP_DELACK_MAX] ?<br>
<br>
I want to make the delayed ack timeout configurable as some guys tried<br>
here [1],<br>
so for this reason I plan to make TCP_DELACK_MIN and TCP_DELACK_MAX<br>
tunable via proc entries.<br>
<br>
thanks,<br>
Daniel.<br>
<br>
[1] <a href="http://kerneltrap.org/mailarchive/linux-netdev/2008/9/9/3245554" target="_blank">http://kerneltrap.org/mailarchive/linux-netdev/2008/9/9/3245554</a><br>
<br>
_______________________________________________<br>
Kernelnewbies mailing list<br>
<a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
<a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
</blockquote></div><br>Hi Daniel,<br><br>TCP in linux makes use of two modes for acking the data received.<br><br>1. Quick Ack : - Used at the start of the TCP connection so that the congestion window can grow fastly.<br>
2. Delayed Ack : - It moves to delayed ack mode, in which ack is sent for multiple packets.<br><br>TCP switches between the two modes depending on the congestion experienced.<br><br>In Quick Ack, Ack timeout interval (ato) is set to minimum i.e. TCP_ATO_MIN<br>
<br>while in Delayed Ack mode, TCP_DELACK_MIN is used for restarting/ resetting the timer.<br><br>Now the default value is of both the macros is same.<br><br>But if you want to make delayed ack timeout configurable, then I think you should give proc interface for TCP_DELACK_MIN.<br>
<br>Regards,<br>Rohan Puri<br>