Q  | IEEE1588 PTP とは? LANに特化した時刻同期プロトコルです  | 
A  | 
イーサネットなど何らかのメディアで接続された機器間で時刻情報を交換することにより,マイクロ秒やナノ秒RMSでの同期を実現するプロトコルです.この規格は,テストや測定,電気通信,サーバー間時刻同期,電力,オートメーション,画像音声ストリーミングなど,さまざまなアプリケーションの時刻同期方式として着実に定着しつつあります.現在 PTP をサポートしていない機器にも,将来 PTP を組み込むためのハードウェア機能が含まれていることが珍しくなくなりました. 
ネットワークを使った時刻同期にもっとも良く使われるプロトコルは Network Time Protocol (NTP) やそれを単純化した SNTP でしょう. NTP では, サーバーが時刻を配信し,クライエントが時刻を受け取ります.クライエントはネットワーク遅延を計算して補正しサーバーに時刻同期し,自己の時間を管理します.NTP はソフトウェア的に実装されており, Client はミリ秒の精度で Server に時刻同期します. 
 
ネットワークが張り巡らされた環境にとってNTPは手軽な時刻同期方式です.しかし,制御やイベント管理やログ管理をマイクロ秒単位で行うにはNTPの精度と分解能では不十分になってきました.かといって他の高精度な時刻同期の方式は費用的に容易に受け入れられるものではありません.
 
Precision Time Protocol (PTP) は比較的新しいプロトコルであり,利用環境をLANに制限することで高精度な時刻同期を得るために作られました.PTPの仕様は IEEE-1588 として定められています. PTP では Grandmaster (GMC グランドマスタークロック, マスター)が高精度な時刻の配信を行い, スレーブが時刻を受け取ります.どのマスターをGMCとするかは,GMCA と呼ぶマスタークロック選出アルゴリズムで自動的に決定します.
 
PTP ではネットワークインターフェースチップのMACやPHYに実装されたハードウェアタイムスタンプ機能を使い,マイクロ秒RMS以下のタイムスタンプ精度を実現します. また誤差の要因であるネットワークの伝搬遅延を検出して補正する仕掛けを持ちます.Version 1では大規模な展開を行うためにセグメントを区切るBoundary Clock (BC)が用意されました. 現在標準とされ,EndRun製品がサポートする Version 2 では遅延管理機能を持つスイッチングハブ Transparent Clock (TC) が用意され,より柔軟で精度の高い展開が可能になりました.PTP の時刻同期精度は グランドマスタークロックやスレーブクロックのタイムスタンプ精度だけで決まるのではなく,ネットワークのトポロジー,例えばスイッチ, BC, TC やスレーブの同期能力が影響を与えます. Sonoma を含む、現在主流の PTP ハードウェアタイムスタンプをサポートする製品で構成するトポロジーは <100ns の同期も可能になっています. PTP の動作説明については,この EndRun 1588/PTP白書も参照ください.
 
基本的に遅延量が予測できる伝送路に適用できる時刻配信プロトコルです.セグメント越えはできますが、遅延量がダイナミックに大きく変化するWANに展開するのには適していません.  | 
Q  | IEEE1588 PTPの他にも時刻同期には方法があるのでは?  | 
A  | 
 伝統的に使われてきた時刻同期手段と精度は概ね以下の通りです.
  
| 時刻同期方式 | 精度 | 媒体 | Endrun製品の対応 | 
 
| IRIG-B (振幅変調) | 
<1ms | 同軸,600Ω平行線 | 
Sonoma, Meridian II, Tempus LX, Meridian | 
 
| IRIG-B (DCLS) | 
<100us | 同軸 | 
Sonoma, Meridian II, Tempus LX, Meridian | 
 
| 1PPS信号 | 
<1us | 同軸 | 
Sonoma, Meridian II, Tempus LX, Meridian. Praecis II | 
 
| GPS | 
<1us | GPS衛星 | 
Sonoma, Meridian II, Tempus LX, Meridian | 
 
| CDMA | 
<1~10us | CDMA携帯基地局 | 
Sonoma, Meridian II, Tempus LX, Meridian, Praecis II | 
 
| NTP | 
<1~10ms | 
イーサネットなど 
LAN/WAN環境 | 
Sonoma, Meridian II, Tempus LX, Meridian | 
 
  
    PTP v1 IPv4 
    IEEE 1588-2002
     
    ハイブリッドタイムスタンプ | 
  <10~100us | 
    イーサネットなど 
    LAN環境 | Tempus LX, Meridian | 
 
  |   PTP v2 
    IEEE 1588-2008
     
      ハードウェアタイムスタンプ  | 
  <1us | 
   イーサネットなど 
    LAN環境 | 
  Sonoma, Meridian II | 
 
  |   PTP v2.1 
      IEEE 1588-2019 
      IEEE 802.1AS-2020  
      ハードウェアタイムスタンプ  | 
  <1us | 
   イーサネットなど 
    LAN環境 | 
    | 
 
 
 
  クライエント・スレーブの同期精度は時刻サーバのタイムスタンプ精度だけでなく,配信ネットワークのトポロジと受信側の同期能力に依存します. Sonoma のように、高い精度の基準発振器を持つグランドマスターと、高いタイムスタンプ精度と分解能を持つ機器を使いネットワークを構成することで、総合的に高い同期精度を確保できます. 
証券業界では,PTPのほかにも IRIG や NTP + 1PPS なども時刻同期に使われています. 
  | 
Q  | なぜIEEE1588 PTPプロトコルが必要になるのですか?  | 
A  | PTP Verion 1は次の要請にこたえるよう作られました.現在は同様な機能を提供する Version 2 に置き換わっています.V1とV2に互換性はありません.
  
LAN内の機器をマイクロ秒の精度で時刻同期させる手段がほしい
  
どのクロックを親にするか決めるルールがほしい
  
マスタークロックにスレーブクロックを頻繁に時刻合わせすることで同期精度を向上させたい
  
伝達経路(遅延に方向性なく,常に一定=例えばネットワークケーブルを想定)で生ずる遅延を補正したい
  
 
さらに現在主流の PTP Version 2 では Version 1 に加えて次の要請にも応えられるようになりました
  
ネットワークケーブルだけでなくスイッチングハブなど能動機器の遅延も補正したい(遅延に方向性があり且つ変化することに対応する)
  
- 
  
経路の切り替えが起こる前に経路毎の遅延を知っておきたい
  
 クロックデバイスの状況を知りたい(SNMPのごとく) 
  | 
Q  | なぜNTPではだめなのですか?  | 
A  | NTPはWAN環境でも機能するように作られ,ミリ秒RMSの同期精度のために作られました.PTPとは要求する同期精度が何桁も異なります.用途によってはNTPでも十分な精度が得られます.NTPの特徴は以下の通りです.
  
- 
  
NTPはLANでもWANでも使える(大規模に展開できる)
  
 - 
  
NTPはミリ秒から数十ミリ秒RMSの同期を実現(PTPに比べて数桁同期精度が悪い)
  
 NTPサーバーと時刻問い合わせやブロードキャストの間隔が比較的長い(トラフィックが少ない)
  
NTPクライエントの時刻保持能力に依存する
  
- 
  
NTPは伝達経路上(遅延に方向性なく,あまり変化しないと想定)で生ずる遅延を補正する
  
 - 
  
NTPは主にソフトウェアで構成する
  
  
一方,PTPは主に遅延の厳密な管理が可能なLAN内で使うことを条件に,NTPに対して何桁も高い同期精度を比較的簡単な仕掛けで実現します.  | 
Q  | IEEE1588 PTP を構成する要素は?  | 
A  | 
それぞれの要素の性格をよく表した独特な名前が使われます. 
| 要素 | 名称 | 内容 | PTP | 
 
| OC | Ordinary Clock | ポートを1つだけ持つPTPノード | V1/V2 | 
 
| OC Master | Ordinary Clock Master | マスターポートを持つOC 時刻源 | V1/V2 | 
 
| OC Slave | Ordinary Clock Slave | スレーブポートを持つOC 機器類 | V1/V2 | 
 
| GMC | Grand Master Clock | 時刻基準の時刻源 GMCAで選出 | V1/V2 | 
 
| BC | Boundary Clock | 複数のポートを持つPTPノード | V1/V2 | 
 
| BC Master | Boundary Clock Master | BCのマスターポート | V1/V2 | 
 
| BC Slave | Boundary Clock Slave | BCのスレーブポート | V1/V2 | 
 
| TC | Transparent Clock | PTPノードではない | V2 | 
 
| TC Master | Transparent Clock Master | TCのマスターポート | V2 | 
 
| TC Slave | Transparent Clock Slave | TCのスレーブポート | V2 | 
 
 
これらはイーサネット(他のメディアでもかまわない)を介して接続されます.独特な名前が付いていますが,GMCが時刻源であり,それにOC Slaveが時刻同期します.BCとTCはPTPプロトコルを理解し取り扱うPTP対応スイッチやルーターに相当します. 現在は V2 のみが使われますが,新しいバージョンも検討されています.  | 
Q  | IEEE1588 PTP v2 のメッセージとは?  | 
A  | 
Eventタイプのメッセージが正確なタイムスタンプを扱います. 
| Hex | Message | Type | PTP | 
 
| 00 | Sync | Event | V1/V2 | 
 
| 01 | Delay_Req | Event | V1/V2 | 
 
| 02 | Pdelay_Req | Event | V2 | 
 
| 03 | Pdelay_Resp | Event | V2 | 
 
| 08 | Follow_Up | General | V1/V2 | 
 
| 09 | Delay_Resp | General | V1/V2 | 
 
| 0a | Pdelay_Resp_Follow_Up | General | V2 | 
 
| 0b | Announce | General | V2 | 
 
| 0c | Signaling | General | V2 | 
 
| 0d | Management | General | V2 | 
 
 
 | 
Q  | PTPではどのようにして時刻同期するのですか? | 
A  | 基本的にはNTPとよく似た方法でネットワークの遅延を知りマスタークロックとスレーブクロックは時刻同期します.この遅延時間を測定する仕掛けをPTPでは Delay Mechanism と呼びます.これを理解するにはまず,オフセットと遅延時間が何なのか考えます.マスターの時計で測った時刻は青,スレーブの時計で測った時刻は紫とします.ここで説明するのはIEEE 1588-2002 すなわち PTPv1/v2 で決められた End to End Delay Measurement Mechanism です.PTPではこれをNTPよりもはるかに高い頻度で繰り返すことで,スレーブの同期精度を維持します.
  
オフセット Offset
  
オフセット Offset(t) その時刻 t におけるマスタークロックの持つ時刻 Tm(t) とスレーブクロックの持つ時刻 Ts(t) の差を言います.式にするとこんな感じです. 
 
Offset(t)=Ts(t)-Tm(t) 
ならべかえると 
Tm(t)=Ts(t)-Offset(t)  
すなわち,スレーブの時刻からオフセットを引き算するとマスターの時刻になります 
 
マスタークロックに比べてスレーブクロックが遅れると負に,逆になると正になります.正の数字だったらスレーブが進んでいます.スレーブの立場で考えると,なんとなく直感的に理解できます. 
  
遅延時間 Delay
  
遅延時間 d はマスタークロックからスレーブクロック方向に,あるいはスレーブクロックからマスタークロック方向に送ったメッセージが相手に達するのにかかる時間です.もし,マスターとスレーブが電線だけで接続されているのであればこの時間は電線の長さに比例した方向性を持たないマイクロ秒以下のものになるのですが,実際LANにはL2やL3ネットワークスイッチが介在して蓄積伝送をしますので,最大数十マイクロ秒ものダイナミックに変化する遅延が発生します.さらに,メッセージの流れる方向により到達にかかる時間が異なります. 
でも,まずあまり深く考えずに,遅延時間はメッセージが相手に伝わるのにかかる時間と考えます. 
  
 
もし,遅延時間がわかるのなら,マスターから受け取った時刻に遅延時間を加えた時刻が、その時点にマスターの時計が示している時刻になります.しかし,正確な遅延時間を知るのは容易ではありません. 
 
今,大元の時計(マスタークロック)に比べて手元の時計(スレーブクロック)が2秒遅れているとします(遅れているからオフセットは-2秒です). 例えば,マスターの時計が0時0分10秒の時にスレーブの時計は0時0分8秒を示します.そして,メッセージがマスターとスレーブの間を伝わるのに1秒かかるとします(遅延時間が1秒).
  
 マスタークロックからドメインに対してSYNCメッセージがマルチキャストされる
  
SYNCメッセージにはメッセージがマスターを離れた時のマスタークロックの時刻 T1 が書き込まれています.それがタイムスタンプです.0時0分10秒というタイムスタンプが打たれていたとします.1stepではここまでですが、2stepではFOLLOW_UPメッセージに,正確に測り直した T1 を書き込んで相手に通知します. 
  
 スレーブクロックはSYNCメッセージを受け取った時刻を記録します
  
0時0分10秒 のタイムスタンプを持つSYNCメッセージがスレーブに届きますが,スレーブの時計は2秒遅れているのでスレーブの時計では0時0分8秒にマスターを離れたことになります.それが遅延時間1秒をかけてスレーブに届くのですから,到達した時刻 t2 はスレーブの時計では0時0分9秒になります. 
  
 スレーブクロックからマスターに DELAY_REQ を送ります
  
DELAY_REQ メッセージにはこのメッセージがスレーブを離れた時のスレーブクロックの時刻 t3 がタイムスタンプとして書き込まれています.0時0分20秒というタイムスタンプが打たれていたとします. 
  
 マスタークロックは DELAY_REQ メッセージを受け取った時刻を記録します
  
0時0分20秒 のタイムスタンプを持つDELAY_REQメッセージがマスターに届きますが,マスターの時計はスレーブに比べて2秒進んでいるので,マスターの時計では0時0分22秒にスレーブを離れたことになります.それが遅延時間1秒をかけてスレーブに届くのですから,到達した時刻 T4 はマスターの時計では0時0分23秒になります. 
  
 マスタークロックは DELAY_RESP メッセージをドメインに対してマルチキャストで送信します
  
マスターはスレーブに T4 を伝える目的で DELAY_RESP メッセージを送信します. 
  
 スレーブクロックは DELAY_RESP メッセージを受信し,T4 を記録します.
  
これで遅延時間とオフセットを計算するのに必要な,4つの時刻がスレーブクロックにそろいました. 
マスターの時計  | スタンプ  |  |  PTP メッセージ   |  | スタンプ  | スレーブの時計  | 時刻  | 
 
0時0分10秒  | T1  | →  | SYNC  |  |  | 0時0分8秒  |  | 
 
0時0分11秒  |  |  | →  | t2  | 0時0分9秒  | T1 t2  | 
 
0時0分22秒  |  |  | DELAY_REQ  | ←  | t3  | 0時0分20秒  | T1 t2 t3  | 
 
0時0分23秒  | T4  | ←  |  |  | 0時0分21秒  |  | 
 
0時0分24秒  |  | →  | DELAY_RESP  |  |  | 0時0分22秒  |  | 
 
0時0分25秒  |  |  | →  |  | 0時0分23秒  | T1 t2 t3 T4  | 
 
 
ここでマスターとスレーブは同期していると仮定して,伝送にかかった時間(遅延時間を計算してみます.
 
T1 にマスターを出たメッセージが t2 にスレーブに届いたのですから届くのにかかった時間(遅延時間)は到達した時刻から出発した時刻を引き算します.でも,スレーブの時計はマスターの時計に対して2秒遅れている,すなわちオフセットが-2秒ありますので,引き算をする前に時刻をそろえておかねばなりません.ではオフセットを考慮して時刻をそろえてみます.スレーブの時刻からオフセット分を引くとマスターの時計と同じになりますから,この方法でスレーブの時計を調整します.
 t2 をマスターの時刻に読みかえると  (t2-オフセット) 
t3 をマスターの時刻に読みかえると  (t3-オフセット) 
になります.
 T1にマスターを出たメッセージが (t2-オフセット)にスレーブに届くのにかかった時間(遅延時間)は
 (t2-オフセット)- T1 = (0時0分9秒-(-2秒)) - 0時0分10秒 = 1秒 = 遅延時間
(t3-オフセット)にスレーブを出たメッセージが  T4 にマスターに届くのにかかった時間(遅延時間)は
 T4-(t3-オフセット) = 0時0分23秒 - (0時0分20秒-(-2秒)) = 1秒 = 遅延時間
この2つの関係から次のことがわかります. 
遅延時間 = (( t2- T1)+( T4- t3))/2 
オフセット = (( t2- T1)-( T4- t3))/2  
 
このように遅延時間とオフセットは切り離せない関係にあります.スレーブはオフセットが 0 になるように自分の時計を調整しますが,そのために正確に遅延時間を知る必要があります.遅延時間はメッセージの伝送経路の特性です.そこにダイナミックに遅延が数十マイクロ秒単位で変化するL2やL3スイッチが介在すると,そのまま誤差の要因になります.また,上記は遅延に方向性が無いことを仮定していますので,もし遅延に方向性があると(多くのスイッチには場合,方向性があります)も誤差の要因になります.これらを解決してくれるのがトランスペアレントクロック(TC)と呼ばれるPTPに対応したネットワークスイッチです.各社からいろいろなグレードの製品が発売されるようになりました.ARISTAは代表的なIEEE 1588対応のスイッチです.  | 
  Q  | 
  グランドマスタークロック(GMC)はどのように決まるのですか?   | 
  A  | 
  
    Best Master Clock Algorithm (BMCA) と呼ばれるアルゴリズムが自身を含む誰がベストなクロックなのかを決めるのに使われます.その結果ポートをマスターにするか,スレーブにするか,あるいはパッシブにするのかが決まります.すなわち,場合によっては結果として自身が GMC になることが決まります.そのため,BMCA は必ず決着が付くように作られています. 
    
    IEEE1588 V2では,下記のアルゴリズムを使って特定のポートに接続されたクロックから送られてくるアナウンスに含まれるクロックの情報と自身の持つ情報をを比較して,どちらがベストかを決め,その結果に従い歩0との動作を決めます. 新たにクロックが見つかると,また自身との比較を行います.
 
      - Priority1 を評価します.これはもっとも優先される評価項目であり,この値が小さいほど高く評価されます.GMC にさせたいクロックの値は小さくします.
 
      - clockClass を評価します.標準時刻へトレーサビリティーを評価します.6 は GPS 等に同期しているクロックであり,7 は以前はGPSなどに同期していたがホールドオーバー状態にあるクロックを意味します.
 
      - Accuracy を評価します.これはクロックの精度を表しています.20だと 25ns以下、23 だと1us以下の精度、29は1ms以下の精度を表します.
 
      - Variance (Offset の Log Variance) を評価します. これもクロックの精度を示します.
 
      - Priority2 を評価します.これは GMC に設定された優先度です.他の評価が同じであった GMC を比較するのに使われます.
 
      - Identifier を評価します.これまでの評価が同じになった場合にどちらを優先するかをクロックの UUCI とポート番号を使って決めます.引き分けを避けるためです.
 
   
  どのクロックを GMC 候補にするかは Priority 1 で決めることができます.またアクティブな GMC をどれにするのかは Priority 2で決めます.PTP オプションを有効にした場合は,これら2つの設定を適切に行います. 
      | 
Q  | IEEE1588 PTP は普通のスイッチングハブを通過できますか?  | 
A  | 
  PTPは普通のスイッチングハブを通過しますし,用途によっては十分な10~100us程度の同期精度をえられます.通常TTL1なのでL3スイッチやルータを通過できませんが,TTLを大きくしてそれらを通過させることが可能です.ただし,普通のスイッチングハブでは方向性のある比較的大きな遅延が生じ、また時々刻々変化するため,それが同期誤差の要因になります. TC や BC など IEEE1588 対応のスイッチを使うべきです.これらのスイッチとハードウェアタイムスタンプのスレーブを使うことで50ns~100ns程度の同期精度をえられます.PTPの同期精度はネットワークトポロジとスレーブの同期能力に大きく影響を受けます. 
  | 
  Q  | 
  IEEE1588v2 PTP に適したスイッチングハブは?  | 
  A  | 
  
    各社からPTPのBCやTCとして機能するスイッチが各種販売されています.弊社の取扱品もございます. 
    | 
  Q  | 
  サーバー群やクラスタの時刻同期に使いたいのですが?  | 
  A  | 
  
    High Frequency Trading の世界ではFINRAの1us精度のログ要求からサーバーの高精度時刻同期が必須とされるようになりました. EndRun の PTP グランドマスタークロックはそれ以前から米証券業界に広く使われてきました. 現在は高精度ハードウェアタイムスタンプ機能を持つ Sonoma D12 が、高性能IEEE1588 PTP対応スイッチやPTP対応ネットワークPCIeカードと共にサーバーやクラスタの高精度時刻同期に広く使われています. 
    証券業界では,PTPスレーブとなるサーバー側に Low Latency (低遅延) でパケットキャプチャ機能を持ち,PTP 機能を備えた PCIe ネットワーク基板が使われるようになっています. EndRunでは SolarFlare 社の高性能 PCIe ネットワーク基板との相互接続試験を行っています.同社製品は 1PPS 入出力をオプションとして追加でき、グランドマスターの1PPSと位相比較することで、正確な同期精度測定が可能になります.なお、証券業界の同期精度の確認には通常スレーブで観測した offset 値が使われます. 
    | 
  Q  | 
  Sonoma には GPS 同期と CDMA 同期のモデルがあるようですが、PTPにはどちらを使うべきですか?  | 
  A  | 
  
    残念ながら CDMA1X WIN のサービスは2022年3月で終了してしまい,CDMA モデルを日本で使うことはできなくなりました.  
      要求する絶対時刻制度によります. GPS 同期では UTC(USNO) に対して <30ナノ秒の絶対精度が確保できます.一方,CDMA 同期では <10 マイクロ秒ほどの精度になります. サブマイクロ秒の高精度な PTP 同期を求める場合は GPS 同期の Sonoma と Premium OCXO オプションの組み合わせを推奨します.より長いホールドオーバー(自己時刻保持)を求める場合は Rubidium 発振器オプションを指定ください. 
      Sonoma PTP オプション 
    | 
Q  | PTP にはどの発振器オプションを指定すべきですか?  | 
A  | 
  標準構成では、TCXO 発振器を内蔵します。 NTP サーバーとしての用途、一般的な PTP 用途には TCXO でも十分なのですが,高速低遅延システムの時刻同期など,より高い同期精度を求める場合には OCXO オプションを指定すべきです. また GPS や CDMA の基準信号が一時的に受信できなくなった場合に,独自に時刻精度を維持するには上位の発振器オフションが有効になります。 発振器オプションは本体発注時のみ指定可能なオプションですのでご注意ください. EndRun は PTP グランドマスターとして使用するには,OCXO オプションを採用することを推奨します. より長いホールドオーバー(自己時刻保持)を求める場合は Rubidium 発振器オプションを選択できる場合があります. 
    Sonoma PTP オプション 
  | 
Q  | EndRun の PTP グランドマスタークロックの方式は?  | 
A  | 
 Sonoma D12 と Meridian II は 8ナノ秒のタイムスタンプ精度と分解能を持つハードウェアタイムスタンプ方式を採用しています.2つの 1Gbps ポートの1つあるいは両方にハードウェアPTP グランドマスタークロック機能を持たせられます(それぞれオプション).それぞれのポートはハードウェアタイムスタンプ機能を備え、GPSやCDMA基地局と同期した高精度なハードウェアクロックを元に業界最高水準の高精度タイムスタンプを実現しています. IEEE 1588対応のネットワークとハードウェアタイムスタンプのスレーブで構成されるネットワークでは、サブマイクロ秒の時刻同期が可能になります. 
 
従来品種のTempus LX の PTP グランドマスタークロックでは,GPSやCDMA基地局と同期したハードウェアクロックとソフトウェアタイムスタンプを組み合わせたハイブリッド方式です.手軽に10~100マイクロ秒級の時刻同期が可能になりますが,ハードウェアタイムスタンプを行うTC/BCやスレーブとの同期には適していません.  | 
  Q  | 
  EndRun Sonoma D12 や Meridian II の PTP V2 の標準設定は?  | 
  A  | 
   | 
  Q  | 
  PTPグランドマスタークロックが配信する時刻はなにですか?  | 
  A  | 
  PTP IEEE-1588標準はタイムモードとして PTP か UTC 選択できるとしています. UTC タイムモードは UTC を配信し,PTP スケールは ARB になります. PTP たいむもーどでは PTP クロックは PTP エポックすなわち TAI(Interntional Atomic Time) を配信し,PTPスケールは PTPになります.IEEE-1588 は PTP 秒の始まりを 1970年1月1日の0時を始まりとし,そこから数えた秒数を PTP 秒としています.PTP はモノトニックで閏秒がありません.一方,UTC はモノトニックではなく,閏秒が挿入されることがあります.  | 
  Q  | 
  
    PTP タイムモードの PTP 秒 とか UTC 時刻とはなにですか? 
  | 
  A  | 
  
    PTP 秒  
      IEEE-1588 は PTP 秒の始まりを 1970年1月1日の0時を始まりとし,そこから数えた秒数を PTP 秒としています.閏秒はありません.PTP タイムモードを PTP にした時は,スレーブクロックは現在の閏秒オフセット値と閏秒フラグ (leap_59 か leap_61) を使って PTP 秒を  UTC に変換します.. 
    UTC 時刻  
      PTP タイムモードを UTC にしたときは,UTC 世界標準時をそのまま配信します.閏秒挿入が行われると 1 秒の時刻飛びが生じます.PTP スレーブがこれを考慮していないと,同じく 1秒のジャンプが生じます.PTP 秒には閏秒がありませんから PTP 秒を使うべきです. 
    | 
Q  | PTPグランドマスタークロックはPTP Secondを使うべきですか?UTCを使うべきですか?  | 
A  | 
  PTP Second (PTP 秒) は標準原子時刻 TAI に準じており閏秒がありません. PTP V2 では PTP 秒が標準とされています.PTP Second を使うと,”うるう秒”の通知機能が有効になります. TAI はうるう秒のない時刻です.うるう秒をどう扱うかはスレーブ側が対応することになります.UTC にすると、うるう秒通知は行われなくなります. 
  | 
Q  | PTP V2 でUTCを使うと何がおきますか?  | 
A  | 
  スレーブ次第です.UTCではうるう秒の事前通知は行われません.そのほかPTPタイムモードに 
     
    UTC時刻を設定した場合 
    Time Scale	UTC  
UTC Offset (TAI-UTC)	0  
UTC Offset Valid	FALSE  
Time Traceable	FALSE  
Freq Traceable	FALSE 
   
  PTP秒を設定した場合 
  Time Scale	PTP  
    UTC Offset (TAI-UTC)	37  
    UTC Offset Valid	TRUE  
    Time Traceable	TRUE  
    Freq Traceable	TRUE 
  | 
  Q  | 
   DTAI ってなんですか?  | 
  A  | 
  
     TAI – UTC が DTAI です.UTCにDTAIを加えるとTAIが得られます. 
    | 
Q  | EndRun はPTP バージョン1とバージョン2のどちらですか?  | 
A  | 
 現行の EndRun 製品は PTP V2 だけをサポートします. 
  | 
Q  | PTP バージョン1 と 2 は何が違うのですか?  | 
A  | 
 Version 2 は Version 1 に対する改善であり,互換性がありません. V1とV2の違いをごく簡単に書き出すと次のようになります. 
 
IEEE-1588-2002 V1 (PTPv1) 
V2の登場により使われなくなりました.UDPによるマルチキャストで時刻情報を頻繁に配信するプロトコルであり,クライエント側ではNTPをはるかにしのぐ同期精度を手軽に得られます.
PTP v1 を大規模に展開するにはネットワーク遅延を補正するためにバウンダリークロックが必要になります.ただし,バウンダリークロックを多段に使用することは誤差の累積を招きます. 
 
IEEE-1588-2008 V2 (PTPv2) 
PTP v2 は PTP v1 に対する改善であり,主に精度,安定性と拡張性を強化しています.PTP v2 はPTP v1 と互換性を持たないので,マスターとスレーブは同じPTPバージョンを使うようにせねばなりません.PTP v2 ではマルチキャストに加えてP2Pのユニキャストも可能になりました(Sonomaはユニキャストをサポートしません).Syncフレームからベストマスタークロックアルゴリズム(BMCA)関連の情報を分離したことにより,165-octet から 44-octet にフレームが短縮され,ネットワーク負荷が軽減されたことで,より頻繁に時刻情報(Syncフレーム)を配信出来るようになりました.分離されたBMCA関連情報はAnnounceフレームとしてSyncフレームより低い頻度で送られます. 遅延の方向非対称性に対応する peer delay mechanism とトランスペアレントクロックが導入されました.またプロファイルが定義され,用途に応じた設定をプリセットすることができます.トランスペアレントクロック(TC)と呼ばれる遅延管理機能を持ったスイッチングハブの利用が可能になりました.トランスペアレントクロックはネットワークにおける誤差の積み重ねを排除,またTLVといった,新たな追加管理機能を提供します.さらにV2には幅広い自由度が与えられ,用途に応じたプロファイル設定が可能になっています. 
 
すなわちV2では:
  
- 
  
 ナノ秒級の誤差の同期が可能に
  
  V1ではSYNC送出間隔は1秒以上だったが、V2では10回/秒も可能
  
 それを可能にする短いメッセージ
  
 新たに規定されたメッセージ (アナウンスメッセージ, PDelay_Req, PDelay_Resp, Pdelay_Resp_Follow_Up と シグナリングメッセージとマネージメントメッセージ)
  
 one-step-mode の導入 (follow-up メッセージ不要)
  
 トランスペアレントクロックの導入 (E2E と P2P) による連接されたトポロジーでの誤差の累積の排除
  
 プロファイルの導入 (機能と設定を定義 e.g P802.1AS や PROFInet)
  
 DeviceNet, PROFInet, ControlNet へのマッピングと IEEE802.3/Ethernet
  
 TLV の導入 (将来に向けた新機能やオプションによるプロトコルの拡張)
  
- 
  
 (オプション) ユニキャスト対応 (EndRunは対応しません)
  
  (オプション) パストレース
  
 (オプション) 代替タイムスケール
  
 (オプション) マスタークラスターテーブル
  
 (オプション) 代替マスター
  
 
 | 
Q  | IEEE1588 PTP バージョン 1 と 2 のどちらを使うべきですか?  | 
A  | PTP v2 を使うべきです.あえて PTP v1 を使う理由はなにもありません.PTP v1とPTP v2に互換性はなく,混用できません.  | 
Q  | PTP を使うにはPTP専用のスイッチングハブが必要ですか?  | 
A  | 
  必ずしも必要ではありませんが、高い同期精度を求める場合は IEEE1588 PTP 対応のネットワークスイッチ(TC や BC)を使うべきです. PTPに対応したスイッチ,すなわちバウンダリークロック(BC)やトランスペアレントクロック(TC)を使いPTP時刻配信トポロジーを設計することで,ネットワーク遅延のジッターの影響を軽減したサブマイクロ秒精度の時刻同期が可能となります. 
  米証券業界では Low Latency ゆえ ARISTA のスイッチが広く使われますが、ARISTA のスイッチはIEEE1588 PTP BC/TC どちらとしても使えます。 
  | 
Q  | IEEE 1588 PTP に対応したネットワークスイッチとはなんですか?  | 
A  | バウンダリークロック(BC 境界クロック)やトランスペアレントクロック(TC 透過クロック)の機能を持つネットワークスイッチです. IEEE1588 PTPに対応しており,ネットワーク遅延のジッターの影響を軽減します.トランスペアレントクロック(TC 透過クロック)はE2EとP2Pを片方あるいは両方サポートしたものがあります.すでにスイッチメーカー各社から多様な製品が販売されており,BCとTCの機能を兼ね備えるものもあります.新たにPTPを導入するのであれば,最上流から最下流までPTPをサポートスイッチを導入することをおすすめします.現在市場で手に入るBC/TCの同期性能は千差万別です. 採用に当たっては評価されることをお奨めします. 米証券業界では ARISTA が TC として使われています.  | 
Q  | PTP バウンダリークロックとトランスペアレントクロックとはなんですか?  | 
A  | 
 IEEE1588 PTP 対応のルーターやスイッチが持っている機能です. 
 
IEEE 1588 バウンダリークロック(BC 境界クロック PTP v1/v2) は,PTPのノードとして機能し,上位クロックに同期するスレーブポートと,下位クロックに同期するマスターポートを持ちます.すべてのマスターポートはスレーブポートに時刻同期しています.下流のプロトコル負荷を上流から遮断します.性質上,多段に接続すると誤差が幾何級数的に増加します.トポロジの下流から見るとBCがマスタークロックになります. 
 
IEEE 1588 トランスペアレントクロック(TC 透過クロック PTP v2) は,PTPのノードとしては動作せず,TC内をフレームが通過するのにかかった時間をSYNCメッセージとFollowUPメッセージのCorrectionフィールドに加算します.PTPのプロトコルは,伝送経路の遅延時間が通過方向に対して対称であることを期待しますが,一般的なスイッチングハブでは遅延の対称性は保証されません.トランスペアレントクロックはパケットがスイッチを通過する際に生ずる遅延を補正することで,あたかも遅延時間が一定な電線のようにふるまいます.トランスペアレントクロックの動作には2つのモードE2EとP2Pがあり,それぞれ長所と短所があります.E2EとP2PをPTPの一つの流れに混用することはできません.
  
E2E : End-to-End トランスペアレントクロック : 
  
遅延時間の測定に End-to-End (E2E) Delay request- Delay response メカニズムを使います.伝送遅延誤差の大きな原因であるスイッチ内の滞留時間(処理と待ちにより発生)をSYNCとDELAY_REQについて測定した結果をCorrectionフィールドに加算して伝えることで,より正確な遅延時間の計算を可能にします.SYNCメッセージの滞留時間はSYNCあるいはFOLLOW_UPメッセージのCorrectionフィールドに、DELAY_REQメッセージの滞留時間はDELAY_RESPメッセージのCorrectionフィールドに加算されます.経路にあるすべてのTCが滞留時間を加算しますので、スレーブが受け取るSYNCメッセージやDELAY_RESPメッセージはそれぞれ滞留時間の総和がCorrectionフィールドに含まれています.スレーブはこれをオフセットの計算に使います.遅延時間の計測はマスターとスレーブの間で行われます. 
  
P2P : Peer-to-Peer トランスペアレントクロック : 
  
遅延時間の測定に Peer-to-Peer (P2P) Peer delay メカニズムを使います.上流のリンクのパス遅延をPDELAY_REQメッセージとPDELAY_RESP,PDELAY_RESP.FLOLLOW_UPメッセージをやり取りして測定します.E2E同様に伝送遅延誤差の大きな原因であるスイッチ内の滞留時間(処理と待ちにより発生)をCorrectionフィールドに加算しますが,加えてPeer Delayメカニズムで測定した上流リンクのパス遅延量もCorrectionフィールドに加算します.即ち,スレーブに到達したSYNCとDELAY_REQメッセージのCorrectionフィールドには,その経路の滞留遅延とパス遅延の遅延時間の総和が入っていることになります.スレーブはこれをオフセットの計算に使います.遅延時間の計測を各ピア間で行うため,スレーブクロックは伝搬経路が切り替わっても即座にオフセットを知ることができます.
  
 
BCとTCをまとめると以下のようになります.米証券業界では TC と E2E の組み合わせが使われます.
  
  | BC | E2E TC | P2P TC | 
 
| クロック | Syncronized | Syntonized | Syntonized | 
 
| トポロジ | 無制限 | 無制限 | Peer Delay mechanism | 
 
ステート 
保持 | 
ポート毎 
ユニキャスト毎 | 2-step | 
リンク毎 
2-step | 
 
| 補正 | 再生成 | 
処理時間 
待ち時間 
遠端間遅延 | 
処理時間 
待ち時間 
リンク遅延 | 
 
| 拡張性 | 階層的 | 
クライエント増加に伴い 
マスターの負担が増加 | 階層的 | 
 
| 階層化誤差 | 累積する | 累積しない | 累積しない | 
 
| トポロジの変更 | 遅延の再計測 | 遅延の再計測要す | 既知 | 
 
  
 
 
すなわち;
 
 
E2E TC : ポートは複数.PTPノードとしては機能しない.correctionFieldに滞留遅延を加算する.PTP v2 のみ.
  
P2P TC : ポートは複数.PTPノードとしては機能しない.pdelayを実行.correctionFieldに滞留遅延と上流リンクのパス遅延を加算する.PTP v2 のみ.
  
BC : ポートは複数.PTPマスターとスレーブポートを持つ.マスターに同期した内蔵クロックを使いスレーブポートを出て行くパケットをタイプスタンプする.多段に使うと精度が落ちる.ドメインの中でE2EもP2Pも使うことができる.
  
普通のスイッチングハブやルータ : 何もしない.通過方向により遅延時間が異なるし、遅延時間も変動するので同期誤差の原因となる.
  
P2P TC と E2E TC を同一経路に混ぜることはできない(特別な例外を除いて).
  
OC : ドメインの中でE2EもP2Pも使うことができる.
  
大規模なPTP時刻同期の展開ではBC(上流)とTC(中間と下流)を適所に配置する
  
  | 
Q  | PTPクライエントソフトは用意されていますか?  | 
A  | 
弊社から汎用OS用のPTPクライエントソフトを提供することはいたしません..以下は参考情報です.
Open SourceのPTPクライエントが配布されていますのでご利用ください.高い精度を必要とする場合はPTPタイムスタンプ機能を備えたNIC基板を利用すべきです.弊社では SolarFlare社の製品を推奨します..またNTPに比べてPTPの実装は負担が少ないこともあり,いろいろな機器にPTPクライエント機能が組み込まれるようになりました.WindowsはそもそもPTPがサポートする時刻精度に対応できるOSではありません.
Linux, uClinux, FreeBSD, NetBSD
Linux カーネル2.6.30からNICのハードウェアタイムスタンプに容易にアクセスできるようになり,3.0.0からはハードウェアクロックチューニングにもアクセスできます.いずれにせよPTPdのようなアプリケーションが必要です.
 PTPd デーモンソフトウェアは Sourceforge からダウンロードできます. PTPd は IEEE-1588の仕様を完全に実装しています.PTPdのソースコードはオープンソースであり,移植性や互換性も高く,非常に安定しています.ソフトウェアの実装だけで,システムクロックをグランドマスタークロックに対して10~100usの精度で同期させることが可能です.PTP Version 1 対応の ptpd-1.x.x.tar.gz とVersion 2 対応の ptpd-2.x.x.tar.gz がありますので,ダウンロードの際に注意してください.
 PTP スレーブPCIe 基板例
PTP スレーブPCIe 基板例
Windows系OS
Windows Server 2022、Windows Server 2019、Windows 10 バージョン 1809 はPTPをサポートしています. 
Windows用PTPクライエントソフトを利用することもできますが, PTPスレーブソフトウェアは非常に限られています.また,そもそも Windows OS はマイクロ秒レベルでの時刻同期はできないので PTP を利用する利点はありません.WindowsではNTPやSNTPを使うことをおすすめします. 
しかし,PTPをサポートするハードウェアをインストールすれば,Windows PCを完全なPTPスレーブとすることができます.一例としては,ナショナルインスツルメントからそのような ハードウェアとソフトウェアが市販されています.Greywareから DOw32tm /query /statusMAIN TIME II ソフトウェアが販売されています.
 注意:PTPクライエントは弊社サポートの対応外です.お問い合わせいただいても対応いたしかねます.また,PTPクライエントの同期精度はクライエントとネットワークで決まります.クライエントの同期精度に関しての問い合わせにはお答えいたしかねます.
  | 
  Q  | 
  IEEE 1588 PTP 対応NICはありますか? | 
  A  | 
  PTP ハードウェアタイムスタンプをサポートする NIC はいくつかの会社から販売されています. 低遅延,高機能なNICとして SolarFlare の製品が知られています.オプションとして 1PPS 入出力を付加でき、グランドマスターとの位相比較にも使用できます. 多機能なデーモンが付属し,グランドマスターに同期した NIC 上の高精度クロックをもとにサーバーのシステムクロックを高精度に維持します.  | 
Q  | PTPをサブネットを越えて,あるいはルーティング環境で使うことはできますか? | 
A  | 
E2EであればTTLを変えることでサブネット越えできます.ただし同期精度を維持したいのであれば,一般のL3スイッチではなくBCを利用しなければなりません. こちらを参照ください. 
一方PTPをWAN環境(VPNを含む)で使うことは想定されていません.WANにはNTPを使うべきです.  | 
  Q  | PTP P2PとE2Eを混在させられますか? | 
A  | あるドメインのマスターからスレーブへの通信経路にP2PとE2Eを混在させることはできません. | 
Q  | PTP Default Profileとは? | 
A  | 用途に応じてあらかじめ決められたPTPの運用仕様の一つです.二つのDefault Profileが用意されています.
 
- Delay Request Response profile
 
End to End 遅延測定のプロファイルです 
domain 0, Announce interval 1 (range 0.4), Sync interval 0 (-1 to 1), Delay_Req interval 0 (0.5), Announce timeout 3 (2.10), Priority1 128, Priority2 128. 
 
 - Peer to Peer profile
 
Peer to Peer 遅延測定のプロファイルです 
Pdelay_Req interval 0 (0-5) が加わります
   | 
Q  | PTP オプションを既存のSonoma D12にインストールできますか? | 
A  | 
  はい,すべてのSonoma タイムサーバーは高精度PTP同期に必要とされるにハードウェアを備えており,PTP v2 グランドマスタークロックオプションを追加することで業界最高精度のPTPグランドマスタークロックを有効にできます.お手持ちの製品ののMACアドレスをお教えいただければ,PTPを有効にするための手順をお送りします.PTPオプションは有償であり、2つのイーサーネットポート毎にそれぞれ実装できます. 
  残念ながら,発振器オプションは工場設定オプションなため納入後に追加変更することはできません. 標準構成の TXCO でも通常の用途には十分な精度は達成できますが,将来に高精度 PTP 時刻同期の導入を考えている場合は,本体購入時に Premium OCXO オプションを購入されることをお奨めします。 
  | 
  Q  | PTP はどのような場所で実用されていますか? | 
A  | すでに PTP は多くの場所で使われ始めています.
  
サーバー群の正確な時刻同期に利用されています.特に,クラスターなど複数のノード間の時刻同期に利用されています.
  
- 
  
株式や証券,債券のプログラム売買のようにマイクロ秒の単位で頻繁に取引が行われる環境では,PTPが時刻同期の標準になりつつあります.
  
 電力用通信網のIP化における,時刻同期への適用が世界的に広がりつつあります..
  
産業機器やセンサーネットワークの中にもPTPが取り入れられつつあります.
  
産業ロボットの同期にもPTPが使われます.
  
携帯電話のフェムトセルの時刻同期はPTPが標準採用されています.
  
ストリーミング映像音楽配信やAVデジタル通信への応用 802.1AS が検討されています. 
  | 
Q  | 2-step と 1-step の違いは? | 
A  | Syncフレームにt1情報(egress time stamp)を含めるのがPTP v2で導入された 1-stepです.t1情報をSyncフレームとは別にFollow_upフレームで送るのを 2-step と呼びます.  | 
  Q  | Sonoma D12 や Meridian II の ptp の代表的な設定は?  | 
A  | 設定項目は次の通りです:
  
| 要素 | 名称 | 設定値 | 内容 | 代表値 | 
 
  | PTP Sync Interval | 毎秒 1, 2, 4, 8, 16, 32, 64 ないし 128回  | Syncフレームの送信頻度  | 1 | 
 
  | Announce Interval | 1,2,4,8,16秒に1回 | アナウンスの送信頻度  | 2 | 
 
  | Priority1 value | 0...255 | 
 GMCとしての絶対優先度 
小さいほど優先度が高い  | 127 | 
 
  | Priority2 value | 0...255 | 
 同点決勝時に比較する値 
小さいほど優先度が高い 
(クロッククラス, 精度, 変移, BC/OCでも決着がつかない時に参照) (Priority 2でも決着がつかないとID=MACアドレスで判別)  | 128 | 
 
  | Delay Mechanism | E2E/P2P | 遅延補正の方式  | E2E | 
 
  | Domain value | 0...255 | 
 ドメイン値 
この値によりマルチキャストアドレスが変わる  | 0 | 
 
  | Time Mode | UTC/PTP | 時刻標準  | PTP | 
 
  | TTL value | 1...255 |  | 1 | 
 
  | 
  | 
  |  | 
  | 
 
  | 
  | 
  |  | 
  | 
 
 
実際のPTPトポロジ構成に合わせて設定願います.
現在は unicast のメッセージングには対応しておりません. | 
Q  | ptp v2 の動作状況を確認する方法は?  | 
A  | 
  Sonoma, Meridian II には ptpstat0 ptpstat1 コマンドが用意されています.詳しくはマニュアルを参照ください. 
    クライエント側ではそれぞれのクライエントに用意されたツールを使います. 
  | 
Q  | ptp 対応のスイッチングハブはありますか?  | 
A  | 
 | 
  
  | 
  | 
  | 
 何なりとお気軽にお問い合わせください. | 
  | 
 
IEEE1588 / PTP 802.1AS リンク集 
 
 |