PCやスマホの時計がズレない仕組み:原子時計からStratum階層で時刻を配る「NTP」の数理と構造
普段スマートフォンやパソコンを使っていて「時計の時刻を合わせる」という意識を持つことはほとんどなくなりました。電波時計のように窓際に置かなくても、インターネットに繋がっているだけで秒針が寸分違わず合っているのは、冷静に考えるとものすごくありがたい恩恵です。
遅延や通信の揺らぎが避けられないインターネットを経由して、なぜ世界中の端末がミリ秒単位の正確さを保ち続けられるのか。その根幹を支えるプロトコル「NTP(Network Time Protocol)」の階層構造(Stratum)と、通信遅延を相殺する計算の仕組みについて調べた内容を整理しました。
1. NTPの階層構造(Stratum:ストラタム)
世界中にある無数の端末が直接1台の正確な時計にアクセスすると、回線やサーバーが一瞬でパンクしてしまいます。そのため、NTPではStratum(ストラタム)と呼ばれる0から15までのピラミッド型階層構造を採用し、バケツリレー方式で時刻を配信しています。
各階層(Stratum)の役割
- Stratum 0(物理基準時計):セシウム原子時計やGPS衛星、ルビジウム発振器など、極めて精度の高い時刻を刻む物理ハードウェア。ネットワーク上には直接接続されません。
- Stratum 1(最上位NTPサーバー):Stratum 0の機器に直接接続され、ネットワーク上で一次基準となるサーバー。
- Stratum 2:Stratum 1から時刻情報を受け取るサーバー。大手インターネットサービスプロバイダ(ISP)やクラウド事業者、研究機関などが運用しています。
- Stratum 3以下 / クライアント:上位サーバーから時刻を受信し、社内ネットワークや一般のPC・スマートフォンへさらに配信します。
- Stratum 16(非同期):同期が取れていない、または到達不能な状態を示します。
このように階層化して負荷を分散することで、巨大なトラフィックを捌きながら全世界で安定した同期を実現しています。
2. 通信遅延を相殺する「誤差補正」の数理
インターネットを経由して時刻を受信する場合、どうしても「パケットの往復時間(通信遅延)」が発生します。単に受信した時刻をそのまま設定すると、通信にかかった時間分だけ時計が遅れてしまいます。
NTPはこの遅延を4つのタイムスタンプを使って数理的に相殺しています。
4つのタイムスタンプ
- $T_1$:クライアントが同期リクエストを送信した時刻
- $T_2$:サーバーがリクエストを受信した時刻
- $T_3$:サーバーが応答パケットを返信した時刻
- $T_4$:クライアントが応答パケットを受信した時刻
往復遅延と時刻ズレ(オフセット)の計算
「行き(クライアント→サーバー)」と「帰り(サーバー→クライアント)」の伝送時間が等しいという前提のもと、次の2つの値を算出します。
- ネットワークの往復遅延(Delay):
$$Delay = (T_4 - T_1) - (T_3 - T_2)$$
全体の往復にかかった時間から、サーバー内部での処理時間を引いた純粋な通信時間です。
- 時計のズレ量(Offset):
$$Offset = \frac{(T_2 - T_1) + (T_3 - T_4)}{2}$$
クライアントはこのオフセット値を元に自端末の時計を微調整します。急激に時間を進めたり戻したりするとシステム上の不具合が起きるため、わずかに時計の進むスピードを早めたり遅くしたりしながら、徐々に正確な時刻へと収束させていく制御(Slewモード)が一般的です。
3. なぜ端末の時刻がズレると大問題になるのか?
「時計が数秒ズレるくらいなら実害はないのでは」と思われがちですが、現代のネットワークシステムにおいて時刻の狂いは致命的なエラーを引き起こします。
- SSL/TLS証明書の検証エラー: Webサイトの通信を暗号化する電子証明書には厳密な有効期限(開始・終了)が設定されています。端末の時計が数分ズレているだけで「証明書が期限切れ」または「まだ有効になっていない」と判定され、ブラウザでWebサイトが開けなくなります。
- 二段階認証(TOTP)の不一致: Google Authenticatorなどのワンタイムパスワードは、端末の現在時刻と暗号鍵を掛け合わせて30秒ごとにコードを生成しています。時刻がズレているとサーバー側とコードが合致せず、ログイン不能に陥ります。
- ログ解析やトランザクションの破綻: 障害発生時のログ突き合わせが困難になるだけでなく、データベースで「どちらのデータ更新が先だったか」の順序判定(整合性)が崩れ、データ破損につながります。
まとめ
PCやスマホの時計が狂わない背景には、物理的な原子時計を頂点とする堅牢な階層配信(Stratum)と、通信の往復遅延を巧みに相殺するNTPの洗練されたアルゴリズムが存在します。
普段は意識することすらない技術ですが、インターネットを安全かつ正常に使い続けるために、時刻同期はなくてはならない土台として休まず稼働しています。