Wie kommen Multiplayerspiele an der Firewall vorbei?

... komplette Frage anzeigen

3 Antworten

Zum Punkt: Wie machen es die Großen Spielehersteller, dass man als Client ohne Portfreigabe mit einem Server kommunizieren kann?

Das "Problem" hat eigentlich eine andere Ursache - und auch nur indirekt was mit einer Firewall zu tun.

Typischerweise hängt ja an einem DSL-Anschluß ein Router / WLan-Router.

Dieses Router bekommt vom Provider genau eine TCP/IP Adresse zugewiesen - innerhalb des Haus wollen aber nun mehrere Geräte ins Internet.

Wenn Du z.B. auf dem Smartphone eine Webseite abrufen willst dann ist das Versenden der Anfrage noch kein Problem - aber wenn dann die Antwort vom Webserver zurückkommt muß der Router ja nun wissen an wen er die Antwort schicken soll - also ans Smartphone, an den heimischen PC oder was auch immer.

Um das sicher hinzubekommen benutzt so ein Router Networkadresstranslation.
Ein IP-Paket besteht ja aus einer 4 Byte IP-Adresse und einer 2-Byte Port Nummer - und zwar jeweils für Absender und Empfänger.

An der IP-Adresse des Empfängers kann der Router nichts ändern - das Paket soll ja schließlich ankommen. Ebensowenig an der Port-Adresse des Empfängers - den ein HTTP-Server ist ja z.B. standardmässig nur auf Port 80 erreichbar.
Die IP-Adresse des Absenders darf der Router auch nicht verändern - weil sonst die Antwort nie zurückkommen würde.
ABER
die Port-Adresse des Absender kann er ändern .

da es 65536 verschiedene Port-Adressen gibt kann der Router dadurch praktisch für 65536 ausgehende Verbindungen anhand der Portnummer merken von welchem internen Gerät sie geschickt wurden - und entsprechend die Antwort dann wieder an das jeweilige interne Gerät weiterleiten.

Wenn aber eine Verbindung nicht vom Router selbst aufgebaut wird - sondern die Anfrage aus dem Internet kommt dann klappt der Trick nicht mehr - denn woher soll der Router in dem Fall wissen an welches interne Gerät er diese Anfrage weiterleiten soll.

Spielehersteller lösen das dadurch, dass sie selbst einen Server bereitstellen zu dem alle Spiele-PCs von sich aus die Verbindung aufbauen - aber nicht umgekehrt.
Dadurch klappt der Trick mit Networkaddresstranslation wieder.

Versucht dein Spiel hingegen eine Verbindung zu einem anderen PC im Internet herzustellen, dann ist das für den Router des anderen PCs eine eingehende Verbindungsanfrage - mit der er nichts anfangen kann und die auch potentiell gefährlich sein könnte.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von oesle1
19.03.2016, 19:52

Ok danke :) , so funktioniert ja dann wahrscheinlich TCP.
Aber bei UDP, welches ich für schnelle Pakete wie Position brauche wird ja keine Verbindung aufgebaut. Wie funktioniert das dann??

0

Ohne Portfreigabe können auch kommerzielle Titel nicht funktionieren. Es gibt Standard-Ports, die freigegeben sind. Einige Hersteller haben auch eigene Ports. Such doch mal nach Port 666 ;-)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von oesle1
18.03.2016, 20:20

Das heißt ich kann diesen Port für mein Spiel benutzen?
Und ist der Port zwingend auf allen Router auf?

0

Anstatt Messages vom Server an die Clients zu schicken, schickt der Client einen Request an den Server, und der Server antwortet, wenn er was zu sagen hat.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von oesle1
18.03.2016, 20:17

Aber werden beim Client die Antworten von dem Server nicht an der Firewall abgeblockt?

0

Was möchtest Du wissen?