ユーザ用ツール

サイト用ツール


サイドバー

目次

ホーム










.

knowledge:clock


時刻同期のNTPとPTPの違い(PPS)

時刻を正確にすることは、障害の調査やパフォーマンス計測をする場合などとても重要です。

最近では、さらにより精度の高い情報が必要になってきています。
たとえば、高頻度取引(HFT)にとっては、ネットワークの遅延情報がとても重要になってきます。
フレームにタイムスタンプヘッダを付与し、モニタリングし、いかに遅延をなくすかを分析します。




時刻の単位


ミリ秒(ms)
マイクロ秒(µs)
ナノ秒(ns)

  • 1秒 = 1000ミリ秒
  • 1ミリ秒 = 1000マイクロ秒
  • 1マイクロ秒 = 1000ナノ秒
  • 1秒と10秒なら、1秒の方が、10倍速い。
  • 1ミリ秒と10ミリ秒なら、1ミリ秒の方が、10倍速い
  • 1マイクロ秒と10マイクロ秒なら、1マイクロ秒の方が、10倍速い
1 s   = 1,000 ms  = 1,000,000 µs = 1,000,000,000 ns
0.1 s  = 100 ms   = 100,000 µs =  100,000,000 ns
0.01 s  = 10 ms   = 10,000 µs =  10,000,000 ns
0.001 s  = 1 ms   = 1,000 µs   =  1,000,000 ns
0.0001 s  = 1 ms   = 100 µs   =  100,000 ns
0.00001 s  = 0.1 ms  = 10 µs =  10,000 ns
0.000001 s  = 0.01 ms  = 1 µs =  1,000 ns


時刻同期の比較

時刻同期方式 精度 媒体
NTP <1~10ms LAN/WAN環境
PTP v1/v2 IPv4 ハイブリッドタイムスタンプ <10~100us LAN環境
PTP v2 IPv4 ハードウェアタイムスタンプ <1us LAN環境
1PPS信号 <1us 同軸
GPS <1us GPS衛星

Endrun IEEE 1588 PTP グランドマスタークロック

1PPSとは

  • PPSは、Pulse Per Secondの略です。
  • 衛星が1秒間に1発だけでる非常に正確なパルス波です。(1PPS)
  • GPS/GNSS信号を受信し、GPS/GNSS測位により求まる正確な時刻で発振器を制御して高確度かつ高精度なタイムパルス
  • ±1µs の精度
  • 機器(タイムサーバやL1スイッチ)にPPSのINがあって、それを利用できると精度が高い。
  • PTPグランドマスターの出力の1PPSとハードウェアタイムスタンプのスレーブの1PPS出力をオシロスコープを利用することで、精度の確認が可能


NTPとPTPの比較

NTPとは

  • NTPは、Network Time Protocolの略です。
  • 数ミリ秒程度 の同期精度を達成することを目的としています。
  • インターネットを経由してデバイスを同期
  • NTPサーバーと時刻問い合わせ間隔が比較的長い

うるう秒(閏秒 : leap second)

地球の自転が遅い状態が続いたり、自転の速い状態が続いたりすると、地球の自転によって決まる時刻と原子時計によって決まる時刻のずれが大きくなります。そのようなとき、時刻のずれを修正するために「うるう秒」を実施します。

質問4-3)「うるう秒」ってなに? | 国立天文台(NAOJ)

■通常(うるう秒なし)
X時59分58秒
X時59分59秒
X時00分00秒
X時00分01秒
■うるう秒あり
X時59分58秒
X時59分59秒
X時59分60秒  <- うるう秒
X時00分00秒
X時00分01秒
過去のうるう秒
第27回 2017/1/1 +1 秒
第26回 2015/1/1 +1 秒
第25回 2015/7/1 +1 秒
第24回 2009/1/1 +1 秒
第23回 2006/1/1 +1 秒
第22回 1999/1/1 +1 秒
第21回 1997/7/1 +1 秒
第20回 1996/1/1 +1 秒
第19回 1994/7/1 +1 秒
第18回 1993/7/1 +1 秒
第17回 1992/7/1 +1 秒
第16回 1991/1/1 +1 秒
第15回 1990/1/1 +1 秒


PTPとは

  • PTPは、Precision Time Protocol の略です。
  • IEEE1588
  • うるう秒がない時刻系
  • イーサネットでPTPを使用するにあたり、ネットワーク機器もPTP対応である必要があります。
  • LAN内での利用を想定され、サブミリ秒 での同期精度を達成
  • どのクロックを親にするか決めるルールがあります。


PTPが使われる場面

  • 金融取引(高頻度取引(HFT:High frequency trading))
  • 放送業界におけるIPベース移行(スタジオIP化、4K/8K放送)
  • LTEの携帯キャリア網


PTPのバージョン

  • PTP Version 2 では Version 1 がありますが、互換性はないです。
  • マスターとスレーブは同じPTPバージョンを使うようにせねばなりません.
PTPv1 V2の登場により使われなくなりました.
UDPによるマルチキャストで時刻情報を頻繁に配信するプロトコル
BC(バウンダリークロック)を多段に使用することは誤差の累積を招きます.
PTPv2 TC(トランスペアレントクロック)と呼ばれる遅延管理機能を持ったスイッチングハブの利用が可能になりました.
UDPマルチキャストに加えてP2Pのユニキャストも可能になりました


うるう秒がない

NTPは、地球の自転周期に追従するうるう秒がある時刻系ですが、
PTPは、国際原子時(TAI)をつかっており、うるう秒がない時刻系になります。


ハードウェア・タイム・スタンプとソフトウェア・タイム・スタンプ

ハードウェア・タイム・スタンプ PTPは数十分の1ミリ秒以内の精度でシステムを同期
ソフトウェア・タイム・スタンプPTPは数十ミリ秒以内の精度でシステムを同期


グランドマスター(Grandmaster)とスレーブ

  • 「PTP Grandmaster」「IEEE-1588 Grandmaster」:PTPをサポートするネットワークタイムサーバ
  • GMC (グランドマスタークロック):グランドマスターの時刻
  • 「グランドマスター」が高精度な時刻の配信を行います。
  • 「スレーブ」は、サーバなどのPTPを受信する側です。
  • グランドマスターの時間参照ソースとしては、一般的にGNSSになります。
  • 複数グランドマスターがいる場合、どのGMCがマスターになるかは、GMCA と呼ぶマスタークロック選出アルゴリズムで自動的に決定します.
  • オシロスコープを使って、 グランドマスターの出力する 1PPS 信号とハードウェアスレーブの1PPS 信号を比較測定することができます。
ハードウェアタイムスタンプの
グランドマスター
グランドマスタークロックは GPS 時刻に対して 30ナノ秒以上の精度
ハードウェアタイムスタンプの
スレーブ
専用NICによるハードウェアタイムスタンプとPTPソフトウェアデーモン
100ナノ秒以上の同期精度
ソフトウェアタイムスタンプの
スレーブ
既存のハードウェアとPTPデーモンで実現
10から100マイクロ秒程度の精度での同期
マザーボード上のシステムクロックの精度は悪く、
またソフトウェアタイムスタンプは OS の遅延の影響を受ける
1PPS 出力がないために、ソフトウェアスレーブとマスターの同期精度の測定はログファイルの記録に頼る必要がある。


グランドマスタークロックの冗長化

BMC(Best Master Clock)アルゴリズムによって、 PTP グランドマスターが決まります。
BMC(Best Master Clock) は、2つのグランドマスターのクロックデータを比較し、ベストなクロックを決定します。
ベストなクロックデータを持つグランドマスターがそのネットワークの PTP グランドマスターとなり、スレーブに時刻を送信します。
1つの PTP グランドマスターが同期パケットを送信します


スイッチ

通常TTL1なのでL3スイッチやルータを通過できませんが、TTLを大きくしてスイッチを通過させることが可能です.

一般的なスイッチ

一般的なイーサネットスイッチは受け取ったパケットを一旦蓄積してから出力します。
蓄積する時間は予測できず、ネットワークの負荷の影響も受けるためにパケットの遅延はばらつきます。

高速低遅延スイッチ 高速低遅延な蓄積伝送スイッチは、少ないネットワーク負荷においては安定した精度の高い同期を実現しますが、蓄積伝送ゆえパケット遅延のばらつきが生じ、これが時刻同期に悪い影響を与えます。
IEEE-15888機能を持つスイッチ
BC
(Boundary Clock)
(境界クロック)
PTPv1でも利用可能
マスターから見て BC はスレーブのように振る舞い、サブネットに対してはマスターとして振る舞います。
BC は PTP のパケットだけを扱い、一般のイーサネットスイッチやルーターがその他全てのトラフィックを担います。
分離されたサブネットにあるスレーブは、 BC がマスターであるかのようにそれに同期します。
バウンダリークロックを多段に使用することは誤差の累積を招きます.
BC を設置する際は PTP パケットのためにサブネットを用意します。
TC
(Transparent Clock)
(透過クロック)
PTP v2 で定義された
パケットを蓄積している時間を計測し、その時間を Follow-up message の補正項に書き込みます。
スレーブがパケットの遅延を計算する際に、タイムスタンプとこの補正項を使います。
トランスペアレントクロックの動作には2つのモードE2EとP2Pがあり、混用することはできません
E2E : End-to-End
P2P : Peer-to-Peer



List of PTP implementations - Wikipedia

  • Arista 7150 Series Switches
  • Cisco Catalyst 9300 Switch
  • Juniper Networks QFX




https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-Configuring_PTP_Using_ptp4l


https://www.seiko-sol.co.jp/wp-content/uploads/2016/12/leap_second_seminar-PART2-201610.pdf


LinuxでPTPを使う方法

  • LinuxPTPをインストールします。
  • ハードウェアタイムスタンプを利用するためには、対応NICが必要です。(仮想ダメです)


時刻ソースの種類

時刻ソース 精度
GNSS(GPS) ±1µs/回(マイクロ秒)
光テレホンJJY ±1ms/回
テレホンJJY ±10ms/回

±1µs/回の精度が必要な場合、GNSS(GPS)しか選択肢がないです。

GNSSとは(GPSなど)

  • GNSSは、Global Navigation Satellite Systemの略です。
  • GPSは有名ですが、GPS以外にも各国の衛星があります。
  • 米国のGPS
  • ロシアのGLONASS(グロナス)
  • 欧州のGalileo(ガリレオ)
  • 日本のQZSS(準天頂衛星)
  • 中国のBeiDou

光テレホンJJY

  • 日本国内のサービス
  • ひかり電話を利用する

テレホンJJY

  • 日本国内のサービス
  • 2024年3月末で運用終了予定
  • アナログ回線(電話回線)を利用



時刻ソースタイプについて | タイムサーバー | セイコーソリューションズ




時刻同期に必要な機器

オシレータ (Oscillator:発振器)の種類

GNSS信号を受信できなくなってしまった場合に、機器内蔵のオシレーターが時刻を保持しますが、複数の種類があります。

XO Crystal Oscillator
安価で、多くの腕時計に使用されます
TCXO Temperature Compensated Crystal Oscillator
温度補償水晶発振器
周囲温度による発振器周波数のズレを自動補正
400 us/日
OCXO Oven Controlled Crystal Oscillator
恒温槽付水晶発振器ともよばれ、恒温槽内の温度を一定に保つことで、
恒温槽内の水晶発振器の周波数変動を低減します。
25 us/日
ルビジウム原子発振器 原子や分子毎の決まった周波数の電磁波を基準として、水晶発振器よりも高精度な周波数を出力 1 us/日
セシウム原子発振器 原子や分子毎の決まった周波数の電磁波を基準として、水晶発振器よりも高精度な周波数を出力

フルノGPS/GNSS基準周波数発生器[GPSDO、GNSSDO] | 技術 | GPS/GNSSチップ&モジュール | フルノ製品情報


タイムサーバ

タイムサーバは、オプションが色々あるので、購入する時はベンダーとしっかり話して購入しましょう。

メーカー 製品 時刻ソース 配信プロトコル、出力信号
SEIKO TS-2950 GNSS、光テレホンJJY
など
NTP 、PTP 、1PPS
など
Microsemi SyncServer S600 / S650 GNSS、1PPS NTP、PTP、1PPSなど


その他用語メモ

BNC 同軸ケーブルに使われるコネクタ
Bayonet Neill Concelman
CSAC Chip Scale Atomic Clock
超小型原子時計
オシロスコープ 電気信号をグラフとして表示する機器


参考


knowledge/clock.txt · 最終更新: 2020/08/31 23:58 by kurihara

ページ用ツール