Hi All,
I have setup a wireless env(A PC host which connect to wireless Router through cable served as the Sender and a Laptop which connct to the WLAN Hotspots
served as a data receiver)to test BBR.
cable
PC ----------- Wireless Router .))) Laptop
BBR has been deployed on the the PC host with the kernel version 4.9-rc2 and Iperf tool has been used to send/recv data on PC/Laptop. To have a contrast,
Cubic algorithm has been tested too. What confused me is that Cubic get a higher throughput than BBR with/without fq qdisc pacing enable on my test(since
BBR is rate-based rather than loss-based, it is intuitive that BBR can reach a higher throughput than loss-based algorithm on unreliable wireless link).
Related test info as follows:
1. Sender with cubic algorithm get a 15.6Mbps throughput
iperf2 -c 192.168.1.201 -p 7070 -i 1 -t 30 -P 1
[ 3] 0.0-30.1 sec 56.4 MBytes 15.7 Mbits/sec
-----------------------------------------------------------------------
from tcptrace: (about 0.05% loss)
actual data pkts: 17579 actual data pkts: 0
rexmt data pkts: 9 rexmt data pkts: 0
-------------------------------------------------------------------------
from 1s inteval ss output:
cubic wscale:0,7 rto:220 rtt:19.708/13.509 mss:1448 cwnd:47 ssthresh:34 bytes_acked:35900289 segs_out:25026 segs_in:12503 data_segs_out:25024 send 27.6Mbps lastsnd:9 lastrcv:1916349 lastack:9 pacing_rate 33.1Mbps unacked:45 retrans:0/8 rcv_space:29200 notsent:267880 minrtt:1.899
cubic wscale:0,7 rto:290 rtt:89.453/6.28 mss:1448 cwnd:47 ssthresh:34 bytes_acked:37888768 segs_out:26412 segs_in:13196 data_segs_out:26410 send 6.1Mbps lastsnd:138 lastrcv:1917353 lastack:142 pacing_rate 7.3Mbps unacked:45 retrans:0/8 rcv_space:29200 notsent:222992 minrtt:1.899
cubic wscale:0,7 rto:212 rtt:10.534/1.361 mss:1448 cwnd:47 ssthresh:34 bytes_acked:39452233 segs_out:27498 segs_in:13741 data_segs_out:27496 send 51.7Mbps lastsnd:1 lastrcv:1918358 lastack:1 pacing_rate 62.0Mbps unacked:41 retrans:0/8 rcv_space:29200 notsent:226961 minrtt:1.899
cubic wscale:0,7 rto:261 rtt:60.695/5.236 mss:1448 cwnd:47 ssthresh:34 bytes_acked:41967409 segs_out:29253 segs_in:14616 data_segs_out:29251 send 9.0Mbps lastsnd:13 lastrcv:1919362 lastack:17 pacing_rate 10.8Mbps unacked:46 retrans:0/8 rcv_space:29200 notsent:348593 minrtt:1.899
cubic wscale:0,7 rto:213 rtt:12.386/3.724 mss:1448 cwnd:47 ssthresh:34 bytes_acked:44046737 segs_out:30696 segs_in:15339 data_segs_out:30694 send 44.0Mbps lastsnd:21 lastrcv:1920366 lastack:22 pacing_rate 52.7Mbps unacked:43 retrans:0/8 rcv_space:29200 notsent:249056 minrtt:1.899
2. Sender with BBR + FQ (without pacing) get a 13.2Mbps
iperf2 -c 192.168.1.201 -p 7070 -i 1 -t 30 -P 1
[ 3] 0.0-30.1 sec 47.5 MBytes 13.2 Mbits/sec
------------------------------------------------------------------------
from tcptrace: (about 0.03% loss)
actual data pkts: 12478 actual data pkts: 0
rexmt data pkts: 4 rexmt data pkts: 0
---------------------------------------------------------------------------
from 1s inteval ss output:
bbr wscale:0,7 rto:238 rtt:37.473/8.284 mss:1448 cwnd:42 ssthresh:36 bytes_acked:3434681 segs_out:2430 segs_in:1194 data_segs_out:2428 bbr mode:probe_bw,ca state:Open,maxbw:64.9M,minrtt:2.339,pacing gain:256,cwnd gain:512, send 13.0Mbps lastsnd:1 lastrcv:3475176 lastack:3 pacing_rate 67.2Mbps unacked:42 rcv_space:29200 notsent:654496 minrtt:2.339
bbr wscale:0,7 rto:271 rtt:17.134/1.198 mss:1448 cwnd:24 ssthresh:36 bytes_acked:4976801 segs_out:3477 segs_in:1727 data_segs_out:3475 bbr mode:probe_bw,ca state:Open,maxbw:34.9M,minrtt:2.339,pacing gain:256,cwnd gain:512, send 16.2Mbps lastsnd:19 lastrcv:3476181 lastack:20 pacing_rate 36.2Mbps unacked:23 rcv_space:29200 notsent:955680 minrtt:2.339
bbr wscale:0,7 rto:230 rtt:29.556/8.483 mss:1448 cwnd:16 ssthresh:36 bytes_acked:6233665 segs_out:4339 segs_in:2161 data_segs_out:4337 bbr mode:probe_bw,ca state:Open,maxbw:21.0M,minrtt:2.339,pacing gain:256,cwnd gain:512, send 6.3Mbps lastsnd:19 lastrcv:3477185 lastack:81 pacing_rate 21.7Mbps unacked:17 rcv_space:29200 notsent:758752 minrtt:2.339
bbr wscale:0,7 rto:216 rtt:15.587/4.026 mss:1448 cwnd:32 ssthresh:36 bytes_acked:6943185 segs_out:4845 segs_in:2406 data_segs_out:4843 bbr mode:probe_bw,ca state:Open,maxbw:46.3M,minrtt:2.339,pacing gain:256,cwnd gain:512, send 23.8Mbps lastsnd:24 lastrcv:3478190 lastack:57 pacing_rate 48.0Mbps unacked:33 rcv_space:29200 notsent:726896 minrtt:2.339
bbr wscale:0,7 rto:260 rtt:14.821/2.368 mss:1448 cwnd:18 ssthresh:36 bytes_acked:7991537 segs_out:5554 segs_in:2768 data_segs_out:5552 bbr mode:probe_bw,ca state:Open,maxbw:27.0M,minrtt:2.339,pacing gain:256,cwnd gain:512, send 14.1Mbps lastsnd:16 lastrcv:3479194 lastack:16 pacing_rate 27.9Mbps unacked:18 rcv_space:29200 notsent:751512 minrtt:2.339
3. Sender with BBR + FQ(with pacing) get a 9.79Mbps
iperf2 -c 192.168.1.201 -p 7070 -i 1 -t 30 -P 1
[ 3] 0.0-30.4 sec 35.5 MBytes 9.79 Mbits/sec
------------------------------------------------------------------------
from tcptrace: (about 0.04% loss)
actual data pkts: 12062 actual data pkts: 0
rexmt data pkts: 6 rexmt data pkts: 0
---------------------------------------------------------------------------
from 1s inteval ss output:
bbr wscale:0,7 rto:208 rtt:7.359/1.107 mss:1448 cwnd:42 bytes_acked:3711249 segs_out:2628 segs_in:1293 data_segs_out:2626 bbr mode:probe_bw,ca state:Open,maxbw:48.3M,minrtt:3.753,pacing gain:192,cwnd gain:512, send 66.1Mbps lastsnd:1 lastrcv:3548446 lastack:5 pacing_rate 37.5Mbps unacked:42 retrans:0/1 rcv_space:29200 notsent:1560944 minrtt:3.753
bbr wscale:0,7 rto:226 rtt:25.274/1.817 mss:1448 cwnd:20 bytes_acked:5343145 segs_out:3724 segs_in:1857 data_segs_out:3722 bbr mode:probe_bw,ca state:Open,maxbw:28.3M,minrtt:2.464,pacing gain:256,cwnd gain:512, send 9.2Mbps lastsnd:1 lastrcv:3549451 lastack:2 pacing_rate 29.3Mbps unacked:10 retrans:0/1 rcv_space:29200 notsent:1377048 minrtt:2.464
bbr wscale:0,7 rto:212 rtt:11.586/3.568 mss:1448 cwnd:16 bytes_acked:6652137 segs_out:4629 segs_in:2309 data_segs_out:4627 bbr mode:probe_bw,ca state:Open,maxbw:19.2M,minrtt:2.464,pacing gain:256,cwnd gain:512, send 16.0Mbps lastsnd:1 lastrcv:3550456 lastack:1 pacing_rate 19.9Mbps unacked:11 retrans:0/1 rcv_space:29200 notsent:1404560 minrtt:2.464
bbr wscale:0,7 rto:221 rtt:20.082/9.429 mss:1448 cwnd:18 bytes_acked:8076969 segs_out:5620 segs_in:2801 data_segs_out:5618 bbr mode:probe_bw,ca state:Open,maxbw:24.5M,minrtt:2.464,pacing gain:256,cwnd gain:512, send 10.4Mbps lastsnd:5 lastrcv:3551460 lastack:9 pacing_rate 25.4Mbps unacked:18 retrans:0/1 rcv_space:29200 notsent:1307544 minrtt:2.464
bbr wscale:0,7 rto:212 rtt:11.775/2.485 mss:1448 cwnd:14 bytes_acked:9397545 segs_out:6527 segs_in:3257 data_segs_out:6525 bbr mode:probe_bw,ca state:Open,maxbw:15.8M,minrtt:2.464,pacing gain:256,cwnd gain:512, send 13.8Mbps lastsnd:17 lastrcv:3552465 lastack:21 pacing_rate 16.4Mbps unacked:13 retrans:0/1 rcv_space:29200 notsent:1332160 minrtt:2.464
bbr wscale:0,7 rto:233 rtt:32.745/17.781 mss:1448 cwnd:14 bytes_acked:10408249 segs_out:7226 segs_in:3606 data_segs_out:7224 bbr mode:probe_bw,ca state:Open,maxbw:16.5M,minrtt:2.279,pacing gain:256,cwnd gain:512, send 5.0Mbps lastsnd:26 lastrcv:3553469 lastack:28 pacing_rate 17.1Mbps unacked:14 retrans:0/1 rcv_space:29200 notsent:1689816 minrtt:2.279
There are no packets dropped on TC layer on each test.
It seems that BBR has a more variable CWND compared with Cubic from my roughly ss output. Please see attachment for tcpdump trace files.
Any suggestion would be greate appreciate!
Regards,
devin