Re: [re-ECN] CONEX Principles & Constraints

Leslie Daigle <leslie@thinkingcat.com> Sun, 01 November 2009 23:20 UTC

Return-Path: <leslie@thinkingcat.com>
X-Original-To: re-ecn@core3.amsl.com
Delivered-To: re-ecn@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 687B13A67FD for <re-ecn@core3.amsl.com>; Sun, 1 Nov 2009 15:20:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.45
X-Spam-Level:
X-Spam-Status: No, score=-2.45 tagged_above=-999 required=5 tests=[AWL=0.019, BAYES_00=-2.599, SARE_RMML_Stock10=0.13]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id c6gDov7yOHE7 for <re-ecn@core3.amsl.com>; Sun, 1 Nov 2009 15:20:15 -0800 (PST)
Received: from zeke.ecotroph.net (zeke.ecotroph.net [70.164.19.155]) by core3.amsl.com (Postfix) with ESMTP id CE38D3A680F for <re-ecn@ietf.org>; Sun, 1 Nov 2009 15:20:14 -0800 (PST)
Received: from beethoven.local ([::ffff:173.71.204.217]) (AUTH: PLAIN leslie, SSL: TLSv1/SSLv3,256bits,AES256-SHA) by zeke.ecotroph.net with esmtp; Sun, 01 Nov 2009 18:20:27 -0500 id 015B006B.4AEE17BB.00001B9E
Message-ID: <4AEE17B3.4000509@thinkingcat.com>
Date: Sun, 01 Nov 2009 18:20:19 -0500
From: Leslie Daigle <leslie@thinkingcat.com>
User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812)
MIME-Version: 1.0
To: John Leslie <john@jlc.net>
References: <4A916DBC72536E419A0BD955EDECEDEC06363A38@E03MVB1-UKBR.domain1.systemhost.net> <AEDCAF87EEC94F49BA92EBDD49854CC70DB7C39B@E03MVZ1-UKDY.domain1.systemhost.net> <AEDCAF87EEC94F49BA92EBDD49854CC70DB7C3E3@E03MVZ1-UKDY.domain1.systemhost.net> <20091030163324.GV78898@verdi>
In-Reply-To: <20091030163324.GV78898@verdi>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Cc: re-ecn@ietf.org
Subject: Re: [re-ECN] CONEX Principles & Constraints
X-BeenThere: re-ecn@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: re-inserted explicit congestion notification <re-ecn.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/re-ecn>, <mailto:re-ecn-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/re-ecn>
List-Post: <mailto:re-ecn@ietf.org>
List-Help: <mailto:re-ecn-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/re-ecn>, <mailto:re-ecn-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 01 Nov 2009 23:20:16 -0000

Commenting on just one point:

John Leslie wrote:
 >>> 2. The protocol should be open about the responses it allows to the
 >>> conex information. For example, it should not make assumptions about
 >>> the behaviour of a particular application, and it should allow a
 >>> diversity of potential traffic management practices (of networks and
 >>> end-hosts).
 >
 >    Diversity of traffic management practices is critical: I'm not sure
 > whether the rest of this paragraph helps or tends to confuse.


I think it's worth emphasizing application-agnoticism, though I agree 
the wording above may inadvertently support it (in a "don't look over 
here" kind of way).

How about:

2.  The protocol should be open about the responses it allows to the 
conex information, supporting diversity of practices to manage network 
(not application) flows.



Leslie.





[Original message]
> toby.moncaster@bt.com <toby.moncaster@bt.com> wrote:
>>> philip.eardley@bt.com
>>>
>>> 1. the purpose is to standardise the conex protocol...
>> I might even go so far as saying "Potential uses for such information
>> are explicitly beyond the scope of this initial
>> {WG/BoF/protocol/whatever}"
> 
>    "the planned WG".
> 
>>> 2. The protocol should be open about the responses it allows to the
>>> conex information. For example, it should not make assumptions about
>>> the behaviour of a particular application, and it should allow a
>>> diversity of potential traffic management practices (of networks and
>>> end-hosts).
> 
>    Diversity of traffic management practices is critical: I'm not sure
> whether the rest of this paragraph helps or tends to confuse.
> 
>>> 3. the conex information needs to be easily visible to all network
>>> elements, and be application-independent (including encrypted apps).
>>> Reason: this ensures widest possible applicability -- it is visible
>>> to both end-systems (to help them control their sending rate) and to
>>> network managers (to help them manage a bottleneck, whether traffic
>>> originates from their own users or from other networks).
>> I would either merge this with the later points about IP or at least
>> re-order the list so they occur in a row.
> 
>    I wouldn't recommend "merging" this with anything else.
> 
>>> 4. the conex information needs to be sufficiently up-to-date, for
>>> example so that it can usefully assist congestion control by end
>>> systems. Reason: stale information is little use. [Question:
>>> instead of "sufficiently up-to-date", would "real-time" or "near
>>> real-time" be better?]
>> How about "Sufficiently up-to-date to enable near-real-time traffic
>> management". 
> 
>    I think Toby captures the essential point: that this needs to be
> used for real-time traffic management. I don't think "up-to-date"
> helps.
> 
>> Incidentally this is nothing to do with congestion control at
>> end-systems - the end-system already sees congestion! So the only
>> link to congestion control is if this in turn allows the network
>> to be more lenient towards end-systems.
> 
>    "Usefully assist congestion control by end systems" isn't really
> the point. While we envision a system where ECN marking is "re-inserted
> into the stream being sent," this is mostly unrelated to what the end
> user application and/or stack does to control congestion.
> 
>    I'm not sure what we can say about how this benefits end users.
> I do imagine some overlap with the Multipath TCP WG, but it's way too
> early for any specifics.
> 
>    Our point really is that ConEx marking can enable network operators
> to distinguish "heavy" traffic from "congestion-causing" traffic, thus
> enabling experimentation with transport algorithms that do a better
> job of filling the pipes without harming other uses.
> 
>>> 5. the conex information needs to be sufficiently granular, to allow
>>> identification of those sending traffic to the bottleneck [Comment:
>>> this is trying to get a point that John made about 'granular enough
>>> for cost allocation' but in a more generic way.
> 
>    I guess I should comment on that.
> 
>    In hindsight, I was already too "generic" when I wrote that phrase.
> I meant allocation within the accounting system of the network operator
> that might perform the upgrade; but I wished to allow for policing
> which either charged for congestion from a particular forwarder or
> dropped / delayed / whatever packets that would "cause" more congestion
> than "normal".
> 
>    The point I wanted to make is that upgrading a bottleneck link needs
> cost justification, and we need to collect information that can justify
> the cost.
> 
>>> "Identification" is a bad word as, for some readers, it might be
>>> imply more than intended
> 
>    Agreed.
> 
>>> - but I can't think of a better one at the moment.
> 
>    Better to leave out anything that even resembles "identification"...
> The point is strictly related to who _forwards_ packets, not who _sends_
> them; and how that is determined is pretty strictly outside the scope
> of ConEx.
> 
>    The point of "granularity" is that we can't afford to try to aggregate
> to "flows" and then de-aggregate to portions of those "flows" that cause
> congestion: we need to operate packet-by-packet, determining a probability
> that the packet in question will "cause" congestion.
> 
>>> I hope that the following bullet about conex information in the IP
>>> header solves how to do it.]
>> The information needs to granular enough to hold the originator of the
>> traffic accountable?
> 
>    I hope not!
> 
>>> 6. the conex information is carried in the IP header. Note: it is in
>>> scope to work out which IP header bits to use (and the implications
>>> for other stuff that may already be using those bits).
> 
>    This is really weak on justification for the use of scarce bits...
> 
>> Better: "This may require defining new codepoints in the IP header or
>> possibly even the re-definition of existing codepoints. We will be
>> careful to consider the impact of our choices both on existing protocols
>> and on deployability.
> 
>    I would try to avoid trespassing on that ground.
> 
>    While there is space in the IPv6 header, we want to experiment in
> IPv4-land. Talking of "defining new codepoints" is likely to get our
> scope limited to IPv6. Better to experiment in IPv4, and perhaps _then_
> define IPv6 codepoints.
> 
>    BTW, I firmly believe the "granularity" issue is essential to justify
> experimenting with IPv4 codepoints: if we don't get buy-in to the need
> for granularity, the whole experiment is endangered.
> 
>>> 7. a protocol will be developed for both IPv4 and IPv6. Reason: both
>>> are needed for full applicability. (There was push-back on an earlier
>>> suggestion of narrowing the scope to IPv4.)
> 
>    I agree, but justification is weak. Bob Briscoe should clarify how
> we'd experiment in IPv6 space: I believe that would be very good;
> however, I suspect we'll eventually find a better way to do congestion
> exposure in IPv6, and we shouldn't limit ourselves to designing the
> final IPv6 solution too early.
> 
>> I might consider phrasing this "although on the face of it an IPv6
>> protocol may be easier, we will also develop solutions for IPv4 as it is
>> still the dominant network-layer protocol.."
> 
>    As I've already said, we need to _experiment_ in IPv4 in order to
> collect sufficient data and observe how congestion exposure information
> is actually used. I would avoid calling the IPv4 stuff "solutions"
> 
>>> 8. TCP options will be used to inform the sender about congestion
>>> received at the receiver. (Note, current proposals require this
>>> information transfer.) Reason: narrow the scope by looking only at
>>> TCP, which is used by the vast majority of the traffic (~85-90%).
> 
>    I thorouhly disagree!
> 
>    Limiting the scope to TCP would be fatal. We need to collect data
> on congestion caused by UDP packets; and any limitation to particular
> transport(s) incents the use of other transports to "end-run" ConEx.
> 
>> Do we want to specify using TCP options at the moment? Option space is
>> limited and already used for lots of other things + MPTCP will be using
>> even more (and there is a very high chance of eventual overlap between
>> conex and MPTCP). I would prefer to leave this as "we will concentrate
>> on TCP as this provides a feedback path..."
> 
>    TCP option "space" is limited in that packets are limited to 44 bytes
> of options per packet. We _would_ get burned by that limit. :^(
> 
>    More importantly, we _really_ don't want to wander into the weeds of
> how to juggle TCP options when we're dealing with the forwarding of IP
> packets. (Yes, I know we do have folks clever enough to pull it off
> 99.999% of the time; but the rest of us will quickly lose track of the
> details, and sooner or later the folks that are clever enough will find
> themselves on the "rough" end of "rough consensus.)
> 
>>> 9. a baseline assumption is that routers are unmodified. Reason:
>>> deployment viability
>> "This MUST work with unmodified routers, even if they don't do ECN...
>> although modifying routers may allow additional refinements...
> 
>    A reasonable way to say it...
> 
>>> 10. a baseline assumption is that conex information is signalled
>>> explicitly (through the IP header) and not implicitly signalled
>>> through packet loss, delay or jitter. Reason: explicit signalling
>>> allows a "better" reaction, for example faster, without impairment
> 
>    Pretty good... but the justification needs to be stronger.
> 
>    First of all, explicit signaling can carry more-than-one bit,
> instead of less-than-one (due to the multitude of other things that
> can lead to packet loss); and can reach the actor who needs to react
> significantly faster.
> 
>    Second, explicit signaling carries consistent information to every
> router along the path, meaning that incentives to slow down a sending
> rate can be applied "close enough" to the sender to be effective; and
> if a packet actually does need to be dropped, it could be dropped
> before it causes other congestion earlier in the forwarding path.
> 
>> In theory implicit signalling already exists - if you observe a TCP
>> source halving its rate you can assume it was (probably) in response to
>> a loss event...
> 
>    Hmm... that's getting "too clever" for this bear-of-small-brain...
> 
>>> 11. but we will also develop a solution where the conex information
>>> is signalled through packet loss. Reason: ECN is not enabled in most
>>> routers today; incremental deployment is critical
> 
>    Am I missing how to "re-insert" that signal?
> 
>> No! - we may develop a solution that informs the network of congestion
>> the sender has learnt about both as a result of explicit notification
>> (ECN) and implicit notification (loss). However we DON'T use loss to
>> signal ConEx information (which is surely impossible anyway?)! 
> 
>    I strongly recommend against any statement along those lines.
> 
>>> 12. (possibly) we will study an incremental deployment step where only
>>> the sender is conex-enabled [Step suggested by Matt]
>> We certainly need to leave this open as a possible step
> 
>    I don't see any reason to mention this. Clearly, a ConEx-aware sender
> can re-insert a signal whether or not the end-receiver is ConEx aware.
> And that signal can enable all the experimenting we need along the
> forwarding path.
> 
>    We need only specify the _meaning_ of the ConEx signal the sender
> re-inserts -- not any particular algorithm for generating it.
> 
>>> 13. (possibly) another incremental deployment step?
> 
>    Way premature, IMHO.
> 
>>> 14. we will describe threats, especially from falsifying or
>>> suppressing the conex information - whether by ISPs or end-hosts.
>>> The protocol needs to allow such threats to be dealt with (in as
>>> simple a manner as possible), but the actual mechanisms to tackle
>>> those threats (using policer boxes, for instance) are out of scope.
>>> Reason: such mechanisms are about uses of conex, rather than exposing
>>> the information.
> 
>    I agree.
> 
>>> 15. anything else?
> 
>    Not at this time.
> 
> --
> John Leslie <john@jlc.net>
> _______________________________________________
> re-ECN mailing list
> re-ECN@ietf.org
> https://www.ietf.org/mailman/listinfo/re-ecn

-- 

-------------------------------------------------------------------
"Reality:
      Yours to discover."
                                 -- ThinkingCat
Leslie Daigle
leslie@thinkingcat.com
-------------------------------------------------------------------