# Welche Protokolle bei Multiplayerspiele



## Jorgo22 (1. Juni 2007)

Hallo Leute,

ich schreibe eine Diplomarbeit und behandle auch das Thema, Netzwerktechniken bei einem Multiplayerspiel. Würde mich freuen wenn mir jemand Infos dazu geben könnte!

Vielen Dank


----------



## Dennis Wronka (1. Juni 2007)

Vor allem in Sachen Gaming ist es mit der Netzwerkkommunikation nicht so einfach, denn es gibt hier keine Standards. Jedes Spiel hat im Grunde ein eigenes Protokoll, denn das Protokoll ist davon abhaengig was wie uebertragen werden muss.
Natuerlich gibt es auch mehrere Spiele mit gleichen (oder zumindest nur leicht abgewandelten) Protokollen, das sind dann aber in der Regel Spiele mit gleichen Engines. Unreal Tournament und Command and Conquer werden aber wohl kaum irgendwelche Gemeinsamkeiten haben, und auch UT und schon Doom3 duerften grundlegend unterschiedlich sein.

Um ein grundsaetzliches Verstaendnis fuer bestimmten Traffic zu bekommen ist es erstmal wichtig zu wissen wo sich dieser abspielt. Wird TCP oder UDP genutzt? Welche Ports kommen zum Einsatz?
Mit diesen Informationen bewaffnet kann man sich dann mit Wireshark mal ansehen was da so verschickt wird und dann evtl. auch eine Aussage ueber diesen Traffic treffen, wenn denn ueberhaupt etwas verstaendliches dabei herumkommt.


----------



## Jorgo22 (1. Juni 2007)

Hallo Dennis,

danke für deine schnelle Antwort.
Vielleicht kannst du die ein oder andere Beantworten:

Es ist also eine Anforderung an die genutzte Engine die auf das Protokoll schließen lässt? 
Wie finde ich heraus wer welches Protokoll benutzt hat?
Werden andere als TCP / IP genutzt?
Asynchrone-/Synchron Übertragung?
Welches Fehlerprotokoll (ZRP?)
Werden Quittierungsdienste aktiviert? Also
- unbestätigter verbindungsloser Dienst?
- bestätigter verbindungsloser Dienst?

Hmm hab noch viel mehr Fragen. Danke im Vorfeld für deine/eure Mühen!

Jorgo


----------



## Dennis Wronka (1. Juni 2007)

Es wird nicht nur TCP genutzt, sondern zum Teil auch UDP.
Der Sinn liegt darin, dass TCP ja verbindungsorientiert arbeitet und verlorene Pakete erneut uebertragen werden muessen um die Konsistenz der Verbindung zu gewaehrleisten.
Dies ist dann noetig wenn es wirklich wichtig ist, dass alle Daten uebertragen werden, geht in der Regel auf Kosten der Geschwindigkeit, denn es gehen ja immer wieder mal Pakete verloren.
UDP hingegen kommt ohne feste Verbindung aus und sendet die Daten einfach drauf los. Ob die Daten ankommen oder nicht ist dabei nebensaechlich, hier zaehlt die Performance.
Daher duerfte bei Echtzeitspielen wohl vorzueglich UDP zum Einsatz kommen, denn oft ist es nicht so wichtig ob wirklich jedes einzelne Paket ankommt, sondern eben die Uebertragungsrate. Dadurch kann es bei Shootern z.B. mal passieren dass jemand von einem Punkt zum anderen springt und nicht fluessig dorthin laeuft. 

Wie gesagt, Wireshark ist auf jeden Fall ein guter Ansatz, und das Programm kann Dir auch helfen herauszufinden wo der Traffic ablaeuft, vorausgesetzt Du versuchst anderen unbekannten Traffic zu vermeiden. Ansonsten suchst Du nach der Nadel im Heuhaufen. 

Heutzutage wird auch immer auf IP aufgesetzt. Frueher, als IP-Netze in heimischen Umgebungen noch nicht so verbreitet waren wurde auf Novells IPX/SPX gesetzt. Ein gutes Beispiel dafuer sind z.B. Doom 1 und 2.
Der Vorteil daran war, dass es fuer den User schlichtweg einfacher zu konfigurieren ist, denn man muss sich nicht mit der Vergabe von IP-Adressen rumschlagen. 

Heutzutage setzt aber wohl niemand mehr auf diesen Weg der Uebertragung, IP hat den Kampf gewonnen und ist nun auch in wohl jedem Heimnetzwerk anzutreffen.

Zu Deinen anderen Fragen kann ich Dir leider so nichts sagen da ich mich damit nicht genau beschaeftigt hab.


----------



## Jorgo22 (2. Juni 2007)

Hallo Dennis,

OK, das mit dem Programm ist ein sehr guter Tipp. Werde das mal ausprobieren! 
Hoffe das ich trotzdem noch ein paar Fragen stellen kann. 
Danke dir!

Jorgo


----------



## AndreG (3. Juni 2007)

Dennis Wronka hat gesagt.:


> Um ein grundsätzliches Verständnis für bestimmten Traffic zu bekommen ist es erstmal wichtig zu wissen wo sich dieser abspielt. Wird TCP oder UDP genutzt? Welche Ports kommen zum Einsatz?



Ich hoffe nicht, das es je ein Spiel geben wird, was auf UDP setzt wenn es Echtzeit ist weil, du dann nie glücklich wirst .

Was man da auch noch behandeln könnte wäre halt NAT für die Games und die Diversen unterschiedlichen Netzwerk-Übertragungsstandards. IP, IPX usw.

Synchron Übertragung wirst du nicht finden, da wir in eine TCP-IP Netz sind. Sprich erst kommt das Paket dann die Antwort, auch wenn es für den User so aussieht als ob es Echtzeit wäre.

Quittierungsdienste sind lediglich die von TCP sonst wären mir keine Bekannt in bisherigen Games.


----------



## Matthias Reitinger (3. Juni 2007)

AndreG hat gesagt.:


> Ich hoffe nicht, das es je ein Spiel geben wird, was auf UDP setzt wenn es Echtzeit ist weil, du dann nie glücklich wirst


Also irgendwie sind mit Quake sehr viele Leute glücklich geworden…


----------



## AAF (3. Juni 2007)

Counterstrike (CS) setzt beispielsweise auf eine Mischung von TCP/IP und UDP.


----------



## AndreG (3. Juni 2007)

Wobei bei CS die UDP Ports zu Server- ,Steam- usw. Kommunikation gedacht sind.

Mit Quake glücklich naja. Wenns das Netz erlaubt ja sonst laggte es gerne tierisch. (Meine Erfahrung).

Mfg Andre


----------



## Jorgo22 (4. Juni 2007)

Hallo Leute,

danke für die Antworten und die kleine Diskussion. Ich bin echt über jeden Tipp dankbar!!
Denke auch das es für die Übetragung keinen Quittierungsdienst geben kann, genau so wie bei den Streamübertragungen von Videos! Da ist es nicht so schlimm wenn es Datenpaket nicht vollständig ankommt, und es nur einen "Ruckler" verursacht!


----------



## AndreG (4. Juni 2007)

Jorgo22 hat gesagt.:


> Da ist es nicht so schlimm wenn es Datenpaket nicht vollständig ankommt, und es nur einen "Ruckler" verursacht!



Naja es ist schon schlimm wenn Pakete verloren gehen, da ja nicht nur deine Positionsdaten versendet werden sondern auch ob man feuert und wohin. Und wenn das verloren geht hat man nen großes Problem 

Ne Quittierungsdienst ist schon vorhanden, nämlich der von TCP.


----------

