Re: [BEHAVE] (no subject)

Simon Perreault <> Fri, 28 June 2013 12:01 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 1CA2C21F8493 for <>; Fri, 28 Jun 2013 05:01:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.3
X-Spam-Status: No, score=-1.3 tagged_above=-999 required=5 tests=[AWL=1.300, BAYES_00=-2.599, NO_RELAYS=-0.001]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id EtYC8oVOgjBb for <>; Fri, 28 Jun 2013 05:01:38 -0700 (PDT)
Received: from ( [IPv6:2620:0:230:8000::2]) by (Postfix) with ESMTP id 5AE8221F9CF3 for <>; Fri, 28 Jun 2013 05:01:33 -0700 (PDT)
Received: from (unknown [IPv6:2620:0:230:2001::1000]) by (Postfix) with ESMTPSA id 9C4DE414F9; Fri, 28 Jun 2013 08:01:32 -0400 (EDT)
Message-ID: <>
Date: Fri, 28 Jun 2013 14:01:31 +0200
From: Simon Perreault <>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130514 Thunderbird/17.0.6
MIME-Version: 1.0
References: <> <> <> <> <> <> <> <> <> <> <> <> <014f01ce7341$e5416620$afc43260$> <> <> <> <> <>
In-Reply-To: <>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Cc: Behave <>
Subject: Re: [BEHAVE] (no subject)
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: mailing list of BEHAVE IETF WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 28 Jun 2013 12:01:44 -0000

Le 2013-06-27 18:46, ivan c a écrit :
>>> In this post:
>>> , I
>>> explain (among other things), why the TCP Hole Punching Protocol is not
>>> affected by the rare cases of collision due to port overloading. The
>>> application simply retries with a new TCP socket (on a new local
>>> endpoint).
>> long as the NAT does port preservation, right?
> No, I meant it in the general case with port overloading, with or without
> TCP port preservation.
> As you know, port overloading breaks the EIM requirement in the general
> case. This is why port overloading is a MUST NOT in the existing RFCs.
> But since collisions are supposed to be rare, p2p application can simply
> retry with a new socket (on a new local endpoint) if the NAT happened to
> refuse or drop a packet.

I think I'm starting to understand your proposal. Correct me if I'm 
wrong: you're proposing that NATs should be allowed to do port 
overloading as long as their default behaviour is EIM. They would only 
do port overloading if they're running out of ports. Is that correct?

That would solve the port scalability problem for busy NATs.

Your argument is that this kind of NAT can still be easily traversed by 
P2P applications, correct? Now, the thing I don't understand is how. You 
say "p2p application can simply retry with a new socket (on a new local 
endpoint) if the NAT happened to refuse or drop a packet".
- What packet gets dropped?
- How does the application know?
- How will using a new local endpoint result in no port overloading if 
the NAT is already busy enough that it has started overloading ports?

>> If so, the problem I see is that CGNs do not / can not / will not do
>> port preservation, as a few people already pointed out.
> Sure, regarding port preservation, on very busy CGNs it will surely not be
> granted all the time. But they are free to use the port allocation scheme
> they like. As you say, I assume a lot of CGNs won't support it.
> Port preservation should probably be an optional feature (especially for
> home NATs, that generally already have it). It is not necessarily related
> to port overloading.

Ok. Then it seems nothing needs to be said about port preservation, correct?

DTN made easy, lean, and smart -->
NAT64/DNS64 open-source        -->
STUN/TURN server               -->