Re: [multipathtcp] MPTCP implementation feedback for RFC6824bis

V Anil Kumar <anil@csir4pi.in> Fri, 13 December 2019 18:11 UTC

Return-Path: <prvs=24322b142=anil@csir4pi.in>
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 A953C120872 for <multipathtcp@ietfa.amsl.com>; Fri, 13 Dec 2019 10:11:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 OOU1fM0IVVBT for <multipathtcp@ietfa.amsl.com>; Fri, 13 Dec 2019 10:11:35 -0800 (PST)
Received: from relayout52.nic.in (relayout52.nic.in [164.100.14.180]) (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 EA6871208AF for <multipathtcp@ietf.org>; Fri, 13 Dec 2019 10:11:30 -0800 (PST)
IronPort-PHdr: 9a23:RrH47h/5nVtuj/9uRHKM819IXTAuvvDOBiVQ1KB41OocTK2v8tzYMVDF4r011RmVBN6dsqMVwLKP+4nbGkU4qa6bt34DdJEeHzQksu4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1Ov71GonPhMiryuy+4ZLebxhGiTanfL9/KBG7oQrNusULnIBvNrs/xhzVr3VSZu9Y33loJVWdnxb94se/4ptu+DlOtvwi6sBNT7z0c7w3QrJEAjsmNXs15NDwuhnYUQSP/HocXX4InRdOHgPI8Qv1Xpb1siv9q+p9xCyXNtD4QLwoRTiv6bpgRQT2gykbKTE27GDXitRxjK1FphKhuwd/yJPQbI2MKfZyYr/RcdYcSGFcXMheSjZBD5u8YYURDOQPM+FWoZT5p1QMoxuzHhOjCP/1xz9MnHL6wa833uI8Gg/GxgwgGNcOvWzbo97oKKoSV+G1zK3VxjvGcvNW3C3y6JLVeR0mu/6MW7Nwcc7KxEYzDAPFj0+QpIP9PzOUzOgNsm6b4vNmWOmyiGAnsxl8riWry8sykIXFm4MYx1Pe+Slk2oo5O8C0RU9jbdK5DpdcqTuWO5Z0T88/WW1kpjs2x7kctZKmcyUHypIqzAPFZfOdaYiH+BfjWf6UITd/mX1qZqqyhw238Ui80u38UdS00EpSoipFjNbMsncN2gTW6sedS/t9+l2t2TmI1wDN8O1EIEY0mbLaK54n3LEwioIevVnHEyPogkn6ka6be0Y+9uS18ejrfKjqq56EO49xkA7+M6AumsKlAeQ/NwgDR3KU+eK91L3n5kD2XK5KjvwskqTWqJDaJN4Xpq+/AwNNyIYs9w6/Dyu60NQfhXQHKU9FeBabj4joI1HBOuz4Dfejg1uwiDdm3PHGMaP9ApXDNHTDl63hfbkuo3JbnSEz19FE+5VMCvk5KfvoUU+54NfABxYiOAycyv7/DNg73YQbDzGhGKicZZ2amFmJ4qoMPuyFfsdBsTD8L9Au/P/00Wc4314bK/r6laALYWy1S6w1a36SZmDh15JYST8H
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A2FwAADKxvNd/9gBqMBlGgEBAQEBAQEBAQMBAQEBEQEBAQICAQEBAYF+gRyDIQqDeZE0iVuRUwkBAQIBAQEBATcBAYRAAoI0OBMCAwEMAQEBBAEBAQEBBQMBAQEChVQgBiYMgjspAYNPAQUjChANCBUSEAEIAg0BCgkXAQkCAg8SNgYLCBSFVQORdpt0gTIaAoNNhCcNgiYFDYEpgWWDN4cQBoIAgRGDEz6BBIEXSQSEcYJeBI1IigaID44pL0OCOoZChhuFAoRAgkKHdoQaFAOLXpkzj3QBgXqBe004gydQEYMziXwPC4UIiRoJbAGPTgEB
X-IPAS-Result: A2FwAADKxvNd/9gBqMBlGgEBAQEBAQEBAQMBAQEBEQEBAQICAQEBAYF+gRyDIQqDeZE0iVuRUwkBAQIBAQEBATcBAYRAAoI0OBMCAwEMAQEBBAEBAQEBBQMBAQEChVQgBiYMgjspAYNPAQUjChANCBUSEAEIAg0BCgkXAQkCAg8SNgYLCBSFVQORdpt0gTIaAoNNhCcNgiYFDYEpgWWDN4cQBoIAgRGDEz6BBIEXSQSEcYJeBI1IigaID44pL0OCOoZChhuFAoRAgkKHdoQaFAOLXpkzj3QBgXqBe004gydQEYMziXwPC4UIiRoJbAGPTgEB
X-IronPort-AV: E=McAfee;i="6000,8403,9470"; a="385540622"
X-IronPort-AV: E=Sophos;i="5.69,309,1571682600"; d="scan'208,217";a="385540622"
Received: from unknown (HELO mail.gov.in) ([192.168.1.216]) by esadelsp05.nic.in with ESMTP; 13 Dec 2019 23:41:25 +0530
MIME-version: 1.0
Content-type: multipart/alternative; boundary="Boundary_(ID_c6qba1c4NLDXhXRfRyD0xA)"
Received: from nic.in ([192.168.1.216]) by dr-msgfe9.nic.in (Oracle Communications Messaging Server 7.0.5.34.0 64bit (built Oct 14 2014)) with ESMTPA id <0Q2G00GY3QJ17J00@dr-msgfe9.nic.in> for multipathtcp@ietf.org; Fri, 13 Dec 2019 23:41:25 +0530 (IST)
Sender: anil@csir4pi.in
Received: from [192.168.1.216] (Forwarded-For: 122.171.219.147) by dr-msgfe9.nic.in (mshttpd); Fri, 13 Dec 2019 23:41:25 +0530
From: V Anil Kumar <anil@csir4pi.in>
To: Christoph Paasch <cpaasch@apple.com>
Cc: Alan Ford <alan.ford@gmail.com>, MultiPath TCP - IETF WG <multipathtcp@ietf.org>, mptcp Upstreaming <mptcp@lists.01.org>, Mirja Kuehlewind <ietf@kuehlewind.net>
Message-id: <fb16f29f7ecc.5df421a5@nic.in>
Date: Fri, 13 Dec 2019 23:41:25 +0530
X-Mailer: Oracle Communications Messenger Express 7.0.5.34.0 64bit (built Oct 14 2014)
Content-language: en
X-Accept-Language: en
Priority: normal
In-reply-to: <42684CE4-7B3E-4899-9706-7E3AAB39A9F7@apple.com>
References: <f97420243acd.5df3748a@nic.in> <42684CE4-7B3E-4899-9706-7E3AAB39A9F7@apple.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/multipathtcp/Qv1yXGJ7_ZPqP1qvtT1R1D6rJic>
Subject: Re: [multipathtcp] MPTCP implementation feedback for RFC6824bis
X-BeenThere: multipathtcp@ietf.org
X-Mailman-Version: 2.1.29
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: Fri, 13 Dec 2019 18:11:39 -0000

Hi Christoph,

Thanks again for your reply. My response is given inline.

On 12/13/19 09:59 PM, Christoph Paasch  <cpaasch@apple.com> wrote: 
> 
> 
> 
> 
> 
> 
> Hello,
> 
> 
> 
> > On Dec 12, 2019, at 9:53 PM, V Anil Kumar <anil@csir4pi.in> wrote:
> > 
> > 
> 
> 
> > 
> >  Hi Christoph,
> > 
> > Thanks for your reply. Please see inline.
> > 
> > On 12/12/19 12:52 AM, Christoph Paasch  <cpaasch@apple.com> wrote: 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > Hello,
> > > 
> > > 
> > > 
> > > 
> > > > 
> > > > On Dec 10, 2019, at 12:04 PM, V Anil Kumar <anil@csir4pi.in(javascript:main.compose()> wrote:
> > > > 
> > > > 
> > > > Hi Alan, 
> > > > 
> > > > 
> > > > 
> > > > Please see inline.
> > > > 
> > > > On 12/06/19 09:28 PM,Alan Ford<alan.ford@gmail.com(javascript:main.compose()> wrote: 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > Hi all,
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > Following on from the discussion of implementation feedback with Christoph, I propose the following edits to RFC6824bis - which is currently in AUTH48 - as clarifications.
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > ADs, please can you confirm you consider these edits sufficiently editorial to fit into AUTH48.
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > WG participants, please speak up if you have any concerns.
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > Edit 1, clarifying reliability of MP_CAPABLE
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > Change the sentence reading:
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > >  The SYN with MP_CAPABLE occupies the first octet of data sequence space, although this does not need to be acknowledged at the connection level until the first data is sent (see Section 3.3).
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > To:
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > >  The SYN with MP_CAPABLE occupies the first octet of data sequence space, and this MUST be acknowledged at the connection level at or before the time the first data is sent or received (see Section 3.3).
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > Change the sentence reading:
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > >  If B has data to send first, then the reliable delivery of the ACK + MP_CAPABLE can be inferred by the receipt of this data with an MPTCP Data Sequence Signal (DSS) option (Section 3.3). 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > To:
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > >  If B has data to send first, then the reliable delivery of the ACK + MP_CAPABLE is ensured by the receipt of this data with an MPTCP Data Sequence Signal (DSS) option (Section 3.3) containing a DATA_ACK for the MP_CAPABLE (which is the first octet of the data sequence space).
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > In my personal opinion either one of these edits would be sufficient for making the point, however clearly this has caused some confusion amongst the implementor community so making both these changes should make it absolutely clear as to the expected behaviour here.
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > Edit 2, mapping constraint
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > Change the sentence reading:
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > >  A Data Sequence Mapping does not need to be included in every MPTCP packet, as long as the subflow sequence space in that packet is covered by a mapping known at the receiver.
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > To:
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > >  A Data Sequence Mapping MUST appear on a TCP segment which is covered by the mapping. It does not need to be included in every MPTCP packet, as long as the subflow sequence space in that packet is covered by a mapping known at the receiver.
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > >  
> > > > > 
> > > > 
> > > > As far as I understand, the proposed change introduces a “MUST” to insist that the map in a segment must cover at least some data in the segment. But the document does not talk anything about the rational behind it. I guess it is purely an 
> > > > 
> > > > ease of implementation?
> > > > 
> > > > 
> > > 
> > > 
> > > For two reasons:
> > > 
> > > 1. Ease of implementation
> > > 2. If an implementation tries to "remember" early mappings, it is not clear how many of these an implementation can hold. Thus, the sender does not know how many early mappings he can send. So, it is hard for a sender to do the right thing.
> > > 
> > > 
> > > > 
> > > > 
> > > > 
> > > > I think the design/format of the Data Sequence Mapping permits the map to stand independent of the data being carried in a segment. So, as long as an implementation is willing to deal with the complexity of storing and processing late and early mappings (with respect to the data arrival), it could be permitted provided that the received map is for an in-window data.
> > > > 
> > > > 
> > > 
> > > 
> > > What is the concrete use-case for such early mappings? What are the benefits of it? I think that if we want to enable such implementation-complexity, we need a compelling use-case with a big benefit.
> > > 
> > > 
> > >  
> > > 
> > 
> > Consider a case where a MPTCP connection consists of two subflows, and the data segments are scheduled for transmission in the order shown below below.  
> > 
> > 
> >  
> > 
> > 
> > 
> > Subflow-1: segment-1 segment-3 segment-5 segment-6 
> > 
> >  bytes:1-100 bytes:201-300 bytes:401-500 bytes:501-600 
> > 
> >  no map map for 1-100 map for 401-600 no map 
> > 
> > 
> >  
> > 
> > 
> >  
> > 
> > 
> > 
> > Subflow-2: segment-2 segment-4 segment-7 segment-8 
> > 
> >  bytes: 101-200 bytes:301-400 bytes: 601-700 bytes:701-800  
> > 
> >  map for 101-200 map for 301-400 map for 601-800 no map 
> > 
> >   
> > 
> > In the above case, the map for data in segment-1 is included in segment-3. 
> > 
> > 
> > 
> 
> 
> The question here is why would the stack not put the mapping for segment 1 on segment 1 itself. And what is the benefit of doing so?
> 
> 
> 
>  
> 

Well it could just be due to the lack of option space insegment-1. For example, the sender ofsegment-1 at that instant wants to transmit multiple TCP options (e.g.timestamp, SACK, DSS and ADD_ADDR). Obviously, they all cannot fit into optionfield of one segment, and eventually the DSS transmission got slightly delayedby a segment or two.

 

With regards,

 

Anil

 

> 
> 
> 
> 
> 
> 
> 
> Christoph
> 
> 
> > 
> > 
> > 
> > Further, segment-3 cannot combine/cover the data in segment-1 and segment-3 in a "single map", as the data sequence space is not continuous, i.e., some in between data (segment-2) is mapped and transmitted through subflow-2. Here, the map in segment-3 does not even partially cover the data it carries. 
> > 
> > 
> >  
> > 
> > Both RFC 6824 and the 6824-bis do not restrict the above scenario, and I guess the change proposed now does not permit this to happen. 
> > 
> > 
> >  
> > 
> > Best regards, 
> > 
> > 
> >  
> > 
> > Anil 
> > 
> > 
> > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > That's the reason why we (the MPTCP-upstreaming community) vouch to have this case restricted.
> > > 
> > > 
> > > 
> > > Cheers,
> > > Christoph
> > > 
> > > 
> > > 
> > > 
> > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > Anil 
> > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > Best regards,
> > > > > 
> > > > > Alan
> > > > > 
> > > > > 
> > > > >  
> > > > > 
> > > > 
> > > > 
> > > 
> > > 
> > > 
> > > 
> > >  
> > > 
> > 
> > 
> 
> 
> 
>  
>