Re: [BEHAVE] (no subject)

Simon Perreault <> Thu, 27 June 2013 14:29 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 32E7B21F9DE3 for <>; Thu, 27 Jun 2013 07:29:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.218
X-Spam-Status: No, score=-2.218 tagged_above=-999 required=5 tests=[AWL=0.382, BAYES_00=-2.599, NO_RELAYS=-0.001]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id MEm+ls4jsYTA for <>; Thu, 27 Jun 2013 07:29:32 -0700 (PDT)
Received: from ( [IPv6:2620:0:230:8000::2]) by (Postfix) with ESMTP id 8E2C521F9DEB for <>; Thu, 27 Jun 2013 07:29:14 -0700 (PDT)
Received: from [IPv6:::1] (unknown [IPv6:2001:660:3001:4012:7ddf:d947:bc5f:fe38]) by (Postfix) with ESMTPSA id 6D81A47121; Thu, 27 Jun 2013 10:29:09 -0400 (EDT)
Message-ID: <>
Date: Thu, 27 Jun 2013 16:29:11 +0200
From: Simon Perreault <>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130620 Thunderbird/17.0.7
MIME-Version: 1.0
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
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: Thu, 27 Jun 2013 14:29:33 -0000

Le 2013-06-27 16:17, ivan c a écrit :
>> My point is that UDP and TCP are not different from the point of view of
>> the NAT w.r.t. port preservation, since applications routinely call
>> connect() on UDP sockets and it is entirely possible that two UDP
>> sockets share the same local endpoint. POSIX standards have nothing to
>> do with it.
> It has everything to do with POSIX standards. Options that are outside the
> POSIX standards are usually quite flaky. See the shortcomings of the
> SO_REUSEADDR option that I mention in my previous post.
> I also totally agree that: UDP and TCP are not different from the point of
> view of the NAT w.r.t. port overloading (i assume you meant port
> overloading, you wrote "port preservation")

No, I meant port preservation. I'm having a hard time following, and I 
thought that the UDP-vs-TCP distinction was w.r.t. port preservation.

> It's just that applications usually use many more TCP local endpoints than
> UDP ones. See bittorrent and all others, empirical observations. So if
> there is a shortage of internal endpoints, it's more likely to happen for
> TCP. But it can also happen for UDP, i totally agree.

Fully agree.

>> The functionality is available on many (all?) platforms, and
>> applications use it.
> Which applications use it for TCP? Reference needed.

By "it", I was referring to "the ability to open multiple sockets bound 
to the same client endpoint". With TCP, applications do it by default.

> SO_REUSEADDR is not needed on UDP anyway since you can already multiplex
> multiple sessions over the same UDP socket. Applications can still use it
> for pure convenience though, i agree, your previous post being a nice
> illustration of this use case.

Exactly. My point is that UDP applications do sometimes create 5-tuples 
sharing the same local 3-tuple. Empirically we see that it is a minority 
of the traffic, but the functionality is there, is being used, and needs 
to be considered in the recommendations for NAT that we end up writing.