Forum: PC-Programmierung Ethernet Paket Aufbau


von M. G. (sirmel)


Lesenswert?

Hey zusammen,

Vorweg: Ich habe schon viel gegoogelt, bin mir aber noch nicht ganz 
sicher ob ich es richtig verstanden haben.

Bin grade dabei Pakete mit einem ENC28J60 zu empfangen und zu senden. 
Jetzt bin ich mir über den Aufbau eines Paktes, welches ich versenden 
und emfpangen möchte noch nicht ganz sicher. Ich hab es folgendesmaßen 
verstanden: Ich habe immer einen "Ethernet Header", quasi eine Hülle um 
das ganze Paket. Dieser enthält die Ethernet-Sender Adresse, die 
Ethernet-Empfänger Adresse und den Type des Pakets (IP, ARP, ...). Je 
nachn Type des ankommenden Pakets muss ich dann unterscheiden wie ich 
weiter verfahen möchte richtig? Wenn das Paket z.B. ein ARP-Paket ist 
folgt als nächstes der"ARP-Header" welcher dann Informationen wie 
Anfrage/Antwort etc. enthält.

Wenn ich ein Paket versenden möchte muss ich es quasi auch so 
zusammenbauen, erst einen Ethernet-Header und dann die anderen Header 
einfügen, je nach dem was ich brauche.

Bitte korrigiert mich wenn ich falsch liege:)

Liebe Grüße

von Guido (Gast)


Lesenswert?

Andersrum;: Zum Senden musst du deinen Daten einen TCP-Header
voranstellen, dem neuen Paket dann den IP-Header und zuletzt
um alles rum noch en Ethernet-Header.

von mar IO (Gast)


Lesenswert?

Eher wie es Guido geschrieben hat, andersherum. Dazu gibt es im Netz 
auch schöne Grafiken:

http://www.netzmafia.de/skripten/netze/schichten.gif

von M. G. (sirmel)


Lesenswert?

Ok super, schonmal vielen Dank für die Antworten, das Bild ist ganz 
nützlich:). Und wenn ich quasi eine ARP-reply senden will habe ich 
meinen ARP-Header und darum packe ich dann den Ethernet-Header, mehr 
brauche ich da ja nicht richtig?

IP-Header und ARP-Header sind doch quasi das gleiche, außer dass sich 
der Operation Code unterscheided. Die Kommunikation auf der dritten 
OSI-Schicht erfordert also immer einen IP-Header und einen 
Ethernet-Header, die auf der vierten OSI-Schicht dann einen TCP-Header, 
IP-Header und einen Ethernet-Header usw.?

von Robert L. (lrlr)


Lesenswert?

man könnte sich auch anschauen, wie das andere machen

z.b.
https://github.com/thiseldo/EtherShield
https://github.com/jcw/ethercard
usw.

von M. G. (sirmel)


Lesenswert?

Danke für die Links. Hab mir auch schon diverse Beispiele und andere 
Programme angesehen, wollte aber nochmal unabhängig davon nachfragen ob 
ichs richtig verstanden hab:). Denn wenn man sich komplexere Programme 
ansieht kann es ja doch mal vorkommen dass man was übersieht.

von Martin M. (capiman)


Lesenswert?

Lade dir mal Wireshark herunter, erzeuge eine kurze Aufzeichung,
dann kannst du im Paket herum clicken und sehen, welche Felder
wo und wie gefüllt werden.

von M.G (Gast)


Lesenswert?

Ok danke für eure Hilfe, habs jetzt glaub ich:)

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
Noch kein Account? Hier anmelden.