Speeding up mobile networks with FQ CoDel and MPTCP

Information is Scarce

Neither AQM CoDel or MPTCP are in practical, everyday use by Linux users and administrators. Anyone who wants to use these protocols today must take the initiative and do some work.

Middlebox appliances (ALG, NAT, VPN concentrator, SSL terminator, etc.) are proving problematic for all advanced forms of IP and TCP because they – unlike pure routers – like to intrude in the IP and TCP headers, change the parameters, and define filters on header fields. The TCP variant MPTCP is characterized by the value 30 in the options field of the TCP header [36] or the TCP Fast Open – planned for experimental use – by the value 254 [7]. If middleboxes filter TCP options, the new TCP variants fail.

Unfortunately, the providers of such middleboxes (Barracuda, Checkpoint, Juniper, or McAfee) do not publish any information about blocking behavior with experimental or new TCP options. Cisco at least offers a list of the MPTCP support for their own devices [40]. Implementing the new approaches therefore currently requires more precise engagement with the manufacturer.

In practice, it is often not easy to recognize where the bufferbloat arises. If it is found on a device you cannot control, the only option is to artificially limit the rate to an upstream router in order to move the bottleneck into its own territory and to use AQM ([24], p. 14).


Do the performance benefits of integrating these additional protocols justify the complication and cost? We carried out extensive tests on a typical mobile device, a Sony Xperia Z1 compact D5503, to see whether adding these protocols made a difference to performance. We used the Cyanogenmod 11 community-built version of Android 4.4, with the Android Linux kernel 3.4.0.

We employed Compat, the Linux backport module, to address the problem that the fq_codel implementation of FQ CoDel is only available from Kernel 3.5. We fetched MPTCP 0.86 from a Nexus 5, whose kernel already supports MPTCP [42], and adjusted it all for the Cyanogenmod kernel.

The first scenario measured latency and data rates (upload and download) for the standard algorithm Fifo and fq_codel in the mobile network (3G) and for multiple wireless standards (IEEE 802.11*). We used the Netperf benchmark [43], occasionally supplemented with measurements from standard HTTP requests. The second scenario involved tests for evaluating MPTCP. In the case of the 3G test, the Netperf server was installed on a virtual server (3.3GHz, 1GB RAM, 100MB connection) at a hoster (Hetzner).

For the WiFi tests, a Netperf server was available in the local network (2x2.5 GHz, 4GB RAM, 1000MB). Both servers used Debian-based distributions. A Linux kernel 3.5 from the MPTCP project APT repository provided the MPTCP support.

Tests on the Mobile Network

The matrix of all collected test results is too large to display in full. The following statements are therefore limited to the central findings. For the FQ CoDel scenario, the testers first measured the TCP latency (TCP_RR test) to the server with the upload channel busy at the same time (TCP_STREAM test). In addition, a second test series occupied the download channel (TCP_MAERTS-test).

As shown in Figure 3, fq_codel accomplished no significant changes compared to the previous default Fifo with the complete utilization of both channels of a 3G connection; with sole usage of the upload channel, on the other hand, the latency with fq_codel reduced from 1115 to 260 milliseconds. However, the data rates measured during the tests remained practically the same (Figure 4).

Figure 3: Measured latency in the 3G network with traditional Fifo algorithm and new fq_codel.
Figure 4: Data rate in 3G network measured in Figure 3.

The homepage loading time for Linux Magazine online with a busy upload channel was measured in another test. The effects of latency reduction become clearer here because the scenario included about 60-70 HTTP requests for a page call. Figure 5 shows that the homepage transfer time reduced by 40 seconds using 3G with fq_codel.

Figure 5: The transfer time of http://www.linux-magazine.com using Fifo and fq_codel.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Controlled Delay Management

    The persistent and growing problem of bufferbloat is getting serious relief from a new active queue management tool known as a Controlled Delay – a tool that, thanks to heroic efforts, is now ready for Linux.

  • Security Lessons: Bufferbloat

    An abundance of buffers hides the Internet’s dirty little secret.

  • Linux News
    • Red Hat Addresses Secure Boot
    • FSF Addresses Secure Boot
    • Android 4.1 Jelly Bean
  • News

    In the news: Purism Launches a Mini PC; openSUSE Leap 15.2 Adds AI and Machine Learning; Google's Nearby Sharing Could Work with Linux; System76 Launches Ryzen-Powered Laptop; Fedora 33 Desktop Defaults to Btrfs; and SUSE Acquires Rancher Labs.

  • IoT with RabbitMQ

    Connect multiple protocols and servers together on your IoT projects.

comments powered by Disqus

Direct Download

Read full article as PDF:

Price $2.95