All of lore.kernel.org
 help / color / mirror / Atom feed
* TCP_DELACK_MIN vs TCP_ATO_MIN
@ 2011-09-21 12:59 ` Daniel Baluta
  0 siblings, 0 replies; 8+ messages in thread
From: Daniel Baluta @ 2011-09-21 12:59 UTC (permalink / raw)
  To: netdev, kernelnewbies

Hello,

RFC2582, Section 4.2 says:

"... an ACK SHOULD be generated for at least every second
full-sized segment, and MUST be generated within 500 ms
of the arrival of the first unacknowledged packet. ".


I guess that the delayed ACK timeout is computed in tcp_send_delayed_ack:

===
void tcp_send_delayed_ack(struct sock *sk)
{
        struct inet_connection_sock *icsk = inet_csk(sk);
        int ato = icsk->icsk_ack.ato;
        unsigned long timeout;

       /* .... */
        /* Stay within the limit we were given */
        timeout = jiffies + ato;
====


Can one explain what is the difference between TCP_DELACK_MIN and
TCP_ATO_MIN, specifically if the timeout (ato) is always in the interval
[TCP_DELACK_MIN, TCP_DELACK_MAX] ?

I want to make the delayed ack timeout configurable as some guys tried
here [1],
so for this reason I plan to make TCP_DELACK_MIN and TCP_DELACK_MAX
tunable via proc entries.

thanks,
Daniel.

[1] http://kerneltrap.org/mailarchive/linux-netdev/2008/9/9/3245554

^ permalink raw reply	[flat|nested] 8+ messages in thread

* TCP_DELACK_MIN vs TCP_ATO_MIN
@ 2011-09-21 12:59 ` Daniel Baluta
  0 siblings, 0 replies; 8+ messages in thread
From: Daniel Baluta @ 2011-09-21 12:59 UTC (permalink / raw)
  To: kernelnewbies

Hello,

RFC2582, Section 4.2 says:

"... an ACK SHOULD be generated for at least every second
full-sized segment, and MUST be generated within 500 ms
of the arrival of the first unacknowledged packet. ".


I guess that the delayed ACK timeout is computed in tcp_send_delayed_ack:

===
void tcp_send_delayed_ack(struct sock *sk)
{
        struct inet_connection_sock *icsk = inet_csk(sk);
        int ato = icsk->icsk_ack.ato;
        unsigned long timeout;

       /* .... */
        /* Stay within the limit we were given */
        timeout = jiffies + ato;
====


Can one explain what is the difference between TCP_DELACK_MIN and
TCP_ATO_MIN, specifically if the timeout (ato) is always in the interval
[TCP_DELACK_MIN, TCP_DELACK_MAX] ?

I want to make the delayed ack timeout configurable as some guys tried
here [1],
so for this reason I plan to make TCP_DELACK_MIN and TCP_DELACK_MAX
tunable via proc entries.

thanks,
Daniel.

[1] http://kerneltrap.org/mailarchive/linux-netdev/2008/9/9/3245554

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: TCP_DELACK_MIN vs TCP_ATO_MIN
  2011-09-21 12:59 ` Daniel Baluta
@ 2011-09-21 14:58   ` rohan puri
  -1 siblings, 0 replies; 8+ messages in thread
From: rohan puri @ 2011-09-21 14:58 UTC (permalink / raw)
  To: Daniel Baluta; +Cc: netdev, kernelnewbies


[-- Attachment #1.1: Type: text/plain, Size: 2036 bytes --]

On Wed, Sep 21, 2011 at 6:29 PM, Daniel Baluta <daniel.baluta@gmail.com>wrote:

> Hello,
>
> RFC2582, Section 4.2 says:
>
> "... an ACK SHOULD be generated for at least every second
> full-sized segment, and MUST be generated within 500 ms
> of the arrival of the first unacknowledged packet. ".
>
>
> I guess that the delayed ACK timeout is computed in tcp_send_delayed_ack:
>
> ===
> void tcp_send_delayed_ack(struct sock *sk)
> {
>        struct inet_connection_sock *icsk = inet_csk(sk);
>        int ato = icsk->icsk_ack.ato;
>        unsigned long timeout;
>
>       /* .... */
>        /* Stay within the limit we were given */
>        timeout = jiffies + ato;
> ====
>
>
> Can one explain what is the difference between TCP_DELACK_MIN and
> TCP_ATO_MIN, specifically if the timeout (ato) is always in the interval
> [TCP_DELACK_MIN, TCP_DELACK_MAX] ?
>
> I want to make the delayed ack timeout configurable as some guys tried
> here [1],
> so for this reason I plan to make TCP_DELACK_MIN and TCP_DELACK_MAX
> tunable via proc entries.
>
> thanks,
> Daniel.
>
> [1] http://kerneltrap.org/mailarchive/linux-netdev/2008/9/9/3245554
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies@kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>

Hi Daniel,

TCP in linux makes use of two modes for acking the data received.

1. Quick Ack : - Used at the start of the TCP connection so that the
congestion window can grow fastly.
2. Delayed Ack : - It moves to delayed ack mode, in which ack is sent for
multiple packets.

TCP switches between the two modes depending on the congestion experienced.

In Quick Ack, Ack timeout interval (ato) is set to minimum i.e. TCP_ATO_MIN

while in Delayed Ack mode, TCP_DELACK_MIN is used for restarting/ resetting
the timer.

Now the default value is of both the macros is same.

But if you want to make delayed ack timeout configurable, then I think you
should give proc interface for TCP_DELACK_MIN.

Regards,
Rohan Puri

[-- Attachment #1.2: Type: text/html, Size: 2732 bytes --]

[-- Attachment #2: Type: text/plain, Size: 169 bytes --]

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

^ permalink raw reply	[flat|nested] 8+ messages in thread

* TCP_DELACK_MIN vs TCP_ATO_MIN
@ 2011-09-21 14:58   ` rohan puri
  0 siblings, 0 replies; 8+ messages in thread
From: rohan puri @ 2011-09-21 14:58 UTC (permalink / raw)
  To: kernelnewbies

On Wed, Sep 21, 2011 at 6:29 PM, Daniel Baluta <daniel.baluta@gmail.com>wrote:

> Hello,
>
> RFC2582, Section 4.2 says:
>
> "... an ACK SHOULD be generated for at least every second
> full-sized segment, and MUST be generated within 500 ms
> of the arrival of the first unacknowledged packet. ".
>
>
> I guess that the delayed ACK timeout is computed in tcp_send_delayed_ack:
>
> ===
> void tcp_send_delayed_ack(struct sock *sk)
> {
>        struct inet_connection_sock *icsk = inet_csk(sk);
>        int ato = icsk->icsk_ack.ato;
>        unsigned long timeout;
>
>       /* .... */
>        /* Stay within the limit we were given */
>        timeout = jiffies + ato;
> ====
>
>
> Can one explain what is the difference between TCP_DELACK_MIN and
> TCP_ATO_MIN, specifically if the timeout (ato) is always in the interval
> [TCP_DELACK_MIN, TCP_DELACK_MAX] ?
>
> I want to make the delayed ack timeout configurable as some guys tried
> here [1],
> so for this reason I plan to make TCP_DELACK_MIN and TCP_DELACK_MAX
> tunable via proc entries.
>
> thanks,
> Daniel.
>
> [1] http://kerneltrap.org/mailarchive/linux-netdev/2008/9/9/3245554
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>

Hi Daniel,

TCP in linux makes use of two modes for acking the data received.

1. Quick Ack : - Used at the start of the TCP connection so that the
congestion window can grow fastly.
2. Delayed Ack : - It moves to delayed ack mode, in which ack is sent for
multiple packets.

TCP switches between the two modes depending on the congestion experienced.

In Quick Ack, Ack timeout interval (ato) is set to minimum i.e. TCP_ATO_MIN

while in Delayed Ack mode, TCP_DELACK_MIN is used for restarting/ resetting
the timer.

Now the default value is of both the macros is same.

But if you want to make delayed ack timeout configurable, then I think you
should give proc interface for TCP_DELACK_MIN.

Regards,
Rohan Puri
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20110921/5ca9867c/attachment.html 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: TCP_DELACK_MIN vs TCP_ATO_MIN
  2011-09-21 14:58   ` rohan puri
@ 2011-09-21 15:28     ` Daniel Baluta
  -1 siblings, 0 replies; 8+ messages in thread
From: Daniel Baluta @ 2011-09-21 15:28 UTC (permalink / raw)
  To: rohan puri; +Cc: netdev, kernelnewbies

> Now the default value is of both the macros is same.
>
> But if you want to make delayed ack timeout configurable, then I think you
> should give proc interface for TCP_DELACK_MIN.

Thanks Rohan. Then also I have to export TCP_DELACK_MAX since I think
ato cannot grow over this value.

thanks,
Daniel.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* TCP_DELACK_MIN vs TCP_ATO_MIN
@ 2011-09-21 15:28     ` Daniel Baluta
  0 siblings, 0 replies; 8+ messages in thread
From: Daniel Baluta @ 2011-09-21 15:28 UTC (permalink / raw)
  To: kernelnewbies

> Now the default value is of both the macros is same.
>
> But if you want to make delayed ack timeout configurable, then I think you
> should give proc interface for TCP_DELACK_MIN.

Thanks Rohan. Then also I have to export TCP_DELACK_MAX since I think
ato cannot grow over this value.

thanks,
Daniel.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: TCP_DELACK_MIN vs TCP_ATO_MIN
  2011-09-21 15:28     ` Daniel Baluta
@ 2011-09-22  4:01       ` rohan puri
  -1 siblings, 0 replies; 8+ messages in thread
From: rohan puri @ 2011-09-22  4:01 UTC (permalink / raw)
  To: Daniel Baluta; +Cc: netdev, kernelnewbies


[-- Attachment #1.1: Type: text/plain, Size: 439 bytes --]

On Wed, Sep 21, 2011 at 8:58 PM, Daniel Baluta <daniel.baluta@gmail.com>wrote:

> > Now the default value is of both the macros is same.
> >
> > But if you want to make delayed ack timeout configurable, then I think
> you
> > should give proc interface for TCP_DELACK_MIN.
>
> Thanks Rohan. Then also I have to export TCP_DELACK_MAX since I think
> ato cannot grow over this value.
>
> thanks,
> Daniel.
>
Yes Daniel.

Regards,
Rohan Puri

[-- Attachment #1.2: Type: text/html, Size: 778 bytes --]

[-- Attachment #2: Type: text/plain, Size: 169 bytes --]

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

^ permalink raw reply	[flat|nested] 8+ messages in thread

* TCP_DELACK_MIN vs TCP_ATO_MIN
@ 2011-09-22  4:01       ` rohan puri
  0 siblings, 0 replies; 8+ messages in thread
From: rohan puri @ 2011-09-22  4:01 UTC (permalink / raw)
  To: kernelnewbies

On Wed, Sep 21, 2011 at 8:58 PM, Daniel Baluta <daniel.baluta@gmail.com>wrote:

> > Now the default value is of both the macros is same.
> >
> > But if you want to make delayed ack timeout configurable, then I think
> you
> > should give proc interface for TCP_DELACK_MIN.
>
> Thanks Rohan. Then also I have to export TCP_DELACK_MAX since I think
> ato cannot grow over this value.
>
> thanks,
> Daniel.
>
Yes Daniel.

Regards,
Rohan Puri
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20110922/f4e1879a/attachment.html 

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-09-22  4:01 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-09-21 12:59 TCP_DELACK_MIN vs TCP_ATO_MIN Daniel Baluta
2011-09-21 12:59 ` Daniel Baluta
2011-09-21 14:58 ` rohan puri
2011-09-21 14:58   ` rohan puri
2011-09-21 15:28   ` Daniel Baluta
2011-09-21 15:28     ` Daniel Baluta
2011-09-22  4:01     ` rohan puri
2011-09-22  4:01       ` rohan puri

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.