Original text:
Abstract <del> Coding is a reliability mechanism that is distinct and separated from the loss detection of congestion controls.  Using coding can be a useful way to better deal with tail losses or with networks with non- congestion losses.  However, coding mechanisms should not hide congestion signals.  This memo offers a discussion of how coding and congestion control can coexist.  This document can help the comparison of FEC schemes by identifying at which level they are operating with respect to the transport congestion control. </del>  This document is the product of the Coding for Efficient Network Communications Research Group (NWCRG).  The scope of the document is <del> end-to-end communications: coding for tunnels is out-of-the scope of the document. </del>  1. <del> There are cases where deploying coding improves the quality of the transmission.  As an example, it may take time for the server to detect tail losses and this would impact the experience of applications using short flows.  Another example are networks where non-congestion losses are persistent and prevent a sender from exploiting the link capacity. </del>  Coding is a reliability mechanism that is distinct and separated from the loss detection of congestion controls.  RFC5681 defines TCP as a <del> loss-based congestion control; because coding repairs such losses, blindly applying it may easily lead to an implementation that also hides a congestion signal to the sender.  It is important to ensure that such information hiding does not occur. </del>  <del> This memo offers a discussion of how coding and congestion control can coexist.  One objective is to help the research community consider congestion control aspects when proposing and comparing coding solutions. </del>  This document represents the collaborative work and consensus of the Coding for Efficient Network Communications Research Group (NWCRG); <del> it is not an IETF product and is not a standard.  The proposed recommendations apply for coding at the transport or application layer.  Coding for tunnels is out of scope for the document. </del>  2. fig:sep-channel presents the notations that will be used in this document and introduce the Congestion Control (CC) and Forward Erasure Correction (FEC) channels.  The Congestion Control channel <del> carries data packets (from a server to a client) and potential </del>  information signaling the packets that have been received (from the client to the server).  The Forward Erasure Correction channel <del> carries coded packets (from the server to the client) and a potiential information signaling the packets that have been repaired </del>  (from the client to the server).  It is worth pointing out that there are cases where these channels are not separated. conceptually separate: fig:sep-entities provides more details than fig:sep-channel by <del> focusing on the server side.  The inputs to FEC (data to work upon, and signaling from the receiver about losses and/or repaired blocks) are distinct from the inputs to CC.  The latter calculates a sending rate or window from network measurements, and it takes the data to send as input, sometimes along with application requirements such as upper/lower rate bounds, periods of quiescence, or a priority. </del>  It is not clear that the ACK signals feeding into a congestion control algorithm are useful to FEC in their raw form, and vice versa - information about repaired blocks may be quite irrelevant to a CC <del> algorithm.  However, there can be meaningful other interactions (indicated by the horizontal double arrow) between the two entities, usually as a result of their operation rather than by relaying their own raw inputs. </del>  3. <del> This section describes the scope of the document. </del>  3.1. <del> The document focuses on reliable transmissions. 3.2. The document focuses on end-to-end coding, i.e. cases where coding is added at the server and client end points.  The discussions should then consider fairness with non-coding solutions. 3.3. sec:notations presents that FEC and CC can be seen as two separate channels.  In practice, implementations may mix the signals that are exchanged on these channels.  This document discusses how FEC and CC relate.  The discussion can help in avoiding comparing FEC schemes that do not operate at the same level (with respect to the CC).  [NK: We may want to later add that we provide recommendations - but for the moment, we may just list the server side coding solutions in the layering approach without providing recommendations for each case] 4. </del> fig:fec-above illustrates the FEC above the transport case. fig:fec-above presents an architecture where FEC is on top of the <del> transport.  The coded packets are sent within what the congestion </del>  window allows. The advantage of this approach is that the FEC does not contribute to adding congestion in the network. <del> The drawback of this approach is that it is useless if the transport guarantees data delivery by retransmitting packets. </del>  <del> 5. </del>  fig:fec-in illustrates the FEC within the transport case. fig:fec-in presents an architecture where FEC is within the <del> transport.  The coded packets are sent within what the congestion </del>  window allows, such as in CTCP.  Examples of the solution would be <del> sending coded packets when there is no more data to transmit or preferably send coded packets instead of the following packets in the send buffer. </del>  The advantage of this approach is that it can enable conjoint optimization between the CC and the FEC.  Moreover, the transmission <del> of coded packets does not add congestion in potentially congested </del>  networks but help repair lost packets (such as tail losses). The drawback of this approach is that it may not result in much gains as opposed to classical CC retransmissions mechanisms and it costs <del> bandwidth that could have been exploited to transmit non coded data packets.  The coding ratio needs to be carefully designed. </del>  <del> 6. </del>  fig:fec-below illustrates the FEC below the transport case. fig:fec-below presents an architecture where FEC is below the <del> transport.  The coded packets are sent on top of what is allowed by </del>  the congestion control.  Examples of the solution could be adding a given percentage of the congestion window as supplementary packets or <del> sending a given amount of coded packets at a given rate.  The </del>  redundancy flow can be decorrelated from the congestion control that manages source packets: a secondary congestion control could be introduced underneath the FEC layer, such as in coupled congestion already congested networks.  The coding ratio needs to be carefully designed. <del> 7. </del>  This memo includes no request to IANA. <del> 8. </del>  <del> There is no security considerations required for this document. </del> 

Reviewer comments:
Never say what follows: There is no security considerations required for this document. There are security considerations in most documents, because it does change something (which is fortunate) and therefore it can introduce threats. Here CC and FEC coding rate could be leveraged to create DoS. Although it's not specific to this document, saying the opposite is not appropriate.
Done in PR
I appreciate to see these three sections, but I think they should be grouped as subsections of a single one entitled: "Recommendations depending on the CC versus FEC layering" or something like that. And adding a small introduction text would be fine too. There's really an ambiguity about what is coded data: does it include source data packets or not? And why data rather than packets? Have a look at our terminology RFC and stick with it. I do not agree about the following wording: The drawback of this approach is that it is useless if the transport guarantees data delivery by retransmitting packets. This is only a drawback if one is stupid enough to do FEC protection on top of a reliable transport protocol. I'd rather say: Of course, this approach requires that that the transport protocol does not include a reliability (e.g., based on lost packet retransmition). This approach is perfectly fine with UDP which is pretty usual. This is suggested in the figure ("sending rate or window"), but not detailed in text. There is preferably a feedback between CC and FEC entities.
Covered in PR
Section 3.1 is pretty concise. What type of "transmission"? In intro you say that tunnels are out of scope, which should be clarified and justified here. Do you restrict yourself to transport protocols (where CC is usually found)? Do you want to extend to application protocols as well (with the difficulty of defining what is an application protocol, since we see more and more protocols on top of UDP). Do you consider multipaths? Do you keep multicast as out of scope as there is a dedicated CC that is pretty different? A new idea is introduced here, that of "fairness with non-coding solutions". It should prominently mentioned in abstract and introduction as well. I'm surprised to see "Section 3.3. Objective of the document" at this moment in the document. Please put it before. The first two sentences about mixing the CC and FEC channels should also be moved at the end of section 2, it does not belong to the objectives.
About fairness: I'd rather say that this only concerns the case in section 6, FEC below the transport, and should be discussed only there.
This section may not be relevant if we move all the discussions of the scope in the Introduction. This is what has been done in PR
Mention of fairness has been removed and the present focus of the draft is unicast single path transfer.
A detail: arrows are missing in fig. 1. Or perhaps it is indicated by the use of { and }, but in that case it's not very clear. Using plural is also preferable. A detail: there is no "coded data" but "coded packets".It is said: "signaling from the receiver about losses and/or repaired blocks" The use of "blocks" here is erroneous, we talk about packets. I'd also suggest that you change the mention "information about repaired ratio" in fig. 2 by what you say here, in the text. What exact information is given back to the FEC entity really depends on the use-case, but I like the way it's written in the text: it's some information about what is lost and what is recovered thanks to FEC coding. It is said: However, there can be meaningful other interactions (indicated by the horizontal double arrow) between the two entities, There is no horizontal double arrow! And I cannot really decide whether entities refer to client/server or CC/FEC. typo: potiential => potential
Thanks. Updated in PR
Minor comment: It is said (2nd sentence): ... for the server to detect tail losses... Make it clear that in this document, the server sends data. Ambiguous: One objective is to help the research community consider congestion control aspects when proposing and comparing coding solutions. I'd rather say: Another objective is to encourage the research community to also consider congestion control aspects when proposing and comparing FEC coding solutions in communication systems. Rationals: this is another objective; comparing FEC Schemes without considering congestion control makes sense if the goal is to compare those schemes only.
Thanks. This is covered in PR
I do not understand: This document can help the comparison of FEC schemes by identifying at which level they are operating with respect to the transport congestion control. What does "the comparison of FEC schemes" refer to? Between one another? I guess this is not the intent (and this is explained later on). Global comment, title including: using "coding" without any further information, is ambiguous. I'd prefer FEC coding or erasure correction coding, at least in the abstract/introduction.
The intent is indeed to help the comparison of different FEC schemes. There are cases where a FEC scheme A hide losses to a congestion control, while a FEC scheme B do not. Comparing A and B is not fair. The comment on using "coding" is dealt with in PR

Revised text:
Abstract  <ins> FEC coding is a reliability mechanism that is distinct and separated from the loss detection of congestion controls.  Using FEC coding can be a useful way to better deal with transfer tail losses or with networks with non-congestion losses.  However, FEC coding mechanisms should not hide congestion signals.  This memo offers a discussion of how FEC coding and congestion control can coexist.  This document can help the comparison of FEC schemes by identifying at which level they are operating with respect to the transport congestion control. </ins> This document is the product of the Coding for Efficient Network Communications Research Group (NWCRG).  The scope of the document is  <ins> end-to-end communications: FEC coding for tunnels is out-of-the scope of the document. </ins> 1.  <ins> There are cases where deploying FEC coding improves the quality of the transmission.  As an example, when a server transmits data to a client, it may take time for the server to detect tail losses (i.e. tail loss can refer to losses at the tail end of transactions).  This would impact the experience of applications using short flows. Another example are networks where non-congestion losses are persistent and prevent a sender from exploiting the link capacity. </ins> Coding is a reliability mechanism that is distinct and separated from the loss detection of congestion controls.  RFC5681 defines TCP as a  <ins> loss-based congestion control; because FEC coding repairs such losses, blindly applying it may easily lead to an implementation that also hides a congestion signal to the sender.  It is important to ensure that such information hiding does not occur. </ins>  <ins> FEC coding and congestion control can be seen as two separate channels.  In practice, implementations may mix the signals that are exchanged on these channels.  This memo offers a discussion of how FEC coding and congestion control can coexist.  Another objective is to encourage the research community to also consider congestion control aspects when proposing and comparing FEC coding solutions in communication systems.  That being said, this document does not aim at proposing FEC coding solutions characterization guidelines: comparing FEC Schemes without considering congestion control can be relevant if the goal is to compare those schemes only. The proposed document considers FEC coding at the transport or application layer for an end-to-end unicast data transfer.  The typical application scenario that is considered in the current version of the document is a client browsing the web.  This memo may be extended to cases with multiple paths. </ins> This document represents the collaborative work and consensus of the Coding for Efficient Network Communications Research Group (NWCRG);  <ins> it is not an IETF product and is not a standard.  The document follows the terminology proposed in the taxonomy document RFC8406. </ins> 2. fig:sep-channel presents the notations that will be used in this document and introduce the Congestion Control (CC) and Forward Erasure Correction (FEC) channels.  The Congestion Control channel  <ins> carries source packets (from a server to a client) and potential </ins> information signaling the packets that have been received (from the client to the server).  The Forward Erasure Correction channel  <ins> carries repair packets (from the server to the client) and a potential information signaling the packets that have been repaired </ins> (from the client to the server).  It is worth pointing out that there are cases where these channels are not separated. conceptually separate: fig:sep-entities provides more details than fig:sep-channel by  <ins> focusing on the server side.  Some elements are introduced: 'network measurements' (input control plane for the transport including CC): refers to the information a ongestion control can obtain from a network (e.g.  TCP can estimate the latency, the loss rate and bottleneck). 'requirements' (input control plane for the transport including CC): refers to application requirements such as upper/lower rate bounds, periods of quiescence, or a priority. 'sending rate (or window)' (output control plane for the transport including CC): refers to the rate at which a congestion control decides to transmit packets, based on 'network measurements'. 'signaling about losses and/or repaired packets' (input control plane for the FEC): refers to the information a FEC server can obtain from a FEC client about the performance of the FEC solution as seen from the client. 'coding rate' (output control plane for the FEC): refers to the coding rate that is used by the FEC solution. 'source and/or repair packets' (data plane for both the FEC and the CC): refers to the packets that are transmitted.  There can only be source packets (if the coding rate is 0), repair packets (if the solution decides not to send the original source packets) or a mix of both. The inputs to FEC (packet to work upon, and signaling from the receiver about losses and/or repaired packets) are distinct from the inputs to CC.  The latter calculates a sending rate or window from network measurements, and it takes the packet to send as input, sometimes along with application requirements such as upper/lower rate bounds, periods of quiescence, or a priority. </ins> It is not clear that the ACK signals feeding into a congestion control algorithm are useful to FEC in their raw form, and vice versa - information about repaired blocks may be quite irrelevant to a CC  <ins> algorithm. </ins> 3.  <ins> This section discusses how FEC and CC can relate in different cases (FEC above the transport, FEC within the transport, FEC below the transport). </ins> 3.1.  fig:fec-above illustrates the FEC above the transport case. fig:fec-above presents an architecture where FEC is on top of the  <ins> transport.  The repair packets are sent within what the congestion </ins> window allows. The advantage of this approach is that the FEC does not contribute to adding congestion in the network.  <ins> This approach requires that the transport protocol does not include a reliability (e.g., based on lost packet retransmition).  This approach is relevant with UDP. </ins>  <ins> 3.2. </ins> fig:fec-in illustrates the FEC within the transport case. fig:fec-in presents an architecture where FEC is within the  <ins> transport.  The repair packets are sent within what the congestion </ins> window allows, such as in CTCP.  Examples of the solution would be  <ins> sending repair packets when there is no more data to transmit or preferably send repair packets instead of the following packets in the send buffer. </ins> The advantage of this approach is that it can enable conjoint optimization between the CC and the FEC.  Moreover, the transmission  <ins> of repair packets does not add congestion in potentially congested </ins> networks but help repair lost packets (such as tail losses). The drawback of this approach is that it may not result in much gains as opposed to classical CC retransmissions mechanisms and it costs  <ins> bandwidth that could have been exploited to transmit source packets. The coding ratio needs to be carefully designed. </ins>  <ins> 3.3. </ins> fig:fec-below illustrates the FEC below the transport case. fig:fec-below presents an architecture where FEC is below the  <ins> transport.  The repair packets are sent on top of what is allowed by </ins> the congestion control.  Examples of the solution could be adding a given percentage of the congestion window as supplementary packets or  <ins> sending a given amount of repair packets at a given rate.  The </ins> redundancy flow can be decorrelated from the congestion control that manages source packets: a secondary congestion control could be introduced underneath the FEC layer, such as in coupled congestion already congested networks.  The coding ratio needs to be carefully designed.  <ins> 4. </ins> This memo includes no request to IANA.  <ins> 5. FEC and CC schemes can contribute to DoS attacks.  This is not specific to this document. </ins>  <ins> More information TBD. </ins>