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

Stanislav Shalunov <shalunov@shlang.com> Tue, 25 November 2008 00:40 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 6CB023A6B74; Mon, 24 Nov 2008 16:40:34 -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 4675E3A6B74 for <ledbat@core3.amsl.com>; Mon, 24 Nov 2008 16:40:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000, 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 mBmLDR47juVS for <ledbat@core3.amsl.com>; Mon, 24 Nov 2008 16:40:31 -0800 (PST)
Received: from rv-out-0506.google.com (rv-out-0506.google.com [209.85.198.231]) by core3.amsl.com (Postfix) with ESMTP id B5D133A677E for <ledbat@ietf.org>; Mon, 24 Nov 2008 16:40:31 -0800 (PST)
Received: by rv-out-0506.google.com with SMTP id b25so2266404rvf.49 for <ledbat@ietf.org>; Mon, 24 Nov 2008 16:40:29 -0800 (PST)
Received: by 10.141.197.21 with SMTP id z21mr2140832rvp.107.1227573629318; Mon, 24 Nov 2008 16:40:29 -0800 (PST)
Received: from ?10.0.1.234? (ip-208-72-192-23.bittorrent.com [208.72.192.23]) by mx.google.com with ESMTPS id b8sm13670627rvf.3.2008.11.24.16.40.27 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 24 Nov 2008 16:40:28 -0800 (PST)
Message-Id: <B75B73E7-A976-4251-9757-49F2192402A1@shlang.com>
From: Stanislav Shalunov <shalunov@shlang.com>
To: Reinaldo Penno <rpenno@juniper.net>
In-Reply-To: <C5507EE5.16A89%rpenno@juniper.net>
Mime-Version: 1.0 (Apple Message framework v929.2)
Date: Mon, 24 Nov 2008 16:40:26 -0800
References: <C5507EE5.16A89%rpenno@juniper.net>
X-Mailer: Apple Mail (2.929.2)
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-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"; DelSp="yes"
Sender: ledbat-bounces@ietf.org
Errors-To: ledbat-bounces@ietf.org

On Nov 24, 2008, at 3:55 PM, Reinaldo Penno wrote:
>> 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.

Exactly.  The fact that BitTorrent connections are mostly idle doesn't  
matter for how much state is consumed on a NAT.

>> 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
>

--
Stanislav Shalunov



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