0

SharpPcap + PacketDotNet ライブラリを使用していくつかの .pcap ファイルを処理していますが、タイムスタンプの計算方法にバグがありました。

次の行に沿ったものである、この Timeval プロパティを取得します。

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

問題は次のとおりです。「0.002」のタイムスタンプを持つパケットの 1 つで、Wireshark で開いているトレースがあるとします。プログラムのいずれかで開くと、パケットが取得され、その Timeval が と のように設定されSeconds = 0ますMicroSeconds = 002 = 2。これは内部で行われるため、私が知る限り回避する方法はありません。

私の質問は、その問題が、同じ c/c++ 関数のコレクションを中心に構築されていると思われる pcap ファイル形式を操作する他のライブラリ (そしておそらくすべてのライブラリ) に共通するものなのか、それともこれが私が使っているもの。

4

1 に答える 1

1

私はsharppcap/packet.netの作者です。

タイムスタンプ値で見られるバグは何ですか?あなたが言及した変換は正しいようです。0.002秒は2ミリ秒です。

タイムスタンプ値は、パケットがキャプチャされたときの完全なUNIXタイムバルブである必要があります。確かに、0.002のtimevalは絶対時間としては意味がなく、相対時間としてのみ意味があります。

ユニットテストをsharppcapに追加して、パケットのタイムバルブがまだない場合は検証します。

于 2010-04-16T16:00:46.070 に答える