PTP(ピーティーピー)とは | 意味や読み方など丁寧でわかりやすい用語解説
PTP(ピーティーピー)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
プレシジョン・タイム・プロトコル (プレシジョン・タイム・プロトコル)
英語表記
Precision Time Protocol (プレシジョン・タイム・プロトコル)
用語解説
PTP(Precision Time Protocol)は、ネットワーク上で非常に高精度な時刻同期を実現するためのプロトコルである。IEEE 1588という国際標準規格として定義されており、数マイクロ秒から数ナノ秒といった極めて高い精度で、分散システム内の機器の時刻を合わせることを目的としている。従来の時刻同期プロトコルであるNTP(Network Time Protocol)が主にミリ秒単位の精度を提供するのに対し、PTPはより高精度が求められる産業用制御システム、金融取引システム、通信ネットワーク、科学計測機器、放送・映像制作システムなど、時間によって厳密な処理が要求される分野で広く利用されている。これらのシステムでは、複数の機器が連携して動作する際に、各機器の内部時計がわずかでもずれていると、データの不整合、処理の遅延、あるいはシステムの誤動作を引き起こす可能性があるため、PTPのような高精度な時刻同期が不可欠となる。
PTPの基本的な仕組みは、マスター・スレーブ方式に基づいている。ネットワーク内には、最も正確な時刻を持つ機器が「グランドマスタークロック」として設定され、その時刻を基準として他の全ての機器の時刻が同期される。グランドマスタークロックは通常、GPS受信機などの外部の高精度な時刻源と接続されていることが多い。グランドマスタークロックから時刻情報を受け取る機器は「マスタークロック」となり、さらにそのマスタークロックから時刻情報を受け取る機器が「スレーブクロック」となる。このようにして、階層的に時刻情報が伝播していく。
PTPによる時刻同期は、主に4種類のメッセージの交換によって行われる。まず、マスタークロックは定期的に自身の時刻を示す「Sync」メッセージをスレーブクロックに送信する。このSyncメッセージには、送信時刻の正確なタイムスタンプが含まれる。Syncメッセージが送信された直後に、マスタークロックは「Follow_Up」メッセージを送信することもある。このFollow_Upメッセージは、Syncメッセージの送信時刻がハードウェアの制約などでSyncメッセージ自体に正確に記録できなかった場合に、その正確な送信時刻を別途伝えるためのものである。スレーブクロックはSyncメッセージを受信すると、その受信時刻を記録する。
次に、スレーブクロックは自身の時刻とマスタークロックの時刻とのオフセットを計算する。このオフセットを計算するためには、ネットワーク上の通信経路で発生する遅延を考慮する必要がある。スレーブクロックは「Delay_Req」メッセージをマスタークロックに送信し、マスタークロックはそのDelay_Reqメッセージを受信した時刻を記録し、「Delay_Resp」メッセージでその受信時刻をスレーブクロックに返す。
これらのメッセージ交換によって、スレーブクロックは以下の4つのタイムスタンプを得ることができる。
- マスターからSyncメッセージが送信された時刻 (t1)
- スレーブがSyncメッセージを受信した時刻 (t2)
- スレーブからDelay_Reqメッセージが送信された時刻 (t3)
- マスターがDelay_Reqメッセージを受信した時刻 (t4)
これらのタイムスタンプを用いて、スレーブクロックはマスターとスレーブ間のオフセットと、通信経路の遅延を計算する。具体的には、マスターからスレーブへの片方向遅延 (t_ms) は (t2 - t1) となり、スレーブからマスターへの片方向遅延 (t_sm) は (t4 - t3) となる。PTPは、これらの片方向遅延がほぼ等しいという前提(対称的なネットワーク遅延)で、平均の経路遅延を計算し、それに基づいてスレーブの時刻を調整する。例えば、スレーブクロックの時刻がマスタークロックに対してどれだけずれているか(オフセット)は、おおよそ ((t2 - t1) - (t4 - t3)) / 2 あるいは ((t2 - t1) - 経路遅延) などで計算され、このオフセット分スレーブクロックの時刻を修正することで同期を実現する。この両方向の遅延測定により、NTPよりもはるかに高い精度での同期が可能となる。
PTPがNTPと比較して格段に高い精度を実現できる大きな要因の一つは、「ハードウェアタイムスタンプ」の利用である。NTPは主にOSやアプリケーションソフトウェアレベルでタイムスタンプを付与するため、OSのスケジューリングやネットワークスタック処理による可変的な遅延の影響を受ける。一方、PTPでは、ネットワークインターフェースカード(NIC)や対応するネットワークスイッチなどのハードウェアが、物理層に近いレベルでタイムスタンプを付与する。これにより、パケットがネットワークデバイスに入力された瞬間や出力される瞬間の正確な時刻を記録でき、ソフトウェア処理に起因するジッター(ゆらぎ)を大幅に排除し、マイクロ秒からナノ秒といった非常に高精度な同期を可能にする。
ネットワーク機器のPTP対応も重要な要素である。PTP対応のスイッチには、「トランスペアレントクロック(Transparent Clock)」と「バウンダリークロック(Boundary Clock)」の2種類がある。トランスペアレントクロックは、PTPメッセージが自身を通過する際に発生した遅延時間を測定し、PTPメッセージ内の遅延フィールドを更新して、下流のスレーブクロックがより正確な経路遅延を把握できるようにする。一方、バウンダリークロックは、自身がマスタークロックとして振る舞い、同時に上流のマスタークロックに対してはスレーブクロックとして振る舞う。つまり、上流から同期した時刻を基に、自身が下流の機器へのマスターとなることで、ネットワークを複数のPTPドメインに分割し、より大規模なネットワークでの同期を可能にする。
PTPには複数のバージョンが存在する。最初にリリースされたのはPTPv1 (IEEE 1588-2002) であり、現在はPTPv2 (IEEE 1588-2008) が主流となっている。PTPv2は、PTPv1に比べてより多くの機能を持ち、精度と堅牢性が向上している。例えば、マルチキャストだけでなくユニキャスト通信もサポートし、複数のマスタークロックが存在する場合の最適なマスター選択機能(Best Master Clock Algorithm: BMCA)が強化された。さらに、PTPv2.1 (IEEE 1588-2019) が最新版としてリリースされており、セキュリティ機能の強化や柔軟性の向上が図られている。
また、特定の産業分野やアプリケーション要件に合わせて、PTPの設定を標準化した「PTPプロファイル」という概念がある。例えば、オーディオ・ビデオ・ブリッジング(AVB)やタイムセンシティブネットワーキング(TSN)のようなIEEE 802.1ASプロファイルは、リアルタイム性や同期が重視されるマルチメディア伝送システムで使用される。電力系統の自動化システムではIEC 61850-9-3プロファイルが、放送・映像業界ではSMPTE 2059-2プロファイルが利用されるなど、それぞれのニーズに応じたプロファイルが存在する。これにより、異なるメーカーの機器間でも相互運用性が確保されやすくなるが、異なるプロファイル間では互換性がなく、同じネットワーク上で複数のプロファイルを使用することは通常できないため、システム設計時には注意が必要である。
PTPは、高精度な時刻同期を必要とする現代のITインフラストラクチャにおいて不可欠な技術であり、今後もその適用範囲は拡大していくと予想される。特に、IoT、エッジコンピューティング、5G通信といった新たな技術分野では、リアルタイム性と精密な協調動作が求められるため、PTPの重要性はますます高まるだろう。PTPを導入する際には、対応するネットワーク機器の選定、ネットワーク設計における遅延の考慮、適切なプロファイルの選択が成功の鍵となる。