SuSE Linux: Versionen bis einschließlich 7.3
Sie haben eine Internetanbindung über Modem, ISDN oder eine langsame
Standleitung (langsam heißt hier: weniger als 512 kbit/s downstream). Sie
arbeiten viel mit interaktiven Diensten wie irc
, Unix
talk
oder ssh/telnet
zum remote login. Leider wird
die Anbindung fast unbenutzbar "zäh" wenn Sie einen umfangreicheren Download
per ftp starten. Ebengleiches gilt wenn Sie anfangen zum Beispiel WWW Seiten im
Webbrowser anzuschauen.
Folgendes können Sie beobachten wenn Sie zum Beispiel mit "ping" die Round Trip Time (Umlaufzeit, abgekürzt: RTT) zu einem schnell angebundenen Rechner im Internet testen und gleichzeitig einen Download starten:
konstriktor:~>ping sdb.suse.de PING sdb.suse.de (213.95.15.204): 56 data bytes 64 bytes from 213.95.15.204: icmp_seq=0 ttl=247 time=35.767 ms 64 bytes from 213.95.15.204: icmp_seq=1 ttl=247 time=39.488 ms 64 bytes from 213.95.15.204: icmp_seq=2 ttl=247 time=37.377 ms [...] 64 bytes from 213.95.15.204: icmp_seq=6 ttl=247 time=612.773 ms 64 bytes from 213.95.15.204: icmp_seq=7 ttl=247 time=1188.041 ms 64 bytes from 213.95.15.204: icmp_seq=8 ttl=247 time=1568.059 ms 64 bytes from 213.95.15.204: icmp_seq=9 ttl=247 time=2148.153 ms 64 bytes from 213.95.15.204: icmp_seq=10 ttl=247 time=2138.407 ms
Hier wurde lediglich ein einziger umfangreicher Download auf dem Rechner gestartet. Wenn die Leitung frei ist, sehen Sie daß die Anbindung eine mittlere Round trip time von nur ca. 35 ms hat.
Sobald aber der Download gestartet wird, sehen Sie daß die Round-Trip-Time (RTT) eines "ping" Paketes über 2s erreicht. Über eine solchermassen "verstopfte" Leitung sind interaktive Applikationen kaum noch bedienbar.
Das von Linux für die Internetanbindung verwendete TCP/IP Protokoll erlaubt es der Gegenstelle eine gewisse Datenmenge im "voraus" unbestätigt zu versenden. Normalerweise müssen alle eingehenden Daten einer bestehenden TCP/IP Verbindung bestätigt werden allerdings hat die Gegenstelle ein gewisse Freimenge die unbestätigt verschickt werden darf. Dies ist auch zum Erreichen eines guten Durchsatzes auf breitbandigen Anbindungen, wichtig. Offiziell bezeichnet wird diese Option mit TCP Window size. Überlicherweise ist das Window ca. 32 kByte groß, die Maximalgröße beträgt üblicherweise 64 kByte.
Leider ist bei einer schmalbandigen Anbindung das Problem daß sich die meisten Pakete am letzen Router vor der "dünnen Leitung" vor Ihrem Rechner in einem Puffer stauen. Viele FTP- und Webserver sind sehr breitbandig angebunden so daß die Daten nicht etwa unterwegs verzögert werden sondern nur noch auf dem letzten Leitungsstück vor Ihrem Rechner.
Idee
Es müsste nun also irgendwie eine Möglichkeit geben der Gegenstelle zu sagen das Sie nicht so viele Daten unbestätigt verschicken soll. Damit sollte der Puffer des Routers vor dem letzten Leitungsstück vor Ihrem Rechner nicht mehr so voll werden und die Round-Trip Time eines pings nicht über einen bestimmten Wert ansteigen.
Es gibt eine Option der Gegenstelle zu sagen das Sie nur ein kleines TCP Window zur Verfügung hat. Benutzen Sie diese Option nicht wenn Sie mehr als 1 MBit/s im Downstream haben, weil sonst u.U. die Downloadperformance speziell bei Downloads aus USA oder anderen Überseeländern abnehmen kann.
Wir müssen 2 Fälle unterscheiden
Die Default Route deren Window Größe wir verändern wollen, wird erst nach dem Verbindungsaufbau gesetzt. Deshalb müssen Sie eine Änderung in der PPP Konfiguration vornehmen um diese Option zu setzen.
Falls Sie noch keine Datei /etc/ppp/ip-up.local
auf Ihrem
Systen haben, können Sie diese als Benutzer root
mit einem Editor
anlegen und folgendes darin aufnehmen:
#! /bin/sh # In Parameter $5 ist das Default Gateway enthalten wenn dieses # Skript aufgerufen wird. route del default route add default gw $5 window 8000
Falls Sie das Paket iproute2
(Standard ab SuSE Linux
8.0) installieren können Sie auch folgende Eintragungen in dieser Datei
vornehmen. Die Verwendung von iproute2 hat den Vorteil das die
default-route nicht kurzzeitig weg ist.
#! /bin/sh # In Parameter $5 ist das Default Gateway enthalten wenn dieses # Skript aufgerufen wird. ip route change default via $5 window 8000
Machen Sie nach dem Editieren die Datei ausführbar mit dem Kommando
chmod 755 /etc/ppp/ip-up.local
damit dieses Skript bei der
Einwahl automagisch mit ausgeführt wird.
Beachten Sie daß mit der ersten Änderung für einen kurzen Moment die
Defaultroute entfernt wird, falls Sie /etc/ppp/ip-up
verändert
haben um beispielsweise automatisiert Mail abzurufen müssen Sie dies hinter die
Ausführung von ip-up.local
verschieben.
Beachten Sie den Abschnitt Ergebnis des Artikels zur Bedeutung des Zahlenwertes 8000.
Falls Sie eine Ethernetanbindung zum Beispiel an einen SDSL Router haben
editieren Sie am besten die Datei /etc/route.conf
. Die Datei
sieht beispielsweise bei Ihnen so aus
62.146.142.32 0.0.0.0 255.255.255.224 NONE default 62.146.142.33 0.0.0.0 eth0
Hängen Sie zur Defaultroute die "Window-Option" wie folgt mit dazu
62.146.142.32 0.0.0.0 255.255.255.224 NONE default 62.146.142.33 0.0.0.0 eth0 window 8000
Um diese Option zu aktivieren ist es nötig diese Option dem
route
Kommando zu übergeben. Daher ist es am einfachsten mit dem
Kommando rcroute restart
die entsprechenden Kommmandos abzusetzen.
Über den Defaultrouter erreichbare Gegenstellen haben ab jetzt die Erlaubnis maximal ~8 kByte Daten unbestätigt zu versenden. Bei einer Anbindung mit 128 kBit/s entspricht das circa einer halben Sekunde maximaler Round-Trip-Time. Sie können bei einfachen ISDN Anschlüssen (64 kBit/s) oder Modemverbindungen auch beispielsweise 4000 statt 8000 probieren. Setzen Sie den Wert nicht unter 2000 da Sie sonst der möglichen Paketgröße gefährlich nahe kommen (Ergibt keinen Sinn).
Falls Sie ein komplizierteres Routing lokal haben verwenden Sie das "kleinere Window" nur für die langsame Aussenanbindung und nicht für lokal oder schnell angebundene Rechner.