Re: [multipathtcp] WG Last Call for draft-ietf-mptcp-rfc6824bis

Christoph Paasch <cpaasch@apple.com> Wed, 18 July 2018 14:45 UTC

Return-Path: <cpaasch@apple.com>
X-Original-To: multipathtcp@ietfa.amsl.com
Delivered-To: multipathtcp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 137791311C1 for <multipathtcp@ietfa.amsl.com>; Wed, 18 Jul 2018 07:45:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.31
X-Spam-Level:
X-Spam-Status: No, score=-4.31 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Fn5woG6RBa8B for <multipathtcp@ietfa.amsl.com>; Wed, 18 Jul 2018 07:45:31 -0700 (PDT)
Received: from mail-in2.apple.com (mail-out2.apple.com [17.151.62.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D000B131192 for <multipathtcp@ietf.org>; Wed, 18 Jul 2018 07:45:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; d=apple.com; s=mailout2048s; c=relaxed/simple; q=dns/txt; i=@apple.com; t=1531925131; x=2395838731; h=From:Sender:Reply-To:Subject:Date:Message-id:To:Cc:MIME-version:Content-type: Content-transfer-encoding:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-reply-to:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=zo6Yr5f1Gy7+Esb3ID+3BnjR04/ZOBvEKCmYF7tIROo=; b=cyVue069G/mnZSeeLuk5ESMZZIxaXDRSptATeBMwcleREoebXBIe6NlWUrWCKIDM xPkA6ceOs8x1UM8roPxlbazNh48gKL9T0sbTB+U+n9VT4mhYl37mQ77N5m6uLHrE vYJX5mDFOqMl75RM5TNobrzhy+IuBGrVRMcwE4/kUXoCV8pYI0uXoZkfctfbfo70 skhV1Nb8wc3NcWxwOqoqGf+5yMcW1rdWa0f5n9DTCCEtgaq//teuRM3TfX4nGTZ6 q8xFjecFlFw6Os3HAhP+wyitE5P8F3poh2PPVTma53gqI4qucpJ8FS3Yj3eVHOC+ TWMqcLABmcySSSW82j08Lw==;
X-AuditID: 11973e11-4fbff70000005b22-93-5b4f528b00fb
Received: from mr2-mtap-s03.rno.apple.com (mr2-mtap-s03.rno.apple.com [17.179.226.135]) (using TLS with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mail-in2.apple.com (Apple Secure Mail Relay) with SMTP id 34.18.23330.B825F4B5; Wed, 18 Jul 2018 07:45:31 -0700 (PDT)
MIME-version: 1.0
Content-transfer-encoding: 7bit
Content-disposition: inline
Content-type: text/plain; CHARSET="US-ASCII"
Received: from nwk-mmpp-sz11.apple.com (nwk-mmpp-sz11.apple.com [17.128.115.155]) by mr2-mtap-s03.rno.apple.com (Oracle Communications Messaging Server 8.0.2.3.20180614 64bit (built Jun 14 2018)) with ESMTPS id <0PC2009JYGZVDW00@mr2-mtap-s03.rno.apple.com>; Wed, 18 Jul 2018 07:45:31 -0700 (PDT)
Received: from process_viserion-daemon.nwk-mmpp-sz11.apple.com by nwk-mmpp-sz11.apple.com (Oracle Communications Messaging Server 8.0.2.3.20180614 64bit (built Jun 14 2018)) id <0PC200A00GIOB900@nwk-mmpp-sz11.apple.com>; Wed, 18 Jul 2018 07:45:31 -0700 (PDT)
X-Va-A:
X-Va-T-CD: 858e2f4dae29a6016c98c8320829244c
X-Va-E-CD: 3bbd785c51ace3f981efd92bc4e82048
X-Va-R-CD: 2b9cdb0e57a359d759a3675f8c35d2a7
X-Va-CD: 0
X-Va-ID: ea287e4c-592b-41c5-9735-808627408c7c
X-V-A:
X-V-T-CD: 858e2f4dae29a6016c98c8320829244c
X-V-E-CD: 3bbd785c51ace3f981efd92bc4e82048
X-V-R-CD: 2b9cdb0e57a359d759a3675f8c35d2a7
X-V-CD: 0
X-V-ID: 05cef6e0-6183-4af9-98ba-3ec2c3a9c0bd
Received: from process_milters-daemon.nwk-mmpp-sz11.apple.com by nwk-mmpp-sz11.apple.com (Oracle Communications Messaging Server 8.0.2.3.20180614 64bit (built Jun 14 2018)) id <0PC200H00GX29E00@nwk-mmpp-sz11.apple.com>; Wed, 18 Jul 2018 07:45:30 -0700 (PDT)
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-07-16_06:,, signatures=0
X-Proofpoint-Scanner-Instance: nwk-grpmailp-qapp14.corp.apple.com-10000_instance1
Received: from localhost ([17.235.39.85]) by nwk-mmpp-sz11.apple.com (Oracle Communications Messaging Server 8.0.2.3.20180614 64bit (built Jun 14 2018)) with ESMTPSA id <0PC200AXGGZT1R50@nwk-mmpp-sz11.apple.com>; Wed, 18 Jul 2018 07:45:30 -0700 (PDT)
Sender: cpaasch@apple.com
Date: Wed, 18 Jul 2018 10:45:28 -0400
From: Christoph Paasch <cpaasch@apple.com>
To: philip.eardley@bt.com
Cc: multipathtcp@ietf.org
Message-id: <20180718144528.GO1471@MacBook-Pro-19.local>
References: <0dd5e48298ed4b4fb7344630abc794b7@rew09926dag03b.domain1.systemhost.net> <f64af1576d994d888a7b82fb75dc8318@rew09926dag03b.domain1.systemhost.net> <20180715201445.GU1471@MacBook-Pro-19.local> <b90520f39bea4fc9a5bf22b011ec4ac0@rew09926dag03b.domain1.systemhost.net>
In-reply-to: <b90520f39bea4fc9a5bf22b011ec4ac0@rew09926dag03b.domain1.systemhost.net>
User-Agent: Mutt/1.9.4 (2018-02-28)
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrIIsWRmVeSWpSXmKPExsUiuPlRu253kH+0QftRZYvPq6+zWSxbu4LR gcmj7ctkJo8lS34yBTBFcdmkpOZklqUW6dslcGV0bTjOUjDVtGLCl7NsDYy/NLoYOTkkBEwk GqctZu5i5OIQEjjAJPHs4gQWkASvgKDEj8n3gGwODmYBeYmD52VBwswC0hKP/s5gh7C1JL4/ amWB6F3PJLF70TewhJBAF5PE7GXiEAvYJf782sECYWtLnH48jQ3G/rscYhCIfeD3Xag4l8SC radZQfZKCOhKHPsjCRFmk1h/YgkThK0lcXThIUYY+9qbiaww9u37H5khbE6J818mQo3XkXi8 +wvUaZ1Ad761gBifLdG5qQKiJFji5LpGdohXGpgk/m1pBasXFpCU6L5zB2wmi4CqxMvzs8HO ZAPa9fZ2O9heEaCaFdtXsUHCBMj++4kVotdD4vnlueyQ4LSQ+Nh5mRViwWwmicPztzNOYFSa hRTUsxBBPQspqGchBfUCRpZVjEK5iZk5upl5RnqJBQU5qXrJ+bmbGEFpYrqd4A7G46usDjEK cDAq8fBm/PWNFmJNLCuuzD3EKM3BoiTOW2oIFBJITyxJzU5NLUgtii8qzUktPsTIxMEp1cB4 UflCqMZuibmXHuQW8khssZ/8akWVWqbezZbWuB37uL6VeXSf2LxdYfGjoPRpq72qHM7NUrM3 2Kv7Rt7+6i9h0YkTGiYu/hQjIbJIzuVLeuf6hL1Pw8I+GCxyOyTC537w0HUJieLX3RnGLO5v xb1u3SyzfdX+4N+UDt+Zxq/VDrLFzGBelFCrxFKckWioxVxUnAgAXDlyLvQCAAA=
Archived-At: <https://mailarchive.ietf.org/arch/msg/multipathtcp/-1kJOX4h704m_hm7SQiDL6S4-Y4>
Subject: Re: [multipathtcp] WG Last Call for draft-ietf-mptcp-rfc6824bis
X-BeenThere: multipathtcp@ietf.org
X-Mailman-Version: 2.1.27
Precedence: list
List-Id: Multi-path extensions for TCP <multipathtcp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/multipathtcp>, <mailto:multipathtcp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/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, 18 Jul 2018 14:45:39 -0000

Hello Phil,

On 17/07/18 - 23:30:15, philip.eardley@bt.com wrote:
> In-line
> Thanks
> phil
> -----Original Message-----
> From: cpaasch@apple.com [mailto:cpaasch@apple.com] 
> Sent: 15 July 2018 16:15
> To: Eardley,PL,Philip,TUD1 R <philip.eardley@bt.com>
> Cc: multipathtcp@ietf.org
> Subject: Re: [multipathtcp] WG Last Call for draft-ietf-mptcp-rfc6824bis
> 
> ...
> 
> > 
> > S3.9.2
> > << If the two communicating hosts immediately try to set up subflows
> >    from all available addresses to all available addresses on the other
> >    host, this could end up creating two subflows per path.  This is an
> >    inefficient use of resources.>>
> > is two subflows correct? Multiple I think
> 
> It would be two subflows on each path (one being initiated by each host).
> 
> [phil] ok. Can the para be re-phrased so it's clear this is about a new situation (compared to the earlier paras). Something like, "Another issue is that both communicating hosts may simultaneously try to set up a subflow between the same pair of addresses. This leads to an inefficient use of resources." (I suppose 'inefficient resources'  refers to resources on the end host?)
> 

thanks for the suggested text. I adopted it.

> ...
> 
> 
> > 
> > << client                                                         server
> >      |                                                              |
> >      |    S 0(0) <MP_CAPABLE>, <TFO cookie request>                 |
> >      | -----------------------------------------------------------> |
> > >>
> > Can you explain the S 0(0) nomenclature/ please.
> 
> tcpdump-style sequence number and length of the segment.
> 
> Is it ok, if I change the figure for the first time we use this notation to:
> S Seq=0(Length=0)
> 
> And from there on leave the one we have now?
> 
> [phil] yes - I suggest in the first figure you add a key that explains the notation and states it's used in Figures x, y, z.

Sure, I annotated the figure.

> > Section 2.1 & 3.1 - can you remind me why we changed MP_CAPABLE so 
> > that Host A's key is sent only on the ACK (not on the SYN)? Is this so 
> > it's only sent when we know host B is MPTCP capable, which is 
> > therefore a slight security improvement?  (Just send a link to earlier 
> > emails, if that's easier)
> 
> The reason for this is because now that we send the keys reliably in the third ACK / first data-segment, we actually don't need to send the key in the SYN anymore. Thus, we can reduce the size of the MP_CAPABLE in the SYN-segment and gain some bytes.
> 
> [phil] ok - if I get it right the motivation for the change in the MP_CAPABLE protocol exchange starts from the observation that option space is most constrained in the SYN, so reducing the size of MP_CAPABLE in the SYN allows other TCP options to be used in the SYn. As a consequence of this decision, Host A doesn't know that Host B has learnt its key, unless the ACK is sent reliably.  

The story actually unfolded the other way around. We identified a need for
reliable key-exchanges when talking to stateless servers. Based on this we
made the key-exchange reliable in the third ACK/first data segment.

Upon this, we realized that we can gain space in the SYN.

Thus, the motivation for the change was the need for the reliable
MP_CAPABLE.

> I think it would be useful to tweak the figure in Section 2.1 - just to say the ack is delivered reliably. 

Incorporating it into the figure seems tricky to me. I changed the first
sentence to mention data as well: "... initial ACK (and data) packets also ..."

> However in Section 3.1 I think it would be good to include a more extensive figure about this - showing the different ways & timings for when the ack is known to have been delivered - ie figure showing somehow that A or B may be one that first sends data - and therefore when A knows that the ACK has indeed been successfully delivered to B.
> The actual text (in the para starting " If B has data to send first, then the reliable delivery of the ACK...") is pretty good - however, there are a lot of "this packet", "this is" etc - likely that someone could misinterpret what a "this" refers to. A figure would help clarify and/or breaking the text up .

Agreed - I will try to work on a proposal for this.

> Also I spotted
> << This option is used to declare the 64-bit keys that the end hosts     
>     have generated for this MPTCP connection.  This key is used to     
>     authenticate the addition of future subflows to this connection.>>
> This key is -> These keys are ...

Fixed.

> << Therefore, A's key must be delivered reliably to B, and in order to     
>     do this, the transmission of this packet must be made reliable.>>
> is it right to say that the protocol makes transmission of the ACK reliable?   Suppose the Ack is lost. The protocol ensures that A doesn't have the mistaken belief that B has got the Ack. But does it say anything about how /when A sends the Ack again?  (perhaps it should say something about this?)

There is not really reliability of the ACK. Rather, piggy-backing of the
MP_CAPABLE on a data-segment, which implicitly makes the MP_CAPABLE reliable
thanks to the data's reliability.

I try to clarify this with the figure I will do.

> << Note that new subflows MUST NOT be established
>    (using the process documented in Section 3.2) until a Data Sequence
>    Signal (DSS) option has been successfully received across the path
>    (as documented in Section 3.3).>>
> In the case where A sends data first, then the MP-CAPABLE is sent instead of the DSS. Does the text quoted mean that new subflows are not allowed (until an actual DSS is sent) or are they allowed because DSS has kind of been inferred?

It is allowed. It is not so much about the DSS-option itself, but rather any
MPTCP-option that is sent together with data.
I will try to clarify this as well.



I have another comment. In Section 3.1, there is:

If receiving a message with the 'B' flag set to 1, and this is not understood,
then this SYN MUST be silently ignored.


I suggest to change this to "... then the MP_CAPABLE in this SYN MUST be
silently ignored.". Otherwise, hosts setting the B-bit to test for a
feature-capability will incur a SYN-retransmission timeout, which is a huge
latency penalty.

Please let me know if that is acceptable.



I created another Pull-Request at
https://github.com/multipath-tcp/draft-ietf-mptcp-rfc6824bis/pull/6.

To not lose track of outstanding tasks, I listed them in the issues-section
of the github: https://github.com/multipath-tcp/draft-ietf-mptcp-rfc6824bis/issues

If anyone feels inspired to take onto one of these ... ;-)



Christoph