2010-04-03 11 views
0

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

Возьмите эту формата: первый формат свойство, которое является чем-то вдоль этих линий:

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

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

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

ответ

1

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

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^