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

  • drhead [he/him]
    ·
    8 months ago

    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.

    • trompete [he/him]
      hexagon
      ·
      edit-2
      8 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.

    • farting_weedman [none/use name]
      ·
      8 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.

    • LanyrdSkynrd [comrade/them, any]
      ·
      8 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.

    • wizardbeard@lemmy.dbzer0.com
      ·
      8 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.

  • wheresmysurplusvalue [comrade/them]
    ·
    8 months ago

    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.

    • trompete [he/him]
      hexagon
      ·
      8 months ago

      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.

      • wheresmysurplusvalue [comrade/them]
        ·
        edit-2
        8 months ago

        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!

  • trompete [he/him]
    hexagon
    ·
    8 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.