第 12 部

NTP

463

第 1章はじめに
NTP [25] ワーキンググループでは、昨年度に引続き文部省国立天文台の研究グループ
とともに、インターネット上に正確な時刻情報を提供するための機構の設計・実装・運用について検討を行った。

GPS

GPS
stratum

その結果、「衛星からの電波を受信し時刻情報を出力する装置（以下、受信機）」が出力する秒信号等を時刻源とするサーバを各組織に設置し 、これをとして運用すれば 、実用上は問題ない精度の時刻情報を保時できることが明らかになった。さらに、各組織に設置されたこれらのサーバが、国立天文台において運用されているセシウム原子時計を時刻源とするサーバとして運用 を参照
すれば 、いっそう精度の高い時刻を維持できることも明らかになった。しかし 、各組織が一斉に国立天文台のを参照すると、組織間を結ぶバックボーンネットワー
クを流れる
パケットのトラフィックが不必要に増加することになる。この問題の解決策の一つに、組織間のコーディネーションを慎重に行い、組織間を結ぶバックボーン
ネットワークに流れる
パケットの量を最小に押えるという方法がある。組織間のコーディネーションは重要であるが、これは本質的な解決策ではない。

NTP

1

NTP
NTP

NTP

(stratum 1)

stratum 1
NTP

NTP

そこで、
ワーキンググループでは、コーディネーションにたよる方法ではなく、
バックボーンネットワークにプロトコルを流さずに組織間で時刻同期を行う方法を検討した。そのために、

NTP

 UNIX 上で各種時刻信号の比較が高精度で行えるように、カーネルに変更を加え、
外部時刻信号を直接メモリ上に高速で取り込む方法を開発・実装した。

 次に、GPS 受信機を時刻源とする NTP サーバを開発・実装した。
 さらに、セシウム原子時計を直接取り込んでいる UNIX 上で NTP stratum 2 サーバ（ stratum 1 ではない）を運用し 、両者の比較を行うことにより、stratum 2 サー
バの精度・確度を計測した。

 最後に、セシウム原子時計と直接比較することにより、GPS 受信機の時刻源としての精度・確度を計測した。
その結果、

465

466

1993 年度 WIDE 報告書

1. 国立天文台のセシウム原子時計が刻む時刻 (UTC(NAOT) 1 ) と各社の GPS 受信機
が出力する時刻の偏差を計測する。

2. これをインターネット上に定期的に通報する。
3. 各組織では、この値を取り込んで NTP サーバの時刻を修正する。
という方法をとれば 、自組織の stratum 1 の精度をいっそう向上させることが可能となることを明らかになった。
本報告書では、これらの点について報告する。

NTP

(WIDE

,

なお今年度の報告書は、
ワーキンググループの大野浩之
プロジェクト 東
京工業大学 、福島登志夫、久保浩一、松田浩 以上、文部省国立天文台 の４名が分担して執筆し 、全体の調整は大野が行った。

)

(

)

1 UTC(NAOT) とは、国立天文台三鷹 (NAOT) における協定世界時 (UTC) のことである。

第 2章
外部時刻信号の UNIX カーネルへの取り込み
2.1

昨年度の NTP サーバの構成

NTP[144] [145] は、以下のような手順でセシウム原( 2.1)。

昨年度の報告書で紹介した
サーバ
子時計から時刻情報の供給をうけて稼働した 図Ethernet

UNIX
Work Station

DOS PCI/O Board64

From Cesium Clock
1 Hz pulses

Counter

図

1 MHz clocks

2.1: 昨年度試行した NTP サーバ (Mk-I) の構成

1. まず、セシウム原子時計から得られる UTC に同期した 2 つの信号 (1pps と 1MHz)を「 2 台の 32bit カウンタで構成されるカウント回路」(以下カウンタ回路 [146]) に入力する。

2. 次に、カウンタ回路の出力を MS-DOS を OS とする NEC PC-9801 上で稼働するア
プリケーションプログラム中の timeval 型の構造体1 の変数に取り込む2 。
1 struct timeval fglong tv sec; /* 秒単位の時間を格納 */long tv usec; /* 秒以下の時間をマイクロ秒単位で格納 */2データの取り込みには 2 組の 32bit パラレル I/O ボードを利用した

467

468

1993 年度 WIDE 報告書

3. 取り込んだ時刻情報を、NTP とは別のプロトコルを用い、同じ LAN につながっている UNIX ワークステーションに送る。
4. このワークステーション上で PC-9801 から送られて来た時刻情報を時刻源とする
NTP サーバを運用する [147] [148]。
ここではこの方式を Mk-I と呼ぶ。
Mk-I は UTC を保時するセシウム原子時計から時刻を取り込みインターネットに時刻情報を供給するおそらく世界最初のシステムという点では十分意義があったがシステム構成は冗長であった。すなわちもし以下のいずれかが実現できればかワークステーションの一方が不要になるとともに両者を結ぶ独自のプロトコルも不要となる。

[149] [150]PC-9801

 カウンタ回路を接続した DOS マシン (PC-9801) 上に NTP サーバを移植する。
 UNIX ワークステーションにアクセスタイムが 1 μ秒以下の 64bit パラレル入力ボー
ド を装着し UNIX 上のプロセスからこのポートにアクセスする。
しかし昨年度は上記の２方法はいずれも実現しなかった。これは以下の理由による。

 DOS マシン上に NTP サーバを移植するには大幅な書き直しが必要であった。
 UNIX ワークステーションにパラレルポートを増設するにはコストがかかる上パラ
レルポートのデータをどのようして取り込むかについての議論が不十分であった。

2.2

本年度の NTP サーバの構成

Mk-I に以下のような改造を施した。
 パーソナルコンピュータを NEC PC-9801 から IBM PC/AT 互換機 (以後 PC と略する) に変更する。
 OS を MS-DOS から UNIX (BSD/386) に変更する。

今年度はすなわちカウンタ回路からのデータ取り込みは従来通りパーソナルコンピュータで行うがはではなくに変更した。これにより、以下のような改善がなされた。

OS DOSUNIX Mk-I とは異なりワークステーションは不要となった
 PC を使うので安価なパラレルボードを利用できる。
 PC 本体のハード ウェアに関する情報が公開されている。
 OS が UNIX なので既存の NTP サーバを無改造で利用できる。

第 12 部

469

NTP

 OS のソースコードを参照できるので、たとえば OS に「パラレルボード の値を読み取る」といった機能を組み込む必要が生じたら、これを容易に実現することがで
きる。

Mk-I

DOS

この改造に伴い、では上の一つのアプリケーションソフトウェアとして実現していた「カウンタ回路から時刻情報を読み取り型の変数に現在時刻として格納」する機能はのカーネル内に取り込んだ。詳細は次節で述べるが、この改造により当該計算機のシステムコールは時刻決定に際してカウンタ回路の3値すなわちセシウム原子時計が刻む時刻を参照するようになった。このためを含む既存の現在時刻を取り扱うアプリケーションソフトウェアは何の修正も再コンパイル
もなしにセシウム原子時計精度の時刻を取得できるようになった。この方式をと呼ぶ。
の導入によりでは 台必要だった計算機を 台にまとめることができただけでなく両者を結ぶ独自の時刻同期プロトコルも不要となった。

timevalUNIX
gettimeofday()

Mk-II

Mk-I

xntpd

2

Mk-II

1

Mk-II
NTP
PC OS BSD/386
Gateway2000/4DX2-66V 3
2,3,4
NTP
(1 )
( ) (1 )NTP

ところで著者らは方式によるサーバが複数台必要であると考え、新たに（をにした）を 台準備した。これらを号機と各々呼ぶことにする。これによりサーバとなり得るが合計４台になったので、各々を運用系 台 バックアップ 待機 系 台 研究実験系
台 と位置付け、外部に対するサービスは運用系とバックアップ系が行い研究開発といった運用中止や再起動を伴う作業は研究実験系上で自由に実施できるようにした。なお昨年度に導入した
用パラレル入力ポートを引続き有効利用するために、
号機では「
互換機に
のボードを接続するためのアダプタ」を介して用パラレル入力ポートの値を読み込んでいるが、号機以降では、
用のパラレルポートをに直接装着しカウント回路の出力を読み込むようにした。
またに関する通信がそれ以外の通信の影響を受けて遅延することを避けるため各にはイーサネットボードを 枚づつ装備し 、用のサブネットとそれ以外の目的で利用するネットワークを分離可能にした 図。

PC-9801
64bit
NTP
PC

PC-9801
IBM PC

PC-9801

PC

PC

Mk-II

(2 )

Mk-II 1

Mk-II 2PC

2

NTP
( 2.2)
さらに記憶装置については、新たに容量 1.6GB のハードディスクを導入して、これら
4 台の NTP サーバで NFS で共用することとし 、今後の拡張に備えて CD-ROM 及び MOも導入した。加えて近い将来無停電電源を設置し PC の電源とする予定である。これはセシウム原子時計やカウンタ回路が最初から無停電電源装置に接続されているのに対しはバックアップされておらず保時室が停電するとサービスが停止してしまうという問題に対処するための措置である。

PC

2.3

UNIX カーネルの改造

本節では、カウンタ回路の出力をカーネル内部に取り込むためにカーネルに施した改造について述べる。

[151]

3 NTP をサポートする daemon プログラム

470

1993 年度 WIDE 報告書

WorkStation
133.40.8

133.40.2
8.11

2.76

router

保時室
MPT

外部へ

PC1

PC2

PC3

PC4

133.40.40

光リンク

図2.2: ネットワーク構成

第 12 部

471

NTP

PC OS UNIX (BSD/386)

すでに述べたように、著者らはのにを採用し 、このカーネルの改造を行ったが、カーネル改造の話は当然のことながらカーネル内部に立ち入った内容になる。そこで、今回はのカーネルの内容そのものについて直接言及することは避け、全く同様な改造手法を適用できるのカーネルを例にして述べる。
カーネルを改造し 、カウンタ回路の出力 セシウム原子時計の刻む時刻 をカーネル内部にとりこむには、を改造するのが簡便である。そこで、カーネルのソースを調べると、の事実上の実体は中で定義されているであることがわかる。
に限らず、多くのでは時刻を取得するとき、スピード の遅いリアルタイムクロックにいちいちアクセスすることはせず、起動時などに一度だけ参照して「現在時刻を保持する変数」に格納し、以後は定期的に発生するタイマ割込みの際にこの変数を必要なだけアップデートするのが普通である。
もこの方式を採用しており、現在時刻を保持する struct timeval 型の
変数をごとのタイマ割込み時に分だけ増加させている。ただし 、このままでは時計の粒度はになってしまうので、は単に変数の値を返すのではなく、「最後にタイマ割込みが発生してから『現在』までの経過時間」
をで自走するカウンタを利用して計測し 、その結果を変数に加算したものを返している。これにより、は μ秒の粒度を確保している。なお、この自走カウンタは本体に内蔵されているものである この自走カウンタがで駆動されていれば話は簡単であるが、現実にはに固定されており変更できないため、自走カウンタによって求めたのパルス数を求め、これをで割るという効率のよくない作業を内部で毎回行っている。
著者らは内に、カウンタユニットの内容を読み取るための
命令を追
加した。
に装着したパラレル入力ボードはアクセスタイムがと高速であるが、カウンタユニットにはラッチ機構がないため値が変化している途中の値を読み込んでしまう恐れがある。そのため、機械接点のチャタリング除去と同じ手法で 度ずつ読み取り、 度目と 度目のビットパターンの変化が妥当なものであるかど うか判断して
いる。
現時点では
には、カウンタユニットの値を読み取るコードと、上記の 従
来の 方式による時刻取得コードの両方が含まれており、カーネル内に新たに設けた大域変数

BSD/386

NetBSD 0.9(

gettimeofday()gettimeofday()microtime()

NetBSD
time 10msec

1.193MHz

IBM/PC

microtime()
PC

1

)

)

/sys/arch/i386/i386/microtime.s
NetBSDOS

10msec10msecmicrotime() 1

microtime()

time

time

.
1.193MHz
1.193MHzmicrotime()

1MHz

1.193

500nsec

I/O2

2

microtime()(

static struct pctime_and_cesium {struct timeval pctime;
strcut timeval cesium;
struct timeval timediff;}pctimecesiumに、両方式で求めた時刻を格納している（には従来の方式で求めた時刻が、にはカウンタユニットの値が格納される 。さらに、各々の方式で求めた時刻の差を計算

)

472

1993 年度 WIDE 報告書

timedimicrotime()
gettimeofday()

し 、上記構造体のに代入している。
したがって、が従来方式の時刻を返すように設定し 、このをで運用すると、を実行するたびに、上記構造体のには、によって制御されている時刻が格納され、にはカウンタ回路の値 すなわ
ちセシウム原子時計が刻むとの時差が入る。すなわち、で制御される時計のゆらぎが観測できる。これについては後述する。
なお、が最終的に上記構造体のとのどちらを返すかを実行中に変更する場合には、カーネル内にある「どちらの値を返すかを決定する変数」を直接書き換えている。

stratum 2
NTP

microtime()UTC)

timedipctimeNTP

cesiumPC NTP
pctime(第 3章

GPS 受信機に基づく stratum 1 NTP サーバの設計と実装
GPS 受信機を用いると、衛星が受信可能な場所であれば 、UTC に同期した時刻をすぐに利用できる。この利点を生かすことにより手軽に NTP サーバを構成できる。しかし 、一般に購入可能な民生用 GPS 受信機については、その種類こそ多いが、時刻情報は取り出せても 1pps 信号が出せるものは少ない。
著者らは、1pps 信号が出せる GPS 受信機として、現在最も安価でコンパクトな古野電
気の GN-72 を使うことにした。GN-72 は、全長 20cm 強のアンテナと電源（ DC 5V ）を接続することにより、世界中どこにいても常時、高精度の測位情報（経緯度など受信機の
場所）及び
に同期した
信号（以後、正秒信号と呼ぶ）を出力する。図
は、
1
右から、
本体 受信機 に電源等を組み込んだ
１秒信号発生器、のアンテナ、信号を取り出すための水晶発振器 後述 の外観を示したものである。

3.1

UTC
GN-72
1MHz

(

1pps
)

3.1
GN-72

GPS
( )

GN-72

GN-72

図
でもわかるように、の受信機本体は手帳ほどの大きさである。
の制
御及び測位・時刻等のデータの取得は、を使いパーソナルコンピュータ等で行なう。すべての情報はのピンコネクタよりレベルのシリアルデータとして得られる。このときコネクタからの電源を供給しており、同時に同じコネクタを通じて正秒信号も得ることができる。
を利用するには視野内に使用可能な衛星が複数個（できれば 個以上）あることが必要であるので、アンテナは見通しがよく周りに反射物等のない場所、例えば高い建物の屋上等に設置する。

RS-232C
GN-72 D-sub 9
+5V
GPS
4

RS-232C

GN-72 を用いた NTP サ−バを実現するに当たっては、セシウム原子時計に基づく NTP
stratum 1 サ−バの試作用に、昨年度開発したカウント回路 (図 3.2) を そのまま流用できるように、GN-72 の正秒信号出力の波形変換回路及び 1MHz 信号発生器を設計した。すな
わち、著者らの GPS 受信機の利用方法は、GPS 受信機 (GN-72) からの秒信号と水晶発振機からの 1MHz 信号をカウンタ回路でカウントし 、その結果をパラレルインタフェー
スを介して UNIX のカーネルに読み込むというものである。この方法以外にも、xntpdの配布パッケージに含まれる GPS 受信機用ドライバに見られるような方法、すなわち時刻情報を RS-232C 経由で取り込むという方法がある。この方法だと、仮に 19200bps で通信を行っても、1bit 分すなわち 50 μ秒程度の誤差がシリアルインタフェースまわりで発生する上、割込み処理のオーバヘッド もある。このため、この方法は最初から検討の1 GPS １秒信号発生器の左下隅の "GPS" と書かれている長方形のユニットが GN-72 本体である。

473

474

1993 年度 WIDE 報告書

B.C

B.C

4

4

4

4

4

4

4

4

B.C

B.C

B.C

Amp.

4

B.C

Att.

4

B.C

Pulse
Trans.

4

32bit "sec." counter (utc.tv_sec)
B.C

1MHz

4

B.C

4

B.C

4

B.C

B.C

Amp.
SW’s

B.C

Amp.

B.C

Att.

B.C

Pulse
Trans.

B.C

1 Hz

GPS １秒信号発生器 (右),GN-72 のアンテナ (中) と水晶

Control
Logics3.1: GN-72

図
本体を内蔵した発振器の外観4

NOTE: B.C −−− 4bit Binary Counter
32bit "micro sec." counter (utc.tv_usec)

図3.2: カウンタ回路の構成

4第 12 部

475

NTP

対象外であった。
より出力される正秒信号は、レベル（ ，，パルス幅）であるので、まずこれをワンショットマルチバイブレ−タ（
）をへて
バッファ
アンプにより、 、、パルス幅  の出力信号に変換する（図）。これはセ

GN-72

TTL

5V 50

5V 1M
Single Shot

20 s

500ms
50
3.3(1)(1)GPS 1秒信号発生器

GPS
受信機

1pps
1ΜΩ ,5V
500ms

1pps
50Ω ,5V20µs

波形整形(2) 水晶発振器
水晶
発振子

ライン
ドライバ

1/10
分周器

1MHz
50Ω
2.5V

10MHz

図

3.3: GPS １秒信号発生器 (上) と水晶発振器 (下) のブロック図
10V

20 s

50ns
(10 2 10 6 500)Hz50
3.3(2)

シウム原子時計の正秒信号（、パルス巾  、立ち上がり時間以下）と同等の6
信号形態にするための工夫である。
信号発生器は、の水晶発振子を用いて、カウンタ
による分周器により分周し 、出力にラインド ライバを用いて、、、の矩形波を得ている（図）。これはセシウム原子時計の信号（、、正弦波）に相当するものである。なお、カウント回路では信号をゼロクロスコンパレ−タで矩形波に変換している。
これらを用いることで受信機から得られる正秒信号と、信号をカウント回
路を通して計算機に取り込むことができる。
から見た場合、カウンタ回路を駆動する
信号源が何であるかは何ら意味をもたないので、のカーネルとして前節で述べたセシウム原子時計を時刻源とするサーバ用のカーネルを用意すれば 、に基づくサ−バを実現できる。

IC
1MHz 50 2.5V
1MHz
1V-rms 50
1MHz
GPS

NTP

1MHz

10

PC

NTP

1MHz

PC

GPS

第 4章

NTP stratum 2 のゆらぎ
すでに述べたように、今回開発した、「カウンタ回路の出力をカーネル内に取り込む機能」を持つカーネル 改造カーネル は、カーネルの内部変数に以下の２つの時刻を保持
している。

(

)

 カウンタ回路から読み込んだ値 (に一定値を加えたもの)。すなわち UTC に同期した時刻 (以後、セシウム時と呼ぶ) 。
 PC に内蔵された水晶発振器を時刻源として求めたもの。すなわち従来の方法で求めた時刻 (以後、PC 時と呼ぶ)。

stratum 1

この２つの時計を用いれば、インターネット上の他組織で稼働中のを参照す
るがどの程度の精度の時刻情報を維持しているのか 言い替えれば 、はどの程度ゆらぐのか を調べることができる。

2

stratum 2)

本章では、この「

4.1(

stratum

stratum 2 のゆらぎ 」を計測した結果について述べる。

実験方法

2 章で述べたように、改造カーネル内部に保持されている 2 つの時刻のうち、どちらの値を現在の時刻とみなすかは外部からの指示に基づいて随時変更できる。セシウム原子時
計ベースのとして運用する場合にはもちろんセシウム時を現在時刻とするように設定するが、時を返すように すなわち通常のと同じ挙動を取るように し 、この状態でとして運用すれば、このの現在時刻 すなわちが返す値 は、参照関係にあるやの影響をうけて変動する。このような設定のもとで、として時事刻々変動する
時とに同期しているセシ
ウム時の時刻差を記録すれば 、としてサーバを運用するとどの程度の精度の時刻を確保できるかを調べることができる。なお、改造版カーネルは
システムコール実行時に つの時計の時刻差をカーネル内のある変数に記録するので、時刻差の計測は以下の ステップで完了する。

)

stratum 1
PCstratum 2

stratum 2
3(

PC

stratum 2

PC
NTP

PC
stratum 1 stratum 2

2

1. あらかじめ /dev/kmem を open しておく。
476)
gettimeofday()(UTCgettimeofday()

第 12 部

477

NTP

2. gettimeofday() を実行する。
3. カーネル内にある時刻差を保持している変数の値を /dev/kmem から読み出す。
4.2

実験結果と評価

4.1

1993 年 11 月におよそ 12 時間にわたっ

以下に実験結果の一例を図を示す。これはて計測した際のデータをプロットしたものである。

PC clock (NTP stratum 2) vs. Cesium Clock (UTC)0.5
0Error (msec.)

-0.5
-1

-1.5
-2
-2.5

0

10000 20000 30000 40000
Elapsed time (sec.)

図

stratum 250000

4.1: stratum 2 のゆらぎ

UTC

1msec

0.5msec

このデータは、は、と比べておよそ
遅れており、±
程
度のゆらぎがあることを示している。最近の主なワークステーションののほとんど
は、内部時計の粒度が μ秒であることを考えると、このゆらぎと遅延はかなり大きい
と言える。

1

OS

第 5章

GPS 受信機に基づく stratum 1 NTP サーバの
精度と確度
GPS

GN-72

stratum 1 NTP

ここでは、受信機として前述したを用いてサーバを構築した場合、サーバとして予想される性能を各種の実験を通じて評価する。

5.1

水晶発振器の精度

1MHz

採用した水晶発振子の規格からすれば 、試作した水晶発振器から得られる
正弦
波は、セシウム原子時計の出力する正弦波と同等の安定度を持つはずである。このことを確認するために、次の 種類の時刻供給方式を準備した。

3

1MHz

1. 最初の時刻供給方式は、昨年度の報告書において紹介した方式と同じく、1pps 信号と 1MHz 信号の両方ともセシウム (Cs) 原子時計からカウント回路を介して計算機へ供給する方式である。以後、この方式を CS モードと呼ぶ。
2. 次の時刻供給方式では、1pps 信号はセシウム (Cs) 原子時計から、1MHz 信号は水晶発振器から各々カウント回路を介して計算機へ供給される．この方式を CX モー
ド と呼ぶ。

3. 最後の時刻供給方式では、1pps 信号は GPS 受信機から、1MHz 信号は水晶発振器
から各々カウント回路を介して計算機へ供給される。この方式を GX モードと呼ぶ。
3( 5.1 5.3)

これらの時刻供給方式間の差を調べるために、 種類の実験系 図〜を準備した。最初の実験系（図）はモードによって時刻を供給される計算機が保持する時
刻同士をネットワークを介して比較するものであり、ここでは、参考のために再掲した。
次の実験系（ 図）は、 モードとモードによって各々時刻を供給される計算機間で、ネットワークを介して時刻比較するものであり、水晶発振器とセシウム原子時計の信号同士を直接比較するために構成した。最後の実験系（図）は、 モー
ドとモードによって各々時刻を供給される計算機間で、ネットワークを介して時刻比較するものであり、受信機と水晶発振器から構成される時刻信号発生システムの全体性能をみるためのものである。

5.1

5.2

1MHz
GX

CS

CS

CX

5.3

GPS

478

CS

第 12 部

秒

1pps

自作
カウント
回路

セシウム
原子時計

479

NTP

1MHz

32bit

PC-9801

Server

PC-9801

Client

32bit

μ秒

秒

1pps

自作
カウント

32bit
32bit

回路
1MHz

図

μ秒

5.1: CS モード 間の時刻比較実験ブロック図

秒

1pps

自作
カウント
回路

セシウム
原子時計

1MHz

カウント

32bit

PC-9801

32bit

Client

回路
1MHz

図Server

32bit

秒
自作

発振器

PC-9801

μ秒

1pps

水晶

32bit

μ秒

5.2: CS モードと CX モードの時刻比較実験ブロック図4801993 年度 WIDE 報告書

秒

1pps

自作
カウント
回路

セシウム 1MHz
原子時計

GPS
受信機

PC-9801

Server

PC-9801

Client

32bit

μ秒

秒

1pps

自作
カウント
水晶

32bit
32bit

回路

発振器

図

32bit

1MHz

μ秒

5.3: CS モードと GX モード 間の時刻比較実験ブロック図
CS0

昨年度の報告書でも述べたが、モード 間の時刻比較では時刻差の平均値はほぼ 、標準偏差は約 であった。今回新たに行ったモード とモード 間の時刻比較
でも、時刻差の平均値はほぼ 、標準偏差はほとんど変わらず約 であった。すなわ
ち、この結果をみる限り、ネットワークを介した時刻比較の用途には水晶発振器とセシ
ウム原子時計の信号同士の差はないといってよい。一方、 モードとモード間の時刻比較では、時刻差の平均値には、後に述べるような数 程度のごく微小な（しかし系統的な）差が現れたが、標準偏差は変わらず約 前後であった。従って、試作した水晶発振器は、セシウム原子時計と同等程度の正弦波を出力することが確
認された。

100 s

0

CS

CX
100 s

1MHz

100 s
1MHz

5.2

CS
s

GX

GN-72 から得られる時刻信号の精度と確度

GN-72 から得られる正秒信号の精度と確度を調査した。
そのためには、複数の GN-72 からの正秒信号を計測し 、正秒信号のでるタイミングの次に、個々の受信機による系統的な差（すなわち機差）及び正しい協定世界時の正秒信号との差（すなわち確度）を得なければならない。また、自体が、時々刻々その配置が変る人工衛星によって運用されているため、計測された機差・確度ともに計測時刻に依存する可能性がある。したがって、この種の計測を長期間連続して行う必要がある。そこ
で、を 台用意し 、同一地点 国立天文台三鷹 において独立に作動させ、出力される正秒信号と、国立天文台三鷹においてセシウム原子時計群により維持されている協定世界時（）に完全に同期した正秒信号との差を、それぞれ社製の時刻間隔計
測機器により年の 月から 月にかけて連続計測した。

GPS

GN-72 2UTC
HP5370A(HP

2
3
この実験を実験 A と呼ぶ（図 5.4 ）。やむを得ない停電時などを除けば 、データの欠測はほとんどなかった。

1994

)

第 12 部

481

NTP

実験Ａ ブロック図

1pps

セシウム
原子時計
Start

Time
Interval
Stop Counter

GP-IB
PC-9801

GPS
受信機 1pps
①

Start

Time
Interval
Stop Counter

GPS
受信機 1pps
②

図

GP-IB

(三鷹)

5.4: GPS 受信機時刻信号比較実験（同一地点）

482

1993 年度 WIDE 報告書

GPS
GPS1 0 GPS2

GPS1 0 UTC GPS2 0 UTC
60

解析には、計測から直接得られる
受信機別の差（、と呼ぶ）と受信機同士の差（）の各々について、毎秒の粗計測値を回平均した値（ 以後、毎分値と呼ぶ）を用いた。こうして得られた毎分値データの例とし
て、
を図
に示す。

GPS1 0 UTC

5.5

GPS1-UTC
3
2
Diff. (microsecs)

1
0
-1
-2
-3
-4
48

50

52
54
56
58
Day of Year in UTC (1994)

60

62

5.5: GN-72 の時刻信号と協定世界時との差（実測値）
縦軸は GN-72 0 UTC を表し 、その単位は s である。横軸は 1994 年の通日（年初から数えた日数で元旦を 1 とする）である。通日の変わり目は UTC で 0 時である。
図からもわかるように、GN-72 から得られる正秒信号は、ほぼ 1 日間（おおむね UTCの 0 時から 24 時まで）は一定であるが、日毎の値は数s 変化する。われわれの知る限り、正秒信号が取り出すことのできる他の GPS 受信機（例えば 、STI 社製、SONY 社製
GTT-3000、Trimble 社製 5000A ）には、このような振舞は見られない。これは、GN-72
図に特有な現象であろう。
さらに解析を進めるために、計測データが区分的に階段関数状に変化するという性質を念頭において、

1. UTC で同じ日付毎に毎分値データを分け、
2. 個々のデータについて、3あてはめ1 により誤データを除外したのち、
1 標準偏差の 3 倍以上の偏差を持つデータを除外してからもう一度標準偏差を計算しなおし 、この過程が収束するまで繰り返す方法

第 12 部

NTP

483

5.1: 三鷹における GN-72 の時刻精度
月日 通日 GPS10GPS2 GPS10UTC GPS20UTC
2/17 48 0.05 6 0.06 00.36 6 0.08 00.42 6 0.10
/18 49 0.05 6 0.06 0.17 6 0.09 0.13 6 0.09
/19 50 0.04 6 0.05 2.33 6 0.09 2.29 6 0.10
/20 51 0.04 6 0.06 0.03 6 0.09 00.01 6 0.10
/21 52 0.04 6 0.05 1.37 6 0.09 1.32 6 0.10
/22 53 0.04 6 0.05 1.29 6 0.09 1.24 6 0.10
/23 54 0.04 6 0.05 1.80 6 0.09 1.75 6 0.10
/24 55 0.06 6 0.06 1.97 6 0.09 1.92 6 0.09
/25 56 0.04 6 0.06 0.70 6 0.09 0.67 6 0.10
/26 57 0.04 6 0.06 1.94 6 0.09 1.90 6 0.09
/27 58 0.04 6 0.06 1.37 6 0.09 1.33 6 0.10
/28 59 0.04 6 0.06 1.35 6 0.10 1.31 6 0.11
3/01 60 0.04 6 0.04 1.28 6 0.12 1.23 6 0.13
（ 注）表中の単位は s である。
表

3. 平均値とそのまわりのバラツキを求めることを行った。その結果を表 5.1に示す。ただし、表中の通日とは年初から数えた日数（元旦の通日は 1 ）のことであり、表中の単位はs である。また、ここでおこなった区分的階段関数あてはめ後の残差の一例として、GPS1 0 UTC の場合を図 5.6に示す。あきら
かに、残差中に周期成分など系統的な変動は見られない。他の場合も同様であった。
表より、以下のような結論を得る。

5.1
1. GN-72 から出る正秒信号の機差はほぼ 0 である。具体的には
GPS1 0 GPS2 = +40 6 50ns

(5:1)

2. 受信機間の差をとることによってバラツキが約 100ns から約 50ns へと半減することから、同じ地点における GN-72 の時刻信号の変動の間には高い相関があることがわかる。

3. GN-72 の正秒信号は、peak-to-peak で 2.5s ほどランダムに日変化する。
4. 一方の GN-72 の正秒信号と協定世界時との差をモニタすることにより他方の GN-72の正秒信号の日変化を 0.1s 程度の精度で (1 日遅れながら ) 補正できる可能性が
ある。

484

1993 年度 WIDE 報告書

GPS1-UTC
0.3

Diff. (microsecs)

0.2
0.1
0
-0.1
-0.2
-0.3
-0.4
48

図

50

52
54
56
58
Day of Year in UTC (1994)

60

62

5.6: GN-72 の時刻信号と協定世界時との差（区分的階段関数あてはめ後）

第 12 部

5.3

485

NTP

GN-72 の時刻信号の受信地点依存性

GN-72
GN-72

前節で得られた結果から、同一地点における間の差はほぼ無視できることがわ
かったが、実際に運用する場合においては個々のが置かれている場所は異なるため、これでは十分な性能評価とはいえない。
そこで、が出力する時刻信号の、受信地点による差及び確度の時間依存性を調べることを目的として、離れた二地点 国立天文台三鷹と国立天文台水沢 で 台のを独立に作動させ、出力される正秒信号と三鷹及び水沢での協定世界時と同期されている正秒信号との差を、前節と同様の方法で年の 月末以降計測してきた（ 月末現
在、計測を継続中である）。この実験を実験 と呼ぶ（図
）
。

GN-72

(

) 2

1994
B

4

5.7

実験Ｂ ブロック図

1pps

セシウム
原子時計

3

GN-72

PC-9801

Start

Time
Interval
Stop Counter

GP-IB

(三鷹)

GPS
受信機 1pps

UNIX
Work
Station

①

1pps

セシウム
原子時計

PC-9801

Start

Time
Interval
Stop Counter

GPS
受信機 1pps

GP-IB

(水沢)

②

図

5.7: GN-72 時刻信号比較実験（三鷹・水沢）

5.8 5.9

写真、 は、水沢における計測風景及びアンテナの設置状況を示している。前節において特には述べなかったが、三鷹における実験もほぼ同じ状況で実施している。
と協定世界時との差を

GN-72

1T  GPS 0 UTC
1

1

01

と書くことにする。三鷹と水沢における T 及び両者の差 T水沢
T三鷹 の各々について、前節と同様のデータ処理を施した結果を表に示す。データの取得状況、区分的階

5.2

486

1993 年度 WIDE 報告書

図5.8: GN-72 時刻信号計測風景（水沢）図5.9: GN-72 アンテナ設置状況（水沢）第 12 部

487

NTP

5.2: 三鷹と水沢における GN-72 の時刻精度
月日
通日
1T
1T 1T 0 1T
3/23
82 1.017 6 0.109 3.053 6 0.101 02.028 6 0.089/24
83 00.113 6 0.455 1.110 6 0.396 01.601 6 0.512/2584 00.733 6 0.105 1.404 6 0.104 02.144 6 0.105/26
85 00.741 6 0.118 1.426 6 0.106 02.168 6 0.101/27
86 00.716 6 0.102 1.440 6 0.106 02.156 6 0.092/28
87 00.697 6 0.106 1.483 6 0.119 02.173 6 0.094/29
88 00.678 6 0.106 1.496 6 0.103 02.171 6 0.088/30
89 00.628 6 0.112 1.404 6 0.104 02.131 6 0.100/31
90 00.689 6 0.106 1.426 6 0.106 02.249 6 0.105
4/01
91 00.697 6 0.107 1.440 6 0.106 02.272 6 0.103/02
92 00.679 6 0.105 1.483 6 0.119 02.270 6 0.108/03
93 00.627 6 0.115 1.496 6 0.103 02.223 6 0.111/04
94 00.759 6 0.104 1.506 6 0.108 02.352 6 0.099/05
95 00.621 6 0.097 1.559 6 0.129 02.293 6 0.098/06
96 00.685 6 0.105 1.567 6 0.114 02.358 6 0.112/07
97 00.710 6 0.105 1.585 6 0.124 02.397 6 0.106/08
98 00.796 6 0.101 1.597 6 0.120 02.480 6 0.096/09
99 00.684 6 0.096 1.598 6 0.110 02.381 6 0.085/10
100 00.683 6 0.101 1.694 6 0.121 02.398 6 0.099/11
101 00.677 6 0.111 1.679 6 0.123 02.439 6 0.107/12102 00.739 6 0.105 1.699 6 0.107 02.513 6 0.101/13103 00.693 6 0.100 1.690 6 0.104 02.530 6 0.120
標準偏差の平均
0.106
0.111
0.101
（注 1 ）推定誤差の平均の計算には、異常値とおもわれる通日 83 のデータを除外した．
（注 2 ）表中の単位は s である。
表

水沢

三鷹

水沢

三鷹

488

1993 年度 WIDE 報告書

段関数あてはめ後の残差の様子などは、同一地点の実験結果とほぼ同じであった。
表より、以下のような結論を得る。

5.2

1. 通日 83 のデータは階段関数当てはめ後の標準偏差（表中で6の右側の数字）が、場
所によらず大きい。生データを詳細に検討した結果、これは値の階段関数的な変化
がでの日の変り目ではなく、中途半端な時刻で起きているためであることが
わかった。

UTC

2. 今回の実験期間中では、図 5.5にみられるような GN-72 の正秒信号の大きなジャン
プは１回しか起きていない（通日 82 と通日 84 以降）。
3. データのばらつきはどれも 100ns 程度である。これは、三鷹同時観測のときの1T のバラツキと同程度である。地点間の差をとることによってバラツキが増えもしなけ
れば減りもしないことから、同時観測のときとは異なり、異地点におけるの時刻信号のゆらぎは無相関というほどではないが、その相関はかなり弱いことがわ
かる。

GN-72

4. １回起きたジャンプの前後で、1T 0 1T は有意に変化していない。このことは、一方の GN-72 と協定世界時との差をモニタすることにより、他方の GN-72 の
正秒信号の日変化を 0.1 マイクロ秒程度の精度で、ほぼリアルタイムで補正できる
水沢

三鷹

ことを示唆している。

101

この実験により得られた T水沢
T三鷹の値は、現実の三鷹・水沢間の協定世界時の差、すなわち実際にを決定するために採用されている方法（
受信機で同じ衛星を同時に受信する方法で同視野観測法と呼ばれる）による両者の差と一定値（数 だけ異なっていた。このオフセットが生じた原因は現在も調査中であるが、従来の方法が異なる
受信機を用いていること、受信機同士の機差について
はメーカーの公称値をそのまま用いていることなどの点から考えて、機差を事前に測定済の同型の受信機で得られている今回の結果のほうがより信頼度が高いと考えている。

UTCs)Common View Method

GPS

GPS

第 6章
広域ネット ワーク上における新しい時刻同期機構の提案
NTP を利用した時刻同期システムでは、各 stratum のサーバの数、ネットワーク上での設置場所、および参照関係が不適当であると、ネットワーク上に NTP パケットが大量に流れたり特定のサーバに問い合わせが集中するといった事態に陥ることがあり得る。
パケットがネットワーク上の特定のホストに集中すると、時刻情報のやりとりにか
かる時間とそのゆらぎが増大することになり、決定される時刻の精度を下げてしまうことになる。たとえば 、国立天文台のセシウム原子時計ベースのを日本中の組織のが一斉に参照したとすると、同を運用している計算機と同機
周辺のネットワークに大きな負荷がかかると予想される（図
）
。

NTP

stratum 2

stratum 1

セシウム原子時計を用いたStratum 1 サ ー バ ー

stratum 1

6.1

UNIX
Work
Station

UNIX
Work
Station

セシウム
原子時計

UNIX
Work
Station

大量の
NTP パ ケッ ト
Stratum 2 サ ー バ ー

UNIX
Work
Station

UNIX
Work
Station

UNIX
Work
Station

少数のStratum 1 サーバー

図6.1: 従来の NTP システム
489

490

1993 年度 WIDE 報告書

stratum 2
stratum 1

このような従来型の運用形態、すなわち各組織ではを運用し 、これらのはインターネット上の何箇所かにあるを参照するという運用形態のままでは、伝送遅延時間のゆらぎ等の影響が深刻で、時刻同期精度をミリ秒のオーダ
より良くすることは難しい。
そこで、手軽に実現可能な受信機を使った
サーバを各組織でとして運用し 、

stratum 2

GPS

NTP

stratum 1

 組織内の計算機は、この stratum 1 を参照して時刻合わせを行う。
 組織内の stratum 1 は 、必要な場合にのみ、セシウム原子時計を使った NTP サー
バにはアクセスする。

NTPという方法が考えられる。この方法を採用すれば 、インターネット上を流れる
パ
ケットの量は従来の「 インターネット上の少数のサーバが 、多数の組織からの時
刻同期要求を処理する」という方法に比べて大幅に減少し 、セシウム原子時計を使ったサーバの負担も減少する（図
）
。

NTP

NTP

6.2

セシウム原子時計を用いたStratum 1 サ ー バ ー

UNIX
Work
Station

UNIX
Work
Station

セシウム
原子時計

UNIX
Work
Station

GPS 受信機を用いた
Stratum 1 サ ー バ ー

ごく少量のNTP パ ケッ ト
UNIX
Work
Station

UNIX
Work
Station

GPS
受信機
UNIX
Work
Station

GPS 受信機を用いた
Stratum 1 サーバーを分散して配置する

図6.2: 分散型 NTP システム
NTP
NTP

GPS

NTP
NTP

このように、セシウム原子時計ベースのサーバと受信機ベースのサー
バを使い分ける方式をここでは「分散型システム」と呼ぶ。分散型
システム
では、セシウム原子時計を使ったサーバをとして運用し 、問い合わせを制限するといったことも考えられる。なお、この方式を用いた場合、各組織で運用されNTP

stratum 0

第 12 部

stratum 1

491

NTP

stratum 2るを参照して時刻同期を行うの期待される時刻同期精度はマイクロ秒程度となろう。
さらに高精度の時刻同期が必要とされる場合には、受信機が出力する時刻信号との時刻差を定点（例えば国立天文台）で常時モニタし 、その結果及び過去の傾向を加味した予測値をなどの方法で常に公表し 、各組織の受信機を使った
サーバに対し 、正しいに変換するための情報を提供するというしくみを用意すればよい（図）。この方式を、ここでは「時刻差予報型システム」と呼ぶ。

GPS

UTC

anonymous ftp, gopher, net news
NTP
UTC
6.3

GPS

NTP

UTC-GPS 時刻差
測定･通知システム

セシウム
原子時計

UNIX
Work
Station

UTCとGPS受信機の1秒の差の予報値

GPS
受信機

UNIX
Work
Station

GPS 受信機を用いた
Stratum 1 サ ー バ ー

UNIX
Work
Station

UNIX
Work
StationGPS
受信機

GPS 受信機を用いた
Stratum 1 サーバー＋

UTC(NAOT)-GPS

図6.3: 時刻差予報型 NTP システム

NTP

UTC(NAOT) GPS

時刻差予報型システムでは 、と受信機の時刻差の予報値を受信機の機種ごとに通知する。利用者は、この情報に基づいて時刻の補正を行うことにより、受信機を使った
サーバの精度をさらに約一桁向上させることができる。この方式を用いるとで期待される時刻同期精度を数ナノ秒程度とすることができる（図）。この時刻差予報型
システムは、ネットワークに無用な負荷をかけずにマイクロ秒以下の精度の時刻情報を提供できるという大きな利点がある
ため、今後積極的に利用されるようになると思われる。

GPS

GPS

6.4

NTP
stratum 2

NTP

100

492

1993 年度 WIDE 報告書

Stratum 2UTC

少数のStratum 1 サーバー
時間

数m秒

UTC

GPS 受信機を用いた
Stratum 1

GPS 受信機を用いた

Stratum 1 サーバーを分散して配置する

時間

数μ秒

GPS 受信機を用いた
Stratum 1(補正後)(補正前)

GPS 受信機を用いた

Stratum 1 サーバー＋

UTC

UTC(NAOT)-GPS
の予報値
時間

100n秒
数μ秒

図

6.4: 各 NTP システムによる時刻同期精度

第 7章
おわりに
GPS

本報告では、まずセシウム原子時計や受信機を用いた時刻同期機構の研究開発状
況について報告し 、次に広域ネットワーク上における時刻同期機構の今後のありかたについての検討結果を述べた。その概要は以下のとおりである。

 セシウム原子時計を用いた時刻同期機構を構築するため、PC 上で稼働する UNIXのカーネルを改造して、時刻情報をカーネル内に直接取り込む方法を採用した。この結果
システムコールは、セシウム原子時計精度の時刻を返すようになった。

gettimeofday() GPS 受信機を利用した時刻同期機構の開発も進んだ。GPS 受信機から時刻を情報取得し RS-232C 経由でワークステーションに送る方式は、以前から xntpd 等で利用されているが、この方法では、時刻情報の取り込みがユーザプロセスで行われる
ため、十分な精度が得られないという問題があった。そこで、著者らは、受信機からの信号をカウンタ回路で数えておき、この値をのカーネル内にパラレ
ル入力インタフェースを介して直接取り込む方法を採用した。

UNIX

GPS

さらに、

 GPS 衛星からの時刻情報を時刻源として稼働する stratum 1 を運用すれば、他組織との間で NTP による時刻同期を行わなくても実用上は十分な精度が得られる。
 このようにして運用されている stratum 1 の時刻と UTC とのずれは、NTP によらない方法で通知でき、各組織ではこの値を利用して時刻を修正すれば各組織の stratum
1 の精度を 数 100 ナノ秒程度の精度に保つことができる。
 この方法を用いると、組織間に流れる NTP パケットを無くすことができる。
の 3 点を指摘した。
今後は、GPS 受信機を利用した stratum 1 の普及を促進するため、さまざまな GPS
受信機用のド ライバソフトウェアの開発や、GPS ベースの straum 1 と UTC との時刻差等の情報を提供する機構を整備する予定である。
ところで、インターネット上のほとんどの組織が受信機を利用したを運用するようになるまでには、しばらく時間がかかると思われる。したがって、イン

GPS

1

493

NTP stratum

494

1993 年度 WIDE 報告書

NTP

ターネット上でどのようなの参照関係を樹立するかについては、今後も引き続いて重要な検討事項となろう。この問題に関しては、がコーディネーションを行うとのことなので、ワーキンググループは、このコーディネーションにしたがうだ
けでなく、積極的に支援したいと考えている。

NTP

JEPG/IP