Hi, könnt ihr mir eine kleine Verständinsfrage beantworten ? - Nehmen wir an ich hab fünf Programme (z.B. Email, Explorer etc. ) offen, die alle über Port 80 senden - woher weiß ein Paket dann welches Programm über Port 80 die Information erhalten soll ??? vielen Dank ! Gruß Tom
Der Zielport ist immer Port 80, der lokale Port ist aber (in Grenzen) beliebig! Dann hast du immer Tupel aus Quell- und Zielport und Welt schön.
Ein Client sendet nicht von Port 80 (das macht nur der Server). Er sucht sich einen lokal noch nicht verwendeten Port in einem Bereich aus, der nicht fest für ein bestimmtes Protokoll verwendet wurde. Daher hat jede Software eine für deine Ip einmalige Portnummer, somit lassen sich die Verbindungen auseinanderhalten.
Ok, ist es dann richtig: Der Router speichert sich, was für Anfragen er gesendet hat und ordnet diese dann wieder zu - oder meine Frage anders - warum brauche ich keinen Port freigeben, wenn ich Daten ( nach einem Senden ) empfangen will ? Also geht das dann so : von 2222 ---> 80 und dann kommt : 80- ---> 2222 wird angenommen. Jedoch: 80---> 2222 "einfach so" dann -> wird abgelehnt ? richtig? Gruß Tom
Jaha, Moment. Wo kommt den jetzt der Router her? Wahrscheinlich meinst du so einen "Homeroute", wie ihn wahrscheinlich fast jeder in der Ecke liegen hat? Die machen NAT: http://de.wikipedia.org/wiki/Network_Address_Translation
Das Paket weiß das gar nicht. Auf einem Port kann immer nur ein Programm gleichzeitig lauschen. Außerdem sendest du mit ziemlicher Sicherheit nicht über Port 80, du sendest vielleicht an Port 80. Gesendet wird normalerweise über einen Port >= 1024. Nehmen wir mal an, du hast sowohl den IE als auch den FF offen, und siehst dir auf beiden die gleiche Seite an. Dein IE schickt von deiner IP über deinen Port 10.000 (z.B.) eine Anfrage an den Server auf Port 80. Dein FF schickt von deiner IP über deinen Port 11.000 (z.B.) eine Anfrage an den gleichen Server auf Port 80. Der Server hat ja die IP und den Port, von dem die Anfrage kam. Und die Antwort schickt er dann an diese Adresse zurück. Also schickt er einmal die Seite an deine IP auf Port 10.000, und einmal an deine IP auf Port 11.000. Dein IE lauscht auf Port 10.000, und wenn eine Antwort auf diesem Port kommt, zeigt er die Seite an. Dein FF lauscht auf Port 11.000, und wenn der Server an diesen Port eine Antwort schickt, zeigt er sie an. Von den jeweils anderen Antworten bekommen die Programme gar nichts mit. Eigentlich ganz einfach... ;) MfG
Tom schrieb: > Also geht das dann so : > von 2222 ---> 80 > und dann kommt : > 80- ---> 2222 wird angenommen. > Jedoch: > 80---> 2222 "einfach so" dann -> wird abgelehnt ? > richtig? Was verstehst du unter "einfach so"? Zwischen deinem Browser und dem Webserver läuft die Übertragung per TCP. Da ist ein verbindungsorientiertes Protokoll, was bedeutet, daß dein Browser erst eine Verbindung zum Server aufbaut und dann zwischen den beiden Daten übertragen werden. Der Router hat diesen Verbindungsaufbau mitbekommen und weiß deshalb, zu welcher Verbindung die Pakete gehören. "Einfach so" kann man bei TCP keine Daten übertragen. Das ginge nur über UDP, und da ist es tatsächlich nicht ohne weiteres möglich, von außen etwas durch den Router zu senden.
Ein "Paket" muss das gar nicht wissen, weil es am port 80 nur ein Prozess gibt, das dort ein server socket geöffnet hat. Dieses Prozess (ein legitimer Webserver oder auch ein Trojaner :) ) nimmt jede Verbindung entgegen und entscheidet, wohin damit. Der Port selbst bleibt aber stets für die neue Verbindungen offen. Zum Überprüfen: probiere mal zwei solche Programme (z.B. IIS und Apache) gleichzeitig auf dem gleichen Port laufen zu lassen... klappt nicht.
Stefan B. schrieb: > Nehmen wir mal an, du hast sowohl den IE als auch den FF offen, und > siehst dir auf beiden die gleiche Seite an. > Dein IE schickt von deiner IP über deinen Port 10.000 (z.B.) eine > Anfrage an den Server auf Port 80. > Dein FF schickt von deiner IP über deinen Port 11.000 (z.B.) eine > Anfrage an den gleichen Server auf Port 80. Dann müsste ich, sofern ich eine Firewall einsetze, jedesmal eine Freigabe für diesen Port setzen, damit die Daten ausgehen bzw. empfangen werden können. Dies muss ich aber nicht, die Firewall ist aber aktiv.
Müsstest du auch, wenn der Firewallentwickler doof wäre und nicht wüsste, dass der Quellport beim Verbindungsaufbau dynamisch und vollkommen irrelevant ist, sprich wenn er nach diesem filtern würde. Da aber die Entwickler normalerweise halbwegs was von der Sache verstehen, funktionierts auch so.
timtom schrieb: > Stefan B. schrieb: >> Nehmen wir mal an, du hast sowohl den IE als auch den FF offen, und >> siehst dir auf beiden die gleiche Seite an. >> Dein IE schickt von deiner IP über deinen Port 10.000 (z.B.) eine >> Anfrage an den Server auf Port 80. >> Dein FF schickt von deiner IP über deinen Port 11.000 (z.B.) eine >> Anfrage an den gleichen Server auf Port 80. > > Dann müsste ich, sofern ich eine Firewall einsetze, jedesmal eine > Freigabe für diesen Port setzen, damit die Daten ausgehen bzw. empfangen > werden können. Dies muss ich aber nicht, die Firewall ist aber aktiv. Firewalls/Nat-Router lassen normalerweise Pakete die von 'innen' kommen ungehindert passieren. Und sie merken sich, dass da ein Paket von Innen/Port_10000 nach aussen ging. Wenn innerhalb einer vernünftigen Zeit eine Antwort von genau diesem 'aussen' nach Innen/Port_10000 eintrudelt, dann darf sie passieren. Schon vergessen? In jedem Paket steht drinnen von wem das Paket an wen geschickt wurde. Das genügt der Firewall/Nat-Router um zu entscheiden, ob das jetzt eine Antwort auf ein Paket war dessen Ursprung innerhalb seines zu überwachenden Netzes lag oder ob es sich um ein willkütlich an dich geschicktes Paket handelt.
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.