| 通信プロトコル | |
| 略語 | 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は、NTPとGPSという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は以下のメッセージタイプを使用します。
メッセージはイベントメッセージと一般メッセージに分類されます。イベントメッセージは、送信および受信タイムスタンプの精度がクロック分配精度に直接影響するため、タイムクリティカルです。Sync 、Delay_Req、Pdelay_Req、Pdelay_respはイベントメッセージです。一般メッセージは、メッセージ内のデータはPTPにとって重要ですが、送信および受信タイムスタンプは重要ではないという点で、より従来的なプロトコルデータユニットです。Announce 、Follow_Up、Delay_Resp、Pdelay_Resp_Follow_Up、Management、Signalingの各メッセージは一般メッセージクラスのメンバーです。[ 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_Req、Pdelay_Resp、Pdelay_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-2002) | IPv4マルチキャストアドレス(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) は、次のクロック プロパティに基づいて、リーダーとして機能する最適なクロックの分散選択を実行します。
IEEE 1588-2008は、以下の特性に基づいた階層的な選択アルゴリズムを、示されている順序で使用している。[ 13 ]:図27
IEEE 1588-2002 は類似した特性に基づいた選択アルゴリズムを使用します。
クロック特性は、IEEE 1588-2002 SyncメッセージとIEEE 1588-2008 Announceメッセージで通知されます。現在のリーダーは、この情報を定期的に送信します。より優れたリーダーであると自認するクロックは、リーダー交代を促すためにこの情報を送信します。現在のリーダーがより良いクロックを認識すると、現在のリーダーはSyncメッセージと関連するクロック特性( IEEE 1588-2008の場合はAnnounceメッセージ)の送信を停止し、より優れたクロックがリーダーを引き継ぎます。[ 15 ] BMCAは、クロックの自己宣言品質のみを考慮し、ネットワークリンク品質は考慮しません。[ 16 ]
PTP は BMCA を介して、IEEE 1588 ドメインとドメイン内の各ネットワーク セグメントの時間ソースを選択します。
クロックは、自身とリーダーとの間のオフセットを決定します。[ 17 ]変数を物理時間を表すものとします。与えられたフォロワーデバイスの場合、時間におけるオフセットは次のように定義されます。
ここで、 は物理時間 におけるフォロワー クロックによって測定された時間を表し、 は物理時間 におけるリーダー クロックによって測定された時間を表します。
リーダークロックは、現在の時刻を他のクロックにメッセージとして定期的にブロードキャストします。IEEE 1588-2002では、ブロードキャストは1秒あたり最大1回まで許可されています。IEEE 1588-2008では、1秒あたり最大10回まで許可されています。

各ブロードキャストは、リーダーからドメイン内のすべてのクロックに送信されるSyncメッセージによって開始されます。このメッセージを受信したクロックは、メッセージを受信した時点のローカル時刻を記録します。
リーダーはその後、正確なタイムスタンプを含むマルチキャストFollow_Upメッセージを送信できます。すべてのリーダーがSyncメッセージに正確なタイムスタンプを付加できるわけではありません。送信が完了した後にのみ、ネットワークハードウェアからSync送信の正確なタイムスタンプを取得できます。この制限のあるリーダーは、 Follow_Upメッセージを使用して情報を伝達します。ネットワークハードウェアにPTP機能が組み込まれているリーダーは、 Syncメッセージに正確なタイムスタンプを付加できるため、Follow_Upメッセージを送信する必要はありません。
リーダーと正確に同期するために、クロックは同期メッセージのネットワーク通過時間を個別に測定する必要があります。通過時間は、各クロックからリーダーまでの往復時間を測定することで間接的に決定されます。クロックは、通過時間を測定するように設計されたリーダーとの交換を開始します。交換は、クロックが時刻にリーダーにDelay_Reqメッセージを送信することから始まります。リーダーは時刻にDelay_Reqを受信し、タイムスタンプを付与してDelay_Respメッセージで応答します。リーダーはDelay_Respメッセージにタイムスタンプを含めます。
これらのやり取りを通じて、時計は、、およびを学習します。
同期メッセージの通過時間であり、リーダークロックとフォロワークロック間の一定のオフセットである場合 、
上記の2つの式を組み合わせると、
クロックは、このトランザクション中のオフセットを認識し、この量だけ自身を修正してリーダーと一致させることができます。
一つの仮定は、このメッセージ交換は非常に短い期間で行われるため、このオフセットはその期間を通じて一定であると安全に考えることができるというものである。もう一つの仮定は、リーダーからフォロワーへのメッセージの伝送時間は、フォロワーからリーダーへのメッセージの伝送時間と等しいというものである。最後に、リーダーとフォロワーの両方が、メッセージの送受信時間を正確に測定できると仮定する。これらの仮定がどの程度成立するかによって、フォロワーデバイスのクロックの精度が決まる。[ 13 ]:6.2項
IEEE 1588-2008 標準では、実装でサポートすることを選択できる次の機能セットがリストされています。
IEEE 1588-2019では、オプション機能と下位互換性のある機能が追加されている。[ 9 ]
Q-LANは約2年前にPTPv2にアップデートされました。