Re: [tcpm] Tuning TCP parameters for the 21st century

Jerry Chu <hkchu@google.com> Tue, 14 July 2009 22:32 UTC

Return-Path: <hkchu@google.com>
X-Original-To: tcpm@core3.amsl.com
Delivered-To: tcpm@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id C64823A6ABB for <tcpm@core3.amsl.com>; Tue, 14 Jul 2009 15:32:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.977
X-Spam-Level:
X-Spam-Status: No, score=-101.977 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id T+i0CqEs-436 for <tcpm@core3.amsl.com>; Tue, 14 Jul 2009 15:32:23 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [216.239.45.13]) by core3.amsl.com (Postfix) with ESMTP id B35E83A6868 for <tcpm@ietf.org>; Tue, 14 Jul 2009 15:32:23 -0700 (PDT)
Received: from spaceape12.eur.corp.google.com (spaceape12.eur.corp.google.com [172.28.16.146]) by smtp-out.google.com with ESMTP id n6EMWObt020370 for <tcpm@ietf.org>; Tue, 14 Jul 2009 15:32:25 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1247610745; bh=ppwdm2Mwavk7hqVcbJvbE0NVOyM=; h=DomainKey-Signature:MIME-Version:In-Reply-To:References:Date: Message-ID:Subject:From:To:Cc:Content-Type: Content-Transfer-Encoding:X-System-Of-Record; b=LeYLrtEUVIP+F6Inf+ 4AjK5yGVxubZoIXcdXDSjy1QMdCqnWRaE14UwRMj5XoveiCI5njFM/2FhFjHo6JqXRG A==
DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=mime-version:in-reply-to:references:date:message-id:subject:from:to: cc:content-type:content-transfer-encoding:x-system-of-record; b=Ye4um/aT0z9R6KxVSnup6bmYdJ6H/E5QrbaDEIqCuEB8YX+L6484SiS4pubpsolEQ WEtlQrgOKsGNKatyHrrYA==
Received: from gxk21 (gxk21.prod.google.com [10.202.11.21]) by spaceape12.eur.corp.google.com with ESMTP id n6EMVntS006517 for <tcpm@ietf.org>; Tue, 14 Jul 2009 15:32:22 -0700
Received: by gxk21 with SMTP id 21so5249871gxk.3 for <tcpm@ietf.org>; Tue, 14 Jul 2009 15:32:21 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.95.11 with SMTP id s11mr9378334anb.112.1247610740642; Tue, 14 Jul 2009 15:32:20 -0700 (PDT)
In-Reply-To: <4A5CE3D0.5000904@isi.edu>
References: <d1c2719f0907131619t1a80997ep4080a3a721ef3627@mail.gmail.com> <4A5C540E.9070104@sun.com> <4A5C9309.8030704@isi.edu> <d1c2719f0907141241p73e605adqc1d2e6f0db4eb3aa@mail.gmail.com> <4A5CE3D0.5000904@isi.edu>
Date: Tue, 14 Jul 2009 15:32:20 -0700
Message-ID: <d1c2719f0907141532i31d2b740hfa32209a8ccb156@mail.gmail.com>
From: Jerry Chu <hkchu@google.com>
To: Joe Touch <touch@isi.edu>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
X-System-Of-Record: true
Cc: "tcpm@ietf.org" <tcpm@ietf.org>
Subject: Re: [tcpm] Tuning TCP parameters for the 21st century
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tcpm>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Jul 2009 22:32:24 -0000

On Tue, Jul 14, 2009 at 1:00 PM, Joe Touch<touch@isi.edu> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> ...
>>>> >> What would be the pros and cons of using the cached rtt measurements
>>>> >> from previous connections for the SYN
>>> >
>>> > You can use more than cached RTT; the technique and some other cacheable
>>> > items are described in RFC2140.
>>
>> Yes we are very aware of your proposal. I think the most effective one to speed
>> up short connections is the snd_cwnd reuse, but unfortunately it's also the most
>> dicey due to cwnd's highly temporal nature. Is this why snd_cwnd reuse was not
>> implemented per rfc2140? Any insight and suggestion will be much appreciated.
>
> We didn't distribute our implementations; the Linux code was developed
> separately. We did do some tests using predictive SND_CWND learning.
> There are two parts; one is "how fast would a connection speed up if
> guessing were perfect", and the other is "how close to that perfect goal
> can be achieved using basic prediction".
>
> Granted, our web server didn't have your traffic, but we found that the
> impact of SND_CWND was small, and limited to only a small subset of
> connections. Connections too short don't benefit from a large window.
> Connections too long have little benefit from increasing startup behavior.

Hmm, your conclusion seems a bit counter-intuitive - for a typical web object
of 5-8 pkts in size, starting with an initcwnd of 6, e.g., from the cache will
require only half of the round trips to complete the http transaction compared
to initcwnd = 3.

>
> (see the tech report at http://www.isi.edu/aln)
>
>>> > The pro is more rapid convergence to an accurate RTT; the con is that
>>> > you're using a potentially invalid RTT, but then that's what you do when
>>> > you start without knowing the RTT at all anyway.
>>> >
>>> > It has also been implemented in Linux; see RFC4614.
>>
>> Yes Linux stack maintains a "destination cache" of ssthresh and RTT on
>> a per dest IP address basis. It doesn't currently use snd_cwnd, probably
>> out of the same concerned mentioned above?
>
> Lack of benefit is also an issue.

See above. I thought this should be the one that will give the largest beneift
(in terms of latency reduction) for the web traffic, if done (i.e.,
predicted) correctly.

>
>> Also it is very conservative
>> hence won't use the cached RTT value unless the timestamp option is
>> on.
>>
>> Also the dst cache is only consulted after 3WHS. So for SYN/SYN-ACK
>> the initRTO is still set to 3secs (don't know why).
>
> If you spin the initRTO down too far, you end up resending the SYN
> needlessly, no?

Correct so there is a fine line to walk. But if > 98% of all TCP connections
experience RTT << 1 sec, it just seems too conservative to have a global
initRTO == 3secs just to avoid spurious retransmission in the < 2% category.

Jerry

>
> Joe
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (MingW32)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iEYEARECAAYFAkpc49AACgkQE5f5cImnZruF5QCfc5BRj9np2yjizDIqOa+i09bT
> LsQAoMBPrr2dYErruJc0ED7s2hfCQztE
> =uouq
> -----END PGP SIGNATURE-----
>