Internet DRAFT - draft-kuhn-coding-congestion-transport
draft-kuhn-coding-congestion-transport
NWCRG N. Kuhn, Ed.
Internet-Draft CNES
Intended status: Informational E. Lochin, Ed.
Expires: April 29, 2020 ISAE-SUPAERO
F. Michel, Ed.
UCLouvain
October 27, 2019
Coding and congestion control in transport
draft-kuhn-coding-congestion-transport-00
Abstract
There are discussions on how loss-based congestion controls consider
lost packets that have been recovered by a coding mechanism. This
document analyses to what extent transport protocols could ignore
such signals and proposes best current practices on the interaction
between congestion control and coding mechanism at the transport
layer. Coding for tunnels is out-of-the scope of the document.
Examples of interest for the proposed solution is to better deal with
tail losses or with networks with non-congestion losses.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 29, 2020.
Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
Kuhn, et al. Expires April 29, 2020 [Page 1]
Internet-Draft Coding and congestion October 2019
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Base solution description . . . . . . . . . . . . . . . . . . 2
3. Sender-side coding solutions . . . . . . . . . . . . . . . . 3
3.1. Coded packets without considering CWND progression . . . 3
3.2. Coded packets driven by CWND progression . . . . . . . . 3
4. Sender-side reaction to recovered packet signals . . . . . . 4
4.1. The sender congestion control considers recovered packet
signals as congestion-implied packet losses . . . . . . . 4
4.2. The sender adapts its window reduction to recovered
packet signals . . . . . . . . . . . . . . . . . . . . . 4
4.3. The sender ignores recovered packet signals . . . . . . . 5
5. Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6
7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 6
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6
9. Security Considerations . . . . . . . . . . . . . . . . . . . 6
10. Informative References . . . . . . . . . . . . . . . . . . . 6
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7
1. Introduction
[RFC5681] defines TCP as a loss-based congestion control. Coding
mechanisms can be deployed and could hide congestion signals to the
sender.
Because loss-based and delay-based congestion controls are deployed
in the current Internet, this memo discusses simple best practices on
how coding and congestion control mechanisms could coexist.
The proposed recommendations apply for coding at the transport layer
(coding for tunnels is out-of-the scope of the document). Examples
of interest for the proposed solution is to better deal with tail
losses or with networks with non-congestion losses.
2. Base solution description
The base solution can be described as follows:
Kuhn, et al. Expires April 29, 2020 [Page 2]
Internet-Draft Coding and congestion October 2019
o The receiver MUST indicate to the sender that one or multiple
packets have been recovered using a coding scheme. Such "repaired
packet signal" could be based on existing signals (even if the
existing signal was not designed for that purpose, such as ECN) or
on new type of signals (such as a RECOVERED frame in QUIC).
o The sender MUST be able to detect the "recovered packet signal".
The base solution does not describe how the sender reacts to such
signal.
The proposed solution applies for coding in the transport layer. The
proposed approach is inline with the one in
[I-D.swett-nwcrg-coding-for-quic].
The proposed solution does not applies for the interaction between
coding under the transport layer (i.e. not end-to-end), such as
coding for tunnels.
3. Sender-side coding solutions
This section presents solutions for a sender to add application
coding.
3.1. Coded packets without considering CWND progression
In this solution, the coded packets are sent on top of what is
allowed by a congestion window. Examples of the solution could be
adding a given pourcentage of the congestion window as supplementary
packets or sending a given amount of coded packets at a given rate.
The redundancy flow can be decorrelated from the congestion control
that manages source packets : a secondary congestion control can be
introduced, such as in coupled congestion control for RTP media
[I-D.ietf-rmcat-coupled-cc]. An example would be to exploit a lower
than best-effort congestion control [RFC6297].
The advantage of such solution is that coding would help in
challenges cases where transmission losses are persistent.
The drawback of such solution is that it may result in coding
solutions being unfair towards non-coding solutions. This solutions
may result in adding congestion in congested networks.
3.2. Coded packets driven by CWND progression
In this solution, the coded packets are sent within what the
congestion window allows, such as in [CTCP]. Examples of the
solution would be sending coded packets when there is no more data to
Kuhn, et al. Expires April 29, 2020 [Page 3]
Internet-Draft Coding and congestion October 2019
transmit or preferably send coded packets instead of the following
packets in the send buffer.
The advantage of this solution is that it does not contribute in
adding more congestion than the congestion window allows. Indeed,
all traffic (source and redundancy) is controlled by one congestion
control only and TCP metrics for fairness can be indifferently
applied in this case.
The main drawback is the decrease of goodput if coded packets are
sent but are not used at the client side.
4. Sender-side reaction to recovered packet signals
Delay-based congestion controls ignore packets that have been
repaired with coding. There is no need to define best current
pratices in this case. However, more discussions are required for
congestion controls that use loss as congestion signals (potentially
among other congestion detection mechanism).
4.1. The sender congestion control considers recovered packet signals
as congestion-implied packet losses
In this solution, the sender reacts to recovered packet signals as to
congestion-implied packet losses. That being said, this does not
necessarily means that the packets have actually been lost. The
server may have other means to identify that the packet was just out-
of-ordered and ignore the recovered packet signals.
The advantages of the solution are (1) that coding mechanisms do not
hide congestion signals, such as packets voluntary dropped by a AQM
[RFC7567] and (2) packets may be recovered faster than with
traditionnal retransmission mechanisms.
The drawback of this solution is that, if there is a high non-
congestion loss rate, the congestion control throughput may decrease
drastically. Reporting this amount of loss to a sender may reduce
the application goodput when there is no actual congestion.
4.2. The sender adapts its window reduction to recovered packet signals
In this solution, the sender does not reduce the congestion window
with the same amount when the "recovered packet signal" is received,
i.e. when a packet has been lost but recovered. Example of this
solution could be based on [RFC8511] or considering that recovering
an isolated packet is not an actual sign of congestion.
Kuhn, et al. Expires April 29, 2020 [Page 4]
Internet-Draft Coding and congestion October 2019
The advantage of the solution is that in cases where there is no
actual congestion, coding could help in improving the transmission
without ignoring congestion signals.
The main drawback is the precised design of the solution and its
interaction with AQM mechanisms [RFC7567]. Moreover there may be
fairness issues since AIMD convergence may not be guaranteed.
4.3. The sender ignores recovered packet signals
This is the case for delay-based congestion controls. The
interaction between delay-based congestion controls and the delay
induced by a coding mechanisms is an open research activity. That
being said, a potential approach would be that loss-based congestion
control ignores the "recovered packet signal".
The advantage of this solution is that coding would provided
substantial benefits in cases where there are transmission losses.
However, this solution hides potential congestion losses, making it
unfair to other congestion controls.
5. Summary
This section provides a summary on the content in previous sections.
The Figure 1 sums up some recommendations. It is worth pointing out
that the "coding without congestion" considers that coded packets are
sent along with original data packets, in opposition with the
solution where coded packets are transmitted only when there is no
more original packets to transmit. Moreover, the values indicated in
this Figure consider a channel that does not exhibit a high loss
pattern.
Kuhn, et al. Expires April 29, 2020 [Page 5]
Internet-Draft Coding and congestion October 2019
+-----------------------+--------------------------------+
| Sender-side reaction | Sender-side coding solutions |
| to recovered packet | |
| signals | |
| +---------------+----------------+
| | Coding adding | Coding without |
| | congestion | congestion |
+-----------------------+---------------+----------------+
| React as loss | fairness: ~ | fairness: ++ |
| | real-time: + | real-time: + |
| | bulk: ~ | bulk: - |
+-----------------------+---------------+----------------+
| Adapt window reduction| fairness: ~ | fairness: + |
| | real-time: + | real-time: + |
| | bulk: + | bulk: - |
+-----------------------+---------------+----------------+
| Ignore signals | fairness: - | fairness: - |
| | real-time: + | real-time: + |
| | bulk: + | bulk: - |
+-----------------------+---------------+----------------+
Figure 1: Recommendations
6. Acknowledgements
Many thanks to TBD.
7. Contributors
TBD
8. IANA Considerations
This memo includes no request to IANA.
9. Security Considerations
Security section goes here.
10. Informative References
[CTCP] Kim (et al.), M., "Network Coded TCP (CTCP)",
arXiv 1212.2291v3, 2013.
[I-D.ietf-rmcat-coupled-cc]
Islam, S., Welzl, M., and S. Gjessing, "Coupled congestion
control for RTP media", draft-ietf-rmcat-coupled-cc-09
(work in progress), August 2019.
Kuhn, et al. Expires April 29, 2020 [Page 6]
Internet-Draft Coding and congestion October 2019
[I-D.swett-nwcrg-coding-for-quic]
Swett, I., Montpetit, M., Roca, V., and F. Michel, "Coding
for QUIC", draft-swett-nwcrg-coding-for-quic-03 (work in
progress), July 2019.
[RFC5681] Allman, M., Paxson, V., and E. Blanton, "TCP Congestion
Control", RFC 5681, DOI 10.17487/RFC5681, September 2009,
<https://www.rfc-editor.org/info/rfc5681>.
[RFC6297] Welzl, M. and D. Ros, "A Survey of Lower-than-Best-Effort
Transport Protocols", RFC 6297, DOI 10.17487/RFC6297, June
2011, <https://www.rfc-editor.org/info/rfc6297>.
[RFC7567] Baker, F., Ed. and G. Fairhurst, Ed., "IETF
Recommendations Regarding Active Queue Management",
BCP 197, RFC 7567, DOI 10.17487/RFC7567, July 2015,
<https://www.rfc-editor.org/info/rfc7567>.
[RFC8511] Khademi, N., Welzl, M., Armitage, G., and G. Fairhurst,
"TCP Alternative Backoff with ECN (ABE)", RFC 8511,
DOI 10.17487/RFC8511, December 2018,
<https://www.rfc-editor.org/info/rfc8511>.
Authors' Addresses
Nicolas Kuhn (editor)
CNES
Email: nicolas.kuhn@cnes.fr
Emmanuel Lochin (editor)
ISAE-SUPAERO
Email: emmanuel.lochin@isae-supaero.fr
Francois Michel (editor)
UCLouvain
Email: francois.michel@uclouvain.be
Kuhn, et al. Expires April 29, 2020 [Page 7]