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

Yuchung Cheng <ycheng@google.com> Wed, 30 December 2020 17:12 UTC

Return-Path: <ycheng@google.com>
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 ECBAB3A0A22 for <tcpm@ietfa.amsl.com>; Wed, 30 Dec 2020 09:12:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.598
X-Spam-Level:
X-Spam-Status: No, score=-17.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
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 B9WWooaMrh05 for <tcpm@ietfa.amsl.com>; Wed, 30 Dec 2020 09:12:16 -0800 (PST)
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com [IPv6:2a00:1450:4864:20::435]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1A86F3A0A1E for <tcpm@ietf.org>; Wed, 30 Dec 2020 09:12:15 -0800 (PST)
Received: by mail-wr1-x435.google.com with SMTP id w5so17970358wrm.11 for <tcpm@ietf.org>; Wed, 30 Dec 2020 09:12:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=qknqvin5xKaRi20p1qB7A5X2BwkoMj7pGkhWNzL9cIU=; b=GaOMMVqPym6Ik/SnE/Bmh5Pw/7CzHjSQyewTdXh5rspmy4kMjCqPhhmTLBJJ+5yTWC bpWlB8on8Zj98ao93uPZrl6+FGkrPp5Gz8GAnCbibZcnOKtEgARpHNfndLXo995pUnsw 1pHVdqQc/naPFBBccDymqejyHXJVIwtbC9otcRRKcsi0k49YECUW3VkLoRDeYW1Z8mhA IaaISV0UZmYyXSZrG1UJKLWiJEyuMnPmbz2Zo4kB/lWYvavAALHLHsNgEiA8knOQIuyS 6hR5wXdvH8YqqkTMSwILcK2JPOKj+jpsa5aSjm8QPwx939XKfVZlEzM72HsLcebJLr8J bDew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=qknqvin5xKaRi20p1qB7A5X2BwkoMj7pGkhWNzL9cIU=; b=azcbYRGpXs3kraC6fJH4Mh1uqrLUq0JLjERBlgdQ2oBwtyHNamIhfitjCj1dEp5sim FitCncIIKkPSVTK2CZBT1gtlOP/5vh4MvcAe4fXHm/ZmD29qPi1+OqP15+bjVJc3LeVo fYK7GN8UKlC4hAi7680GkUe6XN+zEBhe417sXthjYqliVDldLdXaimSS0RPkuyxEsvzi D9J5fPivIkAsH/BVBmaAtCToFWkRmLOTY/sixoVORW4+Z1BomCtey8pqSFliWKeT9B+M Xt82GiEmUQ9EZUJFVKdjS3jMEoNbiWdO1N+Ez+y/t2Ay3f11cYAZC7HSNzrdb/jqgka1 9OqA==
X-Gm-Message-State: AOAM531ju0jJOizcAEPYVvfthFAjtq5HC5gYYqUMPlzq8Rg8kY1++9Ku JVv+uOHkPgbJ6faEh8LL9LlyhUBb10fzkkLI+W82Eg==
X-Google-Smtp-Source: ABdhPJw+eGYcVlpZ9/7I+ljIkUfrQ8lNTtXc12I97yvizDogGLQvanYwfHU8wqyT7XcOJRa2sYhRJCfDvlLWff5eLVY=
X-Received: by 2002:adf:dc8b:: with SMTP id r11mr62218371wrj.131.1609348332620; Wed, 30 Dec 2020 09:12:12 -0800 (PST)
MIME-Version: 1.0
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> <20201230054144.GU89068@kduck.mit.edu> <CADVnQymKWcEJdZ8MP--6i3Unj-vStYbW376hPq4T0Nt5EYzDNA@mail.gmail.com>
In-Reply-To: <CADVnQymKWcEJdZ8MP--6i3Unj-vStYbW376hPq4T0Nt5EYzDNA@mail.gmail.com>
From: Yuchung Cheng <ycheng@google.com>
Date: Wed, 30 Dec 2020 09:11:35 -0800
Message-ID: <CAK6E8=cT8FwGMNQio2+cSoNypV9iBJi4eVSg00b1d1Xn1QXwrA@mail.gmail.com>
To: Neal Cardwell <ncardwell@google.com>
Cc: Benjamin Kaduk <kaduk@mit.edu>, 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>
Content-Type: multipart/mixed; boundary="000000000000b0483805b7b19b35"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/zbjUL0i51X0EtrrFOrhSXbjGuwY>
X-Mailman-Approved-At: Thu, 31 Dec 2020 08:01:04 -0800
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 17:12:20 -0000

Thank you Ben for your review. Here is the latest proposed diff. Let us
know what you think and we'll work w/ RFC editors to incorporate this minor
change.

On Wed, Dec 30, 2020 at 5:55 AM Neal Cardwell <ncardwell@google.com> wrote:

>
>
> On Wed, Dec 30, 2020 at 12:42 AM Benjamin Kaduk <kaduk@mit.edu> wrote:
>
>> 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 :)
>>
>
> Great. Thanks for raising this issue!
>
>
>> > 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?)
>>
>
> Right, exactly. If there are no retransmissions and the sequence of packet
> deliveries is [1, 3, 4, 5, 2] then my intuition and
> RACK_detect_reordering() would not conclude that 3, 4, 5 are
> "reordering", but upon seeing that 2 is delivered both my intuition
> an  RACK_detect_reordering() would declare that reordering has been seen.
>
>
>
>> > 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.
>
>
> Great. Glad to hear it. We will talk it over among the draft co-authors
> and see if we can make this more clear.
>
> Thanks!
>
> neal
>
>
>