Your Network is Congested, Part I

Your network is like a python with a fairness problem, If one person is watching a big video, all the little flows can be ignored.

The Problem

Much of the time the data that flows over your home network is “mice”. Little bits of data from emails or web pages, slack or zoom. Sometimes, though, it’s an elephant: one big file like a PDF or a video. When that happens, the mice sit and wait.

For a real mouse, that’s a good thing. For a mouse-sized flow in the middle of a zoom conversation, it’s a block of silence in the middle of a word, or a whole chunk of speech going missing. For a video, it’s jitter and lag. None of those are desirable.

Fixing It

The problem is that the python can eat the whole elephant. When it does, though, it’s going to be a while until it’s ready for the mouse. If you could teach the python to take a bite of elephant, then one of mouse, things would flow better.

The first step is to not let it eat the whole thing. In a network, this is called bufferbloat: the router can take more data than it can digest in a single huge bite, stick it in a buffer and concentrate on digesting (transmitting) it. When it gets done, it goes back to mouse-sized flows.

For modern Linux workstations and linux-based routers, stopping this a solved problem. The fq-codel and newer CAKE queuing disciplines control how much the router can bite off, and ensure that each flow gets a fair share of the router’s attention.

Delivering the Fix

This is where thing get hard. Home-router vendors are famously cheap, and use whatever old Linux version was current when they did their first one. That’s often Linux 2.6, which is end-of-life: my laptop’s on 5.8. They certainly don’t have fq-codel, or even fixes for old bugs.

In subsequent postings I’ll discuss testing your existing router, finding a good replacement and demonstrating to Grandma that she should buy the same as you, and review the good routers, but that’s for later.

For today, I’ll plug just one of the good ones, https://evenroute.com/iqrouter, that I bought on Amazon. I’ve been using it for six months, and it’s even better than my old Linksys running OpenWRT, that I adopted early in the battle against bufferbloat.

If you’re interested in the back-story, have a look at https://www.bufferbloat.net/projects/bloat/wiki/What_can_I_do_about_Bufferbloat/

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s