Re: [aqm] ACK Suppression

dpreed@reed.com Wed, 07 October 2015 21:00 UTC

Return-Path: <dpreed@reed.com>
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 5C8FF1B30D5 for <aqm@ietfa.amsl.com>; Wed, 7 Oct 2015 14:00:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham
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 tPhlORmOvbNO for <aqm@ietfa.amsl.com>; Wed, 7 Oct 2015 13:59:58 -0700 (PDT)
Received: from smtp78.iad3a.emailsrvr.com (smtp78.iad3a.emailsrvr.com [173.203.187.78]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CB3F11B30D4 for <aqm@ietf.org>; Wed, 7 Oct 2015 13:59:57 -0700 (PDT)
Received: from smtp26.relay.iad3a.emailsrvr.com (localhost.localdomain [127.0.0.1]) by smtp26.relay.iad3a.emailsrvr.com (SMTP Server) with ESMTP id DABC6803F7 for <aqm@ietf.org>; Wed, 7 Oct 2015 16:59:56 -0400 (EDT)
Received: from app26.wa-webapps.iad3a (relay-webapps.rsapps.net [172.27.255.140]) by smtp26.relay.iad3a.emailsrvr.com (SMTP Server) with ESMTP id CD8FC8039C for <aqm@ietf.org>; Wed, 7 Oct 2015 16:59:56 -0400 (EDT)
X-Sender-Id: dpreed@reed.com
Received: from app26.wa-webapps.iad3a (relay-webapps.rsapps.net [172.27.255.140]) by 0.0.0.0:25 (trex/5.4.2); Wed, 07 Oct 2015 20:59:56 GMT
Received: from reed.com (localhost.localdomain [127.0.0.1]) by app26.wa-webapps.iad3a (Postfix) with ESMTP id BC0C5380041 for <aqm@ietf.org>; Wed, 7 Oct 2015 16:59:56 -0400 (EDT)
Received: by apps.rackspace.com (Authenticated sender: dpreed@reed.com, from: dpreed@reed.com) with HTTP; Wed, 7 Oct 2015 16:59:56 -0400 (EDT)
Date: Wed, 07 Oct 2015 16:59:56 -0400
From: dpreed@reed.com
To: "aqm@ietf.org" <aqm@ietf.org>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_20151007165956000000_73325"
Importance: Normal
X-Priority: 3 (Normal)
X-Type: html
In-Reply-To: <alpine.DEB.2.02.1510072200590.8750@uplift.swm.pp.se>
References: <mailman.1487.1444233956.7953.aqm@ietf.org> <1444247538.3556484@apps.rackspace.com> <alpine.DEB.2.02.1510072200590.8750@uplift.swm.pp.se>
X-Auth-ID: dpreed@reed.com
Message-ID: <1444251596.768725492@apps.rackspace.com>
X-Mailer: webmail/11.5.7-RC
Archived-At: <http://mailarchive.ietf.org/arch/msg/aqm/4aBslcj2m9NQ9EyY8r7melvlSeU>
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 21:00:00 -0000

 


On Wednesday, October 7, 2015 4:18pm, "Mikael Abrahamsson" <swmike@swm.pp.se> said:



> 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.
>
We may be defining congestion *differently*.  If a backlog of packets from one endpoint to another builds up in an outbound queue, that is congestion.  That it might be caused by scheduling the "channel" is not relevant, really - at least in my definition of congestion.
 
So let's look at what TCP can do (or any other end-to-end protocol can do) to avoid such congestion:
 
1) knowing that the packets will be "hung up" in the middle (which it can observe by noticing that acks do get hung up), it can delay sending acks, since it will make no difference to send a cumulative ack rather than multiple acks. That's assuming that the link in question is the "bottleneck" link on the path.
 
2) the ideal TCP behavior here would be to bundle packets and to bundle ACKs, given that it can see that the bottleneck link has intermittent traffic openings with long gaps between open packet slots.
 
Let's look at what the MAC layer of the shared link can do:
 
1) It can bundle IP packets being sent from a station (from an arbitrary number of sources) into a cumulative bundle (concatenating them).  This is far more general than ACK consolidation, and covers protocols that have small packets, no ACKs at all, etc.  Obviously this is dependent on the specific MAC protocol, and the MAC protocol should maintain some degree of "fair sharing", because in essence there is one queue waiting for airtime, it is just distributed across many transmitters.  Thus the amount of bundling needs to be bounded.  Since arbitration time for channel access is wasted, the critical parameter is the arbitration overhead, as a percentage of maximum load - this controls the desired bundle size.
 
2) to the extent that packets will be bundled, there is a certain degree of compressability of the data.  For example, simple adaptive compression algorithms like Lempel-Ziv encoding are protocol independent.  If the frequent case is a series of ACKs, for example, Lempel-Ziv encoding the bundle will reduce the air time occupied by the bundle.
 
3) note that the critical parameter here is the arbitration overhead.  For the normal mode of the WiFi MAC, that is huge.  The preambles, etc. needed to deal with unequal received signal strength are relative large (multiple microseconds), plus the cost of a collision (due to lack of RTS/CTS usage that limits the cost of a collision).   Reducing the arbitration overhead is much more effective than ACK thinning.  On the principle of working on the big payoffs first, the idea of ACK thinning just doesn't seem to make sense outside a hypothetical that disallows much more significant improvements that don't require specialization to a particular version of TCP at a specific point in time.
 
In general, if you have a network that is NOT an Internet, which has a fixed set of protocols and a fixed and unchanging workload, of course you can tune every part of the system to that single case and get some benefit.
 
But this is the *Internet* Engineering Task Force.  The whole point of the Internet is to enable evolution.  That's why it is not a telephone voice network optimized for a 3 KHz voice coded in 8-bit digitized form with globally synchronized clocking.  And it doesn't have pre-allocation of fixed bit-rate flows.
 
That's the real engineering challenge.  Modularity is your friend when engineering large systems with very broad requirements.  Focusing on a very narrow issue, especially one that assumes way too much about what should be allowed and what traffic "must" look like, misses the point.