Re: [multipathtcp] MPTCP implementation feedback for RFC6824bis

Yoshifumi Nishida <nsd.ietf@gmail.com> Sun, 15 December 2019 11:05 UTC

Return-Path: <nsd.ietf@gmail.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 20C84120090 for <multipathtcp@ietfa.amsl.com>; Sun, 15 Dec 2019 03:05:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.997
X-Spam-Level:
X-Spam-Status: No, score=-0.997 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, FREEMAIL_REPLY=1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 GQL67bAVV8Ak for <multipathtcp@ietfa.amsl.com>; Sun, 15 Dec 2019 03:05:38 -0800 (PST)
Received: from mail-vs1-xe44.google.com (mail-vs1-xe44.google.com [IPv6:2607:f8b0:4864:20::e44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 52FA0120086 for <multipathtcp@ietf.org>; Sun, 15 Dec 2019 03:05:38 -0800 (PST)
Received: by mail-vs1-xe44.google.com with SMTP id b79so2368055vsd.9 for <multipathtcp@ietf.org>; Sun, 15 Dec 2019 03:05:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=w2Va4urhRu/S6wEIorUOYGu8eCUeSgT5/Tq71WjIstk=; b=j1GWP/OjwMh4iucU5gKjcn1BvFAY75THJUu03wKk1Ki0A1kDd5mgmF76zstpRVVtLB tFkCH/XG92eO0MxLVOpl2jIv9dT5SzQ0B3ECeKI1zQkD97VLhxOxI3FaIcHWsR7RP/rT KP7PmPHL2RnLbC+oH0o9kT8ktpEEhH9LhtX+LFlDHPqLLj+52jpdAMvY7EsBAli0fP0a wlo1rfnsawzviweIMA1m80EQIEN/irLwe4auTf5T9qd++kvZK44rKP823IMVOFd3R4UV qbv3c4rIGAn5ENtMQvrtWi5/2nLf36/UXJXgcx02DKwve05J3cPzHIeKr0aJ7sxqpqEa 9CNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=w2Va4urhRu/S6wEIorUOYGu8eCUeSgT5/Tq71WjIstk=; b=Lo4ruqj0jj5JoibQow9mgMsuF57Wj6RKhbuWTn6nEB+6JtPV956SFigB8ACMmvVh0T PwuQ+5dP/vGHY+bGH/VNF2ZioP4/K7/xhqrnQCbUQhcaXaoAa5D2x9EFqYsLSCpwqjX1 Uz82BBUB+Zi+vVZ9uQE5D7/sxWMv37K+2y7gTMrAsK8xyHHXNZI9tpCbgmDSsF3nAswd qlrjOV8J1DHam2/OdLhbDUSr41R/NidRvhjvXoTnB96HRbiKiiXTUb4IN5Sclm9DQT7E p7ISd4+zuyPdSdIP1pus8B5s8q+rKvBthaloyIOIIbru+vozNxCAOU8iXxZvQ00H+WPX AYYw==
X-Gm-Message-State: APjAAAUT5IFSuVpcfVYdB/0RsnX2PTLaXPxVOLQ+dQ6LxKdR/DAjZdUB cp+P1fygYQhQaYy+HM1iQ4dGU3oSSZpxLm3A0kk=
X-Google-Smtp-Source: APXvYqyzJa/bZJL+4+plImm3P+4FF4QnDxa9dwsbcoJ4sLyzkU7KA6txLUnZ4jaTr4Flh7Eqt98bp/T3xxuMh37XfFY=
X-Received: by 2002:a67:f50c:: with SMTP id u12mr17314664vsn.24.1576407937367; Sun, 15 Dec 2019 03:05:37 -0800 (PST)
MIME-Version: 1.0
References: <fb16f29f7ecc.5df421a5@nic.in> <20191213182409.GB9430@MacBook-Pro-64.local> <fa7667443ba6.5df46de9@nic.in> <fa8982c55716.5df4db73@nic.in> <fa8986877804.5df4dc82@nic.in> <fb0db65e7ad2.5df4dd8e@nic.in> <fa90a0fa4d9e.5df4dfde@nic.in> <fa91bb215a0d.5df4e4fd@nic.in> <fa9985d3d9b.5df4e5ef@nic.in> <fa6b23f5763c.5df53382@nic.in>
In-Reply-To: <fa6b23f5763c.5df53382@nic.in>
From: Yoshifumi Nishida <nsd.ietf@gmail.com>
Date: Sun, 15 Dec 2019 03:05:25 -0800
Message-ID: <CAAK044SYBVQjk3ch5B_+oUewHvihTFFcWThr9RLP=Wxz_wjFyw@mail.gmail.com>
To: V Anil Kumar <anil@csir4pi.in>
Cc: Christoph Paasch <cpaasch@apple.com>, MultiPath TCP - IETF WG <multipathtcp@ietf.org>, Mirja Kuehlewind <ietf@kuehlewind.net>, mptcp Upstreaming <mptcp@lists.01.org>
Content-Type: multipart/alternative; boundary="00000000000020c2c50599bc1353"
Archived-At: <https://mailarchive.ietf.org/arch/msg/multipathtcp/STnlSpJmL0XPKb9bMMhm23Qg60Q>
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: Sun, 15 Dec 2019 11:05:41 -0000

Hi,
One concern I have here is this may mean we end up want all implementations
to support late mapping feature.
Because if an implementation that supports the feature uses it to send
data, the receiver who doesn't support it will discard the packets. To
avoid it, we need to mandate receivers to support it.
--
Yoshi

On Sat, Dec 14, 2019 at 5:40 AM V Anil Kumar <anil@csir4pi.in> wrote:

> Hi Christoph,
>
> On 12/13/19 11:54 PM, *Christoph Paasch * <cpaasch@apple.com> wrote:
>
> On 13/12/19 - 23:41:25, V Anil Kumar wrote:
> > 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.
>
> The implementation needs to enforce a strict priority of DSS over SACK and
> ADD_ADDR.
>
> TCP options have evolved over a period of time, and I do not think as such
> any document/guidelines exist on  enforcing priority for one over the
> other, though it turns out be an interesting topic.  Also, more TCP options
> could come up in future for implementing  new features.  So, it is likely
> that implementations would follow different strategy when it come to option
> priority.
>
>
>
> If the ADD_ADDR does not fit in the TCP-option space, it can send the
> ADD_ADDR on a pure ACK. The echo-bit in the ADD_ADDR guarantee the reliable
> delivery of it.
>
> I noticed this new feature in RFC 6824-bis to deliver ADD_ADDR in pure ACK
> and still achieve the reliability. The ability to deliver MPTCP options in
> pure ACK will be useful, especially for options like ADD_ADDR.
>
>
>
> Sure, one could argue that favoring SACK over DSS is more important. But I
> think we would need data to justify that. Only very specific traffic
> patterns will fall in this use-case.
>
> The bottomline is that in the event of a map being slightly delayed, i.e.,
> delivered late with respect to the corresponding data, should  it result in
> resetting the subflow?
>
> As far as the specification is concerned, it could be liberal on accepting
> such maps, rather than being restrictive. Even if a current implementation
> cannot support this, future implementations may like to, provided the
> specification permits this and the implementation is willing to cop up with
> the associated complexity.
>
> Best regards,
>
> Anil
>
>
>
> Christoph
>
> >
> >
> >
> > 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
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> > >
> > >
> > >
>
> _______________________________________________
> multipathtcp mailing list
> multipathtcp@ietf.org
> https://www.ietf.org/mailman/listinfo/multipathtcp
>