Latenzverbesserung unter Windows 7 & Vista

PiGrimar

Rare-Mob
Mitglied seit
01.04.2006
Beiträge
326
Reaktionspunkte
4
Kommentare
76
Hallo Community,

Wer sich immernoch über hohe Latenz unter Windows 7 oder Vista aufregt, für dem gibt es wohl eine Lösung.
Ich hatte früher (ca. 1 Jahr her) nur DSL Light, nun haben wir DSL 6000 und hatte immer eine Latenz von 230+ gehabt egal ob unter Windows XP oder Heute unter Windos 7.
Ich weis mitlerweile das das Betriebssystem und auch der daran angeschlossene Rechner nicht ausschlaggebend für die Latenz ist.

Aber hier nun der Weg zur Lösung, es wurde von mehreren getestet und die Erwartung war meist höher als erwartet, 50%+ bessere Latenz. Danke an Timo von Entfesselt.org

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Spieler von Onlinegames wie World of Warcraft oder Aion leiden oftmals unter dem Phänomen exorbitanter Latenzzeiten jenseits der 300 Millisekunden. Hier können ein paar einfache Handgriffe unter Windows 7 und Vista Abhilfe schaffen.

Schritt 1

http://www.entfesselt.org/wp-content/gallery/aion/thumbs/thumbs_ping.jpg


Zu: Start / Systemsteuerung / Programme / Windows-Funktionen aktivieren oder deaktivieren durchklicken und alle gezeigten Bestandteile der Microsoft-Message Queue-Serverkomponenten anhaken und installieren. Nach erfolgreicher Installation Windows neu starten.

<br class="spacer_">

Schritt 2

regedit ausführen (Windowstaste+R – regedit eingeben – Enter drücken) und zu folgendem Eintrag navigieren:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters
Im rechten Fenster dann rechtsklick und einen neuen DWORD Wert mit dem Namen TcpNoDelay anlegen. Nun einen Doppelklick darauf und den Wert (Hexadezimal) auf 1 setzen.

Jetzt noch zu folgendem Eintrag navigieren:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces
Es folgen ein paar kryptische Ordner. Einer dieser Ordner sollte zum einen die meisten Einträge, des Weiteren die IP Adresse Eurer Netzwerkkarte enthalten. Hier erstellt Ihr ebenfalls einen neuen DWORD Wert allerdings mit dem Namen TcpAckFrequency. Der Wert muss ebenfalls auf 1 (Hexadezimal) gesetzt werden.

Jetzt noch einen Reboot und testen. Meine Ping Zeiten sind in Aion und World of Warcraft seit dieser Anpassung durschnittlich merkbar unter 100 gefallen. Von abermals 200 + ein doch recht zufriedenstellendes Ergebnis.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Quelle : Entfesselt.org
 
hatten wir schon x-mal, es wird nur ne bessere angezeigt. Wenn ihr das macht, kann das zu fehlern bei youtube videos etc. führen.
 
Tja wurde hier ja schon oft erklärt. Die Laggs im Spiel bleiben die selben. Selbst Leute die sich eine Killer Nic Xeno Pro-Netzwerkkarte zugelegt haben reden nur von Verbesserungen von 5-10ms. Der Eintrag in der Registry dagegen bringt gar nichts. Sorry @TE aber da bist du einem Gerücht erlegen, das in keinster weise etwas wahres beinhaltet. Das Thema existierte übrigens schon in einer Zeit vor Vista/Win7.
 
Zuletzt bearbeitet von einem Moderator:
Da isses wieder
biggrin.gif
es gibt doch echt immernoch leute die glauben das bringt was xD
 
Mhh....

Könnt ihr mir auch den Grund sagen warum das oben Beschriebene nicht die Latenz verbessert, sondern angeblich nur die Anzeige verfälscht ?
 
Mhh....

Könnt ihr mir auch den Grund sagen warum das oben Beschriebene nicht die Latenz verbessert, sondern angeblich nur die Anzeige verfälscht ?

Ich werds jetzt falsch sagen, weil ich Klos' Beitrag nicht mehr so im Kopf hab. Also, wenn sich dein Pc am Router einloggt, prüft er normalerweise iwie die Pakete die an den Router geschickt werden auf die Vollständigkeit. Wenn man das umstellt werden die Pakete nicht mehr geprüft. Isowas wars, aber Klos soll es am besten bitte nochmal erklären.
 
Tja wurde hier ja schon oft erklärt. Die Laggs im Spiel bleiben die selben. Selbst Leute die sich eine Killer Nic Xeno Pro-Netzwerkkarte zugelegt haben reden nur von Verbesserungen von 5-10ms. Der Eintrag in der Registry dagegen bringt gar nichts. Sorry @TE aber da bist du einem Gerücht erlegen, das in keinster weise etwas wahres beinhaltet. Das Thema existierte übrigens schon in einer Zeit vor Vista/Win7.

Komisch... als ich damals locker gut 300er Pings hatte, war die Änderung schon spürbar. Deutlich.

Diese Einstellung bewirkt das die Datenpakete öfter in kleineren Mengen gesendet werden, was die Bandbreite der Leitung wesentlich entlastet... Soviel ich weiß aufjedenfall. Kann mir eigentlich egal sein was manche darüber sagen/denken, aber ich der Unterschied zwischen 100 und 300 ist schon Spürbar.
 
Komisch... als ich damals locker gut 300er Pings hatte, war die Änderung schon spürbar. Deutlich.

Diese Einstellung bewirkt das die Datenpakete öfter in kleineren Mengen gesendet werden, was die Bandbreite der Leitung wesentlich entlastet... Soviel ich weiß aufjedenfall. Kann mir eigentlich egal sein was manche darüber sagen/denken, aber ich der Unterschied zwischen 100 und 300 ist schon Spürbar.

Das ist falsch!

Also zuerst einmal möchte ich sagen, daß die Frage, ob es denn was bringt oder nicht, nicht leicht zu beantworten ist. Das hängt von verschiedenen Faktoren ab. Gehen wir das ganze mal durch.
Datenpakete, sogenannte Ethernet-Frames, normal 1518 Byte groß, beinhalten weitere Protokolle, die zur Kommunikation benötigt werden. Im Ethernet-Frame befindet sich zum Beispiel der IP-Header, der für das Routing benötigt wird. Danach kommt der TCP-Header, um den es sich hier dreht. Der TCP-Header ist auf der Transport-Ebene und arbeitet, anders als IP verbindungsorientiert.

Prinzipiell kann man die Pakete über UDP oder TCP versenden. Bei UDP ist es dem Sender völlig egal, ob und in welcher Reihenfolge die Pakete ankommen. Die Überprüfung und das Zusammenfrickeln muss serverseitig selbst implementiert werden. Bei TCP gibt es eine Flusskontrolle der Pakete. Das heißt, daß zwischen Client und Server eine virtuelle Instanz der Protokolle aufgebaut wird.

Während des Datenverkehrs kann also kontrolliert werden, welche Pakete jetzt nun eigentlich kommen sollten und somit, ob sie vollständig sind. Wenn nicht, dann werden sie neu angefordert.
Das ganze passiert über Sequenz-Nummern im TCP-Header.

Diese Verzögerung ist eigentlich genau deswegen eingebaut worden, um Bandbreite zu schonen. Denn der Client puffert Pakete und schickt dann für mehrere Pakete ein Ackknowlegde an den Server.
Setzt du das aber nach unten oder setzt das entsprechende Property TCP NoDelay auf true, dann schickt er sofort für jedes empfangene Paket ein Ack-Paket.

Es entstehen also mehr Pakete und somit wird die Bandbreite strapaziert. Besonders in Netzen, wo sehr viele Komponenten angeschlossen sind, kann das zur Verschlechterung der Performance führen.
Auch kann es bei nicht voll duplexfähigen Netzwerken zu erhöhten Kollisionen der Datenpakete kommen. Zum Beispiel bei Verwendung eines Hubs anstelle eines Switch.

Es ist also nicht leicht zu sagen, ob das ganze was bringt. Fakt ist, daß du die Bandbreite verringerst, weil mehr Pakete unterwegs sind. Es wird ja nicht mehr gepuffert. Fakt ist aber auch, daß der Server die Bestätigung für den Erhalt der Pakete schneller hat.

Nun ist die Frage, wie ist das bei Blizzard konfiguriert. Sendet der Server 3 Pakete und wartet dann zum Beispiel so lange auf eine Bestätigung, ehe er wieder neue versendet?
Für die meisten Anwendungen ist eine Verzögerung eigentlich empfehlenswert, um unnötiges "flooding" des Netzwerkes mit Ack-Paketen zu vermeiden.

Wie es sich bei Wow verhält, keine Ahnung. Ich habe es noch nie versucht. Wenn du für dich meinst, daß es was bringt, dann lass es.
 
Zuletzt bearbeitet von einem Moderator:
Es bringt eben grad bei WoW was, weil sich dort die Daten extrem stauen... Bei anderen Spielen ist es nicht spürbar.
 
Also probiert hatte ich das schon vor vielen Jahren. In Verbindung mit Quartz, das ja Verzögerungen in Millisekunden anzeigt. Es zeigt sich dabei nicht die geringste Verbesserung. Wie schon gesagt, selbst die speziellen Netzwerkkarten die die Datenpakete steuern, können nur 5-10ms rausholen, mehr nicht. Und ich habe es wirklich über längere Zeit getestet, es bringt nichts.
Wenn man wirklich eine spürbare Verbesserung haben will, muss man den Provider wechseln, in der Hoffnung einen zu finden, bei dem es auch wirklich was bringt.
Ich hatte früher mal SDSL (1Mbit) von QSC gehabt und in WoW eine Latenz von 30-40ms. Heute Telekom VDSL50 bringt es nur ca. 80-120ms.
 
Viel stauen kann sich nicht. Denn der Algorithmus ist so implementiert, daß er entweder wartet, bis er (ich glaube) drei Pakete zusammen bestätigen kann, oder aber er sendet spätestens (und da bin ich sicher) nach Ablauf von 200 ms ein Ackknowledge an den Server. Völlig gleichgültig, ob er nun drei Pakete bestätigen kann oder nicht.

Also auch wenn du damit was rausholen kannst, was ich nicht ausschließen kann, da ich wie gesagt keine Ahnung hab, wie das bei Blizzard so aussieht, so wird es nicht sonderlich viel sein.
Es hängt auch von der client-seitigen Programmierung ab. Ist das NoDelay-Property auf Socket-Ebene gesetzt, dann kackt er eh von Haus aus darauf und sendet sofort zurück. Auch da kann ich nicht sagen, wie Blizzard das handhabt.

Wie gesagt, eine kleine Verbesserung möchte ich nicht ausschließen. Eine Verschlechterung aber genau so wenig. Da aber die meisten Probanden eher Positives berichten, ist ersteres zu vermuten.
Allerdings würde ich das ganze dann im zweistelligen Millisekundenbereich ansiedeln.
 
Ich arbeite auch mit Quartz und es ist schon spürbar. Da ich eben viel Arena gespielt hab, war ein Ping von 130 ms+ schon richtig schlecht... Jetzt seh ich im Quartz meist 70er, oft niedriger und in seltenen Fällen auch mal etwas höher.
 
Zurück