Кто-нибудь имел опыт работы с * .pcap манипуляциями с библиотеками? - PullRequest
0 голосов
/ 03 апреля 2010

Я использую библиотеки SharpPcap + PacketDotNet для обработки некоторых файлов .pcap и столкнулся с ошибкой в ​​способе вычисления временных меток.

Возьмите это свойство Timeval, которое выглядит примерно так:

PosixTimeval Timeval
{
    DateTime Date;
    ulong Seconds;
    ulong MicroSeconds;
}

Проблема заключается в следующем: Предположим, у вас есть открытая трассировка в Wireshark с одним из пакетов с отметкой времени «0,002». Как только вы открываете его в одной из ваших программ, он получает пакет, и его Timeval настраивается таким образом, чтобы Seconds = 0 и MicroSeconds = 002 = 2. Это сделано под капотом, поэтому, насколько я могу судить, избежать этого невозможно.

Мой вопрос заключается в том, является ли эта проблема общей для других библиотек (и, возможно, для всех?), Которые манипулируют форматом файла pcap, который, как мне кажется, построен на основе той же коллекции функций c / c ++, или это проблема только с теми, которые я использую.

1 Ответ

1 голос
/ 16 апреля 2010

Я автор sharppcap / packet.net.

Какую ошибку вы видите со значениями меток времени? Упомянутое вами обращение кажется правильным. 0,002 секунды - это 2 миллисекунды.

Значения метки времени должны соответствовать полному времени Unix, когда пакет был захвачен. Конечно, временной интервал 0,002 не имеет смысла как абсолютное время, только относительное.

Я добавлю модульный тест в sharppcap для проверки временного интервала пакета, если его еще нет.

...