Andy Furniss wrote:
b) it reacts to increase in RTT. An experiment with 10 Mbps
bottleneck, 40 ms RTT and a typical 1000 packet buffer, increase in
RTT with BBR is ~3 ms while with cubic it is over 1000 ms.
That is a nice aspect (though at 60mbit hfsc + 80ms bfifo I tested with
5 tcps it was IIRC 20ms vs 80 for cubic). I deliberately test using ifb
on my PC because I want to pretend to be a router - IME (OK it was a
while ago) testing on eth directly gives different results - like the
locally generated tcp is backing off and giving different results.
I retested this with 40ms latency (netem) with hfsc + 1000 pfifo on ifb.
5 tcps netperf bbr =
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=40.611 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=162.566 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=163.854 ms
64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=143.220 ms
64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=139.458 ms
64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=139.466 ms
64 bytes from 192.168.0.1: icmp_seq=8 ttl=64 time=139.570 ms
64 bytes from 192.168.0.1: icmp_seq=9 ttl=64 time=139.876 ms
64 bytes from 192.168.0.1: icmp_seq=10 ttl=64 time=139.592 ms
64 bytes from 192.168.0.1: icmp_seq=11 ttl=64 time=139.580 ms
64 bytes from 192.168.0.1: icmp_seq=12 ttl=64 time=139.458 ms
64 bytes from 192.168.0.1: icmp_seq=13 ttl=64 time=40.625 ms
Of course cubic was totally horrible -
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=40.605 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=209.066 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=261.172 ms
64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=316.063 ms
64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=363.004 ms
64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=417.586 ms
64 bytes from 192.168.0.1: icmp_seq=8 ttl=64 time=569.068 ms
64 bytes from 192.168.0.1: icmp_seq=9 ttl=64 time=784.740 ms
64 bytes from 192.168.0.1: icmp_seq=10 ttl=64 time=1064.652 ms
64 bytes from 192.168.0.1: icmp_seq=12 ttl=64 time=1204.801 ms
64 bytes from 192.168.0.1: icmp_seq=13 ttl=64 time=973.802 ms
64 bytes from 192.168.0.1: icmp_seq=14 ttl=64 time=155.116 ms
64 bytes from 192.168.0.1: icmp_seq=15 ttl=64 time=40.414 ms
With hfsc on root of eth both cubic and bbr were the same -
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=40.619 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=52.775 ms
64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=53.217 ms
64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=52.742 ms
64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=53.176 ms
64 bytes from 192.168.0.1: icmp_seq=8 ttl=64 time=53.179 ms
64 bytes from 192.168.0.1: icmp_seq=9 ttl=64 time=53.027 ms
64 bytes from 192.168.0.1: icmp_seq=10 ttl=64 time=53.179 ms
64 bytes from 192.168.0.1: icmp_seq=11 ttl=64 time=52.623 ms
64 bytes from 192.168.0.1: icmp_seq=12 ttl=64 time=53.383 ms
64 bytes from 192.168.0.1: icmp_seq=13 ttl=64 time=52.906 ms
64 bytes from 192.168.0.1: icmp_seq=14 ttl=64 time=40.600 ms
So tcp was getting push back = unrepresentative result if you
want to test as if a queue on a remote router.
_______________________________________________
Cake mailing list
[email protected]
https://lists.bufferbloat.net/listinfo/cake