More Bytes, please - tricking model-based congestion control algorithms into sending data faster than they should.

Modern congestion control algorithms, such as BBR and Copa, model the network path to determine the optimal rate for sending packets. To do this, they estimate the Bandwidth-Delay Product (BDP) of the connection, which helps them identify the minimum number of bytes that should be in flight to fully utilize the bottleneck bandwidth while avoiding excessive queuing. These algorithms have become widespread on the Internet: BBR is deployed across most Google domains and is particularly favored by video streaming sites, while Meta uses Copa in production.

This project seeks to explore how sensitive these algorithms are to inaccuracies in their perceived model of the network. Specifically, we will develop a client-side tool that can deceive these algorithms into overestimating the BDP by artificially inflating the server’s perceived end-to-end delay. Crucially, we will do this without negatively impacting application performance or response times. Through this investigation, we aim to uncover a fundamental vulnerability in model-based congestion control algorithms that govern much of the Internet’s data traffic today and propose potential improvements to their BDP estimation techniques.

Milestones

  • Studying BBR’s sensitivity to RTT and Bandwidth estimates
  • Building a client-side tool for delaying acknowledgments for BBR connections
  • Building a tool in scapy/pcap++ to craft custom ACK packets
  • Testing the tool on real websites known to deploy these model-based congestion control algorithms
  • Proposing fixed to RTT and bandwidth estimation techniques used by model-based congestion control algorithms.

Requirements

  • Coding experience in C/C++
  • Some basic understanding of networking and congestion control
  • Critical and independent thinking.

Supervisors