Re: [aqm] ACK Suppression

Mikael Abrahamsson <> Wed, 07 October 2015 20:18 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 279DE1B3029 for <>; Wed, 7 Oct 2015 13:18:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.661
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 ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id bcTZvle1Uouz for <>; Wed, 7 Oct 2015 13:18:20 -0700 (PDT)
Received: from ( [IPv6:2a00:801::f]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 1871B1B3003 for <>; Wed, 7 Oct 2015 13:18:20 -0700 (PDT)
Received: by (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;; 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 []) by (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 <>
In-Reply-To: <>
Message-ID: <>
References: <> <>
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: <>
Subject: Re: [aqm] ACK Suppression
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Discussion list for active queue management and flow isolation." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 07 Oct 2015 20:18:22 -0000

On Wed, 7 Oct 2015, 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 

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: