サーバー時間の測定方法
OnTheSecondがすること
- サイトのサーバー時計をミリ秒単位で測ります。標準時(KRISS・GoogleのNTP)と比べ、あなたの通信の遅れも計算して、押すべき瞬間を正確に示します。
- 発売の直前まで測り続けます。発売30分前からは毎分測り、サイトの裏にあるサーバーをすべて確かめて、時計が変わったら押す時刻をすぐ直します。
- 精度を誰でも確かめられます。時計を毎日ランダムにずらした公開検証サーバーと、10分ごとの標準時の自己点検の結果を公開しています(検証結果)。
ウェブサイトのサーバー時計を標準時とミリ秒単位で比べ、設定した発売時刻まで測り直し続けます。
サーバーの時計を読む
ウェブサイトはリクエストに答えるたびに、サーバーの現在時刻を書いたDateという行を返します。この時刻は10:00:00のように秒単位までしかありません。そのため1回の応答からわかるのは、サーバーの時計がその1秒のどこかにあったということだけです。
範囲を絞り込む
仕組みは「もっと上・もっと下」で数を当てるゲームと同じです。サーバーの秒が切り替わる瞬間を見つけたいので、切り替わると予想した瞬間にリクエストを送ります。応答が:59なら、まだ切り替わっていないので答えはもっと後です。:00なら、もう切り替わっているので答えはもっと前です。どちらの場合も、残りの範囲の半分を除外できます。
1秒(1000ms)から始めて、500ms、250msと半分にしていきます。リクエストごとに送った時刻と応答が返った時刻も記録するので、1往復にかかる時間より細かくは絞りません。近いサーバーなら数ミリ秒まで絞れます。
ネットワークの遅延
回線が遅くても、結果がどちらかに偏ることはありません。範囲が広がるだけです。行きと帰りで速さが違っても、本当の値はその範囲の中にあります。そのため測定ごとに、標準時との差、±誤差、往復時間(RTT)の3つを分けて表示しています。応答が6個より少ない測定は使いません。サイトが混雑して誤差が±150msより広くなった測定は答えとしては使わず、直前の精密な測定値がまだ正しいかの確認に使います。合わなければその間に時計が変わったということなので、新しい測定に切り替え、早く届かないようクリック時刻を範囲の遅い側の端に合わせます。
基準になる標準時
当サイトのサーバーは、広く使われている時刻同期ソフトchronyでシステム時計を標準時に合わせています。さらに10分ごとに、KRISS(韓国標準科学研究院)とGoogleが運営する公開タイムサーバーで確かめ直し、往復時間がいちばん短い応答を使います。タイムサーバーの応答1つからわかるのは、本当の時刻が往復時間の半分の±の範囲内にあるということだけです。システム時計がすでにその範囲内なら、そのまま使います。範囲の外にあるときだけ補正します。
確認したこと
2026年11月1日、ソウルのサーバーから、それぞれ別の会社のCDNを使うサイトを測りました。韓国のチケットサイト3つと、海外のチケット・通販サイト10以上です。すべてがそれぞれの誤差の範囲内で標準時と一致しました。
ソウルから測るため、CDNで世界中に配置されたサイトについては、ソウルに応答するサーバーの時計を測ることになります。ほかの国の利用者に応答するのは別のサーバーかもしれません。これまでの測定ではそうしたサーバーの時計も正確でしたが、海外サイトの測定値は保証ではなく、信頼できる目安として見てください。