Я пытаюсь реконструировать устройство сбора данных, подключенное через USB, для своих целей. Таким образом, я собрал .pacapng
в Wireshark и работаю над синтаксическим анализом пакетов для извлечения данных с разрешением по времени в python. Я думаю, что сузил пакеты, содержащие данные, до повторяющихся пакетов размером 494439 байт с заголовком 2919 байт и 240 различных "мини-пакетов" данных по 2048 байт изохронных данных. Структура USB-пакетов в вопросах выглядит так:
| --предыдущие кадры | - Фрейм Wireshark (494439 байт) | --header (2919 байт) | - Пакет данных ISO 1 (2048 байт) | - Пакет данных ISO 2 (2048 байт) | - (...) | - Пакет данных ISO 240 (2048 байт) | --next frames
Внутри 2919-байтового заголовка есть несколько частей важной информации, включая следующие два числа:
- Начальный кадр изохронной передачи (ISF)
- Число пакетов изохронной передачи (INP)
Глядя на эти числа между пакетами в общем pcap, я замечаю, что ISF увеличивается на 30, а INP остается 240. Я подумал, что начальный кадр использовался для синхронизации «мини-пакетов» с определенным c местом во времени, хотя это, похоже, не так, поскольку количество «мини-пакетов» на кадр больше, чем приращение начального кадра . Мои вопросы:
- Что такое начальный кадр и как его использовать для правильного восстановления данных временных рядов на функциональном устройстве?
- В зависимости от ответа на первый вопрос , как порядок «мини-пакетов» в кадре (и общий порядок кадров) соотносится с порядком, в котором они были записаны на устройстве сбора данных?