| >> 記事トピックス一覧 |
[ IP Network Skill - No. 0361 - ] NTP その1
発行日: 2008/5/23‥‥……━━━━━━ IP Network Skill No. 00000361 ━━━━━━……‥‥
〜 NTP その1 〜
‥‥……━━━━━━━━━━━━━━━━━━━━━━━━━━━━……‥‥
【まえがき】
今回はコンピュータの時刻に関係する話です。
コンピュータの内部では、秒単位で時刻を表し、1970年1月1日00時00分00秒
(GMT)を0として、その時点からの秒数を32ビット符号付整数を使って表し
ます。
つまり"1"という値は1970年1月1日の午前00時00分01秒で、2008年5月23日
午後6時ちょうどは"1211565600"という数値です。
C言語ではtime_tという変数がありますが、32ビットOSで符号が1ビット分
で31ビット分の数値では、UTC 2038年1月19日の午前3時14分8秒に桁あふれ
(オーバーフロー)を起こします。
これは2038年問題と呼ばれており、それ以降の時刻に対しては正しい演算
が行えなくなってしまう可能性が高いです。
ただ、あと30年も先の話ですので、その頃のコンピュータやプログラミン
グの技術発展を考えると大丈夫じゃないかな、と勝手に思っています。
(あとがきに続く)
╋━━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━━━━━━━━━━……‥‥
┃本┃日┃の┃試┃験┃対┃策┃問┃題┃
╋━━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━━━━━━━━━━……‥‥
〔問題1〕インターネット上にあるコンピュータの時刻あわせを行うプロト
コルとして誤っているものはどれか。
1.NTP
2.SNTP
3.SMTP
4.TIME
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ネ┃ッ┃ト┃ワ┃ー┃ク┃の┃基┃礎┃講┃座┃
━┛━┛━┛━┛━┛━┛━┛━┛━┛━┛━┛
-----------------------------------------------------------------
この企画は処女作「TCP/IPネットワークステップアップラーニング」
http://www.Amazon.co.jp/exec/obidos/ASIN/4774116351/ipnetworksk01-22
を基に構成変更、加筆、修正、省略。。。いろいろ手を加えたものです。
TCP/IPネットワークステップアップラーニングは先月、第4刷を重ねました!
講習教科書などでご利用いただいています。
-----------------------------------------------------------------
【11.アプリケーションプロトコル】
11.20. NTP (Network Time Protocol)
ネットワークの世界では、多数のコンピュータが地理的な位置に関係なく
データの送受信を行うため、時刻の同期が必須です。
インターネットに繋がる世界中のコンピュータの時刻を正しく設定するた
めにNTPというプロトコルが使われます。
11.20.1. コンピュータの時計
通常、コンピュータはリアルタイムクロック (Real Time Clock; RTC) と
かカレンダークロックと呼ばれる時計機能を持っていて、専用のチップが
時刻を刻み続けています。
パソコンだとマザーボードにそのクロック素子が載っていて、電源はマザー
ボード上のボタン電池などパソコンの電源とは別に持ち、パソコンの電源を
OFFにしても時計機能は動作し続けます。
古いパソコンで何もしていないのに時刻がめちゃくちゃな値を示したら、
マザーボードのボタン電池が切れてしまったことを疑いましょう。
11.20.2. CPUのタイマ
パソコンのOSはリアルタイムクロックをブート(起動)時に読み取り、起動
後はCPUで時間を管理します。
CPUタイマのほうが精度が高いです。
タイマの値が狂うと、さまざまなアプリケーションに影響を及ぼし、最悪の
場合はクラッシュやブルースクリーンになったりします。
11.20.3 時刻あわせプロトコル
コンピュータの時刻を合わせるプロトコルはいくつかRFCで規定されています。
RFC868のTIMEプロトコル、RFC1305のNTPプロトコル、RFC1769のSNTPプロトコル
(NTPの簡易版)があります。
11.20.3.1. TIMEプロトコル
TIMEプロトコルはTCPまたはUDPの37番ポートを使用します。
サーバはインターネットのタイムサーバ(time.nist.govなど)やイントラネ
ットで独自にサーバを立てます。1900年1月1日0時0分0秒(GMT) からの経過秒
数を符号無し32ビットバイナリデータとしてクライアントへ返します。
ちなみにGMTとはGreenwich Mean Timeの略で、グリニッジ標準時、つまり経度
0度にあるイギリスのグリニッジ天文台での標準時間をいいます。
TIMEプロトコルでは、サーバからクライアントまでの通信遅延を考慮していま
せん。したがって非常に細かい精度でいうと、時間のずれが生じてしまいます。
そのため現在は主にNTPが使われています。
11.20.3.2. UTC
NTPではUTCという時刻を使います。
UTCは日本語で「世界協定時」と訳されます。
英語だとCoordinated Universal Time、フランス語だとtemps universel coordonne
(最後のeはアクセント付き)でそれぞれCUTとTUCなのですが、ITU (International
Telecommunication Union) が世界共通の略称をUTC (universal time,
coordinated) と定めたようです。
UTCはGMTとほとんど同じですが、GMTは太陽の動きを元に時刻を算出しているのに
対し、UTCはGMTの1958年1月1日0時0分0秒からの経過時間を原子時計で計測、計算
して算出します。
GMTとの「ずれ」については閏秒が用いられます。
11.20.4. NTP
NTPプロトコルとSNTPはUDPの123番ポートを使用します。サーバは階層構造
です。
NTPはRFC1305にバージョン3が規定されています。(RFC958にバージョン1、
RFC1119にバージョン2が記されています。)
SNTPはRFC2030でバージョン4が規定されています。
11.20.4.1. NTPの階層構造
NTPでは階層構造を持ち、stratum(層)という値で自身が何階層のサーバなの
かを表します。DNSのコンテンツサーバと似ていますね。
原子時計など正確な時刻源をstratum 0とし、それに接続されるサーバが
stratum 1で最上位のNTPサーバになります。
[原子時計]---[NTPサーバ1]---[NTPサーバ2]---[PC]
上記のような接続であれば、NTPサーバ1がstratum 1でNTPサーバ2がstratum 2
ということになります。最下位はstratum 16なので、15階層までNTPサーバが
存在できます。
NTPでは上位、同位、下位の複数のサーバと通信を行い、複数の時刻情報源から
時刻を取得、さらに得られた複数の遅延情報をもとに重み付けなど行い、最終的
により正確な時刻に近い値をはじき出します。
+----------------+
| stratum 1 | 原子時計、GPSなど
+----------------+
| stratum 2 | 最上位のNTPサーバ
+----------------+
| stratum 3 |
+----------------+
| : |
+----------------+
| stratum 16 |
+----------------+
11.20.4.2. NTPのパケットフォーマット
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|LI | VN |Mode | Stratum | Poll | Precision |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Root Delay |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Root Dispersion |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reference Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Reference Timestamp (64) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Originate Timestamp (64) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Receive Timestamp (64) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Transmit Timestamp (64) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Key Identifier (optional) (32) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| |
| Message Digest (optional) (128) |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
LI (Leap Indicator) は閏秒があるかどうかを示すためのフラグで、
"00: 閏秒なし"、"01: 1秒追加"、"10: 1秒削除"、"11: 同期失敗"
という値です。
VNはVersion Numberの略で、バージョン3を使うときは3という値が入り
ます。バージョン3はIPv4のみです。バージョン4はIPv6にも対応して
います。
Modeは現在NTPクライアント(データを受け取る側)として動作している
か、NTPサーバ(データを与える側)として動いているか、などを表しま
す。
Stratumにはローカルクロック(サーバ自身が扱う時刻)がNTP階層の何階
層目かを表します。0は利用できません。1が最上位(プライマリ)、
2から15までが下位(セカンダリ)です。
Poll Intervalにはメッセージを受信する間隔が入ります。単位は2の累乗
値で、たとえば4という値が入ると2の4乗で16秒を表します。
Precisionは精度です。ローカルクロックの精度が何ミリ秒単位か、といった
値が入ります。
Root Delayは最上位サーバとのラウンドトリップタイムが入ります。
(来週に続く)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
かんたんネットワーク入門
http://www.amazon.co.jp/exec/obidos/ASIN/477412124X/ipnetworksk01-22
第5刷好評発売中!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
解┃答┃と┃解┃説┃
━┛━┛━┛━┛━┛
《本日の試験対策問題》
(解答)3
(解説)
SNMPはSimple Network Management Protocolでネットワーク
機器管理のためのプロトコルです。
それ以外のプロトコルは時刻合わせのために使うものです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆◆◆◆◆◆ ┃ あとがき ┃ ◆◆◆◆◆◆
(まえがきから続く)
国際単位系の秒の単位は、
「セシウム133の原子の基底状態の2つの超微細準位の間の遷移に
対応する放射の周期の91億9263万1770倍に等しい時間」
だそうです。さらに
「この定義は0ケルビン(K)におけるセシウム原子について言及した
ものである」
という声明もあります。
「炉から放射されたセシウム133の蒸気を、磁界によって、エネルギ
ー準位の異なる2つに分離する。分離されたうち、基底状態のものに
水晶発振子を基準として、9,192,631,770Hzのマイクロ波を照射し、
励起されたものを再び磁界をかけて、分離する。最終的な基底状態と、
励起状態のセシウムの量から周波数を調整し、正確な9,192,631,770Hz
のマイクロ波を作り出す。(Wikiより)」
という作業を行うことで、正確な1秒が得られるそうです。
自宅で電波時計を使っていますが、これは標準時の電波を受け取って、
時計に反映することで、常に正確な時刻を表してくれるものです。
目覚まし時計で電波時計を使っていますが、それ以外の時計では普通
のクオーツ時計を使っています。
というのも、電波時計だと5分進めておく、といったことができない
ため、ルーズな私はどうしても遅刻気味になってしまうから。
以前、電波時計で時刻を信頼しきっていましたが、電波がうまく受信
できなかったらしく、目覚ましをセットしたのに時刻が狂ってアラーム
がならないという事件がありました。
また電波を受けれても電池が切れたら時計自体止まってしまって危険
です。
ネットワークと同様に、大事なときには目覚まし時計を2つ使うと
いった冗長構成が安心ですね。
adzuki
………………………………………………………
IP Network Skill vol.000361 5/23/08
発行者:adzuki http://www.xai.nu/ipnet
…………… ipnet7@xai.nu ……
◎ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄◎
| 新規購読・購読解除・バックナンバー ⇒ http://www.xai.nu/ipnet
| IP Network Skill 掲示板
| ⇒ http://www.xai.nu/cgibin/ipnet/bbs.cgi
| バックナンバー一覧
| ⇒ http://xai.nu/ipnet/stack/index.html
| 間違いご指摘
| ⇒ メルマガにコメントを添えて返信ください。
◎_________________________________◎
このメルマガを読んでいる人はこんなメルマガも読んでいます
- のんびりやろう!情報処理試験! 〜1問1問コツコツと〜
- ソフトウェア開発&基本情報技術者試験対策を中心に初級シスアドや高度区分まで幅広く対応。流行のIT用語の解説も行っているので,パソコンについて勉強した...
- Office & VBA パーフェクトマスター
- Excel・Access・Word等の今さら聞けない「疑問」、今すぐ知りたい「困った」、たちまち解決!のmoug(モーグ)がお送りする、関数初心者か...
- ネットワークのおべんきょしませんか?
- TCP/IPってなに?LANって?ルータって何をするの?というネットワークに関することをわかりやすく解説します。情報処理の試験を受ける方にもぴったり...
- エクセル(EXCEL)+ワード(WORD)=MOUS School:マイクロソフト公認の資格をとろう!
- マイクロソフト オフィスユーザ検定試験(MOUS)の資格取得を目的とした、各種情報(練習問題、解説)をご提供。仕事で役立つWord(ワード)/Exc...
- IPネットワーク考
- インターネットのネットワークSEの実務者が、IPネットワークにまつわる話題、問題、技術について実務者ならではの視点から解説します。ネットワーク、TC...
![メルマガスタンド[メルマ!]](/img/common/melma_logo.gif)









