Re: [tcpm] 2nd WGLC for draft-ietf-tcpm-rfc8312bis

Bob Briscoe <> Tue, 22 February 2022 00:11 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 8B5BF3A0DE6; Mon, 21 Feb 2022 16:11:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.812
X-Spam-Status: No, score=-2.812 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.714, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id jU-43uJ1NHqv; Mon, 21 Feb 2022 16:11:18 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 78B013A0DD4; Mon, 21 Feb 2022 16:11:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;; s=default; h=In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Content-Type:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=9lc0pYopr+ntFs5A9nk6BGOpoD53hr3UtH2Kgrd1ps4=; b=PbiZge0uJfe8HhsRMyvjDCE+Dx 5qjXUsUtiSYcJj2lf6w2fAjF014cKcH5FXBk4APGMB8YkmAuBs2FLbCpl5p2EHBcZ8wpBunvQuqqZ OToQQbVfqzbblCDOmTPnFnyp3lAnFgL/JAi8Z13qQXlBMNQ+A1sp2N++ye7VALBcb2OkWOtyvGpQe 1KBf4R3Qdc0phy3R4exzgcC5vA/y1EXvnd3QJ0batJgGIKdrkY161qa5r05nq9m7+HlevOep0k6cD x7hAOO+ImrQTSnAW5YDOH/qJgZrBt+ROVvc7dvOsRfjmjthK357JAHA7CIgiM11t0rmqI7kinhz04 CnC1i2Gw==;
Received: from ([]:55542 helo=[]) by with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from <>) id 1nMIlx-00060P-Pb; Tue, 22 Feb 2022 00:11:14 +0000
Content-Type: multipart/alternative; boundary="------------xHSz3W9QleOe4XSBoUUSbSLJ"
Message-ID: <>
Date: Tue, 22 Feb 2022 00:11:07 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0
Content-Language: en-GB
To: Yoshifumi Nishida <>, Markku Kojo <>
Cc: " Extensions" <>, tcpm-chairs <>
References: <> <> <> <> <> <> <> <> <> <>
From: Bob Briscoe <>
In-Reply-To: <>
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname -
X-AntiAbuse: Original Domain -
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain -
X-Get-Message-Sender-Via: authenticated_id:
Archived-At: <>
Subject: Re: [tcpm] 2nd WGLC for draft-ietf-tcpm-rfc8312bis
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: Tue, 22 Feb 2022 00:11:24 -0000

Yoshi, Markku,

Many of the technical points Markku raised were important omissions from 
the rfc8312bis draft. Whatever status we give the eventual RFC, they 
should be highlighted as areas that need further work, either known 
weaknesses or just areas where we don't have enough data to know whether 
they are weaknesses. I tried to help find useful references for 
experiments already done around those points, and I tried to help write 
such text.

However, I cannot agree with some of Markku's statements about process.

      #1: The rules can change

It's OK to quote RFCs, but it's also OK for us to reach consensus that 
certain aspects of old RFCs are outdated, as long as we give our 
reasons, and there is rough consensus around that. We are all consenting 
adults - we don't have to be limited by RFCs from the past if we 
collectively don't want to be.

I have not noticed a need for the above "rule #1" in this discussion 
yet, but I'm just putting it out there, so if anyone needs to invoke it 
later, they can't be accused of inventing a rule for their own convenience.

      #2: There is no TCP-compatibility requirement

Yes, CUBIC is not TCP-compatible. But that's a feature, not a bug. Words 
like 'TCP-compatible' or 'fair' sound nice, but do not be fooled into 
thinking that an RFC recommends or requires you to behave in a certain 
way just because it has used a nice-sounding word for it.

For an RFC to recommend or require something, it has to say SHOULD or 
MUST. So when BCP 41 [RFC2914] defines 'TCP-compatible', and talks about 
what is necessary to be 'fair', it implies nothing about whether you 
should or must be TCP-compatible, or fair; unless it actually says you 
SHOULD or MUST be TCP-compatible, or fair. *No RFC says that.*

BCP 133 [RFC5033] and others have written careful words about straying 
from equal flow rates (quoted below). That gives a checklist for people 
like us who come along later. But it also respects our right to make a 
decision on whether/how to publish a CC RFC based on our own present-day 
knowledge and experience. To quote the relevant guideline in BCP 133 

    (1) Impact on Standard TCP, SCTP [RFC2960  <>], and DCCP [RFC4340  <>].

        Proposed congestion control mechanisms should be evaluated when
        competing with standard IETF congestion control [RFC2581,
        RFC2960  <>,RFC4340  <>].  Alternate congestion controllers that have a
        significantly negative impact on traffic using standard
        congestion control may be suspect and this aspect should be part
        of the community's decision making with regards to the
        suitability of the alternate congestion control mechanism.

        We note that this bullet is not a requirement for strict TCP-
        friendliness as a prerequisite for an alternate congestion
        control mechanism to advance to Experimental.  As an example,
        HighSpeed TCP is a congestion control mechanism that is
        Experimental, but that is not TCP-friendly in all environments.
        We also note that this guideline does not constrain the fairness
        offered for non-best-effort traffic.

        As an example from an Experimental RFC, fairness with standard
        TCP is discussed in Sections4  <>  and6  <>  of [RFC3649  <>] (HighSpeed TCP)
        and*using spare capacity*  is discussed in Sections6  <>,11.1  <>, and12  <>
        of [RFC3649  <>].

The rfc8312bis draft has a section on 'using spare capacity' precisely 
because that's what was considered acceptable about CUBIC and the new 
generation of hi-BDP CCs developed at that time, as I've emphasized in 
the last para above.

      #3: A process for publishing EXP RFCs doesn't cover publishing
      non-EXP RFCs (by definition)

This IESG statement on "Experimental Specification of New Congestion 
Control Algorithms 
says it defines the process for a CC to be published as an Experimental 
RFC. It does not say it is the process that /all/ CCs have to follow to 
enter the standards track.

Before invoking that process, one has to determine whether it is 
applicable to this case. The IESG statement contains a sentence about 
how to determine its applicability:

    The decision of whether a specific new congestion control schemes
    goes beyond the principles of [RFC2914] and hence will undergo the
    process described in this document lies with the transport area
    directors, who will use the expertise of the transport area
    directorate and other congestion control experts to aid their decision.

Since RFC2914, we've had RFC3246 explaining why Reno is unscalable, and 
RFC5033 (quoted above) giving guidelines for designers of new CCs. So we 
can debate whether the process that Markku quoted is relevant to this 
case, to help the AD to decide whether to follow the process or not.

      #4 EXP or STD? My view

Reno is worse than other CCs in some respects. Nearly everyone has 
abandoned it. So, if someone asked you why Reno is the IETF's only stds 
track CC, what would you say ...?

As I already said, we have to stop thinking that the stds track requires 
a CC algorithm to be perfect. A CC certainly mustn't have failure or 
collapse modes, but it's performance doesn't have to be perfect in all 
cases. For instance, CUBIC has known poor utilization over radio links. 
That didn't stop Reno from being on the stds track. For me, the IETF 
needs a new CC on the stds track, and CUBIC is the most natural candidate.

However, we must not set a precedent for any old CC to move to the stds 
track. So we must document it's weaknesses and failings, and explain why 
they are not serious (if that is the case).

New CCs need to interoperate with the most prevalent CC on the Internet 
(CUBIC). The IETF cannot even say that as long as it hasn't formally 
recognized CUBIC on the stds track. That is a failing of *us* in the 
tcpm WG. We can move CUBIC to stds track via the exp track if we have 
to, or we can go straight to stds track. The only difference is that the 
first option makes us look like jobsworths for longer.

an official who upholds petty rules even at the expense of humanity or 
common sense.
1970s: from "I can't do that, it's more than my job's worth."


Bob Briscoe