Re: [multipathtcp] Fwd: [rrg] New Paper On Name-Oriented Sockets Interface

John Leslie <john@jlc.net> Wed, 02 December 2009 15:01 UTC

Return-Path: <john@jlc.net>
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 50E6D3A62C1 for <multipathtcp@core3.amsl.com>; Wed, 2 Dec 2009 07:01:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.745
X-Spam-Level:
X-Spam-Status: No, score=-5.745 tagged_above=-999 required=5 tests=[AWL=0.254, BAYES_00=-2.599, J_CHICKENPOX_51=0.6, RCVD_IN_DNSWL_MED=-4]
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 TLvKB2W5GbQf for <multipathtcp@core3.amsl.com>; Wed, 2 Dec 2009 07:01:38 -0800 (PST)
Received: from mailhost.jlc.net (mailhost.jlc.net [199.201.159.9]) by core3.amsl.com (Postfix) with ESMTP id 3FD9728C1EC for <multipathtcp@ietf.org>; Wed, 2 Dec 2009 07:01:38 -0800 (PST)
Received: by mailhost.jlc.net (Postfix, from userid 104) id C72CC33C2E; Wed, 2 Dec 2009 10:01:29 -0500 (EST)
Date: Wed, 02 Dec 2009 10:01:29 -0500
From: John Leslie <john@jlc.net>
To: R?mi Despr?s <remi.despres@free.fr>
Message-ID: <20091202150129.GN37915@verdi>
References: <E67E011C-8012-4407-BCFE-16E3BE97729D@ericsson.com> <3C622E25-DFCA-48A4-A95C-E0F6BABEFD6D@nokia.com> <4B0FB0AA.2060303@gmail.com> <A0D6CBAC-EEC5-48C6-91AF-4FBD9F99073E@free.fr> <4B159F27.4020008@isi.edu> <4B1642BC.30508@free.fr>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <4B1642BC.30508@free.fr>
User-Agent: Mutt/1.4.1i
Cc: "multipathtcp@ietf.org List" <multipathtcp@ietf.org>, Stuart Cheshire <cheshire@apple.com>, Christian Vogt <christian.vogt@ericsson.com>, Joe Touch <touch@ISI.EDU>
Subject: Re: [multipathtcp] Fwd: [rrg] New Paper On Name-Oriented Sockets Interface
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: Wed, 02 Dec 2009 15:01:39 -0000

R?mi Despr?s <remi.despres@free.fr> wrote:
> 
> Stuart Cheshire added to the list (AFAIK, the leading advocate of 
> connect-by-name).

   Hi, Stuart!

> Joe Touch wrote :
> 
>> I'm not sure this is a desirable objective.
>>
>> When you specify a name, you're not specifying a single address; you're
>> specifying any one of a set of addresses. It's presumed that these are
>> equivalent, but not that they are to the same host. A name-based system
>> could easily end up with a sequence of connections going to different
>> hosts.

   True.

>> That's avoided today as:
>>
>>	adr = first(dns("name"))  -- or adr = pickone(dns("name"))
>>	connect(adr)
>>	connect(adr)
>>	connect(adr)
>> There doesn't seem to be a way to achieve this with:
>>
>>	connect("name")
>>	connect("name")
>>	connect("name")
>>
>> This destroys the utility of HTTP cookies, e.g.

   Only if both ends are blind to the issue...

> Note that:
> - If backward compatibility is maintained, as required in the proposal, 
>   a name-capable API doesn't imply that it be address-unable.
> - Connect-by-name is already mentioned for Shim6 in RFC 5533 - sec. 13, 
>   (a way to save time when multiple addresses have to be tried for a
>   given domain name)
> 
> Applications that may depend on successive connections to go to the same 
> host, they can use:
> 	ConnectByName(name) which returns the chosen adr
> 	Connect(adr)
> 	Connect(adr)
> 	Connect(adr)

   That's one way to think about the problem...

> The useful novelty ahead is IMHO the following:
> - If a connection initiator includes its domain name in its connection 
>   request (e.g. in a TCP option) the API of the reached application, if
>   it is name-capable, provides both the address AND the name of the 
>   connection initiator.

   I would argue that any ConnectByName API SHOULD contain the _name_
by which your end wants to be known by the other end. ("Connect" should
imply establishing a "connection" IMHO.)

> - A consistency check between address and name is done by the transport 
>   layer before connection acceptance. This check needs only a DNS query.
>   It is therefore compatible with DNS dynamic updates and DNSSEC (no
>   need for a DNS supported reverse mapping).

   I'm not sure that's necessary, but it's certainly appropriate to
discuss what consistency checks _are_ necessary...

   I would argue that our charter calls for work on
" 
" e. An extended API describing how applications can exploit additional
"    features of multipath transport. While MPTCP needs to be usable
"    without any application changes, this API should be an optional
"    extension that provides access to multipath information and enables
"    control over the usage of multipath.

and further that "an extended API" should enable extension to protocol
extensions yet to be defined. Thus:

- the same "extended API" should be able to request legacy TCP, MPTCP,
  or even other transports (such as SCTP);

- the "extended API" should be able to use DNS names or some other name
  format to be defined later (for one example, IPv6 "address" space is
  large enough to contain many "name" spaces);

- the "extended API" should return an indication of which names and/or
  addresses the other end of the connection uses.

--
John Leslie <john@jlc.net>