MultiPath TCP (MPTCP) is a promising protocol which brings new light to the TCP/IP protocol stack ossification problem by means of an impactful innovation of the transport layer. A MPTCP connection consists of a set of one or more subflows, where each subflow offers an alternative path to reach a target remote end-system. However, simply applying the standard TCP congestion control on each subflow would give an unfair resource sharing. Various subflows of a connection would dispute bottleneck links with regular single-path TCP connections, leading them to starvation conditions. To deal with this concern, a multipath congestion control algorithm adjusts the sending operation of all subflows in a coupled fashion in order to achieve various objectives, e.g., friendliness, responsiveness, throughput improvement, and congestion balance. In this report, we describe the four coupled congestion control algorithms deployed in the MPTCP Linux kernel implementation, namely: LIA, OLIA, BALIA, and wVegas. We provide a concise material with technical details of each algorithm, while summarizing all of them together from a single notation.
Multipath TCP (MPTCP) has emerged as a facilitator for harnessing and pooling available bandwidth in wireless/wireline communication networks and in data centers. Existing implementations of MPTCP such as, Linked Increase Algorithm (LIA), Opportunistic LIA (OLIA) and BAlanced LInked Adaptation (BALIA) include separate algorithms for congestion control and packet scheduling, with pre-selected control parameters. We propose a Deep Q-Learning (DQL) based framework for joint congestion control and packet scheduling for MPTCP. At the heart of the solution is an intelligent agent for interface, lear…
Quite a few algorithms have been proposed to optimize the transmission performance of Multipath TCP (MPTCP). However, existing MPTCP protocols are still far from satisfactory in lossy and ever-changing networks because of their loss-based congestion control and the difficulty of managing multiple subflows. Recently, a congestion-based congestion control, BBR, is proposed to promote TCP transmission performance through better use of bandwidth. Due to the superior performance of BBR, we try to boost MPTCP with it. For this propose, coupled congestion control should be redesigned for MPTCP, and a…
Recently, Multipath TCP (MPTCP) has been proposed as an alternative transport approach for datacenter networks. MPTCP provides the ability to split a flow into multiple paths thus providing better performance and resilience to failures. Usually, MPTCP is combined with flow-based Equal-Cost Multi-Path Routing (ECMP), which uses random hashing to split the MPTCP subflows over different paths. However, random hashing can be suboptimal as distinct subflows may end up using the same paths, while other available paths remain unutilized. In this paper, we explore an MPTCP-aware SDN controller that fa…
A well-known technique for enhancing the performance and stability of content distribution is the use of multiple dissemination flows. Multipath TCP (MPTCP), the most popular multiflow protocol on the Internet, allows receivers to exploit multiple paths towards a single sender. Nevertheless, MPTCP cannot fully exploit the potential gains of multipath connectivity, as it must fairly share resources with (single-flow) TCP, without a clear understanding of whether the available paths do share any bottleneck links. In this paper, we introduce a hybrid congestion control algorithm for multisource a…
Multipath TCP (MPTCP) extends traditional TCP to enable simultaneous use of multiple connection endpoints at the source and destination. MPTCP has been under active development since its standardization in 2013, and more recently in February 2020, MPTCP was upstreamed to the Linux kernel. In this paper, we provide an in-depth analysis of MPTCPv0 in the Internet and the first analysis of MPTCPv1 to date. We probe the entire IPv4 address space and an IPv6 hitlist to detect MPTCP-enabled systems operational on port 80 and 443. Our scans reveal a steady increase in MPTCPv0-capable IPs, reaching 13…
Multipath TCP (MPTCP) extends traditional TCP to enable simultaneous use of multiple connection endpoints at the source and destination. MPTCP has been under active development since its standardization in 2013, and more recently in February 2020, MPTCP was upstreamed to the Linux kernel. In this paper, we provide the first broad analysis of MPTCPv0 in the Internet. We probe the entire IPv4 address space and an IPv6 hitlist to detect MPTCP-enabled systems operational on port 80 and 443. Our scans reveal a steady increase in MPTCP-capable IPs, reaching 9k+ on IPv4 and a few dozen on IPv6. We al…
Multipath TCP (MPTCP) is a standardized TCP extension which allows end-hosts to simultaneously exploit all of their network interfaces. The recent proliferation of dual-SIM mobile phones makes multi-LTE MPTCP setup an attractive option. We perform extensive measurements of MPTCP over two LTE connections in low and high-speed mobility scenarios over five months, both in controlled and in-the-wild environments. Our findings indicate that MPTCP performance decreases at high speeds due to increased frequency of signal strength drops and handovers. Both LTE paths experience frequent changes which r…
We present an implementation of Multipath TCP (MPTCP) under the NS-3 open source network simulator. MPTCP is a promising extension of TCP currently considered by the recent eponymous IETF working group, with the objective of improving the performance of TCP, especially its robustness to variable network conditions. We describe this new protocol, its main functions and our implementation in NS-3. Besides this implementation compliant to the current versions of the IETF drafts, we have also added and compared various packet reordering mechanisms. We indeed notice that such mechanisms highly impr…
Most end devices are now equipped with multiple network interfaces. Applications can exploit all available interfaces and benefit from multipath transmission. Recently Multipath TCP (MPTCP) was proposed to implement multipath transmission at the transport layer and has attracted lots of attention from academia and industry. However, MPTCP only supports TCP-based applications and its multipath routing flexibility is limited. In this paper, we investigate the possibility of orchestrating multipath transmission from the network layer of end devices, and develop a Multipath IP (MPIP) design consis…
TCPTuner is a TCP (transmission control protocol) congestion control kernel module and GUI (graphical user interface) for Linux that allows real-time modification of the congestion control parameters of TCP CUBIC, the current default algorithm in Linux. Specifically, the tool provides access to alpha, the rate at which a sender's congestion window grows; beta, the multiplicative factor to decrease the congestion window on a loss event; as well as CUBIC's fast convergence and tcp friendliness parameters. Additionally, the interface provides access to ip-route parameters for the minimum retransm…
Recently, high-speed and short-distance networks are widely deployed and their necessity is rapidly increasing everyday. This type of networks is used in several network applications; such as Local Area Networks (LAN) and Data Center Networks (DCN). In LANs and DCNs, high-speed and short-distance networks are commonly deployed to connect between computing and storage elements in order to provide rapid services. Indeed, the overall performance of such networks is significantly influenced by the Congestion Control Algorithm (CCA) which suffers from the problem of bandwidth under-utilization, esp…
The Transmission Control Protocol (TCP) is one of the most important protocols in today's Internet. Its specification and implementations have been refined for almost forty years. The Linux TCP stack is one of the most widely used TCP stacks given its utilisation on servers and Android smartphones and tablets. However, TCP and its implementations evolve very slowly. In this paper, we demonstrate how to leverage the eBPF virtual machine that is part of the recent versions of the Linux kernel to make the TCP stack easier to extend. We demonstrate a variety of use cases where the eBPF code is inj…
In this paper, we focus on the experimental evaluation of TCP over the High Speed Downlink Packet Access (HSDPA), an upgrade of UMTS that is getting worldwide deployment. Today, this is particularly important in view of the "liberalization" brought in by the Linux OS which offers several variants of TCP congestion control. In particular, we consider four TCP variants: 1) TCP NewReno, which is the only congestion control standardized by the IETF; 2) TCP BIC, that was, and 3) TCP Cubic that is the default algorithm in the Linux OS; 4) Westwood+ TCP that has been shown to be particularly effectiv…
Providing multi-connectivity services is an important goal for next generation wireless networks, where multiple access networks are available and need to be integrated into a coherent solution that efficiently supports both reliable and non reliable traffic. Based on virtual network interfaces and per path congestion controlled tunnels, the MP-DCCP based multiaccess aggregation framework presents as a novel solution that flexibly supports different path schedulers and congestion control algorithms as well as reordering modules. The framework has been implemented within the Linux kernel space …
Recent model-based congestion control algorithms such as BBR use repeated measurements at the endpoint to build a model of the network connection and use it to achieve optimal throughput with low queuing delay. Conversely, applying this model-based approach to Active Queue Management (AQM) has so far received less attention. We propose the new AQM scheduler cocoa based on fair queuing, which adapts the buffer size depending on the needs of each flow without requiring active participation from the endpoint. We implement this scheduler for the Linux kernel and show that it interacts well with th…
In this paper, we present an implementation of CLNP ground-to-ground packet processing for ATN in Linux kernel version 2.6. We present the big picture of CLNP packet processing, the details of input, routing, and output processing functions, and the implementation of each function based on ISO 8473-1. The functions implemented in this work are PDU header decomposition, header format analysis, header error detection, error reporting, reassembly, source routing, congestion notification, forwarding, composition, segmentation, and transmit to device functions. Each function is initially implemente…
Today, considerable Internet traffic is sent from the datacenter and heads for users. The characteristics of connections served by servers in datacenters are usually diverse and varied over time, with continuous upgrades in network infrastructure and user devices. As a result, a specific congestion control algorithm hardly accommodates the heterogeneity and performs well in various scenarios. In this work, we present Micro Congestion Control (MCC) --- a novel framework for Internet congestion control. With MCC, diverse algorithms can be assigned purposely to connections in one server to adapt …
In data centers, the nature of the composite bursty traffic along with the small bandwidth-delay product and switch buffers lead to several congestion problems that are not handled well by traditional congestion control mechanisms such as TCP. Existing work try to address the problem by modifying TCP to suit the operational nature of data centers. This is practically feasible in private settings, however, in public environments, such modifications are prohibited. Therefore, in this work, we design simple switch-based queue management to deal with such congestion issues adequately. This approac…
In recent years, enormous growth has been witnessed in the computational and storage capabilities of mobile devices. However, much of this computational and storage capabilities are not always fully used. On the other hand, popularity of mobile edge computing which aims to replace the traditional centralized powerful cloud with multiple edge servers is rapidly growing. In particular, applications having strict latency requirements can be best served by the mobile edge clouds due to a reduced round-trip delay. In this paper we propose a Multi-Path TCP (MPTCP) enabled mobile device cloud (MDC) a…
BBR is a new congestion-based congestion control algorithm proposed by Google. A BBR flow sequentially measures the bottleneck bandwidth and round-trip delay of the network pipe, and uses the measured results to govern its sending behavior, maximizing the delivery bandwidth while minimizing the delay. However, our deployment in geo-distributed cloud servers reveals a severe RTT fairness problem: a BBR flow with longer RTT dominates a competing flow with shorter RTT. Somewhat surprisingly, our deployment of BBR on the Internet and an in-house cluster unearthed a consistent bandwidth disparity a…
A common problem in science networks and private wide area networks (WANs) is that of achieving predictable data transfers of multiple concurrent flows by maintaining specific pacing rates for each. We address this problem by developing a control algorithm based on concepts from model predictive control (MPC) to produce flows with smooth pacing rates and round trip times (RTTs). In the proposed approach, we model the bottleneck link as a queue and derive a model relating the pacing rate and the RTT. A MPC based control algorithm based on this model is shown to avoid the extreme window (which t…
Multipathing in communication networks is gaining momentum due to its attractive features of increased reliability, throughput, fault tolerance, and load balancing capabilities. In particular, wireless environments and datacenters are envisioned to become largely dependent on the power of multipathing for seamless handovers, virtual machine (VM) migration and in general, pooling less proficient resources together for achieving overall high proficiency. The transport layer, with its knowledge about end-to-end path characteristics, is well placed to enhance performance through better utilization…
Agile-SD is one of the latest versions of loss-based congestion control algorithm (CCA), which has been proposed to improve the total performance of transmission control protocol (TCP) over high-speed and short-distance networks. It has introduced a new mechanism, called agility factor mechanism, which shortens the epoch time to reduce the sensitivity to packet losses and in turn to increase the average throughput. Agile-SD has only been tested via simulation; however, it has not been mathematically proven or evaluated. The contribution of this paper is twofold. First, a new mathematical model…
In recent years several multipath data transport mechanisms, such as MPTCP and XMP, have been introduced to effectively exploit the path diversity of data center networks (DCNs). However, these multipath schemes have not been widely deployed in DCNs. We argue that two key factors among others impeded their adoption: TCP incast and minimum window syndrome. First, these mechanisms are ill-suited for workloads with a many-to-one communication pattern, commonly found in DCNs, causing frequent TCP incast collapses. Second, the syndrome we discover for the first time, results in 2-5 times lower thro…
In this work, we provide the design and implementation of a switch-assisted congestion control algorithm for data center networks (DCNs). In particular, we provide a prototype of the switch-driven congestion control algorithm and deploy it in a real data center. The prototype is based on few simple modifications to the switch software. The modifications imposed by the algorithm on the switch are to enable the switch to modify the TCP receive-window field in the packet headers. By doing so, the algorithm can enforce a pre-calculated (or target rate) to limit the sending rate at the sources. The…
In the last decade, the demand for Internet applications has been increased, which increases the number of data centers across the world. These data centers are usually connected to each other using long-distance and high-speed networks. As known, the Transmission Control Protocol (TCP) is the predominant protocol used to provide such connectivity among these data centers. Unfortunately, the huge bandwidth-delay product (BDP) of these networks hinders TCP from achieving full bandwidth utilization. In order to increase TCP flexibility to adapt for high-BDP networks, we propose a new delay-based…
We present enhancements to the TCP-Friendly Rate Control mechanism (TFRC) designed to better handle the intermittent connectivity occurring in mobility situations. Our aim is to quickly adapt to new network conditions and better support real-time applications for which the user-perceived quality depends on the immediate transmission rate. We propose to suspend the transmission before disconnections occur, in a way inspired by Freeze-TCP, and extend the solution by probing the network after reconnecting to enable full use of the newly available capacity. We first introduce a numerical model of …