4

クライアントから送信されたパケットの到着時間を計算する方法を知りたいのですが。パケットと一緒にタイムスタンプ(1970年からミリ秒)を送信して、サーバー上でこのように計算しようとしました。

timestamp_on_server-timestamp_from_packet

しかし、これに伴う問題は、私も負の数を取得することであり、それは正しくありません。

では、どうすればこれを正しい方法で行うことができますか?:-)

ありがとう!

4

1 に答える 1

3

これは、マシンがタイムソースに適切に同期されていない場合は機能しません(NTPを参照)。

ただし、一般に、さまざまなノードでサンプリングされた時間に依存するのは最善の方法ではありません。代わりにできることは、ラウンドトリップ時間を測定することです(パケットはそこに送信され、送信者のタイムスタンプはそのままで反映されます)。したがって、同じタイムソースでのみ作業できます。

補足:同じマシンのクロックは、特権プロセスによって強制的に調整された場合でも元に戻る可能性があるため、負のRTT値を無視する(場合によってはログに記録する)ことをお勧めします。

于 2012-08-29T19:08:16.923 に答える