• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • PR

  • PR

  • PR

  • PR

  • PR

インターネットの「時刻」の秘密

Part1[NTPの秘密を探る] 遅延や誤差を測りながら,「ぴったり」時刻を合わせる

阿蘇 和人=日経NETWORK,前田 潤=ITpro 2008/10/18 日経NETWORK
出典:日経NETWORK 2007年7月号pp.26-31
(記事は執筆時の情報に基づいており、現在では異なる場合があります)
目次一覧

 Part1では,インターネットで使われる時刻合わせ用のプロトコル「NTP」について説明する。パソコンOSやUNIX系OSに標準搭載されている技術だ。

 NTPは,UDPの123番ポートを使ってやりとりする,アプリケーション・プロトコル。その考え方は難しくないが,奥の深いプロトコルといえる。NTPを理解すれば,NTPの上手な使い方が見えてくる。そのうえでパソコンの時刻合わせ機能をきちんと設定すれば,テレビ・ラジオ放送や電話の時報と比べてもほとんど差がわからないレベルで時刻が合わせられるようになる。

上位から下位へ時刻情報を転送

 NTPは,時刻を合わせたいNTPクライアント(パソコン)が,正確な時刻を持つNTPサーバーから時刻情報を取得するのが基本だ。ただし,それだけでは少数のNTPサーバーに多数のNTPクライアントからのアクセスが殺到してしまう。そこで,1台のNTPサーバーがほかのNTPサーバーに時刻を配信できるようになっている。上位階層のNTPサーバーから下位のNTPサーバーに時刻情報が配信されていくわけだ(図1-1)。

図1-1●NTPサーバーは階層化されている
上の階層のNTPサーバーから下の階層のNTPサーバーに時刻情報が送られる。
[画像のクリックで拡大表示]

 NTPサーバーのうち,最上位の階層のものをStratum1(ストレイタム・ワン),次の階層をStratum2というように呼ぶ。Stratum1は,外部の時計に同期し,Stratum2は,Stratum1のNTPサーバーに同期する。仕様上はStratum15まで存在できるが,ネットワーク上で公開されているNTPサーバーの多くは,Stratum1かStratum2だ。

 NTPサーバー間で時刻を配信するときに使うプロトコルは,NTPクライアントとNTPサーバーの間と同じ。下位のNTPサーバーが,NTPクライアントとして上位のNTPサーバーにアクセスするのが基本だ。

遅延を測定して補正する

 では,NTPがどのように時刻情報を転送しているか,ネットワーク上のやりとりを見ていこう。NTPパケットには,時刻情報が書き込まれている。ただし,NTPサーバーの時刻情報だけが書き込まれているわけではない。NTPパケットを受け取ったNTPクライアントが,NTPサーバーの時刻情報をそのまま使うと,クライアントの時計はネットワークの遅延時間分だけずれてしまうからだ(図1-2のA)。

図1-2●NTPは往復遅延時間を測定して時刻を補正する
NTPサーバーの時刻をそのまま使うと遅延時間分だけずれてしまう。そこでNTPクライアントは,往復遅延時間を測定して時刻を補正する。
[画像のクリックで拡大表示]

 そこでNTPは,時刻情報を配信するたびに変わるネットワークの伝送遅延をうまく補正するしくみを備える(同B)。

 NTPクライアントは時刻情報を要求するときに,自分の時計の時刻を書き込んで送る。NTPクライアントからの要求を受け取ったNTPサーバーは,まず受け取ったときの時刻を記録し,応答パケットができたら,受け取ったときの時刻と送信するときの時刻を刻印してNTPクライアントに返信する。

 こうすれば受け取ったNTPクライアントは,パケットを受け取った時刻と,パケットに書き込まれた時刻情報から,往復の遅延時間を計算できる。往復の遅延時間の2分の1が片道の遅延時間と考えれば,受け取ったときの時刻が,NTPサーバーの時刻のどこに当たるかを計算できるわけである。

ここから先はITpro会員(無料)の登録が必要です。

次ページ 時刻情報を平均してゆらぎを取り除く
  • 1
  • 2
  • 3
  • 4

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

ITpro SPECIALPR

What’s New!

経営

アプリケーション/DB/ミドルウエア

クラウド

運用管理

設計/開発

サーバー/ストレージ

ネットワーク/通信サービス

セキュリティ

もっと見る