クロックオフセットとは?

クロックオフセットは、ローカルシステムクロックと真の参照時刻(この場合はサーバーのクロック)の差です。オペレーティングシステムはNTP(Network Time Protocol)を使用してクロックの同期を保とうとしていますが、数ミリ秒から数秒の小さな誤差は一般的です。特に最近同期していないデバイスや厳密なファイアウォールの背後にあるデバイスではこれが顕著です。

クロックオフセットを理解することは、分散システム、リアルタイムアプリケーション、認証トークン(TOTP など)、スケジュール済みタスク、およびクライアントとリモートサーバーが現在時刻に同意する必要があるあらゆるシナリオで重要です。大きなオフセットは、トークン検証エラー、期限切れ、またはログ内の不正なタイムスタンプを引き起こす可能性があります。

ツール説明

このツールは、WebSocket ベースのタイミングプロトコルを使用してブラウザとサーバー間のクロックオフセットを測定します。一連のラウンドトリッププローブを送信し、各プローブのレイテンシを記録し、中央値ラウンドトリップ時間(RTT)を使用してローカルクロックがサーバーに対してどの程度進んでいるか、または遅れているかを計算します。測定後、ツールはサーバー時刻のライブ実行推定値をローカル時刻と並べて表示するため、リアルタイムで差を観察できます。

動作方法

ツールはサーバーへの WebSocket 接続を開き、一連のタイムスタンプ付き ping/pong メッセージを交換します。各メッセージについて:

  1. クライアントは送信時刻を記録し、応答でサーバーのタイムスタンプを受け取り、受信時刻を記録します。
  2. ラウンドトリップ時間の半分は、一方向ネットワーク遅延の推定値として使用されます。
  3. クロックオフセットは次のように計算されます:serverTime − clientTime − (RTT / 2)

10 個のサンプルが収集され、中央値 RTT が使用されます。平均ではなく、GC ポーズまたは一時的なネットワークジッターによる外れ値スパイクの影響を軽減するためです。結果として得られるクロックオフセットは、ローカルクロックがサーバーより何ミリ秒進んでいるか(正)または遅れているか(負)を示します。

機能

  • WebSocket ベースの測定 — HTTP オーバーヘッドなしで正確なタイミングプローブのためにリアルタイム双方向通信を使用します
  • 中央値 RTT フィルタリング — 10 個のサンプルを収集し、中央値を使用してジッターと外れ値スパイクを排除します
  • ライブクロック表示 — 測定後、推定サーバー時刻とローカル時刻を並べて継続的に更新して表示します