PING...PAKETE...LAG ... LOSS...SONSTIGES

    ACHTUNG dies ist das ALTE Forum!!

    Das neue gibt es unter https://discourse.bohramt.de!

      PING...PAKETE...LAG ... LOSS...SONSTIGES

      Hallo Jungs und Mädels,

      Ich wurde vor kurzem gefragt (von MakeMyDay), ob ich nicht ein Thema zu Ping, Pakete, Lag, Loss, usw. schreiben kann.

      Dies ist ein langes und schwierig zu erklärendes Thema... ich weiss gar net wo ich anfangen soll...
      Es würde auf jeden Fall den Rahmen des Forums sprengen... :D

      Ich versuche es so kurz und einfach wie möglich
      zu erklären... und das noch aus dem FF...


      Fangen wir mit dem Ping an:

      Der Ping ist ein Begriff aus dem Militär. Er wird z.B. Unterwasser bei U-Booten eingesetzt, um feindliche U-Boote zu erspähen. Man nennt dort den Ping auch Aktiv-Sonar.
      Nachteil eines Aktiv-Sonares ist, das auch der Sender des Pings entdeckt wird, aber das ist ein anderes Thema.


      Zurück zur Computerwelt

      1. Der Sender setzt einen Ping ab.
      2. Der Ping legt eine unbestimmte Strecke im Internet zurück.
      3. Der Ping erreicht den Empfänger und wird zurückgeworfen.
      4. Der Ping legt wieder eine unbestimmte Strecke zurück.
      4. Der Ping erreicht wieder den Sender.
      5. Daraus lässt sich die Verzögerung den der Ping hat errechnen. (folglich meist in Millisekunden)

      Sender pingt -----> UP-Ping = Strecke/Zeit -----> Empfänger
      Empfänger -----> Down-Ping = Strecke/Zeit ----> Sender

      Verzögerung = UP-Ping + Down-Ping in ms

      Daraus schliessen wir im Idealfall, dass der Ping nicht vom Sender oder Empfänger beeinflusst werden kann, was seine Verzögerung angeht. Er ist von der Umwelt durch den der Ping wandert abhängig.

      Also die Verzögerung des Pings oder der Pakete ist vom Internet abhängig, d.h. Traffic, Stationen durch die er wandert und weitergeleitet wird, usw.

      Was der Sender und Empfänger beeinflussen kann ist jedoch wieviele Pings bzw. Pakete pro Sekunde gesendet und zurückgeworfen, oder ignoriert werden können.

      Somit sind wir schon beim Thema Pakete:

      Das Paket hat eine bestimmte Grösse, um ins Internet gesendet werden zu können. Man nennt dies auch MTU = Maximum Transmission Unit, und die ist meistens 1500 Byte / 1,5 kByte gross.
      In dieser MTU werden 40 Byte für Informationen reserviert, wie z.B. Sender, Empfänger, Paketnummer, Reihenfolge, usw.

      Das heisst, dass die reale Paketgrösse 1460 Byte beträgt = MSS (Maximum Segment Size)

      Der Sender sendet z.B. 4380 Byte an Informationen, somit wird durch die limitierte Paketgrösse die Information in genau 3 Pakete zu je 1500 Byte gestückelt, und ins Internet geschickt. Die 3 Pakete erreichen den Empfänger in unterschiedlicher Zeit, da sie auf unterschiedlichen Wegen geroutet / umgeleitet werden.
      Sobald alle Pakete beim Empfänger angekommen sind, werden sie wieder in der richtigen Reihenfolge zusammengesetzt. Sollte ein Paket unvollständig oder gar nicht angekommen sein (Paket loss genannt), so wird das Paket vom Empfänger erneut angefordert.

      1. Der Sender sendet ein Paket, das vom Client in kleinere handlichere Pakete gestückelt wird.
      2. Die vielen kleinen Pakete nehmen unterschiedliche Wege durch das Internet.
      3. Die Verzögerung der Pakete ist von der Route, vom Traffic, usw. abhängig.
      4. Die Pakete kommen beim Empfänger an, und werden wieder zusammengesetzt.
      5. Der Empfänger sendet den Erfolg oder den Misserfolg ob die Pakete angekommen sind zurück, und hängt sie an seine zu sendenden Pakete an.
      6. Die Pakete kommen beim Sender an, und es kann die Verzögerungszeit festgestellt werden (Ping in ms)

      usw.



      Zum Thema Lag:

      Lag entsteht, wenn die Synchronisation des Client und Servers nicht mehr übereinstimmt (z.B. ihre Uhren laufen nicht mehr synchron und müssen angeglichen werden).
      Das passiert, wenn zuviele, zuwenig, gar keine Pakete ankommen oder gesendet werden, oder das die Pakete zu lange brauchen, usw.

      Lag entsteht aber auch, wenn z.B. die Grafikkarte, die CPU, die Netzwerkkarte, die DSL-Karte, die Northbridge, usw., oder der Server die riesige Informationsflut nicht rechtzeitig bearbeiten und synchronisieren können. Ruckeln und Stottern entstehen.

      Lag entsteht also aus vielen Faktoren, die meistens in einigen Fällen behoben werden können...


      Zum Thema schnelleres Einloggen beim Mapwechsel:

      Ich habe festgestellt, dass meistens derjenige als erstes auf der neuen Map sich einloggen kann, weil die Map schneller von der Platte gelesen wird, z.B. wie beim Raid0(Striping)-Verfahren.
      ...


      Also, was den Ping angeht, so ist er kaum vom User oder Client beeinflussbar, auch nicht von der genutzten Bandbreite ! Eine höhere Bandbreite (z.B. 5000 kBit/s) bedeutet nicht gleich besserer Ping.
      Vielmehr entscheidend für den guten Ping ist, wie weit ihr von der Vermittlungsstelle entfernt seid, wieviele User gleichzeitig das Internet über Eure Route benutzen, den Traffic, wie schnell der Server die Informationsflut bearbeiten kann, der Interleave-Modus (Fehlerkorrektur), usw. ...

      Interleave-Modus ausgeschaltet = FastPath !


      Der Ping kann durch eine Optimierung der Paketgrösse, des RcvWindow usw. scheinbar verbessert werden, aber nur annäherungsweise !!!

      Was die Pakete angeht, so müsst ihr Eurer System abstimmen, um ein gutes Ergebnis zu erzielen.


      Was den Lag angeht ... einfach rumprobieren, oder gleich den ganzen Rechner samt Monitor, Tastatur, Maus zum Fenster rauswerfen ...

      War nurn Scherz ! ;)



      Aber am besten Ihr lasst es bei den Standard-Einstellungen ... und probiert nur in CS ein wenig herum.
      So könnt ihr am wenigsten falsch machen.



      Ich hoffe ich konnte einige Fragen damit beantworten...




      Ich will jetzt hier nicht wieder ewig schreiben, sondern nur mal meine Beispielkonfiguration angeben:


      Mein PC:

      Gehäuse: Chieftec Dragon BX schwarz

      Gehäuselüfter: 4x YS-Tech @ 4500 UPM + 4fach Lüftersteuerung (macht das Ding auch noch extrem leise, wenn auf minimum)

      Mainboard: Asus P4C800-E Deluxe

      Netzteil: Tagan 480 Watt

      Prozessor: Intel Pentium 4 2,8 Ghz @ 3,5 Ghz (FSB: 250 Mhz) VCore 1,58 Volt

      CPU-Kühler: ThermalRight SLK947-U + 90mm Lüfter @ 2500 UPM

      Arbeitsspeicher: 2x 512 MB Infineon PC3200 DDR400 CL3 + Revoltek Gold Speicherkühler
      Der Arbeitsspeicher wird im Bios auf 320 Mhz (=160x2)gestellt. [kleine Rechnung: 160 Mhz + FSB-Mehr-Taktung 50 Mhz x 2 (da DoubleDataRate) = 420 Mhz effektive Taktung]

      Grafikkarte: Leadtek A350TDH FX5900XT @ 5950UltraMod: 475 Mhz Core / 950 Mhz Speicher + Speicherkühler Zalman

      DSL-Karte: AVM Fritz!Card DSL/ISDN

      Soundkarte: Terratec DMX1024 oder so ...

      Festplatten: 2x 80 GB S-ATA Raid0 (Striping)

      Monitor: 17" TFT BenQ FP767-12

      Tastatur: irgendsoeine schnurlos Microsoft Deluxe Cordless Desktop

      MausPad: FuncSurface 1030 schwarz

      Maus: Logitech MX-510 blau

      Joystick: Saitek MegaStick III ( 8o ja ich spiele CS mit Joystick ^^ :D )

      Internetanschluss: 1 Mbit ADSL (Pingtest: 30ms / www.speedmeter.de)



      So nach einigem Rumprobieren und Rechnen usw. ...

      (bedenkt das sind die max-Werte für mein System)

      hier meine eigene Config:


      Folgendes in die autoexec.cfg eingefügt:
      ---------------------------------------------------
      r_mmx "1"

      r_sse "1"

      r_sse2 "1"

      r_shadows "1"

      r_rainsimulate "0"

      rate "20000"

      fps_max "198"

      cl_allowupload "1"

      cl_allowdownload "1"

      cl_rate "20000"

      cl_forcepreload "1"

      mat_vsync "0"

      cl_updaterate "101"

      cl_cmdbackup "51"

      cl_cmdrate "101"

      cl_resend "1.5"
      ---------------------------------------------------


      Ich habe auch mit folgenden Werten gute Ergebnisse erzielt:
      ---------------------------------------------------
      r_mmx "1"

      r_sse "1"

      r_sse2 "1"

      r_shadows "1"

      r_rainsimulate "0"

      rate "17520"

      fps_max "199"

      cl_allowupload "1"

      cl_allowdownload "1"

      cl_rate "10000"

      cl_forcepreload "1"

      mat_vsync "0"

      cl_updaterate "75"

      cl_cmdbackup "30"

      cl_cmdrate "51"

      cl_resend "2"
      ---------------------------------------------------


      Diese Einstellungen sind natürlich nur für mein System in den meisten Fällen optimal ... also ein wenig rumprobieren.


      Ein gutes Tool um die feste Paketgrösse usw. einzustellen ist DFÜ-Speed V2.2 .... einfach googeln ...

      Meine Einstellung ist:

      MTU: 1500
      RWIN: 17520
      TTL: 64
      Port139: Unterbinden
      MaxConnect HTTP1.0: 10
      MaxConnect HTTP1.1: 10


      Probiert ein wenig rum ... aber Vorsicht, diese Einstellungen gelten dann für alles was ins Internet geht und zurückkommt, denn sie ist clientseitig !!!


      Ein weiteres ist SpeedCorp 9x Enhancer, das aber sehr schwer zu finden ist...

      Meine Einstellung:

      Size Small/Med/Large: 3
      PMTUDiscovery: 1
      PMTUBlackHoleDetect: 0
      TCP1323Opts: 3
      SackOpts: 1
      MaxDupAcks: 1

      Die anderen Werte sind leer, oder wie bei DFÜ-Speed.

      Vorsichtig solltet ihr auch mit den anderen Werten sein !!! Am besten leer lassen ^^ ;)




      Ausserdem, wenn ihr der Meinung seid, das Euer Rechner nicht schnell genug ist ... probiert doch mal folgendes... ( ein wenig Quake-Feeling!;-)...
      ist laut Valve auch kein Cheat! ^^...



      Eine test1.cfg erstellen:
      ---------------------------------------------------
      mp_decals "0"

      fog_enable "0"

      cl_ejectbrass "0"
      cl_phys_props_enable "0"
      cl_ragdoll_collide "0"
      cl_ragdoll_physics_enable "0"
      cl_c4dynamiclight "0"
      cl_show_splashes "0"
      cl_smooth "0"

      mat_picmip "10"
      mat_clipz "0"
      mat_bumpmap "0"
      mat_specular "0"
      mat_mipmaptextures "0"
      mat_filterlightmaps "0"
      mat_filtertextures "0"
      mat_forcedynamic "0"

      r_dynamic "0"
      r_lod "5"
      r_decals "0"
      r_rainsimulate "0"
      ---------------------------------------------------

      Diese Datei in der Console mit

      exec test1.cfg

      ausführen.


      Rückgängig macht ihr sie dann wieder mit folgender
      test2.cfg:
      ---------------------------------------------------
      mp_decals "0"

      fog_enable "1"
      cl_ejectbrass "1"
      cl_phys_props_enable "1"
      cl_ragdoll_collide "1"
      cl_ragdoll_physics_enable "1"
      cl_c4dynamiclight "1"
      cl_show_splashes "1"
      cl_smooth "1"

      mat_picmip "1"
      mat_clipz "1"
      mat_bumpmap "1"
      mat_specular "1"
      mat_mipmaptextures "1"
      mat_filterlightmaps "1"
      mat_filtertextures "1"
      mat_forcedynamic "1"

      r_dynamic "1"
      r_lod "1"
      r_rainsimulate "0"
      ---------------------------------------------------

      In der Console wieder:

      exec test2.cfg


      Nicht verzagen falls beim umschalten der Rechner steht und wiederholende Geräusche von sich gibt ... er braucht einige Zeit zum umstellen, also einfach warten...
      und nicht gleich denken er sei abgestürzt.



      Ach ja, hätt' ich fast vergessen ...

      -dxlevel 81

      bringt mehr Performance auf schnelleren Grafikkarten, falls Eure auch -dxlevel90 unterstützt !

      -heapsize 262144

      Damit könnt Ihr die Arbeitsspeicherreservierung für CS festlegen ...

      Diese Einstellung findet ihr unter den Eigenschaften bei CSS unter Startverhalten ....

      bzw. Properties / Launch Options !




      (Dieser Thread ist nur als Veranschaulichung gedacht, und dient nur als Denk-Hilfe !!! Nicht vergessen !)



      So... Es gibt noch viel mehr zu sagen / schreiben, aber ich mach jetzt Schluss, und überlasse Euch das Feld !!! :]

      Viel Spass noch beim zoggn ... ich geh' jetzt wieder zoggn... :D
      Man kann noch ergänzen, dass gerade bei Spielen, übrigens genau wie bei VideoStreams, fast immer das UDP statt TCP/IP Protokoll benutzt wird.
      Das Tcp/Ip Protokoll sichert eine Zustellung sämtlicher Packete zu, weshalb es immer wieder zu Retransmissions kommen würde, was gerade beim Zocken oder Video schaun nicht nur nicht erwünscht, sondern unnötig ist.
      Daher wird UPD benutzt, die Pakete suchen sich alle eigenständig und autak ihren Weg durchs Netz, sind durchnummeriert, damit der Empfänger auch die Informationen wieder richtig zusammen setzen kann.
      Hierbei werden aber Sicherheiten über die Ankunft der Packete festgelegt. Der Empfänger bastelt sie zusammen und verwift Packete, die (warum auch immer) viel zu spät ankommen einfach wieder.

      Interessant zu ping wäre ggf. noch zu sagen, dass es durchaus sein kann, das der Hin & Rückweg unterschiedlich sind, da der Wert gemittelt wird, ist dies auch egal, jedoch gibt es im Internet immer wieder Routing Einträge die verhindern, dass Packete so zurück laufen, wie sie hinliefen, sei es aus politischen oder wirtschaftlichen Gründen.

      Für den praktischen Handgebrauch sei noch gesagt, dass dies jeder mal selbst ausprobieren kann, mit ping und traceroute Paketwege zu finden und zu analysieren.
      Dazu einfach die Dosbox öffnen (=>ausführen: cmd)
      und hier ping heise.de oder tracert heise.de sich mal ansehen.

      traceroute (der dos befehl wird tracert geschrieben) ist hierbei besonders interessant, da man erkennen kann, wo es zu besonderen Verzögerungen auf der Strecke zum Ziel kommt.
      Der Mechanismus macht nichts anderes als im Header der Ping Pakete die Paketüberlebensdauer immer um 1 zu erhöhen, bis das Paket beim Ziel war. Sinn dabei ist, dass ein Server im INet, bei dem diese Paketlaufzeit abläuft dieses Ablaufen an die Quelle mitteilt.

      wenn ich also tracert bohramt.de eingebe (oder halt die IP von dem Server, auf dem ich spielen will) sendet mein PC als erstes ein Packet an bohramt.de mit der Paketlaufzeit (Lebensdauer) 1 los. Der erste Rechner, bei mir mein Router, zieht von der Laufzeit 1 ab, überprüft ob es NULL ist - ja ist es & meldet meinem PC - bei mir ist das Paket x angekommen, konnte es aber nicht weiter leiten, weil die Lebensdauer erschöpft war.
      Während dies passiert hat mein PC schon weitere Ping Pakete mit den Laufzeiten 2, 3, 4 ... losgeschickt. Mein Router zieht immer 1 ab und schickt sie weiter.
      Der nächste Rechner Richtung bohramt.de ist bei mir nun die DSL Gegenstelle der Telekom. Der Rechner da zieht vom ersten Paket (welches er erhält - also das zweite, was von meinem PC losgeschickt wurde) wieder 1 ab: 1 - 1 = 0 und verwift das Paket, schickt aber eine Meldung darüber wieder an meinem PC zurück.
      Das nächste Packet was die DSL Gegenstelle bekommt hat die Laufzeit 2 => 2 - 1 = 1 -> und schickt es weiter Richtung Bohramt.
      An den Paketlaufzeiten im tracerout könnt ihr nun erkennen, wo bei Euch besonders viel Zeit verbraucht wird, bis zum Ziel.
      So sieht das ganze bei mir aus:

      1 <1 ms <1 ms <1 ms 192.168.10.111
      2 1 ms 1 ms 1 ms 192.168.10.1
      3 43 ms 41 ms 41 ms 217.0.116.41
      4 40 ms 39 ms 39 ms 217.0.66.234
      5 41 ms 42 ms 41 ms 62.154.17.50
      6 41 ms 42 ms 42 ms pos-0-0.c12008gsr-1.frankfurt1.core.i-p-x.de [193.158.5.22]
      7 46 ms 44 ms 44 ms oc48-srp4-0.gsr320.nuernberg.gpf2.core.ip-exchange.de [212.123.127.18]
      8 45 ms 45 ms 44 ms ge1-2-941.rtr1.nuernberg.gpf.colo2.ipx-server.de [212.123.127.99]
      9 46 ms 45 ms 44 ms bohramt.de [80.190.246.248]


      Ok, ich gestehe, wer Ahnung hat erkennt, dass ich noch einen Gateway bei mir dazwischen geschaltet habe, also nicht direkt vom PC an den Router gehe.

      Hoffe das war aufschlußreich ;)
      Wenn alle Stricke reissen, häng ich mich auf. ;)

      "Nun liegst Du nieder,
      streckst alle Glieder,
      vom Glück Du träumst,
      das Du versäumst,
      wenn Du da liegst,
      und gar nichts kriegst."
      :idea: myself
      jo, gut geschrieben, was mir noch dazu einfällt:

      mat_forcedynamic is cheat protected
      mat_picmip geht nur bis 4

      mat_filtertextures&mat_filterlightmaps sind doch sehr gewöhnungsbedürftig (Augenkrebs ;P)

      und weil ich schon mehrfach gesehen hab, dass wer Probleme hatte sein Crosshair im Auge zu behalten...

      alias farbw "farbw1"
      alias farbw1 "cl_crosshaircolor 1; alias farbw farbw2"
      alias farbw2 "cl_crosshaircolor 2; alias farbw farbw3"
      alias farbw3 "cl_crosshaircolor 3; alias farbw farbw4"
      alias farbw4 "cl_crosshaircolor 4; alias farbw farbw5"
      alias farbw5 "cl_crosshaircolor 5; alias farbw farbw1"

      bind "a" "+moveleft; farbw"
      bind "d" "+moveright; farbw"
      bind "s" "+back; farbw"
      bind "w" "+forward; farbw"
      bind "MOUSE1" "+attack; farbw"

      dummes script, hilft dabei aber doch sehr :)

      du roockie....ich hab 1,8ghz cpu, 756ram, radeon 9800, xp, dsl mit fastpath....aber bei mir ruckelts stellenweise, vorallem wenn ich andere leute berühre oder starker schusswechsel is....denke irgendwie das es an cpu liegt, kann man da was machen?


      achja, neueste treiber für grafikkarte sind drauf




      Es gibt kein richtiges Leben im falschen.









      Tjo, das kommt drauf an ...

      Da fehlen aber noch ein paar Rechner-Details !

      ...

      Wenn ich jemanden berühre, und wenn viel los ist, wie z.B. Kugelhagel, viele Gegner, usw. dann ruckelts auch a bisserl, liegt wohl daran, das die Frames per Second stark volatil sind (schnell rauf und runter gehen)


      Abhilfe könnte folgendes schaffen, um die FPS zu erhöhen:

      die Grafikkarteneinstellung:

      alles auf hohe Leistung, und kein Anti-Aliasing, kein Anisotropes Filtern, usw.


      inGame-CSS-Video-Settings:

      Models: LOW
      Texture detail: LOW
      Water detail: Simple reflections
      Shader detail: LOW
      Anti-Aliasing: None
      Vertical Sync: Off
      Filtering Mode: Trilinear
      Shadow Detail: High (nützliche Schatten !)

      "dazu noch die test2.cfg ausführen, so als Prise !^^"

      Vielleicht hilfts !^^

      :))

      ("Ausserdem habe ich festgestellt, das ATI-Karten an manchen Stellen enorme Ruckler verursachen, wo Nvidia-Karten butterweich hinwegrendern ^^
      Hab ne Sapphire X800Pro getestet im Vergleich zu meiner, z.B. bei Aquamark. Die Ati ist in diesem Fall schneller(ca. 10000 Punkte mehr ~63000), aber an manchen Stellen, wenn z.B. das Schiffchen am Anfang über den Hügel flutscht, ruckelts bei der ATI gewaltig.")

      CUL8'er.

      ;)