Re: [multipathtcp] Multipath Address Family

Yoshifumi Nishida <nishida@sfc.wide.ad.jp> Wed, 25 November 2009 19:15 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 2EFCE3A6B24 for <multipathtcp@core3.amsl.com>; Wed, 25 Nov 2009 11:15:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.164
X-Spam-Level: *
X-Spam-Status: No, score=1.164 tagged_above=-999 required=5 tests=[AWL=0.260, 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 9g8AY-Vi7KbN for <multipathtcp@core3.amsl.com>; Wed, 25 Nov 2009 11:15:23 -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 647673A6B1E for <multipathtcp@ietf.org>; Wed, 25 Nov 2009 11:15:23 -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 345124C0DE; Thu, 26 Nov 2009 04:15:14 +0900 (JST)
Date: Thu, 26 Nov 2009 04:15:14 +0900
Message-Id: <20091126.041514.183027096.nishida@sfc.wide.ad.jp>
To: Michael.Tuexen@lurchi.franken.de
From: Yoshifumi Nishida <nishida@sfc.wide.ad.jp>
In-Reply-To: <A4C2D3B1-B24B-464D-B7C0-D5D7498F6566@lurchi.franken.de>
References: <C622F375-EE67-46AE-AC28-6617CFEF6D12@lurchi.franken.de> <20091125.091414.57515028.nishida@sfc.wide.ad.jp> <A4C2D3B1-B24B-464D-B7C0-D5D7498F6566@lurchi.franken.de>
X-Mailer: Mew version 6.2 on Emacs 22.1 / Mule 5.0 (SAKAKI)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
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 19:15:24 -0000

Hello Michael, 

From: Michael Tüxen <Michael.Tuexen@lurchi.franken.de>
Subject: Re: [multipathtcp] Multipath Address Family
Date: Wed, 25 Nov 2009 19:20:56 +0100
Message-ID: <A4C2D3B1-B24B-464D-B7C0-D5D7498F6566@lurchi.franken.de>

 > >> just one note:
 > >> In SCTP we use sctp_connectx() to connect to multiple addresses.
 > >> Kacheong pointed a couple of years ago out that a more generic
 > >> connectx() would make sense to other protocols supporting multihoming
 > >> as well (but there were no).
 > > 
 > > Just curiosity, do you know the reason why generic connectx() doesn't exist? 
 > > it make sense to me since the call looks independent from sctp.
 > Because we were not sure what the right semantic would be:
 > 1. For SCTP (or other protocols supporting multihoming), we wanted something
 >    like "establish a transport connection with the peer having *all* given addresses.
 > 2. For TCP (or other protocols not supporting multihoming), we though something
 >    like "establish a transport connection with a peer having *one* of the given addresses.
 > This is very different. We also assume that if the user provides multiple address,
 > all the addresses belong the the *same* host. This makes it impossible to use
 > DNS for getting them...

Thanks for the clarification. But, I still have a question... Do we have to
connect all given addresses?
If connectx() sends multiple SYNs simultaneously to the multiple destinations,
it will be problematic. But, if connectx() has the following logic,
  it tries to send a SYN one-by-one to each destination
  it gets SYN-ACK, it stops to send a SYN and return.
I don't see a big issue in the logic. It may be slow in some cases, though. 
I mean, connectx() is used only to find one primary destination. Other destinations
will be found during negotiations in the transport protocol. Not from connectx().
--
Yoshifumi Nishida
nishida@sfc.wide.ad.jp