Facebook Tests New Congestion Control Algorithm COPA Against BBR and CUBIC

Facebook опубликовал results of experiments with a new congestion control algorithm - COPAoptimized for video content. The algorithm was proposed by researchers from the Massachusetts Institute of Technology. The COPA prototype proposed for testing is written in C++, open licensed under the MIT license and included in the mvfst - the implementation of the QUIC protocol developed by Facebook.

The COPA algorithm is focused on solving problems that arise when transmitting video over a network. Depending on the type of video, almost opposite requirements are imposed on congestion control algorithms - for interactive video, it is required to ensure minimal delays, even at the expense of quality, and when broadcasting pre-prepared high-quality video, priority is given to maintaining quality. Previously, application developers were limited by the ability to apply different algorithms, depending on quality or latency requirements. The researchers who developed COPA attempted to create a generic algorithm for managing TCP congestion in video transmission, which can be tuned depending on the requirements of the video.

The work of the congestion control algorithm is to determine the optimal balance when sending packets - sending too many packets can lead to packet loss and performance sag due to the need to resend them, and sending too slow leads to delays, which also negatively affect performance. For experiments, the QUIC protocol was chosen, since it allows implementing the operation of congestion control algorithms in user space without interfering with the kernel.

To prevent congestion of the communication channel, COPA uses modeling of channel characteristics based on the analysis of changes in packet delivery delays (COPA reduces the size of the congestion window with increasing delays, manipulating the fact that delays begin to increase even at the stage before packet loss occurs). The balance between delays and throughput is adjusted using a special delta parameter. Increasing delta increases latency sensitivity but reduces throughput, while decreasing delta allows for higher throughput at the cost of higher latency. The value delta=0.04 is defined as the optimal balance between quality and latency.

Facebook Tests New Congestion Control Algorithm COPA Against BBR and CUBIC

Based on the Facebook Live streaming service, COPA testing was organized in comparison with the popular CUBIC and BBR algorithms. The default CUBIC algorithm used on Linux is to gradually increase the size of the congestion window until packet loss occurs, after which the window size is rolled back to the value before the loss began.

CUBIC leaves much to be desired in intermediate packet buffering on modern network equipment, which slows down packet drops. The congestion control algorithm is unaware of buffering and continues to ramp up even if the link is already physically congested. Unsent packets are buffered, not discarded, and the TCP congestion control algorithm only works after the buffer is full and cannot find the right balance of flow rate, correlated with the speed of the physical link. To solve this problem, Google has proposed an improved BBR algorithm that predicts available bandwidth through successive checks and round-trip time (RTT) estimates.

At delta=0.04, the COPA indicators turned out to be close to CUBIC and BBR. In tests conducted on a high-speed network connection with low packet latency, COPA achieved lower latency (479 ms) than CUBIC (499 ms), but slightly behind BBR (462 ms). With a decrease in communication quality, COPA showed the best results - the delays were 27% lower than when using CUBIC and BBR.

Facebook Tests New Congestion Control Algorithm COPA Against BBR and CUBIC

Facebook Tests New Congestion Control Algorithm COPA Against BBR and CUBIC

At the same time, on a poor communication channel, COPA and BBR made it possible to achieve significantly higher throughput compared to CUBIC. The gain of BBR, compared to CUBIC, was 4.8% and 5.5%, and COPA - 6.2% and 16.3%.

Facebook Tests New Congestion Control Algorithm COPA Against BBR and CUBIC

Source: opennet.ru

Add a comment