Internet DRAFT - draft-xu-mptcp-congestion-control

draft-xu-mptcp-congestion-control



Multipath TCP                                                 Mingwei Xu
Internet Draft                                       Tsinghua University
Intended status: Standard Track                                   Yu Cao
Expires: July 2017                                           NDSC, China
                                                             Enhuan Dong
                                                     Tsinghua University
                                                         January 1, 2017



                 Delay-based Congestion Control for MPTCP
                 draft-xu-mptcp-congestion-control-05.txt


Abstract

   This document describes the mechanism of wVegas (weighted Vegas),
   which is a delay-based congestion control for MPTCP. The current
   congestion control algorithm of MPTCP, LIA, achieves only course-
   grained load balancing, since it is based on packet loss event. On
   the contrary, wVegas adopts packet queuing delay as congestion
   signals, thus achieving fine-grained load balancing. Compared with
   loss-based algorithms, wVegas is more sensitive to the changes of
   network congestion and thus achieves more timely traffic shifting and
   quicker convergence. WVegas has been implemented in the Linux Kernel
   and is part of the UCLouvain's MPTCP implementation now.

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), 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 July 1, 2017                  [Page 1]

Internet-Draft        MPTCP Congestion Control            January 2017


   This Internet-Draft will expire on July 1, 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.

Table of Contents


   1. Introduction ................................................ 3
      1.1. Requirements Language................................... 4
      1.2. Terminology ............................................ 4
   2. Weighted Vegas Algorithm..................................... 6
   3. Practical considerations..................................... 8
   4. Discussion .................................................. 9
   5. Security Considerations..................................... 10
   6. IANA Considerations ........................................ 10
   7. References ................................................. 10
      7.1. Normative References................................... 10
      7.2. Informative References................................. 10

















Xu, et al.              Expires July 1, 2017                  [Page 2]

Internet-Draft        MPTCP Congestion Control            January 2017


1. Introduction

   Performing congestion control independently on each path cannot
   guarantee the fairness for multipath transportation. So the major
   goal of multipath congestion control is to couple all the subflows
   belonging to a flow in order to achieve both fairness and efficiency.
   The current MPTCP adopts a congestion control algorithm called Linked
   Increases algorithm [RFC6356]. It provides the ability to shift
   traffic from more congested paths to less ones. However, it achieves
   only course-grained load balancing, since it uses the packet losses
   as the signal of network congestion and will shift traffic only after
   the loss event. Other alternative congestion control algorithms, such
   as OLIA [OLIA] or Balia [BALIA], have the same way to judge the
   congestion. These proposals lack the finer-grained information
   related to the degree of congestion.

   In this draft, we introduce weighted Vegas (wVegas), which is a
   delay-based multipath congestion control algorithm. Comparing to LIA,
   OLIA and Balia wVegas adopts packet queuing delay as congestion
   signals, which is more sensitive to the changes of network
   congestion, thus achieving fine-grained load balancing. [WVEGAS]

   WVegas is developed using the network utility maximization model
   [ADMTQM]. By solving the maximization problem, we get a general
   framework for designing an algorithm of multipath congestion control,
   which constitutes the Congestion Equality Principle and an
   approximate iterative algorithm [WVEGAS]. The Congestion Equality
   Principle illustrates that a fair and efficient traffic shifting
   implies every flow strives to equalize the extent of congestion that
   it perceives on all its available paths. And the approximate
   iterative algorithm makes the solution practical in real networks.
   The wVegas is precisely derived from the framework.

   As the name shows, wVegas is originated from TCP-vegas [VEGAS] that
   measures packet queuing delay to estimate the extent of network
   congestion. TCP-vegas has two configurable parameters alpha and beta,
   for adjusting the congestion window during the congestion avoidance
   phase. Since the two parameters are commonly very close to each
   other, wVegas uses only one parameter for brevity. The design
   philosophy of wVegas is depicted as follows. First, WVegas performs
   in the same way as TCP-vegas on each path. Second, each flow has a
   fixed sum of parameters alpha, in spite of the number of subflows the
   flow has. Third, wVegas adaptively adjusts the parameter alpha
   resulting in the change of the transmission rate of the related
   subflows so as to equalize the extent of congestion on the path.




Xu, et al.              Expires July 1, 2017                  [Page 3]

Internet-Draft        MPTCP Congestion Control            January 2017


   WVegas has been implemented in the Linux Kernel and is part of
   UCLouvain's MPTCP implementation now [MPLKI]. In [VEGAS], we study
   the traffic shifting ability of wVegas, reveal that it can guarantee
   the intra-protocol fairness and show the domino effect which is an
   indication of good performance.

1.1. 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 [RFC2119].

1.2. Terminology

   Regular TCP: The standard version of TCP, which is currently
   restricted to a single path per connection.

   Multipath TCP (MPTCP): A modified version of the regular TCP that
   provides the ability to simultaneously use multiple paths between
   peers.

   LIA: The Linked-Increases Algorithm of MPTCP. [RFC6356]

   OLIA: The Opportunistic Linked-Increases Algorithm for MPTCP. [OLIA]

   Balia: Balanced Linked Adaptation Congestion Control Algorithm for
   MPTCP [BALIA]

   WVegas: Weighted Vegas, which is a delay-based multipath congestion
   control algorithm for MPTCP. [WVEGAS]

   Subflow (path): A single path TCP connection always belonging to a
   MPTCP connection.

   Expected sending rate: The best rate that a single path flow can get
   under the current congestion window condition.

   Actual sending rate: The actual rate that a single path flow can get
   under the current congestion window condition.

   Diff_r: For subflow r, the difference between Expected sending rate
   and Actual sending rate.

   Cwnd_r: The congestion window on a subflow r (maintained in packets).

   Ssthresh_r: The slow start threshold of a subflow r.



Xu, et al.              Expires July 1, 2017                  [Page 4]

Internet-Draft        MPTCP Congestion Control            January 2017


   Rtt_r: The average RTT in the last round on a subflow r.

   Rate_r: The rate of subflow r, which is used to estimate the
   equilibrium rate of subflow r.

   Base_rtt_r: The RTT of a subflow r when the sub-connection is not
   congested.

   Alpha_r: TCP-vegas tries to keep the extra bytes between two
   configurable parameters in a single path flow. For subflow r, we use
   only one parameter, alpha, for brevity.

   Total_alpha: The total bytes backlogged in the network for all
   subflows belonging to one MPTCP flow.

   Weight_r: The rate of subflow r divided by the total rate among all
   subflows belonging to one MPTCP flow.

   Gamma: When the Actual sending rate falls below the Expected sending
   rate by the gamma threshold, TCP-vegas changes from slow start to
   congestion avoidance phase.

   Queue_delay_r: For subflow r, queue_delay_r records the minimal
   queuing delay measured after the last backoff.
























Xu, et al.              Expires July 1, 2017                  [Page 5]

Internet-Draft        MPTCP Congestion Control            January 2017


2. Weighted Vegas Algorithm

   In this section, we introduce wVegas. WVegas is a delay-based
   congestion control algorithm and also uses the unmodified TCP
   behavior in the case of loss event. WVegas is an alternative for LIA,
   the current congestion control of MPTCP.

   The algorithm mainly applies to the congestion avoidance phase and,
   in slow start phase, it also add a chance to enter the congestion
   avoidance phase earlier, which is similar with the implementation of
   the TCP-vegas [VEGAS]. The decrease of the congestion avoidance
   phase, the fast retransmit and fast recovery algorithms are the same
   as TCP [RFC5681].

   The following operations of wVegas must be performed on the end of
   each transmission round.

   For a subflow r, the difference between the Expected sending rate and
   Actual sending rate is calculated as follows:

       diff_r = (cwnd_r / base_rtt_r - cwnd_r / rtt_r) * base_rtt_r

   If the subflow is in the slow start phase and the diff_r is larger
   than gamma, it must enter the congestion avoidance phase. This
   operation is inherited from TCP-vegas [VEGAS] and can be achieved by
   setting the ssthresh_r to (cwnd_r - 1). On the other hand, if the
   diff_r is no more than gamma in slow start phase, wVegas must act the
   same way as TCP [RFC5681].

   In the congestion avoidance phase, if the diff_r is no less than
   alpha_r, the rate_r must be updated. The weight_r and the alpha_r
   must be tweaked before the window adjustment and the improvement of
   the base_rtt_r accuracy. The rate_r , the weight_r and the alpha_r
   must be calculated as follows:

                          rate_r = cwnd_r / rtt_r                    (1)

                        weight_r = rate_r / SUM(rate_r)              (2)

                     alpha_r = weight_r * total_alpha

   SUM(rate_r) is the total rate of all subflows belonging to one MPTCP
   flow. After the tweak of the alpha_r, if the tweak is needed, the
   cwnd_r must be adjusted as follows:

   - If diff_r is larger than alpha_r, then



Xu, et al.              Expires July 1, 2017                  [Page 6]

Internet-Draft        MPTCP Congestion Control            January 2017


                            cwnd_r = cwnd_r - 1

   - If diff_r is less than alpha_r, then

                            cwnd_r = cwnd_r + 1

   The last task wVegas has to do is to try to drain link queues. This
   operation is to improve the accuracy of base_rtt_r. And the specific
   method is described in [DRLK]. The idea is to make congestion window
   back off once detecting the queuing delay is larger than some
   threshold, so that the bottleneck link can drain off the backlogged
   packets. And thus all the flows involved have a chance to obtain the
   more accurate propagation delay.

   First, wVegas has to calculate the current queuing delay as follows:

                    queue_delay_r = rtt_r - base_rtt_r

   If the current queuing delay is less than the saved queue_delay_r,
   the queue_delay_r must be replaced by the current one. And if the
   current queuing delay is two times larger than queue_delay_r, the
   following operations must be performed:

                    cwnd_r = cwnd_r * 0.5 * base_rtt_r / rtt         (3)
























Xu, et al.              Expires July 1, 2017                  [Page 7]

Internet-Draft        MPTCP Congestion Control            January 2017


3. Practical considerations

   In practice, it is difficult to get the RTT of a subflow r when the
   sub-connection is not congested. WVegas should set the base_rtt_r to
   the minimum of all the measured round trip times. The total_alpha
   should be implemented as a configurable parameter.

   Equation (1) and (2) imply that the rate and the weight are floating
   point values. However, in many kernels, floating point operations are
   disabled. There is an easy way to approximate the above calculations
   using integer arithmetic.

   Let rate_scale be an integer. When computing the rate, use cwnd_r *
   rate_scale instead of cwnd_r and the related operations can be done
   in integer arithmetic. The rate_r should be calculated as follows:

                   rate_r = cwnd_r * rate_scale / rtt_r

   The rate_scale implies the precision we need for computing the rate.
   With this change, the rate can be stored as an integer variable.
   Besides, when we need to calculate the sum rate of all subflows
   belonging to one flow, the operations can be done in integer
   arithmetic.

   When updating the weight_r, we also need a weight_scale to avoid
   floating point operations. So the weight_r should be computed as
   follows:

              weight_r = rate_r * weight_scale / SUM(rate_r)

   The weight_scale supplies a similar function with rate_scale. With
   the weight_scale, alpha_r can be much more accurate. But it also need
   scale down as follows:

              alpha_r = weight_r * total_alpha / weight_scale

   For the sake of brevity, we combine the rate_scale and weight_scale
   to one scale parameter. We name it wvegas_scale. It would be better
   to set the wvegas_scale as a power of two, which allows faster shift
   operations rather than multiplication and division.

   In equation (3), the multiplication by 0.5 can be implemented by
   shift operation.






Xu, et al.              Expires July 1, 2017                  [Page 8]

Internet-Draft        MPTCP Congestion Control            January 2017


4. Discussion

   Congestion Equality Principle shows that a fair and efficient traffic
   shifting implies that every flow strives to equalize the extent of
   congestion that it perceives on all its available paths. This
   principle has been proved in [WVEGAS]. By instantiating the
   approximate iterative algorithm, weighted Vegas (wVegas), a delay-
   based algorithm for multipath congestion control, was developed,
   which uses packet queuing delay as congestion signals, thus achieving
   fine-grained load balancing. Our simulations show that, compared with
   loss-based algorithms, wVegas is more sensitive to the changes of
   network congestion and achieves more timely traffic shifting and
   quicker convergence. Additionally, as it occupies fewer link buffers,
   wVegas rarely causes packet losses and shows better intra-protocol
   fairness.

































Xu, et al.              Expires July 1, 2017                  [Page 9]

Internet-Draft        MPTCP Congestion Control            January 2017


5. Security Considerations

   Security considerations discussed in [RFC6181] and [RFC6356] are to
   be taken into account.

6. IANA Considerations

   This document has no actions for IANA.

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.

   [RFC5681] Allman, M., Paxson, V., and E. Blanton, "TCP Congestion
             Control", RFC 5681, September 2009.

7.2. Informative References

   [DRLK]    D. Leith, R. Shorten, G. McCullagh, L. Dunn, and F. Baker,
             "Making Available Base-RTT for Use in Congestion Control
             Applications", IEEE Communications Letters, vol. 12, no. 6,
             pp. 429-431, Jun. 2008.

   [RFC6356] Raiciu, C., Handley, M., and D. Wischik, "Coupled
             Congestion Control for Multipath Transport Protocols", RFC
             6356, October 2011.

   [OLIA]   R. Khalili, N. Gast, M. Popovic, J.-Y. Le Boudec,
             "Opportunistic Linked-Increases Congestion Control
             Algorithm for MPTCP", draft-khalili-mptcp-congestion-
             control-05.

   [BALIA]  A. Walid, Q. Peng, J. Hwang, S. Low, "Balanced Linked
             Adaptation Congestion Control Algorithm for MPTCP", draft-
             walid-mptcp-congestion-control-04.

   [MPLKI]  UCL, Louvain-la-Neuve, Belgium, "MultiPath TCP-Linux kernel
             implementation," 2013 [Online]. Available:
             http://mptcp.info.ucl.ac.be/.

   [WVEGAS]  Y. Cao, M. Xu, X. Fu, "Delay-based congestion control for
             multipath TCP", ICNP 2012.




Xu, et al.              Expires July 1, 2017                 [Page 10]

Internet-Draft        MPTCP Congestion Control            January 2017


   [ADMTQM]  S. H. Low, "A Duality Model of TCP and Queue Management
             Algorithms", IEEE/ACM Transactions on Networking,
             11(4):525-536, Aug. 2003.

   [VEGAS]   L. S. Brakmo, S. W. O'Malley, and L. L. Peterson, "TCP
             Vegas: new techniques for congestion detection and
             avoidance, " in Proc. of ACM SIGCOMM, 1994, pp. 24-35.

   [RFC6181] Bagnulo, M., "Threat Analysis for TCP Extensions for
             Multipath Operation with Multiple Addresses", RFC 6181,
             March 2011.





































Xu, et al.              Expires July 1, 2017                 [Page 11]

Internet-Draft        MPTCP Congestion Control            January 2017


Authors' Addresses

   Mingwei Xu
   Tsinghua University
   Department of Computer Science, Tsinghua University
   Beijing  100084
   P.R.China

   Phone: +86-10-6278-5822
   EMail: xmw@cernet.edu.cn

   Yu Cao
   NDSC
   National Digital Switching System Engineering and Technological
   Research Center
   Zhengzhou  450002
   P.R.China

   Email: caoyu08@tsinghua.org.cn

   Enhuan Dong
   Tsinghua University
   Department of Computer Science, Tsinghua University
   Beijing  100084
   P.R.China

   Email: deh13@mails.tsinghua.edu.cn





















Xu, et al.              Expires July 1, 2017                 [Page 12]