Multipath Less-than-Best-Effort (LBE) congestion control for applications with soft deadlines

Some applications, like distributed backups, software updates or peer-to-peer file sharing, require the transfer of large quantities of data before some soft deadline. This transfer has potential to degrade the quality of service of all other network traffic. To facilitate these large data transfers we have proposed a TCP-based Deadline-Aware Less than Best Effort service [1]. However, modern devices often have a number of network interfaces which could be used to advantage. This project aims to exploit these additional network interfaces to achieve better application performance with less impact on competing interactive applications by optimizing network resource utilization.

In a 2017 paper and three previous Master's theses, we introduced and studied the notion of data delivery deadlines in Less-than-best-effort (LBE) congestion control. The goal of LBE is to try to be as non-intrusive as possible to other network traffic. LBE congestion control is used, for example, by the LEDBAT algorithm implemented in BitTorrent clients as well as in some OSs (e.g., MacOS X, Windows 10) for downloading software upgrades over the Internet. However, there is no notion of completion time in LBE; since (contrary to standard TCP) LBE will not "fight for capacity", a data transfer using LBE congestion control might take an arbitrarily long amount of time to finish, depending on how congested is the network. This may not be suitable for some applications that could otherwise be good candidates to use LBE congestion control.

Consider for example a distributed backup application. This is a typical non-interactive application that does not have strong time constraints; a backup client should be able to send data to a storage server as fast as possible yet reduce its sending rate to a minimum when it detects there is other competing traffic. In other words, your backups should not interfere in the network with your other, more "important" and/or interactive applications like web browsing or video streaming. However, backups may still need to be finished by some (relaxed) deadline. A deadline-aware LBE (DA-LBE) congestion control will therefore adapt how fast the data sender transmits by simultaneously (a) trying to send as fast as possible while disrupting as little as possible any competing traffic (LBE behavior), and (b) using the time remaining before the deadline to adapt its sending speed (deadline-awareness). This DA-LBE concept was introduced in [1] and explored in three previous Master's theses [2-4], one of which led to a scientific publication [5] and the two others to a Linux kernel implementation.

Our previous work extended the classic TCP transport protocol, which uses a single network interface, to implement a DA-LBE service. However, most machines today are multihomed and can (in principle) use several interfaces at the same time. Multipath TCP (MPTCP) is the best known transport protocol that was designed to take advantage of multiconnectivity. MPTCP's congestion control and flow scheduling algorithms, however, usually aim at maximizing transmission speed, reducing delay for delivering packets, or similar performance targets. They do not consider completion deadlines nor LBE behavior. By exploiting several interfaces simultaneously, a multipath DA-LBE protocol should be able to get better performance (i.e., faster data transfers) while having even less impact on competing traffic than a single-path LBE protocol.


The goal of this thesis is to design, implement and test a method for doing multipath, deadline-aware LBE congestion control. The method will extend standard MPTCP to achieve a DA-LBE service that leverages multiple interfaces. We will first explore different possibilities (e.g., extending and applying our own DA-LBE algorithms to the multipath case, design a multipath MPTCP scheduler achieving DA-LBE behavior...), then select one for implementation in Linux and more in-depth evaluation. Tests will be done in a small lab testbed, and further experiments over the MONROE mobile broadband testbed may be considered.

Learning outcome

  • Experience with Linux kernel programming.
  • Good knowledge of novel networking technologies.
  • Good knowledge and experience of working with networking stacks.


  • Good knowledge and skills in computer networking.
  • Good programming skills.
  • Experience with C language programming.
  • Experience with Linux programming would be a plus.


  • David Ros
  • David Hayes


[1] D. Hayes, D. Ros, A. Petlund and I. Ahmed. “A Framework for Less than Best Effort Congestion Control with Soft Deadlines“. In IFIP Networking, Stockholm, June 2017.

[2] T.C. Tangenes, Evaluating CAIA delay gradient as a Less-than-best-effort congestion control in Linux. Master's thesis, University of Oslo, 2016.

[3] L.E. Storbukås, Implementing Less than Best Effort with Deadlines. Master's thesis, University of Oslo, 2018.

[4] H. Wallenburg, Libdalbe: A library for developing Deadline-Aware Less-than Best Effort transport services. Master's thesis, University of Oslo, 2018.

[5] T.C. Tangenes, D. Hayes, A. Petlund and D. Ros. “Evaluating CAIA Delay Gradient as a Candidate for Deadline-Aware Less-than-Best-Effort Transport“. In Workshop on Future of Internet Transport (FIT 2017), Stockholm, June 2017.