BBR friendliness with other CCAs

99 views
Skip to first unread message

Mahdi

unread,
Sep 7, 2021, 5:03:54 AM9/7/21
to BBR Development
Dear BBR team,
Why should BBR be friendly with other CCAs such as CUBIC?

Is this friendliness a must even in an ideal condition where the final version of BBR is better than other CCAs in all aspects?
In other words, I think if the final version of BBR is good in all conditions and performance aspects, it will no longer need to be friendly with others. If it does not cause performance problems, BBR can gain more bandwidth in competition with others. This way it can eventually lead enterprises all around the world to replace their CCAs with BBR.

Thanks in advance for your reply.

Best Regards,
Mahdi

Bless, Roland (TM)

unread,
Sep 7, 2021, 6:23:16 AM9/7/21
to Mahdi, BBR Development
Hi,

On 07.09.21 at 11:03 'Mahdi' wrote via BBR Development:
> Why should BBR be friendly with other CCAs such as CUBIC?

Because connections that have to use them, would starve in the worst
case. Moreover, the stability of the current Internet relies on a
cooperative behavior. See https://dl.acm.org/doi/10.1145/3365609.3365855
for a more recent in-depth discussion toward your initial thought direction.

> Is this friendliness a must even in an ideal condition where the final
> version of BBR is better than other CCAs in all aspects?

Yes, because there are enough devices out there, that cannot be upgraded
with BBR, because they are hardware devices without getting functional
updates any longer.

> In other words, I think if the final version of BBR is good in all
> conditions and performance aspects, it will no longer need to be
> friendly with others. If it does not cause performance problems, BBR can
> gain more bandwidth in competition with others. This way it can
> eventually lead enterprises all around the world to replace their CCAs
> with BBR.

See the argument above: there are some devices and implementations
that will never be upgraded to BBR. Moreover, sometimes BBR cannot
reliably achieve fairness even among BBR flows (e.g., see
https://ieeexplore.ieee.org/document/9361674).

Regards,
Roland

Jonathan Morton

unread,
Sep 7, 2021, 6:32:49 AM9/7/21
to Mahdi, BBR Development
> On 7 Sep, 2021, at 12:03 pm, 'Mahdi' via BBR Development <bbr...@googlegroups.com> wrote:
>
> Why should BBR be friendly with other CCAs such as CUBIC?

It is a general principle of the Internet that when introducing a new protocol or algorithm, it should not cause undue disruption to existing traffic using established protocols and algorithms. NewReno-SACK and CUBIC are *the* existing standard CCAs of the Internet, so reasonable coexistence with them is not merely optional.

We can look at the interaction between Reno and CUBIC for an example of what is acceptable. It is accepted that CUBIC is more aggressive at growing the congestion window (with a polynomial growth curve per time) than Reno is (with only linear growth per time). The reason it's accepted is that CUBIC is only more aggressive than Reno when Reno is unable to effectively "fill the pipe", leaving path capacity on the table that CUBIC can more effectively utilise; this in particular does not *reduce* the capacity that Reno can use. This friendliness is explicitly designed into CUBIC, and I invite you to read the relevant papers and specs for CUBIC where this is discussed.

- Jonathan Morton

Mahdi

unread,
Sep 10, 2021, 4:23:57 AM9/10/21
to BBR Development
Hello Roland and Jonathan,

Thanks for your reply and the paper. I gained a lot from it.
Let's assume that a new CCA called X has been developed and it is better than all the current CCAs using on the Internet. I mean X provides better flow completion time, latency, and throughput.
But its inter-protocol fairness is not good and it suppresses all the other flows that are not using X.
And let's assume that all the devices on the Internet are able to use X.

X is not TCP-friendly but why not ask others to upgrade to X instead of not allowing X to be deployed?
Is there really a set of regulations that prohibits servers from implementing X?

Best,
Mahdi


rwj...@gmail.com

unread,
Sep 11, 2021, 10:07:07 AM9/11/21
to BBR Development
Let's assume that a new CCA called X has been developed and it is
better than all the current CCAs using on the Internet. I mean X
provides better flow completion time, latency, and throughput.

-> While it is a hypothetical, it is unlikely that any CCA will be "better" in every possible scenario because different applications benefit from different CCAs.  Some CCAs are designed to work better over wireless networks. Some CCA's are designed to work well with streaming video, while others work well for the web. And so on.

X is not TCP-friendly but why not ask others to upgrade to X instead
of not allowing X to be deployed? 

> In addition to the unlikelihood that every Internet service provider is going to want to use X, there is no way to force everyone to use X. Given the distributed nature of the Internet, there is no way to force everyone to deploy any one particular CCA.

Is there really a set of regulations that prohibits servers from implementing X?

-> Just like there is no regulation forcing everyone to upgrade to X, there is also no regulation prohibiting people from using X. However, while we can't enforce anything, we can say it is a best practice for any one particular flow to share network resources reasonably well with other flows. And as pointed out in previous replies, a CCA can reasonably share AND provide better throughput etc than other CCAs. 

- Ranysha Ware (one of the authors of https://dl.acm.org/doi/10.1145/3365609.3365855)
Reply all
Reply to author
Forward
0 new messages