Re: [tcpm] WGLC for draft-ietf-tcpm-rack-08
Gorry Fairhurst <gorry@erg.abdn.ac.uk> Mon, 06 April 2020 15:24 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 A8B293A0A2F for <tcpm@ietfa.amsl.com>; Mon, 6 Apr 2020 08:24:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_NONE=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 oMtq7dygGzNT for <tcpm@ietfa.amsl.com>; Mon, 6 Apr 2020 08:24:21 -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 D991C3A0AFA for <tcpm@ietf.org>; Mon, 6 Apr 2020 08:22:37 -0700 (PDT)
Received: from GF-MacBook-Pro.local (fgrpf.plus.com [212.159.18.54]) by pegasus.erg.abdn.ac.uk (Postfix) with ESMTPSA id 89AD11B0012D; Mon, 6 Apr 2020 16:22:33 +0100 (BST)
To: tcpm IETF list <tcpm@ietf.org>
References: <3D4D034B-7A72-4313-8FB6-CB689A167E91@fh-muenster.de> <BF4360DD-04B2-4D4C-9E55-314E9793D447@ericsson.com>
Cc: Michael Tuexen <tuexen@fh-muenster.de>
From: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Message-ID: <7e9fb383-15d8-b613-2fcb-ea7de9c46ef2@erg.abdn.ac.uk>
Date: Mon, 06 Apr 2020 16:22:32 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:68.0) Gecko/20100101 Thunderbird/68.6.0
MIME-Version: 1.0
In-Reply-To: <BF4360DD-04B2-4D4C-9E55-314E9793D447@ericsson.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Content-Language: en-GB
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/NoH5SQuZUIxs-Dqn4IJlVRnz4Jc>
Subject: Re: [tcpm] WGLC for draft-ietf-tcpm-rack-08
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, 06 Apr 2020 15:24:24 -0000
I reviewed the latest version of RACK as a part of the TCPM WGLC. I do not think this is ready. I think the specification is important, but the document has many editorial issues. These issues seem to be very important and I do not think the current document is ready to proceed without a revision being prepared that can be properly reviewed. Overall I am concerned that this draft provides little evidence or justification for the proposed change to an existing PS. I do not argue against the proposal, but I do suggest the justification and trade-offs involved needs to be clear before the IETF should publish such a specification. Some of the comments below could be fixed by editorial work, but as currently written this makes many bold statements about IETF consensus that I would not agree with. Many of these could be easily rephrased too focus only on the topics being standardised, or by providing appropriate evidence for the claims. Specific comments follow - some issues I will highlight in a separate mail. Gorry Section 2: — I do not see a reference that offers data for this: In recent years we have been observing several increasingly common loss and reordering patterns in the Internet. - Can you explain who “we” are and where this has been published or presented? I’d be quite comfortable if this said “in recent tears there is an increasing concern about the implications of loss or reordering” - but the present set asserts this is common, so I ask for evidence please? — This is not explained: “ Structured request-response traffic turns more losses into tail drops.” - I don’t think the losses are turned into tail drops, maybe the losses are observed at the tails of transmission? — This is not justified: “ Despite TCP stacks (e.g. Linux) that implement many of the standard and proposed loss detection algorithms [RFC4653][RFC5827][RFC5681][RFC6675][RFC7765][FACK][THIN-STREAM], we've found that together they do not perform well. “ - Can you explain who “we” are and where this has been published/presented? — This sentence doesn’t read well: “They can either detect loss quickly or accurately, but not both, especially when the sender is application-limited or under reordering that is unpredictable. “ - /They/A sender/ …. /or under reordering that is unpredictable/or when the reordering is unpredictable/. - What does unpredictable mean in this sentence? Is it about the pattern or reordering, the variation in the pattern, the presence or not within an RTT or something else? — This is not explained or justified: “And under these conditions none of them can detect lost retransmissions well.” - None of them can doe well? Can you explain this better, saying this is not “well” seems a very poor justification for changing a standard — This is confusing: “Also, these algorithms, including RFCs, rarely address the interactions with other algorithms. “ - Which? and why this this important? — Since section 2 seems mainly set out to provide the reason for the change, would it not be more normal to precede the RFC2119 terminology declaration? This could also apply to section 3, which introduces the method, but does not appear normative. —— Section 3. “The main idea behind RACK is that if a packet has been delivered out of order, then the packets sent chronologically before that were either lost or reordered.” - This is put forward as a TCP specification, and yet it describes things in network-layer “packets”. If the IP layer were to fragment, does this still work on IP packets? I think this should be in terms of transport segments, or the relationship between packets and segments explained. — “Using a threshold for counting duplicate acknowledgments (i.e., DupThresh) alone is no longer reliable because of today's prevalent reordering patterns. “ - To me this is quite an annoying statement to make without reference to a source of this consensus. Saying the method is robust to reodering seems good, saying the current Internet has "prevalent reordering patterns" makes me ask where? what evidence? how important? etc. I suggest this document should not be making these claims. —— “A common type of reordering is that the last "runt" packet of a window's worth of packet bursts gets delivered first, then the rest arrive shortly after in order. “ - Cite data please and explain the cases, or please do not claim this is “common”! — “Today's prevalent lost retransmissions also cause problems with packet-counting approaches “ - Cite data please, or please do not claim this is “prevalent”. —— “are often unable to infer and quickly repair losses” - “often” is being used here in a way that implies this is frequent? Is this strictly necessary to define the algorithm. I think it would be enough to explain these events can happen, and that the algorithm can detect these cases and appropriately respond. I do not see the need to make a statement of how common this is. — This isn’t clear text, I had to read several times to be sure: “On each ACK, RACK marks any already-expired packets lost, and for any packets that have not yet expired it waits until the reordering window passes and then marks those lost as well” - I think this could be explained more simply. — “hurts” performance. Could be better phrased. — “TCP congestion control implicitly assumes the feedback from ACKs are from the same bottleneck. “ - I don’t think this is true. There is no assumption. The design was based on a single bottleneck at any one time along the path. However that does not imply that more than one bottleneck can not be present. — “Therefore it cannot handle well scenarios where packets are traversing largely disjoint paths.” - I don’t know what “handle well” means, not do I understand “largely disjoint” really means in this context. Can this be explained? — “Having an excessively large reordering window to accommodate widely different latencies from different paths would increase the latency of loss recovery.” - This needs better phrasing. Why does this have to be “excessively” large and why does a TCP transport care about “different paths” irrespective of being “widely different” - I could not understand what was intended at all. - — “An end-to-end transport protocol cannot tell immediately whether a hole is reordering or loss. “ - Please explain hole before using. — “How long the sender waits for such potential reordering events to settle is determined by the current reordering window.” - NiT; except one is measured in packets, and “how long” is in units of seconds. — “The initial RACK reordering window SHOULD be set to a small fraction of the round-trip time.” - Sounds good, is this after connection setup, or before? How does the sender know the RTT? — “ To accomplish this RACK places the following mandates on the reordering window:” - The discussion ‘mandates’ appears to be different to the discussion of requirements. I don’t see the difference explained. I wonder whether the document should place all requirements in section 5, but if not, then the purpose should be better explained. — “ RACK does not need any change on the receiver.” - OK. However, there is a requirement that the receiver reports loss using SACK. — “ RACK.dsack" indicates if a DSACK option .” - DSACK not mentioned until here. Should you cite DSACK [RFC3708] ? --- “The RECOMMENDED value for WCDelAckT is 200ms.” -Why this value? is this linked to TCP Delayed ACK value? — “We have evaluated using the smoothed RTT” …. where is the data? — “They do not make any significant difference in terms of total recovery latency.” - Is this true of **ALL** cases? I strongly dislike such conclusions in RFCs. The document can only make conclusions based on available data, and claiming this for arbitrary paths is dangerous and unnecessary. - “While RACK can be a supplemental loss detection mechanism on top of these algorithms, this is not necessary, because RACK implicitly subsumes most of them.” - what is not necessary RACK? or one of them? why does it say “most”, please be specific. - I think sections 8 and 9 are both informative. Is this the case? I like this information, but I would prefer the sections to explain that they are informative, if that is the case --- “"Common causes of RTOs include:" - This seems unnecessary, can’t you scope this to the ones that you think TLP will address, instead of making this very general statement. The current text seems to need a reference, whereas saying this is what TLP addresses would not. — “"A sender should schedule a PTO only if all of the following conditions are met" - what is the actual requirement here? I’m searching to understand what is actually needed or recommended. --- NiTs: “eg.” should be “e.g.,” “is the easiest way to get a network to go faster.” - This needs to be explained better. --- “Therefore their main constraint on speed is reordering, and there is pressure to relax that constraint. “ - I object to this statement within a TCPM document. This is not related to the TCPM Charter which is about maintaining transport protocols and not changing network-layer forwarding behaviour. I similarly think the following sentence is entirely inappropriate: “If RACK becomes widely deployed, the underlying networks may introduce more reordering for higher throughput. “ - albeit with a lower case “may”, this is still something that tsvwg has spent many meetings discussing and one that has significant pushback and therefore a need for careful choice of words!
- [tcpm] WGLC for draft-ietf-tcpm-rack-08 Michael Tuexen
- [tcpm] Review (Re: WGLC for draft-ietf-tcpm-rack-… Theresa Enghardt
- Re: [tcpm] WGLC for draft-ietf-tcpm-rack-08 Mirja Kuehlewind
- Re: [tcpm] WGLC for draft-ietf-tcpm-rack-08 Gorry Fairhurst
- Re: [tcpm] WGLC for draft-ietf-tcpm-rack-08 - 3 i… Gorry Fairhurst
- Re: [tcpm] [EXTERNAL] WGLC for draft-ietf-tcpm-ra… Praveen Balasubramanian
- Re: [tcpm] WGLC for draft-ietf-tcpm-rack-08 Yuchung Cheng
- Re: [tcpm] Review (Re: WGLC for draft-ietf-tcpm-r… Yuchung Cheng
- Re: [tcpm] WGLC for draft-ietf-tcpm-rack-08 Yuchung Cheng
- Re: [tcpm] [EXTERNAL] WGLC for draft-ietf-tcpm-ra… Yuchung Cheng
- Re: [tcpm] Review (Re: WGLC for draft-ietf-tcpm-r… Theresa Enghardt
- Re: [tcpm] Review (Re: WGLC for draft-ietf-tcpm-r… Yuchung Cheng
- Re: [tcpm] Review (Re: WGLC for draft-ietf-tcpm-r… Theresa Enghardt
- Re: [tcpm] Review (Re: WGLC for draft-ietf-tcpm-r… Yuchung Cheng