Re: [multipathtcp] High-level design decisions /architecture
Scott Brim <scott.brim@gmail.com> Tue, 03 November 2009 15:17 UTC
Return-Path: <scott.brim@gmail.com>
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 1C65128C0F6 for <multipathtcp@core3.amsl.com>; Tue, 3 Nov 2009 07:17:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.551
X-Spam-Level:
X-Spam-Status: No, score=-2.551 tagged_above=-999 required=5 tests=[AWL=0.048, 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 TC4K8M4jpPEQ for <multipathtcp@core3.amsl.com>; Tue, 3 Nov 2009 07:17:47 -0800 (PST)
Received: from mail-qy0-f203.google.com (mail-qy0-f203.google.com [209.85.221.203]) by core3.amsl.com (Postfix) with ESMTP id CD4953A659B for <multipathtcp@ietf.org>; Tue, 3 Nov 2009 07:17:46 -0800 (PST)
Received: by qyk41 with SMTP id 41so3011967qyk.29 for <multipathtcp@ietf.org>; Tue, 03 Nov 2009 07:18:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :x-enigmail-version:content-type:content-transfer-encoding; bh=lDYQFvYIJMbyL+N36vlcYu6DwDFKUxBFd/NQk9IB1LY=; b=R9M/d+2rj4BT9ms80vwiW9DCsHX3BqDJYGiiHiuN7sHssGonloV8r6vjeQJyJgUFUl 8tc+pzTHx/5GhcaQ47HnGOpBxqFN9J2Pab87fsU/Zme6S1HHz20TPV0Do1v63ttC8o9F ShEQrvUWxTvwwAZFgUGykDuXtQZTnpSg0rlxg=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:x-enigmail-version:content-type :content-transfer-encoding; b=pMBcfEo3R4S+WPsxokVBXEda2FwMYtV4jyKOtnmhOcYAQeE2I0jtQYC2iI5mSrhezK v/8IaDetMBMiJB6VQa5GaQFsY4Yt96hZ+DbFyb0KK/CXS1EvHej6aKRGTU2u6enRZk/U QDA9+bMNhIPWFBwGXg6PE69yof2Llm026yAcw=
Received: by 10.224.44.77 with SMTP id z13mr58957qae.195.1257261484326; Tue, 03 Nov 2009 07:18:04 -0800 (PST)
Received: from sbrim-mbp.local (198-135-0-233.cisco.com [198.135.0.233]) by mx.google.com with ESMTPS id 20sm100982qyk.13.2009.11.03.07.18.02 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 03 Nov 2009 07:18:03 -0800 (PST)
Message-ID: <4AF049A8.2060501@gmail.com>
Date: Tue, 03 Nov 2009 10:18:00 -0500
From: Scott Brim <scott.brim@gmail.com>
User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812)
MIME-Version: 1.0
To: philip.eardley@bt.com
References: <4A916DBC72536E419A0BD955EDECEDEC06363A62@E03MVB1-UKBR.domain1.systemhost.net>
In-Reply-To: <4A916DBC72536E419A0BD955EDECEDEC06363A62@E03MVB1-UKBR.domain1.systemhost.net>
X-Enigmail-Version: 0.96.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Cc: multipathtcp@ietf.org
Subject: Re: [multipathtcp] High-level design decisions /architecture
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: Tue, 03 Nov 2009 15:17:48 -0000
philip.eardley@bt.com allegedly wrote on 11/02/2009 12:47 PM: > Protocol-related > > ============ > > * IPv4 & IPv6 will have the same high-level design > o [Comment: the Charter implies both v4 & v6 are in scope] > * The MPTCP connection is identified, from an apps perspective, by > the addresses associated with the original path (even if that > subflow /path closes) ... for a legacy API. An up-to-date API, with extensions, MUST have a way of identifying the connection which is independent of addresses. > * A SYN/ ACK exchange (on a single path) checks that both ends > support MPTCP, with automatic fall-back to TCP if not > * each MPTCP subflow looks exactly like an ordinary, semantically > independent TCP flow. MPTCP effectively runs on top. So > re-transmission, FINs etc are independent on each subflow retransmission must be sub-flow specific for the moment but we know that can slow things down so we should actively investigate ways of retransmitting on any sub-flow. > * control of the MPTCP connection (as opposed to the subflows) is > carried in TCP options, eg DATA FIN for closing an MPTCP connection > * the protocol involves an MPTCP stack at both ends of the MPTCP > connection > o [Comment: this is in our charter] > * Either end of the MPTCP connection can add or remove paths to/from > the MPTCP connection > o [Comment / Question: this seemed a bit unclear in the > protocol i-d, but is presumably required?] Yes, the protocol must support this. However, as a meta-issue ... I suggest that "path" is good for marketing but not technically exact. An endpoint can even have multiple addresses associated with a single interface. Both of them can. We should figure out how to restrict the use of "path" to contexts where its use is accurate. > * Subflow end point definition > o [Question: Should we allow subflows in a single MPTCP > connection to have different ports?] Don't know. > Congestion algorithm > > =============== > > * the goals are: [1] MPTCP is at least as good as TCP would be on > the best subflow path; This is a hard one. One use for multipath transport is in environments where the network situation is (ahem) "dynamic", so it is difficult to maintain a connection using a single src/dst address pair. In this case, if there are problems then multipath transport is certainly better, but if one of the paths is clean, then just using that path for a simple TCP gets better goodput then MPTCP would, trying to use that path plus some poor ones in addition. Let's try to find some better wording at the meeting. > [2] on any path, an MPTCP connection uses > less (or the same) capacity as a TCP connection would do; [3] > MPTCP moves traffic off more congested paths and onto less > congested ones > * increases in the congestion windows of the subflows are coupled; > for decreases in the congestion windows, each subflow does new > reno independently (ie they are not coupled) > * slow start, fast re-transmit and fast recovery are the same as > RFC5681 > > API > === > > * no changes to existing apps are needed to use MPTCP; MPTCP uses > the unaltered TCP socket API > * There is an optional, extended API > o [Question: would both ends need the extended API , with a > fall-back if not?] > o [Comment: presumably the actual features of the extended API > are outside the initial high-level design decisions] Agree with all. > * congestion control state is shared among application-visible > transport instances (eg multiple HTTPs between the same pair of > hosts) How do you arrange for this? Currently, if a single app has multiple HTTPs running, each one has independent congestion control state. HTTP in this case is the "client layer" of transport, so each HTTP would be an independent client, each getting its own independent MPTCP state. No? > * 3 application profiles are mentioned (Bulk data transport, > Latency-sensitive transport with overflow, Latency-sensitive > transport with hot stand by) > o [Question: how are these supported? Is a negotiation > mechanism needed?] > > Security > > ====== > * exchange a token in the initial SYN for the MPTCP connection, and > include the token when subflows /paths are added to the connection > o [Question: Is the same token used whether the sender or > receiver (of the MPTCP connection) adds the subflow? Is the > same technique used for removing subflows? And closing > connections, ie DATA FIN?] > * security mechanisms will not interfere with end-to-end > authentication etc and will be compatible with legacy middleboxes The last bullet is difficult because some legacy middleboxes will not allow unknown TCP options. I don't know anything about modularity :-) Thanks ... Scott > Modularity > > ======== > > · the architecture has 2 components, multipath scheduler & path > manager – meaning that improved /different modules of each can be > slotted in > > o [Comment: it is unclear from the Architecture i-d how the > congestion control & protocol i-ds map to these components; some of the > text (strangely?) appears in a section about implementation] > > o [Question: what are the mechanisms for evolvability? How is it > negotiated which new module (for congestion control or path manager) to > use?] > > o [Question: this would seem to imply we need to define an > interface between the modules?] > > · there is a default path manager module, meaning it is the > MUST fall-back option > > o [Comment: the charter restricts us - the path manager we work > on will distinguish paths by multiple addresses]
- [multipathtcp] High-level design decisions /archi… philip.eardley
- Re: [multipathtcp] High-level design decisions /a… marcelo bagnulo braun
- Re: [multipathtcp] High-level design decisions /a… William Herrin
- Re: [multipathtcp] High-level design decisions /a… marcelo bagnulo braun
- Re: [multipathtcp] High-level design decisions /a… William Herrin
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Mark Handley
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Lars Eggert
- Re: [multipathtcp] High-level design decisions /a… Yoshifumi Nishida
- [multipathtcp] This shim6 part of the answer (was… marcelo bagnulo braun
- [multipathtcp] The MPTCP part (was Re: High-level… marcelo bagnulo braun
- Re: [multipathtcp] High-level design decisions /a… marcelo bagnulo braun
- Re: [multipathtcp] High-level design decisions /a… Scott Brim
- Re: [multipathtcp] High-level design decisions /a… Scott Brim
- Re: [multipathtcp] High-level design decisions /a… Scott Brim
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Costin Raiciu
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Mark Handley
- Re: [multipathtcp] High-level design decisions /a… Costin Raiciu
- Re: [multipathtcp] High-level design decisions /a… Costin Raiciu
- Re: [multipathtcp] High-level design decisions /a… Ford, Alan
- Re: [multipathtcp] High-level design decisions /a… Ford, Alan
- Re: [multipathtcp] High-level design decisions /a… Ford, Alan
- Re: [multipathtcp] High-level design decisions /a… Scott Brim
- Re: [multipathtcp] High-level design decisions /a… marcelo bagnulo braun
- Re: [multipathtcp] High-level design decisions /a… William Herrin
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Yoshifumi Nishida
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Mark Handley
- Re: [multipathtcp] High-level design decisions /a… Ford, Alan
- Re: [multipathtcp] High-level design decisions /a… Ford, Alan
- Re: [multipathtcp] High-level design decisions /a… Yoshifumi Nishida
- Re: [multipathtcp] High-level design decisions /a… Costin Raiciu
- Re: [multipathtcp] High-level design decisions /a… philip.eardley
- Re: [multipathtcp] High-level design decisions /a… Lars Eggert
- Re: [multipathtcp] High-level design decisions /a… William Herrin
- Re: [multipathtcp] High-level design decisions /a… Yoshifumi Nishida
- Re: [multipathtcp] High-level design decisions /a… Scott Brim
- Re: [multipathtcp] High-level design decisions /a… Costin Raiciu
- Re: [multipathtcp] High-level design decisions /a… Yoshifumi Nishida
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… William Herrin
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… William Herrin
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… William Herrin
- Re: [multipathtcp] High-level design decisions /a… Joe Touch