TCP Optimierung für hohe Latenz

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
marting
Beiträge: 61
Registriert: 30.09.2008 17:31:05

TCP Optimierung für hohe Latenz

Beitrag von marting » 06.07.2012 11:35:01

Hallo zusammen,

ich möchte an meinem Rechner gerne TCP für hohe Latenz optimieren. Zum Test bin ich an einer 10MBit up/down Standleitung und verschlechtere die Latenz mittels tc/netem künstlich auf 500-700ms. Vorher konnte ich die Bandbreite voll nutzen - jetzt komme ich kaum über 3 MBit hinaus und wenn ich mal eine Spitze erreiche, breche ich sofort wieder ein (teilweise auf unter 1 MBit).
Test via: wget http://server/20mb

Jetzt zwei grundlegende Fragen:

1. Ist es erforderlich, dass auch am Server Optimierungen vorgenommen werden? Der Server, den ich verwende steht in einem Rechenzentrum mit entsprechend geringer Latenz. Nachdem im Internet ja viele Systeme unterschiedlicher Latenz miteinander kommunizieren, vermute ich, dass der Client reicht. Aber irgendwie finde ich das auch wieder unlogisch, da Client/Server Requests ja gegenseitiges Geben und Nehmen sind.

2. Mir fehlt so ein wenig der Ansatzpunkt, welche Werte ich für die einzelnen Parameter nutzen soll. Bzw. welche Parameter überhaupt relevant sind. Ich hatte schon einige Seiten zu dem Thema gefunden und auch bissl probiert, aber der Erfolg ist ausgeblieben und die Seiten habe ich beim Browserabsturz auch wieder verloren :-) Gibt es nicht irgendwelche Tools unter Linux, wo ich Rahmenbedinungen eingebe, das Tool dann verschiedene Werte grob errechnet, dann probiert und mir zum Schluss Empfehlungen ausspricht? :-)

Viele Grüße
Martin

marting
Beiträge: 61
Registriert: 30.09.2008 17:31:05

Re: TCP Optimierung für hohe Latenz

Beitrag von marting » 06.07.2012 17:07:39

Diese beiden Seiten sind schon mal nicht schlecht
http://www.kehlet.cx/articles/99.html (zwar Solaris, aber inhaltlich gut übertragbar)
http://www.speedguide.net/articles/linux-tweaking-121

Ich bekomme teilweise auch echt gute Werte, aber der Beginn ist immer grottenschlecht (5-40kB/s für circa 10 Sekunden), danach wird es schlagartig besser. Wodurch könnte man diesen ersten Burst verbessern?

Oder bin ich hier im Debian Forum falsch und sollte mich an ein Linux Netzwerk Forum wenden? Empfehlungen?

Benutzeravatar
unitra
Beiträge: 646
Registriert: 15.06.2002 21:09:38
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.128.129.130

Re: TCP Optimierung für hohe Latenz

Beitrag von unitra » 06.07.2012 23:53:15

marting hat geschrieben:Diese beiden Seiten sind schon mal nicht schlecht
http://www.kehlet.cx/articles/99.html (zwar Solaris, aber inhaltlich gut übertragbar)
http://www.speedguide.net/articles/linux-tweaking-121

Ich bekomme teilweise auch echt gute Werte, aber der Beginn ist immer grottenschlecht (5-40kB/s für circa 10 Sekunden), danach wird es schlagartig besser. Wodurch könnte man diesen ersten Burst verbessern?

Oder bin ich hier im Debian Forum falsch und sollte mich an ein Linux Netzwerk Forum wenden? Empfehlungen?
Das was du machst ist eins Art Black Box Prinzip, bzw. Trial Error. Ohne eine Analyse des IP Traffics, kann man schlecht was genaues sagen.
Weil in meinem Verständnis:

Code: Alles auswählen

    <-------schlechte Performance------>
Server<----------->(Wolke)<---------->Internet
Die Wolke kann alles sein Verkabelung, Ethernet, IDS, IPS, Routing, transparente L2 Firewall :(
Verschaffe Dir erst einen Überblick (tcpdump, tshark, wireshark) was mit deinem Traffic passiert wenn eine TCP Session initiiert wird
und was nach dem Session Aufbau passiert.
Hier die Pflichtlektüre RFC 793 http://www.ietf.org/rfc/rfc793.txt.

Es muss nicht unbedingt an deinem Server liegen, es z.B. es kann von der Gegenseite kommen..

marting
Beiträge: 61
Registriert: 30.09.2008 17:31:05

Re: TCP Optimierung für hohe Latenz

Beitrag von marting » 09.07.2012 17:03:23

Hmm, ich bin mir nicht sicher, ob Du verstanden hast, was ich meine. Die Leitung ist eine Standleitung und der Server/die Gegenstelle ist auch unter meiner Kontrolle. Die Performance bricht erst ein, wenn ich die Latenz künstlich erhöhe (via netem). Das tue ich, weil ich Erkenntnisse über ein System gewinnen will, das hohe Latenz hat, aber das nicht unter meiner Kontrolle ist.
Mit tcpdump habe ich natürlich schon mitgeschnitten, aber da sehe ich ja nur, dass/welche Pakete kommen, aber nicht wieso nicht mit höherer Rate gesendet wird, als es der Fall ist. Die Kontrolle wieviel Pakete in der Sekunde gesendet werden, hat ja ausschließlich der Sender und der teilt dem Empfänger ja nicht, was der Grund ist, wieso nicht mehr Pakete kommen.
Oder verstehe ich etwas falsch?

Viele Grüße
Martin

Antworten