Re: [aqm] ACK Suppression

Mikael Abrahamsson <swmike@swm.pp.se> Wed, 07 October 2015 20:18 UTC

Return-Path: <swmike@swm.pp.se>
X-Original-To: aqm@ietfa.amsl.com
Delivered-To: aqm@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 279DE1B3029 for <aqm@ietfa.amsl.com>; Wed, 7 Oct 2015 13:18:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.661
X-Spam-Level:
X-Spam-Status: No, score=-1.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_SE=0.35, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=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 bcTZvle1Uouz for <aqm@ietfa.amsl.com>; Wed, 7 Oct 2015 13:18:20 -0700 (PDT)
Received: from uplift.swm.pp.se (ipv6.swm.pp.se [IPv6:2a00:801::f]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1871B1B3003 for <aqm@ietf.org>; Wed, 7 Oct 2015 13:18:20 -0700 (PDT)
Received: by uplift.swm.pp.se (Postfix, from userid 501) id 78E53A1; Wed, 7 Oct 2015 22:18:17 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=swm.pp.se; s=mail; t=1444249097; bh=aO97gIP9rBv1EiGhQw90ZgshOXOgOoesKI5OSaYPHE8=; h=Date:From:To:cc:Subject:In-Reply-To:References:From; b=tHVQwRgUjhJjKm731Z4AW/610nxar3Q4kzoa9dyuh7mdnh4MufuarjGPdUJ84MWQs TVnrhmbqMz4U5f3XCt/xQAnO2GoVGs6kYPETC7MTeW2CPhZfltMKsjj2xf+j1kmFT7 /+0+/dbpmjGh9I3SOqq/La6LIl0fuzHYgJ9Vr+Ig=
Received: from localhost (localhost [127.0.0.1]) by uplift.swm.pp.se (Postfix) with ESMTP id 6EC0F9F; Wed, 7 Oct 2015 22:18:17 +0200 (CEST)
Date: Wed, 7 Oct 2015 22:18:17 +0200 (CEST)
From: Mikael Abrahamsson <swmike@swm.pp.se>
To: dpreed@reed.com
In-Reply-To: <1444247538.3556484@apps.rackspace.com>
Message-ID: <alpine.DEB.2.02.1510072200590.8750@uplift.swm.pp.se>
References: <mailman.1487.1444233956.7953.aqm@ietf.org> <1444247538.3556484@apps.rackspace.com>
User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
Organization: People's Front Against WWW
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
Archived-At: <http://mailarchive.ietf.org/arch/msg/aqm/tHJDl6j2IRXaXIHWtNFUrNioXAM>
Cc: aqm@ietf.org
Subject: Re: [aqm] ACK Suppression
X-BeenThere: aqm@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Discussion list for active queue management and flow isolation." <aqm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/aqm>, <mailto:aqm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/aqm/>
List-Post: <mailto:aqm@ietf.org>
List-Help: <mailto:aqm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/aqm>, <mailto:aqm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 07 Oct 2015 20:18:22 -0000

On Wed, 7 Oct 2015, dpreed@reed.com wrote:

> not built up!  The purpose of queueing is to absorb bursts that can't be 
> anticipated, not to build up congestion in order to have enough data to 
> perform a dubious optimization that can best be done at the source of 
> traffic in cooperation with the destination.

There is no congestion when the ACK suppression kicks in and is useful.

If I download at 250 megabit/s, at 1500 byte packets, this is around 
21kpps. That means I am sending around 10kpps worth of ACKs.

If my media access layer only gives me access to send packets every 1-3 ms 
(but I can send many packets at a time each time), that means I basically 
will have 10-30 ACKs in queue each time I get access to the medium.

For each transmit opportunity, you will see a "train of ACKs" with a 
duration of 0.1-0.5ms, then there will be nothing for 1-3ms, then you will 
see a train of ACks again.

So providing that the router in question actually knows what it's doing, 
this is a useful optimization. Actually, I'd say I don't really understand 
why the TCP stack is sending 10kpps anyhow, is this very fine grained 
resolution used for anything anyhow? Even considering that this "train of 
ACKs" will arrive back-to-back, is the difference that big compared to 
just sending fewer ACKs (from the host, so the router doesn't have to 
optimize).

My ISP has a very common service with is 250 megabit/s down and 10 
megabit/s up. If this TCP ACK suppression doesn't exist, then much of the 
customer upstream capacity is used for ACKing the download packets (for no 
great use for the user as far as I can tell).

Wouldn't it make sense to for TCP to limit ACKs to once per millisecond or 
1/10th RTT, whatever is lower? Or something along these lines, perhaps the 
1/10th of RTT is not low enough, so perhaps 1/50th of RTT.

For instance for my test here with around 10ms RTT, what would limit the 
ACKs from 10kpps to 2kpps in the host stack itself (with 1/50th of RTT 
being lower in this case).

It would at least make sense when using a time based media access layer 
such as LTE, DOCSIS etc.

-- 
Mikael Abrahamsson    email: swmike@swm.pp.se