私は、一方の側からパケットを送信し、もう一方の側でそれを受信するイーサネットアプリケーションを構築しています。RFC 3393のように、受信側でパケットの遅延を計算したいので、送信側でパケットにタイムスタンプを入れ、パケットを受信したらすぐに受信側でタイムスタンプを取得する必要があります。値iを減算すると、タイムスタンプの差が取得され、この値を後続の差で減算すると、一方向ipdv遅延が取得されます。両方のクロックが同期されていません。 ですから、どんな助けでも大歓迎です。ありがとうございました。
1 に答える
RFC 3393 は、パケット遅延の分散を測定するためのものであり、遅延自体を測定するためのものではありません。
例を挙げると、ビデオ ストリーミング アプリケーションを作成しているとします。ビデオの再生をできるだけ早く開始するために、できるだけ少ないビデオ データをバッファリングする必要があります。データがマシン A からマシン B に到達するのに常に20 ミリ秒かかるとしましょう。この場合 (そして、マシン A が再生に必要な速度でビデオ データを送信できると仮定すると)、バッファはまったく必要ありません。最初のフレームを受信するとすぐに、安全に再生を開始できます。次のフレームが必要になるまでには到着しているはずです (データが到着するまでに常に正確に 20 ミリ秒かかり、マシン A は少なくともあなたが遊んでいるのと同じように速く)。
これは、常に同じである限り、20 ミリ秒の長さに関係なく機能します。それは 1000 ミリ秒かもしれません - 最初のフレームが到着するまでに 1000 ミリ秒かかりますが、次のフレームも 1000 ミリ秒かかり、最初のフレームの直後に送信されたため、到着したらすぐに再生を開始できます。しばらくここにいます。もちろん、現実世界はそうではありません。
もう一方の極端な例を見てみましょう。ほとんどの場合、データは 20 ミリ秒で到着します。5000ミリ秒かかる場合を除いて。バッファを保持せず、フレーム 1 ~ 50 の遅延が 20 ミリ秒の場合、最初の 50 フレームを問題なく再生できます。次に、フレーム 51 が到着するまでに 5000 ミリ秒かかり、5000 ミリ秒の間、ビデオ データがないままになります。ユーザーは、かわいい猫の動画を求めて別のサイトにアクセスします。本当に必要だったのは、5000 ミリ秒のデータのバッファーでした。それなら問題ありませんでした。
長い例、短いポイント:パケットの絶対的な遅延が何であるかには関心がなく、その遅延の分散が何であるかに関心があります-それはバッファがどれだけ大きくなければならないかです.
絶対遅延を測定するには、両方のマシンのクロックを同期させる必要があります。マシン A はタイムスタンプが 12337849227 28のパケットを送信し、それが時間 12337849227 48にマシン B に到着したとき、パケットがそこに到達するまでに 20 ミリ秒かかったことがわかります。
しかし、分散に関心があるため、(RFC 3393 で説明されているように) マシン A からいくつかのパケットが必要です。マシン A はタイムスタンプ 1233784922 72 8 でパケット 1 を送信し、10 ミリ秒後にタイムスタンプ 1233784922 73 8 でパケット 2 を送信し、10 ミリ秒後に送信します。タイムスタンプ 1233784922 74 8 でパケット 3 を送信します。
マシン B は、タイムスタンプ 1233784922 12 8と考えられる時点でパケット 1 を受信します。マシン A とマシン B の間の一方向の遅延は、この場合 (マシン B の観点から) -600ms です。これは明らかに完全なゴミですが、気にしません。マシン B は、タイムスタンプ 1233784922 15 8と考えられる時点でパケット 2 を受信します。一方向の遅延は -580ms です。マシン B は、タイムスタンプ 1233784922 16 8と考えられる時点でパケット 3 を受信します。一方向の遅延は、再び -580 ミリ秒でした。
上記のように、絶対的な遅延が何であるかは気にしません。つまり、それが負の値であろうと、3 時間であろうと、何であろうと気にしません。私たちが気にしているのは、遅延の量が 20ms 変動したことです。したがって、20 ミリ秒のデータのバッファーが必要です。
ここでは、クロック ドリフトの問題を完全に説明していることに注意してください (つまり、マシン A と B のクロックはわずかに異なる速度で実行されているため、たとえばマシン A の時間は、実際には 1 秒ごとに 1.00001 秒の速度で進みます)。合格した)。これにより測定が不正確になりますが、実際の影響はほとんどのアプリケーションで問題になることはありません。