Forum: PC-Programmierung Frage: Warum können z.B. zwei Explorer auf Port 80 gemeinsam zugreifen ?


von Tom (Gast)


Lesenswert?

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

von ozo (Gast)


Lesenswert?

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.

von Uwe .. (uwegw)


Lesenswert?

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.

von Tom (Gast)


Lesenswert?

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

von ozo (Gast)


Lesenswert?

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

von ozo (Gast)


Lesenswert?

r klemmt

von Stefan B. (Gast)


Lesenswert?

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

von Rolf Magnus (Gast)


Lesenswert?

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.

von PI314 (Gast)


Lesenswert?

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.

von timtom (Gast)


Lesenswert?

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.

von der mechatroniker (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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
Noch kein Account? Hier anmelden.