Ich führe eine Client-Server-Konfiguration über Ethernet und Messung der Paket-Latenz an beiden Enden. Der Client (Windows) sendet Pakete alle 5 ms (bestätigt mit Drahthai) wie es sollte. Der Server (embedded linux) empfängt jedoch nur Pakete mit Intervallen von 5 ms für einige Sekunden und stoppt dann für 300 ms. Nach dieser Pause beträgt die Latenz nur noch 20 US-Dollar. Nach einer weiteren Pause von etwa ein paar Sekunden dauert es 300 Sekunden. Dies wiederholt sich unbegrenzt (300 ms Pause, 20 us Paketlatenz-Burst). Es scheint, als ob das Serverprogramm mitten in der Ausführung optimiert wird, um IO in kürzeren Bursts zu lesen. Warum passiert dies?Warum ist der UDP-Paketempfang während der Ausführung scheinbar optimiert?
Haftungsausschluss: Ich habe den Code nicht veröffentlicht, da der Client und der Server kleine Teilmengen von komplexeren Anwendungen sind, aber ich bin bereit, es auszumerzen, wenn eine offensichtliche Antwort nicht angezeigt wird.
Werden alle Pakete empfangen? – EJP
Ich glaube schon. Das kann ich morgen überprüfen. – Ralph
Wie messen Sie eine Latenz von 20 US? Gibt es eine Anfrage Antwort? Hast du Atomuhren? Wie groß ist die Größe der Datagramme? – rodolk