Hallo.
Ich habe mich in letzter Zeit mit UDP Hole Punching beschäftigt, da es ein sehr interessantes Thema ist.
So langsam verstehe ich, wie das Ganze funktioniert, aber ein paar Dinge bleiben noch unklar.
Also, so sieht es mit meinem Verständnis bisher aus:
Es gibt zwei Clienten, C1 und C2, und einen Server, S.
Der Server weiß die IP-Adresse und den Port der jeweiligen Clienten.
Nun möchte C1 zu C2 eine Verbindung aufbauen.
Dazu schickt C1 dem Server S eine Anfrage nach der IP und dem Port.
Daraufhin schickt S dem Client C1 die IP und den Port.
C1 schickt nun ein Paket an C2 über die erhaltenen Verbindungsdaten.
C1s NAT öffnet nun temporär seinen Port, damit die Antwort empfangen werden kann.
C2s NAT verwirft dieses Paket, da sein Port nicht offen ist, da kein Paket erwartet wird.
C1 weiß davon nichts und ist immer noch im Glauben, eine Antwort zu bekommen.
Nun informiert der Server C2, dass C1 etwas von C2 will und C2 schickt etwas zurück.
Das von C2 versendete Datenpaket kommt als erwartete Antwort durch.
So weit habe ich das Ganze verstanden (falls irgendwas an meiner Auffassung nicht stimmt, bitte ich, mich darauf hinzuweisen).
Das Problem: So, wie ich das sehe, müsste die obige Prozedur für jedes Paket wiederholt werden.
Allerdings heißt es oft, dass der Server nachher nicht mehr von Belang ist...?
Ich wäre sehr erfreut, wenn mich jemand ein wenig erleuchten könnte, wie das genau funktioniert.
Habe schon alle möglichen Erklärungen und Demonstrationen, die ich bei Google finden konnte, durch, und irgendwie werde ich nicht hunderprozentig schlau.
Danke schon mal im Voraus.
Ich habe mich in letzter Zeit mit UDP Hole Punching beschäftigt, da es ein sehr interessantes Thema ist.
So langsam verstehe ich, wie das Ganze funktioniert, aber ein paar Dinge bleiben noch unklar.
Also, so sieht es mit meinem Verständnis bisher aus:
Es gibt zwei Clienten, C1 und C2, und einen Server, S.
Der Server weiß die IP-Adresse und den Port der jeweiligen Clienten.
Nun möchte C1 zu C2 eine Verbindung aufbauen.
Dazu schickt C1 dem Server S eine Anfrage nach der IP und dem Port.
Daraufhin schickt S dem Client C1 die IP und den Port.
C1 schickt nun ein Paket an C2 über die erhaltenen Verbindungsdaten.
C1s NAT öffnet nun temporär seinen Port, damit die Antwort empfangen werden kann.
C2s NAT verwirft dieses Paket, da sein Port nicht offen ist, da kein Paket erwartet wird.
C1 weiß davon nichts und ist immer noch im Glauben, eine Antwort zu bekommen.
Nun informiert der Server C2, dass C1 etwas von C2 will und C2 schickt etwas zurück.
Das von C2 versendete Datenpaket kommt als erwartete Antwort durch.
So weit habe ich das Ganze verstanden (falls irgendwas an meiner Auffassung nicht stimmt, bitte ich, mich darauf hinzuweisen).
Das Problem: So, wie ich das sehe, müsste die obige Prozedur für jedes Paket wiederholt werden.
Allerdings heißt es oft, dass der Server nachher nicht mehr von Belang ist...?
Ich wäre sehr erfreut, wenn mich jemand ein wenig erleuchten könnte, wie das genau funktioniert.
Habe schon alle möglichen Erklärungen und Demonstrationen, die ich bei Google finden konnte, durch, und irgendwie werde ich nicht hunderprozentig schlau.
Danke schon mal im Voraus.