Re: [tcpm] Comments on draft-ietf-tcpm-accurate-ecn-14
Gorry Fairhurst <gorry@erg.abdn.ac.uk> Mon, 22 March 2021 12:23 UTC
Return-Path: <gorry@erg.abdn.ac.uk>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5E2A53A1323 for <tcpm@ietfa.amsl.com>; Mon, 22 Mar 2021 05:23:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.001
X-Spam-Level:
X-Spam-Status: No, score=0.001 tagged_above=-999 required=5 tests=[HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 gRUsWB7pg1S7 for <tcpm@ietfa.amsl.com>; Mon, 22 Mar 2021 05:23:11 -0700 (PDT)
Received: from pegasus.erg.abdn.ac.uk (pegasus.erg.abdn.ac.uk [137.50.19.135]) by ietfa.amsl.com (Postfix) with ESMTP id F368F3A1321 for <tcpm@ietf.org>; Mon, 22 Mar 2021 05:23:10 -0700 (PDT)
Received: from GF-MBP-2.lan (fgrpf.plus.com [212.159.18.54]) by pegasus.erg.abdn.ac.uk (Postfix) with ESMTPSA id 725201B001D2; Mon, 22 Mar 2021 12:23:05 +0000 (GMT)
To: Bob Briscoe <ietf@bobbriscoe.net>, tcpm IETF list <tcpm@ietf.org>
Cc: Mirja Kuehlewind <ietf@kuehlewind.net>
References: <ba4352f7-277a-b476-756a-0a6d44d65152@erg.abdn.ac.uk> <d598bb99-74d1-8a15-28a9-0de4111caaa6@bobbriscoe.net>
From: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Message-ID: <b1eedcdb-d329-2fdb-6d33-eb1c02697c63@erg.abdn.ac.uk>
Date: Mon, 22 Mar 2021 12:23:04 +0000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:78.0) Gecko/20100101 Thunderbird/78.8.1
MIME-Version: 1.0
In-Reply-To: <d598bb99-74d1-8a15-28a9-0de4111caaa6@bobbriscoe.net>
Content-Type: multipart/alternative; boundary="------------A4B025C2C598E8CB49DA5971"
Content-Language: en-GB
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/YaxZxG314cNPkManLt2xfWlIXWE>
Subject: Re: [tcpm] Comments on draft-ietf-tcpm-accurate-ecn-14
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 22 Mar 2021 12:23:16 -0000
Thanks, These confirmed my understanding, and you appear to have resolutions to the issues, a few comments in-line: On 22/03/2021 12:04, Bob Briscoe wrote: > Gorry, > > Thank you for this additional review. > > On 12/03/2021 11:50, Gorry Fairhurst wrote: >> Abstract: >> /Given TCP header >> space is scarce, this allocates a reserved header bit, that was >> previously used for the ECN-Nonce which has now been declared >> historic. / >> - English: /which/that/ /that/which/ perhaps?? >> - However, I wonder if this is necessary in the abstract, surely a >> reader of the abstract in future would only need to know: >> /This allocates a reserved header bit, previously used for the >> ECN-Nonce./ > > [BB] Done, except I've said: > "previously assigned to the ECN-Nonce" rather than "used by", since > it's unclear how much actual use it got. > > I also thought the following would be better, now that this updates > RFC3168: > s/ECN is specified for TCP in such a way that only one feedback signal > can be transmitted per Round-Trip Time (RTT)./ > /ECN was originally specified for TCP in such a way that only one > feedback signal can be transmitted per Round-Trip Time (RTT)./ > > GF: Looks good to me. >> I also do wonder if the abstract still rather complicated (aka long)? > > [BB] It's 202 words. I'd rather leave it as it is if your objection > isn't particularly strong. > GF: RFC-Ed or AD can decide, not me. > >> —— >> Section 2.5: >> /According to [RFC3168] the Data Sender is meant to >> set control packets to Not-ECT. However, mechanisms in certain >> private networks (e.g. data centres) set control packets to be ECN >> capable because they are precisely the packets that performance >> depends on most./ >> - I think /set/ is rather odd. >> - Can we talk about the /ECN IP field/ being set (as used later) ? > > [BB] I don't think 'set' is odd. IMO, it seems like the most natural > word to use. Do you have a preferred alternative? > GF: I was thinking more: /set the ECN field of control packets to Not-ECT/ > But I agree it's useful to distinguish the IP-ECN field from TCP ECN > flags. Indeed, I've run through the whole of section 2, and clarified > where it is talking about the IP-ECN field. > GF: Sounds good. >> —— >> Two questions in the same sentence on p16, starting /So, without >> these rules/: >> /could end up/ >> - this seems possibly one of those phrases that confuses non-native >> speakers? > > [BB] I'm not sure what you think the problem is. > Possibly the two 'withouts'? > I tried this: > > Original: > /So, without these rules, the two peers could end up using different > feedback modes without knowing it./ > Option 1: > /So, without these rules, the two peers could end up using different > feedback modes unknowingly./ > Option 2: > /So, in the absence of these rules, the two peers could end up using > different feedback modes without knowing it./ > > A US-English speaker might use 'absent these rules', but I think the > longer British English above is equally understood in the US. Can > someone confirm that? > > I tried unwittingly instead of unknowingly, but I think that is a bit > obscure for non-native English speakers. > > I've gone for Option 2, but pls suggest something else, if you'd > prefer it. > GF: I was thinking 2, but perhaps: /could end up/could choose to use/ > >> >> /using difference feedback modes/ >> - is that word really difference not different? > > [BB] Thx - different was meant. > >> >> —— >> >> Section 3.2 >> /3.3.2. Requirements for TCP Normalizers/ >> >> I like the introduction of subheadings within 3.2, because it helps >> people find the part of the spec they need to see - especially >> important when the implementer only needs to understand one aspect in >> detail, however, I wonder if this second part needs a separate heading: >> /A middlebox claiming to be transparent/ >> … really only for normalisers? - I expected this to be relevant to >> any “transparent” middlebox” >> - would it be better with a separate subsection for this important >> point? > > [BB] Just before your review, I had proposed to my co-authors that we > should change this para. Now, from your comments, I see that the scope > of the whole section needs clarifying. The idea was that a set of TCP > headers that complies with the RFCs can either > a) remain completely unchanged (e.g. transparent performance enhancement) > b) be 'normalized' to a narrower interpretation of the RFCs, which > might not always be up to date (e.g. an intrusion detection system). > > I'd rather draw this fine line within a single section, because it's > too difficult for two section headings to describe the difference well > enough. I've also removed some gratuitous criticism of middleboxes, > which won't encourage middlebox vendors to comply. Here's the whole > rewritten subsection (I avoided a full diff which was too hard to follow): > > +3.3.2. Requirements for Transparent Middleboxes and TCP Normalizers > > Another large class of middleboxes intervenes to some degree at the > transport layer, but attempts to be transparent (invisible) to the > end-to-end connection. A subset of this class of middleboxes > attempts to `normalize' the TCP wire protocol by checking that all > + values in header fields comply with a rather narrow interpretation > + of the TCP specifications that is also not always up to date. > > + A middlebox that is not normalizing the TCP protocol and does not > + itself act as a back-to-back pair of TCP endpoints (i.e. a middlebox > + that intends to be transparent or invisible at the transport layer) ought to > forward the AccECN TCP Option unaltered, whether or not the length > value matches one of those specified inSection 3.2.3 <https://datatracker.ietf.org/doc/html/draft-ietf-tcpm-accurate-ecn-14#section-3.2.3>, and whether or > not the initial values of the byte-counter fields > + match those inSection 3.2.1 <https://datatracker.ietf.org/doc/html/draft-ietf-tcpm-accurate-ecn-14#section-3.2.1>. This is because blocking apparently > + invalid values prevents the standardized set of values being > extended in future (given outdated normalizers would block updated > hosts from using the extended AccECN standard). > + A TCP normalizer is likely to block or alter an AccECN TCP Option > + if the length value or the initial values of its byte-counter fields > + do not match one of those specified inSection 3.2.3 <https://datatracker.ietf.org/doc/html/draft-ietf-tcpm-accurate-ecn-14#section-3.2.3> orSection 3.2.1 <https://datatracker.ietf.org/doc/html/draft-ietf-tcpm-accurate-ecn-14#section-3.2.1>. > + However, to comply with > + the present AccECN specification, a middlebox MUST NOT change > + the ACE field; or those fields of the AccECN Option that are currently > + specified inSection 3.2.3 <https://datatracker.ietf.org/doc/html/draft-ietf-tcpm-accurate-ecn-14#section-3.2.3>; or any AccECN field covered by integrity > + protection (e.g. [RFC5925 <https://datatracker.ietf.org/doc/html/rfc5925>]). > > Note that I've changed the 'MUST' to 'ought to', because this is > really clarification advice (although the line between advice and > protocol interop is blurred with middleboxes). I can revert to MUST if > the WG would prefer. > GF: I like the new text. >> — >> I have re-read /3.3.3. Requirements for TCP ACK Filtering/ in -14, >> and although I am not yet sure of the speculation that using ECN in >> future is sufficient to regulate the ratio of ACKs to Data, I believe >> the text is correct in its interpretation of RFC3449, and that the >> present design is anyway robust to ACK mitigation methods. >> —— >> /Once DCTCP offload hardware supports AccECN/ >> … I’m not sure this para is perfected yet, because it is directed at >> DCTCP. I’d like to consider a reordering that is more like: >> >> /The above process has been designed to enable a continuing >> incremental deployment path - to more highly dynamic congestion >> control. Once offload hardware supports AccECN, it will be >> able to coalesce efficiently for any sequence of marks, instead of >> relying for efficiency on the long marking sequences from step >> marking. In the next stage, marking can evolve from a step to >> a ramp function. That in turn will allow host congestion control >> algorithms to respond faster to dynamics, while being backwards >> compatible with existing host algorithms./ >> … i.e., do we really have to directly discuss DCTCP here, doesn’t it >> in general refer to AccECN rather? > > [BB] You're right, thank you. Done. > >> —— >> >> Security Considerations: >> >> The “downgrade attack” regarding a receiver deciding/accidentally >> omitting an option in the Security Considerations seems incorrect to me. >> To me, the text is written in a way that sounds like it impacts the >> “security” of the connection. I do not agree with that >> interpretation. To me, this is a performance reduction, and the >> degrade does not impact the ability to communicate or security >> properties. I suggest some rewording here. > > Current: > No known way can yet be contrived to take advantage of > this downgrade attack, but it is mentioned here in case someone else > can contrive one. > Proposed: > No known way can yet be contrived for a receiver to take advantage of > this behaviour, which seems to always degrade its own performance. > However, the concern is mentioned here for completeness. > GF: I don't see issues with that, thanks. > >> —— >> Security Considerations: >> >> There’s now also a Security Considerations include a ToDo, that I do >> not yet understand, look forward to this! > > I propose to clarify and cut down the existing text, and to replace > the "{ToDo}" with the two new sentences below: > > Current: > InSection 3.2.3 <https://datatracker.ietf.org/doc/html/draft-ietf-tcpm-accurate-ecn-14#section-3.2.3> a Data Sender is allowed to ignore an unrecognized > TCP AccECN Option length and read as many whole 3-octet fields from > it as possible up to a maximum of 3, treating the remainder as > padding. This opens up a potential covert channel of up to 29B (40 - > (2+3*3))B. {ToDo...} > > Proposed: > InSection 3.2.3 <https://datatracker.ietf.org/doc/html/draft-ietf-tcpm-accurate-ecn-14#section-3.2.3> a Data Sender is allowed to ignore an unrecognized > TCP AccECN Option length and treat extra octets as padding. This is > noted here in case it could be used as a covert channel. The size is > up to 29 B (40 - (2+3*3)) per packet. However, it is really an overt > channel (not hidden) and it is no different to the use of unknown > TCP options with unknown option lengths in general. Therefore, where > such a channel is of concern, it can already be adequately mitigated > by regular TCP normalizer technology (see Section 3.3.2). > > This also requires the final para to be updated > > Current: > The AccECN protocol is not believed to introduce any new privacy > concerns, because it merely counts and feeds back signals at the > transport layer that had already been visible at the IP layer. > Proposed: > The AccECN protocol is not believed to introduce any new privacy > concerns, because it merely counts and feeds back signals at the > transport layer that had already been visible at the IP layer. A > covert channel can be used to compromise privacy. However, as > explained above, undefined TCP options generally open up such > channels and common techniques are available to close them off. > > I shall also shift this para up one, so that is comes straight after > the previous discussion of covert channels. > > GF: This addresses this point. >> —— >> >> Best wishes, >> >> Gorry > > [BB] As always, thank you very much for your continued diligence. > > > > Bob > >> >> (P.S. I will send one more specific question in a separate email). >> > > -- > ________________________________________________________________ > Bob Briscoehttp://bobbriscoe.net/ Gorry
- [tcpm] Comments on draft-ietf-tcpm-accurate-ecn-14 Gorry Fairhurst
- [tcpm] Sender Fallback in draft-ietf-tcpm-accurat… Gorry Fairhurst
- Re: [tcpm] Sender Fallback in draft-ietf-tcpm-acc… Bob Briscoe
- Re: [tcpm] Sender Fallback in draft-ietf-tcpm-acc… Gorry Fairhurst
- Re: [tcpm] Sender Fallback in draft-ietf-tcpm-acc… Mirja Kuehlewind
- Re: [tcpm] Sender Fallback in draft-ietf-tcpm-acc… Gorry Fairhurst
- Re: [tcpm] Sender Fallback in draft-ietf-tcpm-acc… Bob Briscoe
- Re: [tcpm] Sender Fallback in draft-ietf-tcpm-acc… Mirja Kuehlewind
- Re: [tcpm] Comments on draft-ietf-tcpm-accurate-e… Bob Briscoe
- Re: [tcpm] Comments on draft-ietf-tcpm-accurate-e… Gorry Fairhurst