時刻同期【time synchronization】
時刻同期とは?

複数の機器が連携するシステムでは、時刻のズレが実害に繋がる場合がある。ログの記録順序が狂えば障害の原因追跡が困難になり、金融取引や電子署名では正確なタイムスタンプが保証できなくなる。分散処理においても、時刻が一致していなければデータの更新順序を正しく判断できない。
現代の電子機器に内蔵された時計は放置すれば数日で数秒、数か月で数分の差が生じることもあるため、一定間隔で基準時刻へ合わせる仕組みが広く用いられている。インターネット上の時刻同期では「NTP」(Network Time Protocol)という通信規約(プロトコル)が普及しており、誰でも自由に参照できる公開NTPサーバがいくつも運営されている。
NTPは「ストラタム」(stratum)と呼ばれる階層構造を持ち、最上位に原子時計やGPS信号などの高精度な時刻源を置き、下位のサーバが順に時刻を受け取って配信する。各機器はサーバへ問い合わせた際の通信の往復時間を計算に織り込み、ネットワーク遅延の影響を補正した上で自機の時計を調整する。
時刻の修正には、瞬時に書き換える方式と、時計の進む速度を微調整して徐々に正しい値へ近づける方式がある。前者は大きなズレを即座に直せるが、システム上で時間が突然飛んだり逆行したように見えるため、動作中のプログラムに悪影響を及ぼす恐れがある。通常は後者の緩やかな調整が選ばれ、複数のサーバから時刻を取得して信頼度を比較することで、誤った時刻情報の影響を抑える工夫も行われる。
現在のパソコンやスマートフォンではオペレーティングシステム(OS)に自動で時刻同期を行う仕組みが組み込まれており、利用者が意識する場面はほとんどない。一方、サーバや組み込み機器を管理する場合は、接続先のNTPサーバを明示的に設定したり、同期の間隔や精度を調整したりする必要が生じる。
悪意ある時刻情報を送り込む攻撃も存在するため、管理主体が明らかな信頼できるサーバを使うことが推奨されている。自動運転や通信インフラ、金融システムなど、より厳密なタイミング管理が求められる分野では、ナノ秒単位の精度を実現する「PTP」(Precision Time Protocol)が採用されることもある。