ネットワークデバイスをリッスンし、パケットをキャプチャして、ダミーファイルに書き込みたいだけです。また、リスニング中にパケットをフィルタリングする必要があるため、フィルターを通過するパケットのみを書き込みます。これらは.netc#で行う必要があります。これらは私の要件です。では、どちらを使用すればよいですか?高い転送速度と最小のパケット損失は非常に重要です。読んでくれてありがとう。
2 に答える
SharpPcapの作成者として、ライブラリを使用してこれらすべての操作を実行できるようになると言えます。パフォーマンスは重要な設計目標でした。
Packet.Netには、解析可能な一連のパケットがあり、パケットの分析と生成のためにSharpPcapと一緒にバンドルされたライブラリです。そのアーキテクチャは、可能な限り高速にするために、可能な限り遅延評価を行います。
特にネットワークパケットキャプチャはオペレーティングシステムにとって優先度の低いタスクであることが多いため、パフォーマンスには注意が必要です。アプリケーションがパケットを高速に処理するほど、ドロップなしでより多くのパケットを処理できます。ドロップすることなく、3MB/秒のパケットをキャプチャすることができました。パフォーマンスを評価するために、より高いデータレートで試したり、データを生成およびキャプチャするための広範なテストを作成したりしたことはありません。ただし、テストと実際の結果は、ドキュメントとWebサイトに追加される歓迎すべきデータポイントです。
すべての機能はPcap.Netで利用できます。
Pcap.NetはC++/ CLIを使用してWinPcapをラップします。これは、PInvokeよりも効率的であると考えられています。
Pcap.Netのパケットライブラリは非常に大きく、複雑なパケットを解析して作成できます。これには、IPoverIPのような再帰層が含まれます。各レイヤーの解析は、必要な場合にのみ、遅延して実行されます。
あなたのニーズについては、SharpPcapよりもPcap.Netを使用することの利点だけがわかります。