| < 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/ | ||||