メインメニューを開く

TIMEプロトコル(タイムプロトコル)は、インターネット・プロトコル・スイートのサービスの1つであり、1983年にジョン・ポステルとK. Harrensteinによって執筆された RFC 868 で定義されている。その目的は、サイトに依存しない、機械可読の日付と時刻を提供することである。

TIME
通信プロトコル
目的 機械可読の日時を返却(時刻の同期に使用)
開発者 ジョン・ポステル
K. Harrenstein
導入 1983年(36年前) (1983
OSI階層 アプリケーション層
ポート 37
RFC RFC 868

目次

概要編集

ホストは、Transmission Control Protocol(TCP)またはUser Datagram Protocol(UDP)を使用し、ウェルノウンポート番号であるポート番号37で、TIMEプロトコルに対応したサーバに接続する。ホストから接続されたサーバは、1900年1月1日00:00(UTC)からの経過秒数を表すネットワークバイトオーダの32ビット符号なし整数をホストへ送信し、接続を終了する。UDPにおいては、接続しただけではサーバが感知できないので、何らかのUDPデータグラムをサーバへ送信する必要がある。

固定の32ビットデータを使用しているため、タイムスタンプは約136年で桁あふれし、2036年2月7日に0に戻ることになる(2036年問題)。

かつては多くのUNIX系オペレーティングシステムで、rdate英語版ユーティリティを使用してコンピュータの時計同期させるためにTIMEプロトコルを使用していたが、この機能はNetwork Time Protocol(NTP)とそれに対応するntpdate英語版ユーティリティに置き換えられた。NTPは、1秒以下の同期精度を持つなど、TIMEプロトコルよりも様々な点で洗練されている。

inetdでの実装編集

UNIX系のオペレーティングシステムでは、TIMEプロトコルサーバはinetdファミリーのデーモンに組み込まれている。TIMEプロトコルのサービスは通常、デフォルトで無効になっている。ファイル/etc/inetd.confに次の行を追加し、inetdで設定をリロードすることで有効になる[1]

time   stream  tcp     nowait  root    internal
time   dgram   udp     wait    root    internal

他タイムプロトコルとの関係および紹介編集

Daytime Protocol編集

概要編集

Time Protocolとは同一精度(秒単位)。 ポイント・ツー・ポイントによる通信機構を使用し、ネットワークの遅延などは補償できない。

設計コンセプトの違い編集

  • Daytime Protocol:サーバに設定された時間帯夏冬時間の補正を含むローカルタイムの人間が可読な暦形式。
  • Time Protocol:クライアントの絶対時刻の設定等がしやすいように世界協定時の秒(サーバ、クライアント、いずれの時間帯にも依存しない)。

関連RFC編集

  • RFC867 Daytime Protocol

SNTP(Simple Network Time Protocol)編集

概要編集

NTPパケットを利用した、簡易時計同期プロトコル。 Time Protocolより精度は高く、またNTP程の高度なアルゴリズムを実装せず、簡単に扱えることを目的とする。 時計の基準時刻は、UTCの1900年1月1日00:00を起点とする。 通信モードは、一般的にNTPサーバ・クライアントモードのみ実装していることが多く、それ以外のモードは任意実装。

Time Protocolとの違い編集

  • ネットワーク遅延計算を含んだ時計同期機構を備えている。
  • NTPと同様に階層構造のアーキテクチャをもち、タイムサーバを分散することが可能。
  • 時計パケットの最小単位はNTPパケットを利用しているため200ピコ秒のまでの格納が可能。

ただし、時計同期精度はパケットほどの精度は、出すことはできない。 SNTPは時計同期精度に関する規約はなく、実装者による設定が精度となる。

関連RFC編集

  • RFC1361 SNTP
  • RFC1769 SNTP
  • RFC2030 SNTP Version 4 for IPv4, IPv6 and OSI
  • RFC4330 SNTP Version 4 for IPv4, IPv6 and OSI

NTP(Network Time Protocol)編集

概要編集

NTPパケットを利用した、厳密な時計同期機構を搭載する。 ネットワーク遅延計算,コンピュータ負荷の安定度など多岐にわたり計測アルゴリズムを搭載する。 時計をコンピュータ機器への反映方式は、いくつか提案されているが実装者による選択となっている。

時計同期精度に関する規約編集

  • 時計候補の許容範囲:10ミリ秒~4秒未満を時計候補となるように規定されている。
  • 時計反映判定:10ミリ秒以下は、初期値として誤差修正の範囲から外されている。(設定値のため1ミリ秒まで精度を上げることが可能)

SNTPとの違い編集

  • タイムサーバに対する厳密な評価機構を搭載している。(評価機構に合格したものを、時計同期候補とし、その中で最も高い評価を得た時計と同期する。)
  • 複数のタイムサーバ選抜機構(評価機構を含む)がアルゴリズムとして定義されている。
  • 上位タイムサーバへの問合わせ周期は2のべき乗で、安定度を計測しポーリング周期を自動的に変更するアルゴリズムが定義されている。
  • 複数の時計同期アルゴリズムが通信モードとして用意されている。
  • サーバの負荷制御機構が定義されている(任意実装)。
  • セキュリティ機構が定義されている(任意実装)。
  • SNMPのMIB定義が行われている(Version4より定義)。
  • 管理機構の定義がある。

関連RFC編集

  • RFC958 NTP 提案
  • RFC1059 NTP Version 1 仕様と実装
  • RFC1119 NTP Version 2 仕様と実装
  • RFC1129 NTP Version 2 同期機構の提案
  • RFC1305 NTP Version 3 仕様と実装 
  • RFC5905 NTP Version 4 プロトコルとアルゴリズム仕様
  • RFC5906 NTP Version 4 Autokey仕様(セキュリティモデル仕様)
  • RFC5907 NTP Version 4 管理オブジェクトの定義(SNMPのMIB情報の定義)
  • RFC5908 NTP Version 4 DHCPv6追加仕様

PTP(Precision Time Protocol)編集

概要編集

IEEE1588に基づく高精度時計同期機構のアプリケーション領域で、LANに特化したプロトコル。プロトコルは、2つのバージョンが存在する。

  • IEEE-1588-2002 V1
  • IEEE-1588-2008 V2

タイムスタンプ精度は、10マイクロ秒以下としている。 ただし、IEEE1588に対応するハードウェアを搭載していない機器では、NTPと同じ程度の精度となる。

脚注編集

  1. ^ 8. The inetd - /etc/inetd.conf file”. 2019年3月6日閲覧。

関連項目編集

外部リンク編集