My ISP Sucks
Jetzt melden

Offene Methodik

So kommen wir zum Urteil

Alles läuft im Browser. Daten verlassen dein Gerät erst, wenn du Bericht teilen drückst. Die Logik unten ist vollständig — nichts ist versteckt.

Warum ist das anders?

Speedtest misst einen nahen Server. Dieser Test prüft nahe Routen, ferne Routen und deine Apps — und zeigt, was geht und was nicht.

Speedtest

My ISP Sucks

Ein Test umfasst

Einen nahen Server

Ein Test umfasst

Nahe Routen, ferne Routen, deine Apps

Download, Upload, Ping

Ja

Download, Upload, Ping

Ja

Streaming, Spiele, Cloud

Aus der Zahl geschätzt

Streaming, Spiele, Cloud

An diesen Diensten geprüft

Was geht und was nicht

Nicht gezeigt

Was geht und was nicht

Gezeigt

Wer verantwortlich ist

Nicht genannt

Wer verantwortlich ist

WLAN, ISP oder ein Dienst

Du kannst senden

Die Zahl

Du kannst senden

Eine Beschwerde

Keine Verbindung zu Ookla oder Speedtest.

Diesen Test starten

1 · Was wir prüfen

Vier Schichten, vom Gerät nach außen:

Lokales Gateway (preflight)

10 HEAD-Anfragen zur nächsten Cloudflare-PoP (je 600 ms). Misst Verlust und Jitter. ≥ 2 Timeouts oder σ > 30 ms → Pfad instabil.

Inlandsknoten (near)

AWS-S3 in deinem Land (per IP-Ländercode). Niedriger Score = heimischer ISP oder Routing.

Internationale Knoten (far)

16 AWS-S3-Regionen weltweit. Hoher Score bei guten Near-Knoten = internationales Gateway.

Dienst-Endpunkte (profile)

15–25 HEAD zu Streaming/Gaming/Tech. Findet Peering und Blocks, die Ping nicht sieht.

2 · Knoten-Gesundheit

Score 0 (perfekt) bis 1 (kaputt). Near- und Far-Mittel getrennt.

score = 0.7 × (packetLoss / 100)
      + 0.3 × clamp((actualMs − expectedMs) / (expectedMs × 3), 0, 1)

expectedMs = max(10, distanceKm / 50)   ← speed-of-light RTT baseline

Beispiel — Tel Aviv → N. Virginia (9 500 km)

expectedMs = max(10, 9 500 ÷ 50) = 190 ms

actualMs = 219 ms, packetLoss = 0 %

score = 0 + 0.3 × clamp((219 − 190) / (190 × 3), 0, 1) = 0.015 → gesund

nearScore < 0.25

Near: gesund

farScore > 0.35

Far: löst Regel 6 aus

farScore > 0.45

Far: degradierend (5b)

3 · Dienst-Ausreißer

outlier if:  status = "fail"
         OR  status = "slow"  AND  latencyMs ≥ cohortMedian × 2.5

slow = probe latency above 1 000 ms
ok under that line is not an outlier

Beispiel

Netflix 95 ms ✓ YouTube 88 ms ✓ Twitch 1 240 ms

cohortMedian = 88 ms → 1 240 ≥ 88 × 2.5 (220) → Twitch ist Ausreißer

4 · Regelkette

Erster Treffer gewinnt. DevTools → Console zeigt jede Regel.

1

Offline

connectivity = fail, and no other check reached the internet

→ down / local_issue

2

Lokaler Pfad instabil

Wi-Fi or cellular AND (preflight unstable OR jitter > 40 ms) AND farScore < 0.40

→ local_issue

3

DNS kaputt

device is online AND dns = fail

→ isp_issue

4

Einzelner Dienst-Ausreißer

core healthy AND 1 ≤ outliers ≤ 40 % of services

→ service_issue

5

Die meisten Dienste schlecht

core healthy AND badServiceFraction ≥ 50 %

→ isp_issue (peering)

5b

Intl. Traffic blockiert

preflight loss = 0 AND nearScore < 0.25 AND farScore > 0.45 AND ≥ 3 far nodes

→ isp_issue (gateway)

6

Kern / Far degradiert

any test = fail OR farScore > 0.35

→ isp_issue

6b

Weiche Degradation

any test = warn (no harder rule fired)

→ local_issue or isp_issue (medium)

✓

Alles klar

→ healthy

5 · Tarif-Erfüllung

ratio = measuredDown / promisedDown

≥ 0.80  →  "As advertised"    ✓
≥ 0.50  →  "Underdelivering"  ~
 < 0.50  →  "Far below plan"   ✗

Nur Annotation — ändert den Schuldigen nicht.

6 · Privatsphäre

Alle Probes im Browser. Nichts geht an uns, bis du Bericht teilen.

Geteilt: Urteil, Scores, ISP, Land, Medium. Keine IP-Adressen gespeichert.