TCP/UDP Kommunikation

Tockra

Lt. Commander
Registriert
Dez. 2008
Beiträge
1.063
Hallo,

ich weiß nicht genau, ob das hier rein passt, aber ich stell die Frage einfach mal.

Bei einer TCP und UDP Verbindung spricht man den Server ja bekanntlich über eine IP Adresse und einer Portnummer an.
Die Clientsockets bekommen auch eine Portnummer zugeordnet, damit die Antworten von den Servern an den richtigen Prozess gehen können.

Nun stelle ich mir die Frage, wie genau das funktionieren soll, da ja jeder Client an einem Router hängt, der alle Ports nach außen sperrt, so dass man eigentlich wenn man einen Client über einen Port erreichen will den Port explizit im Router angeben muss, damit der Router weiß, zu welchem Client er die ankommenden Verbindungen weiterleiten muss.

Wie genau funktioniert dann eine ganz normale client/server Kommunikation ?


Gruß
T
 
Das funktioniert weil sich der Router merkt welcher Client mit welchen Ports wohin kommuniziert und die darauf folgenden Antworten des Server wieder dem richtigen Client zuordnen kann. siehe NAT

Weiterleiten muss man nen Port nur wenn von Außen eine Verbindung aufgebaut werden soll.
 
Ist richtig. Bei Wikipedia ist das auch gut erklärt
 
Masamune hat eigentlich schon alles erklärt. Der Router merkt sich die Absendeadresse des Pakets und hält sozusagen die Tür für diese Verbindung offen. Wenn allerdings von außen unangemeldet eine Verbindung kommt, kann der Router ohne Portweiterleitung nichts damit anfangen und blockiert.
Der entscheidende Aspekt ist also die Verbindungsrichtung bzw. von welcher Seite die Verbindung initiiert wurde. Ausgehende Verbindungen (zB beim Aufrufen von computerbase.de) lässt der Router in der Regel immer zu, während eingehende Verbindungen (zB Einbruchsversuche von Hackern oder auch der Zugriff von außen auf das heimische NAS) grundsätzlich blockiert werden, wenn keine explizite Portweiterleitung definiert wurde.


Das ist der Grund warum zB TeamViewer fast immer und überall funktioniert. Im Gegensatz zu klassischen Remote Desktops, die auf Server- bzw. Client-Anwendungen basieren (Server wartet auf eingehende Anfragen, Client stellt die Verbindung her) und vom Router blockiert werden, stellen bei TeamViewer sowohl der Server als auch der Client aktiv eine ausgehende Verbindung zum TeamViewer-Zentral-Server her. Aus Sicht des Routers sind beides ausgehende Verbindungen und werden nicht blockiert.
 
Zurück
Oben