< draft-ietf-tsvwg-aqm-dualq-coupled-24.txt   draft-ietf-tsvwg-aqm-dualq-coupled-25d.txt >
Transport Area working group (tsvwg) K. De Schepper Transport Area working group (tsvwg) K. De Schepper
Internet-Draft Nokia Bell Labs Internet-Draft Nokia Bell Labs
Intended status: Experimental B. Briscoe, Ed. Intended status: Experimental B. Briscoe, Ed.
Expires: 8 January 2023 Independent Expires: 25 February 2023 Independent
G. White G. White
CableLabs CableLabs
7 July 2022 24 August 2022
DualQ Coupled AQMs for Low Latency, Low Loss and Scalable Throughput DualQ Coupled AQMs for Low Latency, Low Loss and Scalable Throughput
(L4S) (L4S)
draft-ietf-tsvwg-aqm-dualq-coupled-24 draft-ietf-tsvwg-aqm-dualq-coupled-25
Abstract Abstract
This specification defines a framework for coupling the Active Queue This specification defines a framework for coupling the Active Queue
Management (AQM) algorithms in two queues intended for flows with Management (AQM) algorithms in two queues intended for flows with
different responses to congestion. This provides a way for the different responses to congestion. This provides a way for the
Internet to transition from the scaling problems of standard TCP Internet to transition from the scaling problems of standard TCP
Reno-friendly ('Classic') congestion controls to the family of Reno-friendly ('Classic') congestion controls to the family of
'Scalable' congestion controls. These are designed for consistently 'Scalable' congestion controls. These are designed for consistently
very Low queuing Latency, very Low congestion Loss and Scaling of very Low queuing Latency, very Low congestion Loss and Scaling of
per-flow throughput (L4S) by using Explicit Congestion Notification per-flow throughput (L4S) by using Explicit Congestion Notification
(ECN) in a modified way. Until the Coupled DualQ, these L4S senders (ECN) in a modified way. Until the Coupled DualQ, these scalable L4S
could only be deployed where a clean-slate environment could be congestion controls could only be deployed where a clean-slate
arranged, such as in private data centres. The coupling acts like a environment could be arranged, such as in private data centres.
semi-permeable membrane: isolating the sub-millisecond average
queuing delay and zero congestion loss of L4S from Classic latency The specification first explains how a Coupled DualQ works. It then
and loss; but pooling the capacity between any combination of gives the normative requirements that are necessary for it to work
Scalable and Classic flows with roughly equivalent throughput per well. All this is independent of which two AQMs are used, but
flow. The DualQ achieves this indirectly, without having to inspect pseudocode examples of specific AQMs are given in appendices.
transport layer flow identifiers and without compromising the
performance of the Classic traffic, relative to a single queue. The
DualQ design has low complexity and requires no configuration for the
public Internet.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 8 January 2023. This Internet-Draft will expire on 25 February 2023.
Copyright Notice Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License. provided without warranty as described in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Outline of the Problem . . . . . . . . . . . . . . . . . 3 1.1. Outline of the Problem . . . . . . . . . . . . . . . . . 3
1.2. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2. Context, Scope & Applicability . . . . . . . . . . . . . 6
1.3. Terminology . . . . . . . . . . . . . . . . . . . . . . . 7 1.3. Terminology . . . . . . . . . . . . . . . . . . . . . . . 7
1.4. Features . . . . . . . . . . . . . . . . . . . . . . . . 9 1.4. Features . . . . . . . . . . . . . . . . . . . . . . . . 9
2. DualQ Coupled AQM . . . . . . . . . . . . . . . . . . . . . . 11 2. DualQ Coupled AQM . . . . . . . . . . . . . . . . . . . . . . 11
2.1. Coupled AQM . . . . . . . . . . . . . . . . . . . . . . . 11 2.1. Coupled AQM . . . . . . . . . . . . . . . . . . . . . . . 11
2.2. Dual Queue . . . . . . . . . . . . . . . . . . . . . . . 13 2.2. Dual Queue . . . . . . . . . . . . . . . . . . . . . . . 12
2.3. Traffic Classification . . . . . . . . . . . . . . . . . 13 2.3. Traffic Classification . . . . . . . . . . . . . . . . . 13
2.4. Overall DualQ Coupled AQM Structure . . . . . . . . . . . 14 2.4. Overall DualQ Coupled AQM Structure . . . . . . . . . . . 13
2.5. Normative Requirements for a DualQ Coupled AQM . . . . . 17 2.5. Normative Requirements for a DualQ Coupled AQM . . . . . 17
2.5.1. Functional Requirements . . . . . . . . . . . . . . . 17 2.5.1. Functional Requirements . . . . . . . . . . . . . . . 17
2.5.1.1. Requirements in Unexpected Cases . . . . . . . . 18 2.5.1.1. Requirements in Unexpected Cases . . . . . . . . 18
2.5.2. Management Requirements . . . . . . . . . . . . . . . 19 2.5.2. Management Requirements . . . . . . . . . . . . . . . 19
2.5.2.1. Configuration . . . . . . . . . . . . . . . . . . 20 2.5.2.1. Configuration . . . . . . . . . . . . . . . . . . 19
2.5.2.2. Monitoring . . . . . . . . . . . . . . . . . . . 21 2.5.2.2. Monitoring . . . . . . . . . . . . . . . . . . . 21
2.5.2.3. Anomaly Detection . . . . . . . . . . . . . . . . 22 2.5.2.3. Anomaly Detection . . . . . . . . . . . . . . . . 22
2.5.2.4. Deployment, Coexistence and Scaling . . . . . . . 22 2.5.2.4. Deployment, Coexistence and Scaling . . . . . . . 22
3. IANA Considerations (to be removed by RFC Editor) . . . . . . 22 3. IANA Considerations (to be removed by RFC Editor) . . . . . . 22
4. Security Considerations . . . . . . . . . . . . . . . . . . . 22 4. Security Considerations . . . . . . . . . . . . . . . . . . . 22
4.1. Low Delay without Requiring Per-Flow Processing . . . . . 22 4.1. Low Delay without Requiring Per-Flow Processing . . . . . 22
4.2. Handling Unresponsive Flows and Overload . . . . . . . . 23 4.2. Handling Unresponsive Flows and Overload . . . . . . . . 23
4.2.1. Unresponsive Traffic without Overload . . . . . . . . 24 4.2.1. Unresponsive Traffic without Overload . . . . . . . . 24
4.2.2. Avoiding Short-Term Classic Starvation: Sacrifice L4S 4.2.2. Avoiding Short-Term Classic Starvation: Sacrifice L4S
Throughput or Delay? . . . . . . . . . . . . . . . . 25 Throughput or Delay? . . . . . . . . . . . . . . . . 25
skipping to change at page 3, line 4 skipping to change at page 2, line 46
2.5.2.2. Monitoring . . . . . . . . . . . . . . . . . . . 21 2.5.2.2. Monitoring . . . . . . . . . . . . . . . . . . . 21
2.5.2.3. Anomaly Detection . . . . . . . . . . . . . . . . 22 2.5.2.3. Anomaly Detection . . . . . . . . . . . . . . . . 22
2.5.2.4. Deployment, Coexistence and Scaling . . . . . . . 22 2.5.2.4. Deployment, Coexistence and Scaling . . . . . . . 22
3. IANA Considerations (to be removed by RFC Editor) . . . . . . 22 3. IANA Considerations (to be removed by RFC Editor) . . . . . . 22
4. Security Considerations . . . . . . . . . . . . . . . . . . . 22 4. Security Considerations . . . . . . . . . . . . . . . . . . . 22
4.1. Low Delay without Requiring Per-Flow Processing . . . . . 22 4.1. Low Delay without Requiring Per-Flow Processing . . . . . 22
4.2. Handling Unresponsive Flows and Overload . . . . . . . . 23 4.2. Handling Unresponsive Flows and Overload . . . . . . . . 23
4.2.1. Unresponsive Traffic without Overload . . . . . . . . 24 4.2.1. Unresponsive Traffic without Overload . . . . . . . . 24
4.2.2. Avoiding Short-Term Classic Starvation: Sacrifice L4S 4.2.2. Avoiding Short-Term Classic Starvation: Sacrifice L4S
Throughput or Delay? . . . . . . . . . . . . . . . . 25 Throughput or Delay? . . . . . . . . . . . . . . . . 25
4.2.3. L4S ECN Saturation: Introduce Drop or Delay? . . . . 26 4.2.3. L4S ECN Saturation: Introduce Drop or Delay? . . . . 26
4.2.3.1. Protecting against Overload by Unresponsive 4.2.3.1. Protecting against Overload by Unresponsive
ECN-Capable Traffic . . . . . . . . . . . . . . . . 28 ECN-Capable Traffic . . . . . . . . . . . . . . . . 28
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28 5. References . . . . . . . . . . . . . . . . . . . . . . . . . 28
6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 29 5.1. Normative References . . . . . . . . . . . . . . . . . . 28
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.2. Informative References . . . . . . . . . . . . . . . . . 29
7.1. Normative References . . . . . . . . . . . . . . . . . . 29 Appendix A. Example DualQ Coupled PI2 Algorithm . . . . . . . . 34
7.2. Informative References . . . . . . . . . . . . . . . . . 30 A.1. Pass #1: Core Concepts . . . . . . . . . . . . . . . . . 35
Appendix A. Example DualQ Coupled PI2 Algorithm . . . . . . . . 35 A.2. Pass #2: Edge-Case Details . . . . . . . . . . . . . . . 46
A.1. Pass #1: Core Concepts . . . . . . . . . . . . . . . . . 36 Appendix B. Example DualQ Coupled Curvy RED Algorithm . . . . . 51
A.2. Pass #2: Edge-Case Details . . . . . . . . . . . . . . . 47 B.1. Curvy RED in Pseudocode . . . . . . . . . . . . . . . . . 51
Appendix B. Example DualQ Coupled Curvy RED Algorithm . . . . . 52 B.2. Efficient Implementation of Curvy RED . . . . . . . . . . 57
B.1. Curvy RED in Pseudocode . . . . . . . . . . . . . . . . . 52 Appendix C. Choice of Coupling Factor, k . . . . . . . . . . . . 59
B.2. Efficient Implementation of Curvy RED . . . . . . . . . . 58 C.1. RTT-Dependence . . . . . . . . . . . . . . . . . . . . . 59
Appendix C. Choice of Coupling Factor, k . . . . . . . . . . . . 60 C.2. Guidance on Controlling Throughput Equivalence . . . . . 60
C.1. RTT-Dependence . . . . . . . . . . . . . . . . . . . . . 60 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 64
C.2. Guidance on Controlling Throughput Equivalence . . . . . 61 Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 65 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 65
1. Introduction 1. Introduction
This document specifies a framework for DualQ Coupled AQMs, which is This document specifies a framework for DualQ Coupled AQMs, which
the network part of the L4S architecture [I-D.ietf-tsvwg-l4s-arch]. serve as the network part of the L4S
L4S enables both very low queuing latency (sub-millisecond on architecture [I-D.ietf-tsvwg-l4s-arch]. A Coupled DualQ AQM consists
average) and high throughput at the same time, for ad hoc numbers of of two queues; L4S and Classic. The L4S queue is intended for
capacity-seeking applications all sharing the same capacity. Scalable congestion controls that can maintain very low queuing
latency (sub-millisecond on average) and high throughput at the same
time. The Coupled DualQ acts like a semi-permeable membrane: the L4S
queue isolates the sub-millisecond average queuing delay and zero
congestion loss of L4S from Classic latency and loss; while the
coupling between the queues pools the capacity between both queues so
that ad hoc numbers of capacity-seeking applications all sharing the
same capacity can have roughly equivalent throughput per flow,
whichever queue they use. The DualQ achieves this indirectly,
without having to inspect transport layer flow identifiers and
without compromising the performance of the Classic traffic, relative
to a single queue. The DualQ design has low complexity and requires
no configuration for the public Internet.
1.1. Outline of the Problem 1.1. Outline of the Problem
Latency is becoming the critical performance factor for many (most?) Latency is becoming the critical performance factor for many (most?)
applications on the public Internet, e.g. interactive Web, Web applications on the public Internet, e.g. interactive Web, Web
services, voice, conversational video, interactive video, interactive services, voice, conversational video, interactive video, interactive
remote presence, instant messaging, online gaming, remote desktop, remote presence, instant messaging, online gaming, remote desktop,
cloud-based applications, and video-assisted remote control of cloud-based applications, and video-assisted remote control of
machinery and industrial processes. In the developed world, further machinery and industrial processes. In the developed world, further
increases in access network bit-rate offer diminishing returns, increases in access network bit-rate offer diminishing returns,
skipping to change at page 5, line 27 skipping to change at page 5, line 27
with ECN, not drop, for the signalling: with ECN, not drop, for the signalling:
1. The smaller sawteeth allow an extremely shallow ECN packet- 1. The smaller sawteeth allow an extremely shallow ECN packet-
marking threshold in the queue. marking threshold in the queue.
2. And no smoothing in the network means that every fluctuation of 2. And no smoothing in the network means that every fluctuation of
the queue is signalled immediately. the queue is signalled immediately.
Without ECN, either of these would lead to very high loss levels. Without ECN, either of these would lead to very high loss levels.
But, with ECN, the resulting high marking levels are just signals, But, with ECN, the resulting high marking levels are just signals,
not impairments. BBRv2 combines the best of both worlds - it works not impairments. (Note that BBRv2 [BBRv2] combines the best of both
as a scalable congestion control when ECN is available, but also aims worlds - it works as a scalable congestion control when ECN is
to minimize delay when it isn't. available, but also aims to minimize delay when it isn't.)
However, until now, Scalable congestion controls (like DCTCP) did not However, until now, Scalable congestion controls (like DCTCP) did not
co-exist well in a shared ECN-capable queue with existing ECN-capable co-exist well in a shared ECN-capable queue with existing Classic
TCP Reno [RFC5681] or Cubic [RFC8312] congestion controls -- Scalable (e.g. Reno [RFC5681] or Cubic [RFC8312]) congestion controls --
controls are so aggressive that these 'Classic' algorithms would Scalable controls are so aggressive that these 'Classic' algorithms
drive themselves to a small capacity share. Therefore, until now, would drive themselves to a small capacity share. Therefore, until
L4S controls could only be deployed where a clean-slate environment now, L4S controls could only be deployed where a clean-slate
could be arranged, such as in private data centres (hence the name environment could be arranged, such as in private data centres (hence
DCTCP). the name DCTCP).
This document specifies a `DualQ Coupled AQM' extension that solves One way to solve the problem of coexistence between Scalable and
the problem of coexistence between Scalable and Classic flows, Classic flows is to use a per-flow-queuing approach such as FQ-
without having to inspect flow identifiers. It is not like flow- CoDel [RFC8290]. It classifies packets by flow identifier into
queuing approaches [RFC8290] that classify packets by flow identifier separate queues in order to isolate sparse flows from the higher
into separate queues in order to isolate sparse flows from the higher latency in the queues assigned to heavier flows. However, if a flow
latency in the queues assigned to heavier flows. If a flow needs needs both low delay and high throughput, having a queue to itself
both low delay and high throughput, having a queue to itself does not does not isolate it from the harm it causes to itself. Also FQ
isolate it from the harm it causes to itself. In contrast, DualQ approaches need to inspect flow identifiers, which is not always
Coupled AQMs address the root cause of the latency problem -- they practical.
are an enabler for the smooth low latency scalable behaviour of
Scalable congestion controls, so that every packet in every flow can
potentially enjoy very low latency, then there would be no need to
isolate each flow into a separate queue.
1.2. Scope In summary, Scalable congestion controls address the root cause of
the latency, loss and scaling problems with Classic congestion
controls. Both FQ and DualQ AQMs are enablers for this smooth low
latency scalable behaviour. But handling individual flows is not
always applicable, whereas the DualQ approach is.
1.2. Context, Scope & Applicability
L4S involves complementary changes in the network and on end-systems: L4S involves complementary changes in the network and on end-systems:
Network: A DualQ Coupled AQM (defined in the present document) or a Network: A DualQ Coupled AQM (defined in the present document) or a
modification to flow-queue AQMs (described in section 4.2.b of the modification to flow-queue AQMs (described in section 4.2.b of the
L4S architecture [I-D.ietf-tsvwg-l4s-arch]); L4S architecture [I-D.ietf-tsvwg-l4s-arch]);
End-system: A Scalable congestion control (defined in section 4 of End-system: A Scalable congestion control (defined in section 4 of
the L4S ECN protocol [I-D.ietf-tsvwg-ecn-l4s-id]). the L4S ECN protocol [I-D.ietf-tsvwg-ecn-l4s-id]).
skipping to change at page 17, line 17 skipping to change at page 17, line 13
capitals) in Section 2.5 are observed. capitals) in Section 2.5 are observed.
The two queues could optionally be part of a larger queuing The two queues could optionally be part of a larger queuing
hierarchy, such as the initial example ideas in hierarchy, such as the initial example ideas in
[I-D.briscoe-tsvwg-l4s-diffserv]. [I-D.briscoe-tsvwg-l4s-diffserv].
2.5. Normative Requirements for a DualQ Coupled AQM 2.5. Normative Requirements for a DualQ Coupled AQM
The following requirements are intended to capture only the essential The following requirements are intended to capture only the essential
aspects of a DualQ Coupled AQM. They are intended to be independent aspects of a DualQ Coupled AQM. They are intended to be independent
of the particular AQMs used for each queue. of the particular AQMs implemented for each queue, but to still
define the DualQ framework built around those AQMs.
2.5.1. Functional Requirements 2.5.1. Functional Requirements
A Dual Queue Coupled AQM implementation MUST comply with the A Dual Queue Coupled AQM implementation MUST comply with the
prerequisite L4S behaviours for any L4S network node (not just a prerequisite L4S behaviours for any L4S network node (not just a
DualQ) as specified in section 5 of [I-D.ietf-tsvwg-ecn-l4s-id]. DualQ) as specified in section 5 of [I-D.ietf-tsvwg-ecn-l4s-id].
These primarily concern classification and remarking as briefly These primarily concern classification and remarking as briefly
summarized in Section 2.3 earlier. But there is also a subsection summarized in Section 2.3 earlier. But there is also a subsection
(5.5) giving guidance on reducing the burstiness of the link (5.5) giving guidance on reducing the burstiness of the link
technology underlying any L4S AQM. technology underlying any L4S AQM.
skipping to change at page 28, line 33 skipping to change at page 28, line 33
addressing the saturation problem. At saturation, DualPI2 switches addressing the saturation problem. At saturation, DualPI2 switches
into overload mode, where the base AQM is driven by the max delay of into overload mode, where the base AQM is driven by the max delay of
both queues and it introduces probabilistic drop to both queues both queues and it introduces probabilistic drop to both queues
equally. It leaves only a small range of congestion levels just equally. It leaves only a small range of congestion levels just
below saturation where unresponsive traffic gains any advantage from below saturation where unresponsive traffic gains any advantage from
using the ECN capability (relative to being unresponsive without using the ECN capability (relative to being unresponsive without
ECN), and the advantage is hardly detectable (see [DualQ-Test] and ECN), and the advantage is hardly detectable (see [DualQ-Test] and
section IV-E of [DCttH19]. Also overload with an unresponsive ECT(1) section IV-E of [DCttH19]. Also overload with an unresponsive ECT(1)
flow gets no more bandwidth advantage than with ECT(0). flow gets no more bandwidth advantage than with ECT(0).
5. Acknowledgements 5. References
Thanks to Anil Agarwal, Sowmini Varadhan's, Gabi Bracha, Nicolas
Kuhn, Greg Skinner, Tom Henderson, David Pullen, Mirja Kuehlewind,
Gorry Fairhurst, Pete Heist, Ermin Sakic and Martin Duke for detailed
review comments particularly of the appendices and suggestions on how
to make the explanations clearer. Thanks also to Tom Henderson for
insights on the choice of schedulers and queue delay measurement
techniques.
The early contributions of Koen De Schepper, Bob Briscoe, Olga
Bondarenko and Inton Tsang were part-funded by the European Community
under its Seventh Framework Programme through the Reducing Internet
Transport Latency (RITE) project (ICT-317700). Contributions of Koen
De Schepper and Olivier Tilmans were also part-funded by the 5Growth
and DAEMON EU H2020 projects. Bob Briscoe's contribution was also
part-funded by the Comcast Innovation Fund and the Research Council
of Norway through the TimeIn project. The views expressed here are
solely those of the authors.
6. Contributors
The following contributed implementations and evaluations that
validated and helped to improve this specification:
Olga Albisser <olga@albisser.org> of Simula Research Lab, Norway
(Olga Bondarenko during early drafts) implemented the prototype
DualPI2 AQM for Linux with Koen De Schepper and conducted
extensive evaluations as well as implementing the live performance
visualization GUI [L4Sdemo16].
Olivier Tilmans <olivier.tilmans@nokia-bell-labs.com> of Nokia
Bell Labs, Belgium prepared and maintains the Linux implementation
of DualPI2 for upstreaming.
Shravya K.S. wrote a model for the ns-3 simulator based on the -01
version of this Internet-Draft. Based on this initial work, Tom
Henderson <tomh@tomh.org> updated that earlier model and created a
model for the DualQ variant specified as part of the Low Latency
DOCSIS specification, as well as conducting extensive evaluations.
Ing Jyh (Inton) Tsang of Nokia, Belgium built the End-to-End Data
Centre to the Home broadband testbed on which DualQ Coupled AQM
implementations were tested.
7. References
7.1. Normative References 5.1. Normative References
[I-D.ietf-tsvwg-ecn-l4s-id] [I-D.ietf-tsvwg-ecn-l4s-id]
Schepper, K. D. and B. Briscoe, "Explicit Congestion Schepper, K. D. and B. Briscoe, "Explicit Congestion
Notification (ECN) Protocol for Very Low Queuing Delay Notification (ECN) Protocol for Very Low Queuing Delay
(L4S)", Work in Progress, Internet-Draft, draft-ietf- (L4S)", Work in Progress, Internet-Draft, draft-ietf-
tsvwg-ecn-l4s-id-26, 7 July 2022, tsvwg-ecn-l4s-id-28, 8 August 2022,
<https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg- <https://www.ietf.org/archive/id/draft-ietf-tsvwg-ecn-l4s-
ecn-l4s-id-26>. id-28.txt>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition
of Explicit Congestion Notification (ECN) to IP", of Explicit Congestion Notification (ECN) to IP",
RFC 3168, DOI 10.17487/RFC3168, September 2001, RFC 3168, DOI 10.17487/RFC3168, September 2001,
<https://www.rfc-editor.org/info/rfc3168>. <https://www.rfc-editor.org/info/rfc3168>.
[RFC8311] Black, D., "Relaxing Restrictions on Explicit Congestion [RFC8311] Black, D., "Relaxing Restrictions on Explicit Congestion
Notification (ECN) Experimentation", RFC 8311, Notification (ECN) Experimentation", RFC 8311,
DOI 10.17487/RFC8311, January 2018, DOI 10.17487/RFC8311, January 2018,
<https://www.rfc-editor.org/info/rfc8311>. <https://www.rfc-editor.org/info/rfc8311>.
7.2. Informative References 5.2. Informative References
[Alizadeh-stability] [Alizadeh-stability]
Alizadeh, M., Javanmard, A., and B. Prabhakar, "Analysis Alizadeh, M., Javanmard, A., and B. Prabhakar, "Analysis
of DCTCP: Stability, Convergence, and Fairness", ACM of DCTCP: Stability, Convergence, and Fairness", ACM
SIGMETRICS 2011 , June 2011, SIGMETRICS 2011 , June 2011,
<https://dl.acm.org/citation.cfm?id=1993753>. <https://dl.acm.org/citation.cfm?id=1993753>.
[AQMmetrics] [AQMmetrics]
Kwon, M. and S. Fahmy, "A Comparison of Load-based and Kwon, M. and S. Fahmy, "A Comparison of Load-based and
Queue- based Active Queue Management Algorithms", Proc. Queue- based Active Queue Management Algorithms", Proc.
skipping to change at page 31, line 45 skipping to change at page 30, line 49
thesis-henrste.pdf?sequence=1>. thesis-henrste.pdf?sequence=1>.
[Heist21] Heist, P. and J. Morton, "L4S Tests", github README, [Heist21] Heist, P. and J. Morton, "L4S Tests", github README,
August 2021, <https://github.com/heistp/l4s- August 2021, <https://github.com/heistp/l4s-
tests/#underutilization-with-bursty-traffic>. tests/#underutilization-with-bursty-traffic>.
[I-D.briscoe-docsis-q-protection] [I-D.briscoe-docsis-q-protection]
Briscoe, B. and G. White, "The DOCSIS(r) Queue Protection Briscoe, B. and G. White, "The DOCSIS(r) Queue Protection
Algorithm to Preserve Low Latency", Work in Progress, Algorithm to Preserve Low Latency", Work in Progress,
Internet-Draft, draft-briscoe-docsis-q-protection-06, 13 Internet-Draft, draft-briscoe-docsis-q-protection-06, 13
May 2022, <https://datatracker.ietf.org/doc/html/draft- May 2022, <https://www.ietf.org/archive/id/draft-briscoe-
briscoe-docsis-q-protection-06>. docsis-q-protection-06.txt>.
[I-D.briscoe-iccrg-prague-congestion-control] [I-D.briscoe-iccrg-prague-congestion-control]
Schepper, K. D., Tilmans, O., and B. Briscoe, "Prague Schepper, K. D., Tilmans, O., and B. Briscoe, "Prague
Congestion Control", Work in Progress, Internet-Draft, Congestion Control", Work in Progress, Internet-Draft,
draft-briscoe-iccrg-prague-congestion-control-00, 9 March draft-briscoe-iccrg-prague-congestion-control-01, 11 July
2021, <https://datatracker.ietf.org/doc/html/draft- 2022, <https://www.ietf.org/archive/id/draft-briscoe-
briscoe-iccrg-prague-congestion-control-00>. iccrg-prague-congestion-control-01.txt>.
[I-D.briscoe-tsvwg-l4s-diffserv] [I-D.briscoe-tsvwg-l4s-diffserv]
Briscoe, B., "Interactions between Low Latency, Low Loss, Briscoe, B., "Interactions between Low Latency, Low Loss,
Scalable Throughput (L4S) and Differentiated Services", Scalable Throughput (L4S) and Differentiated Services",
Work in Progress, Internet-Draft, draft-briscoe-tsvwg-l4s- Work in Progress, Internet-Draft, draft-briscoe-tsvwg-l4s-
diffserv-02, 4 November 2018, diffserv-02, 4 November 2018,
<https://datatracker.ietf.org/doc/html/draft-briscoe- <https://www.ietf.org/archive/id/draft-briscoe-tsvwg-l4s-
tsvwg-l4s-diffserv-02>. diffserv-02.txt>.
[I-D.cardwell-iccrg-bbr-congestion-control] [I-D.cardwell-iccrg-bbr-congestion-control]
Cardwell, N., Cheng, Y., Yeganeh, S. H., Swett, I., and V. Cardwell, N., Cheng, Y., Yeganeh, S. H., Swett, I., and V.
Jacobson, "BBR Congestion Control", Work in Progress, Jacobson, "BBR Congestion Control", Work in Progress,
Internet-Draft, draft-cardwell-iccrg-bbr-congestion- Internet-Draft, draft-cardwell-iccrg-bbr-congestion-
control-02, 7 March 2022, control-02, 7 March 2022,
<https://datatracker.ietf.org/doc/html/draft-cardwell- <https://www.ietf.org/archive/id/draft-cardwell-iccrg-bbr-
iccrg-bbr-congestion-control-02>. congestion-control-02.txt>.
[I-D.ietf-tsvwg-l4s-arch] [I-D.ietf-tsvwg-l4s-arch]
Briscoe, B., Schepper, K. D., Bagnulo, M., and G. White, Briscoe, B., Schepper, K. D., Bagnulo, M., and G. White,
"Low Latency, Low Loss, Scalable Throughput (L4S) Internet "Low Latency, Low Loss, Scalable Throughput (L4S) Internet
Service: Architecture", Work in Progress, Internet-Draft, Service: Architecture", Work in Progress, Internet-Draft,
draft-ietf-tsvwg-l4s-arch-18, 7 July 2022, draft-ietf-tsvwg-l4s-arch-19, 27 July 2022,
<https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg- <https://www.ietf.org/archive/id/draft-ietf-tsvwg-l4s-
l4s-arch-18>. arch-19.txt>.
[L4Sdemo16] [L4Sdemo16]
Bondarenko, O., De Schepper, K., Tsang, I., and B. Bondarenko, O., De Schepper, K., Tsang, I., and B.
Briscoe, "Ultra-Low Delay for All: Live Experience, Live Briscoe, "Ultra-Low Delay for All: Live Experience, Live
Analysis", Proc. MMSYS'16 pp33:1--33:4, May 2016, Analysis", Proc. MMSYS'16 pp33:1--33:4, May 2016,
<http://dl.acm.org/citation.cfm?doid=2910017.2910633 <http://dl.acm.org/citation.cfm?doid=2910017.2910633
(videos of demos: (videos of demos:
https://riteproject.eu/dctth/#1511dispatchwg )>. https://riteproject.eu/dctth/#1511dispatchwg )>.
[L4S_5G] Willars, P., Wittenmark, E., Ronkainen, H., Östberg, C., [L4S_5G] Willars, P., Wittenmark, E., Ronkainen, H., Östberg, C.,
skipping to change at page 34, line 12 skipping to change at page 33, line 12
Partridge, C., Peterson, L., Ramakrishnan, K., Shenker, Partridge, C., Peterson, L., Ramakrishnan, K., Shenker,
S., Wroclawski, J., and L. Zhang, "Recommendations on S., Wroclawski, J., and L. Zhang, "Recommendations on
Queue Management and Congestion Avoidance in the Queue Management and Congestion Avoidance in the
Internet", RFC 2309, DOI 10.17487/RFC2309, April 1998, Internet", RFC 2309, DOI 10.17487/RFC2309, April 1998,
<https://www.rfc-editor.org/info/rfc2309>. <https://www.rfc-editor.org/info/rfc2309>.
[RFC2914] Floyd, S., "Congestion Control Principles", BCP 41, [RFC2914] Floyd, S., "Congestion Control Principles", BCP 41,
RFC 2914, DOI 10.17487/RFC2914, September 2000, RFC 2914, DOI 10.17487/RFC2914, September 2000,
<https://www.rfc-editor.org/info/rfc2914>. <https://www.rfc-editor.org/info/rfc2914>.
[RFC3246] Davie, B., Charny, A., Bennet, J.C.R., Benson, K., Le [RFC3246] Davie, B., Charny, A., Bennet, J C R., Benson, K., Le
Boudec, J.Y., Courtney, W., Davari, S., Firoiu, V., and D. Boudec, J Y., Courtney, W., Davari, S., Firoiu, V., and D.
Stiliadis, "An Expedited Forwarding PHB (Per-Hop Stiliadis, "An Expedited Forwarding PHB (Per-Hop
Behavior)", RFC 3246, DOI 10.17487/RFC3246, March 2002, Behavior)", RFC 3246, DOI 10.17487/RFC3246, March 2002,
<https://www.rfc-editor.org/info/rfc3246>. <https://www.rfc-editor.org/info/rfc3246>.
[RFC3649] Floyd, S., "HighSpeed TCP for Large Congestion Windows", [RFC3649] Floyd, S., "HighSpeed TCP for Large Congestion Windows",
RFC 3649, DOI 10.17487/RFC3649, December 2003, RFC 3649, DOI 10.17487/RFC3649, December 2003,
<https://www.rfc-editor.org/info/rfc3649>. <https://www.rfc-editor.org/info/rfc3649>.
[RFC5033] Floyd, S. and M. Allman, "Specifying New Congestion [RFC5033] Floyd, S. and M. Allman, "Specifying New Congestion
Control Algorithms", BCP 133, RFC 5033, Control Algorithms", BCP 133, RFC 5033,
skipping to change at page 46, line 32 skipping to change at page 45, line 32
a burst arrives at an empty queue, the sojourn time only fully a burst arrives at an empty queue, the sojourn time only fully
measures the burst's delay when its last packet is dequeued, even measures the burst's delay when its last packet is dequeued, even
though the queue has known the size of the burst since its last though the queue has known the size of the burst since its last
packet was enqueued - so it could have signalled congestion packet was enqueued - so it could have signalled congestion
earlier. To remedy this, each head packet can be marked when it earlier. To remedy this, each head packet can be marked when it
is dequeued based on the expected delay of the tail packet behind is dequeued based on the expected delay of the tail packet behind
it, as explained below, rather than based on the head packet's it, as explained below, rather than based on the head packet's
own delay due to the packets in front of it. [Heist21] identifies own delay due to the packets in front of it. [Heist21] identifies
a specific scenario where bursty traffic significantly hits a specific scenario where bursty traffic significantly hits
utilization of the L queue. If this effect proves to be more utilization of the L queue. If this effect proves to be more
widely applicable, it is believed that using the delay behind the widely applicable, using the delay behind the head could improve
head would improve performance. performance.
The delay behind the head can be implemented by dividing the The delay behind the head can be implemented by dividing the
backlog at dequeue by the link rate or equivalently multiplying backlog at dequeue by the link rate or equivalently multiplying
the backlog by the delay per unit of backlog. The implementation the backlog by the delay per unit of backlog. The implementation
details will depend on whether the link rate is known; if it is details will depend on whether the link rate is known; if it is
not, a moving average of the delay per unit backlog can be not, a moving average of the delay per unit backlog can be
maintained. This delay consists of serialization as well as maintained. This delay consists of serialization as well as
media acquisition for shared media. So the details will depend media acquisition for shared media. So the details will depend
strongly on the specific link technology, This approach should be strongly on the specific link technology, This approach should be
less sensitive to timing errors and cost less in operations and less sensitive to timing errors and cost less in operations and
skipping to change at page 59, line 45 skipping to change at page 58, line 45
13: continue % continue to the top of the while loop 13: continue % continue to the top of the while loop
14: } 14: }
15: mark(pkt) 15: mark(pkt)
16: } 16: }
17: } 17: }
18: return(pkt) % return the packet and stop here 18: return(pkt) % return the packet and stop here
19: } 19: }
20: return(NULL) % no packet to dequeue 20: return(NULL) % no packet to dequeue
21: } 21: }
Figure 11: Optimised Example Dequeue Pseudocode for Coupled DualQ Figure 11: Optimised Example Dequeue Pseudocode for DualQ Coupled
AQM using Integer Arithmetic AQM using Integer Arithmetic
The two ranges, range_L and range_C are expressed as powers of 2 so The two ranges, range_L and range_C are expressed as powers of 2 so
that division can be implemented as a right bit-shift (>>) in lines 5 that division can be implemented as a right bit-shift (>>) in lines 5
and 10 of the integer variant of the pseudocode (Figure 11). and 10 of the integer variant of the pseudocode (Figure 11).
For the integer variant of the pseudocode, an integer version of the For the integer variant of the pseudocode, an integer version of the
rand() function used at line 25 of the maxrand(function) in Figure 10 rand() function used at line 25 of the maxrand(function) in Figure 10
would be arranged to return an integer in the range 0 <= maxrand() < would be arranged to return an integer in the range 0 <= maxrand() <
2^32 (not shown). This would scale up all the floating point 2^32 (not shown). This would scale up all the floating point
skipping to change at page 65, line 8 skipping to change at page 64, line 8
derived from a typical RTT for the Internet. derived from a typical RTT for the Internet.
As a non-Internet example, for localized traffic from a particular As a non-Internet example, for localized traffic from a particular
ISP's data centre, using the measured RTTs, it was calculated that a ISP's data centre, using the measured RTTs, it was calculated that a
value of k = 8 would achieve throughput equivalence, and experiments value of k = 8 would achieve throughput equivalence, and experiments
verified the formula very closely. verified the formula very closely.
But, for a typical mix of RTTs across the general Internet, a value But, for a typical mix of RTTs across the general Internet, a value
of k=2 is recommended as a good workable compromise. of k=2 is recommended as a good workable compromise.
Acknowledgements
Thanks to Anil Agarwal, Sowmini Varadhan, Gabi Bracha, Nicolas Kuhn,
Greg Skinner, Tom Henderson, David Pullen, Mirja Kuehlewind, Gorry
Fairhurst, Pete Heist, Ermin Sakic and Martin Duke for detailed
review comments particularly of the appendices and suggestions on how
to make the explanations clearer. Thanks also to Tom Henderson for
insights on the choice of schedulers and queue delay measurement
techniques. And thanks to the area reviewer, Christer Holmberg.
The early contributions of Koen De Schepper, Bob Briscoe, Olga
Bondarenko and Inton Tsang were part-funded by the European Community
under its Seventh Framework Programme through the Reducing Internet
Transport Latency (RITE) project (ICT-317700). Contributions of Koen
De Schepper and Olivier Tilmans were also part-funded by the 5Growth
and DAEMON EU H2020 projects. Bob Briscoe's contribution was also
part-funded by the Comcast Innovation Fund and the Research Council
of Norway through the TimeIn project. The views expressed here are
solely those of the authors.
Contributors
The following contributed implementations and evaluations that
validated and helped to improve this specification:
Olga Albisser <olga@albisser.org> of Simula Research Lab, Norway
(Olga Bondarenko during early drafts) implemented the prototype
DualPI2 AQM for Linux with Koen De Schepper and conducted
extensive evaluations as well as implementing the live performance
visualization GUI [L4Sdemo16].
Olivier Tilmans <olivier.tilmans@nokia-bell-labs.com> of Nokia
Bell Labs, Belgium prepared and maintains the Linux implementation
of DualPI2 for upstreaming.
Shravya K.S. wrote a model for the ns-3 simulator based on the -01
version of this Internet-Draft. Based on this initial work, Tom
Henderson <tomh@tomh.org> updated that earlier model and created a
model for the DualQ variant specified as part of the Low Latency
DOCSIS specification, as well as conducting extensive evaluations.
Ing Jyh (Inton) Tsang of Nokia, Belgium built the End-to-End Data
Centre to the Home broadband testbed on which DualQ Coupled AQM
implementations were tested.
Authors' Addresses Authors' Addresses
Koen De Schepper Koen De Schepper
Nokia Bell Labs Nokia Bell Labs
Antwerp Antwerp
Belgium Belgium
Email: koen.de_schepper@nokia.com Email: koen.de_schepper@nokia.com
URI: https://www.bell-labs.com/usr/koen.de_schepper URI: https://www.bell-labs.com/usr/koen.de_schepper
Bob Briscoe (editor) Bob Briscoe (editor)
 End of changes. 30 change blocks. 
133 lines changed or deleted 143 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/