T-shark — это мощный аналог Wireshark, инструмента для захвата пакетов, работающий с командной строкой.
На базовом уровне детализации вы получаете одну текстовую строку на пакет, содержащую лишь некоторую основную информацию. Пример:
tshark -n -i eth1
Это дает:
1 0.000000000 ec:46:70:00:fc:ad – 01:1b:19:00:00:00 PTPv2 124 Объявить сообщение
2 0.364764469 00:60:e9:2e:bd:f8 - 01:80:c2:00:00:0e PTPv2 68 Path_Delay_Req Сообщение
3 0.364796580 00:0b:ab:45:b4:d0 â 01:80:c2:00:00:0e PTPv2 68 Path_Delay_Resp Сообщение
4 0.364830284 00:0b:ab:45:b4:d0 â 01:80:c2:00:00:0e PTPv2 68 Path_Delay_Resp_Follow_Up Message
5 0.704678057 00:0b:ab:45:b4:d0 ≈ 01:80:c2:00:00:0e PTPv2 68 Path_Delay_Req Сообщение
6 0.720285509 00:60:e9:2e:bd:f8 – 01:80:c2:00:00:0e PTPv2 68 Path_Delay_Resp Сообщение
7 0.729102466 00:60:e9:2e:bd:f8 â 01:80:c2:00:00:0e PTPv2 68 Path_Delay_Resp_Follow_Up Message
8 0.757962110 ec:46:70:00:fc:ad – 01:1b:19:00:00:00 PTPv2 60 Сообщение синхронизации
9 0.767993002 ec:46:70:00:fc:ad – 01:1b:19:00:00:00 PTPv2 60 Follow_Up Message
10 1.000119946 ec:46:70:00:fc:ad – 01:1b:19:00:00:00 PTPv2 124 Объявление сообщения
Если вы вызываете tshark с аргументом -V, он становится многословным = анализирует содержимое пакетов. Например. для PTP я получаю, может быть, две страницы расчлененного списка на пакет. Короткий фрагмент, например:
Протокол точного времени (IEEE1588)
0000 .... = транспортспецифический: 0x0
...0 .... = соответствие 802.1as: False
.... 1011 = messageId: Объявить сообщение (0xb)
.... 0010 = версияPTP:2
длина сообщения: 110
номер поддомена: 0
флаги: 0x003c
0... .... .... .... = PTP_SECURITY: False
.0.. .... .... .... = Профиль PTP Конкретный 2: False
..0. .... .... .... = конкретный профиль PTP 1: False
.... .0.. .... .... = PTP_UNICAST: False
.... ..0. .... .... = PTP_TWO_STEP: Ложь
...и т.д. Подробный дамп действительно является обоями.
Вы также можете выбрать отдельные поля для печати, используя аргументы -T и -e. Пример:
tshark -i eth1 -T fields -e ptp.v2.messageid -e ptp.v2.sequenceid -e ptp.v2.correction.ns
Это может дать:
2 2087 0
3 2087 0
10 2087 0
0 14206 13255
8 14206 0
Обратите внимание, что поле messageId, первый столбец выше, печатается числовым (и десятичным). Обратите внимание, что это конкретное поле кодирует «тип сообщения». Например, 0xB кодирует сообщение Announce Message. Wireshark/T-shark знают, как это интерпретировать, и дают вам текстовое описание в расширенном подробном выводе. Кроме того, в компактном выводе по умолчанию (одна строка на пакет) вы также интерпретируете этот messageId. Wireshark с графическим интерфейсом имеет столбец Info в сетке, который содержит эту текстовую интерпретацию типа сообщения.
Только...как мне запросить эту текстовую интерпретацию ptp.v2.messageid при использовании настраиваемого вывода «полей» с использованием -T и -e ? Либо интерпретация, соответствующая конкретному полю ptp.v2.messageid, либо производное поле «Информация». Там в любом случае?
Я использую свои конкретные примеры, но вопрос, возможно, шире = как запросить у tshark текстовую интерпретацию конкретного поля с помощью -T/-e.