モジュール |
|
| NPF ドライバの内部マニュアル | |
| パケットドライバAPIの開発マニュアル | |
| WinPcapのコンパイル方法 | |
WinPcapのホームページより引用します。
WinPcapはWin32プラットフォームに適用するパケットキャプチャとネットワーク解析に使用するアーキテクチャ(基本設計概念)で す。それにはカーネルレベルのパケットフィルタと、ローレベルダイナミックリンクライブラリ(packet.dll)と、ハイレベルでシステムインディペ ンデント(システム非依存型)なライブラリ(wpcap.dll)が含まれています。
なぜここで私たちは、「ライブラリ」ではなく、むしろ「アーキテクチャ」という表現を使用しているのでしょうか?なぜならパケットキャプチャは、 特にそのネットワークに関するソフトウェア作成において、ネットワークアダプタとOSの間で厳密なインタラクション(相互作用)を必要とするからで、単純 なライブラリでは十分ではないからです。
続く図に、WinPcap構成要素の幾つかを示します。

最初に、キャプチャシステムはネットワークを伝送する直接データにアクセスするために、プロトコルスタックを迂回する必要があります。その為に は、OSカーネル内部で走る機能が必要になり、それによって直接ネットワークインターフェイスドライブとインタラクティング(やり取り)します。この機能 は大きくシステムに依存しており、我々の解決策はデバイスドライバで実現することで、それをネットグループパケットフィルタ(NPF)と名づけています。 これまでのところ私たちは、Windows95、Windows98、Windows ME、Windows NT4、Windows2000とWindows XP用の異なるデバイスドライババージョンを用意しています。これらのドライバは、プログラム可能なフィルタリングシステムやモニタリングエンジンのよう な高度な機能のみならず、パケットキャプチャやパケットの注入といったごく基本的な機能の両方を提供します。前者は、ネットワークトラフィックサブセット へのキャプチャセッションの制限(ある特定のホストによって生成されたFTPトラフィックだけをキャプチャすることを可能にする、など)に使用され、後者 は、トラフィック上の統計値を獲得するための強力ではあるがシンプルなメカニズム(二つのホスト間でやり取りされるデータ量やネットワークロードを獲得す ることが出来る、など)提供します。
次に、キャプチャシステムはカーネルドライバによって準備された機能をユーザーレベルのアプリケーションが利用するためのインターフェイスをエク スポートしなければなりません。WinPcapは二つの異なるライブラリを提供します。packet.dllとwpcap.dllです。
前者は、マイクロソフトのOSからは独立したプログラミングインターフェイスと一緒にドライバの機能に直接アクセスするために使用される、ローレ ベルなAPIを提供しています。
後者は、UNIX用キャプチャライブラリとしてよく知られているlibpcapと互換性のある、より強力でハイレベルなキャプチャプリミティブを エクスポートします。これらの機能は、OSと基礎となるネットワークハードウェアからは独立した方法によりパケットをキャプチャすることを可能にします。
この資料を通して私たちは、最初の関数のセットとしてPacket Driver APIかpacket.dllを 参照する一方で、次のものとして wpcap、 wpcap.dll や libpcap を参照して行きたいと思います。
documentation.
Copyright (c)
2002-2003 Politecnico di Torino.
2005 translated by Telebusiness,Inc.
All rights reserved.