Re: [tcpm] Benjamin Kaduk's No Objection on draft-ietf-tcpm-rack-14: (with COMMENT)

Benjamin Kaduk <kaduk@mit.edu> Wed, 30 December 2020 05:42 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 7240C3A0FB3; Tue, 29 Dec 2020 21:42:31 -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 aA-3ROKJW6rM; Tue, 29 Dec 2020 21:42:29 -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 0F1B33A0FB2; Tue, 29 Dec 2020 21:42:28 -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 0BU5gGJJ029837 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 30 Dec 2020 00:42:20 -0500
Date: Tue, 29 Dec 2020 21:42:16 -0800
From: Benjamin Kaduk <kaduk@mit.edu>
To: Neal Cardwell <ncardwell@google.com>
Cc: Yuchung Cheng <ycheng@google.com>, 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: <20201230054144.GU89068@kduck.mit.edu>
References: <160822770059.15041.16286115220871304513@ietfa.amsl.com> <CAK6E8=d1WsuNcdu_1hhn0x=Grom5WrMW8xhMXiREYx9Ys5xamw@mail.gmail.com> <20201229200656.GG89068@kduck.mit.edu> <CADVnQykhSzziSNfoYDZ-HSzTsAStDTG3YRRTM=mV+r7m37-_mw@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <CADVnQykhSzziSNfoYDZ-HSzTsAStDTG3YRRTM=mV+r7m37-_mw@mail.gmail.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/FxThpHWuD7K99DRinWWKd6u2YPo>
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: Wed, 30 Dec 2020 05:42:32 -0000

Hi Neal,

On Tue, Dec 29, 2020 at 11:04:41PM -0500, Neal Cardwell wrote:
> On Tue, Dec 29, 2020 at 3:07 PM Benjamin Kaduk <kaduk@mit.edu> wrote:
> 
> > > > 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.)
> >
> 
> Benjamin, I think I did not previously understand your earlier remark: '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 now I think perhaps I understand what you were getting at: were you
> remarking that there is an apparent contradiction in the text between "no
> reordering has been observed on the connection so far" and "three segments
> have been delivered out of order", so that it seems impossible for the
> connection to meet the conditions for both "no reordering has been observed
> on the connection so far" and "(a) three segments have been delivered out
> of order since the last recovery"?

Exactly so!  Sorry for not having been more clear originally.

> I agree that the text of the draft as currently written seems contradictory
> or at least unclear. :-)

Well, I guess I can feel better about having been confused by it, now :)

> The "three segments have been delivered out of order" phrase in the draft
> was meant to refer to three segments being SACKed. But now that you raise
> this point, it seems to me it would be more correct and clear to say
> something like "three segments have been SACKed", rather than "three
> segments have been delivered out of order".
> 
> From my perspective, the SACKed segments are not necessarily "delivered out
> of order", they merely have at least one hole in the sequence space. For
> example, in the sequence [1, 3, 4, 5], the [3, 4, 5] are not "out of
> order", and were they TCP segments we would not say that reordering has
> been observed; it's just that 2 is not (yet?) present.

Indeed, there is some subjectivity in the definition of "out of order".
(My initial draft comments on this document had included a request for more
clarity on how to tell which segments are "out of order" as compared to
some baseline, but I deleted it once I got to, IIRC, discussion in Section
6.2 about segments below RACK.fack getting acknowledged as being ones
delivered out of order, which I took to be effectively a definition, and
seemed well-formed at the time.  Though perhaps that formulation is not
well-defined for what it means for a retransmitted segment to be
out-of-order...)  If we apply the definition of "a segment is delivered out
of order if, when it is ACKd, RACK.fack is greater than its sequence
number" to your example above, it seems like we would conclude that 2 is out
of order, but 3, 4, and 5 are in-order.  (Right?)

> I also like the "three segments have been SACKed" phrase since the "have
> been SACKed" phrase is used in RFC6675 for a similar purpose in the
> description of "IsLost (SeqNum):"

Also a pretty compelling argument.

> If it's not too late for edits, I would propose that the section you
> mentioned ("3.3.2
> <https://tools.ietf.org/html/draft-ietf-tcpm-rack-15#section-3.3.2>.
> Reordering window adaptation") that says:
> 
>    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
>        or (b) the sender is already in fast or RTO recovery.
> 
> 
> would be edited to:
> 
> 
>    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 SACKed* since the last recovery
>        or (b) the sender is already in fast or RTO recovery.
> 
> 
> Benjamin, does that help address what you were talking about?

Yes.  From my point of view, that proposal is a big improvement.

Thanks,

Ben