Re: [conex] New concepts text in draft-ietf-conex-concepts-uses

Mikael Abrahamsson <swmike@swm.pp.se> Tue, 19 July 2011 12:34 UTC

Return-Path: <swmike@swm.pp.se>
X-Original-To: conex@ietfa.amsl.com
Delivered-To: conex@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 11FE121F8906 for <conex@ietfa.amsl.com>; Tue, 19 Jul 2011 05:34:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.072
X-Spam-Level:
X-Spam-Status: No, score=-2.072 tagged_above=-999 required=5 tests=[AWL=-0.473, BAYES_00=-2.599, J_BACKHAIR_33=1]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TLGthG32XryK for <conex@ietfa.amsl.com>; Tue, 19 Jul 2011 05:34:11 -0700 (PDT)
Received: from uplift.swm.pp.se (ipv6.swm.pp.se [IPv6:2a00:801::f]) by ietfa.amsl.com (Postfix) with ESMTP id E86BE21F88B7 for <conex@ietf.org>; Tue, 19 Jul 2011 05:34:10 -0700 (PDT)
Received: by uplift.swm.pp.se (Postfix, from userid 501) id D0BB09C; Tue, 19 Jul 2011 14:34:09 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by uplift.swm.pp.se (Postfix) with ESMTP id CF7149A; Tue, 19 Jul 2011 14:34:09 +0200 (CEST)
Date: Tue, 19 Jul 2011 14:34:09 +0200
From: Mikael Abrahamsson <swmike@swm.pp.se>
To: John Leslie <john@jlc.net>
In-Reply-To: <20110719120522.GE53567@verdi>
Message-ID: <alpine.DEB.2.00.1107191409190.20159@uplift.swm.pp.se>
References: <201107061057.p66Av11f020498@bagheera.jungle.bt.co.uk> <9510D26531EF184D9017DF24659BB87F32E2D33CE2@EMV65-UKRD.domain1.systemhost.net> <7.1.0.9.2.20110707180350.078f2a60@bt.com> <201107111714.p6BHEG5t016930@bagheera.jungle.bt.co.uk> <20110713163314.GE2822@verdi> <201107181828.p6IISmh9027403@bagheera.jungle.bt.co.uk> <20110718193536.GD53567@verdi> <002e01cc458a$8a39f800$9eade800$@com> <alpine.DEB.2.00.1107190806300.20159@uplift.swm.pp.se> <20110719120522.GE53567@verdi>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
Organization: People's Front Against WWW
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset="US-ASCII"; format="flowed"
Cc: conex@ietf.org
Subject: Re: [conex] New concepts text in draft-ietf-conex-concepts-uses
X-BeenThere: conex@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Congestion Exposure working group discussion list <conex.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/conex>, <mailto:conex-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/conex>
List-Post: <mailto:conex@ietf.org>
List-Help: <mailto:conex-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/conex>, <mailto:conex-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2011 12:34:12 -0000

On Tue, 19 Jul 2011, John Leslie wrote:

>   But if an ingress policer is close enough to the source it needn't be 
> flow-aware -- the user is in the best position to balance demands of 
> different flows, and the policer merely needs to enforce an overall 
> limit.

I don't see the need for anything more than we have today then? What would 
a conex enabled policer give if it's one policer per access port anyway? 
And how would it work when it's connected to an ISP<->ISP peering port?

>   If, OTOH, various users are aggregated before the ingress policer,
> the ingress policer is in a very poor position to sort them out --
> especially with forging of source addresses being so easy. I think we're
> wasting our time to try.

I always thought the policer acted on aggregation ports, ie for several 
users.

>> Show congestion to everybody, the user and ISP alike.
>
>   Do you mean something beyond simply having in the IP packet in a
> well-known place? If so, what?

I'm talking the congestion signals (re-ECN etc) that seems to be the 
centarl goal of ConEx.

>> I would like to see it also differentiate between self-congestion
>> (access link) and shared-link congestion (everything else than the
>> access link), but I have no idea how to do this.
>
>   Neither do I... nor do I see any benefit. At any point, it's trivial
> to distinguish upstream from downstream.

There is tremendous benefit from differentiating "my access link is 
congesting because *I* am using it" to "my ISP doesn't have enough 
capacity so because of *others* I can't use my full access speed", for the 
user point of view.

>   Oh, but we do. Any congestion on the return-path from receiver to
> sender is Somebody-Else's-Problem.

I don't agree at all. If someone is dropping the traffic I'm about to 
receive, I want to know about it.

>> Should we give guidance to how the IP stack should expose this
>> information to the user?
>
>   I don't understand the question.

I want to empower the user with knowledge about congestion. I thought this 
was a central goal of ConEx, to *expose* congestion.

>   In principle, an ISP could entirely avoid congestion of the first: in 
> practice, most come "close enough". But for the second, it's quite 
> impossible to avoid congestion _under_some_conditions_ where the 
> receiving customer is "offered" traffic (often from diverse sources) 
> greater than his link can handle.

An ISP can certainly try, and I don't agree that this is "impossible". Of 
course the congestion will be destination/flow-dependent, but this is 
something that has to be taken into account.

>   The receiver already has the information on incoming congestion
> without ConEx. The sender _would_ have an additional signal from
> ConEx; but it's unlikely it will tell him much about outgoing
> congestion _within_ his ISP's control.

Well, even if the information is already available, it's not exposed to 
the user.

>   Do you have suggestions on what would help?

So, for core links, my suggestion is to use WRED and drop/set ECN at a 
certain queue depth, for instance 20-30 ms queue depth. For access links, 
I'd like to see "fair queuing" (RFC970) enabled on a lot more ADSL/cable 
modems/Wifi routers, and also in hosts.

RFC1254 also lists different ways of handling this. Generally, I'd say not 
much of this is actually in use on the Internet today, 25+ years later :P 
I run fair-queue on my access link at home, it works great.

>   Ah, yes. Buffer tuning is fairly well understood by ISPs, but the 
> distribution-of-information channels don't work well. :^( If you think 
> ConEx could help, please say how!

Er, considering basically NONE of the typical CPEs in use today does 
anything other than FIFO with a lot of buffers, I'd say if the ISP 
understands bufferbloat, they haven't communicated this to the purchasing 
department who controls CPE purchases, because if they did, the typical 
ADSL router would do better things than FIFO for upstream buffer 
management.

So I would like to have ConEx describe how buffering should be implemented 
in all devices who might experience congestion on the outgoing interface 
(hosts and routers, most likely different advice, ConEx perhaps should 
define different classes of devices that should do different things), this 
should be very good guidance going forward.

Let me describe a typical home access scenario to visualise what I'm 
trying to say:

The host IP stack is sending 5 different TCP flows. The IP stack is 
dumping these packets into an egress Wifi NIC FIFO buffer, which is 
emptied by the Wifi hardware as packets are being passed out the wifi air 
interface. When there is a 20ms stop in the wifi communication, this 
affects all flows, and the FIFO buffer might be quite big. When it arrives 
in the wifi router, it's now going to split up the traffic because one 
flow was going to the ethernet attached file server, and 4 was going out 
the ADSL interface. The ethernet is faster than the wifi, so the stupid 
FIFO buffering here doesn't matter, but the ADSL interface is an ATM FIFO 
single PVC again, with quite large buffer, so this can easily reach 
hundreds of milliseconds of buffering when this is full. Even if the IP 
stack might do AQM, the cell buffer is so big that the AQM empties into a 
10-20ms cell FIFO anyway, so the AQM is crippled even if it exists. Now we 
enter the DSLAM and it might have a 100 meg ethernet upstream interface, 
and you now have many hundreds of customers on this 100 meg interface 
which means it's full, but it's a L2 switch interface and it only has 5 ms 
of FIFO buffers with tail drop so it'll just drop 100% of packets at a 
certain queue depth. After this we hit a 1G router interface with 600ms 
FIFO, where if it's full, you'll get a lot of delay, often without any 
drops because most TCP flows will never reach full queue depth before the 
bandwidth/delay product is larger than available TCP window.

Phew, that was a lot of text. Anyhow, it was just an example of all the 
different places where packets can be dropped/queued in the network and 
how they might work today, and I believe there are a LOT to be done to 
improve how all these different queue points can handle traffic to give 
the end user a better network experience. This is both within the home and 
within the ISP network.

-- 
Mikael Abrahamsson    email: swmike@swm.pp.se