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

Reinaldo Penno <rpenno@juniper.net> Tue, 02 December 2008 03:29 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 0CD3E3A68B8; Mon, 1 Dec 2008 19:29:36 -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 6863E3A68B8 for <ledbat@core3.amsl.com>; Mon, 1 Dec 2008 19:29:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.366
X-Spam-Level:
X-Spam-Status: No, score=-6.366 tagged_above=-999 required=5 tests=[AWL=0.233, 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 SeiOu58PTQy6 for <ledbat@core3.amsl.com>; Mon, 1 Dec 2008 19:29:34 -0800 (PST)
Received: from exprod7og116.obsmtp.com (exprod7ob116.obsmtp.com [64.18.2.218]) by core3.amsl.com (Postfix) with ESMTP id 149DC3A63EB for <ledbat@ietf.org>; Mon, 1 Dec 2008 19:29:34 -0800 (PST)
Received: from source ([66.129.224.36]) (using TLSv1) by exprod7ob116.postini.com ([64.18.6.12]) with SMTP ID DSNKSTSrl8hY1hZbfyD+aThQoiNkeXX+CwgQ@postini.com; Mon, 01 Dec 2008 19:29:30 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, 1 Dec 2008 19:26:31 -0800
Received: from p-emlb02-sac.jnpr.net ([66.129.254.47]) by p-emfe01-sac.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Mon, 1 Dec 2008 19:26:30 -0800
Received: from antipi.jnpr.net ([10.10.2.34]) by p-emlb02-sac.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Mon, 1 Dec 2008 19:26:30 -0800
Received: from proton.jnpr.net ([10.10.2.37]) by antipi.jnpr.net with Microsoft SMTPSVC(6.0.3790.1830); Mon, 1 Dec 2008 20:29:34 -0500
Received: from 172.23.1.68 ([172.23.1.68]) by proton.jnpr.net ([10.10.2.37]) with Microsoft Exchange Server HTTP-DAV ; Tue, 2 Dec 2008 01:29:26 +0000
User-Agent: Microsoft-Entourage/12.14.0.081024
Date: Mon, 01 Dec 2008 17:29:06 -0800
From: Reinaldo Penno <rpenno@juniper.net>
To: Richard Bennett <richard@bennett.com>, Robb Topolski <robb@funchords.com>
Message-ID: <C559CF62.173AB%rpenno@juniper.net>
Thread-Topic: [ledbat] list of reasons for needing multiple TCP connections
Thread-Index: AclUHV25PuZuL9GjHkC6Z2cG5i161w==
In-Reply-To: <493474B4.40607@bennett.com>
MIME-Version: 1.0
X-OriginalArrivalTime: 02 Dec 2008 01:29:34.0469 (UTC) FILETIME=[6EB1A350:01C9541D]
Cc: "ledbat@ietf.org" <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,

Any NAT developer has a bag of tricks to deal with state shortage. He/she
can:

1 Drop any new sessions/conn
2 Nuke the oldest one
3 Nuke the mostly idle one
4 Combination of 2 & 3
5 Use tickle
6 Set up timers depending on application ports
7 Use ALGs to track end of dialog
8 Smart nuke of a per application basis (e.g. Safe to nuke IM, but only nuke
business VoIP control as last measure)

I could go on.

The strategy chosen depends on availability of ALGs, configurable timers,
home routers vs. access vs. something else, etc.

As far as TCP (not application) keep alive goes, it is 2 hours. A lot of
stuff can happen in two hours.

Thanks,

Reinaldo

On 12/1/08 3:35 PM, "Richard Bennett" <richard@bennett.com> wrote:

> Setting an expiration period of 5 minutes for UDP entries in a NAT table will
> certainly kill UTP. Is that what you really want, Robb? The mapping entries
> have to be kept around as long as there's any likelihood of traffic coming in
> for them, which can be a very long time for P2P.
> 
> A little more tech and a little less snark would actually be beneficial.
> 
> RB
> 
> Robb Topolski wrote:
>>  
>>> in the course of a 24 hour period you will typically see a total of well
>>> over 4000 NAT table entries for BitTorrent when it's in use.
>>  
>> 
>> Good grief.  
>>  
>> "In the course of a 24-hour period" is a huge qualifier, not to mention
>> irrelevant.  How big is the NAT table over the course of a year?   You can
>> really demonize P2P with a stat like that!!
>>  
>> The only relevant NAT table is the one you have, now.
>>  
>>  
>>  
>>> TCP is actually more friendly to this problem than UDP, because it give the
>>> NAT a clue about when it's safe to free an entry.
>>>  
>>  
>> I don't know that TCP is any more or less friendly.  Sure, it gives state,
>> but you have to track that state and do an orphan timer. Meanwhile, a lot of
>> TCP apps send keepalives anyway, rendering all that pretty much meaningless.
>>  
>>  
>>> Stateless  UDP is much more of a problem.
>>>  
>>  
>> With UDP, it's much less of a problem.  Devices can just expire the entry
>> after sufficient time has passed since the last traversal -- which is what
>> they already do.
>>  
>> With TCP entries, owing to the chance that keepalives aren't used, my
>> favorite router sets a 2.5 hour timer.  With UDP entries, it's 5 minutes.
>>  
>>  
>>  
>>  
>>  
>>  
>> On Mon, Dec 1, 2008 at 3:00 PM, Richard Bennett <richard@bennett.com> wrote:
>>  
>>>  
>>> Au contraire, Robb, in the course of a 24 hour period you will typically see
>>> a total of well over 4000 NAT table entries for BitTorrent when it's in use.
>>> The fact that BitTorrent doesn't use all the thousands at the same time
>>> isn't the issue, it's the fact that a mapping entry has to be made in the
>>> table each time a packet is sent from an end system behind the NAT to one in
>>> front of the NAT. TCP is actually more friendly to this problem than UDP,
>>> because it give the NAT a clue about when it's safe to free an entry.
>>> Stateless  UDP is much more of a problem.
>>>  
>>> RB
>>>  
>>> Robb Topolski wrote:
>>>>  
>>>>  
>>>> 
>>>>  
>>>>  
>>>>  
>>>>>  
>>>>> Most home "routers" have all been modified by now not to crash when
>>>>> BitTorrent has opened thousands of TCP connections. These connections
>>>>> consume mapping table resources and were a problem until it they were
>>>>> garbage-collected.
>>>>>  
>>>>>  
>>>>>  
>>>>  
>>>>  
>>>> I claim to have no handle on what "most" home routers do, but I doubt this
>>>> assertion. 
>>>>  
>>>> NAT table size continues to be a problem with NAT limit, and not because
>>>> BitTorrent typically opens thousands of TCP connections (it doesn't, nor do
>>>> trackers generally provide the thousands of peer addresses necessary to go
>>>> with those connections), but because the combination of the UDP-based DHT
>>>> in addition to 100 TCP connections and a decent amount of WAN-LAN traffic
>>>> is enough to overcome NAT tables in popular routers being sold today.
>>>>  
>>>>  
>>>> http://www.smallnetbuilder.com/component/option,com_chart/Itemid,189/chart,
>>>> 124/
>>>> (note 200 is the upper limit of their test method, but of use to this
>>>> message is the number and market position of routers that support less than
>>>> 200)
>>>>  
>>>> Belkin's F5D8232-4 is 41st in Amazon's sales rank for "routers" and maxed
>>>> out at 180 connections.
>>>> Netgear FVS124G is 14th in "gigabit routers" and maxes out at 196.
>>>> Apple's BL053LL/A is 1st in "gigabit routers" and maxes out at 128.
>>>>  
>>>> Do they crash?  Beats me.  But NAT table size limit is definitely a
>>>> consideration.  The behaviors when those limits are reached are varied and,
>>>> even on some recently sold equipment, sometimes less than graceful. One of
>>>> the most common failure modes I've run across is that DNS Relay stops
>>>> working or the configuration pages stop responding while pre-existing
>>>> connections continue uninterrupted!  (I'm guessing that the daemons
>>>> supporting these functions either get killed or lack enough memory to do
>>>> anything, they themselves are shut out of the NAT table, or maybe they
>>>> won't launch when CPU load is greater than some amount.)
>>>>  
>>>> I think it continues to deserve inclusion.  If someone has data to the
>>>> contrary, please bring it.
>>>>  
>>>>  

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