Ich habe mich erstmalig mit Ethernet beschäftigt. Ein kleiner Webserver mit STM32 und ENC28J60 läuft, es waren aber nur paar spezifische µC-Anpassungen zu machen. Nun versuche ich das Protokoll vom Grundsatz zu verstehen. Im Ethernetprotokoll werden nur die MAC Adressen für Absender und Empfänger verwendet. (http://de.wikipedia.org/wiki/Ethernet) Wie kommen da die IP-Adressen ins Spiel? Ich habe was von APR gelesen, aber nicht wirklich verstanden. Das dies über die 7 Schichten des TCP/IP Protokolls funktioniert ist mir klar, aber ich verstehe es nicht. Kann mir jemand den Ablauf einer Übertragung genauer erklären oder eine Seite/Literatur (deutsch!) empfehlen. Google findet zwar einiges, meist irgendwelche Präsentationen oder Ausarbeitungen, alles zu theoretisch, und einige der Autoren dürften selber nicht verstanden haben, was sie dort schreiben.
Matthias K. schrieb: > Wie kommen da die IP-Adressen ins Spiel? Ich habe was von APR gelesen, Unter ARP findest du mehr. Läuft so: - Rechner A will einen TCP/IP Frame an 1.2.3.4 zustellen. - Ruft ins Netz "An Alle: Ich suche jemand mit IP Adresse 1.2.3.4". - Gerät B mit 1.2.3.4 meldet sich "hier bin ich, MAC-Adresse ..." - A merkt sich dies ein Weilchen und adressiert an diese MAC-Adresse. - 15min später oder so schlägt Alzheimer zu und er vergisst das. - Nochmal das Ganze vor vorne.
Besorg Dir Wireshark, damit kannst Du realen Netzwerkverkehr analysieren. Das Programm ist sehr komfortabel. Die Schichten kannst Du da aufklappen, und Du siehst sogar welche Bytes sich wohin gehören.
> Besorg Dir Wireshark, damit kannst Du realen Netzwerkverkehr > analysieren. Das Programm ist sehr komfortabel. Dieser Empfehlung schließe ich mich an. Insbesondere zeigt Wireshark auch jeden Fehler in kaputten Frames. Das ist dann sehr hilfreich, wenn man z. B. ein IP-Paket "manuell" erstellt und auf die Reise schickt. Wireshark war mein "Debugger" beim Entwickeln eines IP-Stacks.
Es gibt einen Dreibaender : "TCP/IP und ich"" oder aehnlich. Fuer je um die 100 Euronen. Das unterste Protokoll ist IP, mit den Diensten ARP, BootP, ICMP, ...
Christian Berger schrieb: > Besorg Dir Wireshark, damit kannst Du realen Netzwerkverkehr > analysieren. Das Programm ist sehr komfortabel. Das werde ich tun. A. K. schrieb: > Unter ARP findest du mehr. Läuft so: > - Rechner A will einen TCP/IP Frame an 1.2.3.4 zustellen. Wo steht die IP 1.2.3.4 im Ethernet-Frame, siehe link, wenn Rechner A loslegt? http://upload.wikimedia.org/wikipedia/de/a/aa/Ethernetpaket.svg > - Ruft ins Netz "An Alle: Ich suche jemand mit IP Adresse 1.2.3.4". > - Gerät B mit 1.2.3.4 meldet sich "hier bin ich, MAC-Adresse ..." > - A merkt sich dies ein Weilchen und adressiert an diese MAC-Adresse. > - 15min später oder so schlägt Alzheimer zu und er vergisst das. > - Nochmal das Ganze vor vorne.
> Wo steht die IP 1.2.3.4 im Ethernet-Frame, siehe link, wenn Rechner A > loslegt? Von der IP-Adresse weiss das Ethernet-Frame gar nix. Schau dir mal das ISO-OSI-Modell [1] an, dann sollte der Aufbau klar sein. HTH [1] http://de.wikipedia.org/wiki/OSI-Modell
g457 schrieb: > Von der IP-Adresse weiss das Ethernet-Frame gar nix. Schau dir mal das > ISO-OSI-Modell [1] an, dann sollte der Aufbau klar sein. Leider nicht, irgendwie Denkblockade...- Ich sehe nicht den Zusammenhang zum Ethernetframe. Spielt sich das alles in den max. 1500 Byte Nutzdaten ab?
> Spielt sich das alles in den max. 1500 Byte Nutzdaten ab?
Ja. In der Payload vom Ethernetframe ist die nächsthöhere
Protokollschicht zu finden, hier IP. Im Header von IP steht dann (u.a.)
"die" IP-Adresse. In der Payload vom IP-Frame ist wieder das
nächsthöhere Protokoll zu finden, hier TCP usw. Schön verkapselt das
alles.
Die Details zu den einzelnen Protokollen (darunter auch die zugehörigen
Header) finden sich in den einschlägigen RFCs und IEEEs - oder hypscher
aufbereitet z.B. in der Wikipedia.
HTH
Douglas E.Comer The principials of tcpip....... Die Bibel der 70' er
Beispielhaft für UDP: http://en.wikipedia.org/wiki/File:UDP_encapsulation.svg Der Link-Level entspricht hier dem Ethernet-Frame. Die Wikipedia ist hier leider wenig geeignet als Einstiegshilfe für komplette Anfänger. Die Artikel sind dafür zu unsystematisch und heterogen.
A. K. schrieb: > Die Wikipedia ist hier leider wenig geeignet als Einstiegshilfe für > komplette Anfänger. Die Artikel sind dafür zu unsystematisch und > heterogen. Zustimmung A. K. schrieb: > Beispielhaft für UDP: > http://en.wikipedia.org/wiki/File:UDP_encapsulation.svg > Der Link-Level entspricht hier dem Ethernet-Frame. Danke. Das verstehe ich. Hast Du dazu noch mehr Links, für HTTP und über den exakten Aufbau. Am besten komme ich mit Beispielen klar, Bytefolgen etc. wie oben im ersten Beitrag der Link.
Matthias K. schrieb: > Das verstehe ich. Hast Du dazu noch mehr Links, für HTTP und über den > exakten Aufbau. Am besten komme ich mit Beispielen klar, Bytefolgen etc. > wie oben im ersten Beitrag der Link. Mir scheint, das wäre eine Gelegenheit, einer Fachbibliothek oder -buchhandlung mal einen Besuch abzustatten. Gibt darin was ganz unmodernes, aus abgeholzten Wäldern produziert, das aber mitunter hilfreicher ist als haufenweise Stückwerk elektronisch. Das jedenfalls ist die Ansicht eines Menschen aus jener grauen Vorzeit, in der man keine Alternative hatte.
Also ich finde die Wikipedia-Artikel recht passend gerade als Einstieg (liegt aber vielleicht auch daran dass ich einen Schwerpunkt auf Netzwerktechnik hatte im Studium :-), z.B. [0, 1, 2, 3, 4, 5]. Da steht alles Wesentliche drin was man braucht, damit man ∗nicht∗ den selben Fehler macht wie z.B. der TO (bzw. der Autor des zugehörigen Stacks) in [6]: Byte-Offsets als vom-Himmel-gefallen-fix-annehmen. Alternativ gibts das ganze latürnich auch auf abgeholztem Urwald, dazu wurden ja schon einige Titel genannt. Oder als IEEE oder RFC. Wenn man dann das theoretisch erlernte wissen praktisch testen will wirft man Wireshark an, schneidet ein paar Sitzungen mit und schaut ob selbiger die Datenpakete genauso interpretiert wie man selbst (implizite Interpretationsreihenfolge beachten!). Dann kann man Wireshark auf seine eigenen Pakete loslassen und überprüfen, ob er das selbe ausspuckt wie man denkt, dass man auf den Weg geschickt hat. Viel Spaß beim Basteln! [..zum 'Spamschutz' bitteschön an die folgenden Links je ein http:// vorandenken.. und ja ich bin wirklich zu faul jetzt meine Zugangsdaten hervorzukramen] [0] en.wikipedia.org/wiki/OSI_model [1] en.wikipedia.org/wiki/TCP/IP_model [2] en.wikipedia.org/wiki/Ethernet_frame [3] en.wikipedia.org/wiki/IPv4 [4] en.wikipedia.org/wiki/Transmission_Control_Protocol [5] en.wikipedia.org/wiki/Hypertext_Transfer_Protocol [6] www.mikrocontroller.net/topic/228782
g457 schrieb: > Also ich finde die Wikipedia-Artikel recht passend gerade als Einstieg > (liegt aber vielleicht auch daran dass ich einen Schwerpunkt auf > Netzwerktechnik hatte im Studium :-) Ein Problem an den Artikeln ist die sehr heterogene Mischung aus Grundlagenbeschreibung und dafür völlig überflüssigen Randdetails, nicht selten kunterbunt durcheinander. Das zu filtern und zu sortieren funktioniert prima, wenn man TCP/IP schon kennt. Und dürfte reichlich irritieren wenn nicht.
Ich habe hier eine ganz gute Abarbeitung zum Einstieg gefunden: http://www.elektronik-kompendium.de/sites/net/0606251.htm
Das Problem ist ganz einfach, dass TCP/IP so komplex ist (das wurde immerhin über Jahrzehnte weiterentwickelt), dass man das weder in einem Thread, noch in ein "Tutorial" erläutern könnte. Dazu braucht man harte und trockene und vor allem viel Lektüre, die eben aufbereitet ist.
Matthias K. schrieb: > Hast Du dazu noch mehr Links, für HTTP und über den > exakten Aufbau. Alle Links, die Du jemals benötigst, findest Du hier: http://www.faqs.org/rfcs/rfc5000.html Alle Fragen werden in den dort referenzierten Dokumenten beantwortet. ;)
Andreas schrieb: > Alle Links, die Du jemals benötigst, findest Du hier: > http://www.faqs.org/rfcs/rfc5000.html Da hast Du bestimmt Recht, aber: Matthias K. schrieb: > (deutsch!) er wolte es in Deutsch! Und wie soll ein Einsteiger damit zurecht kommen?
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.