mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ethernet Frames lesen


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

ich bin auf der Suche nach einem Ethernet Datenlogger. Ich möchte gerne 
Ethernet Frames im Raw Mode lesen.
Zum Hintergrund:
Ich habe hier eine Anwendung auf einem FPGA entwickelt, die an einen 
Ethernet Phy (via RMII Interface) angeschlossen ist. Nun möcht ich 
sehen, ob die Daten wirklich wie gewünscht ankommen.
Da es sich nicht um IP Frames Handelt, werden sie im Wireshark leier 
nicht angezeigt, einen RAW Mode konnte ich leider nicht finden.
Aufbau meiner Frames: (Präambel) (Adressfeld, nicht ethernetkonform) 
(Nutzdaten)

Kennt hier jemand ein gut geeignetes Programm?
Zum Testen stehen mir sowohl windows Vista als auch Ubuntu 8.10 zur 
Verfügung.

Vielen Dank und viele Grüße
Martin

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
such mal nach 'WinPcap'
aber kann sein dass das auch nicht hilft, wenn deine selbstgebauten 
eth-frames inkompatibel sind (weil z.b. der CRC fehlt oder im header was 
faul ist). eine normale ethernet-karte schmeisst alles weg, was ihr 
nicht geheuer vorkommt. wahrscheinlich müsstest du dir eine eigene 
hardware basteln, um solche frames aufzufangen.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn das ganze schon auf Hardware Ebene weggeschmissen wird, dann brauch 
ich auch nicht auf Softwareebene versuchen, das auszulesen. Meine Frames 
sind absolut inkompatibel, CRC gibts nicht, dafür aber auch keine Header 
im normalen Format... Das einzige, womit ich dienen kann, sind 
Ethernetpakete, die ein vielfaches von 64 Bit groß sind...

Vielen Dank erst einmal für Deinen Tip, WinPCap werd ich mir aber 
dennoch mal anschauen

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wer soll das dann überhaupt verarbeiten?  Schon der nächste Switch
wird sie ja dann wegwerfen.

Mit alten 10-Mbit/s-Hubs und einer klassischen Ethernetkarte im
promiscuous mode solltest du die Frames sehr wohl auch im Wireshark
angezeigt bekommen können.  (Den Hub brauchst du, damit es eben
nicht ein Switch ist, der die Frames gleich gar nicht erst
weiterleitet.)

Keine Ahnung, ob die Windows-Treiber promiscuous mode unterstützen,
Unix-Treiber sollten es tun.

Autor: Daniel B. (dbuergin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann mich dem nur anschliessen. Wenn Du im ISO/OSI Modell nicht 
wenigstens bis Layer 3 (Vermittlungsschicht, IP) kompatibel bist, wird 
dir jede normale Netzwerkkarte das Paket wegschmeissen.
Und "Wireshark" wäre grundsätzlich das richtige Tool. Damit kommst du 
bis auf das letzte Bit in einem gültigen Ethernetframe runter, also auf 
die RAW Daten.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel Buergin wrote:

> Kann mich dem nur anschliessen. Wenn Du im ISO/OSI Modell nicht
> wenigstens bis Layer 3 (Vermittlungsschicht, IP) kompatibel bist, wird
> dir jede normale Netzwerkkarte das Paket wegschmeissen.

Nein, Layer 2 (media access) genügt, auch wenn mittlerweile die
Netzwerkkarten teilweise Support für IP (checksum offloading)
besitzen.  Man kann dennoch über sie auch andere Protokolle fahren.

Autor: Daniel B. (dbuergin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, wieder was gelernt ;-)

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Mit alten 10-Mbit/s-Hubs und einer klassischen Ethernetkarte im
> promiscuous mode solltest du die Frames sehr wohl auch im Wireshark
> angezeigt bekommen können.

promiscuous-mode bedeutet nur, dass die karte alle eth-adressen 
akzeptiert normalerweise wird beim empfang nur die eigene, ein paar 
multicast-adressen und die broadcast-adresse durchgelassen. kaputte 
paket (z.b. solche, deren CRC nicht stimmt) werden immer ausgefiltert. 
einige, seltene karten haben aber einen speziellen 'sniffer-modus', der 
wirklich alles durchlässt.

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>promiscuous-mode bedeutet nur, dass die karte alle eth-adressen
>akzeptiert normalerweise wird beim empfang nur die eigene, ein paar
>multicast-adressen und die broadcast-adresse durchgelassen.

Sehr interessant. Wie kann ich diesen Modus beim PC aktivieren?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie kann ich diesen Modus beim PC aktivieren?

wenn deine neztzwerkkarte das kann und der treiber auch, dann wirst du 
beim 'wireshark' eine checkbox 'promiscuous-mode' vorfinden. leider wird 
dieser modus nicht von allen karten und treibern unterstützt.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Lipinsky wrote:

> Wie kann ich diesen Modus beim PC aktivieren?

Über den Treiber.  Auf meinem PC über einen ioctl(SIOCSIFFLAGS).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.