第23章 ptp4l を使用した PTP の設定
23.1. PTP の概要
Precision Time Protocol (PTP)は、ネットワーク内でのクロックの同期に使用されるプロトコルです。ハードウェアサポートと合わせて使用すると
PTP
はマイクロ秒以下の正確性があり、これは NTP
で得られる正確性が非常に優れています。PTP
サポートは、カーネルとユーザースペースに分けられます。Red Hat Enterprise Linux 6 のカーネルに PTP
クロックのサポートが含まれるようになりました。これは、ネットワークドライバーが提供しています。実際のプロトコル実装は linuxptp と呼ばれ、これは Linux の IEEE 標準 1588 に準拠した PTPv2
実装です。
linuxptp パッケージには、クロック同期用の ptp4l および phc2sys プログラムが含まれます。ptp4l プログラムは、
PTP
境界クロックと通常のクロックを実装します。ハードウェアタイムスタンプでは、PTP
ハードウェアクロックのマスタークロックとの同期に使用され、ソフトウェアタイムスタンプではシステムクロックのマスタークロックとの同期に使用されます。phc2sys プログラムは、システムクロックを ネットワークインターフェースカード (NIC)上の PTP
ハードウェアクロックと同期するハードウェアタイムスタンプでのみ必要です。
23.1.1. PTP を理解する
PTP
で同期するクロックは、マスター/スレーブ階層で組織されています。スレーブはマスターと同期し、このマスターは別のマスターのスレーブとなっています。この階層は、最適なマスタークロック (BMC)アルゴリズムにより自動的に作成され、更新されます。クロックにポートが 1 つしかない場合は、master または slave を指定できます。このようなクロックは 通常のクロック (OC)と呼ばれます。1 つのポートを持つクロックは 1 つのポート上にマスターとなり、別のポートでスレーブできます。このようなクロックは 境界 クロック(BC)と呼ばれます。トップレベルのマスターは、Global Positioning System (GPS)のタイムソースを使用して同期できる グランドマスタークロック と呼ばれます。GPS ベースの時間ソースを使うことで、高度の正確性を保って異なるネットワークが同期可能になります。
図23.1 PTP グランドマスター、境界、スレーブの各クロック
[D]
23.1.2. PTP の利点
PTP
が Network Time Protocol (NTP)よりも対応している主な利点の 1 つは、さまざまな ネットワークインターフェースコントローラー (NIC)およびネットワークスイッチにあるハードウェアサポートです。この特化されたハードウェアにより、PTP
はメッセージ転送の遅延を考慮し、時間同期の精度を大幅に高めます。ネットワーク内で PTP 以外に対応するハードウェアコンポーネントを使用することは可能ですが、その場合、変動が増えたり、遅れが非対称となったりして、同期が不正確になります。これにより、通信パスで使用される複数の非 PTP 対応コンポーネントが追加されます。可能な限りの精度を実現するには、PTP クロック間の全ネットワークコンポーネントが PTP
ハードウェアを有効にすることが推奨されます。ネットワークハードウェアが PTP
に対応していない大規模なネットワークでの時間同期は、NTP
に適している場合があります。
ハードウェア
PTP
サポートでは、NIC には独自のオンボードクロックがあります。これは受信および送信の PTP
メッセージのタイムスタンプで使用されます。PTP
マスターに同期しているオンボードクロックで、コンピューターのシステムクロックは NIC 上の PTP
ハードウェアクロックに同期されます。ソフトウェア PTP
サポートでは、システムクロックは PTP
メッセージのタイムスタンプに使用され、PTP
マスターに直接同期します。ソフトウェア PTP
サポートではオペレーティングシステムによる追加の PTP
パケット処理を必要としますが、ハードウェア PTP サポートでは、NIC が PTP
パケットの送受信時のタイムスタンプができるので、より優れた正確性が得られます。