Re: [tcpm] Benjamin Kaduk's No Objection on draft-ietf-tcpm-rack-14: (with COMMENT)
Benjamin Kaduk <kaduk@mit.edu> Tue, 29 December 2020 20:07 UTC
Return-Path: <kaduk@mit.edu>
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 5107D3A091C; Tue, 29 Dec 2020 12:07:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=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 9Nv1GkQD-cAc; Tue, 29 Dec 2020 12:07:08 -0800 (PST)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DD0FF3A0927; Tue, 29 Dec 2020 12:07:07 -0800 (PST)
Received: from kduck.mit.edu ([24.16.140.251]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 0BTK6uw5004601 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 29 Dec 2020 15:07:01 -0500
Date: Tue, 29 Dec 2020 12:06:56 -0800
From: Benjamin Kaduk <kaduk@mit.edu>
To: Yuchung Cheng <ycheng@google.com>
Cc: The IESG <iesg@ietf.org>, draft-ietf-tcpm-rack@ietf.org, tcpm-chairs <tcpm-chairs@ietf.org>, "tcpm@ietf.org Extensions" <tcpm@ietf.org>, draft-ietf-tcpm-rack.all@ietf.org, Michael Tuexen <tuexen@fh-muenster.de>
Message-ID: <20201229200656.GG89068@kduck.mit.edu>
References: <160822770059.15041.16286115220871304513@ietfa.amsl.com> <CAK6E8=d1WsuNcdu_1hhn0x=Grom5WrMW8xhMXiREYx9Ys5xamw@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <CAK6E8=d1WsuNcdu_1hhn0x=Grom5WrMW8xhMXiREYx9Ys5xamw@mail.gmail.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/hFW4oJYiIXMBj3oz1Z2ONFxFzwo>
Subject: Re: [tcpm] Benjamin Kaduk's No Objection on draft-ietf-tcpm-rack-14: (with COMMENT)
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: Tue, 29 Dec 2020 20:07:11 -0000
Hi Yuchung, On Fri, Dec 18, 2020 at 05:59:20PM -0800, Yuchung Cheng wrote: > On Thu, Dec 17, 2020 at 9:55 AM Benjamin Kaduk via Datatracker < > noreply@ietf.org> wrote: > > > Benjamin Kaduk has entered the following ballot position for > > draft-ietf-tcpm-rack-14: No Objection > > > > When responding, please keep the subject line intact and reply to all > > email addresses included in the To and CC lines. (Feel free to cut this > > introductory paragraph, however.) > > > > > > Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html > > for more information about IESG DISCUSS and COMMENT positions. > > > > > > The document, along with other ballot positions, can be found here: > > https://datatracker.ietf.org/doc/draft-ietf-tcpm-rack/ > > > > > > > > ---------------------------------------------------------------------- > > COMMENT: > > ---------------------------------------------------------------------- > > > > Thanks for presenting this complicated topic in a very easy-to-read > > manner! > > > Thank you for your review. > > > > > > Section 3.3.2 > > > > 1. The reordering window SHOULD be set to zero if no reordering has > > been observed on the connection so far, and either (a) three > > segments have been delivered out of order since the last recovery > > > > I assume there's some subtle technical difference between "reordering" > > and "segments delivered out of order" that makes this a reasonable thing > > to say ... but it would be nice if the distincion was made more clear > > (whether here or in earlier text). > > > Great idea to define reordering more precisely. In this document, > reordering refers to when two TCP segments are delivered at the TCP > receiver in a different order from they were sent at the TCP sender for a > given TCP flow. Notice the ordering is chronological instead of sequential > on TCP sequences. > > We'll add that definition on the first appearance of the word 'reordering' > to clarify. I am quite confident that you know how this works, though I am not sure that I understand properly yet -- is the key distinction that "reordering has been observed" and "segments have been delivered out of order" refer to time vs TCP sequence number? (There's not actually a need to respond; I am sure the document will be correct. I am just curious, is all.) > > > > > Section 6.2 > > > > Among all the segments newly ACKed or SACKed by this ACK that pass > > the checks above, update the RACK.rtt to be the RTT sample calculated > > using this ACK. Furthermore, record the most recent Segment.xmit_ts > > in RACK.xmit_ts if it is ahead of RACK.xmit_ts. If Segment.xmit_ts > > equals RACK.xmit_ts (e.g. due to clock granularity limits) then > > compare Segment.end_seq and RACK.end_seq to break the tie. > > > > Perhaps we should state what the result of breaking the tie is used for > > (i.e., updating RACK.segment & co.)? > > > > sure: we'll add "breaking the tie to update RACK.segment's associated > states'. > > > > > > To avoid the issue above, RACK dynamically adapts to higher degrees > > of reordering using DSACK options from the receiver. Receiving an > > ACK with a DSACK option indicates a possible spurious retransmission, > > suggesting that RACK.reo_wnd may be too small. The RACK.reo_wnd > > increases linearly for every round trip in which the sender receives > > some DSACK option, so that after N distinct round trips in which a > > DSACK is received, the RACK.reo_wnd becomes (N+1) * min_RTT / 4, with > > an upper-bound of SRTT. > > > > What constitutes a "distinct round trip"? > > > The distinct is redundant. It really means N round trips (which obviously > are distinct and different from the other N-1). We'll remove 'distinct' > word. > > > > > > Return min(RACK.min_RTT / 4 * RACK.reo_wnd_mult, SRTT) > > > > I suggest reordering the expression to be min(RACK.reo_wnd_mult * > > RACK.min_RTT / 4, SRTT), to avoid needing to consider the order of > > operations and operator precedence in the pseudocode. (soapbox: in > > formal mathematics, there is no "division" operation, just > > multiplication by the multiplicative inverse, in part because it makes > > dealing with associativity and commutativity of operations harder to > > reason about.) > > > Sure we'll change to the suggested more clear format. > > > > > > Section 8 > > > > sender SHOULD cancel any other pending timer(s). An implementation > > is to have one timer with an additional state variable indicating the > > type of the timer. > > > > nit: maybe "is expected to have one timer", to avoid any risk of being > > interpreted as over-specifying implementation behavior? > > > good idea. will add "expected". > > > > > > Is there anything to say about increasing the usage of fast recovery > > (vs RTO) potentially having an aggregate effect globally on how much > > data is in flight and increasing the overall risk of congestion? (I > > mostly assume not, but it's kind of my job to ask.) > > > Great question. We agree with you: our conjecture is that RACK-TLP reduces > (loss-based) C.C. over-correction and BW under-utilization than C.C. > under-correction, particularly for app-limited short flows. For bulk long > flows that comprise the majority of the Internet traffic volume, most > losses are well detected by the existing 3-dupack-rule since the flows' > congestion windows are large enough to trigger 3 dupacks. RACK-TLP actually > helps reduce spurious fast recoveries on moderately reordered paths for > these long flows. But overall in our experience, the state of congestion is > much dominated by the actual C.C. algorithms (e.g. slow-start, increase and > decrease functions) of these long flows and less about #fast-recoveries. Okay. Thank you for thinking about it, and thanks for all the updates. -Ben > > > > > Section 13.1 > > > > In terms of how we reference it, RFC 3042 seems like it could be > > informative. > > > Good catch. will move to normative
- [tcpm] Benjamin Kaduk's No Objection on draft-iet… Benjamin Kaduk via Datatracker
- Re: [tcpm] Benjamin Kaduk's No Objection on draft… Yuchung Cheng
- Re: [tcpm] Benjamin Kaduk's No Objection on draft… Benjamin Kaduk
- Re: [tcpm] Benjamin Kaduk's No Objection on draft… Neal Cardwell
- Re: [tcpm] Benjamin Kaduk's No Objection on draft… Benjamin Kaduk
- Re: [tcpm] Benjamin Kaduk's No Objection on draft… Neal Cardwell
- Re: [tcpm] Benjamin Kaduk's No Objection on draft… Yuchung Cheng