[conex] Fwd: byte vs packet counting

Toby Moncaster <toby.moncaster@cl.cam.ac.uk> Mon, 05 December 2011 17:55 UTC

Return-Path: <tm444@hermes.cam.ac.uk>
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 ABDC421F8C1F for <conex@ietfa.amsl.com>; Mon, 5 Dec 2011 09:55:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.598
X-Spam-Level:
X-Spam-Status: No, score=-6.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id i0u4W84zOsYS for <conex@ietfa.amsl.com>; Mon, 5 Dec 2011 09:55:00 -0800 (PST)
Received: from ppsw-51.csi.cam.ac.uk (ppsw-51.csi.cam.ac.uk [131.111.8.151]) by ietfa.amsl.com (Postfix) with ESMTP id AD32D21F8C43 for <conex@ietf.org>; Mon, 5 Dec 2011 09:54:59 -0800 (PST)
X-Cam-AntiVirus: no malware found
X-Cam-SpamDetails: not scanned
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from ravage.cl.cam.ac.uk ([128.232.1.17]:60718) by ppsw-51.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.158]:25) with esmtpsa (PLAIN:tm444) (TLSv1:AES128-SHA:128) id 1RXcki-0006v5-Xp (Exim 4.72) for conex@ietf.org (return-path <tm444@hermes.cam.ac.uk>); Mon, 05 Dec 2011 17:54:56 +0000
From: Toby Moncaster <toby.moncaster@cl.cam.ac.uk>
Content-Type: multipart/alternative; boundary="Apple-Mail=_E3AB3FA2-5AE7-4062-8807-674D5416E98E"
Date: Mon, 05 Dec 2011 17:55:00 +0000
References: <Prayer.1.3.4.1112031010520.17047@hermes-2.csi.cam.ac.uk>
To: conex@ietf.org
Message-Id: <DDE9025F-448D-4176-B0A3-DA566220904E@cl.cam.ac.uk>
Mime-Version: 1.0 (Apple Message framework v1251.1)
X-Mailer: Apple Mail (2.1251.1)
Sender: "T. Moncaster" <tm444@hermes.cam.ac.uk>
Subject: [conex] Fwd: byte vs packet counting
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: Mon, 05 Dec 2011 17:55:01 -0000

Not sure if this email ever hit the mailing list…


Begin forwarded message:

> From: "T. Moncaster" <tm444@cam.ac.uk>
> Subject: Re: [conex] byte vs packet counting
> Date: 3 December 2011 10:10:52 GMT
> To: John Leslie <john@jlc.net>
> Cc: Dirk Kutscher <Dirk.Kutscher@neclab.eu>, ConEx IETF list <conex@ietf.org>
> 
> I have been purposely not contributing to this thread over the past few weeks as I wasn't sure that more voices in the argument would actually help things. However I feel things are now at a point where I can contribute something (hopefully) useful.
> 
> On Dec 2 2011, John Leslie wrote:
> 
>> Dirk Kutscher <Dirk.Kutscher@neclab.eu> wrote:
>>> [John Leslie <john@jlc.net> wrote:]
>>>> I sincerely hope Bob isn't saying that an audit function has to
>>>> evaluate _every_ packet which passes it!
>>> Clearly, it at least has to be able to do that, yes!
>> 
>>  Clearly, _if_ it has to do that, we're extremely limited on _where_
>> we can put an auditing function. Auditing is not going to get built
>> into the hardware of 10-gig routers.
>> 
>>> Auditing is really a fundamental piece of the basic Conex mechanism,
>> 
>>  I'd be happy to discuss that. I see no reason to bother auditing
>> if the entire path is known to be free of congestion. Auditing might
>> make sense if you expect traffic you send to encounter congestion
>> later in the path, but only if you have some contractual arrangement
>> calling for it. (Otherwise, you can't know what the effect of
>> ConEx marks may be.)
> 
> I think there is a subtle difference between stating that auditing is a fundamental part of ConEx and saying that auditing can never be turned off. I would definitely agree that auditing is required in any network where there are potential trust issues and where you can't guarantee the whole-path network conditions. But I do think there are cases where it could be turned off (for instance in private corporate networks using conex as a means to control their monthly network bills).
> 
>> 
>>  Auditing every packet is plausible near the sender and receiver,
>> but not in the backbone. I don't believe we have agreement among
>> ourselves what a receiver's uplink will do if their auditing shows
>> "abuse" of ConEx marking: so I don't see what auditing at the
>> sender's uplink can do and be confident it's the right thing.
> 
> I agree, it seems hard to see how auditing something when you are missing half the information is going to be hard. There are possible arguments along the lines of an ISP might make a decision that all users of a given access node (B-RAS or whatever) are likely to be experiencing roughly similar amounts of congestion. So any customer that declares no congestion is probably not being honest.
> 
>> 
>>  I suppose it's possible the experiments we do will enlighten
>> that question, but I'm not confident. :^(
>> 
>>> and has nothing to do with policy. Auditing is the basis for accurate
>>> congestion exposure.
>> 
>>  The Internet works as well as it does precicely _because_ nobody
>> gets too paranoid about how "accurate" packets are -- instead we
>> spend our efforts worrying how well the implementations of our
>> protocols "interoperate". (That keeps us busy enough, IMHO.)
>> 
>>> Only if you have that, you can think about implementing policies.
>> 
>>  As an ISP, I "implement policies" all the time based upon guesswork.
>> The general principle is that a partly-wrong policy implemented at the
>> right time is almost always better than a "right" policy implemented
>> too late.
>> 
>>> Having said that, it is certainly implementation-specific how
>>> auditing really works -- there may be tradeoffs between efficiency
>>> and effectiveness -- but for the sake of the discussion here, I'd
>>> say it's best to assume that, yes, auditing evaluates every packet.
>> 
>>  IMHO, it's _always_ best to assume otherwise.
> 
> My view is that we're arguing the wrong point - auditing every packet seems trivial if we are assuming that most routers can mark a packet (e.g. can do ECN). In that case they are already inspecting 2 bits of the IP header, so asking them to inspect a 3rd bit seems reasonable. However, on a per-packet basis audit is meaningless. Audit only has any meaning over a period of time across a given flow (or set of flows). There is a separate accounting mechanism where you can measure bulk flows of congestion, but that has to be based on a belief in the accuracy of the marking of the underlying individual flows.
> 
>> 
>>  Your life will be easier if you don't depend on assumptions which
>> are likely to be false.
>> 
>>  We'd do better, when discussing this, to get specific about how
>> auditing might improve the use-cases we're pushing.
>> 
>>  Unless I misread draft-ietf-conex-concepts-uses, our principle
>> use case is Informing Traffic Management. I have posted before that
>> the most important feature of ConEx marking (IMHO) is informing
>> any node along the way that the sender is knowingly sending packets
>> despite having reason to doubt that congestion has cleared.
>> 
>>  Auditing does nothing to help here. The abusive thing to do is
>> to _clear_ ConEx marks -- and auditing can't detect that.
> 
> No. ConEx is about a balance of markings. To cheat you fail to send forward into the network sufficient ConEx markings to cover the congestion your flow is causing (or has caused). So the function of auditing is to check that the two numbers roughly match. And yes, this is a very difficult problem to solve if you can't assume ECN is being used.
> 
> 
>> 
>>  I haven't yet argued a specific benefit to ECN-marking instead
>> of dropping -- when I do, I'll be arguing for ECN-marking well
>> before packets need to be dropped. I simply don't believe that any
>> amount of auditing will convince providers to trust ConEx marking
>> to mean these packets will never be dropped.
> 
> I don't think ConEx is ever meant to say to a provider "these packets are honest so must never be dropped". ConEx is meant to provide a better metric to network users to allow them to see the actual impact of any given set of packets in terms of congestion caused.
> 
>> 
>>  Auditing, to tell truth, may or may not prove useful after we
>> have done enough experiments. IMHO, if it proves useful we'll find
>> that it's useful when done statistically, rather than on every
>> packet.
> 
> I think this may point to the heart of the issue. Yes, you can sample to do audit, but only if you assume a relatively high density of markings. If ConEx info is unary encoded into packets then you can only measure it by measuring long streams of the packets. If ConEx is a specific number carried in each packet then sparse sampling may well give you enough to be able to achieve the aims of audit.
> 
> Which brings me on to the aims of audit. To my mind there are two possible aims. 1) to guarantee that every single packet, flow, aggregation of traffic in the network has accurately declared their congestion or 2) to act as a "speed camera" that catches a sufficiently high proportion of infringements to ensure that senders don't risk under-declaring their congestion. My own view is that the second is more feasible in the real world, although the first might well be more desirable.
> 
> Toby
> 
>> 
>> --
>> John Leslie <john@jlc.net>
>> _______________________________________________
>> conex mailing list
>> conex@ietf.org
>> https://www.ietf.org/mailman/listinfo/conex
>>