0

我正在使用 SharpPcap + PacketDotNet 库来处理一些 .pcap 文件,并在计算时间戳的方式中遇到了一个错误。

以这个 Timeval 属性为例,它是这样的:

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

问题如下:假设您在 Wireshark 中打开了一个跟踪,其中一个数据包的时间戳为“0.002”。一旦您在其中一个程序中打开它,它就会检索数据包并设置它的 Timeval,这样Seconds = 0MicroSeconds = 002 = 2. 这是在引擎盖下完成的,所以据我所知,没有办法避免它。

我的问题是,这个问题是否对其他操纵 pcap 文件格式的库(可能是所有库?)很常见,我认为这些库是围绕相同的 c/c++ 函数集合构建的,或者如果这只是一个问题我正在使用的那些。

4

1 回答 1

1

我是sharppcap/packet.net 的作者。

您在时间戳值中看到的错误是什么?你提到的转换似乎是正确的。0.002 秒是 2 毫秒。

时间戳值应该是捕获数据包时的完整 unix timeval。当然,0.002 的时间值作为绝对时间没有意义,只是相对时间。

如果还没有数据包时间,我将向 Sharppcap 添加一个单元测试来验证数据包时间。

于 2010-04-16T16:00:46.070 回答