Re: [multipathtcp] Multipath Address Family

Yoshifumi Nishida <nishida@sfc.wide.ad.jp> Wed, 25 November 2009 00:05 UTC

Return-Path: <nishida@sfc.wide.ad.jp>
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 A40E83A6848 for <multipathtcp@core3.amsl.com>; Tue, 24 Nov 2009 16:05:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.337
X-Spam-Level: *
X-Spam-Status: No, score=1.337 tagged_above=-999 required=5 tests=[AWL=0.433, BAYES_00=-2.599, HELO_EQ_JP=1.244, HOST_EQ_JP=1.265, RELAY_IS_203=0.994]
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 NqKg3Gw1cwU0 for <multipathtcp@core3.amsl.com>; Tue, 24 Nov 2009 16:05:28 -0800 (PST)
Received: from mail.sfc.wide.ad.jp (mail.sfc.wide.ad.jp [203.178.142.146]) by core3.amsl.com (Postfix) with ESMTP id 941093A67C1 for <multipathtcp@ietf.org>; Tue, 24 Nov 2009 16:05:28 -0800 (PST)
Received: from localhost (cpu.sfc.wide.ad.jp [IPv6:2001:200:0:8803:203:178:142:143]) by mail.sfc.wide.ad.jp (Postfix) with ESMTP id 6D4FF4C0D0; Wed, 25 Nov 2009 09:05:19 +0900 (JST)
Date: Wed, 25 Nov 2009 09:05:19 +0900
Message-Id: <20091125.090519.241397361.nishida@sfc.wide.ad.jp>
To: pasi.sarolahti@iki.fi
From: Yoshifumi Nishida <nishida@sfc.wide.ad.jp>
In-Reply-To: <48DA092B-F3BC-432E-A199-B265DDED39DA@iki.fi>
References: <E03D46E1-51EA-4273-A8A7-4F37F88B2E92@iki.fi> <20091123.092214.140617438.nishida@sfc.wide.ad.jp> <48DA092B-F3BC-432E-A199-B265DDED39DA@iki.fi>
X-Mailer: Mew version 6.2 on Emacs 22.1 / Mule 5.0 (SAKAKI)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Cc: 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: Wed, 25 Nov 2009 00:05:29 -0000

Hello Pasi,

Thanks for your response. 

From: Pasi Sarolahti <pasi.sarolahti@iki.fi>
Subject: Multipath Address Family
Date: Mon, 23 Nov 2009 13:40:02 -0800
Message-ID: <48DA092B-F3BC-432E-A199-B265DDED39DA@iki.fi>

 > > But I have several questions. I think there might be an alternative:
 > > having
 > > SOCK_MULTISTREAM or using a combination socket type like SOCK_STREAM |
 > > SOCK_MULTIPATH
 > > from the following reasons.
 > 
 > I have thought the 'type' parameter in the socket call to specify the
 > semantics of the socket functions such as read and write. To my
 > understanding the purpose of the MPTCP exercise is to maintain similar
 > read/write semantics to TCP, so if successful in this goal, the socket
 > behavior should be equal to SOCK_STREAM. Or to put it differently,
 > MPTCP is not a new protocol, it is just a (fairly large) modification
 > to TCP.

I would say that the socket type indicates the semantics of communication. 
(as 'man socket' says.)  If communication style has been changed, we might need 
new one. If the transport service is completely the same from the API's point 
of view even if multipath is used or not, I think you're right. 
But, if you want to add extentions to streaming service, it can be a different 
communication semantic.

 > > SCTP socket can be created with AF_INET or AF_INET6, but the socket
 > > can
 > > support multiple addresses. It's a bit orthgonal behavior from
 > > AF_MULTIPATH
 > 
 > Yes, earlier protocols have done something different for their
 > API. But I'd be interested to learn if there is something why the
 > earlier protocols couldn't begin using something like multipath
 > address family.

Yep, if SCTP supports this kind of AF, things might be easier..
Actually, in WIDE project, we tried to propose new AF called AF_BUNDLE for sctp, 
which has very similar concept of AF_MULTIPATH. An experimental code existed, 
but somehow it was not integrated into KAME's code... 

Anyway, we already have a standardized multipath stream protocol. 
it would not be very perferable if the API for two multipath stream 
protocols are very different. 
I'm not sure how this is important yet, but that's one point I care.

 > > we might support one-ended approach with the same API.

 > Yep, and that should be possible with AF_MULTIPATH, by having just one
 > address in the address list. I think there might be cases where even
 > single-homed TCP connections might benefit from multiaddress API, even
 > if they ended up using just one of the given addresses at both ends

Yes. it's possible. but, I'm not very sure if it's intuitive...

 > > Also, in my feeling, we will need new bind(), connect() to specify
 > > multiple
 > > addresses. just like sctp_bindx(), sctp_connectx().
 > 
 > I think that adding completely new operations to the good old socket
 > API might be problematic, and would lead to a more updating /
 > maintenance burden in different systems and applications than a new
 > address family would do. But I might be missing something in the
 > required complexity of adding a new address family.

Hmm, in your proposal, it seems to me that you want to update the 
return value for bind() and connect(), which might break the syntax of these calls.
If we want to keep the same syntax as the current one, we will need to have a 
new function that will get true return code for these functions. 
But, in my feeling, this might be almost the same as creating new bind() and connect().

Thanks,
--
Yoshifumi Nishida
nishida@sfc.wide.ad.jp