[tcpm] Detailed review of AccECN rev -04
Gorry Fairhurst <gorry@erg.abdn.ac.uk> Mon, 20 November 2017 07:15 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 02ECC129417 for <tcpm@ietfa.amsl.com>; Sun, 19 Nov 2017 23:15:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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 z0R4rQvhEhKa for <tcpm@ietfa.amsl.com>; Sun, 19 Nov 2017 23:15:39 -0800 (PST)
Received: from smtp-01.netinary.com (smtp-01.netinary.com [5.196.120.251]) by ietfa.amsl.com (Postfix) with ESMTP id 18691129412 for <tcpm@ietf.org>; Sun, 19 Nov 2017 23:15:38 -0800 (PST)
Received: from loadbalancer1.netinary.net (unknown [217.16.13.51]) by smtp-01.netinary.com (Postfix) with ESMTPS id 72EBB142C; Mon, 20 Nov 2017 08:15:37 +0100 (CET)
Received: from orange-cl2-01.netinary.net (unknown [217.16.13.130]) by loadbalancer1.netinary.net (Postfix) with ESMTP id 27EB66003E; Mon, 20 Nov 2017 08:15:37 +0100 (CET)
Received: from Gs-MacBook-Pro.local (unknown [172.16.90.103]) by orange-cl2-01.netinary.net (Postfix) with ESMTP id 2A6A014002D; Mon, 20 Nov 2017 08:15:36 +0100 (CET)
Message-ID: <5A128116.9080609@erg.abdn.ac.uk>
Date: Mon, 20 Nov 2017 08:15:34 +0100
From: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Reply-To: gorry@erg.abdn.ac.uk
Organization: University of Aberdeen
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:12.0) Gecko/20120428 Thunderbird/12.0.1
MIME-Version: 1.0
To: tcpm@ietf.org
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/6bbk-x0XnxyT6aBHElOS8vMXeNE>
Subject: [tcpm] Detailed review of AccECN rev -04
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.22
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, 20 Nov 2017 07:15:42 -0000
tcpm@ietf.org I've read the -04 rev of teh above ID, and I have the following comments for the TCPM WG. Overall, * This document reads well, and seems mature. * There are several references to other IETF activities, and the text concerning these appears to need to be revised before this is ready to proceed. See below. * Since this document was adopted, work on ECN++ appears to have become inter-twined with this ID. I did not find this helpful, and made comments on ECN++ today that voiced this concern and requested we consider as a WG to best frame the proposed modification on the TCP SYN permitting ECT(?) to be set. See comment (6). * I wonder if this document updates any other RFCs - I'd assume not - but it may if a future work proceeds along the standards track. I think it would be good to specifically identify in one section of the intro what these implications are. For instance: - The discussion of ECN on SYN is predecated by ECN-Experimentation (targeting publication as PS) - The discussion of ECN on SYN has implications on ECN++, which recommends AccECN is implemented. - A future standards-track document based on the AccECN experimental RFC could update RFC3168. - etc. * The document may intend a proposed change to RFC 5681 (4.2. Generating Acknowledgments). See comment (8). Gorry --- Some more specific comments on the text in the -04 AccECN draft: (1) The introduction - "until the AccECN experiment suceeds, [RFC3168] will remain as the standards track specification for adding ECN to TCP." - This seems odd. I think this is not the case: Quite simply: "RFC3168 defines the current TCP feedback method." - It may be you think a future standards-track document based on the AccECN experimental RFC could update RFC3168, that is possible, but there is no need for an EXP to make that direct claim against as PS. (2) Section 1.5. First para. (On loss v drop using ECN) - I'd feel happier also noting that a router implementing AQM is still allowed to drop packets marked as ECT() when this is needed - and you could refer to the BCP to say so: /RFC/7567. (3) Section 1.5. Last para. - Please remove the discussion of Nonce from here! - It is OK simply to refer to the PS specifying ECN Experimentation - or the process document to do this. - If it is really necessary to discuss this, please use the form of words expressed in that draft, rather than saying "was never deployed". (4) Section 3.1.1 "is being reclassified as historic." - Again this text is now out-of-date, see comment (3). (5) Section 3.1.1, ECN Nonce. - This definition also contains text later that say "does not need...". It's not that it doesn't need, more that the IETF has changed the use of this field. I think it would be easy to simply remove this definition - but the WG wants to keep it please align the text precisely with the ECN Experimentation draft. The last para of section 4 repeats this and has the smae problem. (6) Section 3.1.2. ECN on SYN - This section seems to be a variant of the section expressed in the ECN++ draft (sect 4.2). That draft rather awkwardly refers back to thsi draft recommending AccECN is implemented - but the two specs differ. I do encourage the WG to think about where the update on ECN for SYN is best described. There are specific issues for experimentation and for cahcing in ECN++ and other issues here. I'd like a cleaner spec so that **IF** there are results from the experiments we know how to then publish a PS and declare the experiment as historic. At the moment this seems awkard. - Section 3.2.7.2 is also about the SYN negotiation. And similar to ECN++. (7) Section 3.2.3 (First segment after SYN) - TCP segments can be re-ordered, so saying the "first segment after SYN" should (I think) probably be the segment numbered after the SYN segment - noting that this is not necessarily the next segment received (in time order). (8) Section 3.2.5 - The modified delayed ACK policy stated here is an experimental update to the IETF recommended procedure in a PS (RFC5681, 4.2. Generating Acknowledgments). I think it is important that the change is referenced back to this RFC. The proposed change could have implications on the capacity used for the ACK stream - and this should be noted. (9) RFC2119: Section 3.2.7.1, para 1 - The ID says the client MUST NOT include the AccECN option on the SYN. What does a server do that receives such an option? (10) RFC2119: Section 3.2.7.1, para 2 - "A TCP server that confirms its support ... SHOULD also" - I couldn't parse that sentence... Is that to imply there are valid reasons why the server could be implemented in a way that does not do this? (That doesn't seem to be explained). - What is the meaning of "also" here. Does that mean the support is already confirmed in some other way? (I'm not sure also after SHOULD is a helpful construction of a clause). (11) RFC2119: Section 3.2.7.1, para 3 - I think the sentence starting "A TCP Client" also contains two SHOULD clauses without saying what are the conditions for not doing this. I think it is often wiser to start these sort of clauses by saying something like this order to avoid this: ... A host that receives an AccECN option SHOULD respond by returning the AccECN option in the first ACK at the end of the 3WHS. ... There are three cases when the host could decide not to ... When the TCP client returns the ECN option, it SHOULD also include an AccECN option on the first data segment it sends... This is to ensure that... (12) RFC2119: Please also avoid "MAY NOT" as a construct, since this can be mis-interpretted by different varients of English usage. (13) Section 3.3 appears to make string normative requirements (MUST) on the operation of middleboxes. This may be the intention, but if so, I think it would be much wider to then make this evident in the section title and the document introduction. (14) RFC2119: Section 3.3 appears to make mixed normative requirements (MUST attempt) on offload. I don't know what that means. I think this could be equivalent to "SHOULD" with an explanation of WHY this is so needed (which is sort of there). (15) Section 3.3 on offload. - If this is intended to change offload behaviour, I think it needs a separate section to say this, mentioned in the intro, otherewise people implementing offload will not see and read this. (16) Section 4, Section 5, Appendix A, intro. - You could remove (not normative) to be even clearer. (17) For the avoidance of doubt it may be wise to state the standards status of the TCP AO and Conex work... e.g., "TCP AO is a standards-track method to ..." Best wishes, Gorry
- [tcpm] Detailed review of AccECN rev -04 Gorry Fairhurst
- Re: [tcpm] Detailed review of AccECN rev -04 Mirja Kühlewind
- Re: [tcpm] Detailed review of AccECN rev -04 Gorry Fairhurst
- Re: [tcpm] Detailed review of AccECN rev -04 Bob Briscoe
- Re: [tcpm] Detailed review of AccECN rev -04 G Fairhurst