Forum: PC-Programmierung UDP Kommunikation - Datenrate messen


von EmbeddedUser (Gast)


Lesenswert?

Guten Morgen,

auf einem Mikrocontroller habe ich eine UDP Kommunikation mit dem PC 
aufgebaut. Nun möchte ich einige Tests bzw. Messungen durchführen. Wie 
läuft so ein Test bzw. Messung ab, aus der sich dann die Datenrate 
ermitteln lässt ? Ich möchte quasi eine Statistik erstellen.

Mögliche Vorgehensweise:
Der Mikrocontroller ist als Server konfiguriert. Auf der PC Seite habe 
ich ein kleines Tool geschrieben, das als Client arbeitet. Der Client 
sendet zum Beispiel 1000 UDP Packete. Jedes UDP Packet enthält als 
Nutzdaten insgesamt 20 Bytes. Der Mikrocontroller empfängt diese UDP 
Packete nacheinander und soll dann nach jedem empfangenen UDP Packet ein 
UDP Packet an den PC zurücksenden. Die Delay-Zeit könnte ich doch als 
Berechnungsgrundlage verwenden.

Für weitere Ratschläge bin ich sehr dankbar.

von Martin (Gast)


Lesenswert?

wireshark

von EmbeddedUser (Gast)


Lesenswert?

Hallo Martin,

Wireshark benutze ich bereits.

Könnte ich so vorgehen wie ich es oben beschrieben habe ?
Der Client sendet zum Beispiel 1000 UDP Packete. Die Zeitmessung sollte 
ich dann nicht auf meiner Client PC Applikation durchführen, sondern mit 
Hilfe von Wireshark.

von Helfender (Gast)


Lesenswert?

Wenn es nur um die Datenrate selbst geht:
Wenn die Paketgröße in beiden Richtungen fix ist,
dann zähle mit, wie viele Pakete du in jede Richtung
je Zeiteinheit (z.B. je Sekunden) überträgst.
Daraus kannst du dann die übertragenen Pakete je Sekunde (direkt)
und auch übertragenen Bytes je Sekunde (berechnen) ermitteln.

Ein einzelnes Delay macht vielleicht Probleme, weil du nur
die Zeit eines Abschnitts deiner Übertragung bestimmst.
Z.B. das Delay kann noch so kurz sein, wenn der PC,
(warum auch immer) nur jede Sekunde 1 Paket versenden kann.
Oder erst einmal alle Pakete aufsammelt und die dann
gesammelt alle Sekunde zur Applikation herauf gibt.
Nächstes Problem: Wie oft kommt die Applikation dran?
Sind die Delays alle gleich, oder manchmal kürzer, manchmal länger.
Warum sind sie dann manchmal kürzer und manchmal länger?
Vielleicht lässt sich dein Delay in kleinere Abschnitte unterteilen?
Vielleicht willst Du aber genau diese Delay-Variationen
in deiner Statistik sehen?
Dies kommt alles auf die Aufgabe an, die du genau lösen willst.

von ♪Geist (Gast)


Lesenswert?

Ich nutze für solche Zwecke Iperf. Ist relativ einfach in der Handhabung 
(Kommandozeile).

von EmbeddedUser (Gast)


Lesenswert?

Iperf und Jperf habe ich auch schon dafür genutzt. Der Port für die 
Local IP 192.168.0.11 kann nicht verändert werden. Der Port müsste da 
auf 2000 eingestellt werden. Dadurch bekomme ich keine Verbindung zu 
meinem Server (Mikrocontroller).

>>iperf -c 192.168.0.10 -u -p 2000

>>[160] local 192.168.0.11 port 55986 connected with 192.168.0.10 port 2000

von EmbeddedUser (Gast)


Lesenswert?

Wie kann der Port 55986 für "local 192.168.0.11 port 55986" auf 2000 
abgeändert werden ?

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.