I recently found this on Reddit while looking into why jellyfin is effected so much by latency. I found that this worked and thought I would share it because it is generally applicable, takes five minutes to setup, and helps a lot with bandwidth on higher latency connections. I admit I am not sure of the technical stuff behind this, so if anyone would like to chime in that would be much appreciated.

24 points
*

Cool! This seems like an good write up on it

https://atoonk.medium.com/tcp-bbr-exploring-tcp-congestion-control-84c9c11dc3a9

Bottleneck Bandwidth and Round-trip propagation time (BBR) is a TCP congestion control algorithm developed at Google in 2016. Up until recently, the Internet has primarily used loss-based congestion control, relying only on indications of lost packets as the signal to slow down the sending rate. This worked decently well, but the networks have changed. We have much more bandwidth than ever before; The Internet is generally more reliable now, and we see new things such as bufferbloat that impact latency. BBR tackles this with a ground-up rewrite of congestion control, and it uses latency, instead of lost packets as a primary factor to determine the sending rate.

permalink
report
reply
14 points

Interesting. I’d be interested in hearing other people’s experience with this. Is this BBR stuff enabled by default on any distros?

permalink
report
reply
16 points

According to multiple debian based and ubuntu based and Arch I use. No. Not default. Cubic still is.

My experience was that some days ago I was trying to make my UDP faster, but turned out found out about BBR - for TCP. Well, lucky me - currently some country away from home for family reason. Plex generally takes 40-80s to start a movie/episode for me. And measly about 10s max buffer available - and this is on a 3-5Mbps show.

After BBR (note I have to apply on Proxmox host, my container are unprivileged and can’t set this themselves), I got 8-30s max to start a show/movie. And now comfortably sit between some good minutes on buffer. 15-20Mbps quality now playable.

To me personally it was black magic, and I was tossing it in just 2 days ago too

Ask more if question

permalink
report
parent
reply
8 points

If this is black magic, will I be subject to some sort of witch trial in the near future?

permalink
report
parent
reply
1 point

This is the Internet. No witch trial just witch burning.

permalink
report
parent
reply
5 points

I don’t know if it is, but it is really as simple as adding to lines to a config file and restarting a service.

permalink
report
parent
reply
3 points
*

For example unraid (does that count as a distro?) has it enabled by default

permalink
report
parent
reply
14 points

Can’t I just download more gigabits?

permalink
report
reply
2 points

Download more bandwidth

permalink
report
parent
reply
-1 points

Download more bandwidth

permalink
report
parent
reply
7 points

Are there any downsides to this? Why isn’t it default if it is so drastically better?

permalink
report
reply
6 points
*

https://en.wikipedia.org/wiki/TCP_congestion_control#TCP_BBR

List some issues, but only earlier version, not BBR3

BBR1:

researchers like Geoff Huston and Hock, Bless and Zitterbart found it unfair to other streams and not scalable.

Hock et al. also found “some severe inherent issues such as increased queuing delays, unfairness, and massive packet loss” in the BBR implementation of Linux 4.9.

Soheil Abbasloo et al. (authors of C2TCP) show that BBRv1 doesn’t perform well in dynamic environments such as cellular networks.

permalink
report
parent
reply
3 points

I believe it will result in like 10% additional overhead, which may be bad on metered connections, but I am not aware of any situation that results in decreased performance. I don’t really know much about this so if anyone would like to correct me, please do.

permalink
report
parent
reply
4 points

I skimmed through it and have no idea what BBR stands for.

permalink
report
reply
9 points

It’s an algorithm for determining how fast to upload packets. This article just talks about how to enable it.

Here’s the Wikipedia section about it: https://en.wikipedia.org/wiki/TCP_congestion_control#TCP_BBR

The gist is that instead of only throttling upload rate based on packet loss, BBR constantly measures roundtrip delay (ping) to determine how much bandwidth is available.

permalink
report
parent
reply
4 points

Bottleneck Bandwidth and Round-trip propagation time (BBR)

permalink
report
parent
reply
1 point

Thank you! I hate unexplained acronyms

permalink
report
parent
reply
2 points

It is explained in the article though…

permalink
report
parent
reply

Selfhosted

!selfhosted@lemmy.world

Create post

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.

Rules:

  1. Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it’s not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

Community stats

  • 5K

    Monthly active users

  • 3.5K

    Posts

  • 75K

    Comments