Wie funktioniert das Internet? Wie finden Daten ihr Programm

  • Die Frage klingt vielleicht etwas blöd, und ich weiß auch nicht genau wie ich meine Frage formulieren soll.

    Woher weiß das "Internet", wohin, bzw. an welches Programm es seine Daten schicken soll. Hat jedes Programm auf meinem Rechner quasi eine ID?
    Wenn ich vier Instanzen von Winamp öffne, kann ich 4 verschiedene Internetsender gleichzeitig hören. Ich kan mir das nur so erklären das jede Instanz, wenn ich sie öffne eine "einmalige ID" bekommt.
    Liege ich da richtig, oder wie funktioniert das?

    Die Antwort kann ruhig sehr technisch sein. (oder ein entsprechender Link)
    Welche Schritte gehen denn die Daten auf meinem Rechner, vom Router bis nach Winamp?

  • Am einfachsten(für die Antwortenden ;) ) wäre es du liest dir die RFCs zum Internet Protocol und zum Transmission Control Protocol durch aber damit wärst du wahrscheinlich eine Weile beschäftigt und eigentlich müsste man der Vollständigkeit halber wohl auch das Dynamic Host Configuration Protocol durchgehen.

    Prinzipiell ist es so das TCP/IP vom Betriebssystem implementiert wird und ein Programm mit sogenannten sockets arbeitet. Die Verhalten sich ähnlich wie Dateien, man kann darüber Daten senden und empfangen, um die eigentliche Übertragung kümmert sich das Betriebssystem, womit wir beim TCP angekommen wären. Das schnürt aus den Daten Pakete und verschickt diese, die Gegenseite nimmt sie an(angenommen dass passiert überhaupt) und sendet quasi eine Empfangsbestätigung. Die Pakete enthalten genug Informationen so dass man weiß wenn alle angekommen sind usw. und an wenn sie zurück geschickt werden sollen(man verzeihe mir an dieser Stelle wenn das jetzt arg ungenau ist).

    Letztendlich ist es so dass das "Internet" nicht weiß an welche Programm Instanz die Daten gehen darum kümmert sich dein Betriebssystem selber, welches Prozess IDs vergibt für jeden Prozess den du startest(es sei den der Arbeitsspeicher geht aus oder ein künstliches Maximum ist erreicht um dass zu verhindern).

    Mozilla/5.0 (X11; U; Linux x86_64; de-DE; rv:1.9.1.1) Gecko/20090702 Firefox/3.5

  • Zitat von DasIch


    Letztendlich ist es so dass das "Internet" nicht weiß an welche Programm Instanz die Daten gehen darum kümmert sich dein Betriebssystem selber, welches Prozess IDs vergibt für jeden Prozess den du startest(es sei den der Arbeitsspeicher geht aus oder ein künstliches Maximum ist erreicht um dass zu verhindern).

    Ah, das ist es.
    Jeder Prozess bekommt also eine ID, und damit kann dann das Betriebssystem die Daten auseinaderklabustern.

    Wie sieht das in diesem Zusammenhang mit den Ports aus?
    Benutzen die vier Winampinstanzen den gleichen Port, oder verschiedene? Oder ist der Port mit der genannten ID identisch?
    (lese gerade http://de.wikipedia.org/wiki/Socket_%28Software%29 ich glaub das hilft :)

  • Ok, ist das hier jetzt die ungefähre, vereinfachte Reihenfolge der Vorgänge?

    1. Winamp Startert
    2. BS weist der Instanz eine ID zu.
    3. Winamp sagt dem BS es möchte gerne ins Internet
    4. Das BS öffnet/erstellt einen "Socket" für Winamp, bzw für diese spezielle Instanz/ID. Dabei wird auch ein Port für die Anwenung reserviert.
    5. Winamp benutzt dieses Socket, (und damit auch den Port) um seine daten zu senden/empfangen.

    Halbwegs korrekt?

  • Ich würde mal behaupten das OSI-Modell (besser noch das vereinfachte Hybrid-Modell, bei dem alle Anwendungsebenen zusammengelegt werden, also Ebene 5-7 sind dann zusammen als Anwendungsgebene gelistet) ist beim Verständnis am hilfreichsten.

    5.) Anwendung
    4.) Transport
    3.) Vermittlung
    2.) Sicherung
    1.) Bitübertragung

    Jetzt muss man sich das ganze wie eine hierarchisch aufgebaute Post-Behörde vorstellen.

    Die Ebene der Bitübertragung ist dabei die Empfangsdame unten am Eingangsbereich und die Anwendungsebene ist der Sachbearbeiter der damit Arbeitet. Und von dem Weg von der Empfangsdame zum Sachbearbeiter geht das Paket noch durch eine Reihe von Händen.

    Fangen wir beim Sachbearbeiter an (so rum ist es vermutlich schneller zu verstehen).

    Wir nennen ihn mal Firefox. Der will eine Anfrage verschicken. Der hat natürlich eine Mitarbeiternummer. Und er sitzt im Raum "Browser". Die Raumnummer ist in der Regel die 80 (Port 80). Also Schreibt Herr Firefox einen Brief, packt seine Mitarbeiternummer und seine Raumnummer drauf und wirft das ganze in den Postausgangs-Ordner.

    Damit Herr Firefox sich um seine Aufgaben kümmern kann, ist in dem Gebäude "Lokaler Rechner" auch eine Logistikabteilung installiert (Transportschicht). Die bestimmt jetzt wie das ganze verschickt werden soll. Die klassischen zwei Vorgehensmodelle sind hier UDP und TCP (sind zwei Abteilungen). UDP ist hier wie ein klassischer Brief zu verstehen. Es wird geschickt und was damit passiert wird nicht mehr nach verfolgt. Das ganze geht schnell, weil nichts ständig geprüft werden muss. In der Regel handelt es sich dabei um Live-Streaming-Inhalte. Hauptsache es ist schnell zur passenden Zeit da. Geht mal was verloren muss mans auch nicht mehr nachschicken, weil der Zeitpunkt ist dann eh zu später und neue Inhalte sind dann wichtiger als alte nachzureichen. TCP ist dabei die Form des Einschreiben mir Rückschein. Es geht darum das alles sicher und komplett ankommt, weswegen hier immer geschickt wird und auf Antwort gewartet wird, obs angekommen ist. Doppelter und dreifacher Boden quasi. Hierbei passiert etwas lustiges, denn die Leute von der Abteilung fangen an die Briefe und Pakete zu zerhacken und in genormte kleine Kisten zu packen, auf denen überall immer draufsteht zu welcher Lieferung sie gehören und welches Teil der Lieferung sie beinhalten.

    Die ganzen kleinen Kisten geben sie der Emfangsdame (Vermittlungsschicht). Die ist sehr fleißig. Frau Windows packt nämlich auf alles noch eine Schleife mit der Adresse von dem Haus (lokaler Rechner, Abteilung Netzwerkarte). Zudem schaut sich auch nochmal ins Adressbuch (z.B. muss man erstmal raus bekommen unter welcher Hausnummer hauskauf.de oder pudelmode.com so zu finden ist), so das und schau wohin das Paket gehen soll. Ist es nicht bekannt, ruft sie auch fleißig wie sie ist, eben noch schnell die Auskunft an, informiert sich und packt noch die Zieladresse mit drauf (in der Regel macht das aber der Praktikant Herr DNS ohne das ihm das wer dankt).

    Dann geht gibt die gute Dame das ganze an Hardware weiter (Sicherungsschicht). Die Jungs von der Hardware kümmern sich nicht um den ganzen toll ausgedachten kram. Alles zu kompliziert und unsinnig. Bestimmt von irgendwelchen BWL-Schnöseln erfunden. Die denken sich "Ethernet4Life" (gibt auch andere, aber die meisten sprechen nur das). Zerhacken den ganzen Kram nochmal, packen ihre MAC-Adresse nochmal drauf und laden es alles aufs Förderband.

    Hier wird der ganze Kram dann richtig schön pulverisiert (Bitübertragungsschicht). Da bleiben dann nur noch 1er und 0er übrig. Am Ende des Förderbandes sitzt ein alter Indianer. Der macht da Rauchzeichen, die alle im Netz sehen können.

    Die Indianer bauen dass dann wieder zusammen und geben das den eigenen Netzwerkkarten-Heinis. Die bauen das dann wieder zusammen und wissen dann anhand der Mac-Adressierungen ob das Paket für sie relevant ist oder nicht, sprich: ob sie es weitergeben sollen oder einfach ignorieren. Ist es interessant, geben sie die Pakte weiter an die gute Dame am Empfang. Die packt die Kisten nochmal aus, klebt sie zusammen und schaut, ob das Paket überhaupt für dieses Haus bestimmt ist, oder obs an ein anderes Haus weitervermittelt werden muss. Meist muss es erst durch eine Reihe von Häusern weitergegeben werden (von Netz zu Netz bis zum Netz hin, wo der Zielrechner sich drin befindet). Alles wieder einpacken, meist einer anderen Netzwerkabteilung geben, die sich in einem anderen Netz befindet und dort wirds dann weitergegeben.

    Irgendwann kommt das Paket am Zielhaus an und die Empfangsdame entpackt das ganze und gibt das bunte Paket in die passende Logistik-Abteilung (TCP oder UDP z.B.). Die wiederum baut das Paket wieder zusammen und liefert es in das Zimmer (Socket/Port) des Sachbearbeiters.

    Der wiederum schnappt sich dann das Pakt obs für ihn bestimmt ist, macht es auf, schnappt sich die Datei und macht damit das wofür er zuständig ist.

    Im Grunde ähnlich wie bei den russischen Matrjoschka Steckpuppen.

    Jede der Ebenen hat eine bestimme Aufgabe (Hardware-Übertragung, Routing, Verpackung, Verarbeitung) und Jede Datei muss einmal den ganzen Weg hin und zurück nehmen. Vom Webserver hin zum Browser sind viele tausende Zwischenschritte nötig, über die wir uns keine Vorstellung machen. ^^

  • Die Sendung mit der Maus - Wie funktioniert das Internet :D

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Liest sich wirklich gut.

    Kleine Anmerkung.
    Wenn man dem Sachbearbeiter Firefox noch verschiedene Mitarbeiter in eigenen Räumen zuteilt, einer möchte eine Grafik, ein anderer ein CSS, usw., tragen auch die Briefe unterschiedliche Raumnummern.

    Der Sachbearbeiter beim Kaufhaus wird zur Vereinfachung des Postverkehrs im Raum 80 untergebracht.