Re: [multipathtcp] AD Review: draft-ietf-mptcp-architecture-03
Lars Eggert <lars.eggert@nokia.com> Tue, 11 January 2011 08:48 UTC
Return-Path: <lars.eggert@nokia.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 886FA3A6A17 for <multipathtcp@core3.amsl.com>; Tue, 11 Jan 2011 00:48:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -108.623
X-Spam-Level:
X-Spam-Status: No, score=-108.623 tagged_above=-999 required=5 tests=[AWL=1.976, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8, USER_IN_WHITELIST=-100]
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 x0zLJ8n-Rf-C for <multipathtcp@core3.amsl.com>; Tue, 11 Jan 2011 00:48:10 -0800 (PST)
Received: from mgw-da01.nokia.com (mgw-da01.ext.nokia.com [147.243.128.24]) by core3.amsl.com (Postfix) with ESMTP id F3F893A69BF for <multipathtcp@ietf.org>; Tue, 11 Jan 2011 00:48:09 -0800 (PST)
Received: from mail.fit.nokia.com (esdhcp030222.research.nokia.com [172.21.30.222]) by mgw-da01.nokia.com (Switch-3.4.3/Switch-3.4.3) with ESMTP id p0B8oNGE016113 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for <multipathtcp@ietf.org>; Tue, 11 Jan 2011 10:50:24 +0200
From: Lars Eggert <lars.eggert@nokia.com>
X-Virus-Status: Clean
X-Virus-Scanned: clamav-milter 0.96.5 at fit.nokia.com
Mime-Version: 1.0 (Apple Message framework v1082)
Content-Type: multipart/signed; boundary="Apple-Mail-38-748524264"; protocol="application/pkcs7-signature"; micalg="sha1"
Date: Tue, 11 Jan 2011 10:50:20 +0200
In-Reply-To: <01157F64-007A-4D31-8C5D-2119BD701A2E@nokia.com>
To: "multipathtcp@ietf.org Mailing List" <multipathtcp@ietf.org>
References: <01157F64-007A-4D31-8C5D-2119BD701A2E@nokia.com>
Message-Id: <4EBBBB31-9739-4283-8F90-2ABAF133C4C2@nokia.com>
X-Mailer: Apple Mail (2.1082)
X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.6 (mail.fit.nokia.com); Tue, 11 Jan 2011 10:50:20 +0200 (EET)
X-Nokia-AV: Clean
Subject: Re: [multipathtcp] AD Review: draft-ietf-mptcp-architecture-03
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, 11 Jan 2011 08:48:11 -0000
I put this ID on the IESG agenda for next week. Can you ASAP do a quick rev that fixes some of the nits below? On 2010-12-17, at 14:01, Lars Eggert wrote: > Summary: good to go. > > I'll start the IETF last call. Please take the comments below as last-call comments. I will make this last call longer than normal, due to the holiday season. > > Lars > > > Section 1., paragraph 2: >> By the application of resource pooling[3], these available resources > > Nit: s/pooling[3]/pooling [3]/ (also check other reference citations > for a missing space before them) > > > Section 1.2., paragraph 0: >> 1.2. Terminology > > I'd be somewhat useful to reorder the terms such that definitions > appear before they are used, as much as possible. > > > Section 1.2., paragraph 2: >> Path Identifier: Within the context of a multi-addressed multipath >> TCP, a path is defined by the source and destination (address, >> port) pairs (i.e. a 4-tuple). > > Why is a Path identified by something that includes port numbers? > Because of ECMP? > > > Section 1.2., paragraph 6: >> Subflow: A flow of TCP packets operating over an individual path, >> which forms part of a larger Multipath TCP connection. > > s/packet/segment/ (please check this throughout the document, "packet" > is often used where "segment" is meant) > > > Section 1.3., paragraph 4: >> The scenario could have any number of addresses (1 or more) on each >> host, so long as the number of paths available between the two hosts >> is 2 or more (i.e. num_addr(A) * num_addr(B) > 1). The paths created >> by these address combinations through the Internet need not be >> entirely disjoint - shared bottlenecks will be addressed by the >> Multipath TCP congestion controller. > > "will be addressed" is imprecise. Maybe: "potential fairness issues > introduced by joint bottlenecks need to be handled by..." > > > Section 1.3., paragraph 5: >> Furthermore, the paths through >> the Internet may be interrupted by any number of middleboxes >> including NATs and Firewalls. > > Middleboxes don't really "interrupt" a path. Maybe rephrase with "are > present"? > > > Section 1.3., paragraph 6: >> Finally, although the diagram refers >> to the Internet, Multipath TCP may be used over any network where >> there are multiple paths that could be used concurrently. > > Not sure if there is much value in mentioning this. (Plus, we do > assume an _IP_ network.) > > > Section 2.1., paragraph 3: >> o Improve Resilience: Multipath TCP MUST support the use of multiple >> paths interchangeably for resilience purposes, by permitting >> packets to be sent and re-sent on any available path. > > I think you mean "segments" (i.e., chunks of the bytestream) here, and > not IP packets. > > > Section 2.1., paragraph 5: >> As distribution of traffic among available paths and responses to >> congestion are done in accordance with resource pooling >> principles[3], a secondary effect of meeting these goals is that >> widespread use of Multipath TCP over the Internet should optimize >> overall network utility by shifting load away from congested >> bottlenecks and by taking advantage of spare capacity wherever >> possible. > > s/optimize/improve/ (it won't be optimal unless there is global > deployment *and* the mechanism itself is optimal) > > > Section 2.2.1., paragraph 3: >> A multipath-capable equivalent of TCP SHOULD retain backward >> compatibility with existing TCP APIs, so that existing applications >> can use the newer transport merely by upgrading the operating systems >> of the end-hosts. > > Any reason why this is not a MUST? I think this is critical; otherwise > we'd already have seen widespread use of SCTP. > > > Section 2.2.2., paragraph 1: >> In the traditional Internet architecture, network devices operate at >> the network layer and lower layers, with the layers above the network >> layer instantiated only at the end-hosts. While this architecture, >> shown in Figure 2, was initially largely adhered to, this layering no >> longer reflects the "ground truth" in the Internet with the >> proliferation of middleboxes[8]. Middleboxes routinely interpose on >> the transport layer; sometimes even completely terminating transport >> connections, thus leaving the application layer as the first real >> end-to-end layer, as shown in Figure 3. > > And even application level protocols often define roles for > intermediaries, e.g., SIP and HTTP. > > > Section 2.4., paragraph 1: >> standardised. The de facto standard stream-based transport protocol > > s/de facto standard/by far most widely used/ (TCP *is* of course a > standard...) > > > Section 3., paragraph 7: >> behaving as a TCP flow in network, is an instantiation of the > > Nit: s/in network/in the network/ > > > Section 4., paragraph 10: >> shared bottlneck. An algorithm to support this is specified in > > Nit: s/bottlneck./bottleneck./ > > > Section 4., paragraph 12: >> own sequence number, acks, and passes them to network. The receiving > > Nit: s/acks,/ACKs,/ > > > Section 5.1., paragraph 3: >> receiver must determine how subflow-level data (carying subflow > > Nit: s/(carying/(carrying/ > > > Section 5.1., paragraph 6: >> be permissable for the mapping to be sent periodically and cover more > > Nit: s/permissable/permissible/ > > > Section 5.2., paragraph 2: >> to-end semantics. It means that once a packet is acked at the > > Nit: s/acked/ACKed/ > > > Section 5.2., paragraph 4: >> a subflow traversing a transparent proxy: if the proxy acks a segment > > Nit: s/acks/ACKs/ > > > Section 5.2., paragraph 6: >> Therefore, to provide a fully robust multipath TCP solution, MPTCP >> SHOULD feature explicit connection-level acknowledgements, in > > After all of this argumentation in the previous paragraphs, why is > this not a MUST? Esp. since in the first paragraph you already say > "MPTCP features..." which in essence is a MUST. > > > Section 5.2., paragraph 10: >> maintain subflow integrity, as per the network compatiblity goal. By > > Nit: s/compatiblity/compatibility/ > > > Section 5.2., paragraph 11: >> doing this, throughput will be wasted, and it is unclear at this >> point what the optimal retransmit strategy is. > > I think "throughput will be wasted" sounds too harsh. Maybe "some > efficiency is lost"? > > > Section 5.3., paragraph 6: >> The resulting buffer size should be small enough for practical use. >> However, there may be extreme cases where fast, high throughput paths >> (e.g. 100Mb/s, 10ms RTT) are used in conjunction with slow paths >> (e.g. 1Mb/s, 1000ms RTT). In that case the required receive buffer >> would be 12.5MB, which is likely too big. In these cases a Multipath >> TCP scheduler SHOULD use only the fast path, potentially falling back >> to the slow path if the fast path fails. > > Please rephrase the last sentence so that it not specific to the > example given, since we're trying to state a general rule here. Maybe: > "it may be prudent to only use some of the fastest available paths for > the MPTCP connection" or something like that > > > Section 5.4., paragraph 3: >> The MPTCP protocol design will, however, use TCP Options for this >> additional signalling. This has been chosen as the mechanism most >> fitting in with the goals as specified in Section 2. > > Aside: Instead of using several different TCP Option numbers, I wonder > if we can use one TCP Option Number for MPTCP and disambiguate based > on the Length field what kind of MPTCP option we have? (Assuming all > our different option kinds have different lengths...) > > > Section 5.5., paragraph 1: >> Currently, the network does not expose multiple paths between hosts. > > This isn't really capturing it. The network *does* expose this, *if* > the paths begin and end at different IP addresses. I think you mean > that the network doesn't expose the availability of path diversity *in > the network* for paths between the same two IP addresses. > > > Section 5.5., paragraph 2: >> that these paths, whilst not necesarily entirely non-overlapping, > > Nit: s/necesarily/necessarily/ > > > Section 5.5., paragraph 4: >> Multiple different (source, destination) address pairs will thus be >> used as path selectors in most cases. Each path will be identified >> by a TCP 4-tuple (i.e. source address, destination address, source >> port, destination port), however, which can allow the extension of >> MPTCP to use such 4-tuples as path selectors. This will allow hosts >> to use MPTCP to load balance to different ports, for example if the >> network routes different ports over different paths (which may be the >> case with technologies such as Equal Cost MultiPath (ECMP) routing >> [16]). > > So actually, you use a five-tuple, it's just that the protocol number > component is always 6 (TCP) in our case. There are ECMP schemes where > the resulting paths are different when only the protocol number > component is different. I'd prefer if we could talk about five-tuples > and path IDs, since paths are not usually something that is specific > to one transport protocol. (And you actually do already talk about > five-tuples in the next section...) > > > Section 5.5., paragraph 6: >> The modularity of path management will permit alternative mechanisms >> to be employed if appropriate in the future. > > What modularity of path management? Nothing in this section so far > talks about modularity. Suggest to drop this paragraph. > > > Section 5.8., paragraph 11: > >> o The desire to support a 'break-before-make' (as well as a 'make- >> before-break') approach to adding subflows implies that a host >> cannot rely on using a pre-existing subflow to support the >> addition of a new one. > > But I don't think we want to support "unlimited" break-before-make, > i.e., just because we had the connection up yesterday doesn't mean I > should still be able to join a new first flow into it today. In other > words, we want to support break-before-make for some limited amount of > break time only. > > > Section 7., paragraph 3: >> just basic datagram delivery. A miriad of middleboxes are deployed > > Nit: s/miriad/myriad/ > > > Section 7., paragraph 15: >> o Segmentation and Colescing: middleboxes (or even something as > > Nit: s/Colescing:/Coalescing:/ > > > Section 12.2., paragraph 7: >> [9] Carpenter, B., "Internet Transparency", RFC 2775, >> February 2000. > > Unused Reference: '9' is defined on line 1108, but no explicit > reference was found in the text > > > _______________________________________________ > multipathtcp mailing list > multipathtcp@ietf.org > https://www.ietf.org/mailman/listinfo/multipathtcp
- [multipathtcp] AD Review: draft-ietf-mptcp-archit… Lars Eggert
- Re: [multipathtcp] AD Review: draft-ietf-mptcp-ar… Sébastien Barré
- Re: [multipathtcp] AD Review: draft-ietf-mptcp-ar… Lars Eggert
- Re: [multipathtcp] AD Review: draft-ietf-mptcp-ar… Ford, Alan