Re: [multipathtcp] High-level design decisions /architecture

Scott Brim <scott.brim@gmail.com> Tue, 03 November 2009 18:41 UTC

Return-Path: <scott.brim@gmail.com>
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 36F1828C195 for <multipathtcp@core3.amsl.com>; Tue, 3 Nov 2009 10:41:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.253
X-Spam-Level:
X-Spam-Status: No, score=-2.253 tagged_above=-999 required=5 tests=[AWL=-0.254, BAYES_00=-2.599, J_CHICKENPOX_21=0.6]
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 NDa6zYvfFgqv for <multipathtcp@core3.amsl.com>; Tue, 3 Nov 2009 10:41:39 -0800 (PST)
Received: from qw-out-2122.google.com (qw-out-2122.google.com [74.125.92.25]) by core3.amsl.com (Postfix) with ESMTP id 23D5C28C194 for <multipathtcp@ietf.org>; Tue, 3 Nov 2009 10:41:39 -0800 (PST)
Received: by qw-out-2122.google.com with SMTP id 9so1605167qwb.31 for <multipathtcp@ietf.org>; Tue, 03 Nov 2009 10:42:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :x-enigmail-version:content-type:content-transfer-encoding; bh=mO2wXGCXJGewOjipoxkeqLIFh1e4tBRzwDjG6dYShMM=; b=jP2CnUvm9IyxFm/pEFj8ldecwiI82NafsqE1hg8lCXQ5k7ttQc2ZbZ3mI+cfrk6TW8 Sbsd7tqR4AlstWxLXJiFt9u5jURaDsxbKTIqvqaVy3iAf2SoIWRXy4GT2uKoB2dzQt8n cqMYLfRBHGPwQQtm5PKsGjMkIyrnvTHUObwwg=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:x-enigmail-version:content-type :content-transfer-encoding; b=TBilFIaZgQBhddLcahQ030QS3krwJjs06oeSGJQWVh99t+a9BDROAUSzFyd/BSGQgp /KzUXMGqU9/XwLzKELKFUdqYIilomD+UYjl0jAhDLfRRjWJ+aTDhm7xd/sYAZvNZ+XaY G5I+4Sd7KmRGbDGsEEL7LpomKMJvqC4p0x3XQ=
Received: by 10.224.69.164 with SMTP id z36mr174916qai.377.1257273720020; Tue, 03 Nov 2009 10:42:00 -0800 (PST)
Received: from sbrim-mbp.local (198-135-0-233.cisco.com [198.135.0.233]) by mx.google.com with ESMTPS id 23sm199370qyk.3.2009.11.03.10.41.58 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 03 Nov 2009 10:41:59 -0800 (PST)
Message-ID: <4AF07974.9030704@gmail.com>
Date: Tue, 03 Nov 2009 13:41:56 -0500
From: Scott Brim <scott.brim@gmail.com>
User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812)
MIME-Version: 1.0
To: Joe Touch <touch@ISI.EDU>
References: <4A916DBC72536E419A0BD955EDECEDEC06363A62@E03MVB1-UKBR.domain1.systemhost.net> <4AEF781E.4070009@isi.edu> <4AF04C00.10504@gmail.com> <4AF05270.1050501@isi.edu>
In-Reply-To: <4AF05270.1050501@isi.edu>
X-Enigmail-Version: 0.96.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Cc: multipathtcp@ietf.org
Subject: Re: [multipathtcp] High-level design decisions /architecture
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, 03 Nov 2009 18:41:40 -0000

Joe Touch allegedly wrote on 11/03/2009 10:55 AM:
>> Joe, that's just not necessary except for legacy endpoint stacks.  See
>> the iPhone and "connectByName".  If the API revolves around a connection
>> ID, regardless of underlying addresses, then IP addresses can come and
>> go as they with as long as the transport layer has some mechanism of
>> maintaining session authenticity and continuity.  The scenario where a
>> new node gets an IP address that an old node was just using is only
>> relevant if the connection is maintained using IP addresses ... which it
>> isn't.
> 
> This is fine if you're defining a new transport protocol. TCP *defines*
> a connection by the socket pair. If that socket pair disappears and you
> keep the connection up, I would argue you need to use a different
> protocol number because you've seriously changed the semantics.

MPTCP "looks like TCP on the wire" for each src/dst pair.  That means it
uses the same protocol number, but it doesn't mean it must behave
exactly like TCP.  We already change the response to packet
loss.  I suspect that you could do the whole TCP state machine for each
src/dst pair, but in the new API

> NATs may be ubiquitous, but they are NOT part of the 'architecture'.
> They violate what little of the architecture is specified (RFCs 1122,
> 1123, 1812).

Too late, it's the new millennium.  Dave Clark said "architect the
inevitable" (one of my favorite sayings).

>>>>     * There is an optional, extended API
>>>>           o [Question: would both ends need the extended API, with a
>>>>             fall-back if not?]
>>> Seems like one end could want the extended API for explicit control of
>>> flows, but the other end doesn't need to care.
>> Agree.  The API is to access controls for the endpoint's implementation
>> of the protocol.  How an endpoint implements its APIs is independent of
>> the protocol.
> 
> Whoa on two counts.
> 
> First, *IF*, as you say, "NAT is now architecture", then the API affects
> nodes inside the network, not just at the endpoints.

I don't understand this.  Please help.  I see no linkage between a
transport API in an endpoint and a NAT box in the path.

> Second, the API is two things - an abstract specification and an
> implementation. Consider TCP, which has OPEN, CLOSE, STATUS, READ,
> WRITE. Those are part of the *specification*. There's also the Un*x
> "open()" call, which implements part of what OPEN specifies (arguably,
> in Un*x, this also includes listen(), connect(), and bind()).
> 
> My claim here is that the API can be asymmetric, i.e., extended on one
> side and not the other. That's just claiming that all extensions are
> optional on both sides, and not coordinated.

Yes, I was trying to agree :-).

Scott