thorsten-rehm
Goto Top

iperf - TCP Window Size und Max Segment Size Frage

Servus.

Ich würde gerne mit Hilfe von iperf (http://dast.nlanr.net/Projects/Iperf/) ein Netzwerk auf
seine Leistung überprüfen.
Dabei kann man die TCP Window Size, Max Segment Size und Buffer Length einstellen. Wenn man
keine Konfiguration vornimmt, bleiben die Werte beim Standard, der 8K(ilobytes) beträgt.

Kann mir jemand erklären, was TCP Window Size, Max Segment Size und Buffer Length genau
bedeuten und vor allem, welche Auswirkung hat die Messung der Leistung, wenn ich den Wert
jeweils auf 1 Megabyte einstelle?

Danke...

Hier ein kleiner Nachtrag, bei dem ich einfach mal eine Probelauf gestartet habe:

-Immer aus der Client Sicht-
Standard:
iperf -c 192.168.1.7 -P 1 -i 1 -p 5001 -l 8K -f k -t 10 -L 5001
------------------------------------------------------------
Client connecting to 192.168.1.7, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.2 port 4114 connected with 192.168.1.7 port 5001
[  3]  0.0- 1.0 sec    432 KBytes  3539 Kbits/sec
[  3]  1.0- 2.0 sec    448 KBytes  3670 Kbits/sec
[  3]  2.0- 3.0 sec    912 KBytes  7471 Kbits/sec
[  3]  3.0- 4.0 sec    920 KBytes  7537 Kbits/sec
[  3]  4.0- 5.0 sec    968 KBytes  7930 Kbits/sec
[  3]  5.0- 6.0 sec    960 KBytes  7864 Kbits/sec
[  3]  6.0- 7.0 sec    920 KBytes  7537 Kbits/sec
[  3]  7.0- 8.0 sec    952 KBytes  7799 Kbits/sec
[  3]  8.0- 9.0 sec    944 KBytes  7733 Kbits/sec
[  3]  9.0-10.0 sec    976 KBytes  7995 Kbits/sec
[  3]  0.0-10.0 sec  8440 KBytes  6905 Kbits/sec
Done.


TCP Window Size 1M:
iperf -c 192.168.1.7 -P 1 -i 1 -p 5001 -w 1M -l 8K -f k -t 10 -L 5001
------------------------------------------------------------
Client connecting to 192.168.1.7, TCP port 5001
TCP window size: 1024 KByte
------------------------------------------------------------
[  3] local 192.168.1.2 port 4124 connected with 192.168.1.7 port 5001
[  3]  0.0- 1.0 sec  1512 KBytes  12386 Kbits/sec
[  3]  1.0- 2.0 sec    536 KBytes  4391 Kbits/sec
[  3]  2.0- 3.0 sec    496 KBytes  4063 Kbits/sec
[  3]  3.0- 4.0 sec    528 KBytes  4325 Kbits/sec
[  3]  4.0- 5.0 sec    536 KBytes  4391 Kbits/sec
[  3]  5.0- 6.0 sec    688 KBytes  5636 Kbits/sec
[  3]  6.0- 7.0 sec    792 KBytes  6488 Kbits/sec
[  3]  7.0- 8.0 sec    744 KBytes  6095 Kbits/sec
[  3]  8.0- 9.0 sec    808 KBytes  6619 Kbits/sec
[  3]  9.0-10.0 sec    520 KBytes  4260 Kbits/sec
[  3]  0.0-10.0 sec  7168 KBytes  5845 Kbits/sec
Done.

Content-Key: 96619

Url: https://administrator.de/contentid/96619

Printed on: April 25, 2024 at 08:04 o'clock

Member: thorsten-rehm
thorsten-rehm Sep 12, 2008 at 05:27:03 (UTC)
Goto Top
Kann mir da niemand weiterhelfen?
Member: aqui
aqui Sep 13, 2008 at 10:47:06 (UTC)
Goto Top
Member: thorsten-rehm
thorsten-rehm Sep 13, 2008 at 10:49:45 (UTC)
Goto Top
Danke, aber den Artikel kenn ich natürlich. Wikipedia und Co. sind immer meine erste Anlaufstelle. Mich würde das, auch für das bessere Verständnis, speziell für iperf interessieren. Was passiert, wenn...
Member: aqui
aqui Sep 13, 2008 at 11:17:58 (UTC)
Goto Top
1024 kB in einem Window gesendet werden wir das en block gesendet ohne TCP ACKs. D.h. tritt ein Fehler auf muss das gesamte Window neu gesendet werden.
Deshalb hast du auch schlechtere Durchsatzraten, da sich das mit den sog. Sliding Windows unter TCP immer anpasst !!
Ggf. hilft noch das weiter:
http://openmaniak.com/iperf.php
Member: thorsten-rehm
thorsten-rehm Sep 15, 2008 at 05:33:58 (UTC)
Goto Top
Danke für den Link. Den schaue ich mir später genauer an (habe ihn bisher nur überflogen).

Was ist ACK genau?
Gut, dass mit der Window Size habe ich so einigermaßen gut verstanden. Was ist aber mit der Max Segment Size und der Buffer Length? Wie verhalten sich außerdem die letzten beiden Begriffe mit der Window Size?
Member: aqui
aqui Sep 15, 2008 at 09:43:55 (UTC)
Goto Top
ACK = Acknowledge (Paket)
Member: thorsten-rehm
thorsten-rehm Sep 16, 2008 at 15:37:57 (UTC)
Goto Top
Sodele. Ich habe jetzt eine DSL 6.000 Leitung überprüft.
Der eine Standort, Client Seite, hat eine 100 MBit/s Anbindung.
Der andere Standort, Server Seite, hat die oben erwähnte DSL Anbindung.

Ich bekomme als Ergebnis, wenn ich die Default Werte bei iperf lasse, ~900 kbits/s
Das entspricht natürlich nicht annähernd den möglichen ~6000 kbits/s der DSL Leitung.
Nachdem ich aber auf der Client Seite die TCP Window Size auf z.B. 2048 kB
erhöht habe, komme ich zu einem Ergebnis von ~5500 kbits/s.

So, und jetzt kommt der springende Punkt: Das verstehe ich nicht ganz. Könnt ihr
mir da etwas auf die Sprünge helfen. Was passiert denn da genau bzw. wo liegt
jetzt der Unterschied?
Wird ein TCP Paket statt mit 8 KB (Default), jetzt mit 2048 KB versendet?
Warum muss ich die Window Size bei einer DSL Leitung tunen und bei einem LAN
nicht? Bei letzterem konnte ich keine Unterschiede feststellen, wenn ich an
der Window Size geschraubt habe.

Und, was bisher noch unbeantwortet ist, wie verhält sich die MSS zu allem?

Wenn mir das jemand auf einfache Art und Weise erklären könnte, wäre das
super toll.

Vielen Dank an alle!