Frage

Ich bin der Aufbau eine Ethernet-Anwendung, in der i-Pakete von einer Seite wird das Senden und es auf der anderen Seite empfängt. Ich möchte wie in RFC auf der Empfängerseite Verzögerung in Paketen berechnen 3393. Also muß ich auf der Senderseite einen Zeitstempel in dem Paket gelegt und dann auf der Empfängerseite die Zeitstempel nehmen, sobald ich das Paket erhalten. Zieht man die Werte i wird den Unterschied in Zeitstempel erhalten und dann diesen Wert mit anschließender Differenz subtrahiert wird i Eine Möglichkeit bekommen ipdv zu verzögern. Sowohl die Uhren sind nicht synchronisiert. So wird jede Hilfe sehr dankbar. Danke.

War es hilfreich?

Lösung

RFC 3393 ist für die Messung des Varianz in der Paketverzögerung, nicht zum Messen der Verzögerung selbst.

Um ein Beispiel zu geben: Sie eine Video-Streaming-Anwendung zu schreiben. Sie wollen so wenig Videodaten wie möglich zu puffern (so dass das Video so schnell wie möglich zu spielen beginnt). Lassen Sie uns sagen, dass die Daten immer immer immer nimmt 20ms In diesem Fall von der Maschine A Maschine B zu kommen (und diese Maschine A unter der Annahme, kann so schnell die Videodaten senden, wie es muss spielen), Sie don‘ t müssen überhaupt einen Puffer. Sobald Sie den ersten Frame empfangen, können Sie spielen, in dem sicheren Wissen beginnen, dass der nächste Frame durch die Zeit benötigt wird, wird es angekommen sind (da die Daten immer genau 20 ms dauert ankommen und Maschine A sendet zumindest als schnell, wie Sie spielen).

Das funktioniert, egal wie lange, dass 20ms ist, solange es ist immer das gleiche. Es könnte 1000 ms sein - der erste Frame 1000 ms dauert, um anzukommen, aber man kann immer noch beginnen, sobald es kommt zu spielen, weil der nächste Rahmen auch 1000ms nehmen und wurde direkt hinter dem ersten Rahmen gesendet - mit anderen Worten, es ist bereits auf dem Art und Weise und wird in Kürze hier sein. Offensichtlich ist die reale Welt ist nicht so.

Nehmen Sie das andere Extrem: die meiste Zeit, Daten in 20 ms ankommt. Außer manchmal, wenn es dauert 5000ms. Wenn Sie keinen Puffer und die Verzögerung auf die Bilder 1 bis 50 zu halten ist 20ms, dann erhalten Sie die ersten 50 Frames ohne Probleme zu spielen. Dann Rahmen 51 nimmt 5000ms zu kommen und Sie sind für 5000 ms ohne Videodaten links. Der Benutzer geht und besucht eine andere Website für ihre niedlichen Katzenvideos. Was Sie wirklich ein Puffer von 5000 ms von Daten erforderlich war -. Dann hätte man schon in Ordnung

Langes Beispiel kurzer Punkt: Sie sind nicht daran interessiert, was die absolute Verzögerung auf den Paketen ist, sind Sie daran interessiert, was die Varianz in dieser Verzögerung ist -. das ist, wie groß Ihr Puffer sein muss,

Um den absolute zu messen Verzögerung, Sie würden die Uhren auf beiden Maschinen synchronisiert werden müssen müssen. Maschine A würde ein Paket mit Zeitstempel 12337849227 sendet 28 und wenn das kam zu Maschine B zum Zeitpunkt 12337849227 48 , werden Sie wissen, dass das Paket 20ms genommen hatte dorthin zu gelangen.

Aber da Sie in die interessiert sind Varianz , müssen Sie (als RFC 3393 beschreibt) mehrere Pakete von Maschine A. Maschine A sendet Paket 1 mit Zeitstempel 1233784922 72 8, dann 10 ms später das Paket 2 mit dem Zeitstempel sendet 1233784922 73 8, dann 10 ms später sendet Paket 3 mit Zeitstempel 1233784922 74 8.

Maschine B empfängt das Paket 1 an, was es denkt, ist 1233784922 Zeitstempel 12 8. Die Einwegverzögerung zwischen Maschine A und Maschine B hat in diesem Fall (aus Sicht der Maschine B) -600ms gewesen. Das ist natürlich völliger Quatsch, aber wir kümmern uns nicht. Maschine B empfängt das Paket 2 an, was es denkt, ist Timestamp 1233784922 15 8. Die Einwegverzögerung -580ms gewesen. Maschine B empfängt Paket 3 an, was es denkt, ist Timestamp 1233784922 16 8. Die Einwegverzögerung wurde wieder -580ms.

Wie oben erwähnt, ist uns egal, was die absolute Verzögerung ist - so wir kümmern uns nicht, auch wenn sie negativ ist, oder drei Stunden, oder was auch immer. Was kümmert uns ist, dass der Betrag der Verzögerung von 20 ms variiert. Sie müssen also einen Puffer von 20 ms von Daten.

Beachten Sie, dass ich über die Frage der Uhr vollständig bin polier hier driften (das heißt, so die Uhren auf Maschinen A und B läuft bei leicht unterschiedlichen Raten, dass zum Beispiel Maschine A Zeit mit einer Rate von 1,00001 Sekunden für jeden vorrückt Sekunde, die tatsächlich übergeben wird). Während diese Ungenauigkeit bei den Messungen einführt, ihre praktische Wirkung ist nicht wahrscheinlich, in den meisten Anwendungen ein Problem sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top