Want to confirm the simulation of BBRv2 behavior

59 views
Skip to first unread message

Yuanlai Zhou

unread,
Apr 14, 2023, 2:35:21 PM4/14/23
to BBR Development
Hi BBR team, 
     I am currently working on the BBRv2 algorithm, I implemented the algorithm myself and did simulation based on below parameters:

     AR(ACK data ratio) = 2

     RTT: propagation delay(100ms) + queuing delay

     Packet Loss Ratio(PLR): 0%

     File size: 20MByte

     Max limit of receiver window = 655350 Byte

     Initial window = 10 MSS

     Bottleneck Buffer = 16 * BDP

     Bottleneck bandwidth = 10Mbps

     BBR loss rate threshold: 2%

     ProbeRTTDuration: 200ms

     ProbeRTTInterval: 5 sec

     MinRTTFilterLen: 10 sec 


    The simulation result could be found in the attachment.

    Based on the algorithm statement, during ProbeBW_Cruise, the algorithm tries to match the sending rate to the available bandwidth. But in my result, the sending rate is far below the available bandwidth. Is there something wrong for my result? what should be the correct BBRv2 behavior? Figure in page 11 of "slides-112-iccrg-bbrv2-update-00" is the correct behavior?

Thank you,

Yuanlairesult.png

  


Neal Cardwell

unread,
Apr 14, 2023, 3:24:54 PM4/14/23
to Yuanlai Zhou, BBR Development
Hi,

Thanks for the post.

Yes,  page 11 of https://datatracker.ietf.org/meeting/112/materials/slides-112-iccrg-bbrv2-update-00 should give you a sense of the desired trajectory of the volume of in-flight data through the life cycle of a BBRv2 connection.

From your graphs, it looks like the "BBR BW" (which I take to correspond to BBR.max_bw in the IETF draft), the cwnd, the pacing rate, and the delivery rate are all about 1/2 of what they should be during the ProbeBW_CRUISE phase. Given that the chain of causality is: bandwidth estimate causes the cwnd and pacing rate, and the cwnd and pacing rate cause the delivery rate, it looks like the bandwidth estimate is too low. In particular it looks like your BBR.max_bw implementation is not tracking the maximum bw sample in the last 1-2 bandwidth probing cycles, but something else. So your implementation is in effect "forgetting" that it achieved 10 Mbps every time it enters ProbeBW_CRUISE.

You might compare your BBR.max_bw implementation to the "BBR.max_bw: Estimated Maximum Bandwidth" section of the draft:

--
You received this message because you are subscribed to the Google Groups "BBR Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bbr-dev+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bbr-dev/78e79a91-4405-4da8-80cb-dc1b65e58a4cn%40googlegroups.com.

Yuanlai Zhou

unread,
Apr 14, 2023, 3:31:28 PM4/14/23
to Neal Cardwell, BBR Development
Hi Neal,
     Thanks for the quick reply. I will check my code based on your suggestions.

Thanks,
Yuanlai
Reply all
Reply to author
Forward
0 new messages