Re: [ledbat] list of reasons for needing multiple TCP connections

Reinaldo Penno <rpenno@juniper.net> Mon, 24 November 2008 23:59 UTC

Return-Path: <ledbat-bounces@ietf.org>
X-Original-To: tana-archive@ietf.org
Delivered-To: ietfarch-tana-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id B296D3A6B03; Mon, 24 Nov 2008 15:59:23 -0800 (PST)
X-Original-To: ledbat@core3.amsl.com
Delivered-To: ledbat@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0BC4E3A6B03 for <ledbat@core3.amsl.com>; Mon, 24 Nov 2008 15:59:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.901
X-Spam-Level:
X-Spam-Status: No, score=-5.901 tagged_above=-999 required=5 tests=[AWL=0.699, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
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 hUKmsCKXXSEh for <ledbat@core3.amsl.com>; Mon, 24 Nov 2008 15:59:21 -0800 (PST)
Received: from exprod7og111.obsmtp.com (exprod7og111.obsmtp.com [64.18.2.175]) by core3.amsl.com (Postfix) with ESMTP id 96B773A6A96 for <ledbat@ietf.org>; Mon, 24 Nov 2008 15:59:21 -0800 (PST)
Received: from source ([66.129.224.36]) (using TLSv1) by exprod7ob111.postini.com ([64.18.6.12]) with SMTP ID DSNKSSs/1Pg8qK2+a4iJIovrVH++HB/rWLoo@postini.com; Mon, 24 Nov 2008 15:59:19 PST
Received: from p-emfe01-sac.jnpr.net (66.129.254.72) by P-EMHUB01-HQ.jnpr.net (172.24.192.35) with Microsoft SMTP Server id 8.1.311.2; Mon, 24 Nov 2008 15:55:32 -0800
Received: from p-emsmtp03.jnpr.net ([66.129.254.54]) by p-emfe01-sac.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Mon, 24 Nov 2008 15:55:32 -0800
Received: from emailwf1.jnpr.net ([10.10.2.33]) by p-emsmtp03.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Mon, 24 Nov 2008 15:55:32 -0800
Received: from proton.jnpr.net ([10.10.2.37]) by emailwf1.jnpr.net with Microsoft SMTPSVC(6.0.3790.1830); Mon, 24 Nov 2008 18:55:31 -0500
Received: from 172.23.1.75 ([172.23.1.75]) by proton.jnpr.net ([10.10.2.37]) with Microsoft Exchange Server HTTP-DAV ; Mon, 24 Nov 2008 23:55:30 +0000
User-Agent: Microsoft-Entourage/12.14.0.081024
Date: Mon, 24 Nov 2008 15:55:17 -0800
From: Reinaldo Penno <rpenno@juniper.net>
To: Stanislav Shalunov <shalunov@shlang.com>, "Andrew G. Malis" <agmalis@gmail.com>
Message-ID: <C5507EE5.16A89%rpenno@juniper.net>
Thread-Topic: [ledbat] list of reasons for needing multiple TCP connections
Thread-Index: AclOkBmw5uhpWMyG5EqWK9p9i6ZyOA==
In-Reply-To: <DC2CEB0C-4C70-42CD-8ADE-AFF4E45B1915@shlang.com>
MIME-Version: 1.0
X-OriginalArrivalTime: 24 Nov 2008 23:55:31.0310 (UTC) FILETIME=[2237A8E0:01C94E90]
Cc: ledbat@ietf.org
Subject: Re: [ledbat] list of reasons for needing multiple TCP connections
X-BeenThere: ledbat@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Mailing list of the LEDBAT WG <ledbat.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ledbat>, <mailto:ledbat-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/pipermail/ledbat>
List-Post: <mailto:ledbat@ietf.org>
List-Help: <mailto:ledbat-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ledbat>, <mailto:ledbat-request@ietf.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: ledbat-bounces@ietf.org
Errors-To: ledbat-bounces@ietf.org

Hello Stas,


On 11/24/08 3:28 PM, "Stanislav Shalunov" <shalunov@shlang.com> wrote:

> We do need to cover the impact on middleboxes in the document -- it's
> in the charter.
> 
> Popular applications are made to work with existing middleboxes.
> Middleboxes are made to work with existing popular apps which do open
> couple hundred of (mostly idle) TCP connections.  Home NATs
> ("routers") don't generally crash when you run BitTorrent.  The
> "mostly idle" part doesn't matter for state consumption, naturally.

Why not? A middlebox that offers NAT/FW has to keep track of all connections
irrespective if they are mostly idle.

> 
> Thousands and tens of thousands of connections (UDP state counts) is
> another matter.  Making one DNS request per every swarm member you
> learn about will overwhelm a few common devices for large enough
> swarms.  (There are client behavior extensions that use DNS requests
> to learn about locations of peers.)  In general, scanning-type
> behavior is problematic.

Interesting, but usually middleboxes age UDP entries very quickly (specially
quickly if they have ALGs). So, TCP and UDP have the dealt differently.

> 
> -- Stas
> 
> 
> On Nov 20, 2008, at 12:06 PM, Andrew G. Malis wrote:
> 
>> As was mentioned in the IAB plenary yesterday, a reason to not use
>> multiple TCP connections is the possible exhaustion of middlebox (read
>> NAT) resources, such as state memory or port numbers. So if you are
>> going to use multiple connections in parallel, you may wish to include
>> a method for the user to control that behavior, and a way to detect
>> that you're behind a NAT and adapt appropriately.
>> 
>> Cheers,
>> Andy
>> 
>> On Thu, Nov 20, 2008 at 1:43 PM, Joe Touch <touch@isi.edu> wrote:
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>> 
>>> Responding to the issue of reasons to need multiple connections, here
>>> are a few of mine (extended from those listed at the mic). This is
>>> not
>>> intended to be a complete list, but a reasonable place to start. The
>>> general point is that this is NOT always about hogging bandwidth,
>>> either
>>> intentionally or not.
>>> 
>>> Joe
>>> 
>>> - --------------------------------------
>>> Reasons to use multiple concurrent TCP connections:
>>> 
>>> - - get around head-of-line blocking
>>>       this was an original reason for web browsers needing them
>>> 
>>> - - demultiplexing
>>>       related to HOL blocking but not requiring it,
>>>       this uses TCP connections to demultiplex different
>>>       streams, because TCP doesn't provide that labeling itself
>>> 
>>>       this was a reason for using different connections for FTP
>>>       data and control, e.g.
>>> 
>>> - - support different stream properties
>>>       i.e., a single app may want different streams with Nagle
>>>       enabled and disabled, or with different socket buffer
>>>       sizes (to limit delay)
>>> 
>>> - - support "CLOSE means EOF" semantics
>>>       a reason for multiple connections in HTTP 1.0
>>> 
>>> - - support larger socket buffer sizes
>>>       esp. without autotuning, but even with, more connections
>>>       means more socket buffering is available
>>> 
>>> - -------
>>> 
>>> One I forgot to note:
>>> 
>>> - - different interaction with errors
>>>       a single connection would keep restarting;
>>>       multiple connections increases the possibility that
>>>       one connection doesn't get hit with a short error burst
>>> 
>>> - ----------------------------------------------
>>> -----BEGIN PGP SIGNATURE-----
>>> Version: GnuPG v1.4.9 (MingW32)
>>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>>> 
>>> iEYEARECAAYFAkklve4ACgkQE5f5cImnZru0gQCfaxwMKa8BPYliwCay9hFGLcD3
>>> HUQAn1zIlOBJRu1u0qbtpNX8ryuur8ZF
>>> =YmcT
>>> -----END PGP SIGNATURE-----
>>> _______________________________________________
>>> ledbat mailing list
>>> ledbat@ietf.org
>>> https://www.ietf.org/mailman/listinfo/ledbat
>>> 
>> _______________________________________________
>> ledbat mailing list
>> ledbat@ietf.org
>> https://www.ietf.org/mailman/listinfo/ledbat
> 
> --
> Stanislav Shalunov
> 
> 
> 
> _______________________________________________
> ledbat mailing list
> ledbat@ietf.org
> https://www.ietf.org/mailman/listinfo/ledbat

_______________________________________________
ledbat mailing list
ledbat@ietf.org
https://www.ietf.org/mailman/listinfo/ledbat