netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* TCP Appropriate Byte Counting per default off
@ 2010-03-03  8:21 Alexander Zimmermann
  2010-03-03  8:48 ` Ilpo Järvinen
  2010-03-03  8:52 ` David Miller
  0 siblings, 2 replies; 4+ messages in thread
From: Alexander Zimmermann @ 2010-03-03  8:21 UTC (permalink / raw)
  To: David Miller, ilpo.jarvinen@helsinki.fi J?rvinen; +Cc: netdev

Hi David, hi Ilpo,

I wonder why ABC is off per default? What are the reasons?
Should we turn it on per default?

>From algorithmic point of view I see no flaws just
benefits.

With RFC5681 ABC is recommended.
OSX uses ABC per default.

Alex

//
// Dipl.-Inform. Alexander Zimmermann
// Department of Computer Science, Informatik 4
// RWTH Aachen University
// Ahornstr. 55, 52056 Aachen, Germany
// phone: (49-241) 80-21422, fax: (49-241) 80-22220
// email: zimmermann@cs.rwth-aachen.de
// web: http://www.umic-mesh.net
//


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

* Re: TCP Appropriate Byte Counting per default off
  2010-03-03  8:21 TCP Appropriate Byte Counting per default off Alexander Zimmermann
@ 2010-03-03  8:48 ` Ilpo Järvinen
  2010-03-03  9:33   ` Alexander Zimmermann
  2010-03-03  8:52 ` David Miller
  1 sibling, 1 reply; 4+ messages in thread
From: Ilpo Järvinen @ 2010-03-03  8:48 UTC (permalink / raw)
  To: Alexander Zimmermann
  Cc: David Miller, ilpo.jarvinen@helsinki.fi J?rvinen, Netdev

On Wed, 3 Mar 2010, Alexander Zimmermann wrote:

> Hi David, hi Ilpo,
> 
> I wonder why ABC is off per default? What are the reasons?
> Should we turn it on per default?
> 
> From algorithmic point of view I see no flaws just
> benefits.
> 
> With RFC5681 ABC is recommended.
> OSX uses ABC per default.

As Alexey once put it, ABC is very BSD specific algorithm.

Out of two goals of ABC, protection against split ACKs is achieved in 
Linux by other means (see tcp_clean_rtx_queue and flags it gives to 
elsewhere). Thus, you can kind of think that we do APC already :-). The 
other part, faster increase during slow start, isn't currently done though 
it would be relatively simple to implement (I think I even have some, 
possibly unfinished, patch to do that lying around somewhere I wrote 
someday). 

ABC is not that necessary when window is counted in packets. And besides 
that, it was found to somewhat hurt small segment flows. There are some 
messages in archives in the timeframe ABC was disabled (plus there might 
have been some even older than that).

-- 
 i.

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

* Re: TCP Appropriate Byte Counting per default off
  2010-03-03  8:21 TCP Appropriate Byte Counting per default off Alexander Zimmermann
  2010-03-03  8:48 ` Ilpo Järvinen
@ 2010-03-03  8:52 ` David Miller
  1 sibling, 0 replies; 4+ messages in thread
From: David Miller @ 2010-03-03  8:52 UTC (permalink / raw)
  To: zimmermann; +Cc: ilpo.jarvinen, netdev

From: Alexander Zimmermann <zimmermann@nets.rwth-aachen.de>
Date: Wed, 03 Mar 2010 09:21:44 +0100

> I wonder why ABC is off per default? What are the reasons?
> Should we turn it on per default?

Is it so much work to do some research and look at what
was said when the default was changed to off?

Really?

There are also relevant discussions on this mailing list
during the time period surrounding when this change went
in, Sept 13th, 2006

commit b3a8a40da5751525936c88f60bbc6a007f9eee37
Author: Stephen Hemminger <shemminger@osdl.org>
Date:   Wed Sep 13 19:51:02 2006 -0700

    [TCP]: Turn ABC off.
    
    Turn Appropriate Byte Count off by default because it unfairly
    penalizes applications that do small writes.  Add better documentation
    to describe what it is so users will understand why they might want to
    turn it on.
    
    Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
index 3e0c017..90ed781 100644
--- a/Documentation/networking/ip-sysctl.txt
+++ b/Documentation/networking/ip-sysctl.txt
@@ -102,9 +102,15 @@ inet_peer_gc_maxtime - INTEGER
 TCP variables: 
 
 tcp_abc - INTEGER
-	Controls Appropriate Byte Count defined in RFC3465. If set to
-	0 then does congestion avoid once per ack. 1 is conservative
-	value, and 2 is more agressive.
+	Controls Appropriate Byte Count (ABC) defined in RFC3465.
+	ABC is a way of increasing congestion window (cwnd) more slowly
+	in response to partial acknowledgments.
+	Possible values are:
+		0 increase cwnd once per acknowledgment (no ABC)
+		1 increase cwnd once per acknowledgment of full sized segment
+		2 allow increase cwnd by two if acknowledgment is
+		  of two segments to compensate for delayed acknowledgments.
+	Default: 0 (off)
 
 tcp_syn_retries - INTEGER
 	Number of times initial SYNs for an active TCP connection attempt
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 111ff39..159fa3f 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -89,7 +89,7 @@ int sysctl_tcp_frto;
 int sysctl_tcp_nometrics_save;
 
 int sysctl_tcp_moderate_rcvbuf = 1;
-int sysctl_tcp_abc = 1;
+int sysctl_tcp_abc;
 
 #define FLAG_DATA		0x01 /* Incoming frame contained data.		*/
 #define FLAG_WIN_UPDATE		0x02 /* Incoming ACK was a window update.	*/

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

* Re: TCP Appropriate Byte Counting per default off
  2010-03-03  8:48 ` Ilpo Järvinen
@ 2010-03-03  9:33   ` Alexander Zimmermann
  0 siblings, 0 replies; 4+ messages in thread
From: Alexander Zimmermann @ 2010-03-03  9:33 UTC (permalink / raw)
  To: Ilpo Järvinen; +Cc: David Miller, Netdev


Am 03.03.2010 um 09:48 schrieb Ilpo Järvinen:

> On Wed, 3 Mar 2010, Alexander Zimmermann wrote:
> 
>> Hi David, hi Ilpo,
>> 
>> I wonder why ABC is off per default? What are the reasons?
>> Should we turn it on per default?
>> 
>> From algorithmic point of view I see no flaws just
>> benefits.
>> 
>> With RFC5681 ABC is recommended.
>> OSX uses ABC per default.
> 
> As Alexey once put it, ABC is very BSD specific algorithm.
> 
> Out of two goals of ABC, protection against split ACKs is achieved in 
> Linux by other means (see tcp_clean_rtx_queue and flags it gives to 
> elsewhere). Thus, you can kind of think that we do APC already :-). The 
> other part, faster increase during slow start, isn't currently done though 
> it would be relatively simple to implement (I think I even have some, 
> possibly unfinished, patch to do that lying around somewhere I wrote 
> someday).

Related to that is a scenario that I have in mind: reverse path reordering.
With ABC we are more robust, ie, open cwnd as normal during SS 

> 
> ABC is not that necessary when window is counted in packets. And besides 
> that, it was found to somewhat hurt small segment flows. There are some 
> messages in archives in the timeframe ABC was disabled (plus there might 
> have been some even older than that).
> 
> -- 
> i.

//
// Dipl.-Inform. Alexander Zimmermann
// Department of Computer Science, Informatik 4
// RWTH Aachen University
// Ahornstr. 55, 52056 Aachen, Germany
// phone: (49-241) 80-21422, fax: (49-241) 80-22220
// email: zimmermann@cs.rwth-aachen.de
// web: http://www.umic-mesh.net
//


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

end of thread, other threads:[~2010-03-03  9:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-03  8:21 TCP Appropriate Byte Counting per default off Alexander Zimmermann
2010-03-03  8:48 ` Ilpo Järvinen
2010-03-03  9:33   ` Alexander Zimmermann
2010-03-03  8:52 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).