Ich habe eine Anwendung, die aus zahlreichen Systemen besteht, die UDP-Clients an entfernten Standorten verwenden. Alle Clients senden UDP-Pakete zur Verarbeitung an einen zentralen Ort. In meiner Anwendung ist es wichtig, dass der zentrale Standort weiß, zu welcher Zeit das Paket vom entfernten Standort gesendet wurde.UDP-Verzögerungspotenzial
Wäre es aus Sicht des Designs "sicher" anzunehmen, dass der zentrale Standort die Pakete bei ihrer Ankunft mit einem Zeitstempel versehen und diese als "Sendezeit" verwenden könnte? Da die App UDP verwendet, sollten die Pakete entweder sofort ankommen oder gar nicht ankommen? Die andere Möglichkeit wäre, eine Art Zeitsynchronisierung für jeden entfernten Standort einzurichten. Der Nachteil dabei ist, dass ich dann ständig sicherstellen müsste, dass die Zeitsynchronisierung an jedem von möglicherweise hunderten entfernten Standorten funktioniert.
Meine Frage ist, ob Timestamping der UDP-Pakete an der zentralen Stelle, um "Sendezeit" zu bestimmen, ein potenzieller Fehler ist. Kann es zu Verzögerungen mit UDP kommen?
Wie genau soll es sein? Bis auf die Minute? Zweite? Millisekunde? –
Bis auf die Sekunde. – Mike
Ich weiß überhaupt nichts über Netzwerkprogrammierung, also werfe ich das als Option aus, aber ich frage mich, ob Sie annehmen könnten, dass es eine Verzögerung gibt und leicht kompensieren kann? So etwas wie ein Handshake-Verfahren ... wenn also ein Remote-Client eine Verbindung zum zentralen Standort herstellt, wird er vielleicht 1000 Mal gepingt und Sie behalten ein Wörterbuch? Ich bin sicher, es ist keine großartige Lösung, aber es scheint sicher besser, als keine Verzögerung zu unterstellen. –
NickHalden