Skip to main content

MPT Network Layer Multipath Library
draft-lencse-tsvwg-mpt-08

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Expired".
Authors Gábor Lencse , Szabolcs Szilagyi , Ferenc Fejes , Marius Georgescu
Last updated 2021-06-14
RFC stream (None)
Formats
Additional resources
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-lencse-tsvwg-mpt-08
lt;= N), the vector of the weights of the paths.

     (Note: We have N paths with indices (1, ... , N)

   OUTPUT: O[j] ( 1 <= j <= M ), the sending vector containing the
   indices of the paths; where M is the length of the sending cycle.

     lcm := Least Common Multiple for  (W[1], ... , W[N])

Lencse et al.         Expires December 14, 2021              [Page 17]
Internet-Draft   MPT Network Layer Multipath Library         June 2021

     M := 0

     s[i] := 0, for all i (1 <= i <= N)

   (Note: s[i] will store the sum of the increments for path i, where
   the increment is lcm/W[i])

     WHILE TRUE DO

        z := min(s[1]+lcm/W[1], ... , s[N]+lcm/W[N])

        k := The smallest index i, for which z == s[i]+lcm/W[i]

        M := M+1

        s[k] := z

        O[M] := k

        IF s[i] == z for all i (1 <= i <= N) THEN RETURN

     DONE

   END

   A sample C code can be found in the Appendix.

5.2. Flow Based Mapping

   The aim of the flow based mapping is to be able to distinguish the
   packets belong to different network flows and map them to the path
   that was set for them. (E.g. WiFi is used for Torrent traffic and
   LTE is used for VoIP calls.)

   Our current implementation realizes a port-based flow mapping. It is
   possible to select the interface for the outgoing traffic based on
   transport protocol and port. For communication between two MPT
   servers, you can precisely specify which flow mapped to which path.

   The configuration of the mechanism is simple. Four new values can be
   added for the definition of paths:

   tcp_dst - TCP destination port matches

   tcp_src - TCP source port matches

Lencse et al.         Expires December 14, 2021              [Page 18]
Internet-Draft   MPT Network Layer Multipath Library         June 2021

   udp_dst - UDP destination port matches

   udp_src - UDP source port matches

   All of these are optional, they can be listed in many ports. Ports
   that are not defined will continue to be per-packet based. The
   current implementation of the MPT with flow based mapping can be
   found on [MptFlow]

   In the example below, each outgoing TCP packet with destination port
   80, 443, and 8080 and UDP packet with destination port 5901 will be
   sent on path_1. TCP packets with source ports 7880 and 56000 will be
   sent on path_2.

   Example (flow based mapping configuration snippet)

   [path_1]
   ...
   tcp_dst         = 80 443 8080
   udp_dst         = 5901

   [path_2]

   ...

   tcp_src         = 7880 56000

5.3. Combined Mapping

   TBD

6. Packet Reordering

   As the delay of the different paths can be different, packet
   reordering may appear in a packet sequence transmission. The MPT
   environment offers an optional feature to ensure the right ordered
   packet transmission for the tunnel communication. If this feature is
   enabled, the receiver uses a buffer-array to store the incoming
   (unordered) packets. Then the packets are sorted according to the
   GRE sequence numbers, so ensuring the ordered transmission to the
   receiver's tunnel interface.

Lencse et al.         Expires December 14, 2021              [Page 19]
Internet-Draft   MPT Network Layer Multipath Library         June 2021

   There are two parameters aimed to control the reordering. The
   reorder window parameter specifies the length of the buffer array
   used for reordering. The maximum buffer delay parameter specifies
   the maximum time (in milliseconds) while the packet is stored in the
   buffer-array. If the packet is delayed in the buffer-array for the
   specified time, it will be transmitted to the tunnel interface, even
   in the case, when some packets are missing before the considered
   packet. The missing packets are considered as lost packets (i.e. we
   will not wait more for a lost packet). The arrived packets are
   transferred to the tunnel interface according to their GRE sequence
   number, so the ordered delivery will be kept also in the case of
   packet loss.

   How to set the values of these parameters?

   As for maximum buffer delay, if its value is too small, then MPT may
   incorrectly consider a sequence number as lost, and if it arrives
   later, MPT has to drop it to keep on the order-right delivery.  If
   its value is too large, then the packet loss will be determined too
   late, and thus the communication performance may decrease. Our
   experience shows that a feasible choice could be: a few times the
   RTT (Round-Trip Time) of the slowest path.

   As for reorder window, it MUST be large enough to store packets
   arriving at maximum line rate from all the active paths of the given
   connection during a maximum buffer delay interval.

   The appropriate choice of these parameters is still subject of
   research.

7. Why MPT is Considered Experimental?

   We view MPT as a research area rather than a solution which is ready
   for deployment. We have an MPT implementation, which is workable,
   but it contains only the "per packet based" mapping of the tunnel
   traffic to the paths. One of our aims of writing this Internet Draft
   is to enable others to write MPT implementations. It is our hope
   that the experience gained with preparing other implementations as
   well as the results of their testing and performance analysis will
   lead to a better MPT specification, which may then serve as a
   standard track specification of an improved MPT, which will be ready
   for deployment.

   In this section, we summarize the most important results as well as
   the open questions of the MPT related research.

Lencse et al.         Expires December 14, 2021              [Page 20]
Internet-Draft   MPT Network Layer Multipath Library         June 2021

7.1. Published Results

7.1.1. MPT Concept and First Implementation

   The conceptual architecture of MPT, comparison with other multipath
   solutions, some details of the first implementation and some test
   results are available in [Alm2017].

   The user manual of the first MPT implementation and the precompiled
   MPT libraries for Linux (both i386 and amd64) and Raspbian are
   available from [Mpt2017].

7.1.2. Estimation of the Channel Aggregation Capabilities

   The channel aggregation capabilities of an early MPT implementation,
   which did not use GRE-in-UDP, were analyzed up to twelve 100Mbps
   links in [Len2015].

   Some of the above tests were repeated with the current GRE-in-UDP
   based MPT implementation, and the path aggregation capabilities of
   MPT were compared to that of MPTCP in [Kov2016] and [Szi2018].

   Measurements were performed also using two 1Gbps links [Szi2018b]
   and four 1Gpbs links [Szi2019].

   The performance of MPT and MPTCP was compared using two 10Gbps links
   [Szi2019b].

   To test MPT in a more realistic environment than the previous simple
   laboratory testbeds, an emulated WAN environment was used for
   throughput aggregation of two 100Mbps links [Szi2021].

7.1.3. Demonstrating the Resilience of an MPT Connection

   The resilience property of the early MPT implementation, which did
   not use GRE-in-UDP, was demonstrated in [Alm2014] and in [Alm2015].

   The fast connection recovery of the GRE-in-UDP based MPT
   implementation was demonstrated in [Fej2016].

   Playout buffer length triggered path switching algorithm was
   developed for the GRE-in-UDP based MPT, and its effectiveness was
   demonstrated by the elimination of the stalling events on YouTube
   video playback [Fej2017].

Lencse et al.         Expires December 14, 2021              [Page 21]
Internet-Draft   MPT Network Layer Multipath Library         June 2021

7.1.4. Examining the Effect of Different Congestion Control Algorithms

   The throughput of MPT and MPTCP using various TCP congestion control
   algorithms (TCP Cubic, Highspeed, Illinois, Reno, Scalable, Vegas,
   Veno) were compared in a test environment containing four 100Mbps
   communication channels in [Szi2020].

7.2. Open questions

7.2.1. Parameters

   The optimal (or good enough) choice of the reorder window size and
   maximum buffer delay parameters are important questions, which
   should be solved before MPT can be deployed.

7.2.2. Development of Further Mapping Algorithms

   The current MPT implementation [Mpt2017] includes only the per
   packet base mapping. For a precise specification of the further two
   mapping algorithms, we would like to use or experiences with them.
   There are some open questions e.g. how to handle the traffic that is
   neither TCP nor UDP?

7.2.3. Performance Issues

   The current MPT implementation [Mpt2017] works in user space. Thus,
   it is not surprising, that multipath transmission of the same amount
   of traffic by MPT results in higher CPU load than its multipath
   transmission by MPTCP [Kov2019]. How much CPU power could a kernel
   space MPT implementation save?

   It was also pointed out by [Kov2019], that MPT is not able to
   utilize the computing power of more than two CPU cores. It is so,
   because MPT uses only two threads (one for each direction). This is
   not a serious issue, when MPT is used on personal computers.
   However, when MPT is used to connect several networks, it is an
   important question, how MPT could utilize the computing power of the
   modern CPUs with several cores.

7.3. Implementation

   A sample implementation of the MPT software is available from
   [MptSrc] under GPLv3 license. It is intended for research and
   experimentation purposes only, as it has not been sufficiently
   tested to be used for commercial purposes.

Lencse et al.         Expires December 14, 2021              [Page 22]
Internet-Draft   MPT Network Layer Multipath Library         June 2021

8. Security Considerations

   Threats that apply to GRE-in-UDP tunneling, apply here, too. For the
   security considerations of GRE-in-UDP, please refer to Section 11 of
   [RFC8086].

   If an MPT server is configured so, its peer is allowed to build up
   connections. It may lead to resource exhaustion and thus successful
   DoS (Denial of Service) attacks.

   Authentication between MPT servers is optional, which may lead to
   security issues.

9. IANA Considerations

   Port numbers may be reserved for local command port and remote
   command port.

10. Conclusions

   Hereby we publish the specifications of the MPT network layer
   multipath library in the hope, that it can be made better by the
   review and comments of the WG members and, after answering several
   open questions, one day MPT can mature to be a production tool. We
   seek for interested volunteers for a different implementation and we
   would be happy to take part in research cooperation. We welcome all
   kinds of feedback from anyone to make MPT better.

11. References

11.1. Normative References

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

   [RFC8086] Young, L. (Editor), Crabbe, E., Xu, X., and T. Herbert,
             "GRE-in-UDP Encapsulation", RFC 8086, DOI:
             10.17487/RFC8086, March 2017.

11.2. Informative References

   [Alm2014] Almasi, B., "A solution for changing the communication
             interfaces between WiFi and 3G without packet loss", in
             Proc. 37th Int. Conf. on Telecommunications and Signal
             Processing (TSP 2014), Berlin, Germany, Jul. 1-3, 2014,
             pp. 73-77

Lencse et al.         Expires December 14, 2021              [Page 23]
Internet-Draft   MPT Network Layer Multipath Library         June 2021

   [Alm2015] Almasi, B., Kosa, M., Fejes, F., Katona, R., and L. Pusok,
             "MPT: a solution for eliminating the effect of network
             breakdowns in case of HD video stream transmission", in:
             Proc. 6th IEEE Conf. on Cognitive Infocommunications
             (CogInfoCom 2015), Gyor, Hungary, 2015, pp. 121-126, doi:
             10.1109/CogInfoCom.2015.7390576 .

   [Alm2017] Almasi, B., Lencse, G., and Sz. Szilagyi, "Investigating
             the Multipath Extension of the GRE in UDP Technology",
             Computer Communications (Elsevier), vol. 103, no. 1,
             (2017.) pp. 29-38, DOI: 10.1016/j.comcom.2017.02.002

   [Fej2016] Fejes, F., Katona, R., and L. Pusok, "Multipath strategies
             and solutions in multihomed mobile environments", in:
             Proc. 7th IEEE Conf. on Cognitive Infocommunications
             (CogInfoCom 2016), Wroclaw, Poland, 2016, pp. 79-84, doi:
             10.1109/CogInfoCom.2016.7804529

   [Fej2017] Fejes, F., Racz, S., and G. Szabo, "Application agnostic
             QoE triggered multipath switching for Android devices",
             In: Proc. 2017 IEEE International Conference on
             Communications (IEEE ICC 2017), Paris, France, 21-25 May
             21-25, 2017. pp. 1585-1591.

   [Kov2016] Kovacs, A., "Comparing the aggregation capability of the
             MPT communications library and multipath TCP", in: Proc.
             7th IEEE Conf. on Cognitive Infocommunications (CogInfoCom
             2016), Wroclaw, Poland, 2016, pp. 157-162, doi:
             10.1109/CogInfoCom.2016.7804542

   [Kov2019] Kovacs, A., "Evaluation of the Aggregation Capability of
             the MPT Communications Library and Multipath TCP", Acta
             Polytechnica Hungarica, vol. 16, no. 6, 2019, pp. 129-147.
             DOI: 10.12700/APH.16.6.2019.6.9

   [Len2015] Lencse, G. and A. Kovacs, "Advanced Measurements of the
             Aggregation Capability of the MPT Multipath Communication
             Library", International Journal of Advances in
             Telecommunications, Electrotechnics, Signals and Systems,
             vol. 4. no. 2. (2015.) pp 41-48. DOI:
             10.11601/ijates.v4i2.112

   [Szi2018] Szilagyi, Sz., Fejes, F. and R. Katona, "Throughput
             Performance Comparison of MPT-GRE and MPTCP in the Fast
             Ethernet IPv4/IPv6 Environment", Journal of
             Telecommunications and Information Technology, vol. 3. no.
             2. (2018.) pp 53-59. DOI: 10.26636/jtit.2018.122817

Lencse et al.         Expires December 14, 2021              [Page 24]
Internet-Draft   MPT Network Layer Multipath Library         June 2021

   [Szi2018b] Szilagyi, Sz., Bordan, I., Harangi, L. and B. Kiss,
             "MPT-GRE: A Novel Multipath Communication Technology for
             the Cloud", in: Proc. 9th IEEE Conf. on Cognitive
             Infocommunications (CogInfoCom 2018), Budapest, Hungary,
             2018, pp. 81-86, doi: 10.1109/CogInfoCom.2018.8639941

   [Szi2019] Szilagyi, Sz., Bordan, I., Harangi, L. and B. Kiss,
             "Throughput Performance Comparison of MPT-GRE and MPTCP in
             the Gigabit Ethernet IPv4/IPv6 Environment", Journal of
             Electrical and Electronics Engineering, vol. 12. no. 1.
             (2019.), pp. 57-60. ISSN: 1844-6035

   [Szi2019b] Szilagyi, Sz., Bordan, I., Harangi, L. and B. Kiss,
             "Throughput Performance Analysis of the Multipath
             Communication Technologies for the Cloud", Journal of
             Electrical and Electronics Engineering, Vol. 12, No. 2,
             (2019.), pp. 69-72, ISSN: 1844-6035

   [Szi2020] Szilagyi, Sz., Bordan, I., "The Effects of Different
             Congestion Control Algorithms over Multipath Fast Ethernet
             IPv4/IPv6 Environments", In: Proceedings of the 11th
             International Conference on Applied Informatics (ICAI
             2020), Eger, Hungary, 29-31 January, 2020. pp. 341-349.
             http://ceur-ws.org/Vol-2650/paper35.pdf

   [Szi2021] Szilagyi, Sz., Bordan, I., "Throughput Performance
             Measurement of the MPT-GRE Multipath Technology in
             Emulated WAN Environment", In: Proceedings of the 1st
             Conference on Information Technology and Data Science
             (CITDS 2020), Debrecen, Hungary, 6-8 November, 2020. pp.
             187-195.
             http://ceur-ws.org/Vol-2874/short17.pdf

   [Mpt2017] MPT - Multipath Communication Library,
             https://irh.inf.unideb.hu/~szilagyi/index.php/en/mpt/

   [MptFlow] "MPT - Multi Path Tunnel", source code version with flow
             based packet to path mapping feature,
             https://github.com/spyff/mpt/tree/flow_mapping

   [MptSrc]  "MPT - Multi Path Tunnel", source code,
             https://github.com/spyff/mpt

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

Lencse et al.         Expires December 14, 2021              [Page 25]
Internet-Draft   MPT Network Layer Multipath Library         June 2021

   [RFC8157] Leymann, N., Heidemann, C., Zhang, M., Sarikaya, B, and M.
             Cullen, "Huawei's GRE Tunnel Bonding Protocol", RFC 8157,
             DOI: 10.17487/RFC8157, May, 2017

12. Acknowledgments

   The MPT Network Layer Multipath Library was invented by Bela Almasi,
   the organizer and original leader of the MPT development team.

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

Lencse et al.         Expires December 14, 2021              [Page 26]
Internet-Draft   MPT Network Layer Multipath Library         June 2021

Appendix A. Sample C code for calculating the packet sending order

   <CODE BEGINS>
   void calculate_pathselection(connection_type *con) {
       long long lcm;
       long gcd, min_inc, cinc;
       int i,j, min_idx;
       path_type *p;

       con->pathselectionlength = 0;
       gcd = con->mpath[0].weight_out;
       lcm = gcd;
       for (i = 0; i < M; i++)
         O[i] = NULL;

       for (i = 0; i < con->path_count; i++) {
           gcd = CALCULATE_GCD(gcd, con->mpath[i].weight_out);
           lcm = (lcm * con->mpath[i].weight_out ) / gcd;
           con->mpath[i].selection_increment = 0;
       }

       for (j = 0; j < M; j++) {
           min_idx = 0;
           min_inc = lcm + 1;
           for (i = 0; i < con->path_count; i++) {
               p = &con->mpath[i];
               cinc = p->selection_increment + (lcm / p->weight_out);
               if ((p->weight_out) && (cinc < min_inc)) {
                   min_idx = i;
                   min_inc = cinc;
               }
           }
           O[j] = &con->mpath[min_idx];
           con->mpath[min_idx].selection_increment = min_inc;

           for (i = 0; i < con->path_count; i++) // check if ready
               if (con->mpath[i].selection_increment != min_inc)
                   goto NEXT_SELECTION;
           break;

   NEXT_SELECTION:
           continue;
       }
       con->path_index = 0;
       con->pathselectionlength = j + 1;
   }
   <CODE ENDS>

Lencse et al.         Expires December 14, 2021              [Page 27]
Internet-Draft   MPT Network Layer Multipath Library         June 2021

   Copyright (c) 2021 IETF Trust and the persons identified as authors
   of the code. All rights reserved.

   Redistribution and use in source and binary forms, with or without
   modification, is permitted pursuant to, and subject to the license
   terms contained in, the Simplified BSD License set forth in Section
   4.c of the IETF Trust's Legal Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info).

Lencse et al.         Expires December 14, 2021              [Page 28]
Internet-Draft   MPT Network Layer Multipath Library         June 2021

Authors' Addresses

   Gabor Lencse
   Szechenyi Istvan University
   Egyetem ter 1
   H-9026 Gyor
   Hungary

   Phone: +36 1 613 665
   Email: lencse@sze.hu

   Szabolcs Szilagyi
   University of Debrecen
   Egyetem ter 1.
   H-4032 Debrecen
   Hungary

   Phone: +36 52 512 900 / 75013
   Email: szilagyi.szabolcs@inf.unideb.hu

   Ferenc Fejes
   Eotvos Lorand University
   Egyetem ter 1-3.
   H-1053 Budapest
   Hungary

   Phone: +36 70 545 48 07
   Email: fejes@inf.elte.hu

   Marius Georgescu
   RCS&RDS
   Strada Dr. Nicolae D. Staicovici 71-75
   Bucharest 030167
   Romania

   Phone: +40 31 005 0979
   Email: marius.georgescu@rcs-rds.ro

Lencse et al.         Expires December 14, 2021              [Page 29]