0

2つの異なるフィルターを使用してデバイスをリッスンし、パケットをキャプチャすることは可能ですか?たとえば、フィルターを使用してデバイスのリッスンを開始し、パケットをpcapファイルにダンプします。15分後、同じデバイスで別のフィルターを使用して別のリッスンを開始し、古いものを停止せずにパケットを別のpcapファイルにダンプできますか?

pcap_openまたはpcap_next_exは着信パケットをブロックしますか?2つの異なるスレッドからリッスンしているときにパケットが到着した場合、一方がパケットを取得し、フィルター用に制御して、もう一方のスレッドがパケットにアクセスできるとはどういう意味ですか?

英語が下手でごめんなさい。

4

2 に答える 2

2

同じデバイスで別のフィルターを使用して別のリッスンを開始し、古いファイルを停止せずにパケットを別のpcap>ファイルにダンプできますか?

はい。とはいえ、そのリスナーを別のスレッド/プロセスで開始して処理することをお勧めします。

pcap_openまたはpcap_next_exは着信パケットをブロックしますか?

そうではありません。一部(ユーザーまたはOS)が着信パケットに追いつけない場合は、パケットをpcapリスナーにドロップします。

pcapはパケットも複製します(winpcapが同じように機能すると仮定すると、少なくとも* nix pcapと言えば)。したがって、同じパケットをフィルタリングする複数のpcapリスターがある場合、それらはすべてコピーを取得します。

于 2011-07-30T01:29:09.887 に答える
0

開いているデバイスハンドルごとに、個別のフィルターとパケットバッファーがあります。たとえば、ハンドル「A」とハンドル「B」は、両方のハンドルが同じネットワークデバイス上にあるとしましょう。

ここで、ネットワークデバイスが4つのパケットを取得するとします。

各パケットはハードウェアドライバーに到達し、次にwinpcapに到達します。その時点で、winpcapは各ハンドルフィルターを一度に1つずつ適用します。一致する場合、パケットはパケットバッファを処理するにコピーされます。すべてのハンドルが処理された後、パケットはOSに渡されます。

pcap_openまたはpcap_next_exは着信パケットをブロックしますか?いいえ。

実際のところ、オペレーティングシステムは、アプリケーションがパケットを処理する前にパケットを確認する可能性があります。私は間違っているかもしれませんが、winpcapにはパケットをブロックするための標準的な方法はないと思います。

于 2011-07-30T01:21:32.553 に答える