Weiterleitung eines DSL Routers



  • Hi,

    wie das mit UDP funktioniert, würde mich jetzt aber doch auch mal interessieren. Ich habe schon Spiele, die das UDP-Protokoll verwenden, über meinen NAT-Router online gezockt, ohne mir die Ports auf meinen Rechner zu mappen und die UDP-Pakete sind trotzdem auf meinem PC angekommen.
    Woher weiß der Router, dass die zu meinem PC müssen?

    ChrisM



  • ChrisM schrieb:

    wie das mit UDP funktioniert, würde mich jetzt aber doch auch mal interessieren. Ich habe schon Spiele, die das UDP-Protokoll verwenden, über meinen NAT-Router online gezockt, ohne mir die Ports auf meinen Rechner zu mappen und die UDP-Pakete sind trotzdem auf meinem PC angekommen.
    Woher weiß der Router, dass die zu meinem PC müssen?

    Weil Dein Spiel zuerst an Deinen Spielserver geschickt hat. Und wenn der dann kurz darauf antwortet, is' klar, wohin die Päckchen müssen.
    Genauso wie der Browser, der eine Anfrage an www.sex.de stellt. Kommt daraufhin von dem eine Antwort, schickt der Router die weiter.
    Unangeforderte Päckchen von fremden Servern (oder Trojanern z.B.) werden ignoriert.
    Das hat nicht speziell mit UDP zu tun.

    TriPhoenix schrieb:

    (man kann es unter Umständen als ISP durchaus von außen an den IP-Sequenznumemrn erkennen, das macht aber in der Praxis wohl keiner).

    Da würd' ich mich nicht drauf verlassen. Bei Flatrates, die z.B. keine mehreren PCs zulassen... naja... 🙄 :p



  • @Sgt. Nukem: Nein, wenn ich eine Webseite aufrufe, ist das doch was ganz anderes. Da wird eine TCP-Verbindung erstellt und der Router mappt den lokalen Port der TCP-Verbindung so, dass er einmalig ist und so jedes Datenpaket eindeutig einer TCP-Verbindung zugeordnet wird. Aber UDP ist ja verbindungslos und ich hab auch schon gleichzeitig mit meinem Bruder über den selben Router auf dem selben Gameserver gezockt.

    ChrisM



  • @chrism
    dass keine direkte verbindung aufgebaut wird heißt doch nicht, dass die ip nicht mitgesendet wird. wie sollte der server denn sonst wissen wer überhaupt spielt und wo er die daten hinsenden muss?



  • Hi,

    schon klar, aber wie konnten dann mein Bruder und ich gleichzeitig mit der gleichen IP auf dem gleichen Server zocken?

    ChrisM



  • afaik verhält es sich so, dass der router intern eine tabelle führt. dabei wird den portnummern ab 60000 eine virtuelle verbindung zugewiesen und diese wird mit beim absender angegeben. wenn jetzt ein paket zurückkommt sieht er in der tabelle an der portnummer welche ursprüngliche ip die anfrage durchgeführt hat und kanns wieder weiterleiten.

    korrigiert mich bitte wenn ich grade irgendwelchen scheiß erzählt hab 😃 *g*



  • Der Client baut eine verbindung zum Server auf. z.B. über Port 80.
    Der Server akzeptiert die Verbindung und teilt dem Client nun einen Port zu. z.b. 45000
    Der Socket kommuniziert dann weiter auf Port 45000 und Port 80 ist wieder frei zum akzeptieren weiterer Verbindungen.
    Das Packet kommt vom Client zum Router mit der Internen IP-Adresse. Der Router (Masquerade) tauscht die interne IP-Adresse auf mit seiner externen aus und sendet das Packet weiter. Kommt ein Packet von Server zurück weiß der Router (Port und seine Liste der Verbindungen) wo es hin soll.
    Hier ist keine eigene Einstellung auf dem Router erforderlich da von innen eine Socket besteht. Sollte von außen etwas ankommen nimmt der Router dieses Packet entgegen und schau in seiner Liste nach ob eine Verbindung besteht bzw. eine Weiterleitung auf einen internen Port/IP eingerichtet ist.(Port-Forwarding) Da dies nun nicht der Fall ist verwirft er das Packet.

    Fazit: Die eigentliche Socketverbindung findet niee über den ursprünglichen Port statt sonst könnte ja kein connect mehr stattfinden da der Server nicht mehr auf Listen gehen kann.



  • Unix-Tom schrieb:

    Der Client baut eine verbindung zum Server auf. z.B. über Port 80.
    Der Server akzeptiert die Verbindung und teilt dem Client nun einen Port zu. z.b. 45000
    Der Socket kommuniziert dann weiter auf Port 45000 und Port 80 ist wieder frei zum akzeptieren weiterer Verbindungen.

    [..]

    Fazit: Die eigentliche Socketverbindung findet niee über den ursprünglichen Port statt sonst könnte ja kein connect mehr stattfinden da der Server nicht mehr auf Listen gehen kann.

    Nein, dem Widerspricht eindeutig das was durch mein Kabel geht 🙂 Die Verbindung bleibt auf Port 80. Der Server kann die Verbindungen ja am sendenden Clientport auseinanderhalten. Und neue Verbindungen können trotzdem problemlos laufen, denn ein neues SYN an Port 80 bedeutet eine neue Verbindung im Gegensatz zu Daten auf Port 80, die anhand des Clientports dem Prozess zugeordnet werden.
    Und ich denke so machens die Router dann auch, am Clientport identifizieren.



  • Ich bin fasziniert was manche leute hier drin für ne Phantasie haben 😮 😮 😮

    ganz beiläufig funktioniert es in einem Hardware Router wie in einem Software Router z.B. bei Linux/Unix über Iptables , Port Forwarding und Ip Masquerading ... 👍



  • 1ntrud0r schrieb:

    Ich bin fasziniert was manche leute hier drin für ne Phantasie haben 😮 😮 😮

    Wieso? Das meiste klang bisher halbwegs plausibel (bis auf die angenommene http-verbindung auf nem anderen port 😉 ).

    ganz beiläufig funktioniert es in einem Hardware Router wie in einem Software Router z.B. bei Linux/Unix über Iptables , Port Forwarding und Ip Masquerading ... 👍

    Ja, die frage ist aber ja WIE das genau geht 🙂


Anmelden zum Antworten