< draft-irtf-nwcrg-coding-and-congestion-09.txt   draft-irtf-nwcrg-coding-and-congestion-10.txt >
NWCRG N. Kuhn NWCRG N. Kuhn
Internet-Draft CNES Internet-Draft CNES
Intended status: Informational E. Lochin Intended status: Informational E. Lochin
Expires: December 27, 2021 ENAC Expires: July 19, 2022 ENAC
F. Michel F. Michel
UCLouvain UCLouvain
M. Welzl M. Welzl
University of Oslo University of Oslo
June 25, 2021 January 15, 2022
Coding and congestion control in transport Coding and congestion control in transport
draft-irtf-nwcrg-coding-and-congestion-09 draft-irtf-nwcrg-coding-and-congestion-10
Abstract Abstract
Forward Erasure Correction (FEC) is a reliability mechanism that is Forward Erasure Correction (FEC) is a reliability mechanism that is
distinct and separate from the retransmission logic in reliable distinct and separate from the retransmission logic in reliable
transfer protocols such as TCP. FEC coding can help deal with losses transfer protocols such as TCP. FEC coding can help deal with losses
at the end of transfers or with networks having non-congestion at the end of transfers or with networks having non-congestion
losses. However, FEC coding mechanisms should not hide congestion losses. However, FEC coding mechanisms should not hide congestion
signals. This memo offers a discussion of how FEC coding and signals. This memo offers a discussion of how FEC coding and
congestion control can coexist. Another objective is to encourage congestion control can coexist. Another objective is to encourage
skipping to change at page 1, line 49 skipping to change at page 1, line 49
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 December 27, 2021. This Internet-Draft will expire on July 19, 2022.
Copyright Notice Copyright Notice
Copyright (c) 2021 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 Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 2, line 43 skipping to change at page 2, line 43
3.2. Congestion control and recovered symbols . . . . . . . . 11 3.2. Congestion control and recovered symbols . . . . . . . . 11
3.3. Interactions between congestion control and coding rates 11 3.3. Interactions between congestion control and coding rates 11
3.4. On useless repair symbols . . . . . . . . . . . . . . . . 11 3.4. On useless repair symbols . . . . . . . . . . . . . . . . 11
3.5. On partial ordering . . . . . . . . . . . . . . . . . . . 11 3.5. On partial ordering . . . . . . . . . . . . . . . . . . . 11
3.6. On partial reliability . . . . . . . . . . . . . . . . . 12 3.6. On partial reliability . . . . . . . . . . . . . . . . . 12
3.7. On multipath transport . . . . . . . . . . . . . . . . . 12 3.7. On multipath transport . . . . . . . . . . . . . . . . . 12
4. FEC within the transport . . . . . . . . . . . . . . . . . . 12 4. FEC within the transport . . . . . . . . . . . . . . . . . . 12
4.1. Fairness and impact on non-coded flows . . . . . . . . . 13 4.1. Fairness and impact on non-coded flows . . . . . . . . . 13
4.2. Congestion control and recovered symbols . . . . . . . . 13 4.2. Congestion control and recovered symbols . . . . . . . . 13
4.3. Interactions between congestion control and coding rates 13 4.3. Interactions between congestion control and coding rates 13
4.4. On useless repair symbols . . . . . . . . . . . . . . . . 13 4.4. On useless repair symbols . . . . . . . . . . . . . . . . 14
4.5. On partial ordering . . . . . . . . . . . . . . . . . . . 14 4.5. On partial ordering . . . . . . . . . . . . . . . . . . . 14
4.6. On partial reliability . . . . . . . . . . . . . . . . . 14 4.6. On partial reliability . . . . . . . . . . . . . . . . . 14
4.7. On transport multipath . . . . . . . . . . . . . . . . . 14 4.7. On transport multipath . . . . . . . . . . . . . . . . . 14
5. FEC below the transport . . . . . . . . . . . . . . . . . . . 14 5. FEC below the transport . . . . . . . . . . . . . . . . . . . 14
5.1. Fairness and impact on non-coded flows . . . . . . . . . 15 5.1. Fairness and impact on non-coded flows . . . . . . . . . 16
5.2. Congestion control and recovered symbols . . . . . . . . 16 5.2. Congestion control and recovered symbols . . . . . . . . 16
5.3. Interactions between congestion control and coding rates 16 5.3. Interactions between congestion control and coding rates 16
5.4. On useless repair symbols . . . . . . . . . . . . . . . . 16 5.4. On useless repair symbols . . . . . . . . . . . . . . . . 16
5.5. On partial ordering . . . . . . . . . . . . . . . . . . . 16 5.5. On partial ordering . . . . . . . . . . . . . . . . . . . 17
5.6. On partial reliability . . . . . . . . . . . . . . . . . 16 5.6. On partial reliability . . . . . . . . . . . . . . . . . 17
5.7. On transport multipath . . . . . . . . . . . . . . . . . 16 5.7. On transport multipath . . . . . . . . . . . . . . . . . 17
6. Research recommendations and questions . . . . . . . . . . . 17 6. Research recommendations and questions . . . . . . . . . . . 17
6.1. Activities related to congestion control and coding . . . 17 6.1. Activities related to congestion control and coding . . . 17
6.2. Open research questions . . . . . . . . . . . . . . . . . 17 6.2. Open research questions . . . . . . . . . . . . . . . . . 18
6.2.1. Parameter derivation . . . . . . . . . . . . . . . . 17 6.2.1. Parameter derivation . . . . . . . . . . . . . . . . 18
6.2.2. New signaling methods and fairness . . . . . . . . . 18 6.2.2. New signaling methods and fairness . . . . . . . . . 18
6.3. Recommendations and advice for evaluating coding 6.3. Recommendations and advice for evaluating coding
mechanisms . . . . . . . . . . . . . . . . . . . . . . . 18 mechanisms . . . . . . . . . . . . . . . . . . . . . . . 19
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19
9. Security Considerations . . . . . . . . . . . . . . . . . . . 19 9. Security Considerations . . . . . . . . . . . . . . . . . . . 19
10. Informative References . . . . . . . . . . . . . . . . . . . 19 10. Informative References . . . . . . . . . . . . . . . . . . . 20
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22
1. Introduction 1. Introduction
There are cases where deploying FEC coding improves the performance There are cases where deploying FEC coding improves the performance
of a transmission. As an example, it may take time for a sender to of a transmission. As an example, it may take time for a sender to
detect transfer tail losses (losses that occur at the end of a detect transfer tail losses (losses that occur at the end of a
transfer, where, e.g., TCP obtains no more ACKs that would enable it transfer, where, e.g., TCP obtains no more ACKs that would enable it
to quickly repair the loss via retransmission). Allowing the to quickly repair the loss via retransmission). Allowing the
receiver to recover such losses instead of having to rely on a receiver to recover such losses instead of having to rely on a
retransmission could improve the experience of applications using retransmission could improve the experience of applications using
skipping to change at page 12, line 45 skipping to change at page 12, line 45
Figure 7: FEC in the transport Figure 7: FEC in the transport
Figure 7 presents an architecture where FEC operates within the Figure 7 presents an architecture where FEC operates within the
transport. The repair symbols are sent within what the congestion transport. The repair symbols are sent within what the congestion
window or calculated rate allows, such as in [CTCP]. window or calculated rate allows, such as in [CTCP].
The advantage of this approach is that it allows a joint optimization The advantage of this approach is that it allows a joint optimization
of CC and FEC. Moreover, the transmission of repair symbols does not of CC and FEC. Moreover, the transmission of repair symbols does not
add congestion in potentially congested networks but helps repair add congestion in potentially congested networks but helps repair
lost packets (such as tail losses). lost packets (such as tail losses). This joint optimization is the
key to prevent flows to consume the whole available capacity. The
amount of repair traffic injected should not lead to congestion. As
denoted in [I-D.singh-rmcat-adaptive-fec], an increase of the repair
ratio should be done conjointly with a decrease of the source sending
rate.
For reliable transfers, including redundancy reduces goodput for long For reliable transfers, including redundancy reduces goodput for long
transfers but the amount of repair symbols can be adapted, e.g. transfers but the amount of repair symbols can be adapted, e.g.
depending on the congestion window size. There is a trade-off depending on the congestion window size. There is a trade-off
between 1) the capacity that could have been exploited by application between 1) the capacity that could have been exploited by application
data instead of transmitting source packets, and 2) the benefits data instead of transmitting source packets, and 2) the benefits
derived from transmitting repair symbols (e.g. unlocking the receive derived from transmitting repair symbols (e.g. unlocking the receive
buffer if it is limiting). The coding ratio needs to be carefully buffer if it is limiting). The coding ratio needs to be carefully
designed. For small files, sending repair symbols when there is no designed. For small files, sending repair symbols when there is no
more data to transmit could help to reduce the transfer time. more data to transmit could help to reduce the transfer time.
skipping to change at page 19, line 51 skipping to change at page 20, line 29
arXiv 1212.2291v3, 2013. arXiv 1212.2291v3, 2013.
[I-D.briscoe-tsvarea-fair] [I-D.briscoe-tsvarea-fair]
Briscoe, B., "Flow Rate Fairness: Dismantling a Religion", Briscoe, B., "Flow Rate Fairness: Dismantling a Religion",
draft-briscoe-tsvarea-fair-02 (work in progress), July draft-briscoe-tsvarea-fair-02 (work in progress), July
2007. 2007.
[I-D.detchart-nwcrg-tetrys] [I-D.detchart-nwcrg-tetrys]
Detchart, J., Lochin, E., Lacan, J., and V. Roca, "Tetrys, Detchart, J., Lochin, E., Lacan, J., and V. Roca, "Tetrys,
an On-the-Fly Network Coding protocol", draft-detchart- an On-the-Fly Network Coding protocol", draft-detchart-
nwcrg-tetrys-06 (work in progress), December 2020. nwcrg-tetrys-08 (work in progress), October 2021.
[I-D.ietf-quic-datagram] [I-D.ietf-quic-datagram]
Pauly, T., Kinnear, E., and D. Schinazi, "An Unreliable Pauly, T., Kinnear, E., and D. Schinazi, "An Unreliable
Datagram Extension to QUIC", draft-ietf-quic-datagram-02 Datagram Extension to QUIC", draft-ietf-quic-datagram-07
(work in progress), February 2021. (work in progress), December 2021.
[I-D.singh-rmcat-adaptive-fec]
Singh, V., Nagy, M., Ott, J., and L. Eggert, "Congestion
Control Using FEC for Conversational Media", draft-singh-
rmcat-adaptive-fec-03 (work in progress), March 2016.
[I-D.swett-nwcrg-coding-for-quic] [I-D.swett-nwcrg-coding-for-quic]
Swett, I., Montpetit, M., Roca, V., and F. Michel, "Coding Swett, I., Montpetit, M., Roca, V., and F. Michel, "Coding
for QUIC", draft-swett-nwcrg-coding-for-quic-04 (work in for QUIC", draft-swett-nwcrg-coding-for-quic-04 (work in
progress), March 2020. progress), March 2020.
[NCTCP] Sundararajan (et al.), J., "Network Coding Meets TCP: [NCTCP] Sundararajan (et al.), J., "Network Coding Meets TCP:
Theory and Implementation", IEEE Theory and Implementation", IEEE
INFOCOM 10.1109/JPROC.2010.2093850, 2009. INFOCOM 10.1109/JPROC.2010.2093850, 2009.
skipping to change at page 21, line 40 skipping to change at page 22, line 27
January 2020, <https://www.rfc-editor.org/info/rfc8699>. January 2020, <https://www.rfc-editor.org/info/rfc8699>.
[TENTET] Lochin, E., "On the joint use of TCP and Network Coding", [TENTET] Lochin, E., "On the joint use of TCP and Network Coding",
NWCRG session IETF 100, 2017. NWCRG session IETF 100, 2017.
Authors' Addresses Authors' Addresses
Nicolas Kuhn Nicolas Kuhn
CNES CNES
Email: nicolas.kuhn@cnes.fr Email: nicolas.kuhn@ietf.gmail.com
Emmanuel Lochin Emmanuel Lochin
ENAC ENAC
Email: emmanuel.lochin@enac.fr Email: emmanuel.lochin@enac.fr
Francois Michel Francois Michel
UCLouvain UCLouvain
Email: francois.michel@uclouvain.be Email: francois.michel@uclouvain.be
 End of changes. 15 change blocks. 
20 lines changed or deleted 30 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/