Re: [BEHAVE] (no subject)

ivan c <ivan@cacaoweb.org> Thu, 27 June 2013 11:28 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 6832021F9D05 for <behave@ietfa.amsl.com>; Thu, 27 Jun 2013 04:28:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.166
X-Spam-Level:
X-Spam-Status: No, score=-2.166 tagged_above=-999 required=5 tests=[AWL=0.433, 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 h0Rxee5hrDff for <behave@ietfa.amsl.com>; Thu, 27 Jun 2013 04:28:14 -0700 (PDT)
Received: from mail.cacaoweb.org (mail.cacaoweb.org [46.105.102.78]) by ietfa.amsl.com (Postfix) with ESMTP id 3AA3121F9CC5 for <behave@ietf.org>; Thu, 27 Jun 2013 04:28:14 -0700 (PDT)
Received: from www-data by mail.cacaoweb.org with local (Exim 4.72) (envelope-from <ivan@cacaoweb.org>) id 1UsANx-000537-F7; Thu, 27 Jun 2013 13:29:09 +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 13:29:09 +0200
From: ivan c <ivan@cacaoweb.org>
Organization: cacaoweb
In-Reply-To: <51CBD188.4060408@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>
Message-ID: <fc3c7389e9fc7afc9201f0516de436a7@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 11:28:19 -0000

On Thu, 27 Jun 2013 07:45:44 +0200, Simon Perreault
<simon.perreault@viagenie.ca> wrote:
> Le 2013-06-26 15:51, ivan c a écrit :
>>>> We have, for all UDP communications and all outbound TCP sessions:
>>>> - one socket is bound to one local endpoint on the host.
Additionally,
>>>> two sockets have to bind to two different local endpoints.
>>>
>>> Not true. If you call connect() on a UDP socket, it behaves just like
a
>>> TCP socket.
>>
>> "Not true". interesting...
>> Do you mind providing a counterexample, ie some pseudo-code that binds
>> two
>> sockets of the same protocol to the same local endpoint?
> 
> 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().
> 
> Simon


Your pseudo-code will never bind the sockets on the same local endpoint.
It 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.

This is basic BSD-sockets: you can't bind two sockets to the same local
endpoint. Never, ever.
Not knowing this reveals deep ignorance of the basics of the topic. And
since this point is key to the discussion about NATs... 



-- 
_Ivan Chollet_