In this post, I compare the performance of BBR and Cubic on ns3 in term of packets loss rate. And the simulation code is based on quic coebase. A point to point channel is built. In each test case, three fows are injected into the link and with the same congestion control algorithm(Cubic or BBR).
And there is a paremeter (drain_to_target_) in quic BBR, which impact the performance of the algorithm in term of packet loss. Here, BBR(false) means that (drain_to_target_=false).
case | BBR(false) | BBR(true) | CUBIC |
---|---|---|---|
1 | 0.0360 | 0.0110 | 0.0077 |
2 | 0.0289 | 0.0099 | 0.0099 |
3 | 0.0301 | 0.0097 | 0.0106 |
4 | 0.0400 | 0.0128 | 0.0054 |
5 | 0.0255 | 0.0097 | 0.0073 |
6 | 0.0191 | 0.0097 | 0.0088 |
7 | 0.0330 | 0.0098 | 0.0047 |
8 | 0.0337 | 0.0096 | 0.0062 |
9 | 0.0168 | 0.0096 | 0.0076 |
The averge packets loss rate of BBR 1%~2% seems quite conforming with these tests in [3,4]. The cubic can achieve lower packets loss rate but also results in longer packet transmision delay. And the packet loss rate in cellular access network seem quit low about 1% as tested by [6,7].
The packet loss in internet for webrtc also is also low enough (below 1% in most cases) testd in [8].
Even through BBR has bias torwards longer RTT flows [5], It can get quite high utilization of link bandwidth resource and achieve lower transmisison delay.
The rate dynamic when two BBR flows (flow1 and flow2) competing bandwidth (total 12 Mbps) with a Cubic flow(flow3):
Packet one way transmission delay:
[1] quic code
[2] Increased Retransmission using BBR
[3] BBR Congestion Control: An Update
[4] BBR Congestion Control Work at Google
[5] BBR拥塞控制RTT不公平性测试
[6] End-to-end delay analysis of WeChat video call service in live DC-HSPA+ network
[7] Performance Evaluation of WeChat Video Call Service in Live HSPA+ Network
[8] Performance of DASH and WebRTC Video Services for Mobile Users