Wie werden die Pakete bei Online-Multiplayer-Spielen, die UDP verwenden, über das Internet zwischen den Netzwerken übermittelt? So wie ich das verstehe, müssten Clients die Portweiterleitung auf ihren Routern aktivieren, damit die Pakete auf ihrem Computer ankommen. Ist das das, was große Online-Spiele (WoW, Diablo usw.) von den Spielern verlangen?
Ich habe zum Beispiel kürzlich einen Server erstellt, der UDP-Verkehr verarbeitet. Er gibt einfach alles zurück, was ein Absender gesendet hat. Ich habe ihn auf einem Server im Internet bereitgestellt. Ich kann die Echos nur dann an den Absender zurückschicken, wenn ich die Portweiterleitung aktiviere. Das funktioniert jedoch nicht, wenn sich zwei Absender im selben lokalen Netzwerk befinden.
Antwort1
Kurze Antwort: NAT-Verbindungsverfolgung
Man sollte bedenken, dass es sich bei der überwiegenden Mehrheit der Router im IPv4-Internet um NAT-Router handelt.
Die meisten NAT-Implementierungen führen intelligentes Tracking durch. Wenn Sie UDP von einem internen Client an einen beliebigen Ort senden, verfügen Sie über einen Zielport und einen Quellport. Wenn Datenverkehr mit umgekehrten Ports eingeht, wird dieser Datenverkehr an Ihren Client zurückgeleitet und von den meisten Firewalls zugelassen.
NAT/Firewalls mit Tracking erkennen diese Pakete als zusammengehörig und leiten sie zurück.
Beispiel basierend auf Kommentaren mit UDP server
am Port5000
- Client sendet ein Paket für
server:5000
, Quelleclient:5001
- Der erste NAT-Router sieht ein Paket mit Quell-IP und Port
client:5001
sowie Zielserver:5000
. - Der Router sendet dies auf den Weg und wird
NATip:NATport
- Der Server empfängt dies und erstellt eine Antwort mit
NATip:NATport
der Quelle vonserver:5000
- NAT empfängt dies und hat ein Quell-/
server:5000
ZielpaketNATip:NATport
, das mit dem gesendeten Paket übereinstimmt (Quelle und Ziel sind jedoch vertauscht). - NAT sendet dies
client:5001
noch mit Quelleserver:5000
Die Quell-IP+Port- und Ziel-IP+Port-Kombination ergibt eine Kombination, die verfolgt werden kann. (Es gibt weitere Details, aber dies sind die Grundlagen.)
Weitere LektüreAber ich sollte zu diesem Thema bessere Unterlagen ausgraben und mich nicht nur auf anekdotische Beweise aus dem berufen, was ich gesehen und erlebt habe.