Re: [aqm] ACK Suppression

"Agarwal, Anil" <Anil.Agarwal@viasat.com> Wed, 07 October 2015 20:40 UTC

Return-Path: <prvs=17226a580b=anil.agarwal@viasat.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 D67681B3041 for <aqm@ietfa.amsl.com>; Wed, 7 Oct 2015 13:40:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.823
X-Spam-Level:
X-Spam-Status: No, score=0.823 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_FUCK2=3.434, RCVD_IN_DNSWL_LOW=-0.7, 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 UM3rStTwtgTz for <aqm@ietfa.amsl.com>; Wed, 7 Oct 2015 13:40:56 -0700 (PDT)
Received: from mta-us-west-01.viasat.com (mta-us-west-01.viasat.com [8.37.96.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 692B31B302F for <aqm@ietf.org>; Wed, 7 Oct 2015 13:40:56 -0700 (PDT)
Received: from pps.filterd (VCASPAM01.hq.corp.viasat.com [127.0.0.1]) by VCASPAM01.hq.corp.viasat.com (8.15.0.59/8.15.0.59) with SMTP id t97KbiGc005071; Wed, 7 Oct 2015 20:40:55 GMT
From: "Agarwal, Anil" <Anil.Agarwal@viasat.com>
To: Mikael Abrahamsson <swmike@swm.pp.se>, "dpreed@reed.com" <dpreed@reed.com>
Thread-Topic: [aqm] ACK Suppression
Thread-Index: AQHRATmxDthOqLFWKUGo0sVdhebuXJ5g3LyA//+eU3A=
Date: Wed, 07 Oct 2015 20:40:54 +0000
Message-ID: <7A2801D5E40DD64A85E38DF22117852C8812629D@wdc1exchmbxp05.hq.corp.viasat.com>
References: <mailman.1487.1444233956.7953.aqm@ietf.org> <1444247538.3556484@apps.rackspace.com> <alpine.DEB.2.02.1510072200590.8750@uplift.swm.pp.se>
In-Reply-To: <alpine.DEB.2.02.1510072200590.8750@uplift.swm.pp.se>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2015-10-07_11:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 kscore.is_bulkscore=0 kscore.compositescore=1 compositescore=0.9 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 kscore.is_spamscore=0 rbsscore=0.9 spamscore=0 urlsuspectscore=0.9 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1507310000 definitions=main-1510070218
Archived-At: <http://mailarchive.ietf.org/arch/msg/aqm/55cTIV4jpN-AtwFj-dhEK6xBpyI>
Cc: "aqm@ietf.org" <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:40:58 -0000

Bless, Roland (TM) <roland.bless@kit.edu>
Wrote -

> Since the cable modem link will lead to clumped ACKs the difference between sending 100 ACKs vs. 1 ACK is probably not that big...
> (except w.r.t. reliability).

The difference may not be big in the spacing of new packets that a sender will send, unless the sender implements some sort of pacing or if the return link is very thin.

But with ABC, there will be a difference in the amount of cwnd increase at the sender.
With 100 ACKs, each ACK will result in cwnd increase by 2 * MSS (assuming delayed Acks) during slow start and 
2 * MSS / cwnd during congestion avoidance.
With a single ACK covering 200 segments,  cwnd will increase by L*MSS, during slow start and 
L * MSS / cwnd during congestion avoidance; L =2, as stated in RFC 3465. Hence, cwnd increase will be much slower.
Unless L is set to a larger value.

Anil

-----Original Message-----
From: aqm [mailto:aqm-bounces@ietf.org] On Behalf Of Mikael Abrahamsson
Sent: Wednesday, October 07, 2015 4:18 PM
To: dpreed@reed.com
Cc: aqm@ietf.org
Subject: Re: [aqm] ACK Suppression

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

_______________________________________________
aqm mailing list
aqm@ietf.org
https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_aqm&d=BQICAg&c=jcv3orpCsv7C4ly8-ubDob57ycZ4jvhoYZNDBA06fPk&r=FyvaklKYrHaSCPjbBTdviWIW9uSbnxdNSheSGz1Jvq4&m=O9YyDhG9aYPKoP_qfqzx2qr1WyA9s7n8zHybjDGhnkM&s=KQjsKwtKdO7fKEDJ2iWN7o0p-LVDX5-7it_eroz_ew0&e=