Hi Brian,
Many thanks for all these interesting and useful results!
I agree that in general these are all expected results. Regarding the impact of bbr2 on CUBIC on high-RTT paths when there is contention between the two (see slide 8): the behavior in your tests is expected given the current bbr2 design and design parameters.
The basic design approach that bbr2 takes with respect to sharing with loss-based algorithms like CUBIC and Reno is described briefly in our IETF 102 talk [
slides] [
video].
One big challenge in coexisting with CUBIC/Reno is that these algorithms (especially Reno but even CUBIC) need very long periods without packet loss in order to reach high speeds with long RTTs. By my quick back-of-the-envelope calculations, CUBIC would need regular runs of 21 seconds without packet loss to maintain a 1.6Gbit/sec fair share with a 100ms RTT (similar to your WAN tests in slide 8). While this is achievable in controlled testing on networks that are lightly-utilized or have low degrees of multiplexing, our experience is that on networks with a dynamic mix of short and long flows this very low level of packet loss is rarely achieved in practice, and trying to maintain it is overly constraining to congestion control design.
That said, we are always open to feedback and discussions on important issues like this. So thank you for the data and analysis and discussion!
best,
neal