Guten Morgen People :p Ich versuche zu verstehen wie das Internet funktioniert, aber nicht nur Oberflächlich. Ja, es ist haufenweise Info Material im Netz, aber diese beschreiben die Funktionsweise entweder sehr Oberflächlich (hängt mir mittlerweile aus den Ohren raus ^^) oder richten sich an Fortgeschrittene bzw. setzen sehr viel Wissen aus anderen Bereichen voraus (und sind meiner Meinung nach erschreckend Trocken erklärt). Nun entstehen aus solchen Recherchen nur noch mehr Fragen und da ich keinen Guide an meiner Seite habe, der mir die richtige Richtung weist und meine Fragen beantwortet, gestaltet sich mir das ganze gerade als unmöglich. Aber da kam mir eine Idee. Für gewöhnlich lerne ich am besten, wenn ich etwas Praktisch umsetze. Nun denke ich, wäre es eine gute Idee diese Einzelnen Schichten selber zu programmieren, dazu bietet sich C++ an. Soweit ich weiß, teilt man die Datenübertragung/Verarbeitung in 7 Schichten ein. Vereinfachen lässt sich das ganze aber auch auf 4, dass macht das ganze erstmal weniger Kompliziert (gemeint sind Anwendungs-, Transport-, Internet-, Netzzugangsschicht). Was haltet Ihr von der Idee? Und könnt Ihr mir vielleicht paar gute Quellen mit auf den Weg geben?
Protokoll Typ schrieb: > Was haltet Ihr von der Idee? Nichts. Die existierenden Implementierungen kannst du zumindest zu einem guten Teil selbst nachlesen (BSD, Linux). Das sind einige 10000 Codezeilen. Selbst, wenn du davon nur einen kleinen Teil selbst machen willst, was denkst du, wie lange du daran arbeiten müsstest? Nimm dir irgendein (viel) einfacheres Protokoll vor, Xmodem oder Kermit vielleicht, und versuche, dieses selbst zu implementieren.
Sebastian R. schrieb: > Youtube-Video "Die Sendung mit der Maus - Wie funktioniert das > Internet" Ich war mir absolut sicher, dass irgend ein Schlaumeier dieses Video hier reinstellen würde. Hätte nur nicht gedacht, dass es so schnell gehen würde. Wenn dein ganzes Wissen zum Thema Internet auf diese Video basiert, dann bist du hier keine große Hilfe XD
Die wichtigste Erkenntnis ist eigentlich dass die ganze Magie in Layer 3 steckt, der Dreh-und-Angelpunkt des Ganzen: Es gibt eine Reihe Layer-1/2 Techniken wie Ethernet, WLAN, DSL, aber sie alle können IP-Pakete übertragen - ggf. auch mehr, aber IP ist das Wichtigste. IP-Pakete können Netzwerk-Segmente und Technologien überwinden, sie werden von Routern weitergeleitet. Mit Ethernet-Paketen z.B. geht das nicht. IP ist der gemeinsame Nenner, den alle beherrschen. Auf IP bauen bekanntlich diverse Protokolle auf (insb. TCP, UDP) und darauf eine Menge Anwendungsprotokolle (HTTP(S), SMTP, FTP, ...). Dank des "universellen Adapters" IP kann man diese über alle Transportmedien übertragen, da alle höheren Protokolle eben IP nutzen, und alle Transportmedien IP unterstützen. Wenn du morgen eine neue Netzwerktechnik erfindest, z.B. über Ultraschall oder Brieftauben, und diese IP-Pakete übertragen kann, kannst du das ans Internet anschließen, da alle Internet-Pakte aller Anwendungen darüber gehen können. Wenn du morgen eine neue Anwendung erfindest, z.B. den Taubenschlagsimulator, welche ein eigenes Anwendungsprotokoll auf Basis von TCP (und damit auch auf Basis von IP) nutzt, kann diese ihre Daten über alle Netzerktechnologien über das ganze Internet übertragen, weil alles IP unterstützt. Deswegen ist die IPv6-Einführung auch so problematisch - einen neuen gemeinsamen Nenner einzuführen erfordert Kooperation aller Teilnehmer. Das Alles wird auch typischerweise in Netzwerk-Vorlesungen im Informatik-Studium erläutert.
https://requestforcomments.de/archives/126 https://requestforcomments.de/archives/254 https://requestforcomments.de/archives/343 https://requestforcomments.de/archives/351 https://requestforcomments.de/archives/374 https://requestforcomments.de/archives/412
TCP/IP Illustrated Vol. 2 ISBN bin ich zu faul zu suchen.
Protokoll Typ schrieb: > Ja, es ist haufenweise Info Material im Netz, aber diese beschreiben die > Funktionsweise entweder sehr Oberflächlich Du brauchst zwei Bücher: a.) Computer Networks, Andrew S. Tanenbaum b.) TCP/IP Illustrated Volume 1, W. Richard Stevens Wenn du dich wirklich für eine Implementation interessierst, dann eben noch Voume 2 von TCP/IP Illustrated. Danach musst Du Dir noch ein paar Updates aus den RFCs und Infos zu IPv6 besorgen. Das sollte aber mit dem Grundlagenwissen aus den obigen beiden Büchern kein Problem darstellen.
Danke erstmal. Ich höre mir gerade die requestforcomments Reihe an und komme soweit gut mit. Wenn man die Funktionen der einzelnen 4 Layer ganz Oberflächlich mit Pseudocode darstellen würde, wie würde das ungefähr aussehen? Z.B. aus der Client Perspektive: _ Application Layer (HTTP): ---------
1 | //Folgendes soll gesendet werden
|
2 | const char* msg = "Hello Server" |
3 | DWORD serverAddr = SOME_SERVER_IP_ADDRESS |
4 | tcpProcess(serverAddr, msg) |
_ Transport Layer (TCP): ---------
1 | void tcpProcess(DWORD serverAddr, const char* msg){ |
2 | //weiter weiß ich nicht
|
3 | }
|
_ Internet Layer (IP): --------- _ Network Access Layer (Ethernet?): --------- _
Protokoll Typ schrieb: > Sebastian R. schrieb: >> Youtube-Video "Die Sendung mit der Maus - Wie funktioniert das >> Internet" > > Ich war mir absolut sicher, dass irgend ein Schlaumeier dieses Video > hier reinstellen würde. > Hätte nur nicht gedacht, dass es so schnell gehen würde. > Wenn dein ganzes Wissen zum Thema Internet auf diese Video basiert, dann > bist du hier keine große Hilfe XD He, danach weiß er immerhin mehr vom Internet als du, sonst hättest du hier nicht gefragt. Zu den bereits genannten guten Büchern noch ein paar mehr oder weniger gute: Für Erwachsene: Comer: Interworking with TCP/IP. Volume I ... III. Für Maus-Zuseher wie den Thread-Starter, die es nicht zugeben wollen: Kozierok: TCP/IP Guide Von der dunklen Seite der Macht (billig, markenverseucht): CCNA Routing and Switching 200-125 Official Cert Guide Library
Marten Morten schrieb: > Kozierok: TCP/IP Guide Das Buch ist nice, hatte da damals schon reingeschaut, aber da es über 1.500 Seiten sind und gefühlt die ersten 100 Seiten ums Vorwort und Danksagungen etc. gilt, war mir die Lust vergangen. Aber da du es schon ansprichst, lese ich mich noch mal rein.
Das war haarscharf. Fast wäre die Frage in die Kiste mit "Ich möchte ein eigenes Betriebssystem programmieren" gefallen.
Martin S. schrieb: > Ich möchte ein > eigenes Betriebssystem programmieren" Früher(tm) ein durchaus legitimes Anliegen. Heute heißt es "nimm Linux"...
Protokoll Typ schrieb: > war mir die Lust vergangen. Das wird auch dieses mal so ein. Denn das zu verstehen, ist verdammt viel Arbeit! Ein Studienkollege von mir hat Monatelang recherchiert, probiert, gelernt, gelesen, um erstmal die Basics zu verstehen. Bei einer 40-Stunden-Woche. "Mal eben" ist das nicht. Da steckt so viel mehr dahinter, dass man irgendwann an den Punkt kommen sollte, zu akzeptieren, dass man nicht alles verstehen muss. An diesem Punkt versteht man auch, dass es einem persönlich absolut reicht, auf einem abstrahiertem Layer einzusteigen. ERST DANN, wenn man feststellt, dass man damit nicht weiter kommt, fängt man an, tiefer zu graben. ERST DANN.
Martin S. schrieb: > Protokoll Typ schrieb: >> war mir die Lust vergangen. > > Das wird auch dieses mal so ein. Denn das zu verstehen, ist verdammt > viel Arbeit! > > Ein Studienkollege von mir hat Monatelang recherchiert, probiert, > gelernt, gelesen, um erstmal die Basics zu verstehen. Bei einer > 40-Stunden-Woche. > > [...] > ERST DANN, wenn man feststellt, dass man damit nicht weiter kommt, fängt > man an, tiefer zu graben. ERST DANN. Also das motiviert mich jetzt sehr. Ich habe einfach ständig das Gefühl, dass es alle um mich herum begreifen, nur ich nicht :p
Protokoll Typ schrieb: > Ich habe einfach ständig das Gefühl, dass es alle um mich herum > begreifen, nur ich nicht Sinnvoll wäre es, eine einfache HTTP-Verbindung (wichtig: kein HTTPS) mal mit Wireshark mitzuverfolgen und dann die einzelnen Schichten zu analysieren. Die unterste Schicht lässt sich damit natürlich nicht darstellen (das würde nur elektrisch auf dem Draht gehen), aber ab MAC aufwärts sieht man die einzelnen Teile dort schon.
Jörg W. schrieb: > Protokoll Typ schrieb: >> Ich habe einfach ständig das Gefühl, dass es alle um mich herum >> begreifen, nur ich nicht > > Sinnvoll wäre es, eine einfache HTTP-Verbindung (wichtig: kein HTTPS) > mal mit Wireshark mitzuverfolgen und dann die einzelnen Schichten zu > analysieren. > > Die unterste Schicht lässt sich damit natürlich nicht darstellen (das > würde nur elektrisch auf dem Draht gehen), aber ab MAC aufwärts sieht > man die einzelnen Teile dort schon. Bin gerade dabei mir die Tutorial Reihe anzuschauen: https://www.youtube.com/playlist?list=PLCb8EhYsrW_uMGAomz_OtDkK7LYRfYm_u :)
Marten Morten schrieb: > Für Erwachsene: > > Comer: Interworking with TCP/IP. Volume I ... III. Jupp meine Bibel in rot aus den 90ern! :-) Wurde wohl sogar immer mal wieder aktualisiert. Ich fand das sehr gut zu lesen (und zu verstehen). Routingprotokolle werden wimre nicht im Detail betrachtet, aber das ist auch erstmal nicht notwendig im ersten Schritt. Und Layer 2 Switching ist ja dann eh nochmal eine eigene Welt. Ich würde zum experimentieren auch tatsächlich ein Linux (ggfs. als VM) inklusive der gängigen Tools und Wireshark vorschlagen.
Zum Verstaendnis ist es noch viel hilfreicher, eine nicht funktionierendes Netz/Netzwerkkonversation zu untersuchen, und den Fehler zu finden. Im uebrigen, um ein oben genanntes Vorurteil zumindest zu relativieren, die Welt besteht durchaus nicht nur aus IP.
... schrieb: > Im uebrigen, um ein oben genanntes Vorurteil zumindest zu > relativieren, die Welt besteht durchaus nicht nur aus IP. Stimmt, es gibt auch ICMP ;)
John Doe schrieb: > ... schrieb: >> Im uebrigen, um ein oben genanntes Vorurteil zumindest zu >> relativieren, die Welt besteht durchaus nicht nur aus IP. > > Stimmt, es gibt auch ICMP ;) ICMP wird zwar als eigenständiges Protokoll auf der selben Ebene wie IP behandelt, tatsächlich baut es aber auf IP auf (enthält einen IP header.). Besseres Beispiele wäre z.B. ARP oder STP gewesen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.