Re: [multipathtcp] Multipath Address Family

Joe Touch <touch@ISI.EDU> Tue, 24 November 2009 23:29 UTC

Return-Path: <touch@ISI.EDU>
X-Original-To: multipathtcp@core3.amsl.com
Delivered-To: multipathtcp@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 383313A6891 for <multipathtcp@core3.amsl.com>; Tue, 24 Nov 2009 15:29:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
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 IAYwt+5UrR9Y for <multipathtcp@core3.amsl.com>; Tue, 24 Nov 2009 15:29:10 -0800 (PST)
Received: from vapor.isi.edu (vapor.isi.edu [128.9.64.64]) by core3.amsl.com (Postfix) with ESMTP id 3A0593A67C1 for <multipathtcp@ietf.org>; Tue, 24 Nov 2009 15:29:10 -0800 (PST)
Received: from [75.212.132.192] (192.sub-75-212-132.myvzw.com [75.212.132.192]) (authenticated bits=0) by vapor.isi.edu (8.13.8/8.13.8) with ESMTP id nAONSKaP020330 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Tue, 24 Nov 2009 15:28:23 -0800 (PST)
Message-ID: <4B0C6C13.2060103@isi.edu>
Date: Tue, 24 Nov 2009 15:28:19 -0800
From: Joe Touch <touch@ISI.EDU>
User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
MIME-Version: 1.0
To: "Laganier, Julien" <julienl@qualcomm.com>
References: <E9EE0C1A-C9D3-4EBC-97FD-E1B1628CD2E7@iki.fi> <3c3e3fca0911090542h54e45784qbdbf1f338a4c3e90@mail.gmail.com> <E03D46E1-51EA-4273-A8A7-4F37F88B2E92@iki.fi> <20091123.092214.140617438.nishida@sfc.wide.ad.jp> <48DA092B-F3BC-432E-A199-B265DDED39DA@iki.fi> <3c3e3fca0911240434p4d95ec7an34615ae218faa4f@mail.gmail.com> <C622F375-EE67-46AE-AC28-6617CFEF6D12@lurchi.franken.de> <BF345F63074F8040B58C00A186FCA57F1C65FB29B9@NALASEXMB04.na.qualcomm.com> <4B0C607A.6060503@isi.edu> <BF345F63074F8040B58C00A186FCA57F1C65FB29C0@NALASEXMB04.na.qualcomm.com> <4B0C6590.9010000@isi.edu> <BF345F63074F8040B58C00A186FCA57F1C65FB29C6@NALASEXMB04.na.qualcomm.com>
In-Reply-To: <BF345F63074F8040B58C00A186FCA57F1C65FB29C6@NALASEXMB04.na.qualcomm.com>
X-Enigmail-Version: 0.96.0
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Cc: "multipathtcp@ietf.org" <multipathtcp@ietf.org>
Subject: Re: [multipathtcp] Multipath Address Family
X-BeenThere: multipathtcp@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Multi-path extensions for TCP <multipathtcp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/multipathtcp>, <mailto:multipathtcp-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/multipathtcp>
List-Post: <mailto:multipathtcp@ietf.org>
List-Help: <mailto:multipathtcp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/multipathtcp>, <mailto:multipathtcp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Nov 2009 23:29:11 -0000

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1



Laganier, Julien wrote:
> Joe Touch wrote:
>> Laganier, Julien wrote:
>>> Hi, Joe,
>>>> Laganier, Julien wrote:
>>>>> Stuart Cheshire had a nice talk at IETF 72 on the drawbacks of the
>>>>> current getaddrinfo() + connect() model w.r.t. to IPv6 transition,
>>>>> see http://www.stuartcheshire.org/IETF72/. (Somebody already mentioned
>>>>> that on the list I think.)
>>>>>
>>>>> A connect_to_name() calls that hides all of the address family
>>>>> subtleties under the hood
>>>>> does not have such drawbacks. So if we're going to change the API
>>>>> anyway, this looks like a good occasion to fix that issue too, no?
>>>> I like this idea, but there needs to be a returned primary IP
>>>> address if this is intended to support TCP. I.e., you can ask the system
>>>> to call a name, but it ends up establishing a TCP connection to a socket
>>>> pair (src IP, dst IP, src port, dst port).
>>>>
>>>> I'm still not sure what that means for multipath. There could be
>>>> secondary socket pairs of course, and they can vary over the life of
>>>> the connection, but I still feel that if the primary disappears the
>>>> connection MUST disappear *IF* this is TCP.
>>>>
>>>> Of course, if it's not TCP, this could be easily defined in other
>>>> more useful ways.
>>> Without taking position with respect to fate-sharing between the
>>> MPTCP connection and the original address-port pair, whether the MPTCP
>>> connection is torn down when the original address-port pair fails is,
>>> I think, an issue orthogonal to the specifics of how an application
>>> connects to a peer.
>>>
>>> In both case we can introduce the connect_to_name() call in the new
>>> API.
>>>
>>> Orthogonal to that, if we decide we want to treat the initial address
>>> pair() that got used to establish the MPTCP connection in a special
>>> fashion, e.g., fate-sharing, we can still do so by defining the
>>> behavior in the protocol specification.
>>>
>>> Makes sense?
>> Sure, but either way you need to return at least the primary IP
>> address/port pair as results of the connect_to_name() call.
>>
>> It's not sufficient to return an undistinguished set of such pairs, nor
>> is it sufficient to not return any such pairs.
> 
> Unless the socket has been bind()'ed earlier, connect() doesn't
> return
> to the caller any information about the address/port that was picked as
> a result of the connect(). The application would need to call
> getsockname() to know what address/port pair was used.

Sure. I was speaking in a general sense.

> If an application is modified to use the new API, it will have to use
> getpeername() in addition to getsockname() to know what initial address
> pair has been connected.

That basically kills legacy apps. You want getsockname to return the
initial, and some other call to return the full list (or supplemental
socket pairs).

Joe
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)

iEYEARECAAYFAksMbBMACgkQE5f5cImnZrsVswCgoFpCKQa8jx5gpDG2Re01s6ic
elcAoLDKy6KCjJDGgcxKL95tjlmuAKz3
=hbq9
-----END PGP SIGNATURE-----