人の生活に欠かせない時刻。コンピュータやネットワーク機器にも重要な存在だ。時刻がずれているとログオンを拒否されたりエラーが発生したりと大きな問題になりかねない。そこで本特集では、インターネットの「時刻」について解説する。

 現在の世界の標準時刻である協定世界時(UTC)は原子時計で算出して決めている。だが、本来の時刻は地球の自転や公転に基づいて天文学的に決めている。この時刻を世界時(UT)という。地球の自転周期は潮の満ち引きなどの影響でわずかながらぶれるため、規則正しく動き続ける原子時計との間にずれが少しずつ生じてしまう。

 ずれが大きくなると、太陽に合わせて暮らしている人間の生活に影響が出る恐れがある。極論すると、そのまま放置しては昼と夜が逆転する事態になりかねない。

1秒を追加して調整

 そこでUTとUTCの間のずれが0.9秒を超えそうになったときに、UTCを1秒ずらして調整するようにした。これが、うるう秒である。

 うるう秒が導入されたのは1972年。この時点で既に存在した「10秒」のずれはそのままにして、これまでの間に27回のうるう秒による調整が行われてきた。

これまでに実施したうるう秒
[画像のクリックで拡大表示]

 その結果、現在のUTとUTCのずれは37秒になっている。なお、現在までの27回はすべて、うるう秒を追加する調整であったが、うるう秒を削除する調整も論理的にはあり得る。

 表を見ればわかるように、うるう秒には規則性がない。何年も続けて実施するときもあれば、1999~2006年のように長期間実施しないときもあった。これは、自然環境の影響などで地球の自転がぶれているからだ。

 このため、実施時期こそ1月1日または7月1日と決まっているが、いつ実施するかはわからないのが実情だ。

システムにトラブルの可能性

 現在では、時刻はネットワークやコンピュータが同期するための重要な基盤になっている。このため、うるう秒により障害が発生する恐れがある。実際2012年には、特定のソフトウエアがうるう秒を処理できず、多くのシステムで障害が発生した。

 ただ、その次にうるう秒が実施された2015年以降は、ベンダーの多くが対応していたため、大きな障害は報告されなかった。

 うるう秒を挿入するときは、59秒と00秒の間に60秒という耳慣れない時刻を追加する。NTPパケットでは、先頭にある「Leap Indicator」のフィールドのビットを事前に「01」にして、うるう秒の実施をクライアントに対して通知する。

 ただし、1900年からの積算時刻で表すNTPのタイムスタンプでは、いつ実施するか事前に予測できないうるう秒を取り扱うことはできない。そのため、うるう秒に関しては積算せずに無視する。具体的には、60秒と00秒を表すタイムスタンプがまったく同一になってしまう。

 2017年1月1日に実施されたうるう秒では、グーグルがうるう秒対策のNTPサーバーを公開した。このNTPサーバーでは、UTCで2016年12月31日の14時から2017年1月1日の10時までの20時間にわたって、1秒の時間をわずかに延ばすという運用をした。うるう秒の1秒を20時間に分割して少しずつ吸収するという試みだ。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。