[tcpm] Coming back to my comments on AccECN wrt ACK Filtering

Gorry Fairhurst <gorry@erg.abdn.ac.uk> Wed, 17 February 2021 16:47 UTC

Return-Path: <gorry@erg.abdn.ac.uk>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id DEF6D3A1B64 for <tcpm@ietfa.amsl.com>; Wed, 17 Feb 2021 08:47:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id JuLnejcmRcc7 for <tcpm@ietfa.amsl.com>; Wed, 17 Feb 2021 08:47:15 -0800 (PST)
Received: from pegasus.erg.abdn.ac.uk (pegasus.erg.abdn.ac.uk []) by ietfa.amsl.com (Postfix) with ESMTP id ACD113A1B67 for <tcpm@ietf.org>; Wed, 17 Feb 2021 08:47:15 -0800 (PST)
Received: from GF-MacBook-Pro.lan (fgrpf.plus.com []) by pegasus.erg.abdn.ac.uk (Postfix) with ESMTPSA id 0CA031B001D6; Wed, 17 Feb 2021 16:47:08 +0000 (GMT)
To: tcpm IETF list <tcpm@ietf.org>
Cc: Mirja Kuehlewind <ietf@kuehlewind.net>, Bob Briscoe <ietf@bobbriscoe.net>
References: <2A6CB682-8D99-48AE-A053-1685BA480BB3@apple.com> <880A9E0C-FBC9-4ADC-A11D-C5D3FDDDCE14@strayalpha.com> <FC3BA2A2-0052-418E-A4D0-F9DC9FD5C2A2@apple.com> <8B6B13CD-94B5-4C0B-8771-F008C390A661@strayalpha.com> <SN4PR0601MB3728039D195472CA662EE58C86BB9@SN4PR0601MB3728.namprd06.prod.outlook.com> <95ACEF0A-61F9-44E7-8BD9-8C1FADCD2583@strayalpha.com> <SN4PR0601MB37280F3FADF400FA80B6689286BB9@SN4PR0601MB3728.namprd06.prod.outlook.com>
From: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Message-ID: <9167ba8a-dd99-7af1-3559-b4993a73d9b2@erg.abdn.ac.uk>
Date: Wed, 17 Feb 2021 16:47:07 +0000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:78.0) Gecko/20100101 Thunderbird/78.5.1
MIME-Version: 1.0
In-Reply-To: <SN4PR0601MB37280F3FADF400FA80B6689286BB9@SN4PR0601MB3728.namprd06.prod.outlook.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Content-Language: en-GB
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/euJO0Gt6WXi_MTvVgEX5z4unfhc>
Subject: [tcpm] Coming back to my comments on AccECN wrt ACK Filtering
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: Wed, 17 Feb 2021 16:47:19 -0000


After the last IETF I promised to try simplify the comment on the new 
ACK Filtering text in ACCECN.

I've included what the current draft says, and marked comments in the 
text as ">GF>" to try and be more specific about which words attracted 
the alst round of feedback:

3.3.3.  Requirements for TCP ACK Filtering

    A node that implements ACK filtering (aka. thinning or coalescing)
    and itself also implements ECN marking will not need to filter ACKs
    from connections that use AccECN feedback.  Therefore, such a node
    SHOULD detect connections that have negotiated the use of AccECN
    feedback during the handshake (see Table 2) and it SHOULD preserve
    the timing of each ACK (if it coalesced ACKs it would not be AccECN-
    compliant, but the requirement is stated as a "SHOULD" in order to
    allow leeway for pre-existing ACK filtering functions to be brought
    into line).

 >GF> What does that "SHOULD" really mean? As far as I know, many 
devices that have RFC3449-like behaviours operate over links that have 
some specific property that changes the packet timing (perhaps 
half-duple; or transmission aligned to assigned time slots, or 
whatever). I therefore don’t understand “preserve timing”.

    A node that implements ACK filtering and does not itself implement
    ECN marking does not need to treat AccECN connections any differently
    from other TCP connections.
Nonetheless, it is RECOMMENDED that such
    nodes implement ECN marking and comply with the requirements of the

 >GF> Typo

     paragraph.  This should be a better way than ACK filtering
    to improve the performance of AccECN TCP connections.

    The rationale for these requirements is that AccECN feedback provides
    sufficient information to a data receiver for it to be able to
    monitor ECN marking of the ACKs it has sent, so that it can thin the
    ACK stream itself.  This will eventually mean that ACK filtering in
    the network gives no performance advantage.  Then TCP will be able to
    maintain its own control over ACK coalescing.  This will also allow
    the TCP Data Sender to use the timing of ACK arrivals to more
    reliably infer further information about the path congestion level.

 >GF> /This will eventually mean/This might eventually mean/:  because I 
think tis is an aspiration and maybe some nodes can use ECN to control 
ACK feedback, but is this always true? Given that link transmission can 
be very variable, and in the case of ACKs often becomes a limit 
per-packet rather than per-byte for typical data packets, I’m unsure how 
the implementation of ECN-marking against a variable jitter/capacity 
would interact with the capacity fluctuations from sharing media, or 
other physical layer propagation variations. I suggest this is an 
ambition rather than it necessarily being true that this will be better 
than any ACK Filtering method or FQ-style mitigation.

    Note that the specification of AccECN in TCP does not presume to rely
    on the above ACK filtering behaviour in the network, because it has
    to be robust against pre-existing network nodes that still filter
    AccECN ACKs, and robust against ACK loss during overload.

    Section 5.2.1 of [RFC3449] gives best current practice on ACK
    filtering (aka. thinning or coalescing).  It gives no advice on ACKs
    carrying ECN feedback,  because at the time is said that "ECN remain
    areas of ongoing research".  This section updates that advice for a
    TCP connection that supports AccECN feedback.

 >GF> RFC3449 does however already note:    “Appropriate treatment is 
also needed to preserve correct operation of ECN feedback (carried in 
the TCP header) [RFC3168].“, which you could say you are now expanding upon.

 >GF> I think the next section also hekps explains why ACK Filtering is 
less needed, if a sender uses offload, and reduces its ACK rate, then 
the -albeit *slightly* larger- AccECN ACKs are less frequent, and 
therefore can be expected to be less problematic.