PTPの時刻同期の仕組み。パケット解析して遅延測定してみた

本サイトはアフィリエイト広告を利用しています。
産業用イーサネット

PTPの時刻同期の仕組みである、遅延測定を確認してみました。

各メッセージをキャプチャして、タイムスタンプを調べています。

「伝送遅延時間」「オフセット時間」含めて解析した旨を紹介します。

 

スポンサーリンク

PTPの時刻同期の仕組み。パケット解析して遅延測定してみた

PTPの時刻同期の仕組みを確認してみました。

Wiresharkでパケットキャプチャして、タイムスタンプを測定しています。

どのようにPTPが遅延測定しているかを紹介していきます。

 

PTPの通信環境

テスト環境は「PTP対応のLANカード(NIC)」と「TSN対応のFPGAボード(KR260)」です。

PTPv2(gPTP)を利用している、TSNで通信させています。

今回はスレーブ側でWiresharkによるパケット解析を行いました。

  • PTP対応のLANカード(NIC)…Slave
  • TSN対応のFPGAボード(KR260)…Master

テスト内容としては下記記事で紹介しています。

TSNスイッチとして使えるFPGAの評価ボード(KR260)

TSNスイッチとして使えるFPGAの評価ボード(KR260)
XilinxのKR260というFPGAボードはTSNに対応しています。 更にTSN対応のRJ-45(LAN)コネクタが2つあります。 TSN スイッチとして、またエンドポイントとしても使えることを紹介します。

 

スレーブ側にてWiresharkのパケット解析

スレーブ側のPCにてWiresharkでパケット解析は簡単に可能です。

 

下記記事でもPTPのパケット解析しています。

※今回のマスター・スレーブを入れ替えた状態でのテストです。

Time-Sensitive Networking(TSN)をWiresharkで調べてみた

Time-Sensitive Networking(TSN)をWiresharkで調べてみた
Time-Sensitive Networking(TSN)のパケットを確認してみました。 TSNネットワークの極一部ですが、Wiresharkで調べています。 実行環境からTSN通信の中身まで紹介します。

 

参考にさせていただいた記事

PTPの伝送遅延の測定で参考にさせていただいたQiita記事は下記です。

 https://qiita.com/nkawabat/items/87223d4d8fbf633db958

また下記Intelの記事の図も分かりやすかったです。

 https://www.intel.com/content/www/us/en/docs/programmable/683567/21-3/ieee-1588-2002-timestamps.html

 

PTPで遅延時間の測定

パケットの一連の流れが分かるところを切り出して貼り付けています。

Master(マスター)・Slave(スレーブ)のSource名は下記表記です。

  • TSN対応のFPGAボード(KR260)…Master ※Source名→Xilinx_00:01:2e
  • PTP対応のLANカード(NIC)…Slave ※Source名→Shenzhen_52:9d:82

 

TSN通信のため、下記特徴が出ていました。

今回のPTP通信はFollow_Upメッセージ有りのTwo-step clock方式です。

  • ProtocolはPTP(v2) ※詳細にはgPTPというPTPv2の軽量版
  • DestinationはLLDP_Multicast ※L2(レイヤー2)のネットワーク層
  • Sync→Follow Up が続く。 ※Two-step clock方式
  • 端末(Peer)間の遅延調整Req→Resp→Resp_Follow_Up ※P2Pメカニズム

 

タイムスタンプからの計測

Frameの23~27での下記メッセージのタイムスタンプを確認しました。

・Sync Message
・Follow_Up Message
・Peer_Delay_Req Message
・Peer_Delay_Resp Message
・Peer_Delay_Resp_Follow_Up Message

 

使用したタイムスタンプは下記です。下記表の時間はn(ナノ)sです。

  • マスター側の時間はPTPの「OriginTimestamp」
  • スレーブ側の時間は「Epoch Time」
Xilinx_00:01:1e Shenzhen_52:9d:82
Master スレーブ
OriginTimestamp Epoch Time
SYNC 180369127 T2
Follow_Up 896086675 180369364 T1,T2
Peer_Delay_Req 205145754 T1,T2,T3
Peer_Delay_Resp 921131035 205372734 T1,T2,T3,T4
Peer_Delay_Resp_Follow_Up 921272795 205372954

 

秒単位含めた、各T1~T4の時間は下記です。

※「Master側のT1とT4」の時間が、実際の日時と大きくずれています。

偶に電源を入れる評価ボードのため、時刻が狂っているためです。

seconds nanoseconds
T1 1677920519 896086675
T2 1679228133 180369127
T3 1679228133 205145754
T4 1677920519 921131035

 

Master-Slave 間の平均伝送遅延(Mean Path Delay)は下記となりました。

  • Mean Path Delay = ((T2-T1) + (T4-T3))/2 = 133866.5 ns

SlaveのOffset時間に関しては下記となりました。

  • Offset = (T2-T1) - Mean Path Delay =  1307614 s  +  -715851414.5 ns

 

各パケットの詳細

各メッセージ(パケット)の詳細をこれ以降で残しておきます。

 

Sync Message

23 1.000627318 Xilinx_00:01:1e LLDP_Multicast PTPv2 60 Sync Message

 

Follow_Up Message

24 1.000627555 Xilinx_00:01:1e LLDP_Multicast PTPv2 90 Follow_Up Message

 

Peer_Delay_Req Message

25 1.025403945 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 68 Peer_Delay_Req Message

 

Peer_Delay_Resp Message

26 1.025630925 Xilinx_00:01:1e LLDP_Multicast PTPv2 68 Peer_Delay_Resp Message

 

Peer_Delay_Resp_Follow_Up Message

27 1.025631145 Xilinx_00:01:1e LLDP_Multicast PTPv2 68 Peer_Delay_Resp_Follow_Up Message

 

まとめ

PTPの時刻同期の仕組みを確認してみました。

各メッセージをキャプチャして、遅延測定することが出来ました。

 

下記記事にて、筆者個人でTSN(PTP)通信テストした内容をまとめています。

よろしければ一緒にご覧ください。(リンク先はこちら)

TSN通信の仕組みのまとめ。実際にテスト・調べてみた

TSN通信の仕組みのまとめ。実際にテスト・調べてみた
TSN(Time Sensitive Networking)について、開発・調査してみました。 今までに調べた内容を、一つの記事にまとめて紹介します。 個人でもTSNの環境構築から実装・通信テストまで可能です。

コメント