Keeping an Eye on Congestion Control in the Wild with Nebby

Title: Keeping an Eye on Congestion Control in the Wild with Nebby

Speaker: Ayush Mishra (NUS)

Authors: Ayush Mishra (National University of Singapore), Lakshay Rastogi (Indian Institute of Technology, Kanpur), Raj Joshi (National University of Singapore), and Ben Leong (National University of Singapore)

Introduction: The paper introduces a congestion control algorithm identification methodology and tool called Nebby. The authors stress the inability of existing CCA identification tools such as IG and Gordon, are not future-proof. Therefore, they cannot identify CCAs that have recently been introduced.

Key idea and contribution: Congestion Control Algorithm identification is difficult because: 1) New types of CCA are regularly introduced. Identification tools must be able to easily identify these new roll-outs. 2) Identification tools must be client-agnostic in order to be able to find new patterns in congestion control behavior. 3) Identification tools must be passive.
The key insight is that the Bytes in Flight (BiF) is a good signature for identifying CCAs. By creating a local bottleneck and introducing an additional delay in the bottleneck, Nebby is able get as far away as possible from the client to detect fine-grained CC behavior. Higher delays (below 100ms) result in more accurate measurements.
The second contribution in Nebby is the classifier that does not overfit to just existing CCAs. The key insight is that there are unique oscillation patterns in the BiF traces for different congestion control algorithms. The classifier identifies these oscillations (it is referred to as shape-based classifier).

Evaluation:
The results show that Nebby is able to identify 83% of CCAs in production networks with 96% accuracy. The authors also show that Nebby is able to detect unknown CCAs such as BBRv3’s testing roll-out by Google or Akamai’s CCA.

Q: how much data does the classifier need in order to accurately identify the CCA?

A: For Nebby, a minimum page size of 160KB is assumed.

Q: Were you able to classify PCC? What is PCC in terms of your classifier?

A: PCC is a hard congestion control algorithm to classify. We had only 50% success rate using Nebby to classify PCC because of the variety in its BiF oscillation behavior.

Q: Are there scenarios where Nebby’s classifier gets confused like for example when the bottleneck is not backlogged?

A: If we are app-limited, Nebby can not successfully identify the CCA. The authors did have some issues with workloads like video streaming because of not enough data in buffers, so they used brute force to make sure they have enough input for the classifier.

Personal thoughts
The last paper in the session, CCAnalyzer, shares a similar motivation to Nebby as they try to introduce more accurate and efficient CCA identification methods. CCAnalyzer uses queue utilization samples and uses Nearest Neighbor classification with Dynamic Time Warping for its time-series analysis of collected queue utilization data.