General list for discussing Bufferbloat
 help / color / mirror / Atom feed
* [Bloat] enabling outgoing tcp-ecn by default for ipv6 links
@ 2012-12-27  2:37 Hannes Frederic Sowa
  2012-12-27  5:04 ` Michael Richardson
  2012-12-27 20:10 ` Rick Jones
  0 siblings, 2 replies; 7+ messages in thread
From: Hannes Frederic Sowa @ 2012-12-27  2:37 UTC (permalink / raw)
  To: bloat

Hello!

I am thinking about advancing the ipv4/tcp_ecn knob in linux to
distinguish between ipv4 and ipv6 transport and enable ecn signaling
on outgoing ipv6 connections by default (for me, at least). I am
currently doing so with the help of iptables (echo 1 > tcp_ecn and -j
ECN --ecn-tcp-remove).

Currently linux does only respond to ecn signaling but does not actively
try to signal ecn capabilities by default because of the high(?) fail rate
of connections in ipv4 land. I wonder if this situation has improved in
ipv6 world because I assume most providers have upgraded their gear in
recent times to support this shiny new protocol.

Does someone know about recent data if such a change would be reasonable?

Btw, has someone looked at RFC5562 - Adding Explicit Congestion
Notification (ECN) Capability to TCP's SYN/ACK Packets;
experimental? Adam Langley has provided a patch for linux enabling ecn on
syn/ack packets some while ago[1].  This seems to be a nice addition but
I fear for new problems arising because of buggy routers. Perhaps after the
retransmit of the initial syn without the ecn-capable codepoint one could
mark this connection as non-ecn compatible in the destination cache to
reduce further latencies on follow-up syns (kind of path ecn discovery).

Greetings,

  Hannes

[1] https://www.ietf.org/mail-archive/web/tcpm/current/msg03988.html


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

* Re: [Bloat] enabling outgoing tcp-ecn by default for ipv6 links
  2012-12-27  2:37 [Bloat] enabling outgoing tcp-ecn by default for ipv6 links Hannes Frederic Sowa
@ 2012-12-27  5:04 ` Michael Richardson
  2012-12-27  5:53   ` Hannes Frederic Sowa
  2012-12-31 17:37   ` Hannes Frederic Sowa
  2012-12-27 20:10 ` Rick Jones
  1 sibling, 2 replies; 7+ messages in thread
From: Michael Richardson @ 2012-12-27  5:04 UTC (permalink / raw)
  To: Hannes Frederic Sowa; +Cc: bloat

[-- Attachment #1: Type: text/plain, Size: 1113 bytes --]


>>>>> "Hannes" == Hannes Frederic Sowa <hannes@stressinduktion.org> writes:
    Hannes> I am thinking about advancing the ipv4/tcp_ecn knob in linux to
    Hannes> distinguish between ipv4 and ipv6 transport and enable ecn signaling
    Hannes> on outgoing ipv6 connections by default (for me, at least). I am
    Hannes> currently doing so with the help of iptables (echo 1 > tcp_ecn and -j
    Hannes> ECN --ecn-tcp-remove).

I think it's definitely worth splitting the sysctl, so that we can at
least learn if it can fly in v6 land.  I'd turn it on.

I suggest that doing this without a way to report on a path/IP/vendor
that is screwing things up is a mistake.

http://urchin.earth.li/ecn/

went inactive again in 2011.

-- 
]       He who is tired of Weird Al is tired of life!           |  firewalls  [
]   Michael Richardson, Sandelman Software Works, Ottawa, ON    |net architect[
] mcr@sandelman.ottawa.on.ca http://www.sandelman.ottawa.on.ca/ |device driver[
   Kyoto Plus: watch the video <http://www.youtube.com/watch?v=kzx1ycLXQSE>
	               then sign the petition. 


[-- Attachment #2: Type: application/pgp-signature, Size: 307 bytes --]

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

* Re: [Bloat] enabling outgoing tcp-ecn by default for ipv6 links
  2012-12-27  5:04 ` Michael Richardson
@ 2012-12-27  5:53   ` Hannes Frederic Sowa
  2012-12-31 17:37   ` Hannes Frederic Sowa
  1 sibling, 0 replies; 7+ messages in thread
From: Hannes Frederic Sowa @ 2012-12-27  5:53 UTC (permalink / raw)
  To: Michael Richardson; +Cc: bloat

On Thu, Dec 27, 2012 at 12:04:57AM -0500, Michael Richardson wrote:
> >>>>> "Hannes" == Hannes Frederic Sowa <hannes@stressinduktion.org> writes:
>     Hannes> I am thinking about advancing the ipv4/tcp_ecn knob in linux to
>     Hannes> distinguish between ipv4 and ipv6 transport and enable ecn signaling
>     Hannes> on outgoing ipv6 connections by default (for me, at least). I am
>     Hannes> currently doing so with the help of iptables (echo 1 > tcp_ecn and -j
>     Hannes> ECN --ecn-tcp-remove).
> 
> I think it's definitely worth splitting the sysctl, so that we can at
> least learn if it can fly in v6 land.  I'd turn it on.
> 
> I suggest that doing this without a way to report on a path/IP/vendor
> that is screwing things up is a mistake.
> 
> http://urchin.earth.li/ecn/
> 
> went inactive again in 2011.

What data would be needed? Some website where one could copy&paste
traceroutes (with tcp/ecn enabled)? A reprobe mechanism? Some
correlation/dependence mechanisms?

Something like this could be a neat experiment for RIPE Atlas. It would
be nice to have such tests in the various implementations of looking
glass, too.

Greetings,

  Hannes


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

* Re: [Bloat] enabling outgoing tcp-ecn by default for ipv6 links
  2012-12-27  2:37 [Bloat] enabling outgoing tcp-ecn by default for ipv6 links Hannes Frederic Sowa
  2012-12-27  5:04 ` Michael Richardson
@ 2012-12-27 20:10 ` Rick Jones
  2012-12-27 21:25   ` Hannes Frederic Sowa
  1 sibling, 1 reply; 7+ messages in thread
From: Rick Jones @ 2012-12-27 20:10 UTC (permalink / raw)
  To: Hannes Frederic Sowa; +Cc: bloat

On 12/26/2012 06:37 PM, Hannes Frederic Sowa wrote:
> Hello!
>
> I am thinking about advancing the ipv4/tcp_ecn knob in linux to
> distinguish between ipv4 and ipv6 transport and enable ecn signaling
> on outgoing ipv6 connections by default (for me, at least). I am
> currently doing so with the help of iptables (echo 1 > tcp_ecn and -j
> ECN --ecn-tcp-remove).

Any particular reason you aren't willing/able to just flip the 
net.ipv4.tcp_ecn sysctl to turn it on for both?  FWIW, that is what I 
have done on netperf.org, with an eye towards seeing what ceases 
working.  Thusfar things seem OK.  At least I've not had anyone contact 
me to say "Hey! Why can't I reach netperf.org!" ...

happy benchmarking,

rick jones

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

* Re: [Bloat] enabling outgoing tcp-ecn by default for ipv6 links
  2012-12-27 20:10 ` Rick Jones
@ 2012-12-27 21:25   ` Hannes Frederic Sowa
  0 siblings, 0 replies; 7+ messages in thread
From: Hannes Frederic Sowa @ 2012-12-27 21:25 UTC (permalink / raw)
  To: Rick Jones; +Cc: bloat

On Thu, Dec 27, 2012 at 12:10:35PM -0800, Rick Jones wrote:
> On 12/26/2012 06:37 PM, Hannes Frederic Sowa wrote:
> >I am thinking about advancing the ipv4/tcp_ecn knob in linux to
> >distinguish between ipv4 and ipv6 transport and enable ecn signaling
> >on outgoing ipv6 connections by default (for me, at least). I am
> >currently doing so with the help of iptables (echo 1 > tcp_ecn and -j
> >ECN --ecn-tcp-remove).
> 
> Any particular reason you aren't willing/able to just flip the 
> net.ipv4.tcp_ecn sysctl to turn it on for both?  FWIW, that is what I 
> have done on netperf.org, with an eye towards seeing what ceases 
> working.  Thusfar things seem OK.  At least I've not had anyone contact 
> me to say "Hey! Why can't I reach netperf.org!" ...

But ecn is not employed as long as your clients won't signal ecn
support, too. So there is nothing to break.

I have a squid server where I actually needed to disable outgoing ecn
support because of reachability problems to a german university last
year. This seems to be fixed this year (and they have enabled ipv6,
thus supporting my assumption :) ). I suppose there are still many
ecn-blackholes rendering enabling ecn by default unlikely. I am a bit
more confident this could work some day for ipv6.

Greetings,

  Hannes


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

* Re: [Bloat] enabling outgoing tcp-ecn by default for ipv6 links
  2012-12-27  5:04 ` Michael Richardson
  2012-12-27  5:53   ` Hannes Frederic Sowa
@ 2012-12-31 17:37   ` Hannes Frederic Sowa
  2015-02-27 15:52     ` Richard Scheffenegger
  1 sibling, 1 reply; 7+ messages in thread
From: Hannes Frederic Sowa @ 2012-12-31 17:37 UTC (permalink / raw)
  To: Michael Richardson; +Cc: bloat

Hello!

On Thu, Dec 27, 2012 at 12:04:57AM -0500, Michael Richardson wrote:
> >>>>> "Hannes" == Hannes Frederic Sowa <hannes@stressinduktion.org> writes:
>     Hannes> I am thinking about advancing the ipv4/tcp_ecn knob in linux to
>     Hannes> distinguish between ipv4 and ipv6 transport and enable ecn signaling
>     Hannes> on outgoing ipv6 connections by default (for me, at least). I am
>     Hannes> currently doing so with the help of iptables (echo 1 > tcp_ecn and -j
>     Hannes> ECN --ecn-tcp-remove).
> 
> I think it's definitely worth splitting the sysctl, so that we can at
> least learn if it can fly in v6 land.  I'd turn it on.

I had some spare time and posted a patch:
<http://article.gmane.org/gmane.linux.network/253691>

> I suggest that doing this without a way to report on a path/IP/vendor
> that is screwing things up is a mistake.
> 
> http://urchin.earth.li/ecn/
> 
> went inactive again in 2011.

Will look into this now.

Greetings,

  Hannes


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

* Re: [Bloat] enabling outgoing tcp-ecn by default for ipv6 links
  2012-12-31 17:37   ` Hannes Frederic Sowa
@ 2015-02-27 15:52     ` Richard Scheffenegger
  0 siblings, 0 replies; 7+ messages in thread
From: Richard Scheffenegger @ 2015-02-27 15:52 UTC (permalink / raw)
  To: Hannes Frederic Sowa, Michael Richardson; +Cc: bloat

Hi,

Disclaimer: As one of the co-authors, I can point you to
Trammell, B., Kühlewind, M., Boppart, D., Learmonth, I., Fairhurst, G., & 
Scheffenegger, R.
Enabling Internet-Wide Deployment of Explicit Congestion Notification.
http://www.tik.ee.ethz.ch/file/55c228c89bd841b6f85542c58781b2dc/ecn-pam15.pdf


For Linux, making that change shoudl be relatively save for the client - if 
it features a robust fall-back mechanism (if the initial two SYN,ECE,CWR are 
not responded two, Linux will try a regular SYN; patch is available, haven't 
checked if it went mainline [1]). So, the impact of a blackholed ECN 
path/destination should be nothing more than longer session handshake. 
However, going from a few 10s of ms, to a few seconds worst case, for each 
TCP session would be noticable to users...

Unfortunately, enabling ECN on the TCP layer itself won't automagically 
*really* enable ECN...

While the TCP signalling seems to be quite reasonable (as long as you are 
not trying to talk to the majority of the top Alexa100 sites... you know who 
you are), the IP ECN signaling seems to be broken in a larger scale - but 
less so for IPv6. See Section 4.2. The number of (non customer edge) devices 
that actually mark seems to be near zero (indicating that even when (W)RED 
or any other AQM has been enabled, ECN marking has not... While the number 
of meddleboxes that actively prevent IP ECN signalling seems staggering with 
all kinds (including the ones you cann't readily think of) of odd behavior.

However, since this is a chicken-and-egg problem, if the ECN signal loop on 
Layer 4 is enabled (TCP, SCTP, DCCP all support ECN signal feedback in L4), 
I'm all for enabling this on the end hosts, and push the meddlebox vendors 
to fix their gear - many of which haven't noted that IPv4 TOS went out of 
fashion near 20 years ago (now DiffServ / ECN).

Hope this helps!

Best regards,
  Richard

[1] Kuehlewind, M. and B. Trammell, "A Mechanism for ECN Path
              Probing and Fallback", draft-kuehlewind-tcpm-ecn-
              fallback-01 (work in progress), September 2013.

----- Original Message ----- 
From: "Hannes Frederic Sowa" <hannes@stressinduktion.org>
To: "Michael Richardson" <mcr@sandelman.ca>
Cc: <bloat@lists.bufferbloat.net>
Sent: Monday, December 31, 2012 6:37 PM
Subject: Re: [Bloat] enabling outgoing tcp-ecn by default for ipv6 links


> Hello!
>
> On Thu, Dec 27, 2012 at 12:04:57AM -0500, Michael Richardson wrote:
>> >>>>> "Hannes" == Hannes Frederic Sowa <hannes@stressinduktion.org> 
>> >>>>> writes:
>>     Hannes> I am thinking about advancing the ipv4/tcp_ecn knob in linux 
>> to
>>     Hannes> distinguish between ipv4 and ipv6 transport and enable ecn 
>> signaling
>>     Hannes> on outgoing ipv6 connections by default (for me, at least). I 
>> am
>>     Hannes> currently doing so with the help of iptables (echo 1 > 
>> tcp_ecn and -j
>>     Hannes> ECN --ecn-tcp-remove).
>>
>> I think it's definitely worth splitting the sysctl, so that we can at
>> least learn if it can fly in v6 land.  I'd turn it on.
>
> I had some spare time and posted a patch:
> <http://article.gmane.org/gmane.linux.network/253691>
>
>> I suggest that doing this without a way to report on a path/IP/vendor
>> that is screwing things up is a mistake.
>>
>> http://urchin.earth.li/ecn/
>>
>> went inactive again in 2011.
>
> Will look into this now.
>
> Greetings,
>
>  Hannes
>
> _______________________________________________
> Bloat mailing list
> Bloat@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat 


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

end of thread, other threads:[~2015-02-27 15:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-27  2:37 [Bloat] enabling outgoing tcp-ecn by default for ipv6 links Hannes Frederic Sowa
2012-12-27  5:04 ` Michael Richardson
2012-12-27  5:53   ` Hannes Frederic Sowa
2012-12-31 17:37   ` Hannes Frederic Sowa
2015-02-27 15:52     ` Richard Scheffenegger
2012-12-27 20:10 ` Rick Jones
2012-12-27 21:25   ` Hannes Frederic Sowa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox