Frage von DIGGER6, 30

Programmkommunikation per Netzwerk. Wodurch finden sich Programme?

Als Neueinsteiger in das Thema frage ich mich durch was genau sich zwei Programme die über TCP/IP Netzwerk kommunizieren sollen sich finden? Wenn zum Beispiel Programm A1 mit Programm A2 kommunizieren soll und es aber auch noch Programm B1 und B2 sowie C1 und C2 gibt die auch miteinander kommunsizieren wollen, durch was wird gesichert das die Programme mit dem richtigen Gegenspieler kommunizieren?

Antwort
von Mikkey, 5

Wenn man kein Bastelwerk hinterlassen will, verwendet man so etwas wie SLP (Service Location Protocol).

Ansonsten kann man den zu verbindenden Rechner über seinen Namen oder seine IP identifizieren. Die Server-Seite des Programmpaares bietet ihren Dienst dann unter einem bestimmten Port an. Insbesondere in großen Netzwerken gibt es dann Kollisionen und ein Konfigurations-Chaos, deshalb der Ausdruck Bastelwerk.

Antwort
von rharlaf1, 11

Programme können durch Broadcast's oder Multicast's zu einander finden. Das funktioniert aber nur in einem kleinen Netz.

Besser geht es, wie LeonardM bereits geschrieben hat, über einen Server. Dazu muss das Programm aber die IP-Adresse oder den DNS-Namen kennen, um sich mit dem Server zu verbinden.

Um die Verbindungen auf einem Rechner den Anwendungen zuordnen zu können, gibt es Portnummern. Die Kombination IP-Adresse und Portnummer stellt so eine eindeutige Zuordnung zu einer Verbindung dar.

Es gibt Well known Portnummern, die per Standard einem Protokoll zugeordnet sind (z. B. http = port 80, dns = port 53). Insgesamt sind 65536 Ports möglich.

Es gibt auch Anwendungen, die mehr als einen Port verwenden. (z.B. FTP, BOOTP  (DHCP), RTP)

Antwort
von LeonardM, 19

Durch den port. Server hört zb auf port 1234 und client weiss er muss anfragen zu ip 1.1.1.1 schicken auf port 1234. Server speichert temporär natürlich die verbindungsdaten um wieder antworten zu können auf die anfrage und schliesst jenachdem obs n stream ist oder nicht die verbindung danach wieder

Kommentar von DIGGER6 ,

Ok danke, heißt das jedes Programm besetzt einen eigenen Port? Also ein Port kann nur von einem Programm genutzt werden? Wieviele Programme können denn parallel eigene Verbindungen aufbauen?

Kommentar von flaglich ,

deine Schlussfolgerungen sind logisch, treffen aber nicht zu. Manche Protokolle habe mehr als einen Port. Und manche Server laufen hinter einem Wrapper, der die Verteilung auf die Programme übernimmt. So wie du das Wort Programme benutzt ist es netzwerktechnisch nicht ganz.

Die Anzahl der gleichzeitigen Verbindungen ist durch die Kapazität des Servers und die Konfiguration begrenzt.

Kommentar von LeonardM ,

serveranwendungen belegen einen port.ein tcp server ein port. ein client kann x beliebig viele verbindungen aufbauen (bzw soviele wie es die hw eben zulässt) auf verschiedene ports und verschiedene ips oder auch verschiedene sessions auf selbe ziel. dabei belegt der client allerdings intern pro socket dann einen port auf den der router eben wieder die antwort sendet. das passiert allerdings "automatisch" vom os zumindest meistens

Kommentar von LeonardM ,

ja gut da hast du recht :D theoretisch betrachtet gäbs aber keine Grenzen bis auf die ressourcen was gleichzeitige verbindunden betrifft. aber mich würde interessieren welche protokolle zwingend mehr als einen port haben :o (soll keine Provokation sein allerdings bin ich auf die aussage noch nicht gestossen und würde mich danach gerne mehr darüber informieren:D)

Kommentar von RakonDark ,

ftp benutzt ein übertragungsport und ein kontrollport .

Kommentar von LeonardM ,

oh :D okay danke

Antwort
von tDoni, 15

Durch die IP und den dazugehörigen Port. Ein Webserver lauscht zum Beispiel (Standardmäßig) auf Port 80 und hat natürlich eine IP.

Im Zusammenhang mit Websites bzw. Domain zu IP könnte dich auch das hier https://de.wikipedia.org/wiki/Domain_Name_System intressieren.

Keine passende Antwort gefunden?

Fragen Sie die Community