Internet DRAFT - draft-xu-mptcp-prmp

draft-xu-mptcp-prmp



Network Working Group                                     Changqiao Xu 
Internet Draft                                                   BUPT 
Intended status: Experimental                               Hui Huang 
Expires: December 2017                                           BUPT 
                                                          Hongke Zhang 
                                                                 BUPT 
                                                        Chunshan Xiong 
                                          Huawei Technologies Co., Ltd 
                                                              Lei Zhu 
                                          Huawei Technologies Co., Ltd 
                                                         June 20, 2017 
                                        
             Multipath Transmission Control Protocol (MPTCP) 
                      Partial Reliability Extension 
                       draft-xu-mptcp-prmp-04.txt 


Status of this Memo 

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

   This document may contain material from IETF Documents or IETF 
   Contributions published or made publicly available before November 
   10, 2008. The person(s) controlling the copyright in some of this 
   material may not have granted the IETF Trust the right to allow 
   modifications of such material outside the IETF Standards Process.  
   Without obtaining an adequate license from the person(s) controlling 
   the copyright in such materials, this document may not be modified 
   outside the IETF Standards Process, and derivative works of it may 
   not be created outside the IETF Standards Process, except to format 
   it for publication as an RFC or to translate it into languages other 
   than English. 

   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF), its areas, and its working groups.  Note that 
   other groups may also distribute working documents as Internet-
   Drafts. 

   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." 

   The list of current Internet-Drafts can be accessed at 
   http://www.ietf.org/ietf/1id-abstracts.txt 

   The list of Internet-Draft Shadow Directories can be accessed at 
   http://www.ietf.org/shadow.html 

 
 
 
Xu, et al            Expires December 20, 2017               [Page 1] 
     
Internet-Draft   MPTCP Partial Reliability Extension         June 2017 


   This Internet-Draft will expire on December 21, 2017. 

Copyright Notice 

   Copyright (c) 2017 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. 

Abstract 

   This memo presents an extension to the Multipath Transmission Control 
   Protocol (MPTCP) that allows MPTCP endpoints in which case both 
   sender side and receiver side support this function to provide 
   partially reliable data transmission service to the upper layer 
   applications. In order to achieve the above goal, this memo extents 
   MPTCP by adding two new subtypes which are expressed as "PR_CAPABLE" 
   and "ACK_NOTIFY" and the corresponding processes are also introduced. 
   The extension can provide the backward-compatibility with MPTCP if 
   the new features are not available. 

   Table of Contents 


   1. Introduction ................................................ 3 
      1.1. Motivation ............................................. 3 
      1.2. Overview of PR-MPTCP.................................... 3 
   2. Conventions ................................................. 3 
   3. New Options ................................................. 3 
      3.1. PR_CAPABLE Option 
.......................................4 
      3.2. ACK_NOTIFY Option 
.......................................5 
   4. PR-MPTCP Workflow ........................................... 6 
      4.1. Connection Initialization 
...............................6 
      4.2. Process of Forced Acknowledged Packets ..................7 
         4.2.1.Sender Side Implementation ......................... 7 
         4.2.2.Receiver Side Implementation ....................... 8 
   5. Impact on Congestion Control Algorithm .......................8 
   6. Security Considerations ......................................9 

     
     
Xu, et al             Expires December 20, 2017               [Page 2] 
        
Internet-Draft   MPTCP Partial Reliability Extension         June 2017 
        

   7. IANA Considerations ......................................... 9 
   8. References .................................................. 9 
      8.1. Normative References.................................... 9 
      8.2. Informative References 
.................................10 
   9. Acknowledgments .............................................10 

1. Introduction 

   PR-MPTCP is the extension of MPTCP which can provide partially 
   reliable services when both sender side and receiver side support 
   this function. PR-MPTCP introduces the advance confirmation 
   mechanism to standard MPTCP which can abandon the transmission of 
   invalid data and meet the requirements of real time transport 
   services, such as streaming media. 

1.1. Motivation 

   As an extension of traditional TCP for multipath operation with 
   multiple addresses, Multipath Transmission Control Protocol (MPTCP) 
   provides a reliable and in-order delivery service to the upper layer 
   applications. However, with the development of internet, more and 
   more applications seek for the mechanisms which can transport data 
   with different reliability level in different ways. This memo 
   intends to fill the gap with the extension of MPTCP. 

1.2. Overview of PR-MPTCP 

   This demo mainly describes the following two changes to MPTCP to 
   provide the partial reliable function: 

   1. The negotiation of partial reliability function in the 
      initialization phase. 

   2. The maintaining of partial reliable processing, including sender 
      side and receiver side cooperation. 

2. Conventions 

   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]. 

3. New Options 

   Similar with the manner MPTCP enhances TCP functionality, PR-MPTCP 
   extends MPTCP by utilizing the TCP Options field and by defining new 

 
 
Xu, et al             Expires December 20, 2017               [Page 3] 
        
Internet-Draft   MPTCP Partial Reliability Extension         June 2017 


   options. Two new subtype MPTCP options are introduced, named 
   "PR_CAPABLE" and "ACK_NOTIFY", which are described next. 

3.1. PR_CAPABLE Option 

   The communicating endpoints negotiate the availability of the 
   partially reliable mechanism during connection establishment. The 
   function will be used only if both communicating sides are partial 
   reliability capable. In order to negotiate the availability of the 
   partially reliable mechanism during connection establishment, we 
   define a new subtype of MPTCP option named PR_CAPABLE. This subtype 
   extends the MP_CAPABLE option fields described in MPTCP by appending 
   partial reliability parameters setting information to the end of the 
   MP_CAPABLE option data. 

   The detailed format of PR_CAPABLE option is as follows: 

                    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    |Subtype|Version|A|B|C|D|E|F|G|H| 
   +---------------+---------------+-------+-------+---------------+ 
   |                 Option Sender's Key (64 bits)                 | 
   |                                                               | 
   +---------------------------------------------------------------+ 
   |                Option Receiver's Key (64 bits)                | 
   |                   (if option Length == 24)                    | 
   +-------------------------------+-------------------------------+ 
   |         Reserved          |P|T|           Threshold           | 
   +---------------------------------------------------------------+ 

   The new fields include two flags (P and T) and Threshold, which will 
   be described next. Naturally the value in the Length field of the 
   PR-MPTCP header will also be larger with 4 Bytes than that in the 
   similar MPTCP header. 

     P: 1 bit 

     This flag bit indicates whether the sender wishes to use the 
   packet-based partial reliability transmission or not. By setting P 
   to 1, the sender requests the receiver to enable packet-based 
   partial reliability transmission. If P equals 0, the packet-based 
   partial reliability transmission will not be used. 

     T: 1 bit 


 
 
Xu, et al             Expires December 20, 2017               [Page 4] 
        
Internet-Draft   MPTCP Partial Reliability Extension         June 2017 
        

     This flag bit indicates whether the sender wishes to use the time-
   based partial reliability transmission. By setting T to 1, the 
   sender requests the receiver to enable time-based partial 
   reliability transmission. If T equals 0, the time-based partial 
   reliability transmission will not be used. 

     Threshold: 16 bits 

     The meaning of the value in this field depends on the value of flag 
   P and T. If P flag is set to 1, the value in this field is used as 
   the maximum number of transmission attempts for each packet. If T 
   flag is set to 1, the value in this field is used as the maximum 
   delay of transmission for each packet, expressed in milliseconds. 

     In order to avoiding the conflict of flags P and T, PR-MPTCP 
   specify that only one bit of these two flags can be set to 1 at the 
   same time. When the receiver obtains a PR_CAPABLE option which set 
   both of the flags P and T to 1 or 0, the receiver performs no action 
   and classic MPTCP transmission takes place by default. 

3.2. ACK_NOTIFY Option 

   The detailed format of ACK_NOTIFY option is as follows: 
                    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    |Subtype|       |Num of Subflows| 
   +---------------+---------------+-------+-------+---------------+ 
   |                    Subflow 1 Advanced ACK                     | 
   +---------------------------------------------------------------+ 
   |                    Subflow 2 Advanced ACK                     | 
   +---------------------------------------------------------------+ 
   \                               .                               / 
   /                               .                               \ 
   +---------------------------------------------------------------+ 
   |                    Subflow N Advanced ACK                     | 
   +---------------+---------------+---------------+---------------+ 
   | Subflow 1 ID  | Subflow 2 ID  |      ...      | Subflow N ID  | 
   +---------------------------------------------------------------+ 

   When the sender identifies a packet maybe useless through the rules 
   (exceeding its maximum number of retransmission attempts or 
   exceeding its delay limit as set by the Threshold), the packet is 
   not transmitted anymore. The sender has to inform the receiver about 
   the not-transmitted packet sequence number, so as it will not wait 
   for its arrival anymore. This is performed by sending a forced 
 
 
Xu, et al             Expires December 20, 2017               [Page 5] 
        
Internet-Draft   MPTCP Partial Reliability Extension         June 2017 


   acknowledgement with the next data packet with a new option 
   ACK_NOTIFY in it. Upon receiving this information, the receiver 
   updates its local ACK point and then sends a new ACK as response. 
   When receiving this ACK packet indicating the new ACK point by 
   passing the not-transmitted packet, the sender releases this packet 
   from the sender buffer just like when it is received successfully. 
   This process can involve more than one packet on multiple subflows. 

   Num of Subflows: 8 bits 

    This field indicates how many subflows need to send advanced ACK 
   notifications. This field is designed for indexing purpose. For 
   example, if the Num of Subflows field is set to 2, it means the 
   following 8 bytes (two rows as shown in above figure) contain the 
   information of two subflows (first 4 bytes for the first subflow and 
   the second 4 bytes for the second subflow) specified with the 
   Address ID appended at the end of the ACK_NOTIFY option. 

   Subflow # Advanced ACK: 32 bits 

     This field indicates the sequence number of the packet to be 
   forced acknowledged in subflow #. If more than one data packets need 
   to be forced acknowledged in the same subflow, only the largest 
   sequence number will be indicated in the ACK_NOTIFY option.  

   Subflow # ID: 8 bits 

     The address ID is the destination to which the notification should 
   be sent. 

   If a single option can't contain all forward ACK information for all 
   subflows due to the limitation of the TCP option size, the sender 
   SHOULD wait for another chance to send these forward information. 

4. PR-MPTCP Workflow 

4.1. Connection Initialization 

   The PR-MPTCP communication initiator sends PR_CAPABLE option instead 
   of sending the MP_CAPABLE option, as in the classic MPTCP connection 
   initialization case. If the other side is not partial reliability 
   capable, but supports MPTCP, the connection initialization will 
   follow the regular MPTCP connection establishment process. If the 
   other side is not MPTCP capable, TCP connection establishment will 
   be performed instead. 


 
 
Xu, et al             Expires December 20, 2017               [Page 6] 
        
Internet-Draft   MPTCP Partial Reliability Extension         June 2017 


   At the beginning, the initiator SHOULD add the PR_CAPABLE option 
   into the SYN request packet to declare that it is PR-MPTCP capable. 

   Upon receipt of a SYN that contains PR_CAPABLE option, the receiver 
   SHOULD send a SYN/ACK containing PR_CAPABLE, if it is PR-MPTCP 
   capable; or ignore the PR_CAPABLE option in the SYN and continue to 
   act as MPTCP does, if it is not PR-MPTCP capable but MPTCP capable. 

   If a connection initiator which is PR-MPTCP capable received a 
   SYN/ACK containing PR_CAPABLE option, the transmission will adopt 
   the partially reliable approach. Otherwise, if the received SYN/ACK 
   does not contain PR_CAPABLE option (maybe the other side is not PR-
   MPTCP capable or the PR_CAPABLE option is stripped off by the middle 
   box) but a MP_CAPABLE option contained, the connection will fall 
   back to MPTCP connection, or TCP connection will be used.  

   The other process such as exchange of address information are the 
   same with the operation mentioned in [RFC6824]. 

4.2. Process of Forced Acknowledged Packets 

   In the implementation of partially reliable transmission, the sender 
   gives up the retransmission of over-limited packets to ensure the 
   requirements of some upper layer applications. 

4.2.1. Sender Side Implementation 

   Apart from the standard processing in MPTCP, in order to achieve the 
   partial reliability goal, the following extra actions MUST be taken: 

      1) The sender maintains a mandatory acknowledgment points 
         (Advanced ACK Point) for each subflow and MUST update it when 
         the judgment sub-processes determine to advance the cumulative 
         ACK point, this means that all data with sequence numbers less 
         than the Cumulative ACK Point is regarded as having been ACKed; 

      2) When receiving a SACK, the sender side firstly processes the 
         SACK as MPTCP does, namely updates the Cumulative ACK Point; 

      3) Then the judgment sub-processes SHOULD compare the cumulative 
         ACK with Advanced ACK Point. If Advanced ACK Point is less than 
         the cumulative ACK, then update Advanced ACK Point to be equal 
         to the cumulative ACK; 

      4) After processing SACK, the sender SHOULD try to advance the 
         Advanced ACK Point for each subflow, if Advanced ACK Point is 

 
 
Xu, et al             Expires December 20, 2017               [Page 7] 
        
Internet-Draft   MPTCP Partial Reliability Extension         June 2017 
        

         greater than the cumulative ACK, the judgment sub-processes 
         SHOULD inform the receiver of updating its local cumulative ACK 
         Point by sending a packet with ACK_NOTIFY option; 

      5) After sending a packet with ACK_NOTIFY option, the sender MUST 
         be sure that at least a RTX timer is running, if the timer 
         timeout occurs, the packet with the ACK_NOTIFY option will be 
         retransmitted. 

   The default policy to send ACK_NOTIFY option in this document is 
   bundling the notification of each subflow in one TCP option space as 
   long as the total size of the option would not exceed the limitation 
   of the TCP option size, in addition, the total size of the packet 
   SHOULD NOT exceed the MTU. 

   Another situation that is worth highlighting is one of the subflows 
   is broken during the transmission. In this case, the packets that 
   have been sent on this subflow will be retransmitted on other normal 
   ones according to existing MPTCP. In this situation, the sender 
   SHOULD update the Advanced ACK of other subflows with the 
   information contained in the broken subflows?Advanced ACK. 

4.2.2. Receiver Side Implementation 

   When receiving a packet with an ACK_NOTIFY option, the receiver 
   compares the local Cumulative ACK Point with the notified ACK 
   contained in ACK NOTIFY option for the corresponding subflow, and 
   releases the forced acknowledged packets from the receiver buffer. 

   When the forced acknowledged packets arrive at the receiver side, 
   these packets SHOULD be treated as duplicate packets, and the 
   receiver processes then as MPTCP does, (i.e. drop). 

5. Impact on Congestion Control Algorithm 

   When a packet is forcedly acknowledged, it SHOULD be treated as loss 
   and trigger the congestion control algorithms. If more than one 
   packets are forcedly acknowledged, the congestion window adjustment 
   SHOULD be triggered only once in a short specified duration, such as 
   a RTT. 

6. Some Overhead Consideration 

   In order to guarantee the normal work, PRMPTCP defines two flag bits 
   and a Threshold parameter when initializing the connection. And it 
   also introduces the ACK_NOTIFY option to the MPTCP. These new 

 
 
Xu, et al             Expires December 20, 2017               [Page 8] 
        
Internet-Draft   MPTCP Partial Reliability Extension         June 2017 
        

   parameters and other judgment sub-processes are the overhead of 
   PRMPTCP. 

   However, when one or more over-limited packets are considered to be 
   useless, the sender will put their information into the ACK_NOTIFY 
   option and binding this option to the next packet. By adopting this 
   forcedly acknowledged scheme, the sender can avoid retransmitting 
   those useless packets, and improve the overall transmission 
   efficiency. In a word, the overhead of PRMPTCP is reasonable and 
   tolerable. 

7. Security Considerations 

   This memo develops no new security scheme for MPTCP. PR-MPTCP share 
   the same security issues discussed in [RFC6824] with MPTCP. 

8. IANA Considerations 

  +-------+--------------+----------------------------+---------------+ 
  | Value |    Symbol    |            Name            |   Reference   | 
  +-------+--------------+----------------------------+---------------+ 
  |  0xa  |  PR_CAPABLE  |      Multipath Partial     |      This     | 
  |       |              |     Reliability Capable    |   document,   | 
  |       |              |                            | Section 3.1   | 
  |  0xb  |  ACK_NOTIFY  |       Acknowledgement      |      This     | 
  |       |              |         Notification       |   document,   | 
  |       |              |                            | Section 3.2   | 
  +-------+--------------+----------------------------+---------------+ 
                      Table 1: MPTCP Option Subtypes 

   The 4-bit MPTCP subtype sub-registry ("MPTCP Option Subtypes" under 
   the "Transmission Control Protocol (TCP) Parameters" registry) was 
   defined in [RFC6824]. This document defines two additional subtype 
   (PR_MPCABLE and ACK_NOTIFY). The updates are listed in the above 
   table. 

9. References 

9.1. Normative References 

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





 
 
Xu, et al             Expires December 20, 2017               [Page 9] 
        
Internet-Draft   MPTCP Partial Reliability Extension         June 2017 
    

9.2. Informative References 

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

10. Acknowledgments 

   This Internet Draft is the result of a great deal of constructive 
   discussion with several people, notably Man Tang, Jiuren Qin, and 
   Peng Wang. 

   This document was prepared using 2-Word-v2.0.template.dot. 

































 
 
Xu, et al             Expires December 20, 2017              [Page 10] 
        
Internet-Draft   MPTCP Partial Reliability Extension         June 2017 


Authors' Addresses 

   Changqiao Xu 
   Beijing University of Posts and Telecommunications 
   Institute of Network Technology, No. 10, Xitucheng Road, 
   Haidian District, Beijing 
   P.R. China 
  
   Email: cqxu@bupt.edu.cn 


   Hui Huang 
   Beijing University of Posts and Telecommunications 
   Institute of Network Technology, No. 10, Xitucheng Road, 
   Haidian District, Beijing 
   P.R. China 
  
   Email: hh1126@bupt.edu.cn 


   Hongke Zhang 
   Beijing University of Posts and Telecommunications 
   Institute of Network Technology, No. 10, Xitucheng Road, 
   Haidian District, Beijing 
   P.R. China 
  
   Email: hkzhang@bupt.edu.cn 


   Chunshan Xiong 
   Huawei Technologies Co., Ltd 
   Science and Technology Demonstration Garden, No. 156, Zhongguancun 
   North Qing Road, 
   Haidian District, Beijing 
   P.R. China 
  
   Email: sam.xiongchunshan@huawei.com 

   Lei Zhu 
   Huawei Technologies Co., Ltd 
   Science and Technology Demonstration Garden, No. 156, Zhongguancun 
   North Qing Road, 
   Haidian District, Beijing 
   P.R. China 
  
   Email: lei.zhu@huawei.com 

 
 
Xu, et al             Expires December 20, 2017              [Page 11]