2012-04-11 8 views
1

Ich habe eine Maschine, die Pakete mit einer konstanten Rate (eine jede x Millisekunden) an eine andere sendet. Ich muss die Einwegverzögerung für jedes Paket messen. Eine Idee könnte sein, dass die erste Maschine den Moment aufzeichnet, wenn sie das erste Paket gesendet hat, und nachdem alle Übertragungen durchgeführt wurden, lassen Sie die zweite Maschine davon wissen, damit sie die Verzögerung für jedes Paket berechnen kann, beginnend bei diesem Wert.Messung der Einweg-Paketverzögerung: Irgendwelche Synchronisation benötigt?

Benötige ich hier eine bestimmte Synchronisation? Ich weiß nicht, ob dies zu einem erheblichen Fehler bei meinen Messungen führen wird.

+0

https://en.wikipedia.org/wiki/Minimum-Pairs_Protocol –

Antwort

0
  1. Senden Sie 10k One-Way-Pakete an das Ziel.
  2. eine „fertige“ Nachricht an das Ziel senden
  3. Ziel antwortet mit „alle empfangen“
  4. Sobald die Antwort wissen, kommt, wie es dauerte lange

Sie werden einen kleinen systematischen Fehler haben in die Messung wegen der Bestätigungsnachricht benötigt, aber das wird klein sein. Mit realen Latenzen funktioniert es völlig. Die berechnete Latenz ist: (a*10000+a+b)/(10000+1+1). Für a ~ b wird dieser Begriff nur a.

Alternativ können Sie die Uhren (schwierig) synchron synchronisieren und Zeitstempel senden.

+0

Das ist eine Idee, yeah. Aber ich muss in der Lage sein, das Zeitintervall zwischen jedem Paket zu skalieren, so dass ich den Link sättigen kann, es nicht überlaste, etc. –

+0

Ich habe Alternativen hinzugefügt. – usr

+0

Wenn Sie nur die Verbindung sättigen möchten, warum erhöhen Sie nicht die Last, während Sie den Paketverlust messen? Sie können den optimalen Punkt auf diese Weise finden. – usr