Thursday, December 11, 2025

Why Speedtest Lies (and What Your Network Is Actually Doing)

  Version: Bush Mobile Data—Observed in the Wild


1. Speedtest is an Advertising Tool, Not a Diagnostic

Speedtest exists to:

  • flatter telcos,

  • reassure customers,

  • keep everyone feeling warm and connected.

It is not designed to reveal network failures.
Its job is to present the best-case number it can wring out of your connection, even if the underlying link is dying like a lizard in the sun.


2. It Cheats — By Design

Speedtest stacks the deck:

  • Picks an ideal server (close to you, low latency, cooperative).

  • Uses parallel TCP streams to inflate throughput.

  • Smooths out jitter so the graph looks pretty.

  • Retries aggressively to mask packet loss.

This creates the appearance of a stable, high-bandwidth link even when the network is held together with fencing wire and hope.


3. Why You See “20 Mbps… 0.1 Mbps… 20 Mbps”

What looks like a square wave isn’t real bandwidth variation.
It’s the cheat system breaking down temporarily.

When the tower chokes:

  • routing collapses

  • packet loss spikes over 80–90%

  • TCP stalls completely

  • Speedtest can’t fake it anymore → drops to 0.1 Mbps

When the tower recovers for a moment:

  • a handful of packets get through

  • Speedtest’s parallel streams kick back in

  • the illusion resumes → 20 Mbps!

You’re not seeing performance.
You’re seeing optimistic marketing interspersed with reality.


4. The Real Condition of the Network

Your proper tools tell the truth:

ping → catastrophic loss

  • 80–100% packets dropped

  • regular “destination unreachable”

  • no stable path to anywhere

mtr → routing collapses mid-path

  • hops flapping

  • latency in the thousands of milliseconds

  • segments disappearing entirely

iperf3 → no sustained throughput

  • can’t negotiate

  • can’t maintain a TCP session

  • server unreachable most of the time

This is structural failure, not “slow internet.”


5. What Speedtest Can’t Admit

If Speedtest were honest, it would show:

“Your connection is unusable.”

But honesty doesn't sell telecom services.

So instead it:

  • cherry-picks its best 2 seconds,

  • prints a big shiny number,

  • and pretends the rest of reality didn’t happen.


6. The Bottom Line

Speedtest lies because it's designed to.
It reports potential performance, not actual conditions.

Your tools revealed the truth:

  • Massive packet loss

  • Routing instability

  • Flapping radio layer

  • Near-zero usable bandwidth

  • A connection that works by coincidence, not design

If a network cannot deliver consistent packets,
it doesn’t matter how fast Speedtest claims you are in theory.


7. Field Rule of Thumb

Always trust packet loss and routing behaviour.
Never trust a single-number speed result.

Speedtest is a postcard.
ping, mtr, and iperf3 are the autopsy.


Note  :  Yeah, it's a bit like the bloke whose wife never cheats on him, except for when he actually finds her in his bed with the milkman, and then he walks out of the room and she's not cheating on him anymore.

FIELD DIAGNOSTIC — “HONEST LINK TEST

 

MARK’S FIELD DIAGNOSTIC — “HONEST LINK TEST”

Purpose:
Run three real-world tests that expose the true condition of a network link (jitter, loss, routing stability, sustained throughput).
Replaces Speedtest completely.


COMMAND BLOCK (copy/paste and run as-is)

# 1. Stability & packet loss (50 probes to Cloudflare) ping -c 50 1.1.1.1 # 2. Route quality (live traceroute + loss/jitter per hop) mtr -rw 1.1.1.1 # 3. Sustained throughput test (TCP, real flow) iperf3 -c iperf.scottlinux.com

INTERPRETATION (brief)

1. ping

  • 0% loss + tight latency → good link

  • Loss > 1% → unstable

  • Jitter swings > 30 ms → VPN, STT, games, Zoom all degrade

  • “Destination Net Unreachable” → upstream routing failure (tower/backhaul dead)


2. mtr

  • Shows where packets die.

  • Loss at hop 1 = tower or local NAT failure

  • Loss at hop 2–3 = backhaul congestion/microwave link fault

  • Loss only at far hops = upstream ISP issues

This is the “forensic” tool.


3. iperf3

  • Tests real, sustained throughput — no cheating, no smoothing.

  • Smooth graph → link can carry load

  • Bursts/stalls → congestion or jitter

  • Disconnects → upstream failure

If iperf3 can’t connect at all → the link isn’t routing.


CONCLUSION

This triple test reveals:

  • jitter

  • packet loss

  • route instability

  • tower congestion

  • backhaul collapse

  • VPN viability

  • torrent viability

  • STT reliability

  • true usable bandwidth

Speedtest hides all of these.
This rig exposes them instantly.

 

---------------------------------------------------------------------------------------------------------------

Righto — here’s your compact, portable field-diagnostic script.
Name it whatever you like; I’ll call it netcheck for simplicity.

This gives you:

  • one command

  • clean output

  • no dependencies beyond mtr and iperf3 (install once)

  • works anywhere


1. The Script (netcheck)

Copy/paste this into a file:

#!/bin/bash echo "====================================" echo " Mark's Honest Link Test – netcheck " echo "====================================" echo # ---- 1. PING TEST ---- echo "[1] PING: Stability + Loss" echo "--------------------------" ping -c 50 1.1.1.1 echo echo # ---- 2. MTR TEST ---- echo "[2] MTR: Route Quality (loss per hop)" echo "--------------------------------------" mtr -rw 1.1.1.1 echo echo # ---- 3. IPERF3 THROUGHPUT ---- echo "[3] IPERF3: Sustained Throughput Test" echo "--------------------------------------" iperf3 -c iperf.scottlinux.com echo echo "Done."

2. How to install it

Save it somewhere sensible — I’d suggest:

~/bin/netcheck

Then make it executable:

chmod +x ~/bin/netcheck

If ~/bin isn’t already in your PATH, add it by editing ~/.bashrc:

echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc source ~/.bashrc

3. How to run it

Anytime, anywhere:

netcheck

That’s it.
No mucking around.
It runs the three honest tests in sequence:

  • ping → stability

  • mtr → route diagnosis

  • iperf3 → sustained usable throughput

You get a complete truth readout of the link without touching Speedtest or any GUI.


4. Notes

  • If mtr or iperf3 aren’t installed, do this once:

sudo apt install mtr iperf3
  • If iperf3’s test server is ever unreachable (rare), swap in Cloudflare’s:

iperf3 -c speedtest.wobcom.de

But the default one is rock solid.


If you want a version that logs automatically to a timestamped file for later analysis, I can package that too.