Re: [re-ECN] implementations

"Don Bowman" <don@sandvine.com> Mon, 26 October 2009 18:52 UTC

Return-Path: <don@sandvine.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 1D3613A68F5 for <re-ecn@core3.amsl.com>; Mon, 26 Oct 2009 11:52:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level:
X-Spam-Status: No, score=x tagged_above=-999 required=5 tests=[]
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 nja1633V+qus for <re-ecn@core3.amsl.com>; Mon, 26 Oct 2009 11:52:38 -0700 (PDT)
Received: from mail2.sandvine.com (Mail1.sandvine.com [64.7.137.134]) by core3.amsl.com (Postfix) with ESMTP id CBD4028C0F5 for <re-ecn@ietf.org>; Mon, 26 Oct 2009 11:52:15 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01CA566D.76916AB8"
Date: Mon, 26 Oct 2009 14:52:25 -0400
Message-ID: <EB618291F3454E4DA10D152B9045C0170215EBE9@exchange-2.sandvine.com>
In-Reply-To: <200910261436.n9QEalKk001268@bagheera.jungle.bt.co.uk>
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
Thread-Topic: [re-ECN] implementations
Thread-Index: AcpWSdDXH12c0KjtQZSrQCNmg11yGAAII2pg
References: <4AD7A078.8000100@thinkingcat.com> <EB618291F3454E4DA10D152B9045C0170215E753@exchange-2.sandvine.com> <fc0ff13d0910231201kb611d4es2059713e3a5ebe3@mail.gmail.com> <EB618291F3454E4DA10D152B9045C0170215EB31@exchange-2.sandvine.com> <200910260916.n9Q9G6Et026065@bagheera.jungle.bt.co.uk> <EB618291F3454E4DA10D152B9045C0170215EBA0@exchange-2.sandvine.com> <200910261436.n9QEalKk001268@bagheera.jungle.bt.co.uk>
From: "Don Bowman" <don@sandvine.com>
To: "Bob Briscoe" <rbriscoe@jungle.bt.co.uk>
Cc: re-ecn@ietf.org
Subject: Re: [re-ECN] implementations
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: Mon, 26 Oct 2009 18:52:40 -0000

From: Bob Briscoe [mailto:rbriscoe@jungle.bt.co.uk]
> Don,
> 
 ...

> >
> >well, eyeball may have been a somewhat imprecise term here :)
> >
> >Our equipment is able to measure VoIP QoE (MOS). We do this by
locking
> >a local clock to the RTP stream clock, and also looking @ the RTP
> >sequence counter for detecting loss. In this fashion we can
> >see latency/loss/jitter (latency comes from RTCP-XR from the
> endpoints).
> >As a correlation, we looked @ the correlation between TCP packet loss
> >and MOS for VoIP. The correlation was low (~0.1). This is in a
heavily
> >mixed network w/ hundreds of thousands of consumer connections.
> >We inferred there was congestion @ some times because the MOS varied
> >as a function of the hour. We assumed the congestion was in the
> network
> >we were in because some of the VoIP providers were directly peered,
> >and we assumed they were uncongested (no proof of the assumption).
> >
> >In a similar fashion, we correlated access round-trip-time by
> >looking @ the delta between SYN-ACK towards the subscriber, and ACK
> >returning. We used this time as a proxy for congestion since it
> >correlated
> >better (~0.7).
> 
> [BB] Understood. But the point I was making is that we're not looking
> for some metric that correlates with each application's QoS. We're
> looking for a metric that represents potential harm by each user U on
> 'the most sensitive but unknown' application X that might be sharing
> with U. If different apps are better at working round that harm, all
> power to them.
> 
> Contribution to congestion (volume of congested bytes) might look
> like a somewhat arbitrary choice, but it's very robust because it's
> proportionate to the two factors involved, taken over a brief period
of
> time:
> - Your volume: if you're sending twice as much as someone else, you
> get twice as much pressure to get out;
> - Everyone else's volume: if the queue is being pushed twice as hard,
> it also doubles the pressure for you to get out of the way;

so the rationale for the measurement was: "Assume VoIP quality is a good
proxy for overall quality. Prove that your <product X> increases the
overall achieved quality". This was based on both pragmatic (i had
the VoIP measure available) and rational (it seems likely VoIP is
fragile) means.

We then use 'volume of congested bytes' in the approximation i mentioned
earlier: if the link is congested (defined for the current iteration
as 'over 70% utilisation') (note: we calibrated this quite extensively
in a lab see attached, but this is still an empirical approximation),
then the
users disproportionately contributing to the congestion (volume)
are offered a lower priority. The question we were trying to answer
was: did this improve the situation? What happened to the overall
experience of each class of user?

Now, how could this be improved? 'is congested' could become explicit.
I believe you are familiar w/ the concept so i won't elaborate :)
i was not suggesting 'is congested' be application specific, but
was suggesting that the 'did we make the world better' test has to
be based on application specific measurement and expectations.

I attach for reference some information on our 'calibration by
empirical means of the congestion in a cable network'. i well understand
this is not terribly generalised, but its what i have.

--don