Re: [tcpPrague] [aqm] L4S status update

Bob Briscoe <> Mon, 28 November 2016 23:07 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 6CC0812A088; Mon, 28 Nov 2016 15:07:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id KJ3ly8AfwlBt; Mon, 28 Nov 2016 15:07:41 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 55AD312A0A3; Mon, 28 Nov 2016 15:07:37 -0800 (PST)
Received: from ([]:53898 helo=[]) by with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.87) (envelope-from <>) id 1cBV1L-0005j5-Dw; Mon, 28 Nov 2016 23:07:35 +0000
To: Mario Hock <>, "Bless, Roland (TM)" <>
References: <> <> <> <>
From: Bob Briscoe <>
Message-ID: <>
Date: Mon, 28 Nov 2016 23:07:34 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname -
X-AntiAbuse: Original Domain -
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain -
X-Get-Message-Sender-Via: authenticated_id:
Archived-At: <>
Cc: tsvwg IETF list <>, tcpm IETF list <>, TCP Prague List <>, AQM IETF list <>
Subject: Re: [tcpPrague] [aqm] L4S status update
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "To coordinate implementation and standardisation of TCP Prague across platforms. TCP Prague will be an evolution of DCTCP designed to live alongside other TCP variants and derivatives." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 28 Nov 2016 23:07:44 -0000


On 24/11/16 16:57, Mario Hock wrote:
> Hello Bob and Roland,
> I followed your discussion and want to share my opinion, here. 
> (Comments inline).
> Am 22.11.2016 um 20:09 schrieb Bob Briscoe:
>> *Is any AQM CC-neutral?**
>> *Note rule 5 <> in the
>> AQM Guidelines [RFC7567]
>>       "AQM algorithms SHOULD NOT interpret specific transport protocol
>> behaviors."
>> In general, the advice in that section is sound, but I don't think we
>> realized at that time just how subtle this issue is.
>> Since then, I discovered that the autotuning parameter table in the PIE
>> algorithm is designed very precisely around the 1/sqrt(p) rule of Reno
>> (see Fig 5 in the PI^2 paper <>).
>> Similarly, the sqrt control law in Codel claims to be dependent on Reno
>> {Note 1}.
>> The point is that these AQMs still work fine with Cubic, Compound,
>> Westwood, etc, because all these ccs were designed to interwork with
>> Reno. {Note 2}
> The reason that the AQMs also work with these CCs is because the CCs 
> still have a lot in common with TCP Reno, like that they use a 
> congestion window, that they increase the CWnd up until packet loss 
> etc. Also the 1/sqrt(p)-law is still, more or less, applicable to them.
> For newer CCs like BBR or PCC, the 1/sqrt(p) does not apply. They are 
> based i.a. on throughput vs. loss/delay probing. BRR, for example, 
> does not even use a congestion window (at least not in the same way as 
> the other CCs do).
>> The idea of L4S (and specifically the DualQ Coupled AQM and the L4S ID
>> spec) is to enable a shift to a completely different "norm", but still
>> coexist with all the 'Classic' cc's that coexisted around the old
>> "norm". The new norm is intended to be just as fuzzy as the old norm
>> {Note 3}. The idea is two fuzzy clouds of congestion controls, around an
>> old and a new norm that are related together.
> I agree with the general idea. But from that reasoning newer CCs, like 
> BBR, belong into the "new" queue, where L4S lives in!
[BB] That's not for you (or I) to say.

The designer of a new CC can choose to innovate within Classic queues or 
L4S. Whichever they choose, they would set the identifier that 
classifies their packets into the appropriate queue, and they would have 
to coexist with the other behaviours in that queue.

We defined L4S as a framework to encourage innovation with new CCs in 
the L4S queue (because it's easier to deploy very nice properties), but 
please don't assume we were trying to mandate that! Also, if considering 
defining a CC with respect to L4S, bear in mind that L4S is only aiming 
for experimental status in the IETF at present.

L4S is not defined as "anything new must go here".

> If they don't belong in the same queue as L4S, then the queues should 
> not be coupled in the way you propose. This coupling prevents any 
> innovation in the non-L4S queue.
[BB] Not at all.

>> *BBR**
>> *I believe BBR attempts to be 'friendly' to loss-based flows when
>> competing in the same queue. But it's still research, and we don't yet
>> know how good it is at that in all scenarios, although we do have code
>> to test now. Given BBR currently sets Not-ECT, it would classify itself
>> into the Classic queue of a DualQ AQM, and if it coexists with Reno it
>> /should/ coexist with L4S traffic in the other queue. See Koen's recent
>> posting
>> <>
>> about this.
>> There would be nothing to stop someone designing a variant of BBR that
>> coexisted in the L4S queue with Scalable CCs like DCTCP (the point being
>> that if the bottleneck was not DualQ it would keep delay low and if if
>> the bottleneck was DualQ it would benefit even more from the lower
>> queuing delay there). However, it would have to be a bit more careful
>> about its whole round trip of queue probing, to avoid increasing the
>> delay in the L4S queue. You'll see that I suggested to Neil Cardwell
>> that they consider probing with a few packets rather than a whole
>> window, e.g. the chirping
>> <> technique that Mirja
>> and I looked into back in 2010 was designed to find the same knee
>> between rate increase and delay increase, with far fewer packets. I
>> thought of a better way of using chirping a few weeks ago, so I will be
>> returning to that too.
> I think L4S is not studied well enough, yet to be standardized in a 
> way that other low delay approaches must adjust to the L4S concepts.
[BB] They don't have to. L4S is aiming for experimental status at 
present. Strictly, other low delay experimental protocols only have to 
prove they coexist with standards track CCs (ie. Reno). In practice, any 
new experimental CC also has to prove it co-exists with the deployed 
base, whether standards track or not (e.g. Cubic, Compound etc). If L4S 
becomes part of the deployed base, it will have got there on its own 
merits, then other experiments that come along later will certainly have 
to interwork.

But anyway, as explained above, this should be no more difficult than 
interworking with Reno in the Classic queue, as if L4S was not there. 
Then interworking with L4S should come for free.

> There is at least BBR, PCC, nv (New Vegas) currently under development 
> that all bring in fresh ideas how congestion control could be made in 
> the future. Standardizing L4S as "the" new concept without intensively 
> study other approaches is just too soon.
[BB] I hope I've convinced you that L4S doesn't preclude any of these.

L4S is certainly different in that it is not a CC, rather it is a new 
space for easier CC experimentation. Another difference from all the CCs 
you mention above was the goal of persuading network operators of the 
benefit of creating such a space; because L4S is about improving the 
information flow between network and hosts. But none of that stops other 
CCs using the old space for experimentation.

> If we want to act now, we should focus on a solution that enables new 
> approaches in congestion control but is not tailored to either 
> Reno/Cubic or L4S/DCTCP. Otherwise more research is required how we 
> want the future of congestion control look like.
[BB] No-one is stopping you proposing something concrete.

You will, however, need an implementation, and proof that app 
performance has significant benefits, and a group of people interested 
in working on the idea, and .... This all takes work and time. Work on 
what has become L4S first started in 2012, see:
1) Wu, H., Ju, J., Lu, G., Guo, C., Xiong, Y. & Zhang, Y., "Tuning ECN 
for Data Center Networks," In: Proceedings of the 8th International 
Conference on Emerging Networking Experiments and Technologies CoNEXT 
'12 pp.25-36 ACM (2012)

The choice of 1/p as a definition of the new L4S experimentation space 
was not arbitrary. There are numerous benefits to the number of 
congestion signals per RTT being * much higher and
* invariant with flow rate.
You will see further research that exploits these properties soon...



> Best regards,
> Mario Hock
> _______________________________________________
> aqm mailing list

Bob Briscoe