Selection of the optimal transmission rate in packet-switched best-effort networks is challenging. Typically, senders do not have any information about the end-to-end path and should not congest the connection but at once fully utilize it. The accomplishment of these goals lead to congestion control protocols such as TCP Reno, TCP Cubic, or TCP BBR that adapt the sending rate according to extensive measurements of the path characteristics by monitoring packets and related acknowledgments. To improve and speed up this adaptation, we propose and evaluate a machine learning approach for the prediction of sending rates from measurements of metrics provided by the TCP stack. For the prediction a neural network is trained and evaluated. The prediction is implemented in the TCP stack to speed up TCP slow start. For a customizable and performant implementation the extended Berkeley packet filter is used to extract relevant data from the kernel space TCP stack, to forward the monitoring data to a user space data rate prediction, and to feed the prediction result back to the stack. Results from a online experiment show improvement in flow completion time of up to 30%.
https://gitlab.com/ralfluebben/tcp_prediction/-/tags/submission_preprint_2022_06_13
https://gitlab.com/ralfluebben/tcp_ai_cwnd/-/tags/submission_preprint_2022_06_13
https://gitlab.com/ralfluebben/bbr_bpf/-/tags/submission_preprint_2022_06_13
https://gitlab.com/ralfluebben/linux/-/tags/submission_preprint_2022_06_13