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
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
> ... >[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.
Hallo, Nachtrag... http://www.tomshardware.de/lexikon/Address_Resolution_Protocol oder Wiki haben mir da merklich weiter geholfen. Gruß aus Berlin Michael
Für solche Sachen sollte man mal einen ordentlichen Sniffer installieren, dann siehst du auch genauer, welches Byte was tut. Ziemlich brauchbar: http://www.networkchemistry.com/products/packetyzer.php
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
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.