Geschwindigkeit von UDP-Versand

Herakles

Profifragensteller
Moin!

Ich habe soeben einmal einen kleinen UDP-Flut-Test laufen lassen. Dafür wurden einfach auf einem Rechner in einer Endlosschleife UDP-Pakete losgejagt und diese auf einem anderen aufgefangen. Das Ganze geschieht per WLAN.

Ein kleiner Sniff mit Ethereal hat mir nun mal gezeigt, in welchen Zeitabschnitten diese Pakete verschickt werden. Dabei fielen mit einige Dinge auf:

1. Die ersten 10 Pakete ab sniff-Beginn hatten im Schnitt einen zeitlichen Abstand von 38,9*10^-5 Sekunden. Dann gibt es ein "Loch" von ca. 3*10^-3 Sekunden und die nächsten 10 Pakete haben wieder einen Abstand von im Schnitt 39*10^-5 Sekunden.

Bemerkenswert ist, dass sich dieses "Loch" alle 10 Pakete wiederholt und zwar immer beginnend wenn ich den ethreal-sniff starte. Also 10 Pakete im Schnitt 39*10^-5, 3*10^-3 Loch, 39*10^-5 für 10 Pakete, 3*10^-3 Loch, usw.

In wie fern hat denn der Start von ethereal damit was zu tun, in welchen Anständen die Pakete verschickt werden?

2. Hängt das Senden der Pakete von der Geschwindigkeit der CPU ab? Wenn dem so wäre: wenn mein Laptop (immerhin 1600 MHz) feuert wie irre, kommt das kleine WRAP-Board (266 MHz) dann überhaupt mit, oder gehen dann Pakete verloren (immerhin ist es ja UDP, also kein ankommen der Pakete garantiert)?

3. Was sind generell einschränkende Bedingungen für den schnellen Versand von Netzwerkpaketen? Signalstärke? CPU-Leistung? Qualität der Netzwerkkarte/-karten?

Vielen Dank für jeden Gedanken zum Thema,

Herakles
 
Zu Punkt 1:
Du solltest bedenken das dein Programm unter einem Multitasking-OS abläuft.
Das heißt das es natürlich nicht 100% der CPU-Zeit zur Verfügung hat, sondern sich die CPU-Zeit mit anderen Prozessen teilen muß.
(Die wollen ja auch mal ran ;) ).
Sprich, die zeitlichen Lücken ergeben sich durch die Zeit in der der Scheduler deinem Programm die CPU-Zeit entzieht.

Zu Punkt 2 und 3:
Die Geschwindigkeit der CPU ist sicherlich ein Faktor. Vielmehr spielen aber Faktoren
wie I/O-Last auf dem Systembus, Anzahl der laufenden Prozesse und die Leistungsfähigkeit der Netzwerkkarte eine Rolle.
Der größte Flaschenhals bildet aber die Bandbreite der Netzwerkverbindung, die
legt nehmich letzendlich fest wie viel Daten maximal in einer bestimmten Zeit übertragen werden können.

Wie du schon selbst geschrieben hast, gibt es bei UDP keine Garantie das alle Pakete ankommen.
Kommt also deine WRAP nicht hinterher gehen Pakete verloren...
Falls du das nicht willst verwende TCP
 
Zurück
Oben