Re: [tcpm] New Version Notification for draft-ietf-tcpm-accurate-ecn-11.txt

Bob Briscoe <ietf@bobbriscoe.net> Tue, 10 March 2020 22:00 UTC

Return-Path: <ietf@bobbriscoe.net>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2E6A93A0F22 for <tcpm@ietfa.amsl.com>; Tue, 10 Mar 2020 15:00:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=bobbriscoe.net
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 fPVu8-4vbkrs for <tcpm@ietfa.amsl.com>; Tue, 10 Mar 2020 15:00:38 -0700 (PDT)
Received: from server.dnsblock1.com (server.dnsblock1.com [85.13.236.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D0DFD3A0F0E for <tcpm@ietf.org>; Tue, 10 Mar 2020 15:00:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bobbriscoe.net; s=default; h=Content-Type:In-Reply-To:MIME-Version:Date: Message-ID:From:References:Cc:To:Subject: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=qGJ8X69bsxGzsq10An2UCxHlqzMi8PLBAJ3whC4Zj1I=; b=tic6pnjV4WwjTPbUKXEDClHU3 zKfNCXdKWWrFPbzTylC5SRF0SpgScCsrd90pQM6aL8DPevSkqK41+NGDTspIhvOmAlGS7WYJWPOVv DLcTT000gmgMFDlmScC16IUk6gt+JBhU+RSxghtZIu0I36TjtlbkD9ZB1rBprNB1jO13xxZhGR4nG Gn7t4mPRLnu96MWbaZRghGhYeIkB+O4fyDamZHW1alFoTVcc/Wdk55VECQiRY/nRuwYJ5jR5+OslG lurvopymCV1/2LHHr2BoKdwUfKqOSaGtXaSQ17HuZjL0daN/SarQoz/IfAwwV5tM3djIyRNL9xY3O BQYNJOWCA==;
Received: from [31.185.128.125] (port=47832 helo=[192.168.0.6]) by server.dnsblock1.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.92) (envelope-from <ietf@bobbriscoe.net>) id 1jBmvS-000647-Si; Tue, 10 Mar 2020 22:00:35 +0000
To: "Scharf, Michael" <Michael.Scharf@hs-esslingen.de>, tcpm IETF list <tcpm@ietf.org>
Cc: Richard Scheffenegger <richard.scheffenegger@netapp.com>, Mirja Kuehlewind <ietf@kuehlewind.net>
References: <6EC6417807D9754DA64F3087E2E2E03E2D9CA5C4@rznt8114.rznt.rzdir.fht-esslingen.de>
From: Bob Briscoe <ietf@bobbriscoe.net>
Message-ID: <cbffbda8-e752-c3a6-dc3e-7414cfc8ba10@bobbriscoe.net>
Date: Tue, 10 Mar 2020 22:00:34 +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: <6EC6417807D9754DA64F3087E2E2E03E2D9CA5C4@rznt8114.rznt.rzdir.fht-esslingen.de>
Content-Type: multipart/alternative; boundary="------------796926BA0FC93C9BF4070424"
Content-Language: en-GB
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server.dnsblock1.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - bobbriscoe.net
X-Get-Message-Sender-Via: server.dnsblock1.com: authenticated_id: in@bobbriscoe.net
X-Authenticated-Sender: server.dnsblock1.com: in@bobbriscoe.net
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/XN42PEJXT8kueh9lBsyC90FdgAA>
Subject: Re: [tcpm] New Version Notification for draft-ietf-tcpm-accurate-ecn-11.txt
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Mar 2020 22:00:48 -0000

Michael,

I agree extensibility is nice. And I'm open to a design with a 1 octet 
field immediately after the length field, for flags and the like. In 
fact, I encouraged Ilpo to put his idea to the list (which he had put to 
be offlist). But let's be disciplined about this if we're going to start 
down this road...

1) This is not the time for "it would be nice if". I want to go back to 
your original email and ask you to be much more specific about the 
problems envisaged. I agree the idea of switching field order based on 
the first bit is unorthodox, but what is actually "not robust" about it? 
In what case(s) can it fail? Have you proved these problems exist 
(whether paper proof or empirical)?

2) We have a very *inextensible* lack of TCP option space to deal with. 
And we don't know what other important options might be invented in 
future. So we shouldn't burn even a single byte unless we have good 
reason to. Extensibility is good. But it does burn space.

3) I haven't asked my co-authors, but I know that Mirja wanted the 
design to be as simple as possible, and now we're moving away from that.

If it ain't broken don't fix it.



Bob

On 09/03/2020 20:00, Scharf, Michael wrote:
>
> With chair hat off, I really wonder if the solution to encode the two 
> different orders in the TCP Option is an example for good and robust 
> protocol engineering.
>
> For instance, the current design makes it hard to decode the field in 
> a monitoring tool (such as Wireshark). Also, as far as I understand, 
> it does not allow to switch the encoding during a connection, which 
> limits flexibility. We almost certainly do not understand **now** all 
> future use cases of this Standard.
>
> Unless I miss something, there would be several other solutions:
>
> First, IMHO, we have enough TCP option codepoints left to spend two 
> codepoints if there is a good reason for doing so. As compared to the 
> current design proposal in -10/-11, spending two different option 
> kinds would look to me like **much** better protocol engineering.
>
> Second, if the TCPM community insists in only one option kind 
> codepoint for whatever reason, IMHO one could add one „sub-type“ byte 
> to the option. The TCP Option field has to be multiples of 4 byte, 
> i.e., if a segment only contains a 11 byte AccECN TCP option, an 
> additional NOP TCP option is needed for padding, no? So, what downside 
> have 12 bytes as compared to 11 bytes? For the shorter variants, the 
> overhead of a „sub-type“ field increases, but it may still be within 
> reasonable limits. What do I miss?
>
> Third, one could use different lengths for the different orders, e.g., 
> lenths 5/8/11 for type 0 and 6/9/12 for type 12. Is this not possible?
>
> In all these cases, the resulting protocol looks simpler and more 
> robust to me. What prevents us from using the KISS principle?
>
> Michael
>
> *Von: *Bob Briscoe <mailto:ietf@bobbriscoe.net>
> *Gesendet: *Freitag, 6. März 2020 04:34
> *An: *tcpm IETF list <mailto:tcpm@ietf.org>
> *Cc: *Richard Scheffenegger <mailto:richard.scheffenegger@netapp.com>; 
> Mirja Kuehlewind <mailto:ietf@kuehlewind.net>
> *Betreff: *Re: [tcpm] New Version Notification for 
> draft-ietf-tcpm-accurate-ecn-11.txt
>
> tcpm,
>
> You will have seen draft-10 then draft-11 in quick succession, as 
> already explained.
> The diffs from draft-09 to -10 were those that had built up since Jul'19.
> The diffs from draft-10 to -11 were solely those for the change from 
> EXP track to STD track.
> Draft-10 doesn't seem to display in the list of links to each version, 
> but you can manually write the URL.
>
> The main technical changes in draft-10 were numerous - many will be 
> recognized from list discussion since Jul'19.
> Particular thanks to Ilpo Järvinen who identified many niggles (and 
> their solutions) while writing and testing a full Linux implementation 
> (based on Olivier Tilmans's, in turn based on Mirja's).
>
>   * Allowed 2 different orders of the fields in the AccECN Option
>   * Reflect IP-ECN field of SYN/ACK only on ACK of SYN/ACK, not also
>     on first data packet
>       o greatly simplifies implementation, esp with TFO.
>       o repeating on first data packet was for reliable delivery,
>         which is now achieved with ACE counter (see next bullet)
>   * Increment the ACE counter if CE on SYN/ACK (but still not if CE on
>     SYN)
>       o Reliable delivery of feedback of CE on SYN/ACK
>   * Redefine 'first packet' as first to arrive, not first in sequence
>     in 2 cases:
>       o Handshake reflection on the ACK of the SYN/ACK
>       o In the test for zeroing of ACE
>       o Reason: greatly simplifies implementation
>   * if ACE could have wrapped more than once, SHOULD assume “safest
>     likely case”
>     not "conservatively assume" it did cycle
>       o Reason: avoid unnecessary hit on performance
>   * More robustness (with flexibility) in rules for when to include an
>     AccECN Option
>       o Change-triggered AccECN Option as SHOULD, not MUST
>       o SHOULD follow change-triggered AccECN Option with another
>         (removes ambiguity if ACK thinning or loss)
>       o when same counter continues to increment, SHOULD consistently
>         include it every n ACKs
>       o Made rule about precedence of SACK conditional (max 2 SACK
>         blocks)
>       o MAY exclude counters that have not changed for the whole
>         connection
>   * Allowed an AccECN server not to implement RFC3168 ECN (all clients
>     still have to)
>   * Precluded mixed capability negotiation from either end
>       o reduces freedom to choose SYN & SYN/ACK fall-back strategies
>       o to prevent cases where each end's outcome after handshake
>         could be inconsistent (in reordering corner-cases)
>   * Reserved the codepoint combination used by the historic nonce case
>   * Merged in a number of points from RFC3168 that we hadn't covered
>       o (a whole new subsection about obligations to do with ECN)
>   * Explicit about checking "acceptable packets"
>       o before counting their ECN markings or before counting the ECN
>         feedback they carry
>   * Required retransmitted Fallback SYN to use same ISN
>       o allows servers to detect ECN downgrade SYN attacks
>   * Handled corner cases like In-window SYN during TIME-WAIT
>
>
>
> Bob
>
> On 06/03/2020 02:24, internet-drafts@ietf.org 
> <mailto:internet-drafts@ietf.org> wrote:
>
>     A new version of I-D, draft-ietf-tcpm-accurate-ecn-11.txt
>
>     has been successfully submitted by Bob Briscoe and posted to the
>
>     IETF repository.
>
>     Name:            draft-ietf-tcpm-accurate-ecn
>
>     Revision: 11
>
>     Title:           More Accurate ECN Feedback in TCP
>
>     Document date:   2020-03-05
>
>     Group:           tcpm
>
>     Pages:           58
>
>     URL:https://www.ietf.org/internet-drafts/draft-ietf-tcpm-accurate-ecn-11.txt
>
>     Status:https://datatracker.ietf.org/doc/draft-ietf-tcpm-accurate-ecn/
>
>     Htmlized:https://tools.ietf.org/html/draft-ietf-tcpm-accurate-ecn-11
>
>     Htmlized:https://datatracker.ietf.org/doc/html/draft-ietf-tcpm-accurate-ecn
>
>     Diff:https://www.ietf.org/rfcdiff?url2=draft-ietf-tcpm-accurate-ecn-11
>
>     Abstract:
>
>         Explicit Congestion Notification (ECN) is a mechanism where network
>
>         nodes can mark IP packets instead of dropping them to indicate
>
>         incipient congestion to the end-points.  Receivers with an ECN-
>
>         capable transport protocol feed back this information to the sender.
>
>         ECN is specified for TCP in such a way that only one feedback signal
>
>         can be transmitted per Round-Trip Time (RTT).  Recent new TCP
>
>         mechanisms like Congestion Exposure (ConEx), Data Center TCP (DCTCP)
>
>         or Low Latency Low Loss Scalable Throughput (L4S) need more accurate
>
>         ECN feedback information whenever more than one marking is received
>
>         in one RTT.  This document specifies a scheme to provide more than
>
>         one feedback signal per RTT in the TCP header.  Given TCP header
>
>         space is scarce, it allocates a reserved header bit, that was
>
>         previously used for the ECN-Nonce which has now been declared
>
>         historic.  It also overloads the two existing ECN flags in the TCP
>
>         header.  The resulting extra space is exploited to feed back the IP-
>
>         ECN field received during the 3-way handshake as well.  Supplementary
>
>         feedback information can optionally be provided in a new TCP option,
>
>         which is never used on the TCP SYN.
>
>                                                                                        
>
>     Please note that it may take a couple of minutes from the time of submission
>
>     until the htmlized version and diff are available at tools.ietf.org.
>
>     The IETF Secretariat
>
>
>
> -- 
> ________________________________________________________________
> Bob Briscoehttp://bobbriscoe.net/
>

-- 
________________________________________________________________
Bob Briscoe                               http://bobbriscoe.net/