TSNとPTPの違いは?通信テストの設定・ログから確認してみた

本サイトはアフィリエイト広告を利用しています。
FPGA

TSNの環境構築して、PTPの通信テストを行いました。

そしてテストしたPTPの設定が、TSNの規格に適応しているのか確認してみました。

設定・ログを見直しながら、PTPとTSNの違いを確認した内容を紹介します。

 

スポンサーリンク

TSNとPTPの違いは?通信テストの設定・ログから確認してみた

TSNとPTPの違いについて、Wikipediaの情報をそのまま使うと下記になります。

TSN…Time Sensitive Networking

→オーディオ/ビデオ ストリーミングや自動車または産業用制御設備で使用される

リアルタイム制御を備えた統合ネットワーク

PTP…Precision Time Protocol

→コンピュータネットワーク全体でクロックを同期させるために使用される通信プロトコル

 

TSNにはPTPが使われています。ただ文章だけだと(筆者含めて)イメージしにくいです。

個人の趣味レベルですが、実際の通信テストの設定・ログを見直して確認してみました。

  • TSNでPTPのどの機能・設定で使われているか
  • テストしたPTP通信が、本当にTSNの規格に対応しているのか

 

TSNの通信テストと環境

TSNの通信テストと環境構築に関しては下記記事で実施・紹介しています。

TSN Ethernetの実装をFPGA(KR260)で試してみた

TSN Ethernetの実装をFPGA(KR260)で試してみた
TSN(Time Sensitive Networking)のイーサネット環境を作ってみました。 KR260というTSN対応のFPGAボードを使ってテストしています。 TSNの環境構築から実装・通信テストまで一連の流れを紹介します。

 

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

PTP対応のLANカード(NIC)の詳細については下記記事で紹介しています。

IEEE-1588/PTP対応のLANカード(NIC)を動かしてみた

IEEE-1588/PTP対応のLANカード(NIC)を動かしてみた
IEEE-1588/PTP対応のLANカード(NIC)を購入してみました。 実際にPCにカードを取り付けて、PTPの動作確認まで実施しています LANカード(NIC)の選定から、PTP通信までの内容を紹介します。

 

またTSNに対応のFPGAボード(KR260)に関しては下記記事で紹介しています。

KR260を購入してUbuntuを動かすまでのメモ

KR260を購入してUbuntuを動かすまでのメモ
XilinxのKria KR260のロボティクス スターター キットを買ってみました。 Digi-Keyから個人で購入しています。 Ubuntuを動かすまでの流れを紹介します。

 

TSN(IEEE 802.1AS)について

TSN(Time Sensitive Networking)は対応した規格があります。IEEE 802.1ASです。

 

※別記事になりますが、TSNの時刻同期に関連するIEEE 802.1QBVも調査しています。

TSNの時刻同期の仕組み。IEEE 802.1QBVを試してみた

TSNの時刻同期の仕組み。IEEE 802.1QBVを試してみた
TSNの時刻同期の仕組みの重要なポイントである、IEEE 802.1QBVを試してみました。 通信トラフィックをスケジューリングする仕様を確認しています。 実際の通信テストから解析方法まで紹介します。

 

TSNの規格書は有料

本来は正式な規格を確認していくのが良いのですが…規格書は有料です。

一応、IEEEの正式なサイトから購入できます。(リンク先はこちら)

今回は個人の趣味の確認レベルですので、既にネットにある情報を頼ります。

 

ITmedia様の下記記事によりTSNの規格の特徴が記載されていました。

 https://monoist.itmedia.co.jp/mn/articles/2203/28/news007.html

  • 1マイクロ秒(100万分の1秒)以下の時刻同期精度
  • レイヤー2のPTPメッセージの使用
  • Peer-to-peerメカニズムの使用
  • 2ステップクロック(FOLLOW_UPメッセージ)の使用
  • gPTPドメインの使用は1つのみ
  • BMCA(Best Master Clock Algorithm)の使用

 

上記6つのTSNの特徴を、テストしたPTP通信が満たせているかの観点で確認します。

実際のテストの内容・詳細に関しては下記記事をご確認下さい。

TSN Ethernetの実装をFPGA(KR260)で試してみた

 

通信テストに使ったconfig(設定)ファイル

PTP通信テストで使ったマスター側のconfig(設定)ファイルが下記となります。

 

スレーブ側のconfig(設定)ファイルが下記となります。

 

1us秒以下の時刻同期精度

通信テストの結果、時刻同期精度は1us以下の「n(ナノ)s秒単位」でした。→OK

PTP通信開始始めはオフセット値が莫大な値となっていますが、徐々に収束しています。

一桁のn(ナノ)秒単位で時刻同期の精度が取れていることが分かります。

  • ptp4l[478.059]: rms 6 max 11 freq -4173 +/- 8 delay 182 +/- 0

 

PTP通信のスレーブのログではマスタークロックと同期オフセットの各値も出力されます。

 

レイヤー2のPTPメッセージの使用

PTP通信で使用したconfigファイルの設定から確認できます。

L2、もしくはUDPv4, UDPv6が使われると思います。

マスター・スレーブ共にL2(レイヤー2)のネットワーク層を使用していました。→OK

  • network_transport L2

 

P2Pメカニズムの使用

P2Pメカニズムの設定もconfigファイルから確認できます。

P2P、もしくはE2Eが選択できます。

マスター・スレーブ共にP2Pメカニズムを使用していました。→OK

  • delay_mechanism P2P

 

2ステップクロック(FOLLOW_UPメッセージ)の使用

FOLLOW_UPメッセージの設定もconfigファイルから確認できます。

0(disabled)か1(enabled)が選択できます。

マスター・スレーブ共に1(enabled)で、FOLLOW_UPメッセージ使用していました。→OK

  • follow_up_info 1

 

gPTPドメインの使用は1つのみ

最初にgPTPを使用しているかを確認します。

今回linuxptpというパッケージのptp4lを利用してPTP通信していました。

linuxptpのデフォルトのgPTPのconfigファイルが下記になります。

 https://github.com/richardcochran/linuxptp/blob/master/configs/gPTP.cfg

 

上記を確認すると今回のコンフィグ設定とほぼ同じであることが分かります。→OK

(というかXilinxの公式もこのgPTP.cfgファイルをベースに作ったと思われます)

 

またマスター1台とスレーブ1台の2台構成なので当然になりますが、ドメインも一つです。

マスターのクロックを基準に動作しています。

 

BMCA(Best Master Clock Algorithm)の使用

BMCAが動作していることは、ログ・設定ファイルから分かります。

コンフィグファイルは下記設定となっており、マスター側が小さい値を持っています。

  • マスター(ptp4l_master.conf)…priority1 248 priority2 249
  • スレーブ(ptp4l_slave.conf)…priority1 250 priority2 251

 

BMCAが使用されると、priorityの値が小さい方がマスタークロックとなります。

スレーブのptp4lのログを見ると、BMCAを使用してbest master clockを使っています。→OK

port 1: new foreign master 6cb311.fffe.529d82-1

selected best master clock 6cb311.fffe.529d82

 

まとめ

PTP通信テストをした設定が、TSN規格の特徴を満たしていることが分かりました。

(規格書でのレベルではありませんが、個人の趣味レベルでは確認できました。)

TSNでPTPのどの機能・設定で使われているか、参考にしてもらえれば幸いです。

 

次の記事でKR260のTSNスイッチとしての設定、マスターとして通信を確認しました。

是非一緒にご覧ください。(リンク先はこちら)

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

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

コメント