Ping, ARping oder was sonst ist hier die Frage...

Gast #440991
Lesenswert?
• ▲
▼
Moin,


ich versuche gerade eine Ethernet-Kommunikation aufzubauen. Der 
Einfachheit halber, wollte ich zuerst eine Ping-Kommunikation 
realisieren.

Es gibt ja auch schon einige Projekte dazu.

Vom Windows-PC aus also ein "ping 192.168.178.30" generiert....

Beim meinem Empfänger kommt nun folgendes an:

ByteNr.
[1] 0xFF ; TARGET MAC START  <- versteh ich ;)
[2] 0xFF
[3] 0xFF
[4] 0xFF
[5] 0xFF
[6] 0xFF  ; Target MAC (Broadcast) end
[7] 0x00  ; SRC MAC START    <- ist auch klar ;)
[8] 0x50
[9] 0x70
[10] 0xAA
[11] 0x22
[12] 0x00  ; SRC MAC END
[13] 0x08  ; <- so dachte ich mir das (0x0800 = IP, 0x0806  = ARP )
[14] 0x06  ; ARP Frame??? (Ich hätte hier 0x00 erwartet)
[15] 0x00
[16] 0x01
[17] 0x08  ; <- Oder hier IP-Kennung und die 4 Byte davor VLAN-TAG??
[18] 0x00
[19] 0x06
[20] 0x04
[21] 0x00
[22] 0x01
[23] 0x00
[24] 0x50   ; <- und hier hätte ich jtzt den IP-Type 01 -> ICMP erwartet
[25] 0x70   ; scheint aber die SRC-MAC zu sein grübel
[26] 0xAA
[27] 0x22
[28] 0x00
..........

Meine Fragen an euch:
- Ist das ein ARping? Wenn ja, hat einer eine gute Beschreibung dazu 
gefunden?
- Wie starte ich von einem WIndows 2000 Rechner dann einen (IP) ICMP 
ping?
- Gibt es ein Proggi, um unter Windows einen klar definierten 
Ethernet-Frame zu versenden? <- zum debuggen

Bin wirklich gespannt auf die Antworten!!

Viele Grüße
BastelFix
Gast #440997
Lesenswert?
• ▲
▼
Hallo,

wenn die MAC des Interfaces, dem Deine gewünschte IP gehört (hier 
192.168.178.30) dem Rechner noch nicht bekannt ist, wird erstmal ein 
ARP-Request geschickt, um die MAC in Erfahrung zu bringen. Die 
Kommunikation im Ethernet ist ausschließlich MAC-basiert, erst darüber 
liegende Protokolle benutzen dann die IP.

Du mußt also erstmal ein ARP-Reply basteln, dann klappts auch mit ICMP.

PS: alles sehr verkürzt, bin kein Super-Netzwerker, habe aber den Kram 
mit dem ENC am AVR schon bis dahin und etwas weiter durchgekämpft.

Gruß aus Berlin
Michael
#440998
Lesenswert?
• ▲
▼
> ...
>[13] 0x08  ; <- so dachte ich mir das (0x0800 = IP, 0x0806  = ARP )
>[14] 0x06  ; ARP Frame??? (Ich hätte hier 0x00 erwartet)
>[15] 0x00
>..

Ich kenn mich mit IP/TCP nicht wirklich gut aus aber du hast doch genau 
das was du beschreibst.

13 & 14 = 0x0806
15 = 0x00
also
>[13] 0x08  ; <- so dachte ich mir das (0x0800 = IP, 0x0806  = ARP )
>[14] 0x06  ;
>[15] 0x00  ; ARP Frame???

du bist nur verrutscht.
Gast #441026
Lesenswert?
• ▲
▼
Hallo,

Wireshark (ehem. Ethereal) unter Windows hilft da schon viel weiter.

Allerdings habe ich den erst wirklich gebraucht, als ich mit TCP 
angefangen habe, da bin ich leider immernoch... :( Für ARP, ICMP, IP ist 
der Ablauf einer Verbindung und der Aufbau der Header eigentlich noch 
überschaubar.

Ich sollte eigentlich mal weitermachen damit. ;)

Gruß aus Berlin
Michael

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.