NTPのStratum階層とGPS時刻同期の仕組み

Windowsの時刻がずれやすいと感じたことをきっかけに、NTPの仕組みやStratum階層、GPSを用いた時刻同期について調べた内容をまとめる。

NTPとは

NTP(Network Time Protocol)は、ネットワーク上の機器間で時刻を同期するためのプロトコルである。現在広く使われているのはNTPv4(RFC 5905)で、1985年の初版から改良が重ねられている。

NTPはStratum(階層)と呼ばれるツリー構造で時刻を配信する。上位の正確な時刻源から下位へ順に同期することで、ネットワーク全体の時刻精度を維持している。

Stratum階層

NTPのStratum階層は以下のように定義される。

  • Stratum 0 : 基準時刻源そのもの。原子時計やGPS受信機などのハードウェアデバイスが該当する。Stratum 0はネットワーク上のサーバではなく、シリアルポートやUSBなどでStratum 1サーバに直接接続される
  • Stratum 1 : Stratum 0に直接接続されたNTPサーバ。プライマリタイムサーバとも呼ばれる
  • Stratum 2以降 : 上位のStratumサーバに同期するサーバ。数字が大きくなるほど基準時刻源から離れており、累積する遅延やジッタの影響を受けやすくなる
  • Stratum 16 : RFC 5905において「未同期」を意味する特別な値。有効なStratumは0から15までであり、Stratum 16のサーバは同期が確立されていないことを示す

一般的に、Stratumの数値が小さいほど基準時刻源に近く、精度が高い傾向にある。ただし、Stratumはあくまで基準時刻源からのホップ数を示す指標であり、ネットワーク品質やサーバの構成によっては、Stratumが低いからといって必ずしも最終的な同期精度が優れるとは限らない。

GPSが時刻源になる理由

GPS衛星は軌道上で正確に位置を特定し測位信号を送信する必要があるため、各衛星に原子時計が搭載されている。GPS受信機はこの信号から高精度な時刻情報を取得できる。

GPSによる測位の仕組みも時刻に基づいている。GPS受信機は複数の衛星から受信した信号の到達時間差を利用して、各衛星までの距離を算出し、三辺測量(trilateration)の原理で自身の位置を特定する。つまり、GPSとは本質的に「高精度な時刻配信システム」であり、測位はその応用にすぎない。

このため、GPS受信機はNTPにおけるStratum 0の基準時刻源として利用できる。GPS受信機をコンピュータに接続し、gpsdやchronyなどのソフトウェアで構成すれば、そのコンピュータはStratum 1のNTPサーバとして機能する。

Windowsの時刻ずれ

Windowsは既定でtime.windows.comをNTPサーバとして使用する。時刻のずれが生じる原因としては、同期の頻度や精度の設定が一般的なユースケース向けに最適化されていることが挙げられる。Windowsの時刻同期サービス(W32Time)はもともとKerberos認証の要件を満たす程度の精度を想定しており、高精度な時刻同期を目的として設計されたものではない。

NTPサーバをより信頼性の高いものに変更することで、ある程度の改善が期待できる。

Cloudflare Time Service

Cloudflareは無料の公開NTPサービスとして time.cloudflare.com を提供している。世界中に分散されたエニーキャストネットワークを活用しており、地理的に最も近いサーバから時刻を取得できる。NTPに加えて、NTS(Network Time Security)にも対応しており、時刻同期の安全性を高められる点が特徴である。

自作Stratum 1サーバについて

前述の通り、GPS受信機をコンピュータに接続してNTPサーバを構成すれば、原理上はStratum 1サーバを自作できる。しかし、実用上考慮すべき点がある。

  • GPS信号の受信には屋外にアンテナを設置するか、窓際など空が見える環境が必要になる
  • 安定した運用には、受信機の品質、ソフトウェアの適切な設定、継続的なメンテナンスが求められる
  • 自分だけが利用するNTPサーバにこうした構成を組む費用対効果は高くない

個人利用においては、Cloudflareやpool.ntp.orgなどの実績ある公開NTPサービスを利用するのが現実的な選択である。これらのサービスは十分な精度と可用性を備えており、一般的な用途では不足を感じることはない。

Read more

暇が怖いだけ

今日あなたが「忙しい」と口にした回数を数えてみるといい。三回を超えていたら、それはもう事実の報告ではない。呪文だ。唱え続けることで、自分に存在価値があると確認するための。 忙しさは現代における最も手軽な自己証明になった。忙しくしていれば、少なくとも何かをしていることにはなる。何かをしていれば、生きている意味を問わなくて済む。逆に言えば、暇になった途端に、その問いが戻ってくる。だから人は忙しくする。忙しくあろうとする。忙しいと言いたがる。鎖を愛した動物のように、自分でかけた拘束を手放せない。 ここに一つ、居心地の悪い問いを置いておく。あなたが一日のなかで一番多くの時間を費やしていることは、あなたが一番大切にしていることと一致しているか。一致していないとしたら、その時間は誰のものなのか。 守られない時間 約二千年前、ストア派の哲学者セネカは『人生の短さについて』でこう嘆いた。人は財産や金のことになると吝嗇になるのに、時間を浪費することには驚くほど無頓着だ、と。時間こそ、最も惜しむべきものであるにもかかわらず。 この指摘は二千年経っても古びていない。むしろ悪化している。 財布か

By Sakashita Yasunobu

意味という病

あなたの人生に意味があるかどうか、宇宙は一度も気にしたことがない。 太陽は46億年前から燃えている。地球は回り続けている。そのどこにも、あなたの存在を前提とした設計図はない。もし明日、人類がまるごと消えたとしても、星は瞬き続ける。海は満ちて引く。何も変わらない。 それなのに、人は意味を求める。仕事に意味を、人間関係に意味を、生きていること自体に意味を。朝起きるたびに、意識するにせよしないにせよ、「なぜ」という問いがどこかで回っている。 これは病だと思う。 治す方法があるのかどうかも分からない、厄介な病だ。 観客のいない劇場 一つ、思考実験をしてみる。 もし宇宙のどこにも、人間以外の知的生命体がいなかったとしたら。誰も人類の存在を知らず、誰も観察しておらず、誰も記録していなかったとしたら。人間がこの星の上で営んできたすべてのこと、文明、芸術、戦争、愛、それらに意味はあるだろうか。 直感的には「ある」と言いたくなる。でも、その「ある」の根拠を言語化しようとすると、途端に足元が崩れる。 意味というのは、誰かがそれを認識して初めて成立するものだという立場がある。であれば、宇

By Sakashita Yasunobu

優しい人から壊れる

友人が泣いている。あなたはその隣に座って、背中をさする。言葉が見つからないまま、ただそこにいる。胸が詰まる。相手の苦しみが、自分の胸にも流れ込んでくるような気がする。 それは美しい光景だ、と誰もが言う。 ただ、もう少しだけ先を考えてみてほしい。あなたが感じているその痛みは、本当に相手の痛みだろうか。それとも、相手の痛みに触発された、あなた自身の別の何かだろうか。そして、その区別がつかなくなったとき、壊れるのはどちらだろう。 スポットライトの外は暗い 共感には奇妙な性質がある。近くにあるもの、目に見えるもの、名前と顔があるものに、不釣り合いなほど強く反応する。 イェール大学の心理学者ポール・ブルームは2016年の著書 Against Empathy で、共感をスポットライトに喩えた。照らされた一点だけが鮮やかに浮かび上がり、その外側は真っ暗なままだ。一人の子どもが井戸に落ちれば世界中が涙を流すが、統計の中で消えていく数万の子どもたちには何も感じない。 ブルームの指摘はさらに厄介な方向へ進む。共感はバイアスに満ちている。自分に似た人、魅力的な人、同じ民族や国籍の人に対して、よ

By Sakashita Yasunobu

何も起きなかった日

先月の火曜日に何をしていたか、思い出せるだろうか。 おそらく思い出せない。それは記憶力の問題ではなく、何も起きなかったからだ。何も起きなかった日は記憶に残らない。記憶に残らない日は、振り返ったとき、最初からなかったのと区別がつかない。 人生の大半は、こういう日でできている。 溶けていく曜日 子供の頃の夏休みは果てしなく長かった。35日間が、体感では半年くらいあった。ところが大人になると、半年が体感で35日くらいになる。時間の流れ方が、どこかで反転している。 神経科学者のデイヴィッド・イーグルマンは、この現象を記憶の密度から説明している。脳は新しい経験に遭遇すると、より多くの情報を符号化する。記憶が密であれば、あとから振り返ったとき、その期間は長く感じられる。逆に、毎日が同じパターンの繰り返しなら、脳は記録すべきものをほとんど見つけられない。記憶はスカスカになる。スカスカの記憶を振り返ると、時間はあっという間に過ぎたように感じる。 つまりルーティンは、主観的な人生を縮めている。比喩ではない。知覚の構造として、そうなっている。毎日同じ道を歩き、同じ時間に同じ席に座り、同じもの

By Sakashita Yasunobu