Re: [multipathtcp] Question on Data Sequence Mapping

Mark Handley <mark@handley.org.uk> Tue, 16 May 2017 08:30 UTC

Return-Path: <mark@handley.org.uk>
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 762C7129C03 for <multipathtcp@ietfa.amsl.com>; Tue, 16 May 2017 01:30:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.72
X-Spam-Level:
X-Spam-Status: No, score=-0.72 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-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=messagingengine.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 sErkDFnoxf04 for <multipathtcp@ietfa.amsl.com>; Tue, 16 May 2017 01:30:51 -0700 (PDT)
Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3FC5A12EAA5 for <multipathtcp@ietf.org>; Tue, 16 May 2017 01:27:34 -0700 (PDT)
Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id E3E1920931 for <multipathtcp@ietf.org>; Tue, 16 May 2017 04:27:32 -0400 (EDT)
Received: from web3 ([10.202.2.213]) by compute4.internal (MEProxy); Tue, 16 May 2017 04:27:32 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=+RgfCv IHt7hpMriv656SzWrLbGcs0tRa1mpCfptr2QM=; b=oa0BOWX62IfH/WKYDL3h6P CQ7R+mF8HtTUgBCtDxMf5Q6ANqXxeSBMKfIQk7aH0C/GHlmtH6Zt3OuPP4q0GhRj lO9tXJyTryhTwcAR8YbuIon5b2fHTryBAHAzY+gv8ShB19wecHVSqlyMsce2QmoN 89OaOUeydlB5MJFnOT2dC4eVFZvrTETcv1c57G3c0JEzTV+O0G3W0NVkzP3mU70s 2TEWOmAQBXZjjksPgKqa+C+9oEzw3ECzH7QnWeoy7rM2Bfyil16z1rOgIzmG0O7o ouoLcSudV53qCcgC/WoT4jWpq1oYDh+VywoKmb53adzt6yfffuiF8ycLbzICclXA ==
X-ME-Sender: <xms:9LcaWcBrMHsGXAY6vyhSAzOU7MrsOJph-ARZ78mDi6JIY8CQZKIjvw>
Received: by mailuser.nyi.internal (Postfix, from userid 99) id C892E9EF1A; Tue, 16 May 2017 04:27:32 -0400 (EDT)
Message-Id: <1494923252.822592.978019448.25DD86CE@webmail.messagingengine.com>
From: Mark Handley <mark@handley.org.uk>
To: multipathtcp@ietf.org
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="utf-8"
X-Mailer: MessagingEngine.com Webmail Interface - ajax-a5162694
References: <2a1aa330-f004-577e-93b4-0c93726e33d9@oracle.com>
In-Reply-To: <2a1aa330-f004-577e-93b4-0c93726e33d9@oracle.com>
Date: Tue, 16 May 2017 09:27:32 +0100
Archived-At: <https://mailarchive.ietf.org/arch/msg/multipathtcp/NRMc7RXLSrv6YIx4morM6eFL2uc>
Subject: Re: [multipathtcp] Question on Data Sequence Mapping
X-BeenThere: multipathtcp@ietf.org
X-Mailman-Version: 2.1.22
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: Tue, 16 May 2017 08:30:53 -0000

The main rule is that you can't change the data corresponding to subflow
sequence numbers after you first send the DSN mapping.  In practice,
this largely means don't retransmit different data corresponding to
subflow sequence numbers than you did the first time.  The rationale is
that there are stateful middleboxes that can re-assert the original
data, and will corrupt MPTCP unless you maintain this invariant.

You can, of course, also retransmit MPTCP data on another subflow, so
MPTCP has to be capable of receiving the same data more than once and
remove duplicates.  There's no obvious use for sending the same MPTCP
data more than once on the same subflow, but I don't believe it's
explicitly disallowed.  The original mapping would not change, but you'd
have an additional subflow mapping for the same data.  I would expect an
MPTCP receiver to permit this, but it isn't something we ever considered
when we were writing the spec.  I'm just not sure why anyone would want
to do it.

Mark

On Tue, May 16, 2017, at 01:39 AM, Rao Shoaib wrote:
> Hi,
> 
> Section 3.3.1 of RFC 6824 says
> 
> The data sequence mapping specifies a mapping from subflow sequence 
> space to data sequence space. This is expressed in terms of starting 
> sequence numbers for the subflow and the data level, and a length of 
> bytes for which this mapping is valid.
> 
> <...>
> 
> A mapping is fixed, in that the subflow sequence number is bound to the 
> data sequence number after the mapping has been processed. A sender MUST 
> NOT change this mapping after it has been declared;
> 
> Does it mean that I can not map the data sequence to another (higher) 
> TCP sequence number on the same flow.
> 
> The reason I am asking this is that if this is allowed  TCP and MPTCP 
> processing can be separated on the recv side. For example, TCP could 
> accept the packet but MPTCP could reject it. Since data level ack would 
> not be sent the peer would retransmit, possibly using the same flow but 
> with a different mapping so that TCP would accept the packet.
> 
> Is this legal to do and if not than why ?
> 
> Regards,
> 
> Rao
> 
> _______________________________________________
> multipathtcp mailing list
> multipathtcp@ietf.org
> https://www.ietf.org/mailman/listinfo/multipathtcp