Re: [tsvwg] [tcpm] Tech review of draft-grimes-tcpm-tcpsce-01.txt

Bob Briscoe <> Fri, 13 March 2020 00:03 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id A83F03A09CB; Thu, 12 Mar 2020 17:03:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.433
X-Spam-Status: No, score=-1.433 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, SPF_HELO_NONE=0.001, SPF_SOFTFAIL=0.665, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id KKhtewDbDpsJ; Thu, 12 Mar 2020 17:03:27 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 6DABC3A09C6; Thu, 12 Mar 2020 17:03:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;; s=default; h=Content-Transfer-Encoding:Content-Type: In-Reply-To:MIME-Version:Date:Message-ID:References:Cc:To:From:Subject:Sender :Reply-To: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=AxRWdHdW6PNK/YoK9OBotNSM/1KNulU8IXWu0QAYCxQ=; b=RzOvqxGoVLNUj+TgqROmOI4qZf bM5mli7nXhpjHonCeB1FAUOE3w1YzRaZZ1UDEAY99OALxDbpE7K8qja3crcN5x4SzjXIGXAu+VKMq QX0g/NKUEad3vL+VcQT0cctFY/RmFaenKJhVoIE/tI0mpv1KsrgGVKreP2uf7ALA4/8darQv5UPhv TQSDD/RJ76fYTXUqya/CEc4lMNOlsToQpf/QBlZZ5tcyDYdKuovecRpbfeofFEqIPTET+06Kb2hre G7qOwamX6k9TtOAXuxMuAGhi43auXJu0WEkeapejImQ2E26BwjVcFVEXBNnJil5n4r2Y20nBVWl2x HRYeQRQA==;
Received: from [] (port=34916 helo=[]) by with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from <>) id 1jCXnQ-00DwUc-PI; Fri, 13 Mar 2020 00:03:24 +0000
From: Bob Briscoe <>
To: Jonathan Morton <>
References: <> <> <> <>
Message-ID: <>
Date: Fri, 13 Mar 2020 00:03:23 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-GB
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: [tsvwg] [tcpm] Tech review of draft-grimes-tcpm-tcpsce-01.txt
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 13 Mar 2020 00:03:30 -0000


Reminder: In Nov'19,  I carefully unpicked the descriptions of all the 
ideas in your draft, asking questions on the list where necessary, and 
provided a detailed review of whether it does what it says it aims to do 
(setting aside whether I agree with what it aims to do).
The draft hasn't been updated since.

The draft contains four tentative ideas for different semantics for the 
proposed feedback. There isn't any mechanism for negotiating which 
scheme to use, so I assume the intent is to eventually choose one.

The draft said more assessment was needed of each. It rejected one idea 
itself. I analyzed the other three, and concluded that they all had 
major problems. I spent some time structuring my review to make it easy 
to follow and included an exec summary and table assessing each idea 
against the goals given in the draft.

You were going to "examine my arguments in detail".



On 16/11/2019 00:59, Bob Briscoe wrote:
> Jonathan,
> I did ask you not to reply until you've read the review. The reasoning 
> against what you've said below is in the review.
> What you say (which you wouldn't say if you'd read the review) is only 
> true for long-term stable traffic. But the Internet is hardly ever 
> like that.
> We need to see the delay from SCE at higher percentiles, which 
> determines whether interactive applications will experience an 
> improvement. If you don't make a significant improvement in 
> /consistency/ of delay, there's no point burning codepoints. To 
> measure that requires hundred's of thousands of data samples. Not just 
> a few time series plots and plots of averaged Q delay. We have 
> provided tools to extract all this, and we shall be making them easier 
> to use during the Hackathon.
> Briefly repeating what I've already said (sigh):
> To ensure delay is /consistently/ very low under dynamic conditions 
> (e.g. for real-time interactive applications), accuracy and timeliness 
> in the feedback loop is critical.
> With inaccurate feedback the set point that the congestion control is 
> aiming for is incorrect, so the rate it aims for is either too high 
> (->qdelay) or too low (->under-utilization). Yes, given enough time 
> (under stable conditions), as it heads towards the wrong point, 
> congestion will rise higher (or fall lower) than the error, and it 
> will head closer to the correct point, but still aiming for the wrong 
> target (the right target but with the latest feedback errors (+/-) 
> added).
> In addition, the review explains why all the schemes in the tcpsce 
> draft give an inherently more biased error the higher the level of 
> congestion. Biased error is much more problematic.
> Bob
> PS. Pls do not reply again without having taken the trouble to read 
> what I have spent a lot of time explaining.
> On 15/11/2019 23:28, Jonathan Morton wrote:
>>> On 16 Nov, 2019, at 1:59 am, Bob Briscoe <> wrote:
>>> Why go through all the years of pain of altering the TCP wire 
>>> protocol for an accurate feedback scheme that isn't accurate?
>> Without delving into the rest of the detail right now, I'd like to 
>> address this point immediately.
>> Congestion control is, ultimately, a system with a control loop under 
>> negative feedback.  When designing such a control loop, one is 
>> generally concerned with whether it has sufficient gain to converge 
>> on the appropriate setpoint, and is acceptably stable.  The nature of 
>> the feedback path feeds into that analysis, but as long as the result 
>> meets acceptability criteria, a simpler control system is often 
>> preferable.  One fundamental property of a negative-feedback system, 
>> though, is that the system returns towards the setpoint after a 
>> disturbance, even that disturbance occurred *in* the feedback path.
>> Consequently, SCE can tolerate as much as 100% relative error in the 
>> SCE feedback path.  The case of being 100% low - no ESCE feedback 
>> received at all - corresponds to falling back to RFC-3168 compliant 
>> behaviour, ie. the MD response to CE acts as a ceiling on the 
>> positive excursion of the control output (cwnd).  The case of being 
>> 100% high - twice as much ESCE feedback received as SCE marks were 
>> applied on the forward path - will cause a low excursion which will 
>> drain the affected queue, after which SCE marking will stop, and the 
>> system will then recover.
>> Consequently we made the design decision that *reliable* accurate 
>> feedback was not necessary, nor was the associated complexity 
>> desirable.  We also observed that a single additional bit per 
>> received segment was always adequate to convey *accurate* feedback, 
>> and that usually fewer bits were needed, which fits well with using 
>> one spare bit per Delayed ACK packet - which is what we do here.  
>> Several such bits are available in the TCP header for such uses, and 
>> we decided to recommend the use of one which had recently been freed 
>> up and whose previous use was closely related.
>> Without yet having examined your other arguments in detail, I suspect 
>> you are misunderstanding how some of our proposed feedback methods 
>> work in practice, perhaps stemming from the above fallacy.  
>> Understand that we have actually implemented each of these methods in 
>> running code, and can demonstrate their operation at the Hackathon.
>> See you there.
>>   - Jonathan Morton

Bob Briscoe