Re: [tcpm] On Sender Control of Delayed Acks in TCP

Bob Briscoe <ietf@bobbriscoe.net> Fri, 01 May 2020 18:20 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 557883A1922 for <tcpm@ietfa.amsl.com>; Fri, 1 May 2020 11:20:22 -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_FAIL=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 Uu6f8yMXzmgK for <tcpm@ietfa.amsl.com>; Fri, 1 May 2020 11:20:20 -0700 (PDT)
Received: from cl3.bcs-hosting.net (cl3.bcs-hosting.net [3.11.37.202]) (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 811C13A1921 for <tcpm@ietf.org>; Fri, 1 May 2020 11:20:20 -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=1dgmDOeo/3QSfwXXFGQ7qdwHaJN6maA3sKsnZ1EV+sM=; b=0SpkEuaOXwv7RNGAouHxtiqtK MTDBPZdYQxALtdZTwnaETDFpwLngl1PdHH+I3F44EX5rQJA2oybi4NBwnlghMYaArd1V1hYZ+n3e/ j6JAmRtl3nasrlXWMkV70S6Tj01rDK0B19XG3RJidSrHLwyBwiV42rp+Y3ao2a843mm1e3+TTiaXn yFbrx/U8RrZ2Ry7nihlp1a/Mx7BIPURAADMKAA8OtuvFGuoHzBiFoPQ0xDjg3l0p6oXX4iamd6s3R yMDSWf+05WkjVqbDpUSeb4ZxCYzeuqdoEThjLXepiryWn10VL1vKsuEHDK5Ggavwb4lZkygIwDhjM /Qf7wi0GA==;
Received: from [31.185.128.97] (port=47508 helo=[192.168.0.6]) by cl3.bcs-hosting.net with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from <ietf@bobbriscoe.net>) id 1jUaGo-00CnEZ-2b; Fri, 01 May 2020 19:20:18 +0100
To: Neal Cardwell <ncardwell@google.com>, Carles Gomez Montenegro <carlesgo@entel.upc.edu>
Cc: "Scheffenegger, Richard" <rs.ietf@gmx.at>, "tcpm@ietf.org" <tcpm@ietf.org>, Gorry Fairhurst <gorry@erg.abdn.ac.uk>, jon.crowcroft@cl.cam.ac.uk
References: <683902e8-a2af-cfb7-ffd0-c5c5742e5bd5@gmx.at> <CADVnQykY3OqXy=RcEfa-OpfK2x=W5_FTrdrx7PvKuqgEt92uNw@mail.gmail.com> <7d145f1203f6344b92f6f8aa11a78239.squirrel@webmail.entel.upc.edu> <CADVnQy=wPUx62y7VNqjSPP+snKX4vVvK5q=qqYb1j+0nGrtezQ@mail.gmail.com>
From: Bob Briscoe <ietf@bobbriscoe.net>
Message-ID: <c6da08f4-03d7-da46-26b1-168f5953329f@bobbriscoe.net>
Date: Fri, 01 May 2020 19:20:16 +0100
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: <CADVnQy=wPUx62y7VNqjSPP+snKX4vVvK5q=qqYb1j+0nGrtezQ@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------7C9D3AA6516DE9755D176408"
Content-Language: en-GB
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - cl3.bcs-hosting.net
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: cl3.bcs-hosting.net: authenticated_id: in@bobbriscoe.net
X-Authenticated-Sender: cl3.bcs-hosting.net: in@bobbriscoe.net
X-Source:
X-Source-Args:
X-Source-Dir:
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/jJOC0oUIpjwRlfpqiQH5KvTxNTU>
Subject: Re: [tcpm] On Sender Control of Delayed Acks in TCP
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: Fri, 01 May 2020 18:20:23 -0000

Neal,

On 01/05/2020 13:19, Neal Cardwell wrote:
> On Fri, May 1, 2020 at 6:23 AM Carles Gomez Montenegro
> <carlesgo@entel.upc.edu> wrote:
>> Hi Neil,
>>
>> Thanks a lot for your comments!
>>
>> Please find below my inline responses:
>>
>>> On Wed, Apr 29, 2020 at 1:03 PM Scheffenegger, Richard <rs.ietf@gmx.at>
>>> wrote:
>>>> Eliciting an ACK under certain circumstances, for a timely continuation
>>>> of the data transmission / growth of the congestion window is a known
>>>> method to reduce network delay.
>>>>
>>>> E.g. Linux has been using the CWR flag for the purpose of sending out an
>>>> immediate ACK by the receiver, since there is an increased chance of a
>>>> very small cwnd when the sender had just reduced it's congestion window.
>>>>
>>>> https://lore.kernel.org/patchwork/patch/970486/
>>>>
>>>> and we also found latency improvements doing this when running
>>>> ECN-enabled sessions
>>>>
>>>> https://reviews.freebsd.org/D22670
>>> Yes, agreed.
>>>
>>> IMHO an explicit ACK-pull mechanism would be very nice for the cwnd<=1
>>> case.
>> (While this question is about the solution space, I'm anyway curious...)
>> In the context of datacenter networks, would you have any suggestion or
>> preference regarding the solutions that have been mentioned so far?
>>
>> Or perhaps any particular requirement for a potential solution?
> Among the solutions outlined in
>    https://tools.ietf.org/html/draft-gomez-tcpm-delack-suppr-reqs-00
> my first preference would be the AKP option, since that approach
> avoids burning a precious flag bit.

[BB] Eh? AKP does burn a flag bit (and you say it does below). Quoting 
the draft:

    TCP ACK Pull defines the AKP flag as bit number 6 of the 13th byte of
    the TCP header.


(BTW, Carles, in this quoted sentence, you ought to call it "the TCP ACK 
Pull /proposal/" otherwise sounds like it's an official part of TCP 
already.)

>
> The AKP option may be stripped by some middleboxes, but (a) as a
> performance optimization, that should be acceptable, and (b) for the
> datacenter case (where cwnd=1 is a motivating use case) this should
> not be a concern.
>
> IMHO a flag bit makes sense for a small signal that a sender might
> want to send frequently or at a high rate, but senders should not be
> trying to force immediate ACKs frequently.

[BB] For me, the problem with the AKP approach is that it's /only/ 
really good in environments where you've got a small window. When you 
have a large window and you can cope with a certain ACK ratio (say 
1:16), you would have to set AKP on every 16th packet, which doesn't 
really express what the sender wants (and if the receiver had just sent 
an ACK of its own accord just before it got one of these regular AKP 
requests, should it send another?). The sender in this case really wants 
to say "I don't particularly mind which packets you ACK, but there's no 
need to do it more often than 1:16".

I think there's some mileage in a TCP Option that aggregates a few 
behaviours together under one new TCP Option. I reckon 3 bits would be 
enough for a good delayed ACK option, but a whole TCP Option for that 
could be overkill. There was going to be a talk about a low latency TCP 
Option in netdev0x14 before it was postponed (sorry I don't remember who 
by). That might be a good excuse to collect together a few related 
functions. It could also improve the deployment incentives.


Bob



>
> best,
> neal

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