Re: [multipathtcp] MPTCP carrying UDP

<> Wed, 16 November 2016 06:46 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 00FEA1293EE for <>; Tue, 15 Nov 2016 22:46:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -4.105
X-Spam-Status: No, score=-4.105 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.497, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id r3GuOC6_cCtN for <>; Tue, 15 Nov 2016 22:46:46 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 95FA512954D for <>; Tue, 15 Nov 2016 22:46:45 -0800 (PST)
Received: from (unknown [xx.xx.xx.68]) by (ESMTP service) with ESMTP id DD07D180526; Wed, 16 Nov 2016 07:46:43 +0100 (CET)
Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.32]) by (ESMTP service) with ESMTP id 7BC8240077; Wed, 16 Nov 2016 07:46:43 +0100 (CET)
Received: from OPEXCLILMA3.corporate.adroot.infra.ftgroup ([fe80::60a9:abc3:86e6:2541]) by OPEXCLILM32.corporate.adroot.infra.ftgroup ([fe80::8924:188:2124:a046%19]) with mapi id 14.03.0319.002; Wed, 16 Nov 2016 07:46:43 +0100
From: <>
To: "" <>, "" <>, "" <>, "" <>
Thread-Topic: MPTCP carrying UDP
Thread-Index: AdI/NebMR0wIzv/5Tmmn4GsoWOcicgAJnNmAAB3eUpA=
Date: Wed, 16 Nov 2016 06:46:43 +0000
Message-ID: <787AE7BB302AE849A7480A190F8B933009DB4916@OPEXCLILMA3.corporate.adroot.infra.ftgroup>
References: <> <>
In-Reply-To: <>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_787AE7BB302AE849A7480A190F8B933009DB4916OPEXCLILMA3corp_"
MIME-Version: 1.0
Archived-At: <>
Cc: "" <>
Subject: Re: [multipathtcp] MPTCP carrying UDP
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Multi-path extensions for TCP <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 16 Nov 2016 06:46:50 -0000

Hi Markus,

Thank you for sharing this information.

Please see inline.


De : []
Envoyé : mardi 15 novembre 2016 17:22
Cc :
Objet : Re: MPTCP carrying UDP

Hi Phil, all,

Our Swisscom Labs have done some playing around on the topic running UDP over SOCKS5 + MPTCP (Thanks to Olaf, Silka, Dominique) for feasibility not for performance measurements.

The learnings are that it works, however it is naturally more complex to do than TCP.

-          Since UDP is stateless, every single packet has to be examined for its destination (IP and port). This also requires a timeout associated with each MPTCP session in order to manage the lifetime (the client or destination will not send a FIN).

[Med] This is why we are propossing to have a lifetime entry in the binding table maintained by an MPTCP proxy:

   Lifetime:  This information indicates the remaining validity lifetime
      for the session entry.  When the lifetime expires, this session
      entry is deleted from the table.  If all sessions bound to a given
      binding entry expired, that binding entry must be deleted.
      Recommendations for setting this parameter are defined in

We are also proposing a solution to sync the binding entries between two proxies:

==4.3.3<>.  Expiration of a Binding Entry

   A configurable parameter MAY be supported by the CPE and the
   concentrator to terminate MPTCP connections with the FASTCLOSE
   procedure (Section 3.5 of [RFC6824]<>) when a binding entry expires.

   If there is no binding state that matches a received non-SYN segment,
   the CPE/concentrator SHOULD reply with a RST segment.  This behavior
   aims to synchronize the binding tables between the CPE and the
   concentrator by clearing bindings that are present either in the CPE
   or in the concentrator.


And also this behavior:

5.1.3<>.3>.  Terminating UDP-Triggered Subflows
   UDP-triggered subflows SHOULD be terminated by an MPTCP endpoint (CPE
   or concentrator) if no UDP packet matching the corresponding binding
   entry is received for at least 5 minutes (see Section 4.3 of<>
   [RFC4787]<>)3>).  Consequently, the procedure in Section 4.4.4<> MUST be

   followed to terminate the MPTCP connection and the associated
   subflows.  The transport coordinates of the FASTCLOSE messages are
   set according to the information maintained in the binding table.


-          Obtaining the actual destination address of a packet after it was redirected to a proxy is not trivial (that sound a bit like an implementation issue of the kernels and the interplay with the proxy used).

[Med] I see this is as implementtaion-specific.

Kind regards/Viele Grüsse


Marcus Brunner

Von: "<>" <<>>
Datum: Dienstag, 15. November 2016 um 12:51
An: "<>" <<>>, "<>" <<>>, SCS-SIS-INI Brunner Markus <<>>, "<>" <<>>
Cc: "<>" <<>>
Betreff: MPTCP carrying UDP

(I changed the Subject line of the email)

Do people have any experimental results /experiences they could share of running UDP applications over MPTCP sub-flows?  Would be interested to hear about the issues. I guess VoIP and Quic would be the most interesting ones. Whether the experiments are with only one path being used at once, or multiple. etc

From: Robert Skog []
Sent: 15 November 2016 10:09
To:<>;<>; Eardley,PL,Philip,TUB8 R <<>>;<>
Subject: RE: [multipathtcp] Towards a Multipath TCP Proxy work item

We see a need to solve UDP in several places, so having a separate specification can help this moving forward.


From: multipathtcp [] On Behalf Of<>
Sent: den 15 november 2016 09:57
Subject: Re: [multipathtcp] Towards a Multipath TCP Proxy work item

Hi Markus, all,

I’m on the same page that non-tcp traffic should be considered in scope. At least, the UDP case should be investigated. I remember there was interest in BA meeting about the UDP part (

An option I see is to consider advancing the use of MPTCP to convey UDP flows in a separate EXPERIMENTAL specification that will be cross-reviewed with other WGs (intarea, tsvwg). Having that base specification will help having interoperable implementations that will be used to carry experimentations.

Those experiments will help to determine whether the proposed solution is complex/simple, viable/non-viable, failed/successful, etc.

Let’s give it a try.


De : multipathtcp [] De la part de<>
Envoyé : mardi 15 novembre 2016 08:58
À :<>;<>
Cc :<>
Objet : Re: [multipathtcp] Towards a Multipath TCP Proxy work item


If you feel it would take too long and to be too complex to achieve in a reasonable timeframe, we are ok with excluding non-tcp traffic, however, for our total solution we do requires also non-tcp traffic to be sent over multiple paths. We could argue that we can use a different mechanisms specifically for UDP and other protocols, but it would be nice to have as single MPTCP-based solution. (my gut feeling is that we would need to replicate a lot of MPTCP scheduling features into a new mechanism).


Von: multipathtcp <<>> im Auftrag von "<>" <<>>
Datum: Montag, 14. November 2016 um 07:32
An: "<>" <<>>
Cc: "<>" <<>>
Betreff: Re: [multipathtcp] Towards a Multipath TCP Proxy work item

i think we should move beyond "exploring whether it would be useful".

i'd like us to assess proposed solutions. i think we should say this is what we're doing - at the moment we've had quite a lot of discussion about one proposal. we should give the chance for other proposals, and make the discussion more structured (what are the assessment criteria).

i also think we should explicitly exclude non-tcp traffic  (i think non-tcp traffic is too big a topic for our WG)


From: Alan Ford <<>>
Sent: 14 November 2016 06:11
To: Eardley,PL,Philip,TUB8 R
Subject: Re: [multipathtcp] Towards a Multipath TCP Proxy work item

I think this work item is achievable by simply removing references to “at least one end” from the existing charter item on the proxy. So the item would now read:

Finally, the working group will explore whether an MPTCP-aware
middlebox would be useful. For example, potentially helping MPTCP’s
incremental deployment by allowing only one end host to be MPTCP-enabled
and the middlebox acts as an MPTCP proxy for the other end host, which runs
TCP; and potentially helping some mobility scenarios, where the middle box
acts as an anchor between two MPTCP-enabled hosts. Alternatively, neither
end host could be MPTCP-enabled but a pair of proxies could work together to
bring MPTCP benefits to such connections. The working group will detail what real
problems an MPTCP-enabled middlebox might solve, how it would impact the
Multipath TCP architecture (RFC6182), what proxy approach might be
justified as compared against alternative solutions to the problems, and
the likely feasibility of solving the technical and security issues.

In some ways, the two ended proxy work could even be seen as an extension of the previous operational experience work within this WG.


On 10 Nov 2016, at 19:17,<> wrote:

Perhaps this is speaking too soon, but it looks like the very active discussion is reaching some common understanding?

We’re trying to work out what a work item might look like, so would like to understand what assumptions we would make, eg about the scenario, & what common agreements we’d assume & restrictions on how the solution works. This seems important to frame work by WG. If possible we’d like discussion on these points to avoid getting into the fine details of one particular existing proposal.

What we’d appreciate is a summary of what the assumptions /understandings are about:
•         The scenario (for instance: the MPTCP-enabled host knows the address of the proxy (eg through configuration); and it knows the address of the ‘legacy’ host it wants to communicate with)
•         If any impact is already envisaged on the current MPTCP protocol’s fallback behaviour and coping with middleboxes
•         If we can agree that the solution is based on a new MPTCP option
•         If any impact is already envisaged on the current MPTCP protocol’s semantics (other than the new option) eg in terms of
•         If any impact is already envisaged on TCP’s semantics, or any mods are needed, or assumptions about its behaviour, etc
•         If any impact is already envisaged on other existing transport protocol’s semantics (presuming people still would like non-TCP in scope?)
•         Anything else that you think is needed in order to frame the work item

It may be clearer to do this for the two use cases (single-ended proxy, ie where only one host is MPTCP-enabled; and double-ended proxy, ie where neither host is MPTCP-enabled).

This may seem like a long list, but most of the answers can be “none” – we’ll end up with just a short paragraph or a few bullets in the charter.

We’d also have to work out interactions with non-MPTCP WGs, but Mirja and IESG will probably want the main input on this.

Phil & Yoshi
multipathtcp mailing list<>