Forum: PC-Programmierung Rohe Ethernetrahmen versenden


von Masl (Gast)


Lesenswert?

Hallo,

ich probiere mich gerade an an der Inbetriebnahme eines IP Stacks auf 
einem uC. Der Stack soll der LwIP werden.
Davor muss aber natürlich der Ethernet-Unterbau richtig laufen.

Mittlerweile schaut auch alles prächtig aus.

Nur beim Testen tu ich mich bisl schwer. Das Senden von Ethernetrahmen 
kann ich ja noch relativ leicht testen (Gegenstelle ist ein PC mit 
Wireshark).
Nur die andre Richtung macht mir Probleme. Ich würde gerne vom PC aus 
rohe Ethernetrahmen versenden, die ich am uC empfange und auf gültige 
MAC Adresse sowie Checksumme untersuche.

Gibt es da ne einfache Möglichkeit? Ich benutze WinXP bzw Win7. Hab ich 
da irgendwie die Möglichkeit, Ethernetrahmen ohne TCP/IP zu versenden? 
Gibts da ein geeignetes Tool?

Gruß,
Masl

von Peter II (Gast)


Lesenswert?


von Han s. (Firma: HH) (puh)


Lesenswert?

Raw Sockets ist ne Lösung. Aber dann hast du entweder XP SP2 oder mit 
Beschränkungen zu kämpfen (ha ha):

- TCP data cannot be sent over raw sockets.
- UDP datagrams with an invalid source address cannot be sent over raw 
sockets. The IP source address for any outgoing UDP datagram must exist 
on a network interface or the datagram is dropped. This change was made 
to limit the ability of malicious code to create distributed 
denial-of-service attacks and limits the ability to send spoofed packets 
(TCP/IP packets with a forged source IP address).
- A call to the bind function with a raw socket for the IPPROTO_TCP 
protocol is not allowed.

Ich glaube unter Linux ist das ganze nicht so beschränkt.

von Masl (Gast)


Lesenswert?

Nargh, sowas hab ich mir fast gedacht.

Linux steht mir hier nicht zur Verfügung, bin hier nicht an meinem 
Rechner.

Hatte irgendwie gehofft es gäbe da ein kleines Tool für...

Grüße,
Masl

von Han s. (Firma: HH) (puh)


Lesenswert?

Du darfst UDP Raw Sockets benutzen, solange die Source Address stimmt.

von Guido (Gast)


Lesenswert?

Masl schrieb:
> Hab ich
> da irgendwie die Möglichkeit, Ethernetrahmen ohne TCP/IP zu versenden?

Realisiere auf dem µC gleich den Arp-Reply. Den brauchst du sowieso, er
ist schnell realisiert und vom PC aus kannst du dann z.B. mit ping
testen.

von JojoS (Gast)


Lesenswert?

Wireshark nutzt eine Lib, die WinPCap. Diese kann man auch in eigenen 
Programmen benutzen. Da sind soweit ich weiß auch einfache 
Sendefunktionen drin.

von Georg A. (georga)


Lesenswert?

Mach doch einen Ping auf die Broadcastadresse. Das wird im Ethernet ein 
Multicast und sollte auch durch Switches mit MAC-Table kommen.

von martin (Gast)


Lesenswert?


von Masl (Gast)


Lesenswert?

Danke martin, das scheint genau das zu sein was ich suche. Muss ich mir 
morgen direkt mal anschaun!

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.