Re: [nwcrg] [irsg] IRSG review request draft-irtf-nwcrg-coding-and-congestion-09
Nicolas Kuhn <nicolas.kuhn.ietf@gmail.com> Tue, 22 February 2022 07:03 UTC
Return-Path: <nicolas.kuhn.ietf@gmail.com>
X-Original-To: nwcrg@ietfa.amsl.com
Delivered-To: nwcrg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 360B63A0E5C; Mon, 21 Feb 2022 23:03:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.387
X-Spam-Level:
X-Spam-Status: No, score=-4.387 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nEGtkuh5igNF; Mon, 21 Feb 2022 23:03:17 -0800 (PST)
Received: from mail-qv1-xf2a.google.com (mail-qv1-xf2a.google.com [IPv6:2607:f8b0:4864:20::f2a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 299AC3A0E60; Mon, 21 Feb 2022 23:03:17 -0800 (PST)
Received: by mail-qv1-xf2a.google.com with SMTP id fc19so1409638qvb.7; Mon, 21 Feb 2022 23:03:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=1f7qrYLKfwPdpXSBaKI0PTlg/5iggtgsZwL5zMEHTMQ=; b=ogQiDErUBfvr6gwvD1Uks4bmy5HYqd+Eed4yinUUACDkPxdF4rrEN/xw2P0lTD3GNW 0UlwIcEcJE7WEhURFjjL4pX74N9X7KbRCro+F6maiWcdFo9eFHg1MZfHCAzB0aB3xoKn 5547KZCr/H/tSjfHHeiKa5l0jFQa0E4bIOIfiax50PVCAsSggBgGvHs76nTRxARzlFJv 1BXsd2b3z4XPXm+xmqurEjOHdqtyuqmGgC0V8anNqQEIKyxDUfBu935AACySoP4IUJu1 GNGTBrSI1+CdpHMGTvdH7TFIDCgX3X6N1J/9em6k/uF4qCdMY6tiNlKg8+v3aRsAaOwI r/jg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=1f7qrYLKfwPdpXSBaKI0PTlg/5iggtgsZwL5zMEHTMQ=; b=IU3/vVk4wvN7IjOMnbgbWU5pX5iDyc1nxp+afYhb0kNNaKrT9SWJAzCY5b4LOGA8Uc CTTGGHzq8oSSQS598doNQUQAkRP8xU7RbLdAXMk5GC06Oy/XIGRPeaYaLS7pnb/p9Gf7 nLLT6AvJXJneTDcUHQfCFLfOTavWsPdovjDERppmpmybKsmcZR6HAAFOUkLVNtOin5rq 7nPI//xBT3GchcDst/Btd8DYLy3PdO0wswzkRO1soJBeHvc4QJmfl1fGPbmaPuCWT/ro LHF4MLsHWn6XVJJzUsAKsbgDLyyQSqTcUhT0MxEpwlX2HvM9PaXLyKC4Y94mOxGck0dh cFvA==
X-Gm-Message-State: AOAM533qSvv8pcWV3Hp65CymR9XGDrEmkoR2YdHUYkzK2FEYeBldo6Ba +3oPmxecOI979mHZNOW44eP/Q3tcLQaXWRJoeXc=
X-Google-Smtp-Source: ABdhPJzNVldyBbSUfA1kACS6LXCwkkwMmZCTkiCUyRPuH9/Xmx0I8mlmPmicJjag1UX2lfnUpGxBqWscuOWtGIdPxmA=
X-Received: by 2002:a0c:eec8:0:b0:432:3092:ff0c with SMTP id h8-20020a0ceec8000000b004323092ff0cmr3135265qvs.42.1645513395606; Mon, 21 Feb 2022 23:03:15 -0800 (PST)
MIME-Version: 1.0
References: <45BD6D65-DB4C-4872-B97D-DA599BA1734C@csperkins.org> <CAKKJt-f+P7L4tVsmhCDFaV_uv2z8o1P=2htmk-TYDVoRk+jtqQ@mail.gmail.com>
In-Reply-To: <CAKKJt-f+P7L4tVsmhCDFaV_uv2z8o1P=2htmk-TYDVoRk+jtqQ@mail.gmail.com>
From: Nicolas Kuhn <nicolas.kuhn.ietf@gmail.com>
Date: Tue, 22 Feb 2022 08:03:02 +0100
Message-ID: <CAL0D2oTjebZXDT54cki=O61ADYPcKxjxhzuB9o99geEYynFJWQ@mail.gmail.com>
To: Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>
Cc: draft-irtf-nwcrg-coding-and-congestion@ietf.org, nwcrg <nwcrg@irtf.org>, The IRSG <irsg@irtf.org>
Content-Type: multipart/alternative; boundary="0000000000006b174f05d895f1f5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/nwcrg/7A5Wn8XXnT-uUxAiufckDvac1g4>
Subject: Re: [nwcrg] [irsg] IRSG review request draft-irtf-nwcrg-coding-and-congestion-09
X-BeenThere: nwcrg@irtf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IRTF Network Coding Research Group discussion list <nwcrg.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/nwcrg>, <mailto:nwcrg-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nwcrg/>
List-Post: <mailto:nwcrg@irtf.org>
List-Help: <mailto:nwcrg-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/nwcrg>, <mailto:nwcrg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Tue, 22 Feb 2022 07:03:26 -0000
Dear Spencer, all, Thank you so much for this review that contributes a lot, not only on the readability but also on structural aspects. I hope we addressed your comments in the updated version of this draft https://datatracker.ietf.org/doc/draft-irtf-nwcrg-coding-and-congestion/ Thanks a lot for your help ! More inline. Nico - on the behalf of my co-authors On Sat, Feb 12, 2022 at 1:16 AM Spencer Dawkins at IETF < spencerdawkins.ietf@gmail.com> wrote: > Dear Draft Authors, > > On Thu, Dec 16, 2021 at 5:49 PM Colin Perkins <csp@csperkins.org> wrote: > >> IRSG members, >> >> The NWCRG has requested that draft-irtf-nwcrg-coding-and-congestion-09 be >> considered for publication as an IRTF RFC. To progress this draft, we now >> need at least one IRSG member to volunteer to provide a detailed review of >> the draft, as follows: >> > > And that turned out to be me. Please see below following Colin's > characterization of the IRSG review of drafts. > > > The purpose of the IRSG review is to ensure consistent editorial and >> technical quality for IRTF publications. IRSG review is not a deep >> technical review. (This should take place within the RG.) At least one IRSG >> member other than the chair of the RG bringing the work forth must review >> the document and the RG's editorial process. >> > >> > IRSG reviewers should look for clear, cogent, and consistent writing. >> An important aspect of the review is to gain a critical reading from >> reviewers who are not subject matter experts and, in the process, assure >> the document will be accessible to those beyond the authoring research >> group. Also, reviewers should assess whether sufficient editorial and >> technical review has been conducted and the requirements of this process >> document, such as those described in IRTF-RFCs have been met. Finally, >> reviewers should check that appropriate citations to related research >> literature have been made. >> > >> > Reviews should be written to be public. Review comments should be sent >> to the IRSG and RG mailing lists and entered into the tracker. All IRSG >> review comments must be addressed. However, the RG need not accept every >> comment. It is the responsibility of the shepherd to understand the >> comments and ensure that the RG considers them including adequate dialog >> between the reviewer and the author and/or RG. Reviews and their resolution >> should be entered into the tracker by the document shepherd. >> > >> > The IRSG review often results in the document being revised. Once the >> reviewer(s), authors, and shepherd have converged on review comments, the >> shepherd starts the IRSG Poll on whether the document should be published. > > > OK, don't freak out. > > I really like this draft, and I think it's really good, and really needed. > So, please try not to notice that I have nine pages of notes following, and > just keep telling yourselves that Spencer is mostly making suggestions for > readability. > > [NK] Thanks a lot for these relevant suggestions ! > One reason the review is nine pages long is that I tried to include both > the paragraph I'm talking about and proposed text for you to consider. I > hope most of my comments are self-explanatory, but if you have any > questions, please ask. I'd like to be supportive for this draft, and help > you get it through IRSG balloting. > > [NK] Thanks a lot for your help. This discussion that overlaps RG is important IMHO to better contribute in each of the field. > Best, > > Spencer > > Some of my comments make assumptions about who will read this (important) > document in the future. Please read my comments through that lens, as part > of considering whether any particular comment is helpful. > > The document is very careful to talk about “reliable transfer protocols > such as TCP”, which is fine, but then shouldn’t the title be something like > “Coding and congestion control in transfer protocols”? > > [NK] To be honest, I skipped this comment when I first read your comments and went through them all one by one but forgot this one. I can update the document with an update on the title if you think this matters. IMHO we could even go for "Coding and congestion control". I think the current title is fine but I would be happy to update it if needed. > In the introduction, > > Coding is a reliability mechanism that is distinct and separate from > > the loss detection of congestion controls. [RFC5681] defines the > > loss-based congestion control of TCP; since FEC coding repairs such > > losses, blindly applying it may easily lead to an implementation that > > also hides a congestion signal from the sender. It is important to > > ensure that such information hiding does not occur. > > It might be helpful to point out to your readers that standardized TCPs > don’t have any signal except loss, so that blindly applying FEC coding will > hide the only congestion signal from the sender. Since you’re not limiting > yourself to TCP, perhaps this would be better as > > Coding is a reliability mechanism that is distinct and separate from > > the loss detection of congestion controls. Since FEC coding repairs > > losses, blindly applying FEC may easily lead to an implementation that > > also hides a congestion signal from the sender. It is important to > > ensure that such information hiding does not occur, because loss may be > > the only congestion signal available to the sender (e.g. TCP [RFC5681]). > > [NK] Thanks. The text has been updated following your suggestion. > This text is super helpful, > > We consider an end-to-end unicast data transfer with FEC coding in > > the application (above the transport), within the transport or > > directly below the transport. A typical scenario for the > > considerations in this document is a client browsing the web or > > watching a live video. > > but might be even more super helpful if it had pointers to the document > sections that apply to each architecture. I was thinking about something > like > > We consider three architecture for end-to-end unicast data transfer: > > - with FEC coding in the application (above the transport) (Section 3), > > - within the transport (Section 4), or > > - directly below the transport (Section 5). > > A typical scenario for the > > considerations in this document is a client browsing the web or > > watching a live video. > > [NK] Thanks. The text has been updated following your suggestion. > Could you provide a reference for ECN on first use (and thanks for > expanding it on first use, of course)? > [NK] Done ! > > Figure 1 is helpful, but a reader might be forgiven if they assumed that > “FEC happens below CC”, and then were surprised to discover that’s not > always the case. Figures 2 and 3 clearly show these channels as independent > - perhaps rotating Figure 1 to match would be more helpful. > > [NK] I have split the figure in two separate figures and hope this is clearer. > Isn’t the observation about TCP in this text > > o 'network information' (input control plane for the transport > > including CC): refers not only to the network information that is > > explicitly signaled from the receiver, but all the information a > > congestion control obtains from a network (e.g., TCP can estimate > > the latency and the available capacity at the bottleneck). > > true for any transfer protocol? > > [NK] I have removed the TCP example to make it more generic. > This text in Section 2.2 seems pretty fundamental. > > o The transport layer may provide an unreliable transport service > > (e.g. UDP or DCCP [RFC4340 > <https://datatracker.ietf.org/doc/html/rfc4340>]) or a partially reliable > transport > > service (e.g. SCTP with the partial reliability extension > > [RFC3758 <https://datatracker.ietf.org/doc/html/rfc3758>] or QUIC > with the unreliable datagram extension > > [I-D.ietf-quic-datagram > <https://datatracker.ietf.org/doc/html/draft-irtf-nwcrg-coding-and-congestion-10#ref-I-D.ietf-quic-datagram>]). > Depending on the amount of redundancy > > and network conditions, there could be cases where it becomes > > impossible to carry traffic. > > o The transport layer may implement a retransmission mechanism to > > guarantee the reliability of a data transfer (e.g. TCP). > > Depending on how the FEC and CC functions are scheduled (FEC above > > CC, FEC in CC, FEC below CC), the impact of reliable transport on > > the FEC reliability mechanisms is different. > > In the second bullet, I (as the reader) know what to do next (“keep > reading”), and if “(FEC above CC, FEC in CC, FEC below CC)” was annotated > with forward references to the corresponding sections, I’d know where to > keep reading if I was looking at one particular architecture. But after > reading the first bullet, I don’t know what to do next. Are unreliable or > partially reliable transport services in scope for this document? If so, is > any further guidance contained in the document? If so, a pointer here would > be helpful. > > [NK] Thanks. The text has been updated following your suggestion. Pointers have been added. > At this point in the document, I realized I’d been assuming that > reliability was a transport service thing, because I’m a transport guy, but > “reliability” is ALSO a FEC thing. Perhaps this is worth explicitly noting? > You are talking about coding and transport in the same sentence in the > second paragraph of the introduction - perhaps something like (editing my > previous suggestion for this paragraph, but I’m just changing the first > sentence) > > Coding and the loss detection of congestion controls are two distinct > > and separate reliability mechanisms that is distinct and separate from > > the loss detection of congestion controls. Since FEC coding repairs > > losses, blindly applying FEC may easily lead to an implementation that > > also hides a congestion signal from the sender. It is important to > > ensure that such information hiding does not occur, because loss may be > > the only congestion signal available to the sender (e.g. TCP [RFC5681]). > > [NK] Thanks. The text has been updated following your suggestion. > I think it’s also correct to say that both transport services and FEC > services may provide either full or partial reliability, and this is also > distinct and separate from what the other reliability mechanism is > providing, but I don’t think the RG has talked about that, so it doesn’t > need to be in this document unless the RG thinks it should be. > > ISTM that Section 2.5 might be better placed earlier in Section 2, since > this is talking about the reason we care about hiding congestion signals > when a bottleneck is shared (if you don’t care about fairness, or > qualifying or limiting harm, you don’t actually need to read this document > :-)). It might also be appropriate to change the section title from > “Fairness, a policy concern” to “Fairness, Quantifying and Limiting Harm, > and Policy Concerns”. > > [NK] Thanks. The text has been updated following your suggestion. The section has been moved earlier in the section with an updated title. > In Section 3, > > The advantage of this approach is that the FEC overhead does not > > contribute to congestion in the network. When congestion control is > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > implemented at the transport layer, the repair symbols are sent > > following the congestion window or rate determined by the CC > > mechanism. This can result in improved quality of experience for > > latency sensitive applications such as VoIP or any not-fully reliable > > services. > > This might be clearer as > > The advantage of this approach is that the FEC overhead does not > > contribute to congestion in the network when congestion control is > > implemented at the transport layer, because the repair symbols are sent > > following the congestion window or rate determined by the CC > > mechanism. This can result in improved quality of experience for > > latency sensitive applications such as VoIP or any not-fully reliable > > services. > > [NK] Thanks. The text has been updated following your suggestion. > You might also want to expand VoIP here (it’s the first usage). > > [NK] Done ! > The next paragraph is perhaps too specific to QUIC datagrams and TCP? > > This approach requires that the transport protocol does not implement > > a fully reliable in-order data transfer service (e.g., like TCP). > > QUIC with unreliable datagram extension [I-D.ietf-quic-datagram] is > > an example of a protocol for which this is relevant. In cases where > > QUIC traffic is blocked and a fall-back to TCP is proposed, there is > > a risk for bad interactions between TCP's full reliability and coding > > schemes. For reliable transfers, coding usage does not guarantee > > better performance; instead, it would mainly reduce goodput. > > Perhaps > > This approach requires that the transport protocol does not implement > > a fully reliable in-order data transfer service (e.g., like TCP). > > QUIC with unreliable datagram extension [I-D.ietf-quic-datagram > <https://datatracker.ietf.org/doc/html/draft-irtf-nwcrg-coding-and-congestion-10#ref-I-D.ietf-quic-datagram>] > is > > an example of a protocol for which this is relevant. In cases where the > > partially reliable transport is blocked and a fall-back to a reliable > > transport is proposed, there is > > a risk for bad interactions between reliability at the transport level > > and coding > > schemes. For reliable transfers, coding usage does not guarantee > > better performance; instead, it would mainly reduce goodput. > > [NK] Thanks. The text has been updated following your suggestion. > In Section 3.2, > > The congestion control mechanism receives network packets and may not > > be able to differentiate repair symbols from actual source ones. > > I’m trying to think of a case where a congestion control mechanism > implemented at the transport level would be able to differentiate between > source and repair symbols, unless the transport protocol is doing more than > providing RFC 8095 transport services. > > [NK] Thanks. The text has been updated with a discussion on the fact that this may require services that are not in RFC8095 > In Section 3.4, I’m not sure what the first sentence is adding - and I > think it can be deleted without damage. > > [NK] Thanks. The text has been updated following your suggestion. > Sections 3.5, 4.5, and 5.5 are all “On partial ordering”, and Sections > 3.6, 4.6, and 5.6 are all “On partial reliability”. Is it possible to use a > title that describes more clearly where this is showing up (transport > protocol, FEC, the service being provided to the application, or something > else)? Sections 3.7, 4.7, and 5.7 all tell me that (“On transport > multipath”). > > [NK] Thanks. The text has been updated following your suggestion. We have added more specific titles to these sections. > In Section 4, the second paragraph is providing pretty compelling > arguments for doing FEC in the transport. I understand this document to be > a discussion of the potential architectural space, but both the Abstract > and the Introduction also 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. > > Is it possible that there are disadvantages to doing FEC in the transport, > that should also be mentioned in Section 4? I’m guessing, but only > guessing, that it’s easier to combine a codebase that does transport and a > codebase that does FEC if you put one on top of the other, rather than > dealing with the complexity of coding and testing for transport and FEC > together - is there anything like that? > > [NK] Indeed. This was missing and some drawbacks have been added. > If there are only advantages, perhaps this document should be encouraging > the research community to focus on the “FEC in transport” architecture > specifically? > > In Section 4.1, > > The addition of coding within the transport may impact the congestion > > control mechanism and hide congestion losses. Specific interaction > > between congestion controls and coding schemes can be proposed (see > > Section 4.2 > <https://datatracker.ietf.org/doc/html/draft-irtf-nwcrg-coding-and-congestion-10#section-4.2> > , Section 4.3 > <https://datatracker.ietf.org/doc/html/draft-irtf-nwcrg-coding-and-congestion-10#section-4.3> > and Section 4.4 > <https://datatracker.ietf.org/doc/html/draft-irtf-nwcrg-coding-and-congestion-10#section-4.4>). > If no specific > > interaction is introduced, the coding scheme may hide congestion > > losses from the congestion controller and the description of > > Section 5 > <https://datatracker.ietf.org/doc/html/draft-irtf-nwcrg-coding-and-congestion-10#section-5> > may apply. > > the first sentence and the last sentence are talking about the same thing. > Perhaps deleting the first sentence > > Specific interaction > > between congestion controls and coding schemes can be proposed (see > > Section 4.2 > <https://datatracker.ietf.org/doc/html/draft-irtf-nwcrg-coding-and-congestion-10#section-4.2> > , Section 4.3 > <https://datatracker.ietf.org/doc/html/draft-irtf-nwcrg-coding-and-congestion-10#section-4.3> > and Section 4.4 > <https://datatracker.ietf.org/doc/html/draft-irtf-nwcrg-coding-and-congestion-10#section-4.4>). > If no specific > > interaction is introduced, the coding scheme may hide congestion > > losses from the congestion controller and the description of > > Section 5 > <https://datatracker.ietf.org/doc/html/draft-irtf-nwcrg-coding-and-congestion-10#section-5> > may apply. > > could be clearer? > > [NK] Thanks. The text has been updated following your suggestion. > In Section 4.2, > > The receiver can differentiate between source packets and repair > > symbols. The receiver may indicate both the number of source packets > > received and repair symbols that were actually useful in the recovery > > process of packets. > > is there anything that the sending congestion control implementation can > do with this information? (if not, the section title, “Congestion control > and recovered symbols”, might not be helpful). > > I’m not sure what the relationship between Section 4.2 and 4.3 is, for the > sending congestion controller. Are these sections, taken together, saying > > > - > > the receiver indicating the number of source packets received > - > > the receiver indicating the number of useful repair symbols > - > > the sender tuning the coding ratio > - > > the sender congestion controller adapts its transmission rate? > > > [NK] Thanks. These sections have been merged. > I think Section 4.4 > > > The sender may exploit the information given by the receiver to > > reduce the number of useless repair symbols and the resulting goodput > > reduction. > > is talking about a reduction in a reduction(!). Is this saying > > The sender may exploit the information given by the receiver to > > reduce the number of useless repair symbols, and improve goodput. > > [NK] Thanks. The text has been updated following your suggestion. > In Section 4.5, > > The application may require in-order delivery of packets. In this > > case, both FEC and transport layer mechanisms should guarantee that > > packets are delivered in order. If partial ordering is requested by > > the application, both the FEC and transport could relax the > > constraints related to in-order delivery: reordering mechanisms at > > the receiver may not be necessary. > > is it correct to say that the reordering mechanisms at the receiver are > not necessary when the application requests partial ordering? If there are > conditions where the reordering mechanisms are necessary even though the > application requested partial ordering, it might be good to explain that. > Section 4.6 does a good job of explaining why an application requiring > partial reliability might still affect FEC - I’m asking about the same > thing for an application requiring partial ordering. > > [NK] Thanks. The text has been updated with some discussions on partial reordering at the FEC and CC. > In Section 5, > > Figure 8 presents an architecture where FEC is applied end-to-end > > below the transport layer, but above the link layer. Note that it is > > common to apply FEC at the link layer, where it contributes to the > > total capacity that a link exposes to upper layers. This application > > of FEC is out of scope of this document. This includes the use of > > FEC on top of a link layer in scenarios where the link is known by > > configuration. In the scenario considered here, the repair symbols > > are sent on top of what is allowed by the congestion control. > > I might suggest saying a couple of things differently. > > Figure 8 presents an architecture where FEC is applied end-to-end > > below the transport layer, but above the link layer. Note that it is > > common to apply FEC at the link layer on one or more of the links > > that make up the end-to-end path. The application of FEC at the > > link layer contributes to the total capacity that a link exposes > > to upper layers, but may not be visible to either the end-to-end > > sender or receiver, if the end-to-end sender and receiver are separated > > by more than one link, and therefore is out of scope for this document. > > -> This includes the use of > > FEC on top of a link layer in scenarios where the link is known by > > configuration. In the scenario considered here, the repair symbols > > are not visible to the end-to-end congestion controller and may be > > sent on top of what is allowed by the congestion control. > > Just checking - does “This” refer to “FEC at the link layer”? I think it > does, but wanted to make sure. > > [NK] Thanks. The text has been updated following your suggestion. > In this text, > > Examples of the solution could be to add a given percentage of the > > congestion window or rate as supplementary symbols, or to send a > > fixed amount of repair symbols at a fixed rate. The redundancy flow > > can be decorrelated from the congestion control that manages source > > packets: a separate congestion control entity could be introduced to > > manage the amount of recovered symbols to transmit on the FEC > > channel. The separate congestion control instances could be made to > > work together while adhering to priorities, as in coupled congestion > > control for RTP media [RFC8699 > <https://datatracker.ietf.org/doc/html/rfc8699>] in case all traffic can > be assumed to > > take the same path, or otherwise with a multipath congestion window > > coupling mechanism as in Multipath TCP [RFC6356 > <https://datatracker.ietf.org/doc/html/rfc6356>]. Another > > possibility would be to exploit a lower than best-effort congestion > > control [RFC6297 <https://datatracker.ietf.org/doc/html/rfc6297>] for > repair symbols. > > I wasn’t sure how “introducing a separate congestion control entity” > results in something different from Section 4 (except that there are now > two congestion controllers). It sounds like you are assuming that the > separate congestion controller is at the same level as the congestion > controller that is managing source packets if the two congestion > controllers are working together - am I missing something? > > [NK] You are definitely right. The paragraph has been copied/pasted in both sections 4 and 5. > In Section 5.4, > > Useless repair symbols only impact the load on the network without > > actual gain for the coded flow. Using feedback signaling, FEC > > mechanisms can measure the ratio between actually used and useless > > symbols, and adjust the coding rate. > > “actually used” reads oddly here, and I’d suggest using quotes to show > that it’s a complete thought. But perhaps this could be better as > > Useless repair symbols only impact the load on the network without > > actual gain for the coded flow. Using feedback signaling, FEC > > mechanisms can measure the ratio between the number of symbols that > > were actually used and the number of symbols that useless, and > > adjust the coding rate. > [NK] Thanks. The text has been updated following your suggestion. > > In Section 5.6, > > The transport or application layer above the FEC channel may require > > partial reliability only. In this case, FEC may provide an > > unnecessary service if it is not aware of the reliability > > requirements. Partial reliability impacts the type of FEC and type > > of codec that can be used, such as discussed in Section 2.4 > <https://datatracker.ietf.org/doc/html/draft-irtf-nwcrg-coding-and-congestion-10#section-2.4> > . > > If a link layer is aware of the (“transport or application”) reliability > requirements, that’s a truly impressive layering violation, and I’m > guessing that’s not the common case. Perhaps inverting this would help? > > The transport or application layer above the FEC channel may require > > partial reliability only. FEC may provide an > > unnecessary service unless it is aware of the reliability > > requirements. Partial reliability impacts the type of FEC and type > > of codec that can be used, such as discussed in Section 2.4. > > [NK] Thanks. The text has been updated following your suggestion. In Section 5.7, > > The transport may exploit multiple paths without the FEC channel > > being aware of it. This depends on whether FEC is applied to all > > subflows or each of the subflows individually. When FEC is applied > > to all the flows, there is a risk for the coding rate to be > > inadequate for the characteristics of the individual paths. > > is it correct to say > > > > The transport may exploit multiple paths without the FEC channel > > being aware of it. If FEC is aware that multiple paths are in use, > > FEC can be applied to all subflows as an aggregate, or to each of the > > subflows individually. If FEC is not aware that multiple paths are in > > use, FEC can only be applied to each subflow individually. > > When FEC is applied > > to all the flows as an aggregate, the varying characteristics of the > > individual paths may lead to a risk for the coding rate to be > > inadequate for the characteristics of the individual paths. > > [NK] Thanks. The text has been updated following your suggestion. > In this text in 6.2.1, > > [RFC8095] describes the mechanisms provided by existing IETF > > protocols such as TCP, SCTP or RTP. [RFC8406 > <https://datatracker.ietf.org/doc/html/rfc8406>] describes the variety > > of coding techniques. The important level of combinations makes the > > ^^^^^^^^^^^^^^^ > > determination of an optimum parameters derivation very complex. This > > depends on application requirements and deployment context. > > is it correct to say > > [RFC8095] describes the mechanisms provided by existing IETF > > protocols such as TCP, SCTP or RTP. [RFC8406 > <https://datatracker.ietf.org/doc/html/rfc8406>] describes the variety > > of coding techniques. The number of combinations makes the > > determination of an optimum parameters derivation very complex. This > > depends on application requirements and deployment context. > > [NK] Thanks. The text has been updated following your suggestion. > > _______________________________________________ > nwcrg mailing list > nwcrg@irtf.org > https://www.irtf.org/mailman/listinfo/nwcrg >
- Re: [nwcrg] [irsg] IRSG review request draft-irtf… Spencer Dawkins at IETF
- Re: [nwcrg] [irsg] IRSG review request draft-irtf… Nicolas Kuhn
- Re: [nwcrg] [irsg] IRSG review request draft-irtf… Spencer Dawkins at IETF
- Re: [nwcrg] [irsg] IRSG review request draft-irtf… Marie-Jose Montpetit
- Re: [nwcrg] [irsg] IRSG review request draft-irtf… Colin Perkins
- Re: [nwcrg] [irsg] IRSG review request draft-irtf… Nicolas Kuhn
- Re: [nwcrg] [irsg] IRSG review request draft-irtf… Spencer Dawkins at IETF
- Re: [nwcrg] [irsg] IRSG review request draft-irtf… Colin Perkins