Re: [multipathtcp] A proposal for MPTCP Robust session Establishment (MPTCP RobE)

Olivier Bonaventure <Olivier.Bonaventure@uclouvain.be> Wed, 12 July 2017 21:17 UTC

Return-Path: <olivier.bonaventure@uclouvain.be>
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 B8B001317B6 for <multipathtcp@ietfa.amsl.com>; Wed, 12 Jul 2017 14:17:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.321
X-Spam-Level:
X-Spam-Status: No, score=-4.321 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=uclouvain.be
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 T1RgEGmUtPZS for <multipathtcp@ietfa.amsl.com>; Wed, 12 Jul 2017 14:17:33 -0700 (PDT)
Received: from smtp6.sgsi.ucl.ac.be (smtp.sgsi.ucl.ac.be [130.104.5.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2B4B612EC41 for <multipathtcp@ietf.org>; Wed, 12 Jul 2017 14:17:33 -0700 (PDT)
Received: from mbpobo.local (host-78-129-6-94.dynamic.voo.be [78.129.6.94]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: obonaventure@smtp6.sgsi.ucl.ac.be) by smtp6.sgsi.ucl.ac.be (Postfix) with ESMTPSA id 85E8F67DD15; Wed, 12 Jul 2017 23:17:23 +0200 (CEST)
DKIM-Filter: OpenDKIM Filter v2.9.2 smtp6.sgsi.ucl.ac.be 85E8F67DD15
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=uclouvain.be; s=selucl; t=1499894243; bh=gJRzZn56rBpcjzfCf0w4IdB1qQ4OY7YwW18AinHorKc=; h=Reply-To:Subject:To:References:From:Date:In-Reply-To; b=q8kpRTmwaX5AxYHWz82+DECJgqMP53H15eX9FGeL9Y+5zRwFbqICIBL1q1ONb3wg/ t5fI/MaqwV8j0ifzHnqnE4MU19BKINGdugCLNOClEaL014fk1ZZji0fy0oAkiwDIL4 26Z42IQi9SFApfxEB92GIqVWoBTzoX9dC/5Crb60=
X-Virus-Status: Clean
X-Virus-Scanned: clamav-milter 0.99.2 at smtp-6
Reply-To: Olivier.Bonaventure@uclouvain.be
To: Markus.Amend@telekom.de, multipathtcp@ietf.org
References: <64f1b27aee214f6b99b5c474158d7426@HE105686.emea1.cds.t-internal.com>
From: Olivier Bonaventure <Olivier.Bonaventure@uclouvain.be>
Message-ID: <e51005d7-23dd-d10e-9c8f-27ef155461b1@uclouvain.be>
Date: Wed, 12 Jul 2017 21:48:05 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:52.0) Gecko/20100101 Thunderbird/52.2.1
MIME-Version: 1.0
In-Reply-To: <64f1b27aee214f6b99b5c474158d7426@HE105686.emea1.cds.t-internal.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: fr-classic
Content-Transfer-Encoding: 7bit
X-Sgsi-Spamcheck: SASL authenticated,
X-SGSI-Information:
X-SGSI-MailScanner-ID: 85E8F67DD15.A5B5C
X-SGSI-MailScanner: Found to be clean
X-SGSI-From: olivier.bonaventure@uclouvain.be
X-SGSI-Spam-Status: No
Archived-At: <https://mailarchive.ietf.org/arch/msg/multipathtcp/Xw7tJQwxoPKHMLM02hlXLtakCuE>
Subject: Re: [multipathtcp] A proposal for MPTCP Robust session Establishment (MPTCP RobE)
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: Wed, 12 Jul 2017 21:17:38 -0000

Markus,

The problem that you raise is very similar to the HappyEyeBalls 
solutions that is used by web browsers on dual-stack hosts. The final 
goal is to make sure that applications can connect quickly to a 
destination when there are two paths available and one of them is bad.

I think that there are two ways to solve this problem :

1. Enhance MPTCP so that MPTCP can support this use case without 
requiring any modification to the applications

2. Enhance the applications without adding complexity to MPTCP

Concerning the first approach, I guess that you solution is to let the 
server parse through all the received SYN with a given key to check 
whether this is a dual connection establishment or a regular connection 
establishment. The limitation of this approach is that server needs to 
lookup all the keys of the received SYNs (possibly during a given period 
of time as you mention in your email) everytime it receives a SYN. This 
increases the SYN processing time on servers and thus the risk of denial 
of service attacks. It would be interesting to see how your 
implementation copes with this issue. Note that it requires the presence 
of a key inside the SYN (as defined in RFC6824). This implies that this 
is not compatible with RFC6824bis.

The second approach has been used successfully with HappyEyeBalls by web 
browers. It could be integrated in any library or higher level 
programming language by simply trying to open separate MPTCP connections 
and reset that one that connects slowly. A kernel implementation could 
probably also include code to support these parallel establishments of 
MPTCP connections. This would allow all applications to benefit from 
this feature, even those that use the C socket API directly.

The main benefit of the second approach is that the client is in 
control. It can delay the transmission of the second SYN as in 
HappyEyeBalls to avoid doubling unnecessarily the number of SYNs that a 
server has to process. Since the client is less loaded than the server, 
it is less an issue to put some complexity (e.g. timers, remembering the 
best interface, ...) on the client side.

If you travel to Prague, I'd be happy to discuss with you. We'll also 
participate to the hackathon on Sunday if you'd like to discuss about 
your implementation.

Best regards,


Olivier