Seit einer Weile plagte mich ein interessantes Phänomen:
Egal, was ich tat, Downloads im Browser und im Netzwerk hatten es schwer, mehr als 3–4 MB/s auf meinem Windows-Laptop zu erreichen.
Angebunden via WLAN, vermutete ich primär immer ein Signalproblem, das aber nie z. B. am Handy reproduzierbar war.
Dutzende Internet-Guides rieten stets dazu, den Netzwerk-Stack oder das DNS zurückzusetzen – ohne Verbesserung.
Da ich selten große Dateien auf meinen Laptop ziehe, beachtete ich dieses Problem in den vergangenen Monaten nicht weiter, bis ich eine ISO zwecks Neuinstallation eines Servers neu herunterladen wollte.
2,2 GB bei 3,5 MB/s … zu langsam bei einer 250-Mbit-Leitung (~30 MB/s).
Schluss! Jetzt beschloss ich, einmal die KI darauf loszulassen.
Nicht lange, und der Fehler war gelöst!
Diagnose
Die Begrenzung gilt pro TCP-Verbindung, nicht für die gesamte Bandbreite:
| Test | Ergebniss |
|---|---|
| 1 Verbindung | 2.9 MB/s (23 Mbit/s) |
| 8 Verbindungen | 23.6 MB/s (189 Mbit/s) |
4,1 MB/s × 15 ms RTT = 62 KB → Empfangsfenster bei 64 KB festgesetzt, keine Skalierung.
Ursache: Get-NetTCPSetting zeigt bei jeder Vorlage AutoTuningLevelLocal = Disabled. Das ist nicht die Windows-Standardeinstellung; sie wurde vermutlich durch eine Tweak-Anleitung oder ein Optimierungsprogramm geändert.
Lösung
Terminal als Administrator öffnen und folgenden Befehl ausführen:
netsh int tcp set global autotuninglevel=normal
Falls die Einstellung nach einem Neustart wieder zurückgesetzt wird, überprüfe unter
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
die Werte TcpAutotuningLevel, TcpWindowSize und GlobalMaxTcpWindowSize.
It’s that simple!
ACHTUNG: Da dies primär od. ggf. sogar nur bei einer Einzel-Verbindung auffällt, führen euch standard Speedtest wie Speedtest.net in die Irre denn dort laufen die Tests standardmäßig mit Mehrfach-Verbindungen, dies lässt sich aber bei manchen wie Speedtest.net aber umstellen auf „Einzel“.
PS.: Nutzt zum Speedtest am besten nie Dateien die über Cloudflare ausgeliefert werden.