Pacing_gain update>>Lost Packets

163 views
Skip to first unread message

Nabil Makarem

unread,
Jan 14, 2021, 7:13:29 AM1/14/21
to BBR Development
Dear Neal,

I hope you are well.

I have a question BBR mechanism when there is re-transmission. Everything is clear in the paper but what happens to the pacing gain factor when we have re-transmission? For instance, you follow the rule of increasing and then decreasing the sending rate to check for available BW where each cycle consists of the following pacing gain values: 5/4, 3/4,1, 1, 1, 1, 1, 1? What happens if a packet is lost? In that case, we need to re-transmit it but do you use the same pacing gain factor or you skip to the next value? In other words, if I use 5/4 pacing gain factor then I haven't received an ACK, do I use 5/4 for the re-transmitted packet or 3/4?


I am looking forward to hearing your feedback.

Neal Cardwell

unread,
Jan 14, 2021, 9:10:06 AM1/14/21
to Nabil Makarem, BBR Development
In BBRv1 the PROBE_BW pacing gain schedule is purely based on the progression of time, and is orthogonal to (independent of) whether or not the sender is retransmitting packets.

The intuition for the rationale behind allowing bandwidth probing even with some amount of packet loss is that at high enough BDPs, and realistic/achievable loss rates, a connection must expect it can encounter packet loss on every round trip. For example, for a path with 10Gbps bottleneck bandwidth and a min_rtt of 100ms, the BDP is 10Gbps * 100ms / (1514bytes) = 82,562 packets. With a BDP that large, even a loss rate of  0.00125% means the flow should roughly expect around one packet lost per round trip, on average:   .0000125 * 82,562 packet > 1 packet.

As far as details, the BBR article was brief, due to space limitations, but BBRv1 details can be seen in the Internet Draft:
And the Linux TCP BBR code:

Note that in BBRv2 the bandwidth probing does use the packet loss rate as a signal, and the connection will stop probing bandwidth if the loss rate goes above the loss rate threshold.

neal


--
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/4ba51565-3336-4425-ac8b-e6f8fbda90een%40googlegroups.com.

Nabil Makarem

unread,
Jan 14, 2021, 9:25:47 AM1/14/21
to BBR Development
Thank you so much for your prompt reply.

Nabil Makarem

unread,
Jan 19, 2021, 3:08:20 PM1/19/21
to BBR Development
Hello,

Few questions came up after you said: "Note that in BBRv2 the bandwidth probing does use the packet loss rate as a signal, and the connection will stop probing bandwidth if the loss rate goes above the loss rate threshold.". 
What will be pacing gain factor update of the following cycle: 5/4, 3/4,1, 1, 1, 1, 1, 1 when it is the turn to use 5/4 or 3/4, do you use 1 instead? Also, what is the value of loss rate threshold? How do you calculate the loss rate, is it during an interval of time? what if the device has been transmitting since x days? do you keep a long history record?

Thanks,
Nabil

Neal Cardwell

unread,
Jan 19, 2021, 3:33:27 PM1/19/21
to Nabil Makarem, BBR Development
On Tue, Jan 19, 2021 at 3:08 PM Nabil Makarem <falcon....@gmail.com> wrote:
Hello,

Few questions came up after you said: "Note that in BBRv2 the bandwidth probing does use the packet loss rate as a signal, and the connection will stop probing bandwidth if the loss rate goes above the loss rate threshold.". 
 
What will be pacing gain factor update of the following cycle: 5/4, 3/4,1, 1, 1, 1, 1, 1 when it is the turn to use 5/4 or 3/4, do you use 1 instead?

If BBRv2 is probing bandwidth (pacing_gain=5/4) and sees the loss rate go above loss_thresh, it advances to the phase of the cycle with the pacing gain of 3/4.
 
Also, what is the value of loss rate threshold?

By default so far in the v2alpha branch the loss_thresh is 2%.
 
How do you calculate the loss rate, is it during an interval of time?

BBRv2 measures the loss rate over a single round-trip, defined as the period between the transmit of some packet and the receipt of the SACK/ACK for that packet.
 
what if the device has been transmitting since x days? do you keep a long history record?

In BBRv2 there's no long-term history of loss rate. The loss rate is always measured over the most recently completed round trip.

For reference, the v2alpha code is at:

best,
neal
 

Nabil Makarem

unread,
Jan 19, 2021, 3:46:44 PM1/19/21
to BBR Development
If BBRv2 is probing bandwidth (pacing_gain=5/4) and sees the loss rate go above loss_thresh, it advances to the phase of the cycle with the pacing gain of 3/4.
Then what? does it stay at 3/4 until loss ratio<loss_thresh again or advances to 1 immediately after using 3/4 just once?

Neal Cardwell

unread,
Jan 19, 2021, 4:49:59 PM1/19/21
to Nabil Makarem, BBR Development
On Tue, Jan 19, 2021 at 3:46 PM Nabil Makarem <falcon....@gmail.com> wrote:
If BBRv2 is probing bandwidth (pacing_gain=5/4) and sees the loss rate go above loss_thresh, it advances to the phase of the cycle with the pacing gain of 3/4.
Then what? does it stay at 3/4 until loss ratio<loss_thresh again or advances to 1 immediately after using 3/4 just once?

BBRv2 continues to use the 3/4 pacing_gain until the amount of data in flight is <= the estimated BDP.

neal

 

Nabil Makarem

unread,
Jan 19, 2021, 4:51:46 PM1/19/21
to BBR Development
Many thanks for your prompt reply.

Nabil Makarem

unread,
Jan 20, 2021, 7:12:38 PM1/20/21
to BBR Development
Hello,

One more thing, What happens when the loss ratio becomes more than the loss threshold and the next pacing_gain factor is 1? In this case we don’t change the pacing gain or we also move from 1 to 3/4?

Thank you.

Neal Cardwell

unread,
Jan 21, 2021, 11:07:44 AM1/21/21
to Nabil Makarem, BBR Development
On Wed, Jan 20, 2021 at 7:12 PM Nabil Makarem <falcon....@gmail.com> wrote:
Hello,

One more thing, What happens when the loss ratio becomes more than the loss threshold and the next pacing_gain factor is 1? In this case we don’t change the pacing gain or we also move from 1 to 3/4?

(I presume you are talking about BBRv2.) If the pacing gain is 1 and loss of any level is experienced, then the pacing gain stays at 1, but the short-term estimate of the safe bandwidth and inflight will reduce by some amount based on the latest signals.

neal


 

Nabil Makarem

unread,
Jan 21, 2021, 11:53:34 AM1/21/21
to BBR Development
Thank you.
Reply all
Reply to author
Forward
0 new messages