[multipathtcp] Multipath deployment and fate sharing

Costin Raiciu <c.raiciu@cs.ucl.ac.uk> Wed, 25 November 2009 10:39 UTC

Return-Path: <c.raiciu@cs.ucl.ac.uk>
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 683653A69BF for <multipathtcp@core3.amsl.com>; Wed, 25 Nov 2009 02:39:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.399
X-Spam-Level:
X-Spam-Status: No, score=-3.399 tagged_above=-999 required=5 tests=[AWL=-0.800, 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 jujU0JVTigy3 for <multipathtcp@core3.amsl.com>; Wed, 25 Nov 2009 02:39:08 -0800 (PST)
Received: from bells2.cs.ucl.ac.uk (bells2.cs.ucl.ac.uk [128.16.5.33]) by core3.amsl.com (Postfix) with ESMTP id 605FD3A6811 for <multipathtcp@ietf.org>; Wed, 25 Nov 2009 02:39:07 -0800 (PST)
Received: from blackie2.cs.ucl.ac.uk ([128.16.68.58]) by bells2.cs.ucl.ac.uk with esmtpsa (TLSv1:AES128-SHA:128) (C.Raiciu authenticated) (Exim 4.54) id 1NDFAJ-000Fvk-BJ for multipathtcp@ietf.org; Wed, 25 Nov 2009 10:32:03 +0000
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Apple Message framework v1077)
From: Costin Raiciu <c.raiciu@cs.ucl.ac.uk>
In-Reply-To: <alpine.DEB.2.00.0911250428590.23603@ayourtch-lnx.stdio.be>
Date: Wed, 25 Nov 2009 10:39:00 +0000
Content-Transfer-Encoding: quoted-printable
Message-Id: <BE063B0C-BB34-4C75-A57E-1BAB0BE6780A@cs.ucl.ac.uk>
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> <48DA092B-F3BC-432E-A199-B265DDED39DA@iki.fi> <3c3e3fca0911240434p4d95ec7an34615ae218faa4f@mail.gmail.com> <C622F375-EE67-46AE-AC28-6617CFEF6D12@lurchi.franken.de> <BF345F63074F8040B58C00A186FCA57F1C65FB29B9@NALASEXMB04.na.qualcomm.com> <4B0C607A.6060503@isi.edu> <BF345F63074F8040B58C00A186FCA57F1C65FB29C0@NALASEXMB04.na.qualcomm.com> <4B0C6590.9010000@isi.edu> <BF345F63074F8040B58C00A186FCA57F1C65FB29C6@NALASEXMB04.na.qualcomm.com> <4B0C6C13.2060103@isi.edu> <BF345F63074F8040B58C00A186FCA57F1C65FB29CB@NALASEXMB04.na.qualcomm.com> <4B0C6FBE.40003@isi.edu> <alpine.DEB.2.00.0911250211520.23603@ayourtch-lnx.stdio.be> <alpine.DEB.2.00.0911250428590.23603@ayourtch-lnx.stdio.be>
To: "multipathtcp@ietf.org List" <multipathtcp@ietf.org>
X-Mailer: Apple Mail (2.1077)
Subject: [multipathtcp] Multipath deployment and fate sharing
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 10:39:09 -0000

Hi,

I have been thinking about this for a bit now, and have chatted with various people from different OSes. 
Murari (from Microsoft) said that they will probably not turn multipath on by default at first release; apps wll be able to use it, but will need to opt in. This will give app writers a chance to update their apps for multipath - since the apps that break are likely a small subset, it seems it will be possible to upgrade these given the time window between OS releases. I would guess most other OSes would do the same in the initial release. So, by default, client hosts will not have multipath "on".

Let's consider mobiles. This is where multipath is badly needed for supporting connection handover between interfaces. Here most of the apps typically run as high level managed code - mostly for security reasons; I bet one can change the stack without breaking these apps even if multipath is on by default. The low level apps that would break are already written mostly by the company running the OS - hence will be natural to upgrade. 
In short, I think multipath could be turned on by default for mobiles, if the mobile providers want this.

Finally, servers: Linux currently has ecn turned on by default for servers, and off on clients. I would assume the same could hold for multipath. This would ensure that initially mobiles can talk multipath to servers, but standard client-server communication is unipath. 

This deployment model seems natural to me, as it gives the much needed benefits to mobiles immediately, and allows the more mature desktop market to slowly sink in multipath.

Coming back to fate sharing of multipath connection and initial subflow: I would assume fate sharing will be a sysctl flag on the host, telling the stack whether the connection should go down or not with the first subflow. I imagine three settings here:
a) connection doesn't go down with first subflow
b) connection dies when local interface dies
c) connection dies when subflow times out (this implies b)

As long as the protocol itself does not make assumptions about fate sharing, the endpoints can do whatever local policy says.  I would imagine mobiles will do policy a), servers can probably do policy b), and clients c) - assuming it is hardest to tell what apps break on client hosts (the apps that use TCP to test path properties will break so they would like c).

I think the combination of these two choices (multipath on/off + fate sharing policy) allows everyone to get what they want, when they want.

Thoughts?
Costin