The Thorny Problem of Keeping the Internet’s Time
インターネットの時刻を同期し続けるという厄介な問題
An obscure software system synchronizes the network’s clocks. Who will keep it running?
人知れずソフトウェアが、インターネットの時刻を同期しています。誰がそれを実行し続けるのですか?
By Nate Hopper September 30, 2022
1.
1977年、エキセントリックなエンジニアでコンピュータ科学者のデビッド・ミルズ(David Mills)は、ワシントンDCにある衛星通信会社コムサット(Comsat)社に就職しました。ミルズは、恋人の叔父のために補聴器を作ったり、フォード社に紙テープ・カード入出力装置(paper-tape computer)を自動車に搭載するためのコンサルティングをしたことがあるほどの機械いじり好きな人でした。その時分にミルズは、コムサット社で、アーパネット(Arpanet)に携わるようになりました。アーパネットは、インターネットの前身となるコンピュータネットワークで、すでに数人の研究者が遠く離れたコンピュータを繋いで情報を交換していました。しかし、このネットワークは、各コンピュータが同じ時刻を共有していないという欠点があり、データの信頼性が損なわれていました。
ミルズは数十年にわたり、数学、工学、コンピューターサイエンスの分野で幅広い専門知識を身に付けてきました。1970年代初めには、エジンバラ大学の講師として、短波ラジオを開発したり、暗号を解読するプログラムを書いたこともありました。その後、もっぱら趣味で、夏の暑い日に送電網の時計が数秒ずれる原因を研究していました。実は、気温だけでなく、石炭火力発電か水力発電かによっても時計がずれていました。そこで彼は、遠く離れたコンピューター・ネットワークで時刻を管理するという課題に取り組み始めました。取り組んだ結果としてミルズが認識したのは、時計の時刻がどこに居ようが一致しているのは、正しい時を刻み続けるための果てしない努力の結果であるということでした。政府が管理する世界一正確な主刻時機構(マスタークロックともいう:master clock)の時刻でさえ、数個の原子時計が読み取った時刻を合成するという手間がかかっているのです。マスタークロックは、国際的な標準となる時を作るために平均化され、それは、協定世界時 (Coordinated Universal Time)、略してUTCと呼ばれています。
アーパネットの時刻同期の問題を解決するために、ミルズはプログラマーとしてプロトコル(protocol)を作りました。プロトコルとして、異機種間の共通言語となるルールや手順の集合体を作り上げました。アーパネットは、実験的な段階でしたので、仕様もコロコロと変わりました。また、電子機器の不具合もしばしば発生し、技術的な誤動作も少なくありませんでした。彼が作ったプロトコルは、そのような問題が発生した際に検出し、修正するものでした。機器間で時刻の同期が出来ていない状況を巧妙な仕組みによって、時刻に関して1つのコンセンサスを作り上げるものでした。彼は難解な命名法を用いることに誇りを持っていたので、彼の時刻同期システムでは、信頼できる時刻を「トゥルーチャイマー(truechimers)」と呼び、誤っている時刻を「ファルスティッカー(falsetickers)」と呼びました。彼が設計した「ファズボール(Fuzzball)」というオペレーティングシステムは、この初期の作業を容易にしていました。ミルズは、自ら作った時刻を同期するシステムを「ネットワーク・タイム・プロトコル(Network Time Protocol)」と呼びました。略号は、NTPです。NTPは黎明期にあったインターネットの重要な構成要素となりました。基本的には全てのプログラマーが自分のコンピューターの内部時刻を正しく設定するために、このプロトコルに従いました。1988年、ミルズはNTPを改良しました。それによって、それまで接続されているコンピューターがそれぞれ全く異なる時刻を示していたのですが、人間の瞬きの数十分の一ほどの時間に該当するミリ秒単位で同期させることができるようになりました。インターネット・インフラのパイオニアであるヴィント・サーフ(Vint Cerf)は、「黒魔術を使ったのだと思ったほどでした。」と評していました。
今日、誰もがグローバルな時刻の同期(global time synchronization)を当然のこととして受け止めています。たしかにインターネット、ひいては文明にとって、時刻同期は非常に重要です。電力送電網、金融市場、通信ネットワークなどの重要なシステムは、記録を保持しています。どんな原因がどんな結果を生み出したかを認識するために、時刻の同期は欠かすことができないものです。NTP(ネットワーク・タイム・プロトコル)は、全地球測位システム(GPS)などの衛星システムやその他のテクノロジーと連携し、あらゆるオンラインデバイスの時刻を同期させています。たとえば、原子時計を使って綿密に調整された非常に正確に維持されている時刻が、GPSを介して携帯電話基地局を含む多数の通信設備に伝送されます。それらの通信設備はNTPサーバーに接続しているので、インターネットでリンクされたあらゆるデバイス間にその時刻が配信されます(同時に、原子時計はNTPサーバーに時刻を直接送信しています)。このプロトコルは、何十億ものデバイスで動作していて、全世界のデバイスの時刻を同期させることができるのです。これほど大規模に何かが同期されたことは、かつて無いことでした。
何十年もの間、ミルズはNTPがどのように機能すべきかを決定してきました。彼はほぼ一人でこのプロトコルを作り上げたと言われることも多いのですが、彼はそれは必ずしも事実では無いと主張しています。彼は、気分屋で、愛想が良いわけでもなく、時に高圧的で、時には意味不明な行動をします。彼の長年の協力者の1人は言っていました、「ミルズは冗談を言って人を喜ばせたりしない。黙々とインターネットの時刻同期のプロトコルの父の役目を果たしてきたんです。」と。しかし、彼がその役目を果たす任期も徐々に終わりに近づいています。ミルズは生まれつき緑内障でした。幼少の頃に手術を受けて左目のみ視力をある程度回復させることができたので、ずっと大型のコンピューター・ディスプレイを使って仕事をしてきました。しかし、10年ほど前から視力が徐々に低下しはじめ、現在ではほぼ全盲です。プログラムのコードを調べたり、コードを書き加えたり訂正することはかなり骨の折れる作業になりました。図表を描いたり、複雑な数式を作ったりするのは、ほとんど不可能に近くなりました。
2年前、私はデラウェア市郊外の小綺麗な家にミルズを訪ねました。彼はデラウェア大学の教授になった1986年から、妻のビヴァリー(Beverly)とその家に住んでいました。教授を定年退職まで22年続けました。私と彼がキッチンに座っていると、隣の部屋から時間を知らせる自動音声が流れてきて、会話が定期的に遮られました。オーブンや電子レンジについている時計の時刻は、音声が知らせる時刻と少し違っていました。彼は、白い髭を生やし、灰色のフィッシャーマンセーターを着ていました。コロラドにある主刻時機構(master clock)からの電波信号を常時受信している音声付き腕時計を使って、自分で時間を確認したようです。
彼は、私を2階の書斎に案内してくれました。彼は視力がほとんど無いわけですので、キッチンから書斎までは記憶を頼りに手探りのような感じで進んできました。彼のデスクの上のアマチュア無線機の上に猫が乗っていました。ミルズはパソコンに向かって座り、キーボードを操作して、モニターに研究論文のようなものを表示させました。NTPの改善案をまとめたものでした。彼がパソコンに打ち込んだ後、奥さんと娘さんにミスタイプ等をチェックしてもらったそうです。彼は、画面をスクロールさせるために矢印キーを押すと、コンピューターは音声を発しました。「この文書では、セキュリティ強化とプロトコルの改善に関する考察をしています。」という機械音声が流れました。「空白。目次。空白。1章、. . . . 3章、4章. . . .」 しばらくすると機械音声は止まってしまいました。彼は少しまごつきました。そして、言いました、「私は目が悪いので、機械音声を最大限活用しようと思っています。上手く行かない時もあります。でも、しょうがないことです。眼球の動きでテキスト入力できる技術があるようですから、それがもっと進化したら不自由さを感じることも減るでしょう。」と。
テクノロジーは常に進化しています。インターネットは規模と複雑さの両面で成長を続けています。インターネットは目新しいものではなくなりましたが、現在、世界はそれにますます依存しています。そのため、インターネットの時刻同期システムの継続的な進化が不可欠です。しかしながら、ミルズがNTPに迅速に貢献できない状況だったことで、NTPに対する権威がいくぶん失墜してしまいました。ミルズが視力が無くなったことによって関与しなくなった結果、このシステムを理解し監督する能力を持つ者は、ほんの数人しかいなくなったようです。インターネット上の時刻をどのように同期させるかということに関して、その影響力をめぐる争いが始まっていました。