Speeding up mobile networks with FQ CoDel and MPTCP

Test Results in WiFi

In WiFi, the tests with Netperf and normal HTTP requests show an even more irregular image. Depending on the WiFi standard, fq_codel leads to slightly better, but also worse results regarding latency and data rate. fq_codel generally works worse together with higher WiFi bitrates. 802.11n and further developments such as 802.11ac are currently particularly problematic because the algorithm prevents the massively used package aggregation. The performance is affected yet further if uplinks and downlinks are loaded at the same time.

According to these experiences, you can use the FQ CoDel algorithm today in the cellular network without disadvantages. Reducing the latency is clearly noticeable in realistic scenarios. WiFi, however, still requires some tests. Current incompatibilities between the CoDel and WiFi standards mean you should tread carefully until the industry implements better integration of wireless protocols [44].

The MPTCP Failover Test

We focused on the failover scenarios when evaluating MPTCP because the performance when bundling WiFi and 3G through high latency and jitter in the cellular network can come off worse than with an individual connection [45]. Furthermore, operating multiple paths in parallel to activate MPTCP in the Linux kernel is not easy because Android disconnects the mobile data connection in an active WiFi connection. The parallel operation of multiple paths would require reprogramming the network routines. Positively expressed, enabling MPTCP in the Linux kernel is already enough to increase the robustness of TCP connections against the temporary loss of wireless connections.

We initiated a Netperf session for the MPTCP failover test using MPTCP via the WLAN interface. We separated the WiFi connection during data transfer. After establishing an Internet connection via the mobile network, MPTCP then automatically added the 3G connection to the session so that the data transfer continued. The session later switched back to WiFi in the same manner.

Figure 6 shows that, after the WiFi connection is lost, the MPTCP connection can be continued after about 4 seconds with enabled MPTCP using mobile communications. Switching back to WiFi requires a transmission pause of 2 seconds. The switching times can be reduced by the parallel operation of both interfaces or completely eliminated with planned network changes.

Figure 6: The MPTCP failover test with measured downtimes and data rates.

Comparisons of MPTCP connections, each with an individual stream, and pure TCP connections show no significant performance differences. However, MPTCP is – as described – still an experimental protocol that is not included in the mainline Linux kernel and requires the support of both client and server. Furthermore, some firewalls or other middleboxes discard packets with the new TCP option. MPTCP avoids the standard TCP in this case – to do so, it must wait out a timeout, meaning that, in the worst case scenario, it can cause a delay with establishing a connection. We therefore recommend MPTCP only for closed systems.


Recent research shows that more efforts are needed to integrate mobile systems with sufficient performance and robustness on the Internet. Linux offers good approaches here; however, these approaches are not very well known. AQM, in the form of FQ CoDel, provides a more promising candidate against bufferbloat problems. MPTCP is a good solution against connection failures when network switching.

However, the tests show that both approaches can neither fully solve the mobile network problems nor can they readily be used productively. These limitations stem from the lack of CoDel support in the leading network and security equipment in particular, and conservative settings for new TCP options in general.

The measurements in this article have shown that no MPTCP connection can be established in the 1&1 (Vodafone) and Blau.de (E-Plus) mobile communications networks because the necessary TCP option has been removed from the packages. The MPTCP tests work with T-Mobile. Some work must be done before mobile devices work optimally in the network. Until then, administrators and developers for whom the performance of mobile systems is particularly important must set up their own realistic test environments.


  1. "Browsing as the killer app" by J. West, M. Mace: http://www.joelwest.org/Papers/WestMace2010-WP.pdf
  2. PC vs. smart phone sales numbers: http://en.wikipedia.org/wiki/Mobile_operating_system#Market_share, http://en.wikipedia.org/wiki/Market_share_of_personal_computer_vendors#Unit_sales
  3. Cisco Visual Networking Index, 2013-2018: https://www.cisco.com/c/en/us/solutions/collateral/service-provider/ip-ngn-ip-next-generation-network/white_paper_c11-481360.html
  4. "Lithium ion secondary batteries; past 10 years and the future" by Y. Nishi, Journal of Power Sources 100 (2001), No. 1, pg. 101
  5. "Increasing TCP's Initial Window," RFC 5256: https://tools.ietf.org/html/rfc5256
  6. Tail Loss Probe (TLP): https://tools.ietf.org/html/draft-dukkipati-tcpm-tcp-loss-probe-01
  7. TCP Fast Open: https://tools.ietf.org/html/draft-ietf-tcpm-fastopen-09
  8. "Communication in the presence of noise" by C. E. Shannon, Proceedings of the IRE 37 (1949), No. 1, pg. 10: http://nms.csail.mit.edu/spinal/shannonpaper.pdf
  9. "Bufferbloat: Dark buffers in the internet" by J. Gettys, K. Nichols: Queue 9 (2011), No. 11, pg. 40: https://dl.acm.org/citation.cfm?id=2071893
  10. "Performance simulation of buffer bloat in routers" by B. Gijsbers, D.D. Akkoorath: http://www.delaat.net/netbuf/bufferbloat_BG-DD.pdf
  11. "TCP Congestion Control," RFC 5681: https://tools.ietf.org/html/rfc5681
  12. "The CoDel queue management algorithm"by Jonathan Corbet: https://lwn.net/Articles/496509/
  13. "Rate control for robust video transmission over burst-error wireless channels" by C. Hsu et al., IEEE Journal 17, No. 5, pg. 756-773: http://sipi.usc.edu/~ortega/papers/HsuOrtegaKhansari99.pdf
  14. "Browsing as the killer app" by J. West, M. Mace: http://www.joelwest.org/Papers/WestMace2010-WP.pdf
  15. TCP over Second (2.5G) and Third (3G) Generation Wireless Networks. RFC 3481: https://tools.ietf.org/html/rfc3481.html
  16. "Web metrics: Size and number of resources" by S. Ramachandran: https://developers.google.com/speed/articles/web-metrics
  17. "How free is my phone?"by A. Back: http://www.h-online.com/open/features/How-free-is-my-phone-1634071.html
  18. "[Bloat] Testing fq_codel on Android Galaxy Nexus AK kernel" by E. Dumazet: https://lists.bufferbloat.net/pipermail/bloat/2013-February/001368.html
  19. "Network Acceleration with TCP Fast Open" by T. Schöler, M. Feilner. Linux-Magazin 02/13, pg. 70: http://www.linux-magazin.de/Ausgaben/2013/02/TCP-Fast-Open
  20. "Increasing the TCP initial congestion window" by J. Corbet: https://lwn.net/Articles/427104/
  21. Tail Loss Probe (TLP): https://tools.ietf.org/html/draft-dukkipati-tcpm-tcp-loss-probe-01
  22. "Proportional Rate Reduction for TCP" by N. Dukkipati et al.: https://research.google.com/pubs/pub37486.html
  23. Recommendations on Queue Management and Congestion Avoidance in the Internet. RFC 2309, pg. 2, https://tools.ietf.org/html/rfc2309
  24. "Controlling queue delay" by K. Nichols, V. Jacobson: Communications of the ACM 55 (2012), No. 7, pg. 42: https://queue.acm.org/detail.cfm?id=2209336
  25. "The BLUE active queue management algorithms" by W. C. Feng et al.: IEEE/ACM Transactions on Networking 10 (2002), No. 4, pg. 513: http://www.thefengs.com/wuchang/blue/ToN-02.pdf
  26. Codel Overview, Bufferbloat project: https://www.bufferbloat.net/projects/codel/wiki/Wiki?version=70
  27. FlowQueue Codel: https://tools.ietf.org/html/draft-hoeiland-joergensen-aqm-fq-codel-00
  28. "[PATCH v12] codel: Controlled Delay AQM" by E. Dumazet: https://lwn.net/Articles/496502/
  29. "Network transmit queue limits" by J. Corbet: https://lwn.net/Articles/454390/
  30. "The State of the Art in Bufferbloat" by T. Høiland-Jørgensen: https://www.ietf.org/proceedings/86/slides/slides-86-iccrg-0.pdf
  31. "TCP small queues" by J. Corbet: https://lwn.net/Articles/507065/
  32. Architecture for Mobile Data Offload over Wi-Fi Access Networks: https://www.cisco.com/c/en/us/solutions/collateral/service-provider/service-provider-wi-fi/white_paper_c11-701018.html
  33. IP Mobility Support for IPv4, Revised. RFC 5944: https://tools.ietf.org/html/rfc5944
  34. Mobility Support in IPv6. RFC 6275: https://tools.ietf.org/html/rfc6275
  35. "Multipath TCP: An overview" by J. Corbet: https://lwn.net/Articles/544399/
  36. TCP Extensions for Multipath Operation with Multiple Addressea. RFC 6824: https://tools.ietf.org/html/rfc6824
  37. Linux Kernel Multipath TCP: http://multipath-tcp.org/pmwiki.php/Main/HomePage
  38. "Maximize mobile user experience with NetScaler Multipath TCP" by J. Gudmundson: http://blogs.citrix.com/2013/05/28/maximize-mobile-user-experience-with-netscaler-multipath-tcp/
  39. "Apple seems to also believe in Multipath TCP" by O. Bonaventure: https://perso.uclouvain.be/olivier.bonaventure/blog/html/2013/09/18/mptcp.html
  40. MPTCP and Product Support Overview: https://www.cisco.com/c/en/us/support/docs/ip/transmission-control-protocol-tcp/116519-technote-mptcp-00.html
  41. Linux Kernel Backport Compatibility Module: https://mcgrof.github.io/compat/
  42. MPTCP kernel for the Nexus 5: https://github.com/gdetal/mptcp_nexus5
  43. Netperf-Suite: http://www.netperf.org
  44. FQ Codel on Wireless-n: http://www.bufferbloat.net/projects/cerowrt/wiki/Fq_Codel_on_Wireless
  45. "Multipath TCP over Wi-Fi and 3G links" by Gary Miguel, Angad Singh: http://reproducingnetworkresearch.wordpress.com/2012/06/04/multipath-tcp-over-wifi-and-3g-links/

The Author

Christian Bachert M.Sc. develops and maintains network environments. His specialties include integration of wireless accesses, implementation of network access control, and inclusion of mobile devices.

Prof. Dr. Willi Nüßer is the Heinz Nixdorf Foundation Professor of Computer Science at the Fachhochschule der Wirtschaft (University of Applied Sciences for Business) in Paderborn, Germany. He develops and manages large and small R & D projects. Previously, he worked at SAP AG, most recently as a developer in the SAP Linux lab, and was responsible for porting the SAP memory management on Linux and the support of various hardware platforms.

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