[tcpm] A longer follow-up on my comment on draft-gomez-tcpm-delack-suppr-reqs
Gorry Fairhurst <gorry@erg.abdn.ac.uk> Wed, 29 April 2020 17:55 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 [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 78B6C3A14F0 for <tcpm@ietfa.amsl.com>; Wed, 29 Apr 2020 10:55:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_NONE=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 D5EC1G3KSF-V for <tcpm@ietfa.amsl.com>; Wed, 29 Apr 2020 10:55:00 -0700 (PDT)
Received: from pegasus.erg.abdn.ac.uk (pegasus.erg.abdn.ac.uk [IPv6:2001:630:42:150::2]) by ietfa.amsl.com (Postfix) with ESMTP id 776733A14F5 for <tcpm@ietf.org>; Wed, 29 Apr 2020 10:55:00 -0700 (PDT)
Received: from GF-MacBook-Pro.local (fgrpf.plus.com [212.159.18.54]) by pegasus.erg.abdn.ac.uk (Postfix) with ESMTPSA id DEB261B0007A for <tcpm@ietf.org>; Wed, 29 Apr 2020 18:54:56 +0100 (BST)
To: tcpm IETF list <tcpm@ietf.org>
References: <CAK6E8=dpmjf9MDQQVSkURcxnFrB3ZK_zqUDyoKs=MJgeLCeqvQ@mail.gmail.com>
From: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Message-ID: <8c3aca0d-0ea6-69f6-5ad8-fbdc984de77b@erg.abdn.ac.uk>
Date: Wed, 29 Apr 2020 18:54:56 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:68.0) Gecko/20100101 Thunderbird/68.7.0
MIME-Version: 1.0
In-Reply-To: <CAK6E8=dpmjf9MDQQVSkURcxnFrB3ZK_zqUDyoKs=MJgeLCeqvQ@mail.gmail.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/dcHLjwTZ6ahb_9F77bwXuwgD750>
Subject: [tcpm] A longer follow-up on my comment on draft-gomez-tcpm-delack-suppr-reqs
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, 29 Apr 2020 17:55:04 -0000
First of all thank you for bringing this topic to the WG. I do think it is important that we discuss what ACKs are used for, how we expect them to be used and what the practical implications are for using ACKs across Internet paths. About the slides, I didn't have much time at the Mic. so maybe I sounded rather harsh, but I would suggest we do need to set a relatively high bar to adopting a piece of work in this space ... and we do need data and real understanding of what we are trying to fix and how we can avoid making it worse by accident in other cases. We went through a rather lengthy discussion in tsvwg on a similar (but different) topic regarding immediate negative acknowledgment for SCTP (RFC 7053- SACK-IMMEDIATELY Extension for SCTP) and found there were a few key places where for that protocol this did make sense. However, I actually don't believe your list of issues (i). Here is why... (I am interested if you think differently or know more). I've tried to roughly follow your points: * Slow start - I agree Delayed ACKs increase slow start, the more you delay the bigger the impact. However, the impact is for cases where ACKs are delayed on intervals comparable with or more than the Path RTT. - DAASS is a simple fix, that appears to help a lot when there is data waiting for the arrival of the delayed ACK. ABC is important also (well what I think people understand by ABC - rather than the RFC on this). * High bit rate environments and short data segments If you really don’t want delayed ACKs, the protocol using TCP ought to disable nagle. Or you would perhaps use DAASS... I’m not sure which problem you speak about? * Beyond classic ACK transmission behavior I do agree that Delayed ACKs preclude using sender behaviors intended to quickly and non-intrusively probe for available capacity during slow start. This is important to me, but I am very wary about the idea of sending more ACKs to do this, and we need to be careful to gain sufficient information about what the receiver has seen - not just to get a bunch of separate (each cumulative) ACKs. This really doesn’t give much fidelity to the sender. I’d be happy to talk more about what might be better! * IoT scenarios I can see the argument of an ACK energy cost for the IoT device. At least, I would assume IoT devices can be tuned, and the apps they talk to can be tuned. Appropriate guidance helps! * Bursty Apps I think you can add varying workloads as something important. By which I mean apps that do transactional stuff, or are controlled by applications where the data transmission need varies.When we looked at CWV and the ideas that the applications control the traffic patterns in one group of applications, we also noted that these applications change the way they use the network. That’s important for a timely restart to growing the cwnd (etc). Such applications can also be very sensitive to network delay. These are probably also of interest! So.... the reason for hesitancy overall is I see this as tricky space to get correct. There are many places where fewer ACKs are good - if you have per ACK interrupt costs - if the capacity consumed by ACKs is important - the cost of sending in the link technology is high - etc. This is complicated for TCP (and much less so for QUIC - because QUIC has a notion of pacing; QUIC’s loss recovery is different; and QUIC’s ACKs are not easily thinned, at least at present). Any TCP method has to live with networks that experience pain from more ACKs, but also may deploy (various) mitigations. There are also cases where you’d like more information than a delayed ACK provides (e.g. chirping and similar probing methods) and there are application pathologies that would love an ACK at the end of a packet burst (be that 1 or 100s of packets). Any method has to live with a wide variety of paths and applications. Happy to discuss more. And I suspect other people may also respond on list. We have lots of data for QUIC and TCP - but most of our data focusses on testbeds or on actual broadband satellite services. Gorry
- [tcpm] question regarding draft-gomez-tcpm-delack… Yuchung Cheng
- [tcpm] A longer follow-up on my comment on draft-… Gorry Fairhurst
- Re: [tcpm] A longer follow-up on my comment on dr… Bob Briscoe
- Re: [tcpm] A longer follow-up on my comment on dr… Gorry Fairhurst
- Re: [tcpm] question regarding draft-gomez-tcpm-de… Carles Gomez Montenegro
- Re: [tcpm] A longer follow-up on my comment on dr… Bob Briscoe
- Re: [tcpm] question regarding draft-gomez-tcpm-de… Yuchung Cheng
- Re: [tcpm] question regarding draft-gomez-tcpm-de… Carles Gomez Montenegro
- Re: [tcpm] question regarding draft-gomez-tcpm-de… Vidhi Goel
- Re: [tcpm] question regarding draft-gomez-tcpm-de… Yuchung Cheng