[tcpm] Benjamin Kaduk's No Objection on draft-ietf-tcpm-rack-14: (with COMMENT)
Benjamin Kaduk via Datatracker <noreply@ietf.org> Thu, 17 December 2020 17:55 UTC
Return-Path: <noreply@ietf.org>
X-Original-To: tcpm@ietf.org
Delivered-To: tcpm@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 129E13A0E54; Thu, 17 Dec 2020 09:55:01 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Benjamin Kaduk via Datatracker <noreply@ietf.org>
To: The IESG <iesg@ietf.org>
Cc: draft-ietf-tcpm-rack@ietf.org, tcpm-chairs@ietf.org, tcpm@ietf.org, draft-ietf-tcpm-rack.all@ietf.org, tuexen@fh-muenster.de
X-Test-IDTracker: no
X-IETF-IDTracker: 7.24.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: Benjamin Kaduk <kaduk@mit.edu>
Message-ID: <160822770059.15041.16286115220871304513@ietfa.amsl.com>
Date: Thu, 17 Dec 2020 09:55:01 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/6cd0WMVIQWqNlu4PEdR1czhI4JY>
Subject: [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
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: Thu, 17 Dec 2020 17:55:01 -0000
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! 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). 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.)? 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"? 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.) 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? 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.) Section 13.1 In terms of how we reference it, RFC 3042 seems like it could be informative.
- [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