Re: [multipathtcp] potential MPTCP proxy charter item

<> Wed, 09 November 2016 15:59 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 83CBF1295F2 for <>; Wed, 9 Nov 2016 07:59:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -4.086
X-Spam-Status: No, score=-4.086 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_H2=-0.001, 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 Hvgu8PmCxMRN for <>; Wed, 9 Nov 2016 07:59:33 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 24A611296E4 for <>; Wed, 9 Nov 2016 07:58:42 -0800 (PST)
Received: from (unknown [xx.xx.xx.70]) by (ESMTP service) with ESMTP id A8289C0588; Wed, 9 Nov 2016 16:58:40 +0100 (CET)
Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.2]) by (ESMTP service) with ESMTP id 7F6161A0070; Wed, 9 Nov 2016 16:58:40 +0100 (CET)
Received: from OPEXCLILMA3.corporate.adroot.infra.ftgroup ([fe80::60a9:abc3:86e6:2541]) by OPEXCLILM21.corporate.adroot.infra.ftgroup ([fe80::e92a:c932:907e:8f06%19]) with mapi id 14.03.0319.002; Wed, 9 Nov 2016 16:58:40 +0100
To: Joe Touch <>
Thread-Topic: [multipathtcp] potential MPTCP proxy charter item
Thread-Index: AQHSOqDinemdljzUmEGiGID3gGUCC6DQza3g
Date: Wed, 09 Nov 2016 15:58:39 +0000
Message-ID: <787AE7BB302AE849A7480A190F8B933009DAEBF9@OPEXCLILMA3.corporate.adroot.infra.ftgroup>
References: <> <> <> <> <> <> <> <787AE7BB302AE849A7480A190F8B933009DAE088@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <> <787AE7BB302AE849A7480A190F8B933009DAE31D@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <fe1856! !> <787AE7BB302AE849A7480A190F8B933009DAE767@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <> <787AE7BB302AE849A7480A190F8B933009DAE807@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <> <787AE7BB302AE849A7480A190F8B933009DAEB20@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <>
In-Reply-To: <>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_787AE7BB302AE849A7480A190F8B933009DAEBF9OPEXCLILMA3corp_"
MIME-Version: 1.0
Archived-At: <>
Cc: "" <>
Subject: Re: [multipathtcp] potential MPTCP proxy charter item
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, 09 Nov 2016 15:59:37 -0000


Thank you for the clarification.

Noted. As I don’t have concrete cases where there will be a need to pick a particular port, I’m not sure this is a big issue.


De : Joe Touch []
Envoyé : mercredi 9 novembre 2016 16:50
Cc : Mirja Kühlewind;;
Objet : Re: [multipathtcp] potential MPTCP proxy charter item

On 11/9/2016 7:37 AM,<> wrote:

TCP is asked to connect once. You seem to now expect it to try twice - TCP cannot (it can't pick ports by itself) and user land cannot be expected to or may not be able to.
[Med] How that is different from establishing many TCP subflows between the same pair of IP address, using distinct source port numbers:

The difference is that the ports of the primary flow are no longer under your control.

I don't know if there's a workaround for MPTCP, but this is exactly why this technique cannot work for TCP in general. Further, if it doesn't work for TCP, then MPTCP is no longer TCP in some cases (which means it can't be used as such interchangeably).

   This subflow manager creates N subflows between the same pair of IP
   addresses.  The N subflows are created by the client and differ only
   in the source port selected by the client.

Since the MPTCP Proxy in UC#2 is tracking TCP connections (TCP/MPTCP glue), it is the responsibility of the MPTCP Proxy to select the source port to use. This is similar to a NAT function. We are leveraging on the TCP BEHAVE recommendations.

 It might not be able to use the source port it wants either.
[Med] The only case I see is when all external ports are exhausted. This is a very very extremely case.

I'm speaking of a case where you want/need to pick both port numbers.
[Med] Acked.