メイン   モジュール   デー タ構造   ファイルリスト   データフィールド   グローバル   関連ページ   注意事項   English

WinPcapの内部構造



モジュール

NPF ドライバの内部マニュアル
パケットドライバAPIの開発マニュアル
WinPcapのコンパイル方法

詳細

 このマニュアル部分は、最低レベルの要素から始めながら、WinPcapの内部構造とインターフェイスを文書化しています。これは本ソフトを拡張、また は変更しなければならない人たちやこれらがどのように動作するのかに深い興味のある人たちを対象としています。ですから、WinPcapを自分のソフト内 で動かせれば良い、という開発者の方々がお読みいただく必要はありません。

WinPcapの構造

WinPcapのホームページより引用します。

 WinPcapはWin32プラットフォームに適用するパケットキャプチャとネットワーク解析に使用するアーキテクチャ(基本設計概念)で す。それにはカーネルレベルのパケットフィルタと、ローレベルダイナミックリンクライブラリ(packet.dll)と、ハイレベルでシステムインディペ ンデント(システム非依存型)なライブラリ(wpcap.dll)が含まれています。

 なぜここで私たちは、「ライブラリ」ではなく、むしろ「アーキテクチャ」という表現を使用しているのでしょうか?なぜならパケットキャプチャは、 特にそのネットワークに関するソフトウェア作成において、ネットワークアダプタとOSの間で厳密なインタラクション(相互作用)を必要とするからで、単純 なライブラリでは十分ではないからです。

 続く図に、WinPcap構成要素の幾つかを示します。

 

arch.gif

 最初に、キャプチャシステムはネットワークを伝送する直接データにアクセスするために、プロトコルスタックを迂回する必要があります。その為に は、OSカーネル内部で走る機能が必要になり、それによって直接ネットワークインターフェイスドライブとインタラクティング(やり取り)します。この機能 は大きくシステムに依存しており、我々の解決策はデバイスドライバで実現することで、それをネットグループパケットフィルタ(NPF)と名づけています。 これまでのところ私たちは、Windows95、Windows98、Windows ME、Windows NT4、Windows2000とWindows XP用の異なるデバイスドライババージョンを用意しています。これらのドライバは、プログラム可能なフィルタリングシステムやモニタリングエンジンのよう な高度な機能のみならず、パケットキャプチャやパケットの注入といったごく基本的な機能の両方を提供します。前者は、ネットワークトラフィックサブセット へのキャプチャセッションの制限(ある特定のホストによって生成されたFTPトラフィックだけをキャプチャすることを可能にする、など)に使用され、後者 は、トラフィック上の統計値を獲得するための強力ではあるがシンプルなメカニズム(二つのホスト間でやり取りされるデータ量やネットワークロードを獲得す ることが出来る、など)提供します。

 次に、キャプチャシステムはカーネルドライバによって準備された機能をユーザーレベルのアプリケーションが利用するためのインターフェイスをエク スポートしなければなりません。WinPcapは二つの異なるライブラリを提供します。packet.dllとwpcap.dllです。

 前者は、マイクロソフトのOSからは独立したプログラミングインターフェイスと一緒にドライバの機能に直接アクセスするために使用される、ローレ ベルなAPIを提供しています。

 後者は、UNIX用キャプチャライブラリとしてよく知られているlibpcapと互換性のある、より強力でハイレベルなキャプチャプリミティブを エクスポートします。これらの機能は、OSと基礎となるネットワークハードウェアからは独立した方法によりパケットをキャプチャすることを可能にします。

 この資料を通して私たちは、最初の関数のセットとしてPacket Driver APIpacket.dllを 参照する一方で、次のものとして wpcapwpcap.dlllibpcap を参照して行きたいと思います。


documentation. Copyright (c) 2002-2003 Politecnico di Torino.
2005 translated by Telebusiness,Inc.
 All rights reserved.