時刻同期の仕組み

目次

時刻同期の仕組み

NTPサーバによる時刻同期は、基本的な動作としてはNTPサーバへ時刻情報をリクエストして、NTPサーバからの応答に基づいて自身のシステムクロックを調整します。

説明だけを聞くと簡単そうに見えますが、実はこの時刻の調整にはより精緻な仕組みが隠されています。

NTPクライアントからNTPサーバへリクエストし、応答が返ってくる際には、ネットワーク経路を通ります。

このネットワーク経路では、情報の伝達にどうしても遅延が発生しますし、その遅延はタイミング毎に異なるため一定ではありません。

このような状態では、いくら正確な時刻をNTPサーバが伝えようとしても、NTPクライアントに届く頃にはズレた時刻が伝わってしまうのです。

そこでNTPクライアントは、NTPサーバとの間で複数回のパケット交換を行い、ネットワークの往復時間を測定します。

この過程で送信時刻と受信時刻を記録し、現在のネットワーク遅延を算出するのです。

NTPによる遅延時間の計算
算出された遅延時間の結果に基づいて、NTPサーバから受け取った時刻を調整し、NTPクライアントは正確な時間を取得するのです。

NTPサーバの階層構造(ストラタム)

NTPクライアントは、NTPサーバより時刻を受けとり同期することで、正確な時刻とします。

しかし、ここで問題があります。

NTPクライアントが同期するNTPサーバの時刻が正確でないと意味がないのです。

例えば、NTPサーバが10分遅れの時間だと、そのNTPサーバと同期するサーバ達は全員10分遅れの時刻となってしまいます。

NTPサーバによる誤った時刻の伝達
なので、NTPサーバは世界中の大量のサーバが正確な時刻を取得できるような同期の仕組みとしてストラタムという階層構造を取っています。

階層構造は、上から順にストラタム0、ストラタム1、ストラタム2・・・と順に振られていきます。

この階層構造でいうと、最上位のストラタム0が最も正確な時間を刻んでいないといけませんよね。

そのため、ストラタム0は「原子時計」や「GPS受信機」など超高精度な物理デバイスとなっています。

これらの物理デバイスは直接ネットワークにつないであるようなサーバではないため、ストラタム1となるNTPサーバが物理デバイスに直接接続して、ストラタム2以降のサーバへ時刻を伝達していきます。

ストラタム0がある場所
ストラタム0は世界中に複数あります。

例えば、国立研究機関や標準時を管理する機関(日本の場合は情報通信研究機構NICT、アメリカならNIST)が所有する原子時計、世界中に配備されているGPS衛星群(約30基)とそれらの信号を受信するGPS受信機などがあります。

意外と多くあるんですね。

有名なものだけピックアップして表にしておきます。

国/地域 機関/施設名 ストラタム0デバイス 特徴
アメリカ 米国標準技術研究所(NIST) セシウム原子時計、水素メーザー UTC(NIST)を生成し、米国の標準時を維持
イギリス 国立物理学研究所(NPL) セシウム原子フォンテン時計 グリニッジ標準時(GMT)の元となる高精度時計を管理
フランス パリ天文台(BIPM) 複数の原子時計 国際原子時(TAI)と協定世界時(UTC)を決定する中心的機関
日本 情報通信研究機構(NICT) セシウム原子時計、光格子時計 日本標準時(JST)を生成・維持する施設
ドイツ 物理工学研究所(PTB) セシウム原子時計、光時計 ヨーロッパにおける主要な時刻基準施設
中国 国家授時中心(NTSC) セシウム・ルビジウム原子時計群 中国標準時を維持し、BeiDou衛星システムの時刻源
全世界 GPS衛星コンステレーション 各衛星に搭載された原子時計 全世界にカバレッジを提供する時刻源としても機能
カナダ 国立研究評議会(NRC) セシウム原子時計 カナダの公式時刻を維持する機関

これらのストラタム1から時刻を取得するNTPサーバがストラタム2に分類されます。

基本的に、一般企業はストラタム1のNTPサーバに時刻同期を行うことはできません

ストラタム1のNTPサーバは重要な時刻インフラのため、過負荷が発生してはならないため、原則として許可された機関のみが同期可能です。

そして、その選ばれた機関がストラタム2として、時刻同期を一般公開してくれています。

個人や一般企業はこのストラタム2と時刻同期をするストラタム3のNTPサーバを構築し、その後に自社内の各システムのNTPクライアントがストラタム4として同期するような流れが一般的です。

NTPサーバのストラタム
そして、このような階層構造となるため、NTPサーバはNTPクライアントの機能も持ち合わせており、上位階層のNTPサーバに対してはNTPクライアントにより自分の時刻を同期し、NTPサーバとして下位のNTPクライアントへ時刻を提供するという2面性を持っているのです。

ストラタム2のNTPサーバ一覧

一般企業でも利用可能なストラタム2のNTPサーバの一覧を表にしました。

基本的に無料なものが多いですが、使用する際は各組織の利用ポリシーを確認してください。

また、信頼性は管理人の独断と偏見ですので、参考までとしてください。

サーバ名/プール 運営組織 アクセス制限 利用料 信頼性 備考
ntp.nict.jp 情報通信研究機構(NICT) 一般公開 無料 非常に高い 日本標準時を提供する公的機関のNTPサーバ。多くの企業で第一選択として利用
jp.pool.ntp.org NTPプールプロジェクト 一般公開 無料 高い(冗長性あり) 複数のサーバが冗長構成されており、一部のサーバ障害に強い
ntp.jst.mfeed.ad.jp MFEED 一般公開 無料 高い IXを運営する事業者のため、ネットワークの安定性が高い
ntp.ring.gr.jp WIDE Project 一般公開 無料 比較的高い 研究プロジェクトによる運用だが長期的に安定している
time.google.com Google 一般公開 無料 非常に高い グローバル企業の堅牢なインフラで提供されている
ntp.OCN.ad.jp NTT OCN OCN契約者のみ OCN契約料に含む 高い 大手ISPによる契約者向けサービス
ntp-a1.nict.go.jp
ntp-b1.nict.go.jp
ntp-c1.nict.go.jp
情報通信研究機構(NICT) 一般公開 無料 非常に高い NICTの冗長構成サーバ。国内で最も信頼されるNTPソース
time.windows.com Microsoft 一般公開 無料 高い 主にWindows機器向けだが一般利用も可能
ntp.jst.co.jp 日本科学技術振興機構 一般公開 無料 中〜高 学術機関による運用で比較的安定している

まとめ

NTPサーバの時刻同期の仕組みを解説しました。
正確な時刻を世界中のシステムで同期するために、このような階層構造を作っていることに驚いていただけたでしょうか?

日本でもストラタム2として一般公開してくださっている機関があり、それにより各システムは正確な時刻を利用できているのです。

もし使用する際には、高負荷を掛けないようにNTPの同期頻度を適切に設定するなど、他にも利用されていることを念頭に設計しましょう。