Re: [BEHAVE] (no subject)

ivan c <ivan@cacaoweb.org> Thu, 27 June 2013 13:26 UTC

Return-Path: <ivan@cacaoweb.org>
X-Original-To: behave@ietfa.amsl.com
Delivered-To: behave@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 91CF021F962D for <behave@ietfa.amsl.com>; Thu, 27 Jun 2013 06:26:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.274
X-Spam-Level:
X-Spam-Status: No, score=-2.274 tagged_above=-999 required=5 tests=[AWL=0.325, BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3rj+1xIWP5Yy for <behave@ietfa.amsl.com>; Thu, 27 Jun 2013 06:26:15 -0700 (PDT)
Received: from mail.cacaoweb.org (mail.cacaoweb.org [46.105.102.78]) by ietfa.amsl.com (Postfix) with ESMTP id CB3AE21F9DD7 for <behave@ietf.org>; Thu, 27 Jun 2013 06:26:11 -0700 (PDT)
Received: from www-data by mail.cacaoweb.org with local (Exim 4.72) (envelope-from <ivan@cacaoweb.org>) id 1UsCE4-0006lW-AK; Thu, 27 Jun 2013 15:27:04 +0200
To: Simon Perreault <simon.perreault@viagenie.ca>
X-PHP-Originating-Script: 0:func.inc
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Date: Thu, 27 Jun 2013 15:27:04 +0200
From: ivan c <ivan@cacaoweb.org>
Organization: cacaoweb
In-Reply-To: <51CC2ED4.7090506@viagenie.ca>
References: <CB1B483277FEC94E9B58357040EE5D02325A6E93@xmb-rcd-x15.cisco.com> <2f7dce8264c8a9a72640629502a44295@cacaoweb.org> <51C1681A.5030909@viagenie.ca> <f8741fad1af1cee094de9c59408b7425@cacaoweb.org> <51C40374.8080403@viagenie.ca> <21e25b7ae1501228a67656b2fa4bc009@cacaoweb.org> <51CAA20F.4070307@viagenie.ca> <88c0ada2b8ebad078fb249ac6572fd8b@cacaoweb.org> <51CBD188.4060408@viagenie.ca> <fc3c7389e9fc7afc9201f0516de436a7@cacaoweb.org> <51CC2ED4.7090506@viagenie.ca>
Message-ID: <4d2e082fd02ce46cd003631e8ca8eae9@cacaoweb.org>
X-Sender: ivan@cacaoweb.org
User-Agent: RoundCube Webmail/0.3.1
Cc: behave@ietf.org
Subject: Re: [BEHAVE] (no subject)
X-BeenThere: behave@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: ivan@cacaoweb.org
List-Id: mailing list of BEHAVE IETF WG <behave.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/behave>, <mailto:behave-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/behave>
List-Post: <mailto:behave@ietf.org>
List-Help: <mailto:behave-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/behave>, <mailto:behave-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 27 Jun 2013 13:26:19 -0000

On Thu, 27 Jun 2013 14:23:48 +0200, Simon Perreault
<simon.perreault@viagenie.ca> wrote:
> Le 2013-06-27 13:29, ivan c a écrit :
>>> s1 = socket(..., SOCK_DGRAM, ...);
>>> s2 = socket(..., SOCK_DGRAM, ...);
>>> connect(s1, ...);
>>> connect(s2, ...);
>>>
>>> The kernel is free to use the same local endpoint for those two
sockets
>>> as long as the remote endpoint is different.
>>>
>>> If you really want to force reusing the same local endpoint, you do
the
>>> SO_REUSEADDR+bind() dance before calling connect().
>>
>> Your pseudo-code will never bind the sockets on the same local
endpoint.
>> It is forbidden POSIX behavior.
> 
> I'm ready to accept that, with a proper citation.

Without the option SO_REUSEADDR, this is forbidden POSIX behavior


>> The option SO_REUSEADDR won't help either, this option is used to bind
>> over an *already closed* socket in TIME_WAIT state, that's all.
> 
> I humbly believe that you are mistaken. It works, try it. 

It surely *works* on platforms that support this use of SO_REUSEADDR, we
discussed it numerous times already, including on the phone.
I also made the point in numerous posts already that SO_REUSEADDR is used
to bypass the TIME_WAIT state on closed sockets, and even this is not
specified by POSIX. See
http://www.ietf.org/mail-archive/web/behave/current/msg10876.html
In another post, I explained that if you use SO_REUSEADDR on all your TCP
sockets you expose them to the old duplicate problem, and the worst is that
this crosses applications boundaries. See
http://www.ietf.org/mail-archive/web/behave/current/msg10906.html

However, applications should be free to use it if they wish.
I also made the point numerous times that applications should have as many
ways as possible to cross NATs.




-- 
_Ivan Chollet_