Re: [core] [tcpm] New draft: https://datatracker.ietf.org/doc/html/draft-scheffenegger-tcpm-lrd-00

Neal Cardwell <ncardwell@google.com> Fri, 12 March 2021 20:49 UTC

Return-Path: <ncardwell@google.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4CDF33A12D2 for <core@ietfa.amsl.com>; Fri, 12 Mar 2021 12:49:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.599
X-Spam-Level:
X-Spam-Status: No, score=-17.599 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, 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=ham 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 71y8xZHFLW42 for <core@ietfa.amsl.com>; Fri, 12 Mar 2021 12:49:55 -0800 (PST)
Received: from mail-vs1-xe31.google.com (mail-vs1-xe31.google.com [IPv6:2607:f8b0:4864:20::e31]) (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 54D843A12CC for <core@ietf.org>; Fri, 12 Mar 2021 12:49:55 -0800 (PST)
Received: by mail-vs1-xe31.google.com with SMTP id w76so13175813vsw.10 for <core@ietf.org>; Fri, 12 Mar 2021 12:49:55 -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=BYUZdwHKQq50SSHjx1INnk337CXEvne0SYTTjsvhqcs=; b=KU4R8LImdks1BP0l3/UQfHeMw8cszFt8i8GQXuOD1UpAc5qV61kQJOWJDlvarL8bKn bnernxC6j6GFvyWcvM+KWZWq8Eby+XqJqg7D4E1oAe5zMcKv0sZZIUUmcGQ1qvpSJ1S4 MXRhF1zbdSL9Ow8cLu4cNB25AzsoEk7gdz53f+X8aWFth++BTJsznT1yG9d7+ssDGKiM xDdJA9c1SNR1e0spSuiM9nydSfVaYNsO1CkEfROi/Y/ltMrsWg8BFNex8YeD9LyE0XV/ vcOq3oRLSS/HPBHr3TRGJCeue3TFIUioJsUjVvDHc2yrdO32e29MGTtiT7p65Wlevfy2 Tx1Q==
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=BYUZdwHKQq50SSHjx1INnk337CXEvne0SYTTjsvhqcs=; b=V14hexyGW6FxpcSgGzSAz1E9CDhpEEnRpz7pcPLH8yiFfnp47p7PSjsYxDhnMywRr6 k0d7bABoqjc9U5RoYLS67S7HzzXyOVTu4wJZuXikbCwPXh1vS05eg//6uSEs3F7qKZYy +OyWcmPOdzFwBYh2ph5jR/g1MlaPOQ5ErBbMjneKM3x58Gu2Ace/YEOzaw9UMDm8OHxJ KwAxXkknkhC1QZQaEGnCbzWBfcFzD3umlk+aTw5t+3VXTdudUje/TThqEEhm2+qKBLVO WVBc2GLLB6o91lEOVZci8YRiv2FO2/MFOOK2/XY3HxKkI0Q6LMWxVryxrlGojgh/tFSL 47VQ==
X-Gm-Message-State: AOAM532R2+rnkGycaKRE3kHCqQlh7tnZDrTTdhRxRhgAjRnoj9aY2CQK wsZHJdj6Q2TkYrV8uIhU/IP1r/3++nK3bTUjSxSIiA==
X-Google-Smtp-Source: ABdhPJxZCDuHgcqQg/8ec0Cb8yUD+qrmibeK5he5iAxIkQznor0ftuTXP0B0hwQCfkCqxeHFZZ4GSqXNhbrf0vw/1iI=
X-Received: by 2002:a67:1005:: with SMTP id 5mr160546vsq.52.1615582193423; Fri, 12 Mar 2021 12:49:53 -0800 (PST)
MIME-Version: 1.0
References: <161529694562.32408.1003733576456029769@ietfa.amsl.com> <24aa2c28-41e3-6a14-7ffa-88418745c154@bobbriscoe.net> <a7980729-5c40-462c-fb47-7c87e459745e@gmx.at> <CADVnQymL50GA6CATY-i0fwn7a2fqfnkEyquCV4MEzDm3tOAnWQ@mail.gmail.com> <5ecbb7fd-556b-2233-b35b-baec71a28b58@gmx.at>
In-Reply-To: <5ecbb7fd-556b-2233-b35b-baec71a28b58@gmx.at>
From: Neal Cardwell <ncardwell@google.com>
Date: Fri, 12 Mar 2021 15:49:36 -0500
Message-ID: <CADVnQyk4xbE8T1joj5T93B9y=hsT27NBP0fYMJHHOz6eHMMhmw@mail.gmail.com>
To: "Scheffenegger, Richard" <rs.ietf@gmx.at>
Cc: iccrg IRTF list <iccrg@irtf.org>, tcpm IETF list <tcpm@ietf.org>, core@ietf.org, lwig@ietf.org
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/LMXyTnw4ibo9PQndVauB8EEegcY>
Subject: Re: [core] [tcpm] New draft: https://datatracker.ietf.org/doc/html/draft-scheffenegger-tcpm-lrd-00
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Mar 2021 20:49:57 -0000

On Fri, Mar 12, 2021 at 3:39 PM Scheffenegger, Richard <rs.ietf@gmx.at> wrote:
>
> Hi Neal,
>
> I was specifically thinking about Linux, but my recollection as to when
> it first showed up there must have been skewed.
>
> The SACKPerf reference appears to be dead (only a copy on archive.org is
> available - I don't know if that is valid to quote instead of the link
> that I found all these years ago.
>
> https://web.archive.org/web/20150103014718/http://projects.itri.aist.go.jp/gnet/sack-bug.html

FWIW looks like there is a copy of the [SACKPerf] paper here:
  http://www.hep.man.ac.uk/g/GDARN-IT/pfldnet2008/paper/kodama_y%20Final.pdf

> In any case, the improvement described therein sounds as if some more
> limited form of lost retransmission detection was already present in
> Linux before that. (For single Hole/SACK Ranges).

Oh, interesting. Maybe so. I have not had time to read the paper or
the preceding code.

> As I am not that intricately familiar with Linux, is my assesment
> correct that (at the time of ~2.6.24), CC would not be triggered anew
> when a lost retransmission is detected?

Yes, that sounds correct. In Linux Reno/CUBIC/etc there would only be
one cwnd reduction until SND.UNA reaches the value SND.NXT had at the
time of the previous reduction. That is, there is one cwnd reduction
per "window", where "window" is interpreted in sequence space rather
than time.

> If you have a suggestion for an appropriate text honoring all the prior
> work on Linux, I would be very grateful. I would also like to invite you
> to coauthor this document, if you want to help refine the text further.

I have not had the time to read the [SACKPerf] paper that seems key to
this archeology, so would defer to your wording. Thanks for your
generous offer, but my plate is a bit full at the moment.

> Also, I have a more aggressive mechanism, using a heuristic to
> differentiate between a SACK for an original segment vs. a SACK for a
> retransmitted segment, and using the latter to also engage LRD. As this
> variant does not rely on new data to be sent, it can also work at the
> end-of-stream, albeit with some potential misdetections of lost
> retransmissions (again superceded by TLP /  RACK).
>
> However, I felt that the conservative mechanism is the proper starting
> point for now.

Sounds interesting. I would agree that documenting something close to
the existing LRD algorithm that has a lot of air miles from 2008 until
RACK seems like a good place to start.

best regards,
neal


> Best regards,
>     Richard
>
>
>
> Am 12.03.2021 um 19:26 schrieb Neal Cardwell:
> >
> >
> > On Fri, Mar 12, 2021 at 12:34 PM Scheffenegger, Richard <rs.ietf@gmx.at
> > <mailto:rs.ietf@gmx.at>> wrote:
> >
> >     Hi,
> >
> >     After some discussion, I got convinced to formally submit a draft,
> >     explicitly describing a simple lost retransmission detection mechanism
> >     to prevent RTO when a retransmission is lost.
> >
> >     While full featured stacks can address this issue within the RFC series
> >     already by using TCP RACK, on a more constrained platform where only
> >     SACK support is viable but not RACK, this mechanism may be an
> >     interesting alternative.
> >
> >     Thererfore cross-posting to CORE, in addition to TCPM. ICCRG is
> >     included, as it may be the case that current implementations which
> >     recover from lost retransmissions may not actually use this as a
> >     subsequent congestion control signal, and retain the ssthresh / cwnd
> >     from the initial loss recovery - and it is certainly debatable, if
> >     a single, or two engagements of a CC reaction is in order.
> >
> >     The mechansim described is very conservative (another CC reaction, and
> >     requires more data to be sent, to have high confidence when
> >     retransmitting a prior retransmission).
> >
> >     https://datatracker.ietf.org/doc/html/draft-scheffenegger-tcpm-lrd-00 <https://datatracker.ietf.org/doc/html/draft-scheffenegger-tcpm-lrd-00>
> >
> >     (The graph in the appendix needs some overhaul, as PRR is becoming
> >     standard).
> >
> >
> > Thanks for the ID!
> >
> > Indeed this could be a useful algorithm to document for nodes too
> > constrained to run RACK.
> >
> > You mention in the ID that there is a TCP stack that "started using LRD
> > more than two decades ago." Just curious: is that FreeBSD?
> >
> > This approach sounds similar to (a) the improvement in the paper that
> > your informative references cite as [SACKPerf], and similar to (b) the
> > algorithm added in Linux 2.6.24 in 2008 in  tcp_mark_lost_retrans()
> >   (later removed in the era of RACK). And it seems perhaps (a) and (b)
> > are roughly the same thing, since the [SACKPerf] paper mentions their
> > idea was incorporated into Linux 2.6.24? But I wasn't sure what the
> > relationship is.
> >
> > I did not see [SACKPerf] mentioned in the body of the ID. Would it be
> > possible to add some text in the ID that mentions [SACKPerf] and
> > clarifies the relationship of the ID to the [SACKPerf] paper and Linux code?
> >
> > best regards,
> > neal
> >