Lösung für Netzwerkprobleme unter Ubuntu Fedora CentOS und anderen Linux-Systemen - nur Baidu erreichbar
Zunächst möchte ich Ihnen die Hintergrundinformationen zu diesem Problem vorstellen.
Ein typisches TCP-Paket hat ein Fensterfeld mit einer maximalen Fenstergröße von 64 KB. In den Anfangstagen des Internets waren die meisten Systeme nicht in der Lage, größere Datenmengen zu verarbeiten, daher war diese Größe ausreichend. Für heutige Breitbandanwendungen ist dies jedoch zu klein.
Um dieses Problem zu lösen, wurde 1992 eine Lösung namens Window Scaling vorgeschlagen, die eine zusätzliche TCP-Fenster-Erweiterungsoption bietet. Diese Option enthält einen 8-Bit-Skalierungsfaktor. Der Wert dieser Option gibt an, wie groß das Fenster sein sollte, was durch Verschieben des Fenstergrößenwerts um mehrere Bits erreicht wird. Wenn beispielsweise der Skalierungsfaktor auf 5 gesetzt ist, sollte die Fenstergröße um 5 Bits verschoben oder mit 32 multipliziert werden.
Die Window-Scaling-Option erhöht die TCP-Fensterdefinition von 16 Bit auf 32 Bit. Dies wird nicht durch Änderung des TCP-Headers erreicht, der weiterhin 16 Bit verwendet, sondern durch die Definition einer Option, die eine Skalierungsoperation auf die 16 Bit durchführt.
In Kerneln 2.6.16 und älter war der Standard-Skalierungsfaktor 0, sodass die Fenstergröße nicht erhöht wurde. Im Kernel 2.6.17 wurde der Skalierungsfaktor auf 7 gesetzt. Idealerweise sollte dies kein Problem darstellen. In der Praxis überschreiben jedoch einige “defekte” Router die TCP-Option für Window Scaling – sie setzen den Skalierungsfaktor auf 0, aber die tatsächliche Verarbeitungsfähigkeit der Option ändert sich nicht.
Im Wesentlichen bedeutet dies, dass einige Websites von Systemen mit Kernel 2.6.17 und höher nicht erreicht werden können. Aus Sicht der Kernel-Entwickler würden sie denken, dass diese Router defekt sind und ersetzt werden müssen. In Wirklichkeit können diese Router noch viele Jahre verwendet werden, bevor sie repariert oder ersetzt werden.
Eine Möglichkeit, dieses Problem zu lösen, besteht darin, die Window-Scaling-Option des Linux-Kernels neu zu konfigurieren. Obwohl dies die defekten Router nicht repariert, können Sie mit dieser Methode, wenn Sie von Window-Scaling-Problemen betroffen sind, eine Verbindung zu Remote-Sites herstellen.
Die Lösung besteht darin, die Datei /etc/sysctl.conf zu bearbeiten und die folgende Zeile hinzuzufügen:
net.ipv4.tcp_window_scaling = 0Entfernen Sie das # am Anfang
Dies deaktiviert die Window-Scaling-Funktion vollständig und ermöglicht es Ihnen, eine Verbindung zu einigen Sites herzustellen, zu denen Sie zuvor keine Verbindung herstellen konnten. Richtig oder falsch, die Kernel-Entwickler weigern sich, diese Änderung rückgängig zu machen. Daher können Sie mit dieser Option Ihre eigene Window-Scaling-Funktion deaktivieren, um zu den Standardeinstellungen vor 2.6.17 zurückzukehren, und Sie können auch Verbindungen zu unerreichbaren Sites herstellen und sie davon überzeugen, dass sie die defekten Router finden und ersetzen sollten.