Precision Time Protocol
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/12/20 17:25 UTC 版)
Precision Time Protocol (PTP)は、コンピュータネットワーク全体でクロックを同期させるために使用される通信プロトコルである。
Local Area Network(LAN)においてマイクロ秒以下の精度のクロック同期を達成し、測定や制御システムにも使用できるようにする[1]。PTPは現在、金融取引、携帯電話の基地局、海底音響アレイ、および正確なタイミングを必要とするが衛星ナビゲーション信号を使用できないネットワークの同期に使用されている。
PTPは当初、2002年に発行されたIEEE 1588-2002 "Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems"(ネットワーク化された測定および制御システムのための精密クロック同期プロトコルの規格)において定義された。2008年に、改訂規格 IEEE 1588-2008がリリースされた。これは「PTPバージョン2」とも呼ばれ、精度や堅牢性を向上させたが、元の2002年バージョンとの下位互換性はない[2]。
「IEEE 1588は、NTPとGPSという2つの主要プロトコルのどちらでもうまく機能しないニッチを埋めるように設計されている。IEEE 1588は、NTPの使用で達成可能なものを超える精度を必要とするローカルシステム用に設計されている。また、各ノードでGPS受信機のコストを負担できない、またはGPS信号にアクセスできないアプリケーション向けにも設計されている。」[3]
アーキテクチャ
IEEE 1588規格は、クロック分配のための階層的マスタースレーブアーキテクチャとして定義されている。このアーキテクチャでは、時間配信システムは1つ以上の通信媒体(ネットワークセグメント)と1つ以上のクロックで構成されている。ordinary clock(通常クロック)は、単一のネットワーク接続を持つデバイスで、同期基準の発信元(マスター)または宛先(スレーブ)のいずれかである。boundary clock(境界クロック)は、複数のネットワーク接続を持ち、あるネットワークセグメントを別のネットワークセグメントに正確に同期させることができる。システム内の各ネットワークセグメントに対して同期マスターが選択される。ネットワーク内において高精度な時刻を持つデバイスをグランドマスターに指定する[4]。グランドマスターは、そのネットワークセグメント上にあるクロックに同期情報を送信する。セグメント上に存在する境界クロックは、接続されている他のセグメントに正確な時間を中継する。
単純化PTPシステムは、単一のネットワークに接続された通常クロックからなり、境界クロックは使用されない。クロックの中からグランドマスターが選出され、他の全てのクロックはそれに直接同期する。
IEEE 1588-2008では、PTPメッセージの伝達に使用されるネットワーク機器に関連する新たな種類のクロックが導入されている。transparent clock(透過クロック)は、デバイスを通過するときにPTPメッセージを変更する。ネットワーク機器を通過するのに費やされた時間によってメッセージ内のタイムスタンプが修正される。この方式では、ネットワーク全体のパケット遅延変動を補正することで、配信の正確性が向上する。
PTPは通常、UNIX時間と同じエポック(1970年1月1日)を使用する[note 1]。UNIX時間は協定世界時(UTC)に基づいており閏秒の影響を受けるが、PTPは国際原子時(TAI)に基づいており、閏秒の影響を受けない。PTPグランドマスターは現在のUTCとTAIの差分を通知するので、受信した時間からUTCは計算できる。
プロトコルの詳細
PTPシステムにおける同期と管理は、通信媒体を介してメッセージを交換することによって行われる。PTPでは以下のメッセージタイプを使用する。
- Sync, Follow_Up, Delay_Req, Delay_Resp - 通常クロックと境界クロックが使用し、クロックを同期するための時間関連の情報を通信する。
- Pdelay_Req, Pdelay_Resp, Pdelay_Resp_Follow_Up - 透過クロックが、通信媒体による遅延を測定するために使用する。透過クロックとそれに関連するこれらのメッセージは、IEEE 1588-2002では使用できない。
- Announce - IEEE 1588-2008のBMCA(後述)において、クロック階層を構築してグランドマスターを選択するために使用する[note 2]。
- Management - PTPシステムの監視・設定・維持(ネットワーク管理)のために使用する。
- Signaling - クロック間のタイムクリティカルではない通信に使用される。このメッセージはIEEE 1588-2008で導入された。
メッセージはイベント(event)メッセージと一般(general)メッセージに分類される。イベントメッセージはタイムクリティカルである。これは、送信と受信のタイムスタンプの正確さの正確さが直接クロック分配の正確さに影響するためである。Sync, Delay_Req, Pdelay_Req, Pdelay_resp はイベントメッセージである。一般メッセージは、メッセージ内のデータがPTPにとって重要であるという点でより典型的なProtocol Data Unitであるが、その送信・受信タイムスタンプは重要ではない。Announce, Follow_Up, Delay_Resp, Pdelay_Resp_Follow_Up, Management, Signalingは一般メッセージである[5]:Clause 6.4。
メッセージ転送
PTPメッセージは、メッセージの伝送にUser Datagram Protocol over Internet Protocol(UDP/IP)を使用する。IEEE 1588-2002はIPv4のみを使用する[6]:Annex Dが、IEEE 1588-2008ではIPv6でも使用できるように拡張されている[5]:Annex F。IEEE 1588-2002では、全てのPTPメッセージがマルチキャストで送信されるが、IEEE 1588-2008では、デバイスがポート単位でユニキャスト送信をネゴシエートするためのオプションが導入された[5]:Clause 16.1。マルチキャスト送信では、IPマルチキャストアドレスが使用される。IPマルチキャストアドレスでは、IPv4およびIPv6に対してマルチキャストグループアドレスが定義されている(表を参照)[5]:Annex D and E。イベントメッセージはポート番号319、一般メッセージはポート番号320を使用する。
メッセージ | IPv4 | IPv6 | IEEE 802.3イーサネット[5]:Annex F[note 3] |
---|---|---|---|
ピア遅延メッセージ以外 | 224.0.1.129[note 4] | FF0x::181[note 5] | 01-1B-19-00-00-00[note 6] |
ピア遅延メッセージ: Pdelay_Req, Pdelay_Resp, Pdelay_Resp_Follow_Up[note 7] | 224.0.0.107[note 8] | FF02::6B | 01-80-C2-00-00-0E |
IEEE 1588-2008では、カプセル化がDeviceNet[5]:Annex G、ControlNet[5]:Annex H、PROFINET[5]:Annex Iに対して定義されている。
ドメイン
ドメイン[note 9]は、PTPを使用して互いに同期し相互作用するクロックのセットである。クロックは、受信または生成するPTPメッセージ内のSubdomain_name(IEEE 1588-2002)またはdomainNumber(IEEE 1588-2008)フィールドの内容によって、ドメインに割り当てられる。ドメインにより、同じ通信媒体上で複数のクロック分配システムを共存させることができる。
Subdomain nameフィールドの内容 (IEEE1588-2002) |
IPv4マルチキャストアドレス (IEEE1588-2002)[note 10] |
domainNumber (IEEE1588-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オクテットまでの特定用途向け[6]:Clause 6.2.5.1 | SubDomain nameのハッシュ関数によって224.0.1.130, 131, 132のいずれか[6]:Annex C | 4 - 127 | ユーザー定義ドメイン |
BMCA
best master clock algorithm(BMCA)は、最適な候補クロックの分散選択を実行するアルゴリズムであり、次のクロック特性に基づく。
- 識別子 - 個々のクロックにユニークに設定された数値識別子。通常、デバイスのMACアドレスに基づいて設定される。
- 品質 - データフィールドstratumを知っているのはV1(IEEE 1588-2002)だけであるが、IEEE 1588のどちらのバージョンでも、予想されるタイミング偏差、クロックの実装に用いられている技術、クロック階層(clock stratum)スキーマにおける位置に基づいてクロック品質を定量化する。PTP V2(IEEE 1588-2008)では、データフィールドclockAccuracy, clockClassを使用して、クロックの全体的な品質を定義する。
- 優先度 – PTPドメインのグランドマスターを選択するためにBMCAによって使用される、管理上割り当てられた優先順位のヒント。IEEE 1588-2002では、優先順位を示すために単一のブール変数を使用する。IEEE 1588-2008では、2つの8ビット優先度フィールドがある。
- 分散 - PTPの基準に対するパフォーマンスの観察に基づいた、クロックの安定性の見積もり。
IEEE 1588-2008は、以下に示す特性を基づく階層選択アルゴリズムを使用する。特性の優先度は、上から順である[5]:Figure 27。
- 優先度1 - ユーザーは各クロックに優先順位を固定的に割り当てることができる。数値が小さいほど優先順位が高くなる。
- クラス - 各クロックは特定のクラスのメンバーであり、各クラスは独自の優先順位を取得する。
- 正確さ - クロックとUTCの間の精度(ナノ秒(ns)単位)
- 分散 - クロックのばらつき
- 優先度2 - 他の基準では決定できなかった場合に使用する、最終定義の優先順位。数値が小さいほど優先順位が高くなる。
- 一意の識別子 - 他の全ての特性が等しい場合は、MACアドレスに基づいて決定される。
IEEE 1588-2002では、同様の特性に基づく選択アルゴリズムを使用している。
クロック特性は、IEEE 1588-2002のSyncメッセージおよびIEEE 1588-2008のAnnounceメッセージによって広告される。現在のクロックマスターはこの情報を定期的に送信する。あるクロックが、自身が現在のクロックマスターよりも良いクロックだと判断した場合、マスタークロックを変更するためにこの情報を送信する。現在のマスターがより良いクロックを認識すると、現在のマスターはSyncメッセージおよび関連するクロック特性(IEEE 1588-2008の場合はAnnounceメッセージ)の送信を停止し、より良いクロックがマスターを引き継ぐ[7]。BMCAは、自己宣言されたクロック品質のみを考慮し、ネットワークリンク品質を考慮に入れない[8]。
同期
BMCAを使用することで、PTPはIEEE 1588ドメインおよびドメイン内の各ネットワークセグメントのマスタータイムソースを選択する。
クロックは自身とマスターの間のオフセットを決定する[9]。ここで、変数 各ブロードキャストは時間
「Precision Time Protocol」の例文・使い方・用例・文例
- The Malay Times に掲載されていた、非常勤の下級アナリストの職に関する広告についてご連絡を差し上げています。
- 彼女の15 冊の出版物のうち10 冊が、Brooklyn Timesのベストセラーリストの首位を占めたという事実は、多くの人々が彼女のことを、肥満に苦しむ国の救済者だと考えている証拠である。
- 最近着の London Times に曰く
- オックスフォード運動の創設者の原則で、『Tracts for the Times』と呼ばれるパンフレットで提唱された
- Precision Time Protocolのページへのリンク