Re: [tcpm] Linux doesn’t implement RFC3465

Mark Allman <> Thu, 12 August 2021 19:06 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 717BA3A468B for <>; Thu, 12 Aug 2021 12:06:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id SIs76XnreyQJ for <>; Thu, 12 Aug 2021 12:06:24 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 252A23A4689 for <>; Thu, 12 Aug 2021 12:06:24 -0700 (PDT)
Received: by with SMTP id be20so11905324oib.8 for <>; Thu, 12 Aug 2021 12:06:24 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version; bh=zbufhXqzgVrw7aiJEyHqrX0+jnL6pbh3yttiSn+Xihg=; b=CE0WCXm1VyghujcMLZ3QEqvMqVBJgcA/sCsN8uy2GZzsi7VhgfW+oqBZbx1Sm+5v27 8wUIG+0qaggy16FBeohDOt2IyCef6wKRhbNdmYZ/gmX6q7dX7WwpCPD8L+5LKJQJeeX8 FTj8iCLA68uvZFr86KexiYFiZRdfKRMZoXw89vjoMmh/RN+EHdQJ2UuvZB5pYLkLexj6 n45fG2CqZoATOxwFYrU7Lqlm3Lg+oH7p6OOAZQw6PYLksLviTsJ4OLt6nX9zAraxscDG foNSSn0N9bl3pKyMtz0g+if8cNm428FCKq6KaJM5dnKlcJB3HMH2JmTCeibySEbbiGyW oIyw==
X-Gm-Message-State: AOAM530US2K+sVQD4sqZ6LFlkiPXxYuEEn1ulr5CK9YaF1u3gV5cra7u T7R2ZFTPLB+eP7YNApcJ0wiEzQ==
X-Google-Smtp-Source: ABdhPJxVDWS7rumqyhmtQlDhaYJzbix+gc14u+PNqYskdrWAWALth9KS3RxZY4xeiMMwroViY/eVEA==
X-Received: by 2002:aca:400a:: with SMTP id n10mr4633703oia.127.1628795183470; Thu, 12 Aug 2021 12:06:23 -0700 (PDT)
Received: from [] ( []) by with ESMTPSA id 45sm834537otm.43.2021. (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Aug 2021 12:06:22 -0700 (PDT)
From: Mark Allman <>
To: Martin Duke <>
Cc: Mirja Kuehlewind <>, Yuchung Cheng <>, Extensions <>
Date: Thu, 12 Aug 2021 15:06:20 -0400
X-Mailer: MailMate (1.13.2r5673)
Message-ID: <>
In-Reply-To: <>
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=_MailMate_1E117BB0-2C59-4C72-A438-FD095FA3C4D8_="; micalg="pgp-sha1"; protocol="application/pgp-signature"
Archived-At: <>
Subject: Re: [tcpm] Linux doesn’t implement RFC3465
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 12 Aug 2021 19:06:31 -0000

> If I understand the current document state correctly, the current ABC
> guidance we have is
> RFC3465 (Experimental): L=2
> RFC5681 (PS): L=1


> 1. The most comprehensive solution would be a 3465bis PS doc that
>    obsoletes 3465 and updates 5681 with L= Infinity, 8, or
>    whatever number the group decides on. If we agree this is the
>    right thing to do and someone has the energy to drop
>    3465bis-00, then let's do so to have a basis of discussion.

Approach-wise this is OK.  But, there are issues here ...

  - First, we could probably move to L=2 pretty easily (as
    standard).  We have been using byte counting with standard
    delayed ACKs for a long time in stacks that do not use an L.
    So, we have effectively been living with this.

  - Moving to L > 2 (5, 10, \infinity) would seem to me to require
    someone to make the case that we have experience that suggests
    this is OK.  Or, that we have some suggestions that we could run
    at experimental L>2 for a while.  There have been a bunch of
    folks saying that we understand L > 2 works fine, but in pretty
    hand-wavy, mailing list sorts of ways.  I.e., there are stretch
    ACKs.  Or, there is an implementation with an L.  Or, there are
    offload systems that aggregate packets/ACKs.  When we haven't
    seen---that I am aware of---is a discussion that shows L
    > 2 is a good idea.  Or, that it isn't a bad idea.  It seems to
    me that the usual way these things get advanced is to offer some
    tangible / concrete assessment that says "hey, this is perhaps a
    reasonable thing to change".

  - I am not saying we shouldn't change L.  Perhaps we should.
    E.g., with pacing it seems like a no-brainer.  I am just saying
    that the case hasn't even been attempted.

> 3. There might be interest in a more generalized 5681bis, but my
>    instinct is that this is a bigger job that will delay the most
>    urgently needed update -- which is not to say that we shouldn't
>    do that document too.

I think a very scoped 5681bis could be done quickly.  If it is a
change to L and/or a change to IW we can use the 6298 model and make
the very tiny text change and add an appendix that justifies the
change.  So, the normative text of the RFC changes very little.

> 4. However, I don't think it would be too much of a stretch to rope in an
> IW update (6928bis) in 3465bis, if it doesn't add too much time. It all
> fits in with the general theme of the maximum allowable burst on the
> internet in the absence of any sort of pacing (ack-driven or
> stack-enforced).

Hm.  Well.  Hm.  I'd have to think about that one.  I do think that
just defining some general burst limit could prove to be thorny.
E.g., if you said the max burst size was 10 so IW=10 would be fine
then would a stretch ACK that covered 20 packets only be able to
liberate 10 packets?  Or, if we said a stretch ACK could liberate 20
packets would that imply an IW of 20 packets?  And, do we really
draw no distinction between what we can send into an unknown network
and what we can send into a network we have probed enough to have
some idea about?  This seems difficult.