Я использую библиотеки SharpPcap + PacketDotNet для обработки некоторых файлов .pcap и столкнулся с ошибкой в способе вычисления временных меток.
Возьмите это свойство Timeval, которое выглядит примерно так:
PosixTimeval Timeval
{
DateTime Date;
ulong Seconds;
ulong MicroSeconds;
}
Проблема заключается в следующем: Предположим, у вас есть открытая трассировка в Wireshark с одним из пакетов с отметкой времени «0,002». Как только вы открываете его в одной из ваших программ, он получает пакет, и его Timeval настраивается таким образом, чтобы Seconds = 0
и MicroSeconds = 002 = 2
. Это сделано под капотом, поэтому, насколько я могу судить, избежать этого невозможно.
Мой вопрос заключается в том, является ли эта проблема общей для других библиотек (и, возможно, для всех?), Которые манипулируют форматом файла pcap, который, как мне кажется, построен на основе той же коллекции функций c / c ++, или это проблема только с теми, которые я использую.