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

Carles Gomez Montenegro <carlesgo@entel.upc.edu> Fri, 01 May 2020 10:23 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 AB1053A0E36 for <tcpm@ietfa.amsl.com>; Fri, 1 May 2020 03:23:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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 efWcUoSrSsYv for <tcpm@ietfa.amsl.com>; Fri, 1 May 2020 03:23:33 -0700 (PDT)
Received: from violet.upc.es (violet.upc.es [147.83.2.51]) (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 937CD3A0E35 for <tcpm@ietf.org>; Fri, 1 May 2020 03:23:32 -0700 (PDT)
Received: from entelserver.upc.edu (entelserver.upc.es [147.83.39.4]) by violet.upc.es (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id 041AMgVF003872; Fri, 1 May 2020 12:22:42 +0200
Received: from webmail.entel.upc.edu (webmail.entel.upc.edu [147.83.39.6]) by entelserver.upc.edu (Postfix) with ESMTP id 240DE1D53C1; Fri, 1 May 2020 12:22:41 +0200 (CEST)
Received: from 83.53.208.128 by webmail.entel.upc.edu with HTTP; Fri, 1 May 2020 12:22:42 +0200
Message-ID: <7d145f1203f6344b92f6f8aa11a78239.squirrel@webmail.entel.upc.edu>
In-Reply-To: <CADVnQykY3OqXy=RcEfa-OpfK2x=W5_FTrdrx7PvKuqgEt92uNw@mail.gmail.com>
References: <683902e8-a2af-cfb7-ffd0-c5c5742e5bd5@gmx.at> <CADVnQykY3OqXy=RcEfa-OpfK2x=W5_FTrdrx7PvKuqgEt92uNw@mail.gmail.com>
Date: Fri, 01 May 2020 12:22:42 +0200
From: Carles Gomez Montenegro <carlesgo@entel.upc.edu>
To: Neal Cardwell <ncardwell@google.com>
Cc: "Scheffenegger, Richard" <rs.ietf@gmx.at>, "tcpm@ietf.org" <tcpm@ietf.org>, Gorry Fairhurst <gorry@erg.abdn.ac.uk>, Bob Briscoe <ietf@bobbriscoe.net>, 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 violet
X-Virus-Status: Clean
X-Greylist: Delayed for 01:26:10 by milter-greylist-4.3.9 (violet.upc.es [147.83.2.51]); Fri, 01 May 2020 12:22:42 +0200 (CEST)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/ziAUFuo9om1CE6BgzrtCElfId90>
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 10:23:36 -0000

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?

> In datacenter networks the BDPs tend to be so small, and the numbers
> of flows can be so large, that it's not unusual for a flow's fair
> share of the BDP to be one packet or less. If the flows want to
> maintain low queuing delays, then ideally they would be able to reduce
> their cwnd to 1 packet (or effectively even lower, with pacing). But
> the current behavior of TCP delayed ACKs often causes terrible delays
> with a cwnd of 1.

This is very useful input to expand the current section 3.2 of our
requirements draft, which focuses on high bit rate environments.

> The Linux TCP approach of sending an immediate ACK upon receiving a
> packet with CWR set (see Richard's link above) helps a lot with this
> case. But that's a non-standard heuristic, and doesn't help for
> senders that have a congestion control that does not use ECN CWR
> signals (e.g. Accurate ECN). Unless I'm missing something, it seems
> like endpoints using Accurate ECN are going to run into this same
> latency issue. To avoid this, I guess they may want to either use a
> cwnd >= 2, or make use of some new explicit ACK-pull mechanism.

Agreed.

Once again, thanks for your comments!

Carles



> best,
> neal
>