Re: [tcpm] More motivating scenarios for tcpm-ack-pull

Carles Gomez Montenegro <carlesgo@entel.upc.edu> Sun, 15 March 2020 09:38 UTC

Return-Path: <carlesgo@entel.upc.edu>
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 CC54F3A132E for <tcpm@ietfa.amsl.com>; Sun, 15 Mar 2020 02:38:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.895
X-Spam-Level:
X-Spam-Status: No, score=-1.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 f9Q6WGLY7OSC for <tcpm@ietfa.amsl.com>; Sun, 15 Mar 2020 02:38:51 -0700 (PDT)
Received: from dash.upc.es (dash.upc.es [147.83.2.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D32473A132D for <tcpm@ietf.org>; Sun, 15 Mar 2020 02:38:50 -0700 (PDT)
Received: from entelserver.upc.edu (entelserver.upc.es [147.83.39.4]) by dash.upc.es (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id 02F9ch3V025992; Sun, 15 Mar 2020 10:38:43 +0100
Received: from webmail.entel.upc.edu (webmail.entel.upc.edu [147.83.39.6]) by entelserver.upc.edu (Postfix) with ESMTP id D08111D53C1; Sun, 15 Mar 2020 10:38:42 +0100 (CET)
Received: from 83.53.67.51 by webmail.entel.upc.edu with HTTP; Sun, 15 Mar 2020 10:38:43 +0100
Message-ID: <21b7e16ea8b42772ecc296a325b53ad6.squirrel@webmail.entel.upc.edu>
In-Reply-To: <2BA84671-AF1A-40B0-A195-B64059B780CD@gmail.com>
References: <3326ed99-b077-592b-7913-aeb2286912c4@bobbriscoe.net> <13486113479ebcb344247daedda10467.squirrel@webmail.entel.upc.edu> <CAEeTejJC4KLbjLNWmVxPXwDtrC=rjrcOsVnwjEym2uEhJZq7cw@mail.gmail.com> <3f4d3d94-24a8-4ed8-a752-ae5242907d43@gmx.at> <ef6c55535a860b37056cd014ad178416.squirrel@webmail.entel.upc.edu> <2BA84671-AF1A-40B0-A195-B64059B780CD@gmail.com>
Date: Sun, 15 Mar 2020 10:38:43 +0100
From: Carles Gomez Montenegro <carlesgo@entel.upc.edu>
To: Jonathan Morton <chromatix99@gmail.com>
Cc: tcpm IETF list <tcpm@ietf.org>, Jon Crowcroft <jon.crowcroft@cl.cam.ac.uk>
User-Agent: SquirrelMail/1.4.21-1.fc14
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Priority: 3 (Normal)
Importance: Normal
X-Virus-Scanned: clamav-milter 0.100.3 at dash
X-Virus-Status: Clean
X-Greylist: Delayed for 00:40:38 by milter-greylist-4.3.9 (dash.upc.es [147.83.2.50]); Sun, 15 Mar 2020 10:38:43 +0100 (CET)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/RWtBXEwHm4-nVqh0Pikp05Jn59Y>
Subject: Re: [tcpm] More motivating scenarios for tcpm-ack-pull
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: Sun, 15 Mar 2020 09:38:53 -0000

Hi Jonathan,

(Sorry for the late response.)

Thanks a lot for your detailed response, which helped shape our latest
draft [1] in several ways.

While we focus on analyzing the problem space and its requirements, it
will be good to keep an eye on potential solutions as well, including the
one you describe below. In particular, I found the idea of spacing AKP
flags (or something similar) in order to control the desired ACK ratio to
be very interesting!

Thanks again!

Cheers,

Carles

[1] https://tools.ietf.org/html/draft-gomez-tcpm-delack-suppr-reqs-00.
Comments are very much welcome!


> I note that the semantics of the AKP flag differ subtly from that of PSH,
> in that the former says "I want an ack immediately", while the latter says
> "I have temporarily run out of data to send, so the receiving
> application's buffer should be flushed now".  It would be just as easy to
> modify existing receivers to treat PSH as an immediate ack request as to
> implement handling of AKP, so this simple use doesn't seem very compelling
> for allocating a scarce bit.
>
> One potentially interesting application that was suggested to me, and
> which could legitimately motivate the use of a new reserved flag bit, was
> to provide a hint as to the correct Delayed Ack ratio, for use as a
> congestion control mechanism for acks.  Presently an ack stream can be
> anti-responsive, in that dropping acks from a heavily congested reverse
> path can actually increase the ack arrival rate, by improving the
> throughput of an uncongested forward path that was limited by
> ack-clocking.  AckCC exists as an RFC to address this problem - and would
> tend to benefit from Generalised ECN - but its reliance on a TCP option is
> less than optimal, given the traversal problems often cited.
>
> A way that such a hint could work is by spacing AKP flags at the desired
> ack ratio.  A receiver observing AKP flags could then infer that the usual
> Delayed Ack rule requiring an ack for every two MSS received is suspended,
> and thus only send acks when AKP is set, the Delayed Ack timer expires, or
> some other forcing condition occurs.
>
> It might be wise to restore normal Delayed Ack rules if the AKP flags stop
> indicating a reasonable ratio, for example if the Delayed Ack timer
> expires twice without an AKP flag arriving.  A maximum ratio could be
> specified as a sanity check, eg. 1:64, at which the receiver generates an
> ack even if an AKP hasn't arrived yet.
>
> The above hinting semantics would remain compatible with other use cases
> mentioned, as AKP still forces an ack.  However this is also a theoretical
> disadvantage because the segments marked with AKP generally won't coincide
> with the trailing end of bursts caused, for example, by link-layer
> aggregation or IRQ "optimisation" in NICs.  Those trailing segments are
> where you would optimally want to trigger an ack, but as currently
> specified, AKP removes the receiver's discretion to synchronise a sparse
> Delayed Ack ratio with those segments.
>
> This could be addressed by pairing AKP with PSH.  Both flags set together
> would require an immediate ack of that particular segment, with the
> implication both that an ack is expected promptly and that no more data is
> immediately forthcoming.  PSH by itself would continue to permit a degree
> of latitude with respect to ack timing, and merely indicates that prompt
> delivery to the application is required.  AKP by itself then requests a
> prompt ack, but one that may reflect following segments that are already
> in receive buffers and will be processed immediately after this one, as
> well as the hinting described above.
>
> I think that's a reasonable amount of new functionality to introduce for
> the cost of one bit.  The above suggestion addresses both the original
> problem and another long-standing one, with minimal newly allocated
> resources and relatively little risk of traversal problems.  And
> (importantly) TCP doesn't break if receivers ignore or fail to understand
> it.
>
>  - Jonathan Morton