インターネットにつなげると時間が正確になるのです
ずいぶんご無沙汰しております。葛の葉です。
いつのまにか5月に突入しており、びっくりしております。時計をちゃんと見ていないと、日付ってわからなくなりますよね。ところで(?)、スマートフォンやパソコンをインターネットにつなげると、すぐに正確な時刻に修正されることをご存知でしょうか。
これって、実はすごいことだと思いませんか?ほんの10数年前までは、「117」の時報に電話をして、それに併せておかしくなった時計を手動で直していたのです。ですが、現在はインターネットに接続すれば、時間を確認することも、直すのも自動なのです。
今回はスマートフォンやパソコンの時刻を正確に直す仕組みについて、書いていこうと思います。
「正確な時刻」を知っているNTPサーバーさんに聞いているわけです
すごーく簡単な話をしますと、ネットワークを介して、正確な時刻を知っているNTPサーバーさんと呼ばれるコンピューターに定期的に現在の時刻を確認しているからなんです。
ほんとそれだけ。
正確な時刻を知っているNTPサーバーさんに対してスマートフォンやパソコンが「いま日本の時間は何時なのん?」って聞いていまして、
NTPサーバーさんは「あー…日本だと…2018年のぉ…5月3日の水曜日でぇ…10時14
分23秒だねぇ」って言ってるだけなんです。
それを聞いたスマートフォンやパソコンは「OK~じゃあ、その時間にするわ~」っていって、時刻の修正を行います。
こうやって、正確な時刻になっているわけなんですね。
ちょっとまてよ、どうしてNTPサーバーさんは正確な時刻を知っているのだろう?
NTPサーバーさんもまた聞きなわけです
NTPサーバーさんはどうして正確な時刻を知っているのだろう?そもそもNTPサーバーさんが知っている時刻って正確なのだろうか?適当な時間を言ってないだろうか?
実は、NTPサーバーさんが正確な時刻を知っているのは、NTPサーバーさんも別のNTPサーバーさんに時刻を聞いているのです。つまり、また聞きをしているのです。
NTPサーバーさんはインターネットに沢山いまして、階層構造になっております。上長だったり、ボスがいるみたいに思ってください。
NTPサーバーさんはボスのNTPサーバーさんに「親分、今の時間は何時ですかい?」と聞いて、ボスのNTPサーバーさんは「おう、今は何月何日の何時何分何秒だぜぃ」と教えています。そして、そのボスのNTPサーバーさんも、自分よりも上のボスのNTPサーバーさんから時刻を教えてもらっています。
なんてこった。また聞きのまた聞きを繰り返していくわけですね。
しかしそうなると、最後のボスのNTPサーバーさんは誰から「正確な時刻」を聞いているのだろう?
Stratum0と呼ばれるNTPサーバーさんのボス、つまりはトップ
先程、NTPサーバーさんは沢山いて、段階構造になっていると書いたと思います。その階層構造のことをStratum(ストラタム、ストレイタムとも)と呼びます。
トップのNTPサーバーさんのことをStratum1と呼び、その下流にいくにつれStratum2、3、4…と数字が増えていきます。先程のボスの例えで言えば、Stratum3のNTPサーバーさんのボスはStratum2に当たります。
Stratum1のNTPサーバーさんはStratum0に時刻を聞きます…このStratum0さんは何者かと言うと原子時計であったりGPS時計であったりするのです。
専門的なことはよくわからないですけど、原子時計もGPS時計もかなり正確な時刻を刻むものらしいので、その時計から時間を聞いているのでStratum1のNTPサーバーさんは正確な時刻を知ることが出来ているわけなんですねぇ。
きちんとした情報源からまた聞きを繰り返してきて、最終的にスマートフォンやパソコンは正確な時刻を把握しているわけなんです。
鳥瞰的に考えてみよう
じゃあ最初からまた聞きなんかしないで、Stratum0にみんなが時間を聞けばいいじゃん!って思うかもしれませんが、そういうわけにもいかんのです。
世界中のパソコンやスマートフォンがStratum0にアクセスしてみたとしましょうか。
Stratum0さんはてんやわんやになります。所謂、ワンオペになっちゃいます。
だから、同じ役割をもつNTPサーバーさんを束に揃えて、それぞれに問い合わせをするようにしたわけなんですね。それがStratumという階層構造になるのです。
WinパソコンがどのNTPサーバーさんに時刻を聞いてるか確認しよう
今、自分のパソコンがどのStratumのNTPサーバーさんに時刻を聞いているか確認してみましょう。
コマンドプロンプトを立ち上げて
w32tm /query /peers
と入力し、エンターを押してみてください。
(コマンドプロンプトの立ち上げ方はちょっと調べてみてください。)
ピアが、現在、お使いのパソコンで時刻を聞いているNTPサーバーさんのアドレスです。このアドレスにあるコンピューターに時刻を確認しているわけですね。
階層が、Stratumになります。このtime.windows.comはStratum4に当たるようです。
時間が自動で修正されるってすごいことだ
NTPサーバーさんについて、簡単に説明しましたけど、何となくわかってもらえたでしょうか?本当はもう少し複雑なので、残りは君自身の眼で確かめてみてくれ!
インターネットに繋ぐことで自動化が出来ていることは他にもあるので、次回も同じような感じの記事を作りたいと思います。