Re: [multipathtcp] potential MPTCP proxy charter item

<mohamed.boucadair@orange.com> Tue, 08 November 2016 10:07 UTC

Return-Path: <mohamed.boucadair@orange.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 29217129625 for <multipathtcp@ietfa.amsl.com>; Tue, 8 Nov 2016 02:07:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.119
X-Spam-Level:
X-Spam-Status: No, score=-2.119 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
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 A-cF96vgUf5T for <multipathtcp@ietfa.amsl.com>; Tue, 8 Nov 2016 02:07:10 -0800 (PST)
Received: from relais-inet.francetelecom.com (relais-ias92.francetelecom.com [193.251.215.92]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 585A7128E18 for <multipathtcp@ietf.org>; Tue, 8 Nov 2016 02:07:10 -0800 (PST)
Received: from omfedm08.si.francetelecom.fr (unknown [xx.xx.xx.4]) by omfedm09.si.francetelecom.fr (ESMTP service) with ESMTP id 88FF82DC18A; Tue, 8 Nov 2016 11:07:08 +0100 (CET)
Received: from Exchangemail-eme2.itn.ftgroup (unknown [10.114.31.41]) by omfedm08.si.francetelecom.fr (ESMTP service) with ESMTP id 5BCC623808A; Tue, 8 Nov 2016 11:07:08 +0100 (CET)
Received: from OPEXCLILMA3.corporate.adroot.infra.ftgroup ([fe80::60a9:abc3:86e6:2541]) by OPEXCLILM31.corporate.adroot.infra.ftgroup ([fe80::2cc9:4bac:7b7d:229d%19]) with mapi id 14.03.0319.002; Tue, 8 Nov 2016 11:07:08 +0100
From: mohamed.boucadair@orange.com
To: Joe Touch <touch@isi.edu>, Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch>, "Olivier.Bonaventure@uclouvain.be" <Olivier.Bonaventure@uclouvain.be>
Thread-Topic: [multipathtcp] potential MPTCP proxy charter item
Thread-Index: AQHSOREZnemdljzUmEGiGID3gGUCC6DNppCAgAEtwDA=
Date: Tue, 08 Nov 2016 10:07:07 +0000
Message-ID: <787AE7BB302AE849A7480A190F8B933009DAE088@OPEXCLILMA3.corporate.adroot.infra.ftgroup>
References: <CCD1A987-0F3C-4775-8B0E-5232965E7E22@nokia.com> <22907_1476946228_58086934_22907_5464_1_a7bca8d2-7656-4ff0-9f01-cf307f017148@OPEXCLILM42.corporate.adroot.infra.ftgroup> <57543A7A-1542-4C60-A5D3-E1658354BE5A@tik.ee.ethz.ch> <73a1c0dd64a843a5baa645d960c82886@rew09926dag03b.domain1.systemhost.net> <b8bfd5c6-21eb-4c4f-879a-851c3a71792a@OPEXCLILM31.corporate.adroot.infra.ftgroup> <56CE164A-9A62-4B57-9CFF-33DBD45BA8B2@gmail.com> <787AE7BB302AE849A7480A190F8B933009D9CA84@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <85D52AE4-FE5F-4977-8927-6BDB72614D07@gmail.com> <787AE7BB302AE849A7480A190F8B933009DAAA88@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <D2630820-7586-4361-A626-3278F22C319C@gmail.com> <B7D8197F-D833-41BB-A4A4-D6F31A3B8993@tik.ee.ethz.ch> <4fceb7e5-a0b0-d4d2-8669-fad0df59095d@uclouvain.be> <C0212561-63DA-4578-9795-928B51F2A71B@tik.ee.ethz.ch> <c93d9d6b-f46b-2b11-da6b-a308159ef7c0@isi.edu> <00ba6ab8-8fbf-ab19-b996-b84b87ad5520@isi.edu> <F9AAAF6C-DF82-412E-9C88-9043CC1EC3AA@isi.edu>
In-Reply-To: <F9AAAF6C-DF82-412E-9C88-9043CC1EC3AA@isi.edu>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.168.234.1]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-PMX-Version: 6.2.1.2478543, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2016.11.8.92717
Archived-At: <https://mailarchive.ietf.org/arch/msg/multipathtcp/iwH4o0E6Oi982gKwj2mjp0PFK5s>
Cc: "multipathtcp@ietf.org" <multipathtcp@ietf.org>
Subject: Re: [multipathtcp] potential MPTCP proxy charter item
X-BeenThere: multipathtcp@ietf.org
X-Mailman-Version: 2.1.17
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, 08 Nov 2016 10:07:13 -0000

Joe,

I'm inserting the full text of that section here: 

====
         4.2.2.5  TCP Options: RFC-793 Section 3.1

            A TCP MUST be able to receive a TCP option in any segment.
            A TCP MUST ignore without error any TCP option it does not
            implement, assuming that the option has a length field (all
            TCP options defined in the future will have length fields).
            TCP MUST be prepared to handle an illegal option length
            (e.g., zero) without crashing; a suggested procedure is to
            reset the connection and log the reason.
====

   The proposed design for the MP_CONVERT option does not violate that
   text, IMO.  I'm listing here the design approaches that we considered
   so far:

      (1) no change to MP_CAPABLE: MPTCP proxies are prepared by design
      to look at the payload of SYN to retrieve MP_CONVERT options.

      *  MP_CONVERT options are inserted in the payload of a SYN that
         includes MP_CAPABLE.
      *  If the remote peer does not support MPTCP, the connection will
         be reverted to TCP according to the base MPTCP specification.
      *  If the remote peer supports MPTCP, and it is prepared to
         receive options in the SYN payload, it will echo those options
         in the SYN/ACK.  The MPTCP connection will continue.
      *  If the remote peer supports MPTCP, but it is not prepared to
         receive options in the SYN payload, it will reply with a SYN/
         ACK that does not echo MP_CONVERT.  
      *  The capabilities of the MPTCP proxy may be stored locally to
         determine whether future connections can make use of the
         MP_CPNVERT or not.  Of course, this information will be flushed
         if a new MPTCP proxy is configured, or after the expiry of a
         timer.  This is particularly useful for the explicit mode where
         it is likely that the same MPTCP proxy will handle all
         connections from the same subscriber.

     (2) change MP_CAPABLE to explicitly indicate that options are
      present in the SYN payload:

      *  A flag in the MP_CAPABLE will be set to indicate to a remote
         peer that MP_CONVERT options are included in the payload.
      *  If the remote peer does not support MPTCP, the connection will
         be reverted to TCP as per base MPTCP specification.
      *  If the remote peer supports MPTCP, and is prepared to receive
         options in the payload, it will echo the flag in the SYN/ACK
         (and eventually the options).  The MPTCP connection will
         continue.
      *  If the remote peer supports MPTCP, but does not support that
         Flag, it won't echo the flag in the SYN/ACK.
      *  The capabilities of the MPTCP proxy may be stored locally to
         determine whether future connections can make use of the
         MP_CPNVERT or not.  Of course, this information will be flushed
         if a new MPTCP proxy is configured, or after the expiry of a
         timer.  This is particularly useful for the explicit mode where
         it is likely that the same MPTCP proxy will handle all
         connections from the same subscriber.

   CONCLUSION: The proposed design satisfy both requirements in
   Section 4.2.2.5.  In particular, this one: "A TCP MUST ignore without
   error any TCP option it does not implement"

Cheers,
Med

> -----Message d'origine-----
> De : multipathtcp [mailto:multipathtcp-bounces@ietf.org] De la part de Joe
> Touch
> Envoyé : lundi 7 novembre 2016 17:34
> À : Mirja Kühlewind; Olivier.Bonaventure@uclouvain.be
> Cc : multipathtcp@ietf.org
> Objet : Re: [multipathtcp] potential MPTCP proxy charter item
> 
> More specifically - see section 4.2.2.5 of rfc1122.
> 
> Joe
> 
> > On Nov 7, 2016, at 8:07 AM, Joe Touch <touch@isi.edu> wrote:
> >
> > Oh - a quick followup.
> >
> > If you have an option that "poisons" the connection if not confirmed (as
> > would using long EDO inside the SYN), then you have to retry without
> > that option. That is *possible*, but there's another problem.
> >
> > RFC793 defines options as optional. Making any option mandatory would
> > require updating RFC793. That sort of change is exactly why long EDO
> > (actually extending the option space, rather than declaring the
> > capability) is currently prohibited in EDO.
> >
> > Joe
> >
> >
> >> On 11/7/2016 7:56 AM, Joe Touch wrote:
> >>
> >>> On 11/7/2016 7:42 AM, Mirja Kühlewind wrote:
> >>> Do you mean the MCP forwards the original SYN (and basically does
> nothing if the server supports MPTCP) or does the MCP terminate the TCP
> connection and start a new TCP connection with MP_CAPABLE towards the
> server?
> >>>
> >>> Mirja
> >> If you're OK with needing to terminate a failed option exchange, then
> it
> >> might be possible to use EDO in the SYN in its current form.
> >>
> >> TCPM decided to prohibit that in the general case, but I could ask them
> >> to allow that in very limited environments (but it could NEVER be
> >> default on).
> >>
> >> Note - the use cases I'm hearing appear to assume very strong knowledge
> >> about the other end of the connection and the path. In that case, you
> >> probably can skip most - if not all - of the 'negotiation' options and
> >> just start using them during the SYN too. However, if you say "no, we
> >> need to confirm", then you would not be able to use EDO inside the SYN.
> >>
> >> Joe
> 
> _______________________________________________
> multipathtcp mailing list
> multipathtcp@ietf.org
> https://www.ietf.org/mailman/listinfo/multipathtcp