Re: [tcpm] [Editorial Errata Reported] RFC5681 (6233)

Mark Allman <> Mon, 20 July 2020 15:08 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 381D73A0C02 for <>; Mon, 20 Jul 2020 08:08:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.918
X-Spam-Status: No, score=-1.918 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id sU0WgyRnfCkh for <>; Mon, 20 Jul 2020 08:08:35 -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 99AB63A0BFA for <>; Mon, 20 Jul 2020 08:08:35 -0700 (PDT)
Received: by with SMTP id c25so12444817otf.7 for <>; Mon, 20 Jul 2020 08:08:35 -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=/Sa8+jReIFI4wtJWsGF7MO0BeAYeLLtjxs7eMWB6Nz4=; b=SsAg0xYG68dvnATipSghdk9ri6Al/tIJXjp1GbOgghd7FkcOiQvEnqF1P/xo/Bv2F0 DKmajNvjIDiUmlTuoFROcAn63Dnb3+AOrUxq2sPgnE0TB0MnfIZrpOthim1Q9HtJfGSA DuHsH8ZwHKWTkMhDklsi+cLvN0U8VuE+2djNZOFv5Ff7tq22B7hvH+lHea3PO6KcRWR7 nF8iWQzp1iiHu9GXFi1z5PomhMewBVgrIzOe6AwtHyHYgXEWMATTWzntSUNlQOWCqTCV 8WJz71B1YmJC+BvQb10imbTMu3ytTzv914s6eQEJ1QTM/B6TLFfwXnOO25Bd2c8k78iI vjPQ==
X-Gm-Message-State: AOAM5302yajwH1JLgxvbQubS0m2UTG44r128uGWjSjuGhccMqCdFKIoT WdJ92knUXk6PQ9fiCf0moaIy+g==
X-Google-Smtp-Source: ABdhPJzg5/8Xtfvt5ivuXvv7GUBt3ImtyO/A9egpu32BHBiFDZLK1KC5+hRRcyLmvwASo6oLU6tL5A==
X-Received: by 2002:a9d:7352:: with SMTP id l18mr18550724otk.177.1595257714624; Mon, 20 Jul 2020 08:08:34 -0700 (PDT)
Received: from [] ([2600:1700:b380:3f00:4104:12d8:d7de:aa4f]) by with ESMTPSA id t25sm3539610otc.80.2020. (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 Jul 2020 08:08:34 -0700 (PDT)
From: "Mark Allman" <>
To: "RFC Errata System" <>
Cc:,,,,,,,,, "Ethan Blanton" <>
Date: Mon, 20 Jul 2020 11:08:32 -0400
X-Mailer: MailMate (1.13.1r5671)
Message-ID: <>
In-Reply-To: <>
References: <>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=_MailMate_FB88CBBA-2E09-4EB0-B24F-12B590B46862_="; micalg=pgp-sha1; protocol="application/pgp-signature"
Archived-At: <>
X-Mailman-Approved-At: Tue, 21 Jul 2020 09:04:21 -0700
Subject: Re: [tcpm] [Editorial Errata Reported] RFC5681 (6233)
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: Mon, 20 Jul 2020 15:08:37 -0000

> The following errata report has been submitted for RFC5681,
> "TCP Congestion Control".
> --------------------------------------
> Type: Editorial
> Reported by: Charles Deng <>

This is not editorial as it would change the allowed operation of
the algorithms.

> Section: 4.3
> Original Text
> -------------
> Finally, after all loss in the given window of segments
> has been successfully retransmitted, cwnd MUST be set to no more than
> ssthresh and congestion avoidance MUST be used to further increase
> cwnd.
> Corrected Text
> --------------
> Finally, after all loss in the given window of segments
> has been successfully retransmitted, cwnd MUST be set to no less than
> ssthresh and congestion avoidance MUST be used to further increase
> cwnd.
> Notes
> -----
> if set cwnd no more than ssthresh, it will using slow start
> algorithm instead of congestion avoidance algorithm. so it should
> say "cwnd no less than ..." instead of "cwnd no more than ...".

This is incorrect and the errata should be rejected.

The wording isn't particularly great, but the idea is that at the
end of the loss period we want cwnd to be half of the outstanding
data when we first detected loss.  And, in particular, we
**certainly do not want** cwnd to be LARGER than half the
outstanding data when loss occurred.  And, by saying "cwnd MUST be
no **LESS**" we are specifying that it must be larger-than-half.
So, this language is a clearly both (a) a non-editorial algorithm
change and (b) wrong.

The wording leads to the confusion, however, I think.  If one were
to set cwnd to less than ssthresh (hence being more conservative)
then we'd probably slow start to ssthresh before entering congestion
avoidance, as the proposed errata notes.

If I were to do anything here I think I'd strike "and congestion
avoidance MUST be used to further increase cwnd" from the end of the
sentence.  I.e., just let what naturally happens happen.  But, the
current text is conservative.  And, it may well be that we actually
meant to use CA in this case even if cwnd < ssthresh for some reason
I am mis-remembering.  So, I'd want to page all that back in before
agreeing with any errata.  I am not sure it's really that big of a
problem to worry about.