Forum: PC-Programmierung "Spiegeln" der Ethernet Daten


von KingSize (Gast)


Lesenswert?

Hallo Leute,

für ein Projekt würde ich ein kleines Tool brauchen, das mit bei meinem 
Windows XP Rechner alle eingehenden Datenpakete wieder raussendet.
Wozu das ganze?
Ich würde die Packete gerne mit Etherreal, Wireshark mitprotokollieren.

Kennst jemand ein Programm das das bewerkstelligen kann?
Thx!

von Fragender (Gast)


Lesenswert?

Du musst doch nix zurücksenden, damit du mit Wireshark mitprotokollieren 
kannst.
Versteh dein Problem nicht ...

Sich Fragender

von KingSize (Gast)


Lesenswert?

Hi Fragender, danke für deine Antwort!

Es geht darum, ein Bussystem auf Ethernet Basis zu implementieren. 
Dieses System hat eine (logische) Ringstruktur, da im CAT5 Kabel selbst 
ja sowohl die RX als auch TX Leitung vorhanden sind.

Die Busteilnehmer werden logisch im Ring verbunden, physikalisch ist das 
einfach ein Ethernet Kabel das von Teilnehmer zu Teilnehmer geht.
Der letze Teilnehmer (was dann der PC mit Etherreal wäre) muss das 
Packet das er empfängt wieder zurückschicken. Deswegen suche ich auch 
ein Tool, das das bewerkstelligen kann.

Ich hoffe ich habe die Funktionsweise halbegs erklären können

von Fragender (Gast)


Lesenswert?

Vielleicht kommst du hiermit weiter:

http://ettercap.sourceforge.net/

Ansonsten wohl selber schreiben ...

von Johannes S. (johanness)


Lesenswert?

Würde es nicht vielleicht schon reichen, den PC per Hub zwischen die 
zwei Segmente zu hängen? Hubs hat man doch zu Diagnosezwecken immer ein 
paar rumliegen, oder? ;)
Natürlich geht das nur solange die Geräte sich nicht daran stören, wenn 
der PC ab und zu übers Netz auch ein paar Broadcastpakete verschickt.

Der Hub schickt einfach alles, was reinkommt, auf allen anderen 
Anschlüssen wieder raus, das Paket würde also gleichzeitig an PC und 
nachgeschaltetem Gerät ankommen.

Ansonsten beschreib mal bitte genauer, wie dein Bussystem funktioniert 
:)

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

selber schreiben. Mit http://www.winpcap.org/ und den mitgelieferten 
Beispielprogrammen ist das eine Sache von 20 Minuten.

Matthias

von Johannes S. (Gast)


Lesenswert?

Danke für eure Antworten!

@ Fragender: optimal ist die SW leider nicht, ich werd wohl zur guten, 
alten Handarbeit greifen ;)

@ Johannes: Die Idee hatte ich auch schon, du glaubst gar nicht wie 
schwer es ist einen reinen Hub zu finden. Alle Hubs die ich im Einsatz 
hatte, haben die zurückkommenden Datenpackete einfach verworfen.
Ein konfigurierbarer Switch würde auch gehen, ist aber leider sehr 
langsam und man weiß auch nicht so recht wie die interne Firmware genau 
arbeitet.

@ Matthias: Thx für den Link, werd mich dann gleich mal ans Werk machen.

von Ulrich (Gast)


Lesenswert?

Haben die Busteilnehmer ein oder 2 Netzwerkports?

Hört sich interresannt an. Geht das in richtung ethercat?

von Ulrich (Gast)


Lesenswert?

Probiere mal folgendes:

Zutaten:
dummerhub, bissele Werkzeug, Kabel netzwerkstecker, Patchfeld usw...

Rezept:
Wir nehmen eine Patchleitung und legen die so auf ein Patchfeld auf dass 
das rx und tx paar auf 2 verschiedenen Ports liegen. Nun nehmen wir 2 
Kurze Patchleitungen und verbinden die mit dem Hub.

So sollte der Hub die Pakete sowohl spiegeln als auch an allen anderen 
Ports ausgeben....

von KingSize (Gast)


Lesenswert?

Hi Ulrich,
danke für deine Antworten. Jepps du hast Recht es handelt sich hierbei 
um ein kleines Tool für ethercat ;)
Somit hat der Master 1 Port und die Busteilnehmer jeweils 2 Ports (in 
und out)

Der Aufbau hört sich gut an, aber ich würde momentan noch eine 
Softwarelösung bevorzugen, die Hardware zu organisieren ist leider nicht 
so ohne weiteres Möglich.

Ich habe mich jetzt mal an mit Hilfe von www.winpcap.org ein kleines 
Programm hierfür geschrieben (siehe Anhang), nur leider hab ich 
folgendes Problem:
Die Daten, die ich empfangen habe und wieder sende werden wieder als 
empfangene Daten interpretiert.
Also anders gesagt empfange ich Daten, wenn diese den richtigen EtherTyp 
haben, sende ich sie einfach wieder. Nur diese gesendeten Daten werden 
wieder als empfangene Daten interpretiert und so hänge ich in einer 
Schleife.

Also ich möchte nur die Daten, die von "außen" kommen wieder senden, 
nicht die Daten die der PC sendet.

Da es aber auch sein kann das ich 2 mal das gleiche Frame bekomme habe 
ich keine Ahnung wie ich die Fälle unterschieden kann.

Hat jemand eine Idee wie das Problem gelöst werden kann?

von KingSize (Gast)


Angehängte Dateien:

Lesenswert?

sorry Anhang vergessen...

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

du ignorierst einfach einmalig das soeben gesendete Packet.

Matthias

von KingSize (Gast)


Lesenswert?

Hi,
Aber ich bin mir nicht sicher ob ich davon ausgehen kann, dass das erste 
Element in der Empfangs Quene das gesendete ist.

Zulässig wären auch das mehrmals die gleichen Telegramme empfangen 
werden, deswegen kann ich nicht einfach das soeben gesendete Telegramm 
ignorieren.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

versteh ich nicht. Gehen wir mal von vier Telegrammen T1 - T4 aus. Du 
empfängst T1 und sendest es als T1' wieder raus. Jetzt steht in der 
Empfangsqueue zuerst T2 dann T3(identisch zu T1) anschließend T4 und 
dann T1'. Wenn du jetzt das erste Packet das zu T1 identisch ist wieder 
verwirfst dann stimmt zwar die Reihenfolge nicht mehr aber die Anzahl 
der Pakete passt immer noch. Wenn natürlich die Reihenfolge erhalten 
werden soll funktioniert der Ansatz nicht mehr.

Matthias

von Johannes S. (Gast)


Lesenswert?

Hi Matthias,

Wegen des Buses ist es leider unerlässlich die Reihenfolge 
beizubehalten. Ich hätte auch die Idee gehabt die letzen gesendeten 
Telegramme in einem Ringbuffer zu sichern und das durch 2 Pointer zu 
lösen aber ich Versuch heute hat es mir leider auch die Reihenfolge 
verändert..

lg J.

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.