Re: [tcpm] [Fwd: New Version Notification for draft-gomez-tcpm-ack-pull-00.txt]

"Carles Gomez Montenegro" <carlesgo@entel.upc.edu> Fri, 19 July 2019 09:42 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 5C86412017D for <tcpm@ietfa.amsl.com>; Fri, 19 Jul 2019 02:42:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.198
X-Spam-Level:
X-Spam-Status: No, score=-4.198 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=unavailable 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 E8k-AOUovYPf for <tcpm@ietfa.amsl.com>; Fri, 19 Jul 2019 02:42:25 -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 63356120176 for <tcpm@ietf.org>; Fri, 19 Jul 2019 02:42:25 -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 x6J9fqx4040752; Fri, 19 Jul 2019 11:41:52 +0200
Received: from webmail.entel.upc.edu (webmail.entel.upc.edu [147.83.39.6]) by entelserver.upc.edu (Postfix) with ESMTP id D712E1D53C1; Fri, 19 Jul 2019 11:41:51 +0200 (CEST)
Received: from 90.213.234.54 by webmail.entel.upc.edu with HTTP; Fri, 19 Jul 2019 11:41:52 +0200
Message-ID: <61b6befca142b6743121c6175d9a4061.squirrel@webmail.entel.upc.edu>
In-Reply-To: <CAK6E8=fb+2xRMv9nB+-F97ptWpHUxp7nDgW+sG67gh_bOK2-fw@mail.gmail.com>
References: <6EC6417807D9754DA64F3087E2E2E03E2D3B2F41@rznt8114.rznt.rzdir.fht-esslingen.de> <437D3782-04FB-4D5B-9A38-4BA9DB7C2ECF@lurchi.franken.de> <MW2PR2101MB1049CF516B565A37F13FD0F4B6C90@MW2PR2101MB1049.namprd21.prod.outlook.com> <CADVnQy=1Q-iZQxDAvKx2zeQYF=7Ss4JoSJxyvm1xw-1bzmmx9g@mail.gmail.com> <CAK6E8=fb+2xRMv9nB+-F97ptWpHUxp7nDgW+sG67gh_bOK2-fw@mail.gmail.com>
Date: Fri, 19 Jul 2019 11:41:52 +0200
From: Carles Gomez Montenegro <carlesgo@entel.upc.edu>
To: Yuchung Cheng <ycheng=40google.com@dmarc.ietf.org>
Cc: Neal Cardwell <ncardwell=40google.com@dmarc.ietf.org>, Praveen Balasubramanian <pravb=40microsoft.com@dmarc.ietf.org>, Michael Tuexen <michael.tuexen@lurchi.franken.de>, "tcpm@ietf.org Extensions" <tcpm@ietf.org>, "jon.crowcroft@cl.cam.ac.uk" <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.2 at violet
X-Virus-Status: Clean
X-Greylist: Delayed for 00:47:27 by milter-greylist-4.3.9 (violet.upc.es [147.83.2.51]); Fri, 19 Jul 2019 11:41:53 +0200 (CEST)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/kdM5xilaCPkGbMP8Fb4HS5a3ZPI>
Subject: Re: [tcpm] [Fwd: New Version Notification for draft-gomez-tcpm-ack-pull-00.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: Fri, 19 Jul 2019 09:42:28 -0000

Hello everyone,

Thanks a lot for all the suggestions and feedback provided.

Assessing the pros and cons of the alternatives on the table (in the light
of, but perhaps not limited to, the considerations already expressed on
the list) will be an important next step.

I plan to include a summary of the discussion so far in my presentation in
Montreal.

Looking forward to continuing the discussion,

Carles



> On Wed, Jul 17, 2019 at 9:53 AM Neal Cardwell
> <ncardwell=40google.com@dmarc.ietf.org> wrote:
>>
>> Indeed, Linux also does not generate an immediate ACK upon receiving
>> PSH, and also sets PSH on sendmsg() boundaries.
>>
>> One perspective I am not sure has been discussed in this thread: Those
>> behaviors to generate PSH on sendmsg() boundaries are widely deployed.
>> There are lots of workloads that have a large number of small packets
>> with PSH set (RPC, web, ...). If we change the semantics of PSH to
>> cause an immediate ACK, then we will effectively turn off delayed ACK
>> acks for many RPC and web workloads. This will increase CPU and
>> network loads for such workloads. For some RPC workloads it would
>> double the number of packets  sent by servers (the server would now
>> send 1 ACK for every request, and then 1 response packet, instead of
>> piggybacking ACKs and replies). That cost has to be weighed against
>> any latency advantages.
> +1 on similar concern.
>
> It's worth noting a recent issue we discovered while testing BBRv2
> which uses DCTCP-ECN protocol. The Linux delayed-ACK implementation does
> not
> always ACK every other data packet. It may delay sending an ACK until
> the available receive window has at least matched or grown beyond to
> the previous window announced. Under heavy (data-path) network
> congestion, a slower receiver could frequently delay the ACKs when
> most data packets have CE marks.
>
> This ACK delay causes the sender to further slow down in additional to
> the CE events being returned since both BBRv2 and DCTCP are still
> ACK-clocked. The large RPC is received more slowly (compared to a
> policy that acks immediately every other packet). The application
> goodput is zero until the RPC is finally completely received. This
> cause much longer RPC tail latency visible to the users. So this
> design causes all RPCs to progress more slowly in parallel, vs fewer
> RPCs to progress more quickly in serial.
>
> Arguably this is an implementation / optimization issue, but I think
> it's very relevant to this thread. Neal may talk about that in the
> upcoming ICCRG bbr.v2 talk.
>
>
>>
>> Using a new bit would have the advantage of allowing senders to only
>> force more ACKs when their available cwnd or rwnd is low enough that
>> they need an immediate ACK to allow good performance.
>>
>> Just a thought.
>>
>> cheers,
>> neal
>>
>>
>>
>> On Wed, Jul 17, 2019 at 12:21 PM Praveen Balasubramanian
>> <pravb=40microsoft.com@dmarc.ietf.org> wrote:
>> >
>> > Windows TCP on sender side will set PSH at the message boundary i.e.
>> when it finishes generating sends as part of a posted send() API call
>> or equivalent. On receiver side however it does not generated
>> immediate ACK upon receiving PSH. IIRC Linux also sets PSH on
>> sendmsg() boundary. Not sure about other implementations. If most
>> major implementations are doing this then generating immediate ACK
>> upon PSH will be an improvement.
>> >
>> > I do think reusing PSH to require eliciting ACKs is a reasonable
>> alternative than using up a reserved bit. One concern with both the
>> original draft and the PSH proposal is that we'll need clear
>> recommendations on when a receiver will request this. Otherwise
>> (selfish) receivers will always request it and senders will have to
>> build complicated heuristics to detect such behavior and fall back to
>> doing delayed ACKs.
>> >
>> > -----Original Message-----
>> > From: tcpm <tcpm-bounces@ietf.org> On Behalf Of Michael Tuexen
>> > Sent: Wednesday, July 17, 2019 6:41 AM
>> > To: Scharf, Michael <Michael.Scharf@hs-esslingen.de>
>> > Cc: tcpm@ietf.org Extensions <tcpm@ietf.org>;
>> jon.crowcroft@cl.cam.ac.uk
>> > Subject: Re: [tcpm] [Fwd: New Version Notification for
>> draft-gomez-tcpm-ack-pull-00.txt]
>> >
>> > > On 17. Jul 2019, at 14:44, Scharf, Michael
>> <Michael.Scharf@hs-esslingen.de> wrote:
>> > >
>> > > Is my understanding correct that this could be formalized as
>> follows:
>> > >
>> > >   A TCP MAY not delay ACKs for data segments with the PSH flag.
>> > I think this is what Carsten was referring to.
>> >
>> > My point was: Is this already deployed?
>> >
>> > The reason I'm asking is that I have heard several time that the
>> semantic of the PSH bit is to send out an ACK immediately. I could not
>> find the source of this statement...
>> >
>> > Best regards
>> > Michael
>> > >
>> > > If that was the intention, I believe that the wording of RFC 1122
>> (and
>> > > draft-ietf-tcpm-rfc793bis) would allow such a receiver-side
>> heuristic
>> > > already. Delayed ACKs are a SHOULD in RFC 1122 and the exact logic
>> is
>> > > not specified. Thus, taking the PSH flag into account inside a
>> > > receiver-side delayed ACK heuristic may not even be a change of the
>> > > TCP semantics…
>> > >
>> > > Michael
>> > >
>> > >
>> > > Von: Carsten Bormann
>> > > Gesendet: Mittwoch, 17. Juli 2019 09:56
>> > > An: Yoshifumi Nishida
>> > > Cc: jon.crowcroft@cl.cam.ac.uk; tcpm@ietf.org Extensions
>> > > Betreff: Re: [tcpm] [Fwd: New Version Notification for
>> > > draft-gomez-tcpm-ack-pull-00.txt]
>> > >
>> > > On Jul 17, 2019, at 08:58, Yoshifumi Nishida <nsd.ietf@gmail.com>
>> wrote:
>> > > >
>> > > >  using a reserved flag is a bit expensive
>> > >
>> > > The option could simply redefine existing PSH as having the AKP
>> semantics.
>> > > (And possibly all packets having what used to be the PSH semantics.)
>> > > They are close enough anyway…
>> > >
>> > > Grüße, Carsten