Re: [multipathtcp] Multipath deployment and fate sharing

Joe Touch <touch@ISI.EDU> Mon, 14 December 2009 17:40 UTC

Return-Path: <touch@ISI.EDU>
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 8D30C3A6A13 for <multipathtcp@core3.amsl.com>; Mon, 14 Dec 2009 09:40:27 -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=[AWL=0.000, 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 3C6osyLc1fpZ for <multipathtcp@core3.amsl.com>; Mon, 14 Dec 2009 09:40:26 -0800 (PST)
Received: from vapor.isi.edu (vapor.isi.edu [128.9.64.64]) by core3.amsl.com (Postfix) with ESMTP id 9122F3A68F9 for <multipathtcp@ietf.org>; Mon, 14 Dec 2009 09:40:26 -0800 (PST)
Received: from [75.212.111.146] (146.sub-75-212-111.myvzw.com [75.212.111.146]) (authenticated bits=0) by vapor.isi.edu (8.13.8/8.13.8) with ESMTP id nBEHcs1R008637 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 14 Dec 2009 09:39:00 -0800 (PST)
Message-ID: <4B26782D.9080907@isi.edu>
Date: Mon, 14 Dec 2009 09:38:53 -0800
From: Joe Touch <touch@ISI.EDU>
User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
MIME-Version: 1.0
To: Iljitsch van Beijnum <iljitsch@muada.com>
References: <E9EE0C1A-C9D3-4EBC-97FD-E1B1628CD2E7@iki.fi> <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> <BE063B0C-BB34-4C75-A57E-1BAB0BE6780A@cs.ucl.ac.uk> <4B0D52D5.9090403@isi.edu> <58B2A4B2-F276-4E96-87FB-F8273FD78ED0@muada.com>
In-Reply-To: <58B2A4B2-F276-4E96-87FB-F8273FD78ED0@muada.com>
X-Enigmail-Version: 0.96.0
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Cc: "multipathtcp@ietf.org List" <multipathtcp@ietf.org>
Subject: Re: [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: Mon, 14 Dec 2009 17:40:27 -0000

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1



Iljitsch van Beijnum wrote:
...
> I agree that if a host loses an address, it should no longer send
> packets that use that address in some way. So in the multiaddress MPTCP
> case that means a subflow that uses that address will have to be
> terminated when the address is removed. Note though, that some systems
> remove addresses when the interface goes down. That in itself is no
> reason to release the address. If a DHCP server or RA indicates that an
> address may be used for X amount of time, you get to keep it X amount of
> time, even if connectivity goes away, temporarily or difinitively, at
> some point.

DHCP assignments shouldn't override explicit interface actions.

> But then the question is: what happens to other subflows?
> 
> My answer: "if a tree falls in the forest, and all the people in the
> forest are wearing headphones at maximum volume, did the tree fall?"
> 
> The problem with a socket option to indicate care is that it's going
> to take a long time for all apps to use this socket option, and we still
> need a default behavior. 

IMO, you need to make the assumption that causes the least amount of
chnage to existing apps. I understand why you want to call this TCP and
use TCP's protocol number, but that comes with this cost.

> I don't think it makes sense to make the
> default behavior "care" because then you have to go out of your way to
> not care, which by definition people don't do. Especially since it
> requires thinking about how to set a socket option that will be unknown
> on some systems for portable applications.

Yes - that's exactly the cost of playing with TCP.

> However, we can deduce that applications care if they bind to a
> specific address, or look up the address tied to the remote end of an
> incoming session. If neither happens subflows can continue without trouble.

Not sure this is sufficient. You can bind to a set of addresses (or
ANY), and still care that the IP address doesn't change (e.g., in-band
info can be IP-address specific, such as access control, etc.).

...
> Another class of applications is those that care about the addresses,
> but are not bothered by change. For instance, I may log that I'm talking
> to 192.0.2.1 but then when that address goes down and communication
> continues using 10.0.0.1, I simply log the address addition/change and
> all is well.

This presumes that you know the purpose of a log. If the log is just
informational, the above may be true. But if the log is used to verify
access, or to coordinate future responses, just knowing it's logged to a
file isn't sufficient.

> So I think what we need:
> 
> - mechanism to indicate that a session is bound to an address

I think you need the negative of this, i.e., to find out whether a
session is NOT bound to an address, that can respond, YES, NO, or DON'T
KNOW (which should behave like YES).

> - mechanism to indicate that an address has been removed
> - mechanism to indicate "no address agility" (default = agility)

As above, default = no agility.

> - mechanism to indicate "no MPTCP" (default = MPTCP)

Under what conditions would you want to set "no MPTCP"? If you think it
will ever change TCP semantics, then the default needs to be "no MPTCP".
If not, then why do you ever need this option?

> Note that "no address agility" and "MPTCP" means that you can have
> additional subflows using additional addresses, but only as long as the
> primary addresses have reachability. I think this is similar to MIPv6,
> where you need to return to the HoA at certain intervals.
> 
> I don't think it's appropriate to explicitly track interface status
> in TCP. If the packets get there you're up, if they don't you time
> out eventually and then presumably you're down.

See RFC1122 Sec 3.3.4.3, which explicitly ties the transport selection
of a source address to an address selected based on the state of the
interface. I.e., your assertion changes an existing standard.

Joe
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)

iEYEARECAAYFAksmeC0ACgkQE5f5cImnZrvmEACg7IxWzPLnWygF5rjh+2VfdMuV
sTsAoKpJpA9rlMZUUwE/R5IHEf+nPw2t
=8L7B
-----END PGP SIGNATURE-----