TIMEプロトコル(タイムプロトコル)は、インターネット・プロトコル・スイートのサービスの1つであり、1983年にジョン・ポステルとK. Harrensteinによって執筆された 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
脚注
- ^ “8. The inetd - /etc/inetd.conf file”. 2019年3月6日閲覧。
関連項目
外部リンク
- vervest.org - HTTP Time Protocol
- freestone-group.com - FG Time Sync