Anzeige

von , über "1&1 DSL2+ (3DSL/4DSL) 16.000" von 1&1 , am um 22:29 Uhr

Geschwindigkeits-Tuning für DSL (RWIN, Window Scaling und Selective Acks)

Der Standardwert für RWIN in der Windows Registry ist für High Speed DSL (DSL-Geschwindigkeiten größer 1000kbit/s) zu niedrig!

Die maximale Datenrate in einem TCP/IP Netzwerk (DSL basiert auf TCI/IP) wird im Wesentlichen bestimmt durch den RWIN-Wert und die Entfernung zum entfernten Rechner.
Während auf die Entfernung kaum Einfluss genommen werden kann, kann der maximale RWIN-Wert sehr wohl über die Windows-Registry eingestellt werden.


Was ist nun dieses RWIN?
------------------------

RWIN steht für Receive Window, also Empfangsfenster(größe), und stellt einen Datenpuffer dar.
RWIN beschreibt die maximale Datenmenge in Bytes, die ein Internetserver sendet, bevor eine Empfangsbestätigung eingeholt wird. Der Internetserver wartet mit dem Weitersenden von Daten, bis die Empfangsbestätigung eingetroffen ist. Eine solche Methode ist erforderlich, damit sichergestellt wird, ob die Daten korrekt übertragen wurden. Der Standardwert für RWIN liegt bei Windows 9x, Me und NT bei 8760 Bytes (8 Kilobyte), Windows 2000 und XP reservieren für RWIN 17520 Bytes (ca 16 Kilobyte).


MTU (IP Maximum Transmission Unit) und RWIN (TCP Receive Window Size):
----------------------------------------------------------------------

Die MTU einer Netzwerkschnittstelle gibt an, wie groß das größte Paket, das noch ohne Fragmentierung übertragen werden kann, sein darf. Fragmentierung bedeutet, ein Datenpaket wird in mehrere, kleinere Datenpakete zerteilt und am Zielort wieder zusammengesetzt, da das Medium die Übertragung des ursprünglichen Pakets in seiner Größe nicht erlaubt oder technisch dies nicht möglich ist. Typische MTU-Werte sind

1500 Bytes für Ethernet
1492 Bytes für PPPoE (DSL)

Ermitteln Sie dem maximalen Wert für Ihre eigene Internetverbindung gemäß http://www.gschwarz.de/mtu-wert.htm oder erfragen Sie diesen bei Ihrem Internetprovider.
Der Wert für MTU läßt sich über die Windows Registry einstellen bzw. ändern. (Siehe ebenfalls http://www.gschwarz.de/mtu-wert.htm)
Wählt man eine zu kleine MTU, so beeinflusst dies die Effizienz der Kommunikation, d.h. Daten werden mehr fragmentiert als dies eigentlich erforderlich wäre. Funktional ist das Netzwerk jedoch nutzbar.

Wählt man eine zu große MTU, so können Pakete größer als das tatsächliche Maximum nicht mehr korrekt übertragen werden und gehen verloren. Dies drückt sich z.B. darin aus, daß man kleine Webseiten und Datenportionen abrufen kann, nicht jedoch große (Verbindung hängt).

Mit der MTU steht der RWIN-Parameter in Verbindung. Im Gegensatz zu falschen Werten für die MTU führen schlechte Werte von RWIN nur zu schlechter Performance. RWIN bestimmt, wie bereits erwähnt, die maximale Datenmenge, die ein System über eine TCP-Verbindung schickt, ohne daß eine Empfangsbestätigung von der Gegenstelle erwartet wird. Steht RWIN auf 64 kB, so kann beispielsweise ein Webserver eine Seite mit 64 kB in einem Stück ausliefern, ohne auf Bestätigungen der einzelnen Pakete (maximal in Portionen der MTU entsprechend) zu warten. Dies erhöht die Performance in Netzwerken, in denen Bestätigungen (ACK) lange unterwegs sind.

Durch Verkleinerung des RWIN-Datenpuffers häufen sich die Abfragen nach der Bestätigung und der Datenfluss kommt durch die Wartezeiten ins Stocken. Ein größerer Puffer mindert die durchgeführten Abfragen, aber es kann zu Verzögerungen durch Informationsverlust kommen, weil mehr Datenpakete während eines Zeitfensters falsch übertragen worden sein könnten. Der Sender wiederholt dann die Übertragung, bis alle Pakete korrekt beim Empfänger angekommen sind.


Beispiel:

Es ist eine Datei von 64 kB über ein Netzwerk mit Bandbreite von 1024 kbit/s und einer MTU von 1024 Bytes zu übertragen. Beträgt die Roundtrip-Zeit im Netzwerk für Pakete von MTU-Größe 10 ms und für kleine ACK-Pakete nur 5 ms, so können Bestätigungen innerhalb von ca. 15 ms für das erste Datenpaket eintreffen.

Ist RWIN auf 1024 Bytes gesetzt (MTU), so werden die Pakete von MTU-Größe einzeln versandt, d.h. Paket senden - Bestätigung erwarten - nächstes Paket senden - und so fort. Der gesamte Prozeß dauert damit ca. 64 mal (10 ms + 5 ms) = 960 ms, d.h. fast eine Sekunde.

Ist RWIN auf 64 kB gesetzt (64-fache MTU), so werden alle Pakete nacheinander übertragen, ohne daß Bestätigungen abgewartet werden. Dies dauert 500 ms (64 kB = 512 kbit und diese benötigen bei 1024 kb/s ca. 500 ms für eine Übertragung). Bestätigungen treffen laufend ein, die letzte 5 ms nach der letzten Versendung. Damit dauert die gesamte Übertragung nur 505 ms.


Ein korrekter RWIN-Wert ist daher für die Performance eines Netzwerks, insbesondere für die Übertragung größerer Dateien, bedeutend.

Die Bestätigungen für TCP-Übertragungen können außerdem durch Einschalten von selektiven Acknowledgements optimiert werden (SACKS).


Bestimmung eines optimalen Wertes für RWIN:
-------------------------------------------

Das RWIN hängt unmittelbar mit der Größe der Maximum Segment Size (MSS) zusammen. MSS definiert das größte Segment von TCP-Daten (= MTU ohne Header). Größere Datenmengen werden in Segmente zerlegt und übertragen. Wenn eine Verbindung etabliert wird, einigen sich die beiden Endstellen darauf, den kleineren Wert von beiden Endstellen zu übernehmen. Da Header typischerweise 40 Bytes lang, ist der MSS-Wert normalerweise diese 40 Bytes kleiner als der MTU-Wert. Empfehlenswert bei schnellen Netzwerken (wie z.B. DSL) ist eine Mindest-Größe für RWIN von MSS mal 44.
Beispielsweise ist bei einer MTU von 1492 die MSS höchstens 1452. Dadurch ergibt sich eine empfehlenswerte Mindest-RWIN-Größe von 63.888 Bytes (knapp 64 Kilobyte).

Um beste Ergebnisse zu erreichen, muß RWIN ein Vielfaches von MSS sein (das Vielfache selbst muß kleiner/gleich 65535 sein), multipliziert mit einem Faktor, der eine Potenz von 2 ist, z.B. (1452 x 44 = 63.888) x (2 hoch 2 = 4) = 255552. Die Hochzahl wird als Wert für das definierte Window Scaling angegeben. Für RWIN-Werte größer 65535 muß Window Scaling aktiviert werden. Dies wird ebenfalls in der Windows Registry festgelegt (RFC1323).
Somit ergeben sich Faktoren von 1, 2, 4 und 8, und für optimales RWIN Werte von 63.888, 127.776, 255.552 und 511.104.

Die Entfernung zwischen 2 Rechnern spielt ebenfalls eine Rolle. Mit Entfernung bzw. latency wird in ms ausgedrückt, wie lange eine Datenpaket von einem Endpunkt zum anderen Endpunkt benötigt.
Damit ist auch zu erklären, warum die Geschwindigkeitswerte bei unterschiedlichen Internetadressen/Internetservern unterschiedlich sind.
Andere Begriffe für Entfernung bzw latency sind Ping und delay.
Oftmals werden auch Werte für RTT (Round Trip Time) angegeben. Das ist die benötigte Zeit für ein Datenpaket von einem Endpunkt zum anderen und wieder zurück. Die RTT wir normalerweise benutzt für die Messung von Entfernung, latency, delay bzw. Ping.

Um das RWIN zu ermitteln, sollte ein Wert für die bei normalem Gebrauch maximale Entfernung in ms genommen werden. Mit einem maximalen Wert von 100ms liegt man innerhalb Deutschland schon einmal ganz gut, für häufige Zugriffe auf Rechner im Ausland sollten mindesten 200ms genommen werden.

Eine praktische Beispielrechnung: DSL 6000
Geschwindigkeit 6000kbit/sek
Entfernung (=latency) zum Server 85ms
Maximale Daten in 85ms bei 6000kbit/sek = 510kbit in 85ms = 63,75kByte = 63750 Bytes

=> Das RWIN muss mindestens 63.750 sein, sonst wird die Geschwindigkeit beschränkt.

Eine weitere praktische Beispielrechnung: DSL 6000
Geschwindigkeit 6000kbit/sek
Entfernung (=latency) zum Server 100ms
Maximale Daten in 100ms bei 6000kbit/sek = 600kbit in 100ms = 75kByte = 75000 Bytes

=> Das RWIN muss mindestens 75.000 sein, sonst wird die Geschwindigkeit beschränkt.

Bei 200ms gilt:
Maximale Daten in 200ms bei 6000kbit/s = 1200kbit in 200ms = 150kByte = 150000 Bytes (= RWIN min)

Eine weitere praktische Beispielrechnung: DSL 16000
Geschwindigkeit 16000kbit/sek
Entfernung (=latency) zum Server 100ms

Maximale Daten in 100ms bei 16000kbit/sek = 1600kbit in 100ms = 200kByte = 200000 Bytes

=> Das RWIN muss mindestens 200.000 sein, sonst wird die Geschwindigkeit beschränkt.

Bei 200ms gilt wieder:
Maximale Daten in 200ms bei 16000kbit/s = 3200kbit in 200ms = 400kByte = 400000 Bytes (= RWIN min)


Die maximale erreichbare Datenrate ist also primär abhängig vom RWIN-Wert und der Entfernung (latency) in ms.

Beispiel 1:
Annahmen:
RWIN: 255552
Entfernung: 100ms

Datenrate(max)
Allgemein
Geschwindigkeit
Verfügbarkeit
Kundenservice
Preis-/Leistung

War dieser Bericht für Sie hilfreich?

War hilfreich Nicht hilfreich
101 von 130 Benutzern fanden diesen Bericht hilfreich.

Zu diesem Bericht liegen derzeit keine Kommentare vor

Eigenen Kommentar abgeben

Melden Sie sich mit Ihren Benutzerdaten an, um Ihre Bewertung abzugeben. Wenn Sie noch kein Benutzerkonto haben, können Sie sich hier registrieren.

Kommentar abschicken