「監査の要件で、取引の記録はUTCから1ms以内にそろえるよう求められました」
「5Gや放送の現場では、NTPではなくPTPを使うと聞きました。何が違うんですか?」
多くの業務システムは、NTPのミリ秒単位の精度で足ります(第1回)。でも、マイクロ秒の精度が要る分野では、PTP(Precision Time Protocol)が使われます。
第8回まででNTPを一通り見ました。第9回では、PTPの仕組みと、NTPとの使い分けを扱います。
PTPとは・NTPとの違い
PTP(Precision Time Protocol)は、IEEE 1588で定められた高精度の時刻同期の規格です。現行版はIEEE 1588-2019(PTPv2.1)で、2008年版(PTPv2)と互換性を保ちつつ、セキュリティの仕組みなどが加わりました。その後の追補をまとめる改訂も進んでいます。

NTPとの大きな違いは3つです。
- ネットワーク機器が同期に参加する:スイッチが境界クロックや透過クロックとして、中継の揺らぎを取り除く
- ハードウェアで時刻を刻む:NICやスイッチのハードウェアで送受信の時刻を刻む
- 最良の時計を自動で選ぶ:ネットワークの中で最良の時計(グランドマスター)を自動で選び、そこから配る
条件がそろえばマイクロ秒未満の精度が得られます。その代わり、経路上の機器とNICの対応が前提で、インターネット越しには使いません。
グランドマスターとBMCA
PTPで時刻の大元となる時計をグランドマスター(GM)と呼び、多くはGNSS受信機を内蔵した専用機です。

- どれがGMになるかは、BMCA(Best Master Clock Algorithm)で自動的に決まる
- 各時計はAnnounceメッセージで品質を知らせ、受け手は、管理者が決める優先度(priority1)、時計の状態(clockClass:GNSSに同期中か等)、精度、安定度、2つ目の優先度(priority2)、識別子の順に比べて最良のものを選ぶ
- GMがGNSSを失って品質が下がれば、予備のGMへ自動で切り替わる
- IEEE 1588g-2022で、master/slaveの代わりにtimeTransmitter/timeReceiverという用語も使えるようになり、BMCAはBTCAとも呼ばれる
priority1を最初に比べるので、主のGMは管理者が決められます。
境界クロックと透過クロック
普通のスイッチは、混み具合でパケットを待たせる時間が毎回変わり、この揺らぎがPTPの精度を落とす最大の要因です。PTP対応のスイッチは、2つの方法で対処します。

- 境界クロック(BC:Boundary Clock):上流のポートでは時刻を受ける側として自分の時計を合わせ、下流のポートでは時刻を配る側としてPTPを送り直す。区間ごとに区切るので、スイッチ内の待ち時間の影響を受けず、下流が多くてもGMの負荷が増えない
- 透過クロック(TC:Transparent Clock):PTPのパケットを中継しながら、スイッチの中にとどまった時間(滞留時間)を測って、パケットの補正フィールド(correctionField)に書き足す。受け手はその分を差し引いて揺らぎを取り除ける
- 通信事業者の網では、全ノードをBCにする構成(ITU-T G.8275.1)がよく使われる
非対応のスイッチをはさむと、その区間で精度が大きく落ちます。PTPを導入するときは、経路上のすべての機器を確認します。
Sync・Follow_Up・Delay_Req・Delay_Respの流れ
PTPの基本のやり取り(E2E方式)は、4つのメッセージで行います。

- 時刻を配る側がSyncを送り、送った時刻t1を記録する。受ける側は受け取った時刻t2を記録する
- 正確な送信時刻は送ってからでないと分からないため、2ステップ方式では続けてFollow_Upでt1を知らせる(ハードウェアが直接書き込む1ステップ方式もある)
- 受ける側がDelay_Reqを送り、送った時刻t3を記録する
- 配る側は受け取った時刻t4をDelay_Respで返す
これでNTPと同じく4つの時刻がそろい、片道の遅延は ((t2−t1)+(t4−t3))/2、時刻のずれは ((t2−t1)−(t4−t3))/2 と計算できます(NTPの計算は第3回)。行きと帰りの遅延が等しい前提も同じです。メッセージは、UDPの319番・320番か、Ethernetに直接載せて運ばれ、1秒に何度も交換します。
ハードウェアタイムスタンプ

- ソフトウェアでの時刻の記録は、割り込みやカーネルの処理待ちで数〜数十マイクロ秒揺らぐ。NICがパケットの通過の瞬間にハードウェアで時刻を刻むのが、ハードウェアタイムスタンプ
- NICは自分の時計(PHC:PTPハードウェアクロック、Linuxでは
/dev/ptp0)を持つ。PTPはまずPHCを合わせ、PHCからシステムの時計へ移す - NTPでも使える:chronyの
hwtimestampと、正確な送信時刻を後から伝えるinterleavedモード(xleave、RFC 9769、2025年)。RFC 10030(2026年8月)は、NTPをPTPのメッセージに包み、PTPにしか時刻を刻めないNICや透過クロックを、NTPでも使えるようにした - Windows:Windows Server 2019・Windows 10(1809)以降に、PTPのクライアントがある(UDP上のPTPv2、2ステップのみ)。NICの設定項目は
*PtpHardwareTimestamp
$ ethtool -T eth0 # 対応の確認(抜粋)
Capabilities:
hardware-transmit
hardware-receive
hardware-raw-clock
PTP Hardware Clock: 0
PS> Get-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword "*PtpHardwareTimestamp"
使われる場面と業界プロファイル
| 分野 | 規格・プロファイル | 精度の目安 | ねらい |
|---|---|---|---|
| 5G の基地局(TDD) | ITU-T G.8275.1(全ノードが BC)、G.8275.2(非対応の区間を含む) | UTC から ±1.5µs 程度 | 隣の基地局と送受信の切り替えをそろえ、干渉を防ぐ |
| 放送の IP 化 | SMPTE ST 2059-2(ST 2110 の映像・音声)、AES67(音声) | マイクロ秒 | 映像・音声を IP で送るときの同期 |
| 金融 | EU の MiFID II(委任規則 2017/574) | 高頻度取引は UTC から100µs・分解能1µs、そのほか1ms | 取引記録の時刻の正確さと証跡 |
| データセンター | IEEE 1588 の既定のプロファイル、Enterprise プロファイル(RFC 9760、2025年) | ナノ〜マイクロ秒 | 分散データベースの順序付け(Meta が2022年に PTP への移行を公表) |
| 産業・車載 | IEEE 802.1AS(gPTP、TSN) | マイクロ秒未満 | 時間を保証するネットワーク |
| 電力 | IEC/IEEE 61850-9-3、IEEE C37.238 | 1µs 程度 | 変電所の保護・計測 |
プロファイルは、PTPの選択肢(メッセージの間隔、マルチキャストかユニキャストか、BMCAの規則など)を分野ごとに決めたものです。同じPTPでもプロファイルが違うと通じないため、機器の選定ではプロファイルの対応を確認します。
Linuxのptp4l・phc2sys(linuxptp)
$ sudo ptp4l -i eth0 -s -m # -s:時刻を受けるだけ、-m:画面に表示
(抜粋)ptp4l[…]: master offset -4552 s2 freq -30035 path delay 10385
$ sudo phc2sys -s eth0 -c CLOCK_REALTIME -w -m
$ sudo pmc -u -b 0 'GET CURRENT_DATA_SET'

- linuxptp(RHEL・Ubuntuのパッケージ
linuxptp)に含まれる。ptp4lがPTPのやり取りをしてNICのPHCを合わせ、phc2sysがPHCからシステムの時計(CLOCK_REALTIME)へ移す。pmcで状態を問い合わせる - PTPの時刻はTAI(UTCより37秒進む。第2回)で運ばれ、UTCとの差はAnnounceで配られる。phc2sysの
-wはptp4lの同期を待ち、その差を使って補正する - chronyと併用するなら、システムの時計を合わせるのはどちらか1つにする。chronyの
refclock PHC /dev/ptp0でPHCを時刻源にし、NTPを予備にする構成もある master offsetはずれ(ナノ秒)、s2は同期がとれた状態(s0:未同期、s1:時刻を合わせた直後)、path delayは片道の遅延。Windowsではw32tmのPTPクライアントを使う(前の節)
NTPとPTPの使い分け(クラウドを含む)
| 要件・環境 | 選ぶもの | 精度の目安 | 注意点 |
|---|---|---|---|
| 一般のサーバー・端末・AD | NTP(chrony・w32time) | ミリ秒〜数十マイクロ秒(LAN) | 大半はこれで足りる |
| 監査で UTC から1ms以内 | NTP の高精度設定(Windows は第5回)または PTP | 1ms | 経路のホップ数を減らし、証跡を残す |
| 5G・放送・高頻度取引 | PTP(対応スイッチ・GM) | 1µs 未満 | 経路全体の対応が必要 |
| NTP しか通らない混在環境 | NTP+ハードウェアタイムスタンプ(hwtimestamp・xleave) | マイクロ秒未満も可 | サーバーとクライアントの NIC の対応が必要 |
| AWS(対応インスタンス) | Amazon Time Sync の PHC(/dev/ptp_ena) | マイクロ秒 | Linux のみ。PHC はスメアしない |
| Azure | ホストの PHC(/dev/ptp_hyperv) | ホストの時計に準じる | ネットワークに PTP は流れない |
冒頭の「UTCから1ms以内」は、NTPの高精度設定かPTPのどちらかで狙えます。大事なのは、経路のホップ数を減らすことと、精度を満たしていた証跡を残すことです(第11回の問4)。
クラウドの「PTPハードウェアクロック」は、ホストの正確な時計を仮想マシンにPHCとして見せるもので、利用者がPTPのネットワークを組むものではありません(第7回)。AWSはClockBoundで、時刻とその誤差の範囲も取得できます。
PTPを導入する前に確かめること
PTPは、NTPのように「サーバーを1台立てれば終わり」ではありません。経路全体の準備が要ります。
- 要件:UTCからどれだけの精度が必要か、それをどう示すか(証跡)を先に決める。1ms程度ならNTPの見直しで足りることも多い(第5回・第7回)
- グランドマスター:GNSS受信機付きの専用機を2台。priority1で主と予備を決め、ホールドオーバーの性能を確かめる
- スイッチ:経路上のすべてのスイッチがBCかTCに対応しているか。非対応の区間があるなら、G.8275.2のような部分対応のプロファイルを検討する
- プロファイル:GM・スイッチ・クライアントが同じプロファイルに対応しているか(ドメイン番号、メッセージの間隔、マルチキャストかユニキャストか)
- NIC とOS:
ethtool -Tでハードウェアタイムスタンプに対応しているか。Linuxはlinuxptp、WindowsはPTPクライアントの条件(UDP上・2ステップ)を確かめる - 監視と予備:ptp4lのoffsetと状態(s2か)を監視し、PTPが止まったときにNTPへ切り替える構成(chronyの
refclock PHC+NTPのserverなど)を用意する - セキュリティ:PTPのメッセージは、通常は認証されない。PTPを流すネットワークは、時刻の配信専用のVLANなどに閉じる
特に3と4は、「スイッチを1台入れ替えたら精度が落ちた」「別の部署のPTP機器と通じない」という形で、後から問題になりがちです。
考えてみよう
- 自社のシステムで、時刻の精度(UTCからの許容差)の要件が決まっているものはありますか。決まっていなければ、誰がどう決めるべきでしょうか。
- PTPを導入するとき、経路上のスイッチがPTPに対応していないと何が起きますか。BCとTCのどちらを選びますか。
- EC2でPHCとNTPを併用している構成で、うるう秒の告知が出たらどうしますか。
ヒント:この記事のBC・TCの図、業界プロファイルの表、NTPとPTPの使い分けの表、第7回のスメアの表が手がかりです。Linuxではethtool -TでNICの対応を、WindowsではNICの詳細設定の*PtpHardwareTimestampを確認します。
まとめ
- PTP(IEEE 1588-2019)は、スイッチが補正に加わり、NICがハードウェアで刻むことでマイクロ秒未満を実現する
- 大元のグランドマスターは、BMCAでAnnounceの品質を比べて自動で選ぶ。priority1で主を決められる
- BCは区間を分け、TCは滞留時間を申告する。非対応のスイッチで精度が落ちる
- 4つのメッセージでt1〜t4をそろえる。行きと帰りが等しい前提はNTPと同じ
- 分野ごとのプロファイルが違うと通じない
- Linuxはptp4l(PHC)→ phc2sys(システムの時計)。chronyと二重にしない
- 大半はNTPで足りる。1ms以内は経路と証跡を見直し、1µs未満はPTP
次回は、「時刻が合わない」と言われたときの切り分けを扱います。
連載「NTP入門」全11回
全回の目次と、読む順番・目的別の読み方は、NTP入門の入口のページにまとめています。
- なぜ時刻同期が必要か
- 時刻の基礎知識
- NTPの仕組み
- Linuxの時刻同期(chrony)
- Windowsの時刻同期
- ネットワーク機器・仮想基盤
- 設計と推奨構成
- NTPのセキュリティ
- PTPと高精度同期(この記事)
- 時刻同期のトラブルシュート
- 時刻同期の設計演習


コメント