(Netzwerke) MTU / TCP ACK Freq.
Steel
- sonstiges
0 flowh0 Steel
3 Sven Rautenberg0 Steel
Jo!
Nu wird's theoretisch. Und es bezieht sich auf Pings, Latenzen und Onlinespiele.
Angenommen ich spiele ein Onlinegame und möchte meine meine Verbindung etwas aufmöbeln um den Tick schneller zu sein, als die anderen, bzw. um überhaupt ordentlich spielen zu können.
Was mir vertraut ist: Die MTU. Der Wert regelt die Größe der Pakete. Weil jedes Paket ja nun Headerdaten und Checksumme enthält sendet man lieber ein Paket als zwei, und spart ein paar Byte. Man versucht also ein möglichst großes Paket zu generieren, das nicht vom Router fragmentiert wird (man aalso wieder 2 Pakete hat).
Gut. Soweit zur Theorie. Womit ich mich nun nicht auskenne: die TCP ACK Frequenz. Diese regelt, soweit ich das verstanden habe, Die Wartezeit, bis ein Paket als vollständig deklariert wird. Um Geschwindigkeitsverbesserungen zu erreichen, soll dieser Wert nun möglichst gering (1) eingestellt werden. Es werden also, so verstehe ich das, in schnellerer Reihenfolge Pakete versendet - zur Not fast leere - hauptsache weg.
Hier nun meine Frage: Einerseits versuche ich also möglichst große Pakete zu verschicken und auf der anderen Seite möglichst viele, auch winzige, um den Ping zu verbessern? Das klingt doch erstmal paradox. Dann kann ich auch die MTU einfach runtersetzen und schicke dann dauernd winzige Pakete.
Vielleicht hat ja unser öhm. 'Netzwerkanalytiker' Cheatah dazu was zu sagen? Ich wunder mich jedenfalls grad etwas und überlege, mich mal wieder etwas intensiver mit diesen Dingen zu beschäftigen.
Moin!
Falls du dich umfassender informieren willst: eine Einführung in TCP/IP.
:)
Danke fuer den Link zu dem Dokument. Das war ja sehr nett, aber ich fuerchte, die dort enthaltenen Infos sind nicht wirklich neu fuer mich.
Nachdem ich es kurz ueberflogen habe, denke ich aber, dass ich das PDF bei Gelegenheit trotzdem mal teilweise studieren werde, um einige Infos aufzufrischen.
Moin!
Nu wird's theoretisch. Und es bezieht sich auf Pings, Latenzen und Onlinespiele.
Was mir vertraut ist: Die MTU. Der Wert regelt die Größe der Pakete. Weil jedes Paket ja nun Headerdaten und Checksumme enthält sendet man lieber ein Paket als zwei, und spart ein paar Byte. Man versucht also ein möglichst großes Paket zu generieren, das nicht vom Router fragmentiert wird (man aalso wieder 2 Pakete hat).
Die MTU wird, wenn keine gehirntot konfigurierte Firewall die dabei beteiligten ICMP-Pakete ausfiltert, durchaus dynamisch pro Übertragungsstrecke ausgehandelt, indem durchleitende Router die Info, dass sie ein Paket fragmentieren mussten oder müssten, zurückschicken mit der maximal erlaubten Paketgröße (nennt sich Path MTU Discovery). Insbesondere in lokalen Netzen, die via DSL ins Netz gehen, kann das aber auch falsch konfiguriert sein: 1500 Bytes gehen als Nutzdaten in ein Ethernet-Paket (Gigabit-Ethernet erlaubt auch Jumbo-Frames, um die nutzbare Datenrate zu erhöhen), aber DSL selbst nutzt für das PPPoE-Protokoll auch Ethernet-Frames, muss dorthinein aber noch eigene Adressinformationen packen, so dass 8 Byte weniger für die Nutzdaten zur Verfügung stehen. Normalerweise sollte ein vernünftiger DSL-Router per DHCP die MTU-Info "1492 Byte" an die Clients rausgeben, aber der Client muss sich ja nicht dran halten, sondern kann auch selbst auf die Nase fallen. Oder gar nicht auf DHCP konfiguriert sein.
Gut. Soweit zur Theorie. Womit ich mich nun nicht auskenne: die TCP ACK Frequenz. Diese regelt, soweit ich das verstanden habe, Die Wartezeit, bis ein Paket als vollständig deklariert wird. Um Geschwindigkeitsverbesserungen zu erreichen, soll dieser Wert nun möglichst gering (1) eingestellt werden. Es werden also, so verstehe ich das, in schnellerer Reihenfolge Pakete versendet - zur Not fast leere - hauptsache weg.
Die TCP ACK Frequenz regelt, wie schnell auf eintreffende TCP-Pakete mit einem ACK-Paket reagiert wird. Ein ACK-Paket enthält außer den notwendigen Flags (eben ACK) und den IP-Adressen keine Daten, ist also sehr klein: 64 Byte.
Jetzt ist's eine Frage der Implementierung des Datentransfers zwischen Server und Client: Wartet der Server bei jedem Paket auf ein ACK, ist es ungünstig, wenn der Client erst nach einer Wartezeit von vielleicht 200 Millisekunden pauschal alle bis dahin eingetroffenen Datenpakete quittiert.
Anders herum: Es ist im Regelbetrieb deutlich performanter, wenn die Anzahl an kleinen ACK-Paketen möglichst gering bleibt, der Server also einfach auf Vorrat TCP-Pakete schickt, und der Client mehrere Pakete mit nur einem einzigen ACK bestätigt.
Hier nun meine Frage: Einerseits versuche ich also möglichst große Pakete zu verschicken und auf der anderen Seite möglichst viele, auch winzige, um den Ping zu verbessern? Das klingt doch erstmal paradox. Dann kann ich auch die MTU einfach runtersetzen und schicke dann dauernd winzige Pakete.
Du vergleichst hier Äpfel und Birnen. Große Pakete willst du haben, um effizient Datenmassen zu bewegen. Wenn der Server aber bei jedem Paket erst das ACK abwartet, bevor das nächste Paket gesendet wird, dann willst du tatsächlich unverzüglich jedes Paket mit ACK beantworten. Wenn der Server dies aber nicht tut (das ist der Regelfall), dann sparst du dir einen nennenswerten Teil deiner Upstream-Bandbreite, indem die Datenmenge für ACK verringert wird, wenn nicht jedes Paket einzeln quittiert wird.
Denn parallel zu dem Datenstrom der ACK-Pakete, die du nicht kleiner oder größer kriegst, wandern ja von deiner Seite her auch Daten zum Server - und die wollen in möglichst großen Paketen reisen.
- Sven Rautenberg
Nabend!
Die MTU [...]
Bis hierhin war mir das alles auch klar. Soweit moegen sich mein Router, mein Netzwerk und auch mein Netzanbieter recht gern.
Die TCP ACK Frequenz regelt, wie schnell auf eintreffende TCP-Pakete mit einem ACK-Paket reagiert wird. Ein ACK-Paket enthält außer den notwendigen Flags (eben ACK) und den IP-Adressen keine Daten, ist also sehr klein: 64 Byte.
Okay. Jetzt habe ich auch das aufm Schirm. Ich habe mich halt vorher niemals mit der ACK Frequenz und was das eigentlich ist, beschaeftigt. Nur kam gestern wieder so eine, zwar sehr reizende, nicht unbewanderte, aber wohl wieder nur mit gefaehrlichem Halbwissen ausgestattete, Person auf mich zu und bat mich herauszufinden "wie man einstellt, dass der Rechner die Pakete schneller verschickt" Ich hab also erstmal die Stirn gerunzelt und dann gefolgert dass es sich dabei um die MTU handeln muss. Also ein paar schoene Erklaerungen zur MTU und wie man diese einstellen kann gesucht und die Links verschickt.
Das war natuerlich falsch. Es ging darum "den Rechner so einzustellen, dass er nicht wartet, bis die Pakete voll sind" - Dummes Gesicht auf meiner Seite. Dann kam das Stichwort "TCP ACK Frequency". Nun. Ich bin kein eingefleischter Netzwerkmensch und muss zugeben, dass ACK bis da bei mir nicht wirklich als gelaeufig galt. Kurz gegoogelt, aber eben mit dieser falschen Praemisse im Kopf, dass Pakete dadurch schneller verschickt werden, weil nicht gewartet wird, bis sie voll sind.
Danke! Du hasts mir schoen aufgemalt und ich bin wieder auf der Schiene.
Das heisst, ACK schoen runterzuschrauben kann bei Onlinegames wirklich einen Vorteil bringen, weil jeder Furz schneller bestaetigt und deshalb hoffentlich auch schneller verarbeitet wird. Wobei es sich ja wohl nur um die vom Spielserver eintreffenden Pakete bei meinem Client handelt. Mein PC dem Server also nur schneller miteilt, dass die Serverinformation angekommen ist.
Tach,
Das heisst, ACK schoen runterzuschrauben kann bei Onlinegames wirklich einen Vorteil bringen, weil jeder Furz schneller bestaetigt und deshalb hoffentlich auch schneller verarbeitet wird.
unwahrscheinlich, Netzwerkspiele nutzen in den meisten Fällen UDP nicht TCP, da gibt es kein ACK.
mfg
Woodfighter
Moin!
Das heisst, ACK schoen runterzuschrauben kann bei Onlinegames wirklich einen Vorteil bringen, weil jeder Furz schneller bestaetigt und deshalb hoffentlich auch schneller verarbeitet wird.
unwahrscheinlich, Netzwerkspiele nutzen in den meisten Fällen UDP nicht TCP, da gibt es kein ACK.
Angeblich (ich kann's nicht bestätigen mangels der Software) nutzt World of Warcraft TCP und wartet tatsächlich wie beschrieben das ACK ab.
- Sven Rautenberg
Tach,
Angeblich (ich kann's nicht bestätigen mangels der Software) nutzt World of Warcraft TCP und wartet tatsächlich wie beschrieben das ACK ab.
ich werd' mal nachsehen heute abend ;-)
mfg
Woodfighter
Hoi!
unwahrscheinlich, Netzwerkspiele nutzen in den meisten Fällen UDP nicht TCP, da gibt es kein ACK.
Angeblich (ich kann's nicht bestätigen mangels der Software) nutzt World of Warcraft TCP und wartet tatsächlich wie beschrieben das ACK ab.
So siehts wohl aus. ;)