[multipathtcp] Multipath Address Family
Pasi Sarolahti <pasi.sarolahti@iki.fi> Mon, 23 November 2009 21:40 UTC
Return-Path: <pasi.sarolahti@iki.fi>
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 81F3D28C1BF for <multipathtcp@core3.amsl.com>; Mon, 23 Nov 2009 13:40:12 -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 qtR7FT1Py1LK for <multipathtcp@core3.amsl.com>; Mon, 23 Nov 2009 13:40:11 -0800 (PST)
Received: from argo.otaverkko.fi (argo.otaverkko.fi [212.68.0.2]) by core3.amsl.com (Postfix) with ESMTP id 3A6A128C1B6 for <multipathtcp@ietf.org>; Mon, 23 Nov 2009 13:40:11 -0800 (PST)
Received: from wifi172.ICSI.Berkeley.EDU (wifi172.ICSI.Berkeley.EDU [192.150.187.172]) by argo.otaverkko.fi (Postfix) with ESMTP id B164625ED06; Mon, 23 Nov 2009 23:40:05 +0200 (EET)
Message-Id: <48DA092B-F3BC-432E-A199-B265DDED39DA@iki.fi>
From: Pasi Sarolahti <pasi.sarolahti@iki.fi>
To: Yoshifumi Nishida <nishida@sfc.wide.ad.jp>, multipathtcp@ietf.org
In-Reply-To: <20091123.092214.140617438.nishida@sfc.wide.ad.jp>
Content-Type: text/plain; charset="US-ASCII"; format="flowed"; delsp="yes"
Content-Transfer-Encoding: 7bit
Mime-Version: 1.0 (Apple Message framework v936)
Date: Mon, 23 Nov 2009 13:40:02 -0800
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>
X-Mailer: Apple Mail (2.936)
Subject: [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: Mon, 23 Nov 2009 21:40:12 -0000
Hi, (changed the topic line, it was earlier "API: which address to use". I'm responding to Yoshifumi below, but first wanted to post a general note.) I wrote down some further thinking about the idea of multipath address family in the form of Internet-Draft, which I thought to be better than a long Email to the list. The draft is available at http://tools.ietf.org/html/draft-sarolahti-mptcp-af-multipath-00 and I'd be happy to hear further comments about it. I think a new address family would be a minimal needed change to the current socket API, without extending the API with new operations, but yet provide an interface to handle multiple addresses in a socket. One potentially useful characteristic would be that this would allow name resolver to return multiple IPv4 and/or IPv6 addresses from the name server as a single sockaddr structure, that could be directly given as a parameter to a connect call, which would lead to trying which of the addresses are reachable for the MPTCP session. Traditionally this has been done in the applications, by cycling through the returned addresses from resolver one by one, until connect is successful. Especially dual-stack IPv6/IPv4 hosts should find such feature useful. Yoshifumi- thanks for your comments! Some responses inline below. On Nov 22, 2009, at 4:22 PM, Yoshifumi Nishida wrote: > I like the idea. > 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. > Strictly speaking, AF_MULTIPATH is not a new address type. I see it as a kind of a super - address family: union of existing address families. But I think that would still fit under a definition of "address family". I understand that there might be different interpretations of what "address family" means, but if there is one specified & correct definition, I'd like to learn about it. > 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. > If the main point of having AF_MULTIPATH is to distinguish between > the current > TCP socket and multipath TCP socket, using SOCK_MULTISTRAM is not a > problem. In my opinion, the main purpose is to be able to present multiple addresses associated with the same TCP socket. But different address family could be used to distinguish between multi- and singlehomed operations, too. > 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 (referring to the name resolver example above). > 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. - Pasi
- [multipathtcp] API: which address to use Pasi Sarolahti
- Re: [multipathtcp] API: which address to use William Herrin
- Re: [multipathtcp] API: which address to use William Herrin
- Re: [multipathtcp] API: which address to use Pasi Sarolahti
- Re: [multipathtcp] API: which address to use SCHARF, Michael
- Re: [multipathtcp] API: which address to use Yoshifumi Nishida
- [multipathtcp] draft minute at IETF76 Yoshifumi Nishida
- [multipathtcp] Multipath Address Family Pasi Sarolahti
- Re: [multipathtcp] Multipath Address Family Olivier Bonaventure
- Re: [multipathtcp] Multipath Address Family William Herrin
- Re: [multipathtcp] Multipath Address Family Michael Tüxen
- Re: [multipathtcp] Multipath Address Family Michael Tüxen
- Re: [multipathtcp] Multipath Address Family Laganier, Julien
- Re: [multipathtcp] Multipath Address Family Joe Touch
- Re: [multipathtcp] Multipath Address Family Laganier, Julien
- Re: [multipathtcp] Multipath Address Family Joe Touch
- Re: [multipathtcp] Multipath Address Family Laganier, Julien
- Re: [multipathtcp] Multipath Address Family Joe Touch
- Re: [multipathtcp] Multipath Address Family Laganier, Julien
- Re: [multipathtcp] Multipath Address Family Pasi Sarolahti
- Re: [multipathtcp] Multipath Address Family Joe Touch
- Re: [multipathtcp] Multipath Address Family Yoshifumi Nishida
- Re: [multipathtcp] Multipath Address Family Laganier, Julien
- Re: [multipathtcp] Multipath Address Family Yoshifumi Nishida
- Re: [multipathtcp] Multipath Address Family Pasi Sarolahti
- Re: [multipathtcp] Multipath Address Family Andrew Yourtchenko
- Re: [multipathtcp] Multipath Address Family Pasi Sarolahti
- Re: [multipathtcp] Multipath Address Family Andrew Yourtchenko
- [multipathtcp] Multipath deployment and fate shar… Costin Raiciu
- Re: [multipathtcp] Multipath deployment and fate … Joe Touch
- Re: [multipathtcp] Multipath Address Family Laganier, Julien
- Re: [multipathtcp] Multipath Address Family Michael Tüxen
- Re: [multipathtcp] Multipath Address Family Michael Tüxen
- Re: [multipathtcp] Multipath Address Family Laganier, Julien
- Re: [multipathtcp] Multipath Address Family Yoshifumi Nishida
- Re: [multipathtcp] Multipath Address Family Pasi Sarolahti
- Re: [multipathtcp] Multipath Address Family Michael Tüxen
- Re: [multipathtcp] Multipath Address Family Michael Tüxen
- Re: [multipathtcp] Multipath Address Family Christian Vogt
- Re: [multipathtcp] Multipath Address Family Christian Vogt
- Re: [multipathtcp] Multipath Address Family Michael Tüxen
- Re: [multipathtcp] Multipath Address Family Yoshifumi Nishida
- Re: [multipathtcp] Multipath Address Family Christian Vogt
- Re: [multipathtcp] Multipath Address Family Yoshifumi Nishida
- Re: [multipathtcp] Multipath deployment and fate … Iljitsch van Beijnum
- Re: [multipathtcp] Multipath deployment and fate … Laganier, Julien
- Re: [multipathtcp] Multipath deployment and fate … Iljitsch van Beijnum
- Re: [multipathtcp] Multipath deployment and fate … Joe Touch
- Re: [multipathtcp] Multipath deployment and fate … Laganier, Julien
- Re: [multipathtcp] Multipath deployment and fate … Joe Touch
- Re: [multipathtcp] Multipath deployment and fate … Joe Touch
- Re: [multipathtcp] Multipath deployment and fate … Laganier, Julien
- Re: [multipathtcp] Multipath deployment and fate … Joe Touch
- Re: [multipathtcp] Multipath deployment and fate … Laganier, Julien
- Re: [multipathtcp] Multipath deployment and fate … Joe Touch
- Re: [multipathtcp] Multipath deployment and fate … Iljitsch van Beijnum
- Re: [multipathtcp] Multipath deployment and fate … Joe Touch
- Re: [multipathtcp] Multipath deployment and fate … Iljitsch van Beijnum
- Re: [multipathtcp] Multipath deployment and fate … Joe Touch
- Re: [multipathtcp] Multipath deployment and fate … Iljitsch van Beijnum
- Re: [multipathtcp] Multipath deployment and fate … Yoshifumi Nishida
- [multipathtcp] draft minute at IETF77 Yoshifumi Nishida