Hallo Ich beschäftige mich zur Zeit ein wenig mit der Netzerkprogrammierung. Dabei bin ich auf etwas gestoßen, dass mir nicht ganz klar ist. Und zwar habe ich mir die folgende Situation überlegt: 1. Ich habe im Internet einen Server den ich z.B. über den Port 1000 ansprechen kann. 2. Auf der anderen seite habe ich einen Client, der hinter einem Router sitzt und auf den Server über Port 1000 zugreift. 3. Jetzt ist der Client mit dem Server auf Port 1000 verbunden und es findet eine Übertragung in beide Richtungen statt. 4. Da der Router die Verbindung in beide Richtungen zulässt, müsste es doch möglich sein auf eine Serveranwendung(läuft auf dem Client), die mit Port 1000 arbeitet, hinter dem Router zuzugreifen. Meine Frage: Ist meine Überlegung auch Praktisch umzusetzen, oder habe ich etwas grundlegendes übersehen, dass meine Idee zunichte macht. Einen schönen Samstag Abend Jasper
Jasper schrieb: > 4. Da der Router die Verbindung in beide Richtungen zulässt, müsste es > doch möglich sein auf eine Serveranwendung(läuft auf dem Client), Was denn nun? Client oder Server? > die mit Port 1000 arbeitet, hinter dem Router zuzugreifen. Port 1000 auf welcher Seite? Beide Kommunikationspartner haben einen Port.
Hi also zuerst verbimdet sich der Client(hinter dem Router) mit dem Server im Internet, und wenn die Verbindung dann steht, wird af dem Client hinter dem Router eine Serveranwendung gestartet, die auf Port 1000 lauscht. Da der Router ja für die erste Verbindung den Port 1000 in beide Richtungen durchlassen muss, sollte es jetzt möglich sein aus dem Internet über Port 1000 auf die Serveranwendung hinter dem Router zuzugreifen. Gruß Jasper
Jasper schrieb: > Da der Router ja für die erste Verbindung den Port 1000 in beide > Richtungen durchlassen muss, sollte es jetzt möglich sein aus dem > Internet über Port 1000 auf die Serveranwendung hinter dem Router > zuzugreifen. Nein, denn der Router ist ja auch nicht blöde. Der lässt nur Pakete durch, die sich konkret auf die eine Verbindung beziehen, und nicht blind einfach alle bezogen auf den Port.
Nein, das funktioniert so nicht, weil sich Nat-Router (das sind die üblichen Heimgeräte) grundsätzlich die Zuordnung von Quelle und Ziel merken. Aber Die Idee als solche funktioniert schon, nur halt anders - das Zauberwort ist 'UDP Hole Punching' [1] bzw. 'TCP Hole Punching' [2]. Die 'saubere' Lösung ist allerdings das Einrichten einer entsprechenden Forwarding-Regel am Router, nur das funktioniert zuverlässig. HTH [1] http://en.wikipedia.org/wiki/UDP_hole_punching [2] http://en.wikipedia.org/wiki/TCP_hole_punching
Hallo nochmal Vielen Dank für eure schnellen Antworten. Dann werd ich mich mal näher mit den beiden Links Befassen! schönen Abend noch Jasper
Also. Ein Server lauft immer und wartet auf eine Verbindung von aussen, der Server braucht daher ein Port-forward auf seinem Router. Ein Client wird gestartet und initiert eine Verbindung zu einem Server. Da seine Anfrage von Innen nach auseen geht, ist sein Router transparent. Wenn der Client seine Aufgabe geloest hat wird er beendet.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.