Subject: [tcpPrague] TCP Prague under-utilising capacity when RTT scaling turned on

From: Ashutosh Srivastava <[email-masked]>
Date: Thu, 28 May 2020 15:20:40 -0400

Hi everyone,

This is about an issue I found with the recently added RTT scaling feature
of TCP Prague linux kernel implementation. This was first observed with
commit number 7f267bd
<https://github.com/L4STeam/linux/commit/7f267bd591c249697f63f81b21a1755202e86cc2#diff-38ce93325583f02d790276f5cafd1c42>
(
Mar 16, 2020 ) where RTT scaling was turned on by default and also with
future commits when we explicitly enable RTT scaling.

The plot below shows the throughput of a single TCP Prague flow. Although
the available capacity was 1Gbps, TCP Prague is not able to reach that
point anytime during the experiment.
The experiment settings were as follows

   - This experiment was done on the Cloudlab
<https://www.cloudlab.us/> testbed
   with a 3-node topology ( source, router, receiver).
   - The bottleneck between the router and receiver was a 1 Gbps wired link
   ( 10 Gig interfaces , capacity restricted to 1Gbps using linux traffic
   shaping tools (tc) ).
   - The flow was sent using iperf3.
   - The AQM at the router was a FQ qdisc with a single bucket and was
   marking packets with ECN at a marking threshold of 5 ms. You can use the
   following parameters with the tc-fq qdisc to replicate this setting :  fq
   limit 5000p flow_limit 5000p orphan_mask 0 ce_threshold 5ms
   - The "ECN fallback on detection of classic ECN AQM" feature of TCP
   Prague were disabled for this set of experiments.
   - The propagation / base delay of the setup was very low ( around 0.4 ms
   ) and no delay was added on top.

If interested, you can look at the ss data plots for these experiments at :
https://drive.google.com/drive/folders/1O6uEngxrDX5ipY71sjqr36lXCQBoZV--?usp=sharing

Looking forward to your comments and questions regarding these results.

Thank you,

Ashutosh Srivastava
First year PhD student,
Department of Electrical and Computer Engineering
NYU Tandon School of Engineering