わかりやすい

主にIT関連や時事ネタの興味を持ったことを、なるべくわかりやすく書いてみようとおもいます。

スポンサーリンク

2016/04/04頃にWindowsの時刻が1時間くらい進んだ件の対処方法

目次

あらまし

wakariyasui.hatenablog.jp

に書いた件の関連。 原因特定までは至っていませんが、自分のように

  • Windowsを使っている
  • Windowsの時刻同期先サーバを、標準のtime.windows.comにしている

という場合、関係者は自分かMicrosoftさんしかいないわけで、しかも自分は特別何か時刻同期について設定をいじっているわけでもないので、 Microsoftさん側の問題なのかな、というところで落ち着いています。

対処方法

さて、対処方法。 何に対する対処か、ですが、2つ考えられると思っています。

  1. (応急対応)とりあえずずれた時計を直す
  2. (再発防止)時刻同期先サーバを変更する

A. とりあえずずれた時刻を修正する

まずはさておき、直しましょう。 直し方は2パターン。 Windows 7を前提に説明しますが、ほかでも似たような方法で対処できると思います。

Aa. 手動で時刻設定を行う

  1. タスクトレイの時刻をクリック、「日付と時刻の設定の変更」をクリック(もしくは、「コントロールパネル」→「時計、言語、および地域」→「日付と時刻の設定」をクリック)
  2. 「日付と時刻の変更(D)...」ボタンを押下、時刻設定を行う

Ab. 時刻同期サーバとの再同期を強制的に行う

  1. タスクトレイの時刻をクリック、「日付と時刻の設定の変更」をクリック(もしくは、「コントロールパネル」→「時計、言語、および地域」→「日付と時刻の設定」をクリック)
  2. 表示されたウィンドウ上部の「インターネット時計」タブをクリック
  3. 表示されたタブ内の「設定の変更(C)...」をクリック
  4. 表示されたウィンドウ内の「今すぐ更新(U)」をクリック

これで直らなければ、「Aa. 手動で時刻設定を行う」か、Bの対処を検討してください。

B. 時刻同期先サーバを変更する

今回発生した事象とまったく同じ事象が、同じ原因に基づいて発生したとき、同じように時間が1時間ほど進んでしまうことを防ぎます。 これは「今回の事象Microsoftさんの時刻同期サーバであるtime.windows.comが原因」という前提に立っています。 もしそうでない場合、同じ原因であれば同じように1時間ほど進んでしまうことがあるかもしれません。

変更先は「国立研究開発法人 情報通信研究機構(通称NICT)」が運営する、公開NTPサーバがおすすめです。

www2.nict.go.jp

以下、変更方法です。 (NICTの公開NTPサーバ以外に設定する場合は、「ntp.nict.jp」を適宜読み替えてください。)

  1. タスクトレイの時刻をクリック、「日付と時刻の設定の変更」をクリック(もしくは、「コントロールパネル」→「時計、言語、および地域」→「日付と時刻の設定」をクリック)
  2. 表示されたウィンドウ上部の「インターネット時計」をクリック
  3. 表示されたタブ内の「設定の変更(C)...」をクリック
  4. 表示されたウィンドウ内のサーバ欄に「ntp.nict.jp」と全部半角で入力、OKをクリック(OKをクリックする前に、「今すぐ更新(U)」を押してテストすることをおすすめします)

NTPうんちく

NTPとは

NTP(Windowsでは「インターネット時刻」という言葉が近しい意味だと思います)というのは、ネットワーク越しに時刻を同期させるための仕組みです。 サザンオールスターズの「今何時?」「そうね大体ね」よろしく、ネットワーク越しにNTPサーバに時刻を教えてもらいます。

NTPの精度

ところでNTPを使った時刻同期では、どのくらいの精度で時刻を同期できるのでしょうか? 答えは「NTPサーバとのネットワークの安定性に依存する」です。

ネットワークの安定性というのは、具体的には「今何時?」と聞いてから「そうね大体ね」と返事が来るまでの時間の「ゆらぎ」です。 返事が来るまでの「時間(返事が早い、遅い)」ではないですよ、「時間のゆらぎ」です。専門用語では「ジッタ(jitter)」といいます。 ちなみに、返事が来るまでの時間は「遅延」とか「RTT(Round Trip Time)」といったりします。

(以下、概念的な話で正確なNTPプロトコルの動作を説明していません。詳細は参考文献を参照ください。)

例えば何回「今何時?」と聞いても、確実に1.00秒後に回答が返ってくるようなネットワークの安定性だった場合、 返ってきた答えから1.00秒を引いた時刻を設定すれば、NTPサーバと誤差0.01秒以内で設定できることになります。

例えば「今何時?」と聞いた際、1回目は0.01秒後に、2回目は0.10秒後、3回目は0.01秒後に返ってきたとします。さて、返ってきた答えから何秒引いた時刻を設定しましょう?

0.01秒とか0.20秒とか早く答えを返してくれるよりも、10.00秒かかったとしてもゆらぎ(ジッタ)が小さい方が正確な時刻設定ができるんですね。

参考文献