Hallo Christian,
ich will aber wissen, wie die net.exe eine nachricht an einen rechner
übermittelt.
Es nimmt den Befehl zum Arbeiten entgegen, verpackt das in einem ihm
angenehmen Datenformat, sagt dem für den Netzwerk zuständigem Teil des
Betriebssystems, "Du ich will da was senden und zwar dieses Päckchen
an die und die Adresse." Dieser Teil sendet das dann an den Computer in
diesem Netzwerk mit der Adresse 127.0.01, in TCP/IP-Netzen zerlegt er bei
langen Nachrichten das ganze in einzelne Päckchen.
also wie es den anderen rechner sucht und dem dann die daten übergibt.
Jedes TCP/IP Päckchen hat außer den in sich enthaltenen Daten auch noch
die Ziel- und die Absenderadresse. Dies ermöglicht den Routern auf dem
Weg des Päckchens durchs (Inter-) Netz ein korrektes Weiterreichen
anhand von Routingtabellen.
Wenn das Päckchen dann am richtigen Rechner angekommen ist, empfängt das
Betriebssystem dieses und entpackt den TCP/IP-Mantel. Dann guckt es sich
dieses Päckchen genauer an und wenn es nicht zu denen gehört, die es
entgegennimmt (Mein Rechner, ein Mac, nimmt zum Beispiel keine net send
Nachrichten entgegen, gottseidank), dann vergißt es es. Wenn doch, dann
werden die Daten an das richtige laufende Programm weitergereicht. Dieses
nimmt dann die Informationen aus seinem Datenformat und tut irgendetwas
damit. Zum Beispiel sie in einem Fenster auf dem Bildschirm darzustellen.
oder wie macht dieser windows messenger das?
Ebenso, nur gehen seine TCP/IP-Pakete meines Wissens erst an einen zentralen
Computer, einen Server der Firma Microsoft. Der sendet diese dann an den
Empfänger weiter, wenn dieser vorher dem Server kundgetan hat, daß er
online ist und damit auch die aktuelle dynamische IP-Adresse.
oder wie macht icq das??
Im Prinzip ebenso wie der Windows Messenger.
oder diverse chatprogramme??
Ach so. IRC braucht auch einen zentralen Server.
ich will halt wissen nach welchem algorythmus das gemacht wird...
Das Zauberwort heißt hier nicht Algorithmus, sondern Protokolle. Wenn
verschiedene Rechner in einem Netz zusammensind, müssen diese die gleiche
Sprache sprechen. Diese Sprache nennt man Protokolle, im Falls des
Internets ist das TCP/IP. Dies ist das grundsätzliche Protokoll zur
Übermittlung von Daten von einem Computer zum anderen.
Diese Daten können aber noch in weitere Protokolle verpackt sein, je nach
welchen Programm sie weiterverarbeitet werden sollen. Ein Beispiel:
Wenn Du eine Adresse in Deinen Webbrowser eintippst, dann werden wieder
Protokolle genutzt (Ich lasse jetzt mal den Prozeß der Umwandlung der
URL in eine IP-Adresse weg). Der Webbrowser benutzt das Protokoll HTTP
und stellt darin eine Anfrage an den Webserver. Das sieht im simpelsten
Fall ungefähr so aus:
GET http://www.example.org/verzeichnis/datei.html HTTP/1.1
Dieser HTTP Befehl wird wieder in ein TCP/IP-Päckchen verpackt und diese
werden dann in konkrete Signale übersetzt, die dann übers Kabel rausgehen.
(Eventuell gibt es auf der Kabelebene auch noch andere Protokolle, die
wiederrum die Päckchen einpacken, fehlerkorrigierendes und so.)
Wenn das dann wieder beim Webserver ankommt, entpackt der erst den
TCP/IP-Mantel, guckt sich dann den HTTP-Befehl an, tut das darin
verlangte, wenn möglich und schickt dann über HTTP wieder was (eventuell
eine HTML-Datei, eventuell ein Bild) zurück, das dann wieder in TCP/IP
verpackt wird und so weiter und so fort.
Als Schichtworte sieht das dann so aus:
(HTML/Bild/sonstiges)
HTTP
TCP/IP
Physikalische Ebene (Kabel und so)
Der Zweck dieses ganzen ist zum einen, daß nicht jedesmal das Rad neu
erfunden werden muß zum anderen, daß die miteinander kommunizierende
Programme und Computer dieselbe Sprache sprechen.
Und alles Deine aufgezählten Beispiele sind wieder Protokolle, die
Daten umschließen und dann wieder als TCP/IP-Päckchen versandt werden.
Mehr nicht. :-)
Tim