How Bad is the Internet, really?

Unfortunately, I am not talking about the entirety of the internet, as there is no way for me to measure how bad that one is really, yet. But, where I live in Germany (since it's German countryside™), we have very poor internet. You might be thinking 50 Mbit/s or even 25 Mbit/s. And, by contract, that's what it's supposed to be! Most of the time, we are guaranteed 50 Mbit/s. So, what do you guess, how much is actually usable on some days (some are better, some worse, I have not yet found out why that is the case...)?

10 Mbit/s? 5 Mbit/s?? 3Mbit/s???

Nope, a solid ~0.5 Mbit/s. YES! A solid 500 kilobytes per second! That's only about 10 times faster than ancient dial-up modems. As one could guess, something must be wrong here. But again, as I've said before, I cannot tell on which days the speeds are crawling and on which they are oozing and shuffling in place. How could I even begin to find that out???

Finding that out

I've done some thinkin' and concluded: I should simply measure, always and find out if there is a pattern. Or rather, first, I need to find out, if I might be the problem. Since the situation is the following: It's a very big house with many different people and we only have two connections (which is already one too much, we're paying double and getting half!) to the house which are basically almost at the exact same place in the house. Therefore, I was tasked with making the internet work everywhere, so I just used a WiFi repeater. Yeah, Yeah, I know. WiFi, the most horrible sin on earth, but there isn't really a different choice here, since all other parties in the house simply hate cables. If they see one, they'll ask me about it and want it gone. So I had to make the choice of no internet or probably highly unreliable internet.

So could it be simply the WiFi? Well, I don't think so, but actually, I don't know, so I need to scientifically test it, of course. How? Well, I have a home server there already, physical access to all routers, a Raspberry Pi and lots of time since it's currently summer break. What better use of my time than to do random “experiments”, am I right?

The Idea

To actually measure when and how the internet get's worse (or rather horrible), I figured, I could do the following:

I take my Home Server (random laptop I had lying around to do Proxmox Experiments on) and use it as the control. I plug it in physically via LAN (normally, I would get angry looks, but currently, most people are on vacation ;) ) and periodically test ping, bandwidth to the router, bandwidth to the internet, and the pings for each stop on my way to a domain using a tool called mtr (which I have recently found out about in a Late Night Linux Family Podcast, listen to it!). That will be my baseline for speed. Then, I take my Raspberry Pi (only a zero, but I don't think that will be the significant bottleneck) and do the same periodically via WiFi to see, whether there is a difference because of the wireless nature of WiFi.

Problems I can already foresee and fix

  1. WiFi annoyance with Pies Since I only have a Raspberry Pi Zero lying around, I don't have a LAN port to work with. That's incredibly annoying, because I can only access the Pi using ssh, so I already have to have to connected to a WiFi network to do anything with it. And therefore, changing networks always is a paint the s (to stay family friendly over here ;) ). The best way I can think of to make it as easy as possible is to add multiple networks to the pi to let it automatically connect and additionally add a fallback network which I can use to connect in case all other networks fail (it will be a hotspot of my computer to be able to ssh into the Pi right after it connected). Shouldn't be too difficult, it's just annoying to do on such a slow and small system. But let's get to work, soon (not right now, I am too lazy)!
  2. Uhh, well, I guess I'll find more when I actually get there... xD

It's a new day and I have gotten slightly less lazy. Let's do it!

Execution

Okay, I have decided to simplify the whole thing: Instead of adding the Raspberry Pi into the equation, I left it out completely and only did the test with the laptop. I wired it up directly via a LAN-Cable to my router. Well, directly is an overstatement. It was a 25 meter (82 feet) cable which I routed to the start of the attic. I did that since, after having made sure that WiFi was the main cause of problems, I wanted to replace the laptop with another router so extend my WiFi without adding unnecessary delay or WiFi hops. Through the quite long wire, I was able to accomplish about 600 MBit/s, which I was actually quite happy with (especially considering the 50 MBit/s the DSL can carry at most). All in all, an experiment well ended, which might have saved us a bill of about 700 Euros for getting cable internet into the building, replacing DSL.

Problems arisen during the making of this project

None... There were none. It was simply such a simple project that there was very little to go wrong. I just had to make a new container and set up a script (with the slight help of my friendly local AI-Chatbot; Yes, I am sorry for using AI, but it helps with developing prototypes quickly...) to collect a couple of statistics regularly (like outside ping, internet speed, ping to router, etc).

Editors Note: This post has a bit of a different character and tone compared the other ones. Again, I'm still figuring this entire “blogging” thing out, bare with me, I'll probably change again soon :D