this post was submitted on 14 Apr 2024
21 points (100.0% liked)

technology

23113 readers
149 users here now

On the road to fully automated luxury gay space communism.

Spreading Linux propaganda since 2020

Rules:

founded 4 years ago
MODERATORS
 

So... you've probably noticed that when downloading a game or doing serious p2p piracy, your internet latency suffers: websites take longer to load, video chats stutter, online games glitch.

Well, good news! You can do something about that if you have a router capable of running the free OpenWrt firmware.

The problem of downloads (or uploads) clogging up the pipes is called bufferbloat. Basically, there's a traffic jam somewhere, usually where your ISP throttles your internet speed. This means data packets have to queue up behind whatever data is clogging up the pipes, and so they get delivered with a noticeable latency.

Some boffins have looked at that and identified ways to improve the situation:

  1. Have shorter buffers, so stuff cannot queue up as much.
  2. Create express lanes where other traffic can skip the queue of Final Fantasy asset deliveries.
  3. Tell the Final Fantasy asset delivery service to slow the fuck down.

Unfortunately, the queuing policy and the size of the buffers coming into your home is controlled by the ISP, so you can't really do much about that, but you can actually do #3.

This works by setting a speed limit on the OpenWrt router in your home, which tells anyone sending too much shit your way to slow down, which means the buffer on the ISPs side never get full, and therefore no traffic jam! You won't even notice you're downloading Final Fantasy. The web browsing and video chatting will feel like there's no download going on at all. You got to set the bandwidth limit 10-20% below your actual internet speed though, which I think is well worth it.

https://openwrt.org/docs/guide-user/network/traffic-shaping/sqm

all 12 comments
sorted by: hot top controversial new old
[–] [email protected] 4 points 4 months ago (5 children)

Should also probably include some recommendations for less expensive routers that can use OpenWrt along with this? Mine cost me $300... I don't regret it because I have found at least that much utility in it, from this and from finally being able to intercept my smart TV's hardcoded DNS requests and blocking the ads, but I'm pretty sure that there are better deals to be had that don't involve paying $300 for one of the radios to not work due to bad driver support.

[–] [email protected] 3 points 4 months ago* (last edited 4 months ago)

I have a cudy (which came with an openwrt derived firmware) that cost about 30 € and has enough CPU to do this SQM traffic shaping (at 100 Mbit/s), but I had to buy a modem separately. I could have (ab)used my ISPs router as a quasi-modem, but the firmware had a bug that prevented IPv6 from working correctly when daisy-chaining routers, which would have actually been fixed by an update if my ISP had allowed me to actually update the firmware myself. So another 40 € for a modem.

If you want to buy an OpenWrt-capable router, my advice is to go to Amazon (or whatever) and check for OpenWrt compatibility in the reviews and then double-check on openwrt.org. Models that are available change all the time, and differ by region, so I cannot recommend any specific product.

[–] [email protected] 3 points 4 months ago

It’s not much of a better deal, but the netgear r7000 runs fresh tomato and does cake for what the op describes.

[–] [email protected] 3 points 4 months ago

Dynalink DL-WRX36 is a good bargain right now. ~$80, WiFi 6 support, good specs, especially for the money, solid WiFi range. It's not the easiest(nor hardest) to install OpenWRT on, but anyone going the OpenWRT route should be prepared for some Googling, fiddling and forum reading anyway.

[–] [email protected] 3 points 4 months ago* (last edited 4 months ago)

A cheap Mikrotik router can do this without OpenWrt. Same with some Netgear stuff.

[–] [email protected] 2 points 4 months ago

Oof. Sorry I don't have specifics, but my understanding was that the main use case for OpenWRT was to get $300 performance and features from $30 hardware. That's at least how I used the precursor, DDWRT, back in the early 2010's.

That was before many people were using the spare CPU cycles for stuff like running a DNS resolver or adblocking on the router though.

[–] [email protected] 3 points 4 months ago (1 children)

Anyone had success doing this in OpnSense/pfSense? I tried following a guide when I first set up OpnSense, but the changes made my bufferbloat rating worse, so I reversed the changes and haven't tried since.

Btw there is this test you can use to test buffer bloat: https://www.waveform.com/tools/bufferbloat

And you probably want to test it using a wired connection first.

[–] [email protected] 3 points 4 months ago (1 children)

Traffic shaping eats up CPU, maybe your router's CPU wasn't fast enough for this? Apparently mine has a dual-core 880 MHz MIPS.

[–] [email protected] 3 points 4 months ago* (last edited 4 months ago) (1 children)

I bought a N5105 mini pc (Intel, 4 cores) from AliExpress to home-roll my own router, with the idea that I could run a few other services in containers on the same device. I think hardware-wise I'm ok, but since I built it from scratch, it's possible something isn't optimal how I configured the software. But this thing should be able to do gigabit speeds no problem. Maybe I'll try again next weekend. Thanks for the inspiration and glad you were able to resolve the buffer bloat!

[–] [email protected] 2 points 4 months ago

Oh yeah that thing should be way faster.

[–] [email protected] 2 points 4 months ago

Just to illustrate: When a download clogs up my pipes, it adds ~50 ms of latency to every packet (which, because of multiple rounds of back-and-forth, can actually end up as seconds when loading a website). When limiting my bandwidth to ~85% speed, that extra latency is between 0 and 1 ms.