Time-Sensitive Networking(TSN)のパケットを確認してみました。
TSNネットワークの極一部ですが、Wiresharkで調べています。
実行環境からTSN通信の中身(プロトコル・パケット)まで紹介します。
Time-Sensitive Networking(TSN)をWiresharkで調べてみた
Time-Sensitive Networking(TSN)について調べてみました。
実際にTSN通信している中で、Wiresharkでパケットキャプチャしました。
どのようなプロトコル・パケットの中身だったか含めて紹介します。
TSNの通信環境
テスト環境は「PTP対応のLANカード(NIC)」と「TSN対応のFPGAボード(KR260)」です。
- PTP対応のLANカード(NIC)…Master
- TSN対応のFPGAボード(KR260)…Slave
PTP対応のLANカード(NIC)の詳細については下記記事で紹介しています。
IEEE-1588/PTP対応のLANカード(NIC)を動かしてみた
またTSNに対応のFPGAボード(KR260)に関しては下記記事で紹介しています。
TSNの時刻同期について下記記事で紹介しています。
PTP対応したLANカードへのWiresharkの使い方も一緒に説明しています。
TSNの時刻同期の仕組み。IEEE 802.1QBVを試してみた
TSNイーサネットをパケットキャプチャする
今回はTSN通信が確立した段階で、Wiresharkにてパケットキャプチャしています。
特にデータは送信していない状態を測定しています。
ただTSN通信中は伝送遅延の測定のため、メッセージ・パケットが飛び交っています。
Wiresharkの画面を見ると、下記の形です。
ほんの一部箇所ですが、TSNのパケット一覧と詳細を確認していきます。
主に伝送遅延を測定している下記箇所を中心に見てみました。
・Follow_Up Message
・Peer_Delay_Req Message
・Peer_Delay_Resp Message
・Peer_Delay_Resp_Follow_Up Message
パケットの一覧
パケットの一連の流れが分かるところを切り出して貼り付けています。
Master(マスター)・Slave(スレーブ)のSource名は下記表記です。
- PTP対応のLANカード(NIC)…Master ※Source名→Shenzhen_52:9d:82
- TSN対応のFPGAボード(KR260)…Slave ※Source名→Xilinx_00:01:2e
確認すると、主なTSN通信の特徴が出ていました。
- ProtocolはPTP(v2) ※詳細にはgPTPというPTPv2の軽量版
- DestinationはLLDP_Multicast ※L2(レイヤー2)のネットワーク層
- Sync→Follow Up が続く。 ※FOLLOW_UPメッセージ
- 端末(Peer)間の遅延調整Req→Resp→Resp_Follow_Up ※P2Pメカニズム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
Summary No. Time Source Destination Protocol Length Info 1 0.000000000 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 58 Sync Message 2 0.000174983 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 90 Follow_Up Message 3 0.125300587 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 58 Sync Message 4 0.125531406 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 90 Follow_Up Message 5 0.250403092 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 58 Sync Message 6 0.250472578 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 90 Follow_Up Message 7 0.375716230 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 58 Sync Message 8 0.375960516 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 90 Follow_Up Message 9 0.416877165 Xilinx_00:01:2e LLDP_Multicast PTPv2 68 Peer_Delay_Req Message 10 0.417025390 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 68 Peer_Delay_Resp Message 11 0.417247412 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 68 Peer_Delay_Resp_Follow_Up Message 12 0.500946729 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 58 Sync Message 13 0.501137761 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 90 Follow_Up Message 14 0.626243271 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 58 Sync Message 15 0.626448279 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 90 Follow_Up Message 16 0.751507776 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 58 Sync Message 17 0.751614653 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 90 Follow_Up Message 18 0.793432990 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 68 Peer_Delay_Req Message 19 0.793641806 Xilinx_00:01:2e LLDP_Multicast PTPv2 68 Peer_Delay_Resp Message 20 0.793742217 Xilinx_00:01:2e LLDP_Multicast PTPv2 68 Peer_Delay_Resp_Follow_Up Message 21 0.876812479 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 58 Sync Message 22 0.877045171 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 90 Follow_Up Message |
TSN通信の特徴・設定に関しては下記記事でも紹介しています
TSNとPTPの違いは?通信テストの設定・ログから確認してみた
Sync Message
各メッセージの詳細も紹介していきます。
最初にSync Messageです。ネットワークの伝送遅延時間の測定に必要なものです。
7 0.375716230 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 58 Sync Message
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
Frame 7: 58 bytes on wire (464 bits), 58 bytes captured (464 bits) on interface enp4s0, id 0 Interface id: 0 (enp4s0) Encapsulation type: Ethernet (1) Arrival Time: Mar 11, 2023 06:43:03.349482690 JST [Time shift for this packet: 0.000000000 seconds] Epoch Time: 1678484583.349482690 seconds [Time delta from previous captured frame: 0.125243652 seconds] [Time delta from previous displayed frame: 0.125243652 seconds] [Time since reference or first frame: 0.375716230 seconds] Frame Number: 7 Frame Length: 58 bytes (464 bits) Capture Length: 58 bytes (464 bits) [Frame is marked: False] [Frame is ignored: False] [Protocols in frame: eth:ethertype:ptp] [Coloring Rule Name: Broadcast] [Coloring Rule String: eth[0] & 1] Ethernet II, Src: Shenzhen_52:9d:82 (6c:b3:11:52:9d:82), Dst: LLDP_Multicast (01:80:c2:00:00:0e) Destination: LLDP_Multicast (01:80:c2:00:00:0e) Address: LLDP_Multicast (01:80:c2:00:00:0e) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) .... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast) Source: Shenzhen_52:9d:82 (6c:b3:11:52:9d:82) Address: Shenzhen_52:9d:82 (6c:b3:11:52:9d:82) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) Type: PTPv2 over Ethernet (IEEE1588) (0x88f7) Precision Time Protocol (IEEE1588) 0001 .... = transportSpecific: 0x1 .... 0000 = messageId: Sync Message (0x0) 0000 .... = Reserved: 0 .... 0010 = versionPTP: 2 messageLength: 44 subdomainNumber: 0 Reserved: 0 flags: 0x0200 correction: 0.000000 nanoseconds Reserved: 0 ClockIdentity: 0x6cb311fffe529d82 SourcePortID: 1 sequenceId: 435 control: Sync Message (0) logMessagePeriod: -3 originTimestamp (seconds): 0 originTimestamp (nanoseconds): 0 |
Follow_Up Message
次にFollow_Up Messageです。より高精度に伝送遅延時間の測定できます。
8 0.375960516 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 90 Follow_Up Message
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
Frame 8: 90 bytes on wire (720 bits), 90 bytes captured (720 bits) on interface enp4s0, id 0 Interface id: 0 (enp4s0) Encapsulation type: Ethernet (1) Arrival Time: Mar 11, 2023 06:43:03.349726976 JST [Time shift for this packet: 0.000000000 seconds] Epoch Time: 1678484583.349726976 seconds [Time delta from previous captured frame: 0.000244286 seconds] [Time delta from previous displayed frame: 0.000244286 seconds] [Time since reference or first frame: 0.375960516 seconds] Frame Number: 8 Frame Length: 90 bytes (720 bits) Capture Length: 90 bytes (720 bits) [Frame is marked: False] [Frame is ignored: False] [Protocols in frame: eth:ethertype:ptp] [Coloring Rule Name: Broadcast] [Coloring Rule String: eth[0] & 1] Ethernet II, Src: Shenzhen_52:9d:82 (6c:b3:11:52:9d:82), Dst: LLDP_Multicast (01:80:c2:00:00:0e) Destination: LLDP_Multicast (01:80:c2:00:00:0e) Address: LLDP_Multicast (01:80:c2:00:00:0e) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) .... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast) Source: Shenzhen_52:9d:82 (6c:b3:11:52:9d:82) Address: Shenzhen_52:9d:82 (6c:b3:11:52:9d:82) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) Type: PTPv2 over Ethernet (IEEE1588) (0x88f7) Precision Time Protocol (IEEE1588) 0001 .... = transportSpecific: 0x1 .... 1000 = messageId: Follow_Up Message (0x8) 0000 .... = Reserved: 0 .... 0010 = versionPTP: 2 messageLength: 76 subdomainNumber: 0 Reserved: 0 flags: 0x0000 correction: 0.000000 nanoseconds Reserved: 0 ClockIdentity: 0x6cb311fffe529d82 SourcePortID: 1 sequenceId: 435 control: Follow_Up Message (2) logMessagePeriod: -3 preciseOriginTimestamp (seconds): 1678484583 preciseOriginTimestamp (nanoseconds): 97941120 Follow Up information TLV |
Peer_Delay_Req Message
Peer_Delay_Req Messageです。
このメッセージではスレーブのFPGAボード(KR260)側から遅延測定の要求しています。
※後のNo18のメッセージのように、マスター側のLANカードからも要求する場合もあります。
9 0.416877165 Xilinx_00:01:2e LLDP_Multicast PTPv2 68 Peer_Delay_Req Message
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
Frame 9: 68 bytes on wire (544 bits), 68 bytes captured (544 bits) on interface enp4s0, id 0 Interface id: 0 (enp4s0) Encapsulation type: Ethernet (1) Arrival Time: Mar 11, 2023 06:43:03.390643625 JST [Time shift for this packet: 0.000000000 seconds] Epoch Time: 1678484583.390643625 seconds [Time delta from previous captured frame: 0.040916649 seconds] [Time delta from previous displayed frame: 0.040916649 seconds] [Time since reference or first frame: 0.416877165 seconds] Frame Number: 9 Frame Length: 68 bytes (544 bits) Capture Length: 68 bytes (544 bits) [Frame is marked: False] [Frame is ignored: False] [Protocols in frame: eth:ethertype:ptp] [Coloring Rule Name: Broadcast] [Coloring Rule String: eth[0] & 1] Ethernet II, Src: Xilinx_00:01:2e (00:0a:35:00:01:2e), Dst: LLDP_Multicast (01:80:c2:00:00:0e) Destination: LLDP_Multicast (01:80:c2:00:00:0e) Source: Xilinx_00:01:2e (00:0a:35:00:01:2e) Type: PTPv2 over Ethernet (IEEE1588) (0x88f7) Precision Time Protocol (IEEE1588) 0001 .... = transportSpecific: 0x1 .... 0010 = messageId: Peer_Delay_Req Message (0x2) 0000 .... = Reserved: 0 .... 0010 = versionPTP: 2 messageLength: 54 subdomainNumber: 0 Reserved: 0 flags: 0x0000 correction: 0.000000 nanoseconds Reserved: 0 ClockIdentity: 0x000a35fffe00012e SourcePortID: 1 sequenceId: 56 control: Other Message (5) logMessagePeriod: 0 |
Peer_Delay_Resp Message
Peer_Delay_Resp Messageです。
スレーブ側からの遅延測定のためのメッセージに対して、マスター側が応答しています。
10 0.417025390 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 68 Peer_Delay_Resp Message
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
Frame 10: 68 bytes on wire (544 bits), 68 bytes captured (544 bits) on interface enp4s0, id 0 Interface id: 0 (enp4s0) Encapsulation type: Ethernet (1) Arrival Time: Mar 11, 2023 06:43:03.390791850 JST [Time shift for this packet: 0.000000000 seconds] Epoch Time: 1678484583.390791850 seconds [Time delta from previous captured frame: 0.000148225 seconds] [Time delta from previous displayed frame: 0.000148225 seconds] [Time since reference or first frame: 0.417025390 seconds] Frame Number: 10 Frame Length: 68 bytes (544 bits) Capture Length: 68 bytes (544 bits) [Frame is marked: False] [Frame is ignored: False] [Protocols in frame: eth:ethertype:ptp] [Coloring Rule Name: Broadcast] [Coloring Rule String: eth[0] & 1] Ethernet II, Src: Shenzhen_52:9d:82 (6c:b3:11:52:9d:82), Dst: LLDP_Multicast (01:80:c2:00:00:0e) Destination: LLDP_Multicast (01:80:c2:00:00:0e) Source: Shenzhen_52:9d:82 (6c:b3:11:52:9d:82) Type: PTPv2 over Ethernet (IEEE1588) (0x88f7) Precision Time Protocol (IEEE1588) 0001 .... = transportSpecific: 0x1 .... 0011 = messageId: Peer_Delay_Resp Message (0x3) 0000 .... = Reserved: 0 .... 0010 = versionPTP: 2 messageLength: 54 subdomainNumber: 0 Reserved: 0 flags: 0x0200 correction: 0.000000 nanoseconds Reserved: 0 ClockIdentity: 0x6cb311fffe529d82 SourcePortID: 1 sequenceId: 56 control: Other Message (5) logMessagePeriod: 127 requestreceiptTimestamp (seconds): 1678484583 requestreceiptTimestamp (nanoseconds): 138839030 requestingSourcePortIdentity: 0x000a35fffe00012e requestingSourcePortId: 1 |
Peer_Delay_Resp_Follow_Up Message
Peer_Delay_Resp_Follow_Up Messageです。
高精度に遅延測定するために、Respの後にもFollowupメッセージを送ります。
11 0.417247412 Shenzhen_52:9d:82 LLDP_Multicast PTPv2 68 Peer_Delay_Resp_Follow_Up Message
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
Frame 11: 68 bytes on wire (544 bits), 68 bytes captured (544 bits) on interface enp4s0, id 0 Interface id: 0 (enp4s0) Encapsulation type: Ethernet (1) Arrival Time: Mar 11, 2023 06:43:03.391013872 JST [Time shift for this packet: 0.000000000 seconds] Epoch Time: 1678484583.391013872 seconds [Time delta from previous captured frame: 0.000222022 seconds] [Time delta from previous displayed frame: 0.000222022 seconds] [Time since reference or first frame: 0.417247412 seconds] Frame Number: 11 Frame Length: 68 bytes (544 bits) Capture Length: 68 bytes (544 bits) [Frame is marked: False] [Frame is ignored: False] [Protocols in frame: eth:ethertype:ptp] [Coloring Rule Name: Broadcast] [Coloring Rule String: eth[0] & 1] Ethernet II, Src: Shenzhen_52:9d:82 (6c:b3:11:52:9d:82), Dst: LLDP_Multicast (01:80:c2:00:00:0e) Destination: LLDP_Multicast (01:80:c2:00:00:0e) Source: Shenzhen_52:9d:82 (6c:b3:11:52:9d:82) Type: PTPv2 over Ethernet (IEEE1588) (0x88f7) Precision Time Protocol (IEEE1588) 0001 .... = transportSpecific: 0x1 .... 1010 = messageId: Peer_Delay_Resp_Follow_Up Message (0xa) 0000 .... = Reserved: 0 .... 0010 = versionPTP: 2 messageLength: 54 subdomainNumber: 0 Reserved: 0 flags: 0x0000 correction: 0.000000 nanoseconds Reserved: 0 ClockIdentity: 0x6cb311fffe529d82 SourcePortID: 1 sequenceId: 56 control: Other Message (5) logMessagePeriod: 127 responseOriginTimestamp (seconds): 1678484583 responseOriginTimestamp (nanoseconds): 139245728 requestingSourcePortIdentity: 0x000a35fffe00012e requestingSourcePortId: 1 |
まとめ
Time-Sensitive Networking(TSN)のパケットをWiresharkで確認してみました。
TSN通信の中身(プロトコル・パケット)まで解析できています。
下記記事にて、筆者個人でTSN通信テストした内容をまとめています。
よろしければ一緒にご覧ください。(リンク先はこちら)
コメント