Re: [aqm] TCP ACK Suppression

David Lang <> Fri, 09 October 2015 04:03 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 833421B31A3 for <>; Thu, 8 Oct 2015 21:03:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -3.91
X-Spam-Status: No, score=-3.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, GB_I_LETTER=-2, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id B5TK0OS1ngZL for <>; Thu, 8 Oct 2015 21:03:11 -0700 (PDT)
Received: from ( []) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id E773F1B319E for <>; Thu, 8 Oct 2015 21:03:10 -0700 (PDT)
Received: from ( []) by (8.13.4/8.13.4/Debian-3) with ESMTP id t99430QJ018060; Thu, 8 Oct 2015 21:03:01 -0700
Date: Thu, 8 Oct 2015 21:03:00 -0700 (PDT)
From: David Lang <>
To: Christian Huitema <>
In-Reply-To: <>
Message-ID: <>
References: <> <> <> <> <> <> <> <> <> <> <> <>
User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
Archived-At: <>
Cc: "LAUTENSCHLAEGER, Wolfram \(Wolfram\)" <>, Greg White <>, "" <>, Joe Touch <>
Subject: Re: [aqm] TCP 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: Fri, 09 Oct 2015 04:03:12 -0000

On Fri, 9 Oct 2015, Christian Huitema wrote:

> On Thursday, October 8, 2015 5:43 PM, David Lang wrote:
>> ...
>> For example, in the fq_codel/cake development, we're finding that there are
>> some transports that bundle very large numbers of packets together to send
>> at one time in order to maximize the transport bandwidth. (for example, 4x4
>> wifi sends a LOT of data in one transmit timeslot). Treating that large
>> aggregate as a single packet seriously hurts fairness and latency on the next
>> hop. So 'pulling apart' this aggregate into the individual packets/streams and
>> making decisions based on the pieces ends up being a serious win in fairness
>> and latency.
> Define "bundle" please. If they are making sure that several IP packets are 
> sent back to back in a single Wi-Fi slot, then it is of course perfectly fine 
> for AQM to handle the IP packets one by one. Does 4x4 Wi-Fi do something else?

I don't remember the details from the discussion, but the combined bundle 
required extra steps to pull apart to get at the individual packets. IIRC, not 
doing so ended up with multi-MB chunks of data to be delivered, which blocked 
all other traffic while it was being delivered.

>> Suggesting that the queues that build up produce a special enough case to
>> consider thinning out the duplicate acks is a far cry from 'making a
>> recommendation that breaks other recommendations'
> That definitely contradicts the TCP specs. So it is very much in "don't go there" territory...

By 'not going there' you are crippling people's networks for the sake of 
following a spec. Rather than following the letter of the old spec, we should be 
looking at the reasons for it, and reasons to make exceptions. There is a long 
history of introducing new things that break the old way of doing things, from 
breaking "classful" network routing to Anycast, there are lots of things that 
"broke" the old way of doing things.

In this case there is more than a decade of people doing exactly what shouldn't 
even be considered.

I'll ask yet again, if acks have already been delayed so that they will be 
delivered at the same time as later acks, how much value do they actually 
provide? We need to compare whatever value this is against the cost of the 
misinformation that they provide, and the impact on other traffic.

David Lang