Internet DRAFT - draft-boucadair-mptcp-probe-subflow

draft-boucadair-mptcp-probe-subflow







Network Working Group                                       M. Boucadair
Internet-Draft                                              C. Jacquenet
Updates: 6824 (if approved)                               France Telecom
Intended status: Experimental                               July 6, 2015
Expires: January 7, 2016


                         Probing MPTCP Subflows
                 draft-boucadair-mptcp-probe-subflow-00

Abstract

   This document specifies an extension to Multipath TCP (MPTCP) that is
   meant to assess whether a path used to establish a given subflow is
   MPTCP-friendly, i.e., intermediate nodes involved in that path do not
   alter nor strip MPTCP options, which would prevent the establishment
   of MPTCP communications along that path.  A new flag bit, called
   Probe Flag (P-flag) is defined for this purpose.

   This document updates RFC6824.

Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on January 7, 2016.








Boucadair & Jacquenet    Expires January 7, 2016                [Page 1]

Internet-Draft                MPTCP Probing                    July 2015


Copyright Notice

   Copyright (c) 2015 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  The Problem . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Probe Flag (P-flag) . . . . . . . . . . . . . . . . . . . . .   3
   4.  Security Considerations . . . . . . . . . . . . . . . . . . .   6
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
   6.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   6
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   6
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   6
     7.2.  Informative References  . . . . . . . . . . . . . . . . .   6
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   6

1.  Introduction

   This document specifies an extension to Multipath TCP (MPTCP,
   [RFC6824]) that is meant to assess whether a path used to establish a
   given subflow is MPTCP-friendly.  That is, intermediate nodes
   involved in that path do not alter nor strip MPTCP options, which
   would prevent the establishment of MPTCP communications along that
   path.

   The problem is summarized briefly in Section 2 while the probe flag
   is defined in Section 3.

   The solution proposed in this document allows to anticipate failures
   due to the presence of MPTCP-unfriendly devices in the communication
   paths.








Boucadair & Jacquenet    Expires January 7, 2016                [Page 2]

Internet-Draft                MPTCP Probing                    July 2015


2.  The Problem

   MPTCP supports a backup mode that relies on a dedicated flag, called
   backup flag carried in the MP_JOIN option: when set, this flag
   informs the remote peer that this is a backup subflow.  Several
   problems may be arise such as.  For example:

   o  A peer decides to use a backup subflow but MPTCP cannot be used
      for that subflow because an intermediate function removes DSS
      options, for example.  This failure will have a negative impact on
      the quality of experience.

   o  Several subflows can be candidate to be used as backup but the
      participating nodes do not know in advance whether associated
      forwarding paths are MPTCP-friendly, i.e., they can actually
      support MPTCP subflows.  The participating nodes need some "hints"
      to decide which subflows are to be used as regular ones and those
      as backup.  This lack of information may also affect the perceived
      quality of experience.

3.  Probe Flag (P-flag)

   As a solution to the problem described in Section 2, a meaning is
   associated with one of the reserved bits in MP_JOIN.  This new flag
   bit is called: Probe Flag (P-flag).  This flag bit is used to
   explicitly inform the remote peer that a probing procedure is
   associated with the corresponding subflow.

   Figure 1 and Figure 2 show the required update to the MP_JOIN option
   format in SYN and SYN/ACK.





















Boucadair & Jacquenet    Expires January 7, 2016                [Page 3]

Internet-Draft                MPTCP Probing                    July 2015


OLD:

                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +---------------+---------------+-------+-----+-+---------------+
      |     Kind      |  Length = 12  |Subtype|     |B|   Address ID  |
      +---------------+---------------+-------+-----+-+---------------+
      |                   Receiver's Token (32 bits)                  |
      +---------------------------------------------------------------+
      |                Sender's Random Number (32 bits)               |
      +---------------------------------------------------------------+

NEW:
                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +---------------+---------------+-------+-+-+-+-+---------------+
      |     Kind      |  Length = 12  |Subtype|r|r|P|B|   Address ID  |
      +---------------+---------------+-------+-+-+-+-+---------------+
      |                   Receiver's Token (32 bits)                  |
      +---------------------------------------------------------------+
      |                Sender's Random Number (32 bits)               |
      +---------------------------------------------------------------+

      where "rr" are reserved bits for future assignment as
      additional flag bits. r bits MUST each be sent as zero and MUST be
      ignored on receipt.


       Figure 1: Join Connection (MP_JOIN) Option (for Initial SYN)






















Boucadair & Jacquenet    Expires January 7, 2016                [Page 4]

Internet-Draft                MPTCP Probing                    July 2015


OLD:
                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +---------------+---------------+-------+-----+-+---------------+
      |     Kind      |  Length = 16  |Subtype|     |B|   Address ID  |
      +---------------+---------------+-------+-----+-+---------------+
      |                                                               |
      |                Sender's Truncated HMAC (64 bits)              |
      |                                                               |
      +---------------------------------------------------------------+
      |                Sender's Random Number (32 bits)               |
      +---------------------------------------------------------------+

NEW:
                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +---------------+---------------+-------+-+-+-+-+---------------+
      |     Kind      |  Length = 16  |Subtype|r|r|P|B|   Address ID  |
      +---------------+---------------+-------+-+-+-+-+---------------+
      |                                                               |
      |                Sender's Truncated HMAC (64 bits)              |
      |                                                               |
      +---------------------------------------------------------------+
      |                Sender's Random Number (32 bits)               |
      +---------------------------------------------------------------+

      where "rr" are reserved bits for future assignment as
      additional flag bits. r bits MUST each be sent as zero and MUST be
      ignored on receipt.


    Figure 2: Join Connection (MP_JOIN) Option (for Responding SYN/ACK)

   When set, the P-Flag bit indicates to the remote peer that a probing
   is associated with this subflow.  The probing logic is to be further
   defined in future versions of this specification.  Only probing data
   MUST be sent over a subflow that is tagged to be under probing.
   Probing MUST NOT interfere with data exchange over regular subflows,
   if any.

   An MPTCP endpoint that receives an MP_JOIN with a P-flag set, MUST
   echo the P-flag in the SYN/ACK if it supports the probing mechanism.
   If not, the P-flag MUST be ignored (i.e., the P-flag of the MP_JOIN
   included in the SYN/ACK must be set to 0).

   P-flag can be set independently of the backup flag.





Boucadair & Jacquenet    Expires January 7, 2016                [Page 5]

Internet-Draft                MPTCP Probing                    July 2015


   The handling of the B flag when P-flag is also set, is not altered by
   this specification.

4.  Security Considerations

   MPTCP-related security considerations are documented in [RFC6824] and
   [I-D.ietf-mptcp-attacks].

5.  IANA Considerations

   This document does not require any action from IANA.

6.  Acknowledgements

   TBC

7.  References

7.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC6824]  Ford, A., Raiciu, C., Handley, M., and O. Bonaventure,
              "TCP Extensions for Multipath Operation with Multiple
              Addresses", RFC 6824, January 2013.

7.2.  Informative References

   [I-D.ietf-mptcp-attacks]
              Bagnulo, M., Paasch, C., Gont, F., Bonaventure, O., and C.
              Raiciu, "Analysis of MPTCP residual threats and possible
              fixes", draft-ietf-mptcp-attacks-04 (work in progress),
              March 2015.

Authors' Addresses

   Mohamed Boucadair
   France Telecom
   Rennes  35000
   France

   Email: mohamed.boucadair@orange.com








Boucadair & Jacquenet    Expires January 7, 2016                [Page 6]

Internet-Draft                MPTCP Probing                    July 2015


   Christian Jacquenet
   France Telecom
   Rennes  35000
   France

   Email: christian.jacquenet@orange.com













































Boucadair & Jacquenet    Expires January 7, 2016                [Page 7]