高精度時間プロトコル

高精度時間プロトコル
通信プロトコル
略語PTP
目的時間
開発者IEEE
導入2002 (2002年
ポートudp/319、udp/320

精度時間プロトコルPTP)は、コンピュータネットワーク全体のクロック同期を行うプロトコルです。以前開発されたネットワークタイムプロトコル(NTP)に比べて比較的高精度で、設定次第ではさらに高い精度を実現できます。ローカルエリアネットワーク(LAN)ではサブマイクロ秒の精度を実現できるため、計測・制御システムのアプリケーションに適しています。[ 1 ] PTPは、金融取引[ 2 ]携帯電話基地局の送信[ 3 ]、海底音響アレイ[ 4 ] 、衛星航法信号のタイムスタンプの代わりに正確なタイミングを必要とするネットワーク、またはホワイトラビットプロジェクトが提供するようなサブナノ秒の精度が不要なネットワークの同期に使用できます。[ 5 ]

PTPの最初のバージョンであるIEEE 1588-2002は2002年に公開されました。IEEE 1588-2008(PTPバージョン2とも呼ばれます)は、2002バージョンとの下位互換性がありません。IEEE 1588-2019は2019年11月に公開され、2008年版の下位互換性を維持した改良が含まれています。IEEE 1588-2008には、 PTPの動作パラメータとオプションを定義するプロファイルの概念が含まれています。電気通信配電オーディオビジュアルなどの用途向けに、複数のプロファイルが定義されています。IEEE 802.1ASは、オーディオ ビデオ ブリッジング(AVB) およびTime-Sensitive Networking(TSN) で使用するために PTP を適応させた gPTP です

歴史

IEEE 1588-2002標準化の取り組みを主導したジョン・エイドソン氏によると、「IEEE 1588は、NTPGPSという2つの主要プロトコルのどちらでも十分にカバーされていないニッチを埋めるために設計されています。IEEE 1588は、NTPで達成できる以上の精度を必要とするローカルシステム向けに設計されています。また、各ノードにGPS受信機を設置するコストを負担できない、あるいはGPS信号にアクセスできないアプリケーション向けにも設計されています。」[ 6 ]

PTPはもともとIEEE 1588-2002規格で定義され、正式名称はネットワーク計測および制御システム向け高精度クロック同期プロトコルの標準で、2002年に公開されました。2008年にはIEEE 1588-2008が改訂規格としてリリースされました。PTPバージョン2(PTPv2)とも呼ばれ、精度、精密度、堅牢性が向上していますが、元の2002バージョンとの下位互換性はありません。 [ 7 ] IEEE 1588-2019は2019年11月に公開され、[ 8 ]非公式にはPTPv2.1と呼ばれ、2008年の出版物に対する下位互換性のある改良が含まれています。[ 9 ]

建築

IEEE 1588規格は、1つ以上のネットワークセグメントと1つ以上のクロックで構成される階層的なマスター・スレーブ方式のクロック分配アーキテクチャを規定しています。通常のクロックは、同期基準の送信元または送信先となる単一のネットワーク接続を持つデバイスです。送信元はマスター(またはtimeTransmitter [ 10 ])と呼ばれ、送信先はスレーブ(またはtimeReceiver [ 10 ])と呼ばれます。境界クロックは複数のネットワーク接続を持ち、1つのネットワークセグメントを別のネットワークセグメントと同期させます。各ネットワークセグメントには、単一の同期リーダーが選出(elected)されます。ルートタイミング基準はグランドマスターと呼ばれます。[ 11 ]

比較的シンプルなPTPアーキテクチャは、境界クロックのない単一セグメントネットワーク上の通常のクロックで構成されます。グランドマスターが選出され、他のすべてのクロックはグランドマスターに同期します。

IEEE 1588-2008では、PTPメッセージを伝送するために使用されるネットワーク機器に関連付けられたクロックが導入されています。この透過クロックは、 PTPメッセージがデバイスを通過する際にメッセージを変更します。[ 12 ]メッセージ内のタイムスタンプは、ネットワーク機器を通過するのに要した時間に基づいて補正されます。この方式は、ネットワーク全体の 配信変動を補正することで、配信精度を向上させます。

PTPは通常、 Unix時間と同じエポック(1970年1月1日開始)を使用します。[ a ] Unix時間は協定世界時(UTC)に基づいており、うるう秒の影響を受けますが、PTPは国際原子時(TAI)に基づいています。PTPグランドマスターはUTCとTAIの現在のオフセットを通信し、受信したPTP時間からUTCを計算できるようにします。

プロトコルの詳細

PTPシステムの同期と管理は、通信媒体を介したメッセージ交換によって実現されます。この目的のために、PTPは以下のメッセージタイプを使用します。

  • SyncFollow_UpDelay_Req、およびDelay_Respメッセージは通常のクロックと境界クロックによって使用され、ネットワーク全体でクロックを同期するために使用される時間関連の情報を伝達します。
  • Pdelay_ReqPdelay_Resp、およびPdelay_Resp_Follow_Upは、透過クロックによって通信媒体の遅延を測定し、システムで補正するために使用されます。透過クロックとそれに関連するこれらのメッセージは、オリジナルのIEEE 1588-2002 PTPv1規格では利用できず、PTPv2で追加されました。
  • アナウンスメッセージは、IEEE 1588-2008のベストマスタークロックアルゴリズムによってクロック階層を構築し、グランドマスターを選択するために使用されます。[ b ]
  • 管理メッセージは、ネットワーク管理によってPTP システムを監視、構成、および保守するために使用されます。
  • シグナリングメッセージは、クロック間のタイムクリティカルでない通信に使用されます。シグナリングメッセージはIEEE 1588-2008で導入されました。

メッセージはイベントメッセージ一般メッセージに分類されます。イベントメッセージは送信および受信タイムスタンプの精度がクロック分配精度に直接影響するため、タイムクリティカルです。Sync 、Delay_ReqPdelay_ReqPdelay_respはイベントメッセージです。一般メッセージは、メッセージ内のデータはPTPにとって重要ですが、送信および受信タイムスタンプは重要ではないという点で、より従来的なプロトコルデータユニットです。Announce Follow_UpDelay_RespPdelay_Resp_Follow_UpManagementSignaling各メッセージは一般メッセージクラスのメンバーです。[ 13 ]:6.4項

メッセージ転送

PTP メッセージは、トランスポートにUser Datagram Protocol over Internet Protocol (UDP/IP) を使用する場合があります。IEEE 1588-2002 はIPv4トランスポートのみを使用しますが、[ 14 ]:付録 D では、IEEE 1588-2008 でIPv6が含まれるように拡張されています。[ 13 ]:付録 F IEEE 1588-2002 では、すべての PTP メッセージはマルチキャストメッセージングを使用して送信されますが、IEEE 1588-2008 では、デバイスがポートごとにユニキャスト送信をネゴシエートするオプションが導入されました。 [ 13 ]:第 16.1 項 マルチキャスト送信では、 IP マルチキャストアドレス指定が使用されます。このマルチキャスト グループ アドレスは、IPv4 と IPv6 に対して定義されています (表を参照)。[ 13 ] : 付録DおよびE タイムクリティカルなイベントメッセージ(Sync、Delay_req、Pdelay_Req、Pdelay_Resp)はポート番号319に送信されます。一般メッセージ(Announce、Follow_Up、Delay_Resp、Pdelay_Resp_Follow_Up、管理およびシグナリング)はポート番号320を使用します。[ 13 ] : 条項6.4

マルチキャストグループアドレス
メッセージ IPv4 IPv6 IEEE 802.3 イーサネット[ 13 ] : 付録F [ c ]タイプ
ピア遅延メッセージを除くすべて 224.0.1.129 [ d ]FF0x::181 [ e ]01-1B-19-00-00-00 [ f ]転送可能
ピア遅延メッセージ: Pdelay_ReqPdelay_RespPdelay_Resp_Follow_Up [ g ]224.0.0.107 [ h ]FF02::6B 01-80-C2-00-00-0E 転送不可

IEEE 1588-2008では、DeviceNet[ 13 ]:Annex G、 ControlNet [ 13 ]:Annex H PROFINET [ 13 ]:Annex I でもカプセル化が定義されている。

ドメイン

ドメイン[ i ]とは、PTPを用いて相互に同期する、相互作用するクロックの集合です。クロックは、受信または生成するPTPメッセージ内のサブドメイン名(IEEE 1588-2002)またはドメイン番号(IEEE 1588-2008)フィールドの内容に基づいてドメインに割り当てられます。ドメインにより、複数のクロック分配システムで同じ通信媒体を共有できます。

サブドメイン名フィールドの内容(IEEE 1588-2002IPv4マルチキャストアドレス(IEEE 1588-2002[ j ]ドメイン番号IEEE 1588-2008注記
_DFLT 224.0.1.129 0 デフォルトドメイン
_ALT1 224.0.1.130 1 代替ドメイン 1
_ALT2 224.0.1.131 2 代替ドメイン2
_ALT3 224.0.1.132 3 代替ドメイン3
アプリケーション固有、最大15オクテット[ 14 ]:6.2.5.1項 サブドメイン名ハッシュ関数に従って224.0.1.130、131、または132 [ 14 ]:付録C 4から127 ユーザー定義ドメイン

最適なマスタークロックアルゴリズム

ベストマスター クロック アルゴリズム(BMCA) は、次のクロック プロパティに基づいて、リーダーとして機能する最適なクロックの分散選択を実行します。

  • 識別子 – クロックの普遍的に一意な数値識別子。これは通常、デバイスのMACアドレスに基づいて構築されます。
  • 品質 – IEEE 1588 の両バージョンとも、予想されるタイミング偏差、クロックを実装するために使用されるテクノロジ、またはクロック ストラタムスキーマ内の位置に基づいてクロックの品質を定量化しようとしますが、データ フィールドストラタムを認識するのは V1 (IEEE 1588-2002) のみです。PTP V2 (IEEE 1588-2008) は、データ フィールドclockAccuracyclockClassを使用してクロックの全体的な品質を定義します。
  • 優先度 – BMCAがPTPドメインのグランドマスターを選択する際に使用する、管理上割り当てられた優先度のヒント。IEEE 1588-2002では、優先度を示すために単一のブール変数が使用されていました。IEEE 1588-2008では、2つの8ビット優先度フィールドが使用されています。
  • 分散 – PTP リファレンスに対するパフォーマンスの観察に基づくクロックの安定性の推定値。

IEEE 1588-2008は、以下の特性に基づいた階層的な選択アルゴリズムを、示されている順序で使用している。[ 13 ]:図27

  1. 優先度1 – ユーザーは各クロックに特定の静的優先度を割り当てることができ、クロック間の優先度を事前に定義できます。数値が小さいほど優先度が高くなります。
  2. クラス – 各クロックは特定のクラスのメンバーであり、各クラスには独自の優先順位が与えられます。
  3. 精度 – 時計とUTC間の精度(ナノ秒(ns)単位)
  4. 変動 – 時計の変動性
  5. 優先度2 – 最終的に定義された優先度。他の基準が不十分な場合のバックアップ順序を定義します。数値が小さいほど優先度が高くなります。
  6. 一意の識別子 - 他のすべてのプロパティが等しい場合、MAC アドレスに基づく選択がタイブレーカーとして使用されます。

IEEE 1588-2002 は類似した特性に基づいた選択アルゴリズムを使用します。

クロック特性は、IEEE 1588-2002 SyncメッセージとIEEE 1588-2008 Announceメッセージで通知されます。現在のリーダーは、この情報を定期的に送信します。より優れたリーダーであると自認するクロックは、リーダー交代を促すためにこの情報を送信します。現在のリーダーがより良いクロックを認識すると、現在のリーダーはSyncメッセージと関連するクロック特性( IEEE 1588-2008の場合はAnnounceメッセージ)の送信を停止し、より優れたクロックがリーダーを引き継ぎます。[ 15 ] BMCAは、クロックの自己宣言品質のみを考慮し、ネットワークリンク品質は考慮しません。[ 16 ]

同期

PTP は BMCA を介して、IEEE 1588 ドメインとドメイン内の各ネットワーク セグメントの時間ソースを選択します。

クロックは、自身とリーダーとの間のオフセットを決定します。[ 17 ]変数を物理時間を表すものとします。与えられたフォロワーデバイスの場合、時間におけるオフセットは次のように定義されます。 t{\displaystyle t}ot{\displaystyle o(t)}t{\displaystyle t}

 otstメートルt{\displaystyle \o(t)=s(t)-m(t)}

ここで、 は物理時間 におけるフォロワー クロックによって測定された時間を表し、 は物理時間 におけるリーダー クロックによって測定された時間を表します。 st{\displaystyle s(t)}t{\displaystyle t}メートルt{\displaystyle m(t)}t{\displaystyle t}

リーダークロックは、現在の時刻を他のクロックにメッセージとして定期的にブロードキャストします。IEEE 1588-2002では、ブロードキャストは1秒あたり最大1回まで許可されています。IEEE 1588-2008では、1秒あたり最大10回まで許可されています。

IEEE 1588同期メカニズムと遅延計算

各ブロードキャストは、リーダーからドメイン内のすべてのクロックに送信されるSyncメッセージによって開始されます。このメッセージを受信したクロックは、メッセージを受信した時点のローカル時刻を記録します。 T1{\displaystyle T_{1}}T1{\displaystyle T_{1}'}

リーダーはその後、正確なタイムスタンプを含むマルチキャストFollow_Upメッセージを送信できます。すべてのリーダーがSyncメッセージに正確なタイムスタンプを付加できるわけではありません。送信が完了した後にのみ、ネットワークハードウェアからSync送信の正確なタイムスタンプを取得できます。この制限のあるリーダーは、 Follow_Upメッセージを使用して情報を伝達します。ネットワークハードウェアにPTP機能が組み込まれているリーダーは、 Syncメッセージに正確なタイムスタンプを付加できるため、Follow_Upメッセージを送信する必要はありません。 T1{\displaystyle T_{1}}T1{\displaystyle T_{1}}

リーダーと正確に同期するために、クロックは同期メッセージのネットワーク通過時間を個別に測定する必要があります。通過時間は、各クロックからリーダーまでの往復時間を測定することで間接的に決定されます。クロックは、通過時間を測定するように設計されたリーダーとの交換を開始します。交換は、クロックが時刻にリーダーにDelay_Reqメッセージを送信することから始まります。リーダーは時刻にDelay_Reqを受信し、タイムスタンプを付与してDelay_Respメッセージで応答します。リーダーはDelay_Respメッセージにタイムスタンプを含めます。 d{\displaystyle d}T2{\displaystyle T_{2}}T2{\displaystyle T_{2}'}T2{\displaystyle T_{2}'}

これらのやり取りを通じて、時計は、、およびを学習します。 T1{\displaystyle T_{1}}T1{\displaystyle T_{1}'}T2{\displaystyle T_{2}}T2{\displaystyle T_{2}'}

同期メッセージの通過時間であり、リーダークロックとフォロワークロック間の一定のオフセットである場合 、d{\displaystyle d}o{\displaystyle {\tilde {o}}}

 T1T1o+d そして  T2T2o+d{\displaystyle \T_{1}'-T_{1}={\tilde {o}}+d{\text{ および }}\T_{2}'-T_{2}=-{\tilde {o}}+d}

上記の2つの式を組み合わせると、

o12T1T1T2+T2{\displaystyle {\tilde {o}}={\frac {1}{2}}(T_{1}'-T_{1}-T_{2}'+T_{2})}

クロックは、このトランザクション中のオフセットを認識し、この量だけ自身を修正してリーダーと一致させることができます。 o{\displaystyle {\tilde {o}}}

一つの仮定は、このメッセージ交換は非常に短い期間で行われるため、このオフセットはその期間を通じて一定であると安全に考えることができるというものである。もう一つの仮定は、リーダーからフォロワーへのメッセージの伝送時間は、フォロワーからリーダーへのメッセージの伝送時間と等しいというものである。最後に、リーダーとフォロワーの両方が、メッセージの送受信時間を正確に測定できると仮定する。これらの仮定がどの程度成立するかによって、フォロワーデバイスのクロックの精度が決まる。[ 13 ]:6.2項

オプション機能

IEEE 1588-2008 標準では、実装でサポートすることを選択できる次の機能セットがリストされています。

  • 代替タイムスケール
  • グランドマスタークラスター
  • ユニキャストマスター
  • 代替マスター
  • パストレース

IEEE 1588-2019では、オプション機能と下位互換性のある機能が追加されている。[ 9 ]

  • モジュラー透明時計
  • 組み込みの時間配信を備えたトランスポートとインターフェースするための特別なPTPポート
  • ユニキャストDelay_ReqおよびDelay_Respメッセージ
  • BMCA をオーバーライドする手動ポート設定
  • 非対称性校正
  • 物理層周波数リファレンスを利用する機能(例:同期イーサネット
  • プロファイル分離
  • ドメイン間の相互作用
  • 整合性チェックのためのセキュリティTLV
  • 標準的なパフォーマンスレポート指標
  • スレーブポート監視

参照

注記

  1. ^ IEEE 1588-2008のプロファイル機能では、アプリケーション固有のエポックの使用が許可されています。 [ 13 ]:付録B
  2. ^ IEEE 1588-2002では、アナウンスメッセージで伝送される情報は同期メッセージで伝送されます。IEEE 1588-2008では、同期メッセージが最適化され、この情報は同期メッセージで伝送されなくなりました。
  3. ^ Ethertype 0x88F7を使用した IEEE 802.3 イーサネット経由の PTP
  4. ^ IEEE 1588-2002 のデフォルト以外のドメインは、宛先アドレス 224.0.1.130 から 224.0.1.132 を使用します ( #ドメインを参照)。
  5. ^ここで、 xはRFC 2373に従ったアドレススコープ(リンクローカルの場合は2)です( IPv6マルチキャストアドレスを参照)。
  6. ^一部のPTPアプリケーションでは、すべてのPTPメッセージを01-1B-19-00-00-00に送信することが許可されています。
  7. ^ピア遅延メッセージは、直接接続されたネイバーに伝播することを目的としています。これらのメッセージのマルチキャストアドレスは、リンクローカルスコープで送信されるように設計されており、ルーターを経由しません。IEEE 1588-2008では、メッセージがルーティングされないようにするために、TTL(Time to Live)を1(IPv4)またはホップリミットを0(IPv6)に設定することも推奨されています
  8. ^ピア遅延メッセージングは​​IEEE 1588-2002には存在しない
  9. ^ IEEE 1588-2002 では、ドメインを相互接続されたクロックのセット (相互に同期しているかどうかに関係なく) として定義し、 IEEE 1588-2008 でドメインとして知られているものを指すためにサブドメインを使用します。
  10. ^ IEEE 1588-2008 では、すべてのマルチキャスト メッセージのアドレスとして 224.0.1.129 を使用します。
  11. ^ AVB は、IEEE 802.1 Time-Sensitive Networking (TSN) タスク グループによってさらに拡張されています。

参考文献

  1. ^ Eidson, John (2005年10月10日). 「ネットワーク化された計測・制御システムのための高精度クロック同期プロトコルに関するIEEE-1588規格、チュートリアル」 . 米国国立標準技術研究所 (NIST).
  2. ^ Oehler, Erik (2023年7月19日). 「トレーディングシステムにおける正確な計時と同期の重要性」 . Safran - ナビゲーション&タイミング. 2025年12月3日閲覧
  3. ^ 「Celona PTPガイドラインとベストプラクティス | Celonaヘルプセンター」 . docs.celona.io . 2025年12月3日閲覧
  4. ^ Wei, Zhengrong; Pei, Yanliang; Zhu, Xiangqian; Liu, Kai; Zhang, Xiaobo; Zong, Le; Li, Xinyu (2024年7月29日). 「深海曳航式マルチチャンネル地震探査アレイのための高精度測位法」 . Frontiers in Marine Science . 11 1351327. Bibcode : 2024FrMaS..1151327W . doi : 10.3389/fmars.2024.1351327 . ISSN 2296-7745 . 
  5. ^ Austin (2025年2月18日). 「Raspberry Pi用ナノ秒精度PTPサーバー(グランドマスター)とクライアントのチュートリアル」 . Austin's Nerdy Things . 2025年12月3日閲覧
  6. ^ Eidson, John C. (2006年4月). 『IEEE 1588を用いた測定、制御、通信Springer . ISBN 978-1-84628-250-8
  7. ^ Eidson, John (2006年10月2日). 「IEEE 1588規格バージョン2 - チュートリアル」(PDF) . 2010年3月31日時点のオリジナル(PDF)からアーカイブ。 2008年6月12日閲覧
  8. ^ 「1588-2019 - ネットワーク化された計測・制御システム向け高精度クロック同期プロトコルのIEEE承認ドラフト標準」 IEEE 2020年2月15日閲覧
  9. ^ a b Douglas Arnold (2017年9月24日). 「IEEE 1588次版では何が発表されるのか?」 . 2020年2月15日閲覧
  10. ^ a b IEEE 1588g-2022 修正2: マスタースレーブオプション代替用語IEEE、2022年12月3日
  11. ^ 「IEEE 1588で使用される一般的な用語の意味」。米国国立標準技術研究所。2010年5月27日時点のオリジナルよりアーカイブ2006年5月19日閲覧。
  12. ^ 「AN-1838 DP83640を使用したIEEE 1588境界クロックおよび透過クロックの実装」(PDF) . ti.com . Texas Instruments . 2019年7月17日閲覧
  13. ^ a b c d e f g h i j k l IEEEネットワーク計測制御システム向け高精度クロック同期プロトコル標準IEEE、2008年7月24日、doi10.1109/IEEESTD.2008.4579760ISBN 978-0-7381-5400-8
  14. ^ a b c IEEEネットワーク計測制御システム向け高精度クロック同期プロトコル標準IEEE、2002年11月8日、doi10.1109/IEEESTD.2002.94144ISBN 978-0-7381-3369-0
  15. ^ Watt, Steve T.; Achanta, Shankar; Abubakari, Hamza; Sagen, Eric (2014年3月) 「Precision Time Protocolの理解と適用」 (PDF) 、 2017年9月9日閲覧。
  16. ^ FSMLabs技術スタッフ(2015年9月)、スマートおよびダムPTPクライアントと「いわゆる」ベストマスタークロックアルゴリズム、 2018年5月17日閲覧。
  17. ^国際規格IEC 61588: ネットワーク化された計測および制御システムのための高精度クロック同期プロトコル。2004 年。
  18. ^ ISPCSウェブサイト
  19. ^ Geoffrey M. Garner (2010年5月28日)、IEEE 802.1ASおよびIEEE 1588 (PDF)
  20. ^ SMPTEが既存のSDIプラントにPTPタイム機器を導入できるようにする標準規格の最初の2部を公開映画テレビ技術者協会、2015年4月13日2015年5月21日閲覧
  21. ^ AES-R16-2016: AES標準レポート - AES67とSMPTE ST 2059-2の相互運用性のためのPTPパラメータオーディオエンジニアリング協会、2016年5月2日
  22. ^ a b https://www.smpte.org/sites/default/files/users/user27446/AES67%20for%20Audio%20Production-Background%20Applications%20and%20Challenges.pdf
  23. ^ Oyen, Seppe (2017年6月6日). 「AVネットワークにおけるPTPv2タイミングプロトコル」 . Luminex . Q-LANは約2年前にPTPv2にアップデートされました。
  24. ^ Pepiciello, Antonio; Vaccaro, Alfredo (2018年12月17日)、「WAMPAC同期のための高精度時間プロトコルに基づく信頼性の高いアーキテクチャ」、2018 AEIT国際年次会議IEEE、pp.  1– 5、doi : 10.23919/AEIT.2018.8577414ISBN 978-8-8872-3740-5S2CID  58819556