Re: [tcpm] Tuning TCP parameters for the 21st century
Joe Touch <touch@ISI.EDU> Tue, 14 July 2009 23:05 UTC
Return-Path: <touch@ISI.EDU>
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 530953A67FA for <tcpm@core3.amsl.com>; Tue, 14 Jul 2009 16:05:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.508
X-Spam-Level:
X-Spam-Status: No, score=-2.508 tagged_above=-999 required=5 tests=[AWL=0.091, BAYES_00=-2.599]
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 8m1NvVo4tpjJ for <tcpm@core3.amsl.com>; Tue, 14 Jul 2009 16:05:39 -0700 (PDT)
Received: from vapor.isi.edu (vapor.isi.edu [128.9.64.64]) by core3.amsl.com (Postfix) with ESMTP id 320BA3A677D for <tcpm@ietf.org>; Tue, 14 Jul 2009 16:05:39 -0700 (PDT)
Received: from [75.217.96.194] (194.sub-75-217-96.myvzw.com [75.217.96.194]) by vapor.isi.edu (8.13.8/8.13.8) with ESMTP id n6EN2gNK006295; Tue, 14 Jul 2009 16:02:48 -0700 (PDT)
Message-ID: <4A5D0E8F.1040402@isi.edu>
Date: Tue, 14 Jul 2009 16:02:39 -0700
From: Joe Touch <touch@ISI.EDU>
User-Agent: Thunderbird 2.0.0.22 (Windows/20090605)
MIME-Version: 1.0
To: Jerry Chu <hkchu@google.com>
References: <d1c2719f0907131619t1a80997ep4080a3a721ef3627@mail.gmail.com> <4A5C540E.9070104@sun.com> <4A5C9309.8030704@isi.edu> <d1c2719f0907141241p73e605adqc1d2e6f0db4eb3aa@mail.gmail.com> <4A5CE3D0.5000904@isi.edu> <d1c2719f0907141532i31d2b740hfa32209a8ccb156@mail.gmail.com>
In-Reply-To: <d1c2719f0907141532i31d2b740hfa32209a8ccb156@mail.gmail.com>
X-Enigmail-Version: 0.95.7
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
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 23:05:40 -0000
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 > On Tue, Jul 14, 2009 at 1:00 PM, Joe Touch<touch@isi.edu> wrote: ... >> > 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. First, you get to send 4K or 4 packets (whichever is smaller) at the start of a connection anyway. Second, RTT is only a fraction of the overall delays experienced by a message. Finally, connections already eat 2 RTTs before you do anything to get a response, due to the SYN handshake followed by the request-response of HTTP. You might be eating a single RTT off of a 3-4 RTT exchange. Your RTTs may go down by 30-50%, but since they're not 100% of your delay, you end up benefitting only around 20% or so. Larger messages benefit as you open the window to burst the whole thing out. Here's a back of the envelope: # packets was RTTs: is RTTs: benefit 4 2 2 0% 10 3 2 33% 19 4 2 50% 32 5 2 60% 52 6 2 67% 82 7 2 71% Note though that at some point your SND_CWND will be opened only as far as the path allows, at which point sending more packets just takes more RTTs, so you start to lose. 90% of our max CWNDs were below 9K, which means we only saw benefits in the 20-30% range (i.e., the first two rows above). Sure, if you see CWNDs much larger, you might benefit from reusing old values... >> > (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. It would if most connections's max CWND was larger than 10, and if most connections sent more than 20 packets, but neither was the case for us. >>> >> 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. It doesn't matter much if 99.99% of connections wouldn't benefit from having the initRTO go off earlier anyway. That's the tradeoff. Don't know if it helps your case, though. Joe >> > 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----- >> > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkpdDo4ACgkQE5f5cImnZrs3fwCfaOB3Ki+FKf1rrJP3kKfdxV2X D68AoKxBh/3C0Bh3MVZ8AniBoen9vuX/ =X+Od -----END PGP SIGNATURE-----
- [tcpm] Tuning TCP parameters for the 21st century Jerry Chu
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Erik Nordmark
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Joe Touch
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Jerry Chu
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Joe Touch
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Jerry Chu
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Jerry Chu
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Joe Touch
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Michael Scharf
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Joe Touch
- Re: [tcpm] Tuning TCP parameters for the 21st cen… michawe
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Joe Touch
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Jerry Chu
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Rui Paulo
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Jerry Chu
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Jerry Chu
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Joe Touch
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Michael Welzl
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Jerry Chu
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Jerry Chu
- Re: [tcpm] Tuning TCP parameters for the 21st cen… Michael Welzl
- [tcpm] initial RTO (was Re: Tuning TCP parameters… Mark Allman
- Re: [tcpm] initial RTO (was Re: Tuning TCP parame… Jerry Chu
- Re: [tcpm] initial RTO (was Re: Tuning TCP parame… Mark Allman
- Re: [tcpm] initial RTO (was Re: Tuning TCP parame… Jerry Chu
- Re: [tcpm] initial RTO (was Re: Tuning TCP parame… Mark Allman
- Re: [tcpm] initial RTO (was Re: Tuning TCP parame… L.Wood
- Re: [tcpm] initial RTO (was Re: Tuning TCP parame… Mark Allman
- Re: [tcpm] initial RTO (was Re: Tuning TCP parame… L.Wood
- Re: [tcpm] initial RTO (was Re: Tuning TCP parame… Jerry Chu
- Re: [tcpm] initial RTO (was Re: Tuning TCP parame… Jerry Chu
- Re: [tcpm] initial RTO (was Re: Tuning TCP parame… Mark Allman
- Re: [tcpm] initial RTO (was Re: Tuning TCP parame… Jerry Chu
- Re: [tcpm] initial RTO (was Re: Tuning TCP parame… Mark Allman
- Re: [tcpm] initial RTO (was Re: Tuning TCP parame… Jerry Chu