JP2003304269A - ネットワークフィルタドライバのためのアーキテクチャおよびランタイム環境 - Google Patents

ネットワークフィルタドライバのためのアーキテクチャおよびランタイム環境

Info

Publication number
JP2003304269A
JP2003304269A JP2002357097A JP2002357097A JP2003304269A JP 2003304269 A JP2003304269 A JP 2003304269A JP 2002357097 A JP2002357097 A JP 2002357097A JP 2002357097 A JP2002357097 A JP 2002357097A JP 2003304269 A JP2003304269 A JP 2003304269A
Authority
JP
Japan
Prior art keywords
filter
instance
act
stack
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002357097A
Other languages
English (en)
Other versions
JP4071098B2 (ja
Inventor
Alireza Dabagh
ダバ アリレザ
Aditya Dube
デューブ アディチャ
Arvind Murching
マーチング アルビンド
Fenfen Liu
フェンフェン リ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2003304269A publication Critical patent/JP2003304269A/ja
Application granted granted Critical
Publication of JP4071098B2 publication Critical patent/JP4071098B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Abstract

(57)【要約】 【課題】 処理およびネットワーク資源を保護するよう
にして、効率的にデータパケットをフィルタリングした
り、フィルタリングオペレーションを変更したりするこ
と。 【解決手段】 コンピュータ201とコンピュータ20
5との間で転送されるパケットは、トランスポートレイ
ヤプロトコル202、抽象インタフェース203および
データリンクドライバ204を含む通信パスを通って送
られる。抽象インタフェース203は、フィルタスタッ
ク206およびフィルタドライバ210と通信し、デー
タパケットを受信するとフィルタスタック206に含ま
れる各フィルタインスタンスに送信する。トランスポー
トレイヤプロトコル202から受信された場合、そのデ
ータパケットはフィルタインスタンス207aに渡され
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データパケットの
フィルタリングに関し、より具体的には、抽象インタフ
ェースが、フィルタスタックへのフィルタインスタンス
の挿入、フィルタスタックからのフィルタインスタンス
の除去および関連するプロトコルスタックを中断させず
にフィルタインスタンスのファンクショナリティをバイ
パスするように制御するためのシステム、方法およびコ
ンピュータプログラムプロダクトに関する。
【0002】
【従来の技術】今日の世界では、多数のコンピュータ
が、データ交換が可能なインターネットのようなコンピ
ュータネットワークを介して互いに接続されている。し
かし、これらのコンピュータの大多数は、1対1の関係
で直接結合しているわけではない。むしろ、これらのコ
ンピュータは、通常、ある種のネットワーク環境の中に
存在しており、そこでは複数のコンピュータが相互接続
され、各コンピュータは、そのネットワークに含まれる
他のコンピュータ全てとデータを交換することができ
る。在来のネットワークに接続されるコンピュータの数
が増加するのに伴い、このようなネットワークを介して
送信されるデータの総量もまた、増加してきた。この結
果、コンピュータネットワークを介した効率的で信頼性
の高いデータ送信のための手法が開発されてきた。
【0003】ネットワークを介した効率的なデータ送信
を促進する一つの手法は、「パケット化」である。パケ
ット化とは、より大きなデータをより小さなセグメン
ト、すなわち「パケット」に切断する手法である。パケ
ットを用いれば、巨大なデータを処理するよりも必要と
される資源は少ない。加えて、パケットを用いることに
より、データを増分の形で受信することができ、伝送エ
ラーが発生した際、再送が必要なデータ量が減少する。
【0004】もう一つの手法は、通信プロトコルを実現
するためのネットワーク化の枠組みを定める、開放型シ
ステム間相互接続(「OSI」)モデルを用いることで
ある。OSIモデルは、送信データに対するオペレーシ
ョンを別個の7つのレイヤに分解し、各レイヤは、デー
タ送信処理中の一定のオペレーションを実行する。各レ
イヤを実装するネットワークアプリケーションもある
が、多くのアプリケーションはネットワークを介したデ
ータ送信で用いるために選んだレイヤのみを実装する。
トランスポートレイヤとデータリンクレイヤの2つのレ
イヤが、ほとんどのプロトコルスタックによって組み込
まれる。トランスポートレイヤは、通常、データをパケ
ット化することに関係している。トランスポートレイヤ
の一例として、TCP(伝送制御プロトコル)がある。
データリンクレイヤは、通常、ビットデータをパケット
に符号化し、パケットをビットデータに復号化すること
に関係している。
【0005】コンピューティング装置からネットワーク
へのデータ送信の際は、通常、トランスポートレイヤド
ライバによる大容量データのパケット化、データリンク
レイヤドライバによるパケットのビットデータへの復号
化、およびネットワークインタフェースカードのような
ネットワークハードウェアによるビットデータのネット
ワークへの伝送が行われる。コンピューティング装置が
ネットワークからデータを受信する際は、通常、これら
のオペレーションが逆の順序で行われる。すなわち、ハ
ードウェア装置がビットデータを受信し、データリンク
レイヤドライバがビットデータをパケットに符号化し、
およびパケットはトランスポートレイヤドライバに送ら
れ大容量データに結合される。データリンクレイヤドラ
イバは、パケットをビットデータに復号化してネットワ
ークハードウェアにディスパッチするとき、およびビッ
トデータをパケットに符号化してトランスポートレイヤ
プロトコルにディスパッチするとき、データに関し特定
のオペレーションを実行することができる。これは、デ
ータがネットワークを経由してあるいはより高位のプロ
トコルへ送られる前に、データの変更が必要となる可能
性を考慮すると、優位な点である。
【0006】歴史的に見ると、データリンクレイヤドラ
イバは、特定のプラットフォームにおいて互換性のある
データ送信を容易にするため、書き込まれまたは設計さ
れた。多くのプロトコルとハードウェア装置のタイプが
増殖したため、問題が発生した。データリンクレイヤド
ライバによって実行されるオペレーションを削除し、追
加し、または変更するためには、ドライバを完全に再書
き込みしければならない。データリンクレイヤドライバ
の再書き込みは、極めてコストがかり、高いレベルの専
門技術を必要とし、および、しばしば既存のハードウェ
アを廃れさせ、あるいはユーザに強化された機能の使用
を控えさせる。さらに、コンピュータシステム内に複数
のデータリンクレイヤドライバが存在すると、種々のデ
ータリンクレイヤドライバに含まれる機能が冗長となる
ものの、適当なオペレーションのためにこれらの機能を
必要となる可能性がある。
【0007】結果として、プロトコルスタックのデータ
リンクレイヤにおいて、データに関するオペレーション
を実行する他の方法が開発された。このような方法の一
つに「IPファイヤウォールフック」があるが、これ
は、プロトコルスタックのデータリンクレイヤとトラン
スポートレイヤの間を通過するデータパケットをフック
する。パケットをフックする利点は、パケットが処理さ
れるべきか廃棄されるべきかを決定するためにそのパケ
ットの送り主アドレスを検証するといった、データのモ
ニタ機能を容易に実行することができるという点であ
る。しかし、パケットをフックすることは、パケットは
変更されたりデータフローに挿入されたりする可能性が
ないので、そ例外の利点は限定されている。さらに、パ
ケットのフックに関し互換性のない、その他のより新し
いネットワーク技術が開発されてきた。例えば、IPフ
ァイヤウォールフックは、広く用いられるインターネッ
ト接続共有技術とは相互運用性がない。
【0008】プロトコルスタックのデータリンクレイヤ
を通して渡されるデータパケットに関するオペレーショ
ンを実行するためのもう一つの方法は、「中間ドライ
バ」を使用することである。中間ドライバは、トランス
ポートレイヤとデータリンクレイヤとの間に位置し、従
来のデータモニタのみならずデータ圧縮および暗号のよ
うな、他のより進んだフィルタリング機能も実行するこ
とができる。中間ドライバにより、下位にあるリンクレ
イヤデバイスドライバの再書き込みを必要とすることな
く、プロトコルスタックに機能を追加し、またはプロト
コルスタックから機能を削除することができる。さら
に、複数の中間ドライバを階層化して、データリンクレ
イヤを通して渡されるデータに対して一連の関数を実行
することができる。
【0009】
【発明が解決しようとする課題】中間ドライバは、IP
ファイヤウォールフックに比較してより多くの機能を提
供するが、ある固有の問題を抱える。中間ドライバのイ
ンストールおよび構成には、しばしばレジストリのよう
なオペレーティングシステムのコンポーネントからデー
タを取得して組み込むか、あるいはかかるコンポーネン
トへデータを提供する必要がある。中間ドライバがオペ
レーティングシステムデータを処理するフィルタリング
環境は、少なくとも2つの理由から有害となる。
【0010】中間ドライバがインストールされ、または
プロトコルスタックから除去されるためには、プロトコ
ルスタックを取り壊し、再構築しなければならないであ
ろう。この結果、中間ドライバの機能を追加するため
に、プロトコルスタックを再構築しなければならないか
もしれない。同様に、再構築がなされないと、中間ドラ
イバが書き込んだデータによって、プロトコルスタック
が不正動作を起こす可能性がある。プロトコルスタック
を取り壊し、再構築する際、コンピュータシステムのリ
ブートを行って、データを中間ドライバのために適切に
初期化することが必要かもしれない。加えて、ある環境
のもとでは、インストールされた中間ドライバは、起動
された後にネットワークデータをみるだけでいいかもし
れない。しかし、起動されないときであっても、中間ド
ライバはインストールされ続け、貴重なオペレーティン
グシステムの資源を使用し、その結果ネットワークの性
能を低下させるであろう。
【0011】したがって、効率的にデータパケットをフ
ィルタリングしたり、フィルタリングオペレーションを
変更して処理およびネットワーク資源を、温存するため
のシステム、方法およびコンピュータプログラムプロダ
クトが要望される。
【0012】
【課題を解決するための手段】本発明は、効率的なデー
タパケットのフィルタリングおよびフィルタリングオペ
レーションの変更を提供することにある。コンピューテ
ィング装置に含まれるプロトコルスタックは、1つまた
は複数のフィルタインスタンスを含むフィルタスタック
にも関連している。プロトコルスタックに関連するデー
タパケットは、そのデータパケットに対してフィルタリ
ングオペレーションを実行するフィルタインスタンスを
通して渡される。フィルタインスタンスは、関連するプ
ロトコルスタックが分裂する可能性を減らすように、フ
ィルタスタックに挿入し、またはフィルタスタックから
除去することができる。
【0013】さらに、フィルタインスタンスに関連する
フィルタリングオペレーションは、データパケットおよ
び/またはコンフィグレーションパラメータに基づき、
バイパスすることができる。フィルタリングオペレーシ
ョンのバイパスは、種々の方法で実行することができ
る。パケットが、通信パス、例えばデータパスまたは制
御パスに関連したフィルタインスタンスを完全にバイパ
スするとき、フィルタリングオペレーションのバイパス
を実行することができる。フィルタインスタンスに対す
る内部の1つまたは複数のフィルタリングオペレーショ
ンが、受信したデータパケットに対して実行されないと
きもまた、フィルタリングオペレーションのバイパスを
実行することができる。抽象インタフェースは、フィル
タスタックに対応するフィルタインスタンスの動的な挿
入と除去を容易に行うフィルタドライバをコールするこ
とによってフィルタスタックを制御する。
【0014】フィルタインスタンスがフィルタスタック
に挿入されるとき、フィルタドライバは、抽象インタフ
ェースからパラメータを受信することができる。これら
のパラメータによって、フィルタインスタンスを構成し
てフィルタリングオペレーションを実行することが容易
となる。フィルタインスタンスは、入力データパケット
の特性に基づき、異なるフィルタリングオペレーション
を実行するよう構成することできる。例えば、一つのフ
ィルタスタックにより、IP(インターネットプロトコ
ル)およびIPX(インターネットワークパケット交
換)の双方のパケットをフィルタすることができる。パ
ラメータが適切であれば、データがIPパケットに含ま
れているかIPXパケットに含まれているかにかかわら
ず、フィルタインスタンスは同じ処理を実行することが
できる。さらにまた、パラメータが適切であれば、デー
タがIPパケットかまたはIPXパケットに含まれるか
に依存して、類似するがある程度異なる処理をフィルタ
インスタンスにより実行することもできる。
【0015】トランスポートごとに一つのインスタンス
とするのに対比して、全てのトランスポートのために一
つのフィルタスタックを用いてデータパケットをフィル
タリングすることによって、コンピューティング装置に
より構成され、維持されるフィルタインスタンスの個数
を減らすことができる。これにより、フィルタスタック
が冗長なロジックによって構成される機会を減少させる
こととなり、したがって、データパケットをフィルタリ
ングすることに関連するオペレーション複雑さも軽減さ
れる。
【0016】抽象インタフェースによって、新たなフィ
ルタインスタンスをオペレーション中のフィルタスタッ
クへ挿入が容易になると、まず、現在のフィルタスタッ
クがまさに中断しようとしていることを関連するプロト
コルスタックに通知することができる。次いで、抽象イ
ンタフェースは、そのフィルタスタックを中断すること
ができる。フィルタスタックの中断は、現在のフィルタ
スタック内の各フィルタインスタンスに関連する「ポー
ズ」モジュールを呼び出すことを伴ってもよい。全ての
フィルタインスタンスが一旦中断されると、新たなフィ
ルタインスタンスをフィルタスタック内の適切な位置に
挿入することができる。抽象インタフェースは、次に、
フィルタスタックが開始されようとしていること、およ
び新たに追加されたフィルタインスタンスの機能を含む
ことを全てのプロトコルに通知することができる。次い
で、新たなフィルタスタックがスタートする。このこと
は、新たなフィルタスタック内の各フィルタモジュール
に関連する「スタート」モジュールを呼び出すことを伴
ってもよい。
【0017】フィルタスタックへのフィルタインスタン
スの挿入の際、抽象インタフェースは、「フィルタハン
ドル」を有する関連するフィルタドライバにパラメータ
を送信することができる。フィルタハンドルは、本質的
に、フィルタインスタンスに関連するデータを抽象イン
タフェースに送るためにフィルタドライバが用いること
ができる、返信アドレスである。受信されたパラメータ
を用いて、フィルタドライバは「フィルタコンテキス
ト」を生成し、関連するフィルタインスタンスのための
資源を割り当てる。次いで、関連したフィルタインスタ
ンスのフィルタコンテキストは、抽象インタフェースに
送られる。フィルタコンテキストは、本質的に、対応す
るフィルタインスタンスに関するフィルタドライバにデ
ータを送るために抽象インタフェースが用いることがで
きる、返信アドレスである。
【0018】フィルタインスタンスは、受信したパラメ
ータに応じてフィルタスタックに挿入することができ
る。フィルタドライバは、抽象インタフェースにステー
タスコードを送信し、そのコードにより、フィルタイン
スタンスをフィルタスタックに挿入しようとした結果を
示すことができる。同一のフィルタの複数の独立したフ
ィルタインスタンスは、異なるフィルタハンドルを用い
て、フィルタスタックにインストールすることができ
る。以上の全てのオペレーションは、関連したプロトコ
ルスタックを崩壊させ、または関連するオペレーティン
グシステムをリセットする恐れを軽減するように実行さ
れる。
【0019】データの実際の送信の間、フィルタインス
タンスは、フィルタインスタンスによって受信した入力
データパケットの特性に基づき、関連する内部のフィル
タリングオペレーションの、全てではないがいくつかを
実行することができる。例えば、フィルタインスタンス
がIPパケットを受信するとき、そのフィルタインスタ
ンスがIPXパケットを受信するなら実行されることの
ない一定のフィルタリングオペレーションをそのフィル
タインスタンスが実行することができる。フィルタイン
スタンスは、パケットが、データパスや制御パスのよう
な通信パスに関連するフィルタインスタンスを完全にバ
イパスする「バイパス」モードでインスタンスが動作す
るように構成することもできる。これによって、プロセ
ッサ資源が無関係なフィルタリングオペレーションを実
行するために使用されることがないため、フィルタリン
グプロセスの効率化が高められる。
【0020】本発明の更なる特徴と優位点は、以下の記
載に示され、および一部は記載から明らかであり、ある
いは本発明の実施から得ることができるであろう。本発
明の特徴と優位点は、特許請求の範囲において特に指摘
された装置および組み合わせによって実現し得ることが
できる。本発明のこれらの特徴および他の特徴は、以下
の詳細な説明および特許請求の範囲からさらに完全に明
らかになり、あるいは以下に示される本発明の実施によ
ってわかることができる。
【0021】本発明の上述のおよびその他の優位点と特
徴を得ることができる形態を記載するため、以上に簡潔
に述べた本発明のより特定の記載を、添付された図面に
示される具体的実施形態を参照して行うものとする。こ
れらの図面は、本発明の典型的な実施形態のみを示して
おり、その範囲を限定するものとは考えるべきでないこ
とを理解すれば、本発明は、以下に添付する図面を用い
て、さらに明確および詳細に記載され説明されるであろ
う。
【0022】
【発明の実施の形態】本発明の範囲は、プロセッサおよ
びネットワーク資源を保護するような方法でデータパケ
ットをフィルタリングするためのシステム、方法および
コンピュータプログラムプロダクトまで及ぶ。抽象イン
タフェースは、1つまたは複数のフィルタインスタンス
を含むフィルタスタックを制御する。各フィルタインス
タンスは、ネットワークを介して送受信されるデータパ
ケットに関するフィルタリングオペレーションを実行す
ることができる。フィルタインスタンスは、データパケ
ットの特性に基づいて異なるフィルタリングオペレーシ
ョンを実行することができ、あるいはパケットのよって
フィルタインスタンスを完全にバイパスすることができ
る。さらに、関連するプロトコルスタックを再起動させ
なければならない機会を減らすように、フィルタインス
タンスをフィルタスタックに追加したり、フィルタスタ
ックから除去したりすることができる。それぞれ種々の
フィルタリングオペレーションを実行することができる
フィルタインスタンスを容易に交換することによって、
多くの種々のフィルタリングを選択することができる。
【0023】フィルタインスタンスを追加し、またはフ
ィルタスタックから除去するため、まずフィルタスタッ
クをポーズすることができる。フィルタスタックをポー
ズすることは、そのフィルタスタックに含まれる個々の
フィルタインスタンスをポーズすることを含む。フィル
タスタックをポーズしようとするときは、フィルタスタ
ックを用いてフィルタリングオペレーションを実行する
プロトコルスタックを通知することができる。フィルタ
スタックがポーズされると、フィルタドライバは、抽象
インタフェースをコールしてフィルタインスタンスの挿
入または除去を行うことができる。フィルタインスタン
スが挿入または除去された後、関連するプロトコルスタ
ックは、フィルタスタックの新たなコンフィグレーショ
ンを通知される。
【0024】オペレーションの間、抽象インタフェース
は、トランスポートレイヤとデータリンクレイヤとの間
で動作して、フィルタスタックへのデータパケットの送
信を管理する。抽象インタフェースは、データリンクレ
イヤからデータパケットを受信すると、そのデータリン
クレイヤに最も近いフィルタインスタンスで開始するフ
ィルタスタックにそのデータパケットを渡す。ついで、
抽象インタフェースは、データパケットが全てのフィル
タモジュールを通って渡されるまで、トランスポートレ
イヤに順次に近い各フィルタインスタンスにデータパケ
ットを渡す。それから、抽象インタフェースはフィルタ
されたデータパケットをトランスポートレイヤへ送信す
る。
【0025】抽象インタフェースは、トランスポートレ
イヤからデータパケットを受信すると、これらのオペレ
ーションを本質的に逆の順序で実行する。抽象インタフ
ェースは、トランスポートレイヤに最も近いフィルタイ
ンスタンスで開始するフィルタスタックにデータパケッ
トを渡す。次に、抽象インタフェースは、データパケッ
トが全てのフィルタインスタンスを通って渡されるま
で、データリンクレイヤに順次に近い各フィルタインス
タンスへデータパケットを渡す。それから、抽象インタ
フェースは、フィルタされたデータパケットをデータリ
ンクレイヤに送信する。
【0026】フィルタスタックを介しての送信の間、異
なるデータパケットは、種々のフィルタリングオペレー
ションによって、フィルタされることができる。これ
は、データパケットの特性に起因するものとすることが
できる。たとえば、IPパケットは、IPXパケット以
外の方法でフィルタにかけられるであろう。種々のフィ
ルタリングオペレーションで異なるデータパケットをフ
ィルタすることもまた、データパケットのフローの方向
に起因するのである。すなわち、種々のフィルタリング
オペレーションは、トランスポートレイヤからデータリ
ンクレイヤへ送信されるデータパケットに関するより
も、データリンクレイヤからトランスポートレイヤへ送
信されるデータパケットに関して実行されるであろう。
【0027】あるデータフローの方向では、データパケ
ットが完全にフィルタインスタンスをバイパスするのに
対し、もう一方の方向のデータフローでは、パケットが
完全にはフィルタインスタンスをバイパスしない可能性
がある。例えば、データリンクレイヤからトランスポー
トレイヤに運ばれるデータパケットは、完全にフィルタ
インスタンスをバイパスすることができるが、トランス
ポートレイヤからデータリンクレイヤに運ばれるパケッ
トは、そのフィルタインスタンスによってフィルタされ
る。データパケットに加えて、フィルタスタックもま
た、そのフィルタスタックを通過する制御情報が完全に
フィルタインスタンスをバイパスするように構成するこ
とができる。
【0028】本発明の実施形態は、以下でより詳細に議
論するように、種々のコンポーネントを含む専用のまた
は汎用のコンピュータを備える。本発明の範囲内にある
実施形態は、コンピュータ実行可能な命令またはデータ
構造を搭載し、またはストアするためのコンピュータ読
み取り可能な媒体を含むことができる。このようなコン
ピュータ読み取り可能な媒体は、汎用または専用コンピ
ュータによってアクセス可能な如何なる媒体とすること
もできる。例示の目的で、しかしこれには制限されない
が、このようなコンピュータ読み取り可能な媒体は、R
AM、ROM、EEPROM、CD−ROMまたはその
他の光ディスク記憶、磁気ディスク記憶その他の磁気記
憶装置、またはその他コンピュータ実行可能命令または
データ構造の形式で所望のプログラムコード手段を搭載
し、またはストアするために用いることができ、かつ汎
用または専用コンピュータによってアクセス可能な如何
なる媒体をも備えることができる。
【0029】ネットワークまたはその他の通信接続(有
線(hardwired)、無線、または有線と無線と
の組み合わせ)を介して、情報がコンピュータに送信あ
るいは供給されるとき、そのコンピュータは、その接続
をコンピュータ読み取り可能な媒体とみなす。したがっ
て、正式には、このような接続は、コンピュータ読み取
り可能な媒体と称される。上記の組み合わせもまた、コ
ンピュータ読み取り可能な媒体の範囲に含まれるであろ
う。例えば、コンピュータ実行可能な命令は、汎用コン
ピュータ、専用コンピュータまたは専用処理装置に、一
定の関数または関数の組を実行させることができる命令
およびデータを備える。
【0030】図1および以下の議論は、本発明を実現す
るのに適したコンピューティング環境について、簡潔で
一般的な説明を提供しようとするものである。要求され
るわけではないが、本発明は、コンピュータ実行可能な
命令、例えばネットワーク環境内のコンピュータによっ
て実行されるプログラムモジュールなどの一般的なコン
テキストで記述されるであろう。一般的に、プログラム
モジュールは、特定のタスクを実行し、あるいは特定の
抽象データタイプを実装するルーチン、プログラムオブ
ジェクト、コンポーネント、データ構造、その他を含
む。コンピュータ実行可能な命令、これに伴うデータ構
造およびプログラムモジュールは、本明細書で開示され
た方法のステップを実行するためのプログラムコード手
段の例を示している。これらの実行可能な命令または関
連するデータ構造の特定のシーケンスは、これらのステ
ップで記述された関数を実現するのに対応する動作(a
ct)の例を示している。
【0031】本発明は、パーソナルコンピュータ、ハン
ドヘルド装置、携帯電話、パーソナルデジタルアシスタ
ント(PDA)、マルチプロセッサシステム、マイクロ
プロセッサベースのまたはプログラム可能なコンシュー
マ電子機器、ネットワークPC、ミニコンピュータ、メ
インフレームコンピュータその他を含む多くの種類のコ
ンピュータシステム構成を持つネットワークコンピュー
ティング環境で実施することができることを本技術分野
の当業者は、理解するであろう。本発明は、また、ロー
カルおよびリモートの処理装置が通信ネットワークを介
して(有線、無線または有線または無線の組み合わせに
よって)接続され、ローカルとリモートの双方の処理装
置ともタスクを実行する分散コンピューティング環境で
実施することができる。
【0032】図1を参照すると、本発明を実施するため
の例示のシステムは、プロセッシングユニット121、
システムメモリ122、およびシステムメモリ122を
含む種々のシステムコンポーネントをプロセッシングユ
ニット121に接続するシステムバス123を有する、
従来のコンピュータ120の形式で汎用コンピューティ
ング装置を含む。システムバス123は、メモリバスま
たはコントローラ、ペリフェラルバスおよび種々のバス
構造のいずれかを使用するローカルバスを含む数種類の
バス構造のいずれとすることもできる。システムメモリ
122は、読取専用メモリ(「ROM」)124および
ランダムアクセスメモリ(「RAM」)125を含むこ
とができる。基本入出力システム(「BIOS」)12
6は、コンピュータ120内にある要素間で、例えばス
タートアップ時のように情報送信を支援する基本的なル
ーチンを含み、ROM124に格納することができる。
【0033】コンピュータ120は、また、磁気ハード
ディスク139と読み書きを行うための磁気ハードディ
スクドライブ装置127、取外し可能な磁気ディスクと
読み書きを行うための磁気ディスクドライブ装置12
8、およびCD−ROMやその他の光ディスク媒体など
の取外し可能な光ディスク131と読み書きを行うため
の光ディスクドライブ装置130を含む。磁気ハードデ
ィスクドライブ装置127、磁気ディスクドライブ装置
128および光ディスクドライブ装置130は、それぞ
れ、ハードディスクドライブインタフェース132、磁
気ディスクドライブインタフェース133および光ドラ
イブインタフェース134によって、システムバス12
3に接続される。ドライブ装置とこれらに結合したコン
ピュータ読み取り可能な媒体は、コンピュータ120の
ためのコンピュータ実行可能な命令、データ構造、プロ
グラムモジュールその他のデータの不揮発性記憶を提供
する。本明細書に記載された例示の環境では、磁気ハー
ドディスク139、取外し可能な磁気ディスク129お
よび取外し可能な光ディスク131が用いられている
が、磁気カセット、フラッシュメモリカード、デジタル
多用途ディスク、ベルヌイカートリッジ、RAM,RO
Mその他を含む記憶データのためのコンピュータ読み取
り可能なその他のタイプの媒体を使用することができ
る。
【0034】1つまたは複数のプログラムモジュールを
備えるプログラムコード手段は、ハードディスク13
9、磁気ディスク129、光ディスク131、ROM1
24、またはRAM125上に格納することができ、オ
ペレーティングシステム135、1つまたは複数のアプ
リケーションプログラム136、その他のプログラムモ
ジュール137およびプログラムデータ138を含む。
ユーザは、キーボード140、ポインティング装置14
2または他の入力装置、例えば、マイク、ジョイスティ
ック、ゲームパッド、サテライトディッシュ、スキャナ
などの装置(図示せず)を通して、コンピュータ120
にコマンドおよび情報を入力することができる。以上の
およびその他の入力装置は、しばしばシステムバスに結
合したシリアルポートインタフェース146を介してプ
ロセッシングユニット121に接続される。入力デバイ
スは、以上に代えて、他のインタフェース、例えば、パ
ラレルポート、ゲームポートまたはユニバーサルシリア
ルバス(「USB」)によっても接続することができ
る。モニタ147あるいはその他の表示装置もまた、ビ
デオアダプタ148のようなインタフェースを介してシ
ステムバス123に接続している。モニタに加えて、パ
ーソナルコンピュータは、通常、スピーカやプリンタな
どの他の周辺出力装置(図示せず)を含む。
【0035】コンピュータ120は、リモートコンピュ
ータ149aおよび149bのような1つまたは複数の
リモートコンピュータとの論理的接続を用いたネットワ
ーク環境においても動作することができる。リモートコ
ンピュータ149aおよび149bは、各々もう1つの
パーソナルコンピュータ、サーバ、ルータ、ネットワー
クPC、ピア機器またはその他の通常のネットワークノ
ードとすることができる。図1では、メモリ記憶装置1
50aと150bおよびそれらに格納されたアプリケー
ションプログラム136aと136bが示されているだ
けだが、リモートコンピュータ149aおよび149b
は、コンピュータ120に関して記述されている要素の
すべてまたは多くを含むことができる。図1に示される
論理的接続は、ローカルエリアネットワーク(LAN)
151と広域ネットワーク(WAN)152を含むが、
これは例示の目的で示しただけでありこれに限定されな
い。このようなネットワーク環境は、オフィス内や企業
内のコンピュータネットワーク、イントラネットおよび
インターネットでは通常のものである。
【0036】LANネットワーク環境で使用されると
き、コンピュータ120は、ネットワークインタフェー
スアダプタ153または同様のアダプタを介してローカ
ルネットワーク151に接続する。WANネットワーク
環境で使用されるとき、コンピュータ120は、インタ
ーネットのような広域ネットワーク上の通信を確立する
ためのモデム154、無線リンクまたはその他の手段を
含むことができる。モデム154は、内部または外部と
することができるが、シリアルポートインタフェース1
46を経由してシステムバス123に接続される。ネッ
トワーク化された環境では、コンピュータ120に関し
て描写されたプログラムモジュールあるいはその部分
は、リモートのメモリ記憶装置に格納することができ
る。示されたネットワーク接続は例示的であり、広域ネ
ットワーク152上で通信を確立するその他の手段を使
用できることが理解されるであろう。
【0037】本発明の詳細な説明および特許請求の範囲
において、「ダミールーチン」とは、如何なるタスクも
実行しないルーチンと定義する。ダミールーチンは、デ
ータを受信するために用いられるヘッダを含むが、受信
するデータに関するオペレーションは何も実行しないプ
ログラムモジュールまたはコンピュータ実行可能な命令
のセットの一部とすることができる。すなわち、ダミー
ルーチンからのデータ出力は、ダミールーチンに入力さ
れたデータと同じである。
【0038】本発明の詳細な説明および特許請求の範囲
において、「エントリポイント」とは、プログラムモジ
ュールまたはコンピュータ実行可能な命令のセットの一
部における位置と定義する。外部のプログラムモジュー
ルは、エントリポイントをコールし、入力データを送信
して、エントリポイントで示される命令の実行を容易に
することができる。例えば、ダミールーチンはエントリ
ポイントを持つことができる。
【0039】本発明の詳細な説明および特許請求の範囲
において、「システムレジストリ」とは、システム構成
情報を格納するためにオペレーティングシステムによっ
て用いることができるデータベースと定義する。
【0040】本発明によれば、関連するプログラムデー
タに加え、データパケットをフィルタすることを容易に
するために用いられる抽象インタフェース、フィルタス
タック、フィルタインスタンスおよびフィルタドライバ
を含むプログラムモジュールを、コンピュータ120に
関連した、いずれかのコンピュータ読み取り可能な媒体
にストアし、およびこの媒体からアクセスすることがで
きる。例えば、抽象インタフェース、フィルタスタッ
ク、フィルタインスタンス、フィルタドライバ、および
関連するプログラムデータの部分をオペレーティングシ
ステム135、アプリケーションプログラム136、そ
の他のプログラム137および/またはプログラムデー
タ138に含めて、データパケットのフィルタリングに
関連するプログラムモジュールは、前述のように分散型
環境においても実行することができる。例えば、リモー
トコンピュータ149aまたは149bのようなリモー
トコンピューティング装置に含まれるフィルタドライバ
によって、コンピュータ120のようなローカル処理装
置に含まれるフィルタスタックにフィルタインスタンス
を挿入することが容易となるであろうし、またその逆も
同様である。
【0041】図2Aには、フィルタインスタンスをフィ
ルタスタックに挿入することを容易にするために用いら
れる機能コンポーネントのいくつかが示される。図示さ
れるように、コンピュータ201は、ネットワーク20
5に通信可能なように結合される。コンピュータ201
とコンピュータ205との間で転送されるパケットは、
トランスポートレイヤプロトコル202、抽象インタフ
ェース203およびデータリンクドライバ204を含む
通信パスを通って送られるであろう。コンピュータ20
1は、図1の議論で参照したコンポーネントのいずれを
も含むことができる。ネットワーク205は、図1の議
論で参照したネットワーク環境のいずれをも含むことが
できる。
【0042】抽象インタフェース203は、フィルタス
タック206およびフィルタドライバ210と通信する
ことができる。データパケットを受信すると、抽象イン
タフェース203は、そのデータパケットをフィルタス
タック206に含まれる各フィルタインスタンスに転送
することができる。データパケットがトランスポートレ
イヤプロトコル202から受信された場合、抽象インタ
フェース203は、そのデータパケットをフィルタイン
スタンス207aに渡し、データリンクドライバ204
により近い他のフィルタモジュールに順次わたすことが
できる。データパケットが、データリンクドライバ20
4から受信された場合、抽象インタフェース203は、
そのデータパケットをフィルタインスタンス211aに
渡し、トランスポートレイヤプロトコル202により近
い他のフィルタモジュールに順次わたすことができる。
【0043】抽象インタフェース203はフィルタドラ
イバ210と通信を行い、フィルタインスタンスをフィ
ルタスタック206に挿入、またはフィルタスタック2
06から除去することを容易にすることができる。フィ
ルタドライバ210に含まれるのは、フィルタ挿入モジ
ュール220、フィルタスタートモジュール221およ
びフィルタポーズモジュール222である。図2Bに示
すのは、フィルタインスタンスをフィルタスタックに挿
入することを容易にするための図2Aで示した関数コン
ポーネント間で生じる相互作用のいくつかの例である。
図3は、フィルタインスタンスをフィルタスタックに挿
入するための方法を示すフロー図である。図3に示す方
法は、図2Aおよび図2Bに含まれる関数コンポーネン
トに関連して議論する。
【0044】図3に示すように、フィルタインスタンス
の挿入は、フィルタスタックのオペレーションをポーズ
することによって開始することができる(動作30
1)。これは、そのフィルタスタック内で現在オペレー
ト中の個々のフィルタインスタンスをポーズすることも
含む。フィルタインスタンスは、結合したポーズモジュ
ールをコールすることによってポーズすることができ
る。例えば、フィルタポーズモジュール222は、フィ
ルタドライバ210によってフィルタスタックに挿入さ
れたフィルタインスタンスのポーズを容易にすることが
できる。プロトコルスタックは、フィルタスタックがポ
ーズされようとしていることを通知することができる。
【0045】図2Aに示すように、フィルタスタック2
06は、フィルタ210aを含むが、それは以前フィル
タドライバ210によってフィルタスタック206に挿
入されたものかもしれない。抽象インタフェース203
は、データをフィルタポーズモジュール222に渡し
て、フィルタインスタンス210a(またはフィルタド
ライバ210によってフィルタスタック206に挿入さ
れたその他のフィルタインスタンス)をポーズの状態に
する。フィルタインスタンスがポーズ状態にされると、
フィルタドライバは、一定のオペレーションを実行する
ことができる。例えば、フィルタドライバは、キューに
入れられたフィルタインスタンスに関連したパケットを
処理させ(flush)、そのフィルタインスタンスに
伴うその他のランタイムオペレーションを停止させ、お
よびフィルタインスタンスによって未処理のパケットお
よびリクエストが処理されるまで、そのフィルタインス
タンスがポーズ状態になるのを遅延させることもでき
る。
【0046】フィルタインスタンスは、逐次的にポーズ
することができる。例えば、トランスポートレイヤプロ
トコル202に最も近いフィルタインスタンスが、まず
ポーズされるであろう。図2Aに示すように、フィルタ
インスタンス207aは、ポーズされる最初のフィルタ
インスタンスとなるであろう。トランスポートレイヤプ
ロトコル202に最も近いフィルタインスタンスのポー
ズが成功した後、次に近いフィルタインスタンス(すな
わちフィルタインスタンス208a)がポーズされる。
この例で、全体のフィルタスタックをポーズしようとす
る場合、残りのフィルタインスタンスは次の順序でポー
ズされるであろう:208b、209a、210aおよ
び211a。データリンクレイヤに最も近いフィルタイ
ンスタンス211aをポーズ状態にすることに成功する
と、フィルタスタック206もまた、ポーズ状態にある
とみなすことができる。プロトコルスタックは、フィル
タスタック206がポーズに成功したとの通知を受ける
ことができる。
【0047】フィルタインスタンスは、データパケット
の送信、受信およびリクエストを容易にするために用い
られるモジュールである「ルーチンハンドラ」を伴うこ
とができる。一実施形態では、フィルタインスタンスを
ポーズすることには、ダミールーチンを有するルーチン
ハンドラをスワップすることを含めることもできる。し
たがって、データパケットは、実際のルーチンハンドラ
に代わってダミールーチンを介して送信される。例え
ば、データパケットは、データパケットを受信するため
のルーチンハンドラではなく、ダミールーチンに送信さ
れるかもしれない。スワップは、フィルタインスタンス
がポーズ状態にあるとき、新たに如何なるパケットも処
理する必要がないように、抽象インタフェースによって
実行される。
【0048】フィルタインスタンスのオペレーションを
構成する際、フィルタインスタンスをポーズする必要が
あるかもしれない。特定のフィルタインスタンスをポー
ズすることは、フィルタスタックを部分的にポーズする
ことによって実行することができる。すなわち、フィル
タスタック内の一部のフィルタインスタンスは、その他
のフィルタインスタンスがオペレートを続けている間ポ
ーズする。このような状態では、トランスポートレイヤ
により近いフィルタインスタンスがポーズされ、データ
リンクレイヤにより近いフィルタインスタンスがポーズ
されないであろう。これは、トランスポートレイヤによ
り近いフィルタインスタンスが、データリンクレイヤに
より近いフィルタインスタンスの前にポーズされる場合
に逐次的に行うことができる。
【0049】例えば、図2Aにおいて、フィルタスタッ
ク206の全てのフィルタインスタンスは、現在オペレ
ート可能であると仮定する。フィルタインスタンス20
8bがコンフィグレーションパラメータを受信しようと
している場合、フィルタインスタンス207aがポーズ
し、次いで、フィルタ208aがポーズし、さらに20
7bがポーズする。しかし、フィルタインスタンス20
8bのコンフィグレーションの間、フィルタインスタン
ス209a、フィルタインスタンス210aおよびフィ
ルタインスタンス211aを含むその他のデータリンク
レイヤにより近いフィルタインスタンスは、オペレーシ
ョンを続けることができる。
【0050】部分的にポーズされたフィルタスタックを
再スタートさせるためには、ポーズされたもののうち、
まず、よりデータリンクレイヤに近いフィルタインスタ
ンスが、次いで、逐次的にトランスポートレイヤに近い
フィルタインスタンスが再スタートされであろう。前段
の例においていえば、フィルタインスタンス208bが
再スタートし、次いでフィルタインスタンス208aが
再スタートし、さらにフィルタインスタンス207aが
再スタートするであろう。
【0051】図3の方法は、フィルタスタックに含まれ
るオペレーションを再構成するためのステップを含むこ
とができる(ステップ304)。これは、少なくとも1
つのプロトコルスタックがデータ送信し(動作30
2)、およびフィルタスタックのオペレーションをスタ
ートする(動作303)ことが可能な間、フィルタイン
スタンスをフィルタスタックに挿入する動作を実行する
ことを含むことができる。プロトコルスタックがデータ
送信をすることが可能な間にフィルタインスタンスの挿
入を行うことによって、通信パスに沿った効率的なデー
タ送信が促進される。
【0052】フィルタインスタンスをフィルタスタック
に挿入することは、フィルタドライバが抽象インタフェ
ースからパラメータを受信することを含むことができ
る。図2Bの矢印1は、抽象インタフェース203がパ
ラメータをフィルタドライバ210に送信することを示
す。フィルタ210に送信されるパラメータは、生成さ
れたフィルタインスタンスを参照するために、用いるこ
とができるフィルタハンドルを含む。例えば、フィルタ
インスタンス210bを生成するため矢印1に含まれる
パラメータが用いられる場合、フィルタドライバ210
はそのフィルタハンドルを用いて、フィルタインスタン
ス210bに対応するデータを抽象インタフェース20
3に送信することができる。パラメータには、フィルタ
スタック中の、フィルタインスタンスが挿入されるべき
位置を含めることもできる。例えば、図2Bにおいて、
フィルタドライバ210はパラメータを受信したが、そ
れは、フィルタインスタンス210bがフィルタインス
タンス208bと209aの間に挿入されるべきことを
示している。
【0053】フィルタインスタンスをフィルタスタック
に挿入することには、フィルタインスタンスコンテキス
トを生成することを含めることができる。図2Bの矢印
2は、コンテキスト生成モジュール230がフィルタイ
ンスタンス210bのためのフィルタインスタンスコン
テキストを生成することを示す。1つのフィルタスタッ
クには、1つのフィルタの複数のインスタンスを挿入す
ることができる。例えば、図2Bには、フィルタインス
タンス208aと208bが示されている。同一のフィ
ルタドライバが、フィルタインスタンス208aと20
8bとをフィルタスタック206に挿入することができ
た。しかし、フィルタインスタンス208aと208b
とは、生成するのに用いられたパラメータによって異な
るであろう。フィルタインスタンスコンテキストは、同
一のフィルタドライバによって生成されたフィルタイン
スタンス、例えばフィルタインスタンス208aと20
8bを識別するために用いることができる。
【0054】フィルタインスタンスをフィルタスタック
に挿入することには、そのフィルタインスタンスのため
の資源を割り当てることを含めることができる。図2B
矢印3は、資源割り当てモジュール231が、フィルタ
インスタンス210bのための資源を割り当てることを
示す。これは、フィルタインスタンスがオペレートする
ためメモリを割り当てること、およびフィルタインスタ
ンスによって処理するためのデータパケットをキューに
入れるためメモリを割り当てることを含めることができ
る。これらは、フィルタインスタンスをフィルタスタッ
クに挿入する際割り当てることができる資源の単なる例
に過ぎない。本記載を再検討した後には、種々の資源を
フィルタインスタンスによって使用するため割り当てる
ことができることは、本技術分野の当業者にとって明ら
かであろう。
【0055】フィルタインスタンスをフィルタスタック
に挿入することには、フィルタインスタンスコンテキス
トを抽象インタフェースに送信することを含めることが
できる。図2Bの矢印4は、フィルタドラバ210が、
フィルタインスタンス210bのためのフィルタインス
タンスコンテキストを抽象インタフェース203に送信
することを示す。抽象インタフェース203は、フィル
タインスタンス210bへの参照としてフィルタインス
タンスコンテキストを用いることができる。例えば、抽
象インタフェース203がフィルタインスタンス210
bに処理されたデータをフィルタドライバ210に送信
するとき、抽象インタフェース203は、フィルタイン
スタンスコンテキストを含むことができる。抽象インタ
フェース203は、フィルタインスタンスコンテキスト
を用いて、フィルタドライバ210に、受信したデータ
がフィルタインスタンス210bに処理されていること
を通知することができる。
【0056】フィルタインスタンスをフィルタスタック
に挿入することには、コンフィグレーション可能なパラ
メータをシステムレジストリから読むことを含めること
ができる。図2Bの矢印5は、コンフィグレーション可
能パラメータアクセスモジュール233が、コンフィグ
レーション可能パラメータをシステムレジストリ223
から読み込むことを示す。コンフィグレーション可能パ
ラメータアクセスモジュール233は、従前受信したコ
ンフィグレーションハンドルを用いて、システムレジス
トリにアクセスすることができる。コンフィグレーショ
ンハンドルは、コンフィグレーション可能パラメータア
クセスモジュール233を、システムレジストリのフィ
ルタインスタンス210bに関連するパラメータが存在
する部分に導くポインタとすることができ、またはその
他のアドレッシング方法とすることもできる。システム
レジストリの読み込みには、フィルタインスタンスを表
す識別番号の読み込みを含めることができる。
【0057】一実施例において、フィルタドライバは、
図2Bの矢印1のようにパラメータを送る際、コンフィ
グレーションハンドルをそのフィルタドライバに送信す
ることができる抽象インタフェースに登録する。抽象イ
ンタフェースは、レジストレーションを管理し、あるい
はレジストレーションをシステムレジストリに渡すこと
ができる。これに替えて、フィルタドライバが、データ
をシステムレジストリに直接登録することができる。
【0058】フィルタインスタンスをフィルタスタック
に挿入することには、受信したパラメータに基づいてフ
ィルタインスタンスを構成することを含めることができ
る。受信したパラメータは、抽象インタフェースから受
信することができ、またシステムレジストリから読み込
むこともできる。図2Bの矢印6は、フィルタ挿入モジ
ュール220が、パラメータを送信してフィルタインス
タンス210bを構成することを示す。フィルタインス
タンスは、種々のフィルタリングオペレーションを実行
するように構成することができるが、このオペレーショ
ンには、例えばデータパケットのモニタ、除去、挿入お
よび/またはデータパケット中のデータの変更、データ
パケットに含まれるアドレスの検証、データパケットの
圧縮、データパケットの暗号化またはこれらのいずれか
の組み合わせが含まれる。
【0059】フィルタインスタンスは、仮想私設通信網
(「VPN」)を介して送信されるデータパケットをフ
ィルタにかけるために構成することができる。たとえ
ば、ネットワーク205上でデータパケットは、物理的
な実体を持たない仮想的な接続を用いることで送信する
ことができる。データパケットは正確な目的地に順に届
けられるが、送信はアドホック的に種々の装置を経由し
て行われるかもしれない。すなわち、この接続には、物
理的な線は提供されない。
【0060】フィルタインスタンスは、また、電源制御
(「PM」)および/またはプラグアンドプレイ(「P
nP」)データを受信するようにエントリポイントを構
成することができる。コンピューティング装置が休止状
態のためスタンバイモードに入ると、これを示す電源制
御データをフィルタインスタンスに送ることができる。
同様に、データパケットのフローに影響する可能性のあ
る周辺機器、例えばネットワークインタフェースカード
などが、コンピューティング機器に挿入される場合、関
連するデータをフィルタインスタンスに送信することが
できる。
【0061】一実施形態において、フィルタインスタン
スは管理(management)インタフェースを用
いて構成することができる。管理インタフェースは、入
力機器を介してフィルタインスタンスに関連するパラメ
ータをユーザが入力するユーザインタフェースを含むこ
とができる。これらのパラメータは、フィルタドライバ
によって受信され、フィルタインスタンスの構成を容易
にする。この一例が、ユーザ構成可能(user co
nfigurable)ファイヤウォールである。
【0062】フィルタインスタンスを構成することに
は、また、フィルタインスタンスを複数のトランスポー
トレイヤプロトコルに「バインド」することも含めるこ
とができる。フィルタインスタンスは、トランスポート
レイヤプロトコルにバインドされると、そのトランスポ
ートレイヤプロトコルに関連するデータパケットをフィ
ルタにかけることができる。例えば、フィルタインスタ
ンス210bは、図2Aに示すトランスポートAとトラ
ンスポートBの双方データパケットをフィルタにかける
ように構成することができる。
【0063】前述のフィルタインスタンスのコンフィグ
レーションは単なる例であることが理解されるべきであ
る。本説明を再検討した後に、フィルタインスタンスが
多種多様な方法で構成されることは、本技術分野の当業
者にとって明らかであろう。
【0064】フィルタインスタンスをフィルタスタック
に挿入することには、フィルタインスタンスがフィルタ
スタックに適切に挿入されたことを検証することを含め
ることができる。これは、挿入ステータスを抽象インタ
フェースに送信することを含めることもできる。図2B
の矢印7および8は、挿入ステータスモジュール232
が、フィルタインスタンス210bの挿入ステータスの
ベリフィケーションを受信し、挿入ステータスを抽象イ
ンタフェース203に送信することを示す。
【0065】図3に戻って、フィルタインスタンスをフ
ィルタスタックに挿入することには、フィルタスタック
のオペレーションをスタートすることを含めることがで
きる(動作303)。これは、現在ポーズされているフ
ィルタインスタンスをスタートすることを含めることが
できる。フィルタインスタンスは、これに伴うスタート
モジュールをコールすることによってスタートさせるこ
とができる。例えば、フィルタスタートモジュール22
1は、フィルタドライバ210によってフィルタスタッ
クに挿入された、フィルタインスタンス210aおよび
210bのようなフィルタインスタンスをスタートする
ことを容易にすることができる。プロトコルスタックに
は、フィルタスタックがスタートしようとしていること
を通知することができる。
【0066】抽象インタフェース203は、フィルタス
タートモジュール221にデータを送り、フィルタドラ
イバ210によってフィルタスタック206に挿入され
たフィルタインスタンス210a、210b、またはそ
の他のフィルタインスタンスをオペレーション可能状態
にすることができる。フィルタインスタンスは、逐次的
にスタートさせることができる。例えば、データリンク
ドライバ204に最も近いフィルタインスタンス(すな
わち、フィルタインスタンス211a)が、最初に実行
される。データリンクドライバ204に最も近いフィル
タインスタンスがスタートに成功した後、次に最も近い
フィルタインスタンスをスタートすることができる。図
2Bに示すように、これは、フィルタインスタンス21
0aとなるであろう。この例では、残るフィルタインス
タンスは、次の順序でスタートするであろう:209
a、210b、208b、208aおよび207a。フ
ィルタインスタンス207aがオペレーションジョン可
能状態に到達することに成功すると、フィルタスタック
206もまた、オペレーション可能状態にあるとみなす
ことができる。フィルタスタックをスタートすることに
は、また、フィルタスタック206によってデータパケ
ットを適切に処理することができるように、ダミールー
チンをルーチンハンドラにスワップすることを含めるこ
とができる。プロトコルスタックには、フィルタスタッ
ク206がオペレーション可能であることを通知するこ
とができる。
【0067】全体的にポーズしているフィルタスタック
を部分的に再スタートすることができる。すなわち、フ
ィルタスタック内のフィルタインスタンスのいくつか
は、他のフィルタインスタンスがポーズしたままで、再
スタートする。これは、フィルタスタック内の特定のフ
ィルタインスタンスが再スタートする際行われるであろ
う。この状況では、トランスポートレイヤにより近いフ
ィルタインスタンスはポーズしたままであり、データリ
ンクレイヤにより近いフィルタインスタンスが再スター
トすることになるであろう。これは、逐次的に行われ、
トランスポートレイヤにより近いフィルタインスタンス
の前に、データリンクレイヤにより近いフィルタインス
タンスが再スタートすることができる。
【0068】例えば、図2Aでは、フィルタスタック2
06内のフィルタインスタンスの全てが、現在ポーズし
ていると仮定する。フィルタインスタンス209aが再
スタートする場合、フィルタインスタンス211aが最
初に、次にフィルタインスタンス210aが、さらにフ
ィルタインスタンス209bがスタートする。フィルタ
インスタンス208b、フィルタインスタンス208a
およびフィルタインスタンス207aを含む、その他の
トランスポートレイヤにより近いフィルタインスタンス
はポーズしたままとすることができる。
【0069】図2Aおよび2Bに示すモジュールおよび
矢印は単なる例であることを理解すべきである。異なる
モジュールに伴うファンクショナリティは、本発明の精
神と範囲を離れない限り組み合わせることができるであ
ろう。例えば、フィルタドライバ210は、フィルタイ
ンスタンスをフィルタスタックに追加することに伴うオ
ペレーションを実行する単一のモジュールを有すること
ができる。フィルタドライバ210は、抽象インタフェ
ース203の一部として含まれるかもしれない。同様
に、図2Bに含まれる矢印で示すファンクショナリティ
が実行される順序もまた、単なる例示である。図2Bに
含まれる矢印で示すファンクショナリティは、本発明の
精神と範囲を離れない限りで種々の順序で実行される。
本説明を再検討した後に、モジュールと結合した機能が
種々多様な方法で構成されることは、本技術分野の当業
者にとって明らかであろう。
【0070】フィルタインスタンスをフィルタスタック
に挿入することに加え、本発明の実施形態では、フィル
タインスタンスをフィルタスタックから除去することが
できる。フィルタインスタンスをフィルタスタックから
除去する際、フィルタスタックは、前述の方法を用いて
ポーズし、スタートすることができる。
【0071】フィルタインスタンスをフィルタスタック
から除去するとき、フィルタドライバは、フィルタイン
スタンスによって使用するために従前に割り当てられた
資源を解放することができる。例えば、抽象インタフェ
ース203は、フィルタインスタンス210bが、フィ
ルタスタック206から除去されるべきであることを示
して、フィルタドライバ210にデータを送信すること
ができる。フィルタスタック206はポーズされ、フィ
ルタドライバ210はフィルタインスタンス210bを
フィルタスタック206から除去するであろう。次に、
フィルタドライバ210は、フィルタインスタンス21
0bによって使用するためアロケートされた資源を解放
する。それから、フィルタスタック206はスタートす
る。関係するプロトコルスタックには、フィルタスタッ
クが、フィルタインスタンス210bの機能を最早含ま
ないことが通知される。
【0072】図2Cに示すのは、フィルタインスタンス
に伴うフィルタリングオペレーションをバイパスするこ
とを容易にすることができる機能コンポーネントのいく
つかの例である。フィルタリングオペレーションは、パ
ケットおよび/またはコンフィグレーションの情報に由
来する特性に基づいてバイパスすることができる。フィ
ルタリングオペレーションをバイパスすることには、パ
ケットが完全にフィルタインスタンスをバイパスするこ
と、および受信したパケットが1つまたは複数のフィル
タインスタンスの内部フィルタリングオペレーションを
バイパスすることを含めることができる。図4は、フィ
ルタインスタンスに伴うフィルタリングオペレーション
の少なくともいくつかをバイパスするためのメソッドの
例を示すフロー図である。図4の方法は、図2Cに含ま
れる機能コンポーネントを参照して議論されるであろ
う。
【0073】図2Cには、フィルタインスタンス210
bが示されるが、それはフィルタスタック206に含ま
れる。フィルタインスタンス210bは、フィルタオペ
レーション216a、216b、216cに加え、制御
モジュール215を含む。図2Cには、パケットがトラ
ンスポートレイヤからデータリンクレイヤに送信される
通信パスが示されている。通信パスは、データパケット
をプロトコルスタックが送信するデータパス、または制
御パケットをプロトコルスタックが送信する制御パスを
含むことができる。
【0074】このような制御パスは、リクエストおよび
状態表示(status indication)を含
むことができる。リクエストは、トランスポートレイヤ
からデータリンクレイヤに送信される。リクエストは、
ネットワークインタフェースアダプタ、例えばネットワ
ークインタフェースアダプタ153がマルチキャストパ
ケット受け入れるか、または無差別モードに置かれよう
としていることの表示を含むことができる。リクエスト
は、また、質問(query)を含むことができる。例
えば、リクエストは、ネットワークインタフェースアダ
プタのメディアアクセス制御アドレスについての質問、
またはネットワークインタフェースアダプタが現在マル
チキャストパケットを受信しているかどうかについて質
問を発することができる。
【0075】状態表示は、データリンクレイヤからトラ
ンスポートレイヤに送信することができる。状態表示
は、データリンクレイヤからの、メディアが現在接続さ
れているという表示、または切断されているという表示
を含むことができる。
【0076】図4の方法は、入力パケットを処理すると
いう1つの動作(動作401)を含むことができる。こ
れは、フィルタ210bがパケット240aを受信する
ことを含めることができる。図2Cで、パケット240
aは、フィルタインスタンス208bから送られる。こ
の図示された実施形態において、パケット240aは、
トランスポートレイヤプロトコル202からデータリン
クドライバ204へのデータパスに沿って送信されるで
あろう。また、制御パスに沿って送信されるパケットは
フィルタにかけられるかもしれない。また、パケット
は、如何なる順序でもフィルタインスタンスによっては
フィルタにかけられないかもしれない。たとえば、パケ
ットは、フィルタインスタンス208aからフィルタイ
ンスタンス210aに渡すことができる。入力パケット
は、フィルタインスタンスによって生成されたパケット
とすることもできる。
【0077】これに代わる一実施例において、パケット
240cによって表されるパケットが処理されるであろ
う。パケット240cの処理では、パケット240c
が、フィルタインスタンス210bのフィルタリングオ
ペレーションを完全にバイパスする制御パスまたはデー
タパスを介して送信されることを決定することができ
る。図2Cに示すように、パケット240cは、破線の
矢印に沿ってフィルタインスタンス208bから直接フ
ィルタインスタンス209aに送信される。パケット2
40cは、フィルタインスタンス210bが、データパ
スまたは制御パスに対してバイパスモードでオペレート
するように構成されていたことから、フィルタインスタ
ンス240bをバイパスすることができる。
【0078】フィルタインスタンスは、バイパスモード
でオペレートするように抽象インタフェース203によ
って構成することができる。フィルタインスタンスは、
最初にスタートした初期または実行中にバイパスモード
に構成することもできる。すなわち、バイパスモードに
初期化されなかったフィルタインスタンスは、後にバイ
パスモードでオペレートするように設定することができ
る。初期化の間、フィルタドライバは、スタートプロセ
ス中にそのデータパスに対するNULLハンドラを示す
ことによって、フィルタインスタンスを1つまたは複数
のデータパス、または制御パスに対するバイパスモード
でスタートさせようとしていることを示す。
【0079】初期化の後の実行時に、フィルタドライバ
は、いくつかのデータパスまたは制御パスに対し、フィ
ルタインスタンスをバイパスモードに設定しようとする
ことができる。この場合、フィルタドライバは、抽象イ
ンタフェースにそのフィルタインスタンスを再スタート
するよう要請するであろう。次いで、抽象インタフェー
スは、本明細書で既に示した方法にしたがって、そのフ
ィルタインスタンスをポーズし、および再スタートする
であろう。フィルタインスタンスが再スタートする際、
フィルタドライバは、フィルタインスタンスがいくつか
のデータパスまたは制御パスに対しバイパスモードでオ
ペレートしようとしていることを、そのバイパスされた
パスに対するNULLハンドラを提供することによって
示す。
【0080】フィルタインスタンスは、いくつかのデー
タパスまたは制御パスに沿って処理されるパケットによ
ってバイパスされ、およびその他のデータパスまたは制
御パスに沿って処理されるパケットを受信するように構
成することができる。例えば、あるフィルタインスタン
スは、状態表示をバイパスし、さらにその他の全てのタ
イプのパケットを受信するように構成することができ
る。これは、不活性(dampen)メディア切断メッ
セージに対して行うことができるが、このメッセージは
アプリケーションに注目されない。その他の例では、デ
ータパスに沿ってトランスポートレイヤからデータリン
クレイヤに送信されるデータパケットは、フィルタイン
スタンスをバイパスする一方、データパスに沿ってデー
タリンクレイヤからトランスポートレイヤに送信される
データパケットは、フィルタインスタンスによって受信
することができる。
【0081】同様に、あるデータパスまたは制御パスに
対して現在バイパスモードにあるフィルタインスタンス
は、実行中に、そのデータパスまたは制御パスについて
パケットを受信するように構成することができる。これ
らの場合、フィルタドライバは、抽象インタフェース2
03にフィルタインスタンスの再スタートを要請するこ
とができる。次に、抽象インタフェース203は、本明
細書で既に示した方法にしたがって、そのフィルタイン
スタンスをポーズし、および再スタートするであろう。
フィルタインスタンスが再スタートすると、フィルタド
ライバは、フィルタインスタンスがデータパスまたは制
御パスからパケットを受信しようとしていることを、起
動されたデータパスに対するノンNULLハンドラを提
供することによって示す。
【0082】バイパスモードでオペレートするように、
またはパケットを受信するようにフィルタインスタンス
を構成することは、エクスターナルイベントによって行
うことができる。例えば、ユーザは、ファイヤウォール
の管理インタフェースを通して、いくつかのデータパス
に対しバイパスモードでオペレートするようにフィルタ
インスタンスを構成することができる。これは、フィル
タインスタンスのフィルタリングオペレーションが、使
用の時点でアプリケーションの中断を生じさせる場合に
実行することができる。
【0083】図4の方法は、フィルタスタックに含まれ
る全てではないが、いくつかのオペレーションによって
フィルタにかけられた出力パケットを送信するためのス
テップ(ステップ404)を含むことができる。これ
は、フィルタインスタンスの1つまたは複数のフィルタ
リングオペレーションをバイパスし(動作402)、お
よびフィルタリングオペレーションが実行された場合、
入力パケットと異なる可能性のある出力パケットを送信
する(動作403)動作の実行を含むことができる。フ
ィルタリングオペレーションをバイパスするパケットを
送信することは、そのフィルタリングプロセスの効率性
を高めるであろう。
【0084】フィルタインスタンスの1つまたは複数の
オペレーションをバイパスすること(動作402)は、
フィルタインスタンス210bに含まれる1つまたは複
数のフィルタリングオペレーションをバイパスすること
を含む。フィルタインスタンス210bがデータパケッ
ト240aを受信すると、制御モジュール215は、デ
ータパケット240aの特性を解析する。解析は、入力
パケットのデータフローの方向を決定することを含める
ことができる。データフローの方向は、データリンクド
ライバからトランスポートレイヤプロトコルへ、または
トランスポートレイヤプロトコルからデータリンクドラ
イバへとすることができる。解析は、また、入力データ
パケットが処理されるプロトコルを決定するが、それ
は、例えばIP、TCP、インターネットパケット交換
(「IPX」)、他のトランスポートレイヤプロトコル
またはその他、開放型システム間相互接続(「OS
I」)モデルのレイヤに規定されたプロトコルとするこ
とができる。制御モジュール215がデータパケット2
40aをIPXで処理することを決定する場合、フィル
タオペレーション216aおよび216cはバイパスさ
れる。しかし、制御モジュール215がデータパケット
240aをIPで処理することを決定する場合、フィル
タオペレーション216bがイパスされる。
【0085】以上に替えて、フィルタインスタンス21
0bは、あるデータパスまたは制御パスに沿ったパケッ
トが、フィルタインスタンス210bを完全にバイパス
するように構成することができる。図2Cに示すよう
に、フィルタインスタンス210bは、トランスポート
レイヤからデータリンクレイヤへのデータパスに沿って
送信されるパケットがフィルタインスタンス210bを
バイパスするように構成することができる。パケット2
40cがデータパケットである場合、フィルタインスタ
ンス208bからフィルタインスタンス209aへの破
線の矢印が示すように、フィルタインスタンス210b
をバイパスするであろう。
【0086】フィルタインスタンス210bがパケット
を受信したにもかかわらず、制御モジュール215が、
如何なるフィルタリングオペレーションも実施すること
なく、そのパケットをフィルタインスタンス210bを
通って直接送る場合もまたあるであろう。全てのフィル
タリングオペレーションがこの方法でバイパスされる、
データパケット240aとデータパケット240bは、
事実上同様のものとなる。
【0087】フィルタリングオペレーションが実行され
た場合、入力パケットと異なった出力パケットを送信す
ること(動作403)には、変更されたデータを含むデ
ータパケットを送信することを含めることができる。フ
ィルタインスタンス210bに含まれるフィルタリング
オペレーションのいずれかが実行される場合、データパ
ケット240bは、データパケット240aと異なるで
あろう。これは、フィルタリングオペレーションが、デ
ータパケット240aにデータを追加し、データパケッ
ト240aからデータを除去し、またはデータパケット
240aに含まれるデータを変更した場合に生じる。し
かし、フィルタリングオペレーションが実行されなかっ
た場合、データパケット240aとデータパケット24
0bとは実質上同様となるであろう。
【0088】本発明の方法を用いると、データパケット
は、通信パスを介した効率的なデータパケットフローを
促進する方法でフィルタにかけることができる。フィル
タインスタンスは、そのプロトコルスタックがまだデー
タ送信が可能であっても、フィルタスタックに挿入し、
またはフィルタスタックから除去することができる。こ
れは、フィルタスタックのファンクショナリティが変化
しても、プロトコルスタックが再構築されることがない
ため、プロセッサとネットワークの資源を保護する。フ
ィルタインスタンスは複数のプロトコルで使用すること
ができることから、重複したロジックが1つのコンピュ
ーティング装置に実装される可能性が減少する。加え
て、データパケットおよび/またはコンフィグレーショ
ン情報の特性に基づいてフィルタリングオペレーション
をバイパスすることによって、無関係なプロセッサのオ
ペレーションが実行される可能性を減少させる。
【0089】本発明は、その精神と本質から離れること
なくその他の特定の形式で実現することができる。記載
された実施形態は、例示したものに過ぎずこれに限定さ
れるものでないことが全ての点で考慮されなければなら
ない。したがって、本発明の範囲は、上記の実施例等の
記載よりもむしろ、特許請求の範囲によって示される。
請求項と等価の範囲内の全ての変更は、これら請求項の
範囲内に包含されなければならない。
【図面の簡単な説明】
【図1】本発明の適切なオペレート環境を提供する実施
例にかかる処理システムを示す図である。
【図2A】フィルタインスタンスをフィルタスタックに
挿入することを容易にする機能コンポーネントのいくつ
かのうちの一実施例を示す図である。
【図2B】フィルタインスタンスをフィルタスタックに
挿入することを容易にするための機能コンポーネント間
で生じる相互作用のいくつかのうちの一例を示す図であ
る。
【図2C】フィルタインスタンスに関連するフィルタリ
ングオペレーションをバイパスすることを容易にする、
機能コンポーネントのいくつかのうちの一実施例を示す
図である。
【図3】フィルタインスタンスをフィルタスタックに挿
入する方法の実施例を示すフロー図である。
【図4】フィルタインスタンスに関連するフィルタリン
グオペレーションの少なくともいくつかをバイパスする
ための方法の一実施例を示すフロー図である。
【符号の説明】
120、201 コンピュータ 121 プロセッシングユニット 122 システムメモリ 123 システムバス 124 読取専用メモリ 125 ランダムアクセスメモリ 126 基本入出力システム 127 磁気ハードディスクドライブ装置 128 磁気ディスクドライブ装置 129 取外し可能な磁気ディスク 130 光ディスクドライブ装置 131 取外し可能な光ディスク 132 ハードディスクドライブインタフェース 133 磁気ディスクドライブインタフェース 134 光ドライブインタフェース 135 オペレーティングシステム 136 アプリケーションプログラム 137 プログラムモジュール 138 プログラムデータ 139 磁気ハードディスク 140 キーボード 142 ポインティング装置 146 シリアルポートインタフェース 147 モニタ 148 ビデオアダプタ 149 リモートコンピュータ 150 メモリ記憶装置 151 ローカルネットワーク 152 広域ネットワーク 153 ネットワークインタフェースアダプタ 154 モデム 202 トランスポートレイヤプロトコル 203 抽象インタフェース 204 データリンクドライバ 205 ネットワーク 206 フィルタスタック 207、208、209、211 フィルタインスタン
ス 210 フィルタドライバ 215 制御モジュール 216 フィルタオペレーション 220 フィルタ挿入モジュール 221 フィルタスタートモジュール 222 フィルタポーズモジュール 223 システムレジストリ 230 コンテキスト生成モジュール 231 資源アロケートモジュール 232 挿入ステータスモジュール 233 コンフィグレーション可能パラメータアクセス
モジュール 240 パケット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アリレザ ダバ アメリカ合衆国 98033 ワシントン州 カークランド 126 アベニュー ノース イースト 6518 (72)発明者 アディチャ デューブ アメリカ合衆国 98033 ワシントン州 カークランド レイク ワシントン ブー ルバード 4315 ナンバー3104 (72)発明者 アルビンド マーチング アメリカ合衆国 98029 ワシントン州 イサコア ノースイースト ジェード ス トリート 1452 (72)発明者 リ フェンフェン アメリカ合衆国 98007 ワシントン州 ベルビュー ノースイースト 37 プレイ ス ディー8 14621 Fターム(参考) 5B089 GB01 HB11 KA10 KB09 KF04 5K033 AA01 AA02 AA09 BA04 BA13 CB01 CC01 DA03 DB12 DB16

Claims (68)

    【特許請求の範囲】
  1. 【請求項1】 通信パスを介して送信されるデータパケ
    ットに対してフィルタリングオペレーションを実行する
    ことができる、1つまたは複数のフィルタインスタンス
    を含むフィルタスタックを制御するための抽象インタフ
    ェースに関連する1つまたは複数のプロトコルスタック
    を含む前記通信パスによって、通信可能にネットワーク
    に接続されるコンピューティング装置において、前記フ
    ィルタインスタンスは、プロセッサおよびネットワーク
    資源を、関連するプロトコルスタックのオペレーション
    を中断することなくフィルタインスタンスを前記フィル
    タスタックに挿入して、保存する方法であって、 フィルタスタックのオペレーションをポーズする動作
    と、 少なくとも1つの関連するプロトコルスタックがデータ
    転送可能な間に、前記フィルタインスタンスを前記フィ
    ルタスタックに挿入する動作と、 フィルタスタックのオペレーションをスタートする動作
    とを備えたことを特徴とする方法。
  2. 【請求項2】 前記フィルタスタックのオペレーション
    をポーズする動作は、 前記フィルタスタックに含まれる1つまたは複数のフィ
    ルタインスタンスをポーズする動作を備えたことを特徴
    とする請求項1に記載の方法。
  3. 【請求項3】 前記フィルタスタックに含まれる1つま
    たは複数のフィルタインスタンスをポーズする動作は、 1つまたは複数のポーズルーチンが、前記1つまたは複
    数のフィルタインスタンスがポーズされるべきであるこ
    とを示すデータを受信する動作を備えたことを特徴とす
    る請求項2に記載の方法。
  4. 【請求項4】 前記フィルタスタックのオペレーション
    をポーズする動作は、 転送されたデータパケットを、前記データパケットに含
    まれるデータを変更することなく前記通信パスにデータ
    パケットを返送するダミールーチンへ、再送する動作を
    備えたことを特徴とする請求項1に記載の方法。
  5. 【請求項5】 前記フィルタインスタンスを前記フィル
    タスタックに挿入する動作は、 前記抽象インタフェースから受信したパラメータを用い
    ることによって構成されたフィルタインスタンスを挿入
    する動作を備えたことを特徴とする請求項1に記載の方
    法。
  6. 【請求項6】 前記フィルタインスタンスを前記フィル
    タスタックに挿入する動作は、 フィルタドライバが、データを抽象インタフェースに転
    送することを容易にするために用いることができるルー
    チンハンドラを受信する動作を備えたことを特徴とする
    請求項1に記載の方法。
  7. 【請求項7】 前記フィルタインスタンスを前記フィル
    タスタックに挿入する動作は、 フィルタドライバが、前記フィルタインスタンスのため
    の資源をアロケートする動作を備えたことを特徴とする
    請求項1に記載の方法。
  8. 【請求項8】 前記フィルタインスタンスを前記フィル
    タスタックに挿入する動作は、 フィルタドライバが、前記フィルタインスタンスのため
    のフィルタインスタンスコンテキストを生成する動作を
    備えたことを特徴とする請求項1に記載の方法。
  9. 【請求項9】 前記フィルタドライバが前記フィルタイ
    ンスタンスのためのフィルタインスタンスコンテキスト
    を生成する動作は、 前記フィルタドライバが、前記フィルタインスタンスコ
    ンテキストを前記抽象インタフェースに送信する動作を
    備えたことを特徴とする請求項8に記載の方法。
  10. 【請求項10】 前記フィルタインスタンスを前記フィ
    ルタスタックに挿入する動作は、 フィルタドライバが、前記抽象インタフェースにデータ
    を登録する動作を備えたことを特徴とする請求項1に記
    載の方法。
  11. 【請求項11】 前記フィルタインスタンスを前記フィ
    ルタスタックに挿入する動作は、 フィルタドライバが、システムレジストリにデータを登
    録する動作を備えたことを特徴とする請求項1に記載の
    方法。
  12. 【請求項12】 前記フィルタインスタンスを前記フィ
    ルタスタックに挿入する動作は、 システムレジストリから受信したパラメータを用いるこ
    とによって構成された前記フィルタインスタンスを挿入
    する動作を備えたことを特徴とする請求項1に記載の方
    法。
  13. 【請求項13】 前記フィルタインスタンスを前記フィ
    ルタスタックに挿入する動作は、 前記フィルタスタックにおける、予め定められた位置に
    前記フィルタインスタンスを挿入する動作を備えたこと
    を特徴とする請求項1に記載の方法。
  14. 【請求項14】 前記フィルタインスタンスを前記フィ
    ルタスタックに挿入する動作は、 仮想接続上で転送されるデータパケットをフィルタにか
    けることができるフィルタインスタンスを挿入する動作
    を備えたことを特徴とする請求項1に記載の方法。
  15. 【請求項15】 前記フィルタインスタンスを前記フィ
    ルタスタックに挿入する動作は、 前記コンピューティング装置の電源制御に関連するデー
    タを受信するためのエントリポイントを含むフィルタイ
    ンスタンスを挿入する動作を備えたことを特徴とする請
    求項1に記載の方法。
  16. 【請求項16】 前記フィルタインスタンスを前記フィ
    ルタスタックに挿入する動作は、 プラグアンドプレイデバイスに関連するデータを受信す
    るためのエントリポイントを含むフィルタインスタンス
    を挿入する動作を備えたことを特徴とする請求項1に記
    載の方法。
  17. 【請求項17】 前記フィルタインスタンスを前記フィ
    ルタスタックに挿入する動作は、 管理インタフェースを通して変更することができる属性
    を含むフィルタインスタンスを挿入する動作を備えたこ
    とを特徴とする請求項1に記載の方法。
  18. 【請求項18】 前記フィルタインスタンスを前記フィ
    ルタスタックに挿入する動作は、 フィルタインスタンスを複数のトランスポートレイヤプ
    ロトコルにバインドされたフィルタスタック上に挿入す
    る動作を備えたことを特徴とする請求項1に記載の方
    法。
  19. 【請求項19】 前記フィルタインスタンスを前記フィ
    ルタスタックに挿入する動作は、 フィルタドライバが、前記フィルタスタックに前記フィ
    ルタインスタンスが挿入されたことを検証する動作を備
    えたことを特徴とする請求項1に記載の方法。
  20. 【請求項20】 前記フィルタドライバが、前記フィル
    タスタックに前記フィルタインスタンスが挿入されたこ
    とを検証する動作は、 前記フィルタドライバが、挿入ステータスを前記抽象イ
    ンタフェースに送信する動作を備えたことを特徴とする
    請求項19に記載の方法。
  21. 【請求項21】 前記フィルタスタックのオペレーショ
    ンをスタートする動作は、 前記フィルタスタックに含まれる1つまたは複数のフィ
    ルタインスタンスをスタートする動作を備えたことを特
    徴とする請求項1に記載の方法。
  22. 【請求項22】 前記フィルタスタックに含まれる1つ
    または複数のフィルタインスタンスをスタートする動作
    は、 1つまたは複数のスタートルーチンが、前記1つまたは
    複数のフィルタインスタンスがスタートされるべきであ
    ることを示すデータを受信する動作を備えたことを特徴
    とする請求項21に記載の方法。
  23. 【請求項23】 関連するプロトコルスタックに、前記
    フィルタスタックのオペレーションがポーズされようと
    していることを通知する動作をさらに備えたことを特徴
    とする請求項1に記載の方法。
  24. 【請求項24】 関連するプロトコルスタックに、前記
    フィルタスタックが挿入された前記フィルタインスタン
    スを現在含んでいることを通知する動作をさらに備えた
    ことを特徴とする請求項1に記載の方法。
  25. 【請求項25】 関連するプロトコルスタックに、前記
    フィルタスタックのオペレーションがスタートされよう
    としていることを通知する動作をさらに備えたことを特
    徴とする請求項1に記載の方法。
  26. 【請求項26】 1つまたは複数のフィルタインスタン
    スを含むフィルタスタックを制御するための抽象インタ
    フェースに関連する1つまたは複数のプロトコルスタッ
    クを含む前記通信パスによって、通信可能にネットワー
    クに接続されるコンピューティング装置において、前記
    フィルタインスタンスは、プロセッサおよびネットワー
    ク資源を、関連するプロトコルスタックのオペレーショ
    ンを中断することなくフィルタインスタンスを前記フィ
    ルタスタックに除去して、保存する方法であって、 フィルタスタックのオペレーションをポーズする動作
    と、 少なくとも1つの関連するプロトコルスタックがデータ
    転送可能な間に、前記フィルタインスタンスを前記フィ
    ルタスタックから除去する動作と、 フィルタスタックのオペレーションをスタートする動作
    とを備えたことを特徴とする方法。
  27. 【請求項27】 前記フィルタスタックのオペレーショ
    ンをポーズする動作は、 前記フィルタスタックに含まれる1つまたは複数のフィ
    ルタインスタンスをポーズする動作を備えたことを特徴
    とする請求項26に記載の方法。
  28. 【請求項28】 前記フィルタスタックに含まれる1つ
    または複数のフィルタインスタンスをポーズする動作
    は、 1つまたは複数のポーズルーチンが、前記1つまたは複
    数のフィルタインスタンスがポーズされるべきであるこ
    とを示すデータを受信する動作を備えたことを特徴とす
    る請求項27に記載の方法。
  29. 【請求項29】 前記フィルタスタックのオペレーショ
    ンをポーズする動作は、 転送されたデータパケットを、前記データパケットを前
    記通信パスに返送するダミールーチンへ再送する動作を
    備えたことを特徴とする請求項26に記載の方法。
  30. 【請求項30】 前記フィルタインスタンスを前記フィ
    ルタスタックから除去する動作は、 前記フィルタインスタンスをポーズする動作を備えたこ
    とを特徴とする請求項26に記載の方法。
  31. 【請求項31】 前記フィルタインスタンスを前記フィ
    ルタスタックから除去する動作は、 フィルタドライバが、前記フィルタインスタンスで用い
    られた資源を解放する動作を備えたことを特徴とする請
    求項26に記載の方法。
  32. 【請求項32】 前記フィルタスタックのオペレーショ
    ンをスタートする動作は、 前記フィルタスタックに含まれる1つまたは複数のフィ
    ルタインスタンスをスタートする動作を備えたことを特
    徴とする請求項26に記載の方法。
  33. 【請求項33】 前記フィルタスタックに含まれる1つ
    または複数のフィルタインスタンスをスタートする動作
    は、 1つまたは複数のスタートルーチンが、前記1つまたは
    複数のフィルタインスタンスがスタートされるべきであ
    ることを示すデータを受信する動作を備えたことを特徴
    とする請求項32に記載の方法。
  34. 【請求項34】 関連するフィルタスタックのオペレー
    ションがポーズされようとしていることを前記プロトコ
    ルスタックに通知する動作をさらに備えたことを特徴と
    する請求項26に記載の方法。
  35. 【請求項35】 関連するフィルタスタックが挿入され
    た前記フィルタインスタンスを現在含んでいることを前
    記プロトコルスタックに通知する動作をさらに備えたこ
    とを特徴とする請求項26に記載の方法。
  36. 【請求項36】 関連するフィルタスタックのオペレー
    ションがスタートされようとしていることを前記プロト
    コルスタックに通知する動作をさらに備えたことを特徴
    とする請求項26に記載の方法。
  37. 【請求項37】 通信パスを介して送信されるデータパ
    ケットのいくつかの部分に対してフィルタリングオペレ
    ーションを実行することができる、フィルタスタックを
    制御するための抽象インタフェースに関連する1つまた
    は複数のプロトコルスタックを含む前記通信パスによっ
    て、通信可能にネットワークに接続されるコンピューテ
    ィング装置において、前記フィルタインスタンスは、プ
    ロセッサおよびネットワーク資源を、関連するプロトコ
    ルスタックのオペレーションを中断することなくフィル
    タインスタンスを前記フィルタスタックに挿入して、保
    存する方法であって、 フィルタスタックのオペレーションをポーズする動作
    と、 再構成する間、通信パスに沿って効率的なデータの転送
    を促進するように前記フィルタスタックに含まれるフィ
    ルタリングオペレーションを再構成するステップとを備
    えたことを特徴とする方法。
  38. 【請求項38】 パケットに対してフィルタリングオペ
    レーションを実行することができる、1つまたは複数の
    フィルタインスタンスを制御するための抽象インタフェ
    ースに関連する1つまたは複数のプロトコルスタックを
    含む前記通信パスによって、通信可能にネットワークに
    接続されるコンピューティング装置において、プロセッ
    サおよびネットワーク資源を、前記1つまたは複数のプ
    ロトコルスタックに関連するパケットをフィルタにかけ
    て、保存する方法であって、 入力パケットを処理する動作と、 該入力パケットが、フィルタインスタンスに関連する1
    つまた2つ以上の前記フィルタリングオペレーションを
    バイパスする動作と、およびフィルタリングオペレーシ
    ョンが実行された場合、前記入力パケットと異なる可能
    性のある出力パケットを送信する動作とを備えたことを
    特徴とする方法。
  39. 【請求項39】 前記入力パケットを処理する動作は、 データリンクレイヤに関連する入力パケットを処理する
    動作を備えたことを特徴とする請求項38に記載の方
    法。
  40. 【請求項40】 前記入力パケットを処理する動作は、 データリンクレイヤドライバに関連する入力パケットを
    処理する動作を備えたことを特徴とする請求項38に記
    載の方法。
  41. 【請求項41】 前記入力パケットを処理する動作は、 トランスポートレイヤプロトコルに関連する入力パケッ
    トを処理する動作を備えたことを特徴とする請求項38
    に記載の方法。
  42. 【請求項42】 前記トランスポートレイヤプロトコル
    に関連する入力パケットを処理する動作は、 伝送制御プロトコルに関連する入力パケットを処理する
    動作を備えたことを特徴とする請求項41に記載の方
    法。
  43. 【請求項43】 前記トランスポートレイヤプロトコル
    に関連する入力パケットを処理する動作は、 インターネットプロトコルに関連する入力パケットを処
    理する動作を備えたことを特徴とする請求項41に記載
    の方法。
  44. 【請求項44】 前記トランスポートレイヤプロトコル
    に関連する入力パケットを処理する動作は、 トランスポートレイヤドライバからの入力パケットを処
    理する動作を備えたことを特徴とする請求項41に記載
    の方法。
  45. 【請求項45】 前記入力パケットを処理する動作は、 トランスポートレイヤからデータリンクレイヤへのデー
    タパスに沿って転送されるデータパケットを処理する動
    作を備えたことを特徴とする請求項38に記載の方法。
  46. 【請求項46】 前記入力パケットを処理する動作は、 データリンクレイヤからトランスポートレイヤへのデー
    タパスに沿って転送されるデータパケットを処理する動
    作を備えたことを特徴とする請求項38に記載の方法。
  47. 【請求項47】 前記入力パケットを処理する動作は、 リクエスト情報を含み、および制御パスに沿って転送さ
    れる制御パケットを処理する動作を備えたことを特徴と
    する請求項38に記載の方法。
  48. 【請求項48】 前記入力パケットを処理する動作は、 システム表示情報を含み、および制御パスに沿って転送
    される制御パケットを処理する動作を備えたことを特徴
    とする請求項38に記載の方法。
  49. 【請求項49】 前記入力パケットが、フィルタインス
    タンスに関連する1つまた2つ以上の前記フィルタリン
    グオペレーションをバイパスする動作は、 受信された入力パケットが、フィルタスタックに含まれ
    るフィルタインスタンスに関連する、1つまた2つ以上
    の内部フィルタリングオペレーションを、バイパスする
    動作を備えたことを特徴とする請求項38に記載の方
    法。
  50. 【請求項50】 前記入力パケットが、フィルタインス
    タンスに関連する、1つまた2つ以上の前記フィルタリ
    ングオペレーションを、バイパスする動作は、 受信した入力パケットが、前記入力パケットに関連する
    特性に基づいてフィルタインスタンスに関連する1つま
    た2つ以上の内部フィルタリングオペレーションをバイ
    パスする動作を備えたことを特徴とする請求項38に記
    載の方法。
  51. 【請求項51】 前記入力パケットが、フィルタインス
    タンスに関連する1つまた2つ以上の前記フィルタリン
    グオペレーションをバイパスする動作は、 前記入力パケットが、前記フィルタインスタンスを完全
    にバイパスする動作を備えたことを特徴とする請求項3
    8に記載の方法。
  52. 【請求項52】 前記入力パケットが、前記フィルタイ
    ンスタンスを完全にバイパスする動作は、 前記フィルタインスタンスが、前記入力パケットが転送
    される通信パスに対してバイパスモードでオペレートす
    るように構成され、前記入力パケットが、前記フィルタ
    インスタンスを完全にバイパスする動作を備えたことを
    特徴とする請求項51に記載の方法。
  53. 【請求項53】 前記受信した入力パケットが、前記入
    力パケットに関連する特性に基づいてフィルタインスタ
    ンスに関連する1つまた2つ以上の内部フィルタリング
    オペレーションをバイパスする動作は、 入力パケットが第1のプロトコルに関連するときは、フ
    ィルタリングオペレーションの第1のセットをバイパス
    し、および入力パケットが第2のプロトコルに関連する
    ときは、フィルタリングオペレーションの第2のセット
    をバイパスする動作を備えたことを特徴とする請求項5
    0に記載の方法。
  54. 【請求項54】 フィルタリングオペレーションの前記
    第1のセットとフィルタリングオペレーションの前記第
    2のセットとが異なることを特徴とする請求項53に記
    載の方法。
  55. 【請求項55】 前記フィルタリングオペレーションが
    実行された場合、入力パケットと異なる可能性のある出
    力パケットを送信する動作は、 フィルタリングオペレーションが入力パケットを変更し
    た場合、入力パケットと異なる可能性のある出力パケッ
    トを送信する動作を備えたことを特徴とする請求項38
    に記載の方法。
  56. 【請求項56】 フィルタインスタンスを制御するため
    の抽象インタフェースに関連する1つまたは複数のプロ
    トコルスタックを含む通信パスによって、通信可能にネ
    ットワークに接続されるコンピューティング装置におい
    て、プロセッサおよびネットワーク資源を、前記1つま
    たは複数のプロトコルスタックに関連するパケットをフ
    ィルタにかけて、保存する方法であって、 プロトコルに関連する入力パケットを受信する動作と、 フィルタスタックに含まれるフィルタリングオペレーシ
    ョンの全てではないがいくつかによって、フィルタされ
    た出力パケットを転送して、フィルタリングプロセスの
    効率性を増大させる動作とを備えたことを特徴とする方
    法。
  57. 【請求項57】 パケットに対してフィルタリングオペ
    レーションを実行することができる、1つまたは複数の
    フィルタインスタンスに関連する1つまたは複数のプロ
    トコルスタックを含む前記通信パスによって、通信可能
    にネットワークに接続されるコンピューティング装置に
    おいて、プロセッサおよびネットワーク資源を、前記1
    つまたは複数のプロトコルスタックに関連するパケット
    をフィルタにかけて、保存する方法であって、 フィルタインスタンスが、入力パケットを受信する動作
    と、 入力パケットが、データリンクレイヤからトランスポー
    トレイヤへの通信パス上を転送されるとき、フィルタリ
    ングオペレーションの第1のセットをバイパスし、入力
    パケットがトランスポートレイヤからデータリンクレイ
    ヤへの通信パス上を転送されるとき、フィルタリングオ
    ペレーションの第2のセットをバイパスする動作と、お
    よびフィルタリングオペレーションが実行された場合、
    入力パケットと異なる可能性のある出力パケットを送信
    する動作とを備えたことを特徴とする方法。
  58. 【請求項58】 フィルタリングオペレーションの前記
    第1のセットとフィルタリングオペレーションの前記第
    2のセットとが異なることを特徴とする請求項57に記
    載の方法。
  59. 【請求項59】 前記通信パスは、データパスであるこ
    とを特徴とする請求項57に記載の方法。
  60. 【請求項60】 前記通信パスは、制御パスであること
    を特徴とする請求項57に記載の方法。
  61. 【請求項61】 1つまたは複数の通信パスによってネ
    ットワークに結合して通信を行うことができ、およびパ
    ケットに対してフィルタリングオペレーションを実行す
    ることができる1つまたは複数のフィルタインスタンス
    に関連する1つまたは複数のプロトコルスタックを含む
    コンピューティング装置において、前記1つまたは複数
    のプロトコルに関連するパケットをフィルタにかけて、
    プロセッサおよびネットワーク資源を保存する方法であ
    って、 通信パス上を現在転送されているパケットを処理する動
    作と、 第1のフィルタインスタンスを、前記通信パスに対して
    バイパスモードでオペレートするように構成し、前記パ
    ケットにより前記第1のフィルタインスタンスを完全に
    バイパスする動作と、 前記通信パスを転送されているパケットを受信するよう
    に構成された通信パスにおいて、前記パケットが第2の
    フィルタインスタンスによって受信される動作とを備え
    たことを特徴とする方法。
  62. 【請求項62】 前記第1のフィルタインスタンスを、
    前記通信パスに対してバイパスモードでオペレートする
    ように構成し、前記通信パスにおいて前記パケットによ
    り前記第1のフィルタインスタンスを完全にバイパスす
    る動作は、 第1のフィルタインスタンスを、抽象インタフェースに
    よって、通信パスに対してバイパスモードでオペレート
    するように構成し、前記通信パスにおいて前記パケット
    により前記第1のフィルタインスタンスを完全にバイパ
    スする動作を備えたことを特徴とする請求項61に記載
    の方法。
  63. 【請求項63】 前記抽象インタフェースにより、受信
    パケットに戻るように、前記フィルタインスタンスを構
    成する動作をさらに備えたことを特徴とする請求項62
    に記載の方法。
  64. 【請求項64】 前記第1のフィルタインスタンスを、
    前記通信パスに対してバイパスモードでオペレートする
    ように構成し、前記通信パスにおいて前記パケットによ
    り前記第1のフィルタインスタンスを完全にバイパスす
    る動作は、 第1のフィルタインスタンスをデータパスに対してバイ
    パスモードでオペレートするように構成し、前記データ
    パスにおいて入力データパケットにより前記第1のフィ
    ルタインスタンスを完全にバイパスする動作を備えたこ
    とを特徴とする請求項61に記載の方法。
  65. 【請求項65】 前記第1のフィルタインスタンスを、
    前記通信パスに対してバイパスモードでオペレートする
    ように構成し、前記通信パスにおいて前記パケットによ
    り前記第1のフィルタインスタンスを完全にバイパスす
    る動作は、第1のフィルタインスタンスを制御パスに対
    してバイパスモードでオペレートするように構成し、前
    記制御パスにおいて入力制御パケットにより前記第1の
    フィルタインスタンスを完全にバイパスする動作を備え
    たことを特徴とする請求項61に記載の方法。
  66. 【請求項66】 通信パスによってネットワークに結合
    して通信を行うことができ、フィルタスタックを制御す
    るための抽象インタフェースに関連する1つまたは複数
    のプロトコルスタックを含み、前記フィルタスタック
    は、前記通信パスを介して転送されるデータパケットの
    部分に対しフィルタリングオペレーションを実行するコ
    ンピューティング装置において、関連するプロトコルス
    タックのオペレーションを中断することなく、フィルタ
    インスタンスを前記フィルタスタックに挿入してプロセ
    ッサおよびネットワーク資源を保存する方法を実装する
    ためのコンピュータプログラムプロダクトであって、 前記コンピューティング装置において実行されるとき
    に、前記コンピューティング装置に前記方法を実施させ
    るコンピュータ実行可能な命令を担持するコンピュータ
    読み取り可能な媒体と、 前記フィルタスタックのオペレーションをポーズする動
    作と、 少なくとも1つの関連するプロトコルスタックがデータ
    を転送可能であり続ける間に、前記フィルタインスタン
    スを前記フィルタスタックに挿入する動作と、フィルタ
    スタックのオペレーションをスタートする動作とを備え
    たことを特徴とするコンピュータプログラムプロダク
    ト。
  67. 【請求項67】 通信パスによってネットワークに結合
    して通信を行うことができ、フィルタスタックを制御す
    るための抽象インタフェースに関連する1つまたは複数
    のプロトコルスタックを含み、前記フィルタスタック
    は、1つまたは複数のフィルタインスタンスを含み、該
    フィルタインスタンスにより前記通信パスを介して転送
    されるデータパケットの部分に対しフィルタリングオペ
    レーションを実行するコンピューティング装置におい
    て、関連するプロトコルスタックのオペレーションを中
    断することなく、フィルタインスタンスを前記フィルタ
    スタックに挿入して、プロセッサおよびネットワーク資
    源を保存する方法を実装するためのコンピュータプログ
    ラムプロダクトであって、 前記コンピューティング装置において実行されるとき
    に、前記コンピューティング装置に前記方法を実施させ
    るコンピュータ実行可能な命令を担持するコンピュータ
    読み取り可能な媒体と、 フィルタスタックのオペレーションをポーズする動作
    と、 少なくとも1つの関連するプロトコルスタックがデータ
    を転送可能であり続ける間に、前記フィルタインスタン
    スを前記フィルタスタックから除去する動作と、 フィルタスタックのオペレーションをスタートする動作
    とを備えたことを特徴とするコンピュータプログラムプ
    ロダクト。
  68. 【請求項68】 1つまたは複数の通信パスによってネ
    ットワークに結合して通信を行うことができ、およびフ
    ィルタスタックを制御する抽象インタフェースに関連す
    る1つまたは複数のプロトコルスタックを含み、前記フ
    ィルタスタックは、パケットの部分に対してフィルタリ
    ングオペレーションを実行することができる1つまたは
    複数のフィルタインスタンスを含むコンピューティング
    装置において、プロセッサおよびネットワーク資源を、
    前記1つまたは複数のプロトコルに関連するパケットを
    フィルタにかけて、保存する方法を実装するためのコン
    ピュータプログラムプロダクトであって、 前記コンピューティング装置において実行されるとき
    に、前記コンピューティング装置に前記方法を実施させ
    るコンピュータ実行可能な命令を担持するコンピュータ
    読み取り可能な媒体と、 入力パケットを処理する動作と、 該入力パケットによって、フィルタインスタンスに関連
    する前記フィルタリングオペレーションのうちの1つま
    たは複数をバイパスする動作と、 前記入力パケットに対してフィルタリングオペレーショ
    ンが実行されたときに、前記入力パケットと異なる可能
    性のある出力パケットを送信する動作とを備えたことを
    特徴とするコンピュータプログラムプロダクト。
JP2002357097A 2001-12-11 2002-12-09 ネットワークフィルタドライバのためのアーキテクチャおよびランタイム環境 Expired - Fee Related JP4071098B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/020,286 2001-12-11
US10/020,286 US7209971B1 (en) 2001-12-11 2001-12-11 Architecture and run-time environment for network filter drivers

Publications (2)

Publication Number Publication Date
JP2003304269A true JP2003304269A (ja) 2003-10-24
JP4071098B2 JP4071098B2 (ja) 2008-04-02

Family

ID=21797749

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002357097A Expired - Fee Related JP4071098B2 (ja) 2001-12-11 2002-12-09 ネットワークフィルタドライバのためのアーキテクチャおよびランタイム環境

Country Status (10)

Country Link
US (2) US7209971B1 (ja)
EP (1) EP1320238A3 (ja)
JP (1) JP4071098B2 (ja)
CN (1) CN1262941C (ja)
AR (1) AR037786A1 (ja)
BR (1) BR0205245A (ja)
CA (1) CA2413509C (ja)
MX (1) MXPA02012243A (ja)
RU (1) RU2298880C2 (ja)
TW (1) TWI282227B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006067293A (ja) * 2004-08-27 2006-03-09 Canon Inc 情報処理装置及び受信パケットのフィルタリング処理方法
JP2013518733A (ja) * 2010-04-23 2013-05-23 サムスン ヘビー インダストリーズ カンパニー リミテッド ロボットシステムの制御方法及びその装置

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7209971B1 (en) * 2001-12-11 2007-04-24 Microsoft Corporation Architecture and run-time environment for network filter drivers
US7789919B2 (en) * 2006-10-19 2010-09-07 Sonoco Development, Inc. Combustible packages for containing a fuel source and a fire starter
US8040916B2 (en) * 2007-03-14 2011-10-18 Cisco Technology, Inc. Admission control for virtualized services in routers
US8713209B2 (en) * 2009-01-13 2014-04-29 Qualcomm Incorporated System, apparatus, and method for fast startup of USB devices
JP2010211388A (ja) * 2009-03-09 2010-09-24 Canon Inc 検索装置及び検索方法
US8700896B1 (en) * 2010-08-25 2014-04-15 Symantec Corporation Techniques for automatic management of file system encryption drivers
US8621123B2 (en) 2011-10-06 2013-12-31 Honeywell International Inc. Device management using virtual interfaces
US8539123B2 (en) 2011-10-06 2013-09-17 Honeywell International, Inc. Device management using a dedicated management interface
US9069572B2 (en) 2012-07-27 2015-06-30 Prolific Technology Inc. Replacement of inbox driver with third party driver
JP5977860B1 (ja) * 2015-06-01 2016-08-24 エヌ・ティ・ティ・コミュニケーションズ株式会社 通信制御方法、通信制御装置及びプログラム
US10063414B2 (en) 2016-05-13 2018-08-28 Cisco Technology, Inc. Updating a transport stack in a content centric network
CN111063230B (zh) * 2019-12-13 2021-09-10 中国人民解放军空军工程大学 一种模拟训练仿真系统动作过滤器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10124979A (ja) 1996-10-11 1998-05-15 Sony Corp ディスクドライブ装置及びディスク記録/再生装置
US6205492B1 (en) * 1997-04-04 2001-03-20 Microsoft Corporation Method and computer program product for interconnecting software drivers in kernel mode
US6243753B1 (en) * 1998-06-12 2001-06-05 Microsoft Corporation Method, system, and computer program product for creating a raw data channel form an integrating component to a series of kernel mode filters
SE516175C2 (sv) * 1999-02-17 2001-11-26 Axis Ab Anordning och metod för kommunikation över ett nätverk
US6678734B1 (en) 1999-11-13 2004-01-13 Ssh Communications Security Ltd. Method for intercepting network packets in a computing device
US6801948B2 (en) 2000-12-15 2004-10-05 Hewlett-Packard Development Company, L.P. System and method for a streams based network access control for a computer
US7209971B1 (en) * 2001-12-11 2007-04-24 Microsoft Corporation Architecture and run-time environment for network filter drivers
US7418006B2 (en) * 2005-03-08 2008-08-26 Microsoft Corporation Virtual endpoints

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006067293A (ja) * 2004-08-27 2006-03-09 Canon Inc 情報処理装置及び受信パケットのフィルタリング処理方法
JP4579623B2 (ja) * 2004-08-27 2010-11-10 キヤノン株式会社 情報処理装置及び受信パケットのフィルタリング処理方法
JP2013518733A (ja) * 2010-04-23 2013-05-23 サムスン ヘビー インダストリーズ カンパニー リミテッド ロボットシステムの制御方法及びその装置

Also Published As

Publication number Publication date
RU2298880C2 (ru) 2007-05-10
CA2413509C (en) 2010-07-27
EP1320238A3 (en) 2005-12-07
BR0205245A (pt) 2004-07-20
MXPA02012243A (es) 2004-12-13
US20060133275A1 (en) 2006-06-22
CA2413509A1 (en) 2003-06-11
JP4071098B2 (ja) 2008-04-02
EP1320238A2 (en) 2003-06-18
AR037786A1 (es) 2004-12-01
TW200305322A (en) 2003-10-16
CN1262941C (zh) 2006-07-05
TWI282227B (en) 2007-06-01
US7209971B1 (en) 2007-04-24
CN1424663A (zh) 2003-06-18

Similar Documents

Publication Publication Date Title
US11824962B2 (en) Methods and apparatus for sharing and arbitration of host stack information with user space communication stacks
US7657787B2 (en) Method of restoring communication state of process
US7502826B2 (en) Atomic operations
US20060133275A1 (en) Architecture and run-time environment for network filter drivers
JP5214473B2 (ja) ハードウェアデバイスなどのリソースを有する仮想マシンの移動システム
US8196142B2 (en) Use of external services with clusters
US6954852B2 (en) System for and method of network booting of an operating system to a client computer using hibernation
US7383555B2 (en) Apparatus and method for sharing a network I/O adapter between logical partitions
US8918490B1 (en) Locality and time based dependency relationships in clusters
US20080098100A1 (en) System for and method of streaming data to a computer in a network
WO2003090073A1 (en) System for and method of streaming data to a computer in a network
US7499987B2 (en) Deterministically electing an active node
US20080267176A1 (en) Selective preservation of network state during a checkpoint
US10397103B2 (en) Data processing system with routing tables
US20070005682A1 (en) Information processing apparatus, information processing system, message control method, and program product, storage medium
US6868437B1 (en) System and method for interprocess communication of remote procedure call messages utilizing shared memory
WO2003090109A1 (en) System for and method of network booting of an operating system to a client computer using hibernation
JP2009230433A (ja) ネットワークブート装置、プログラム及び方法
US20080056263A1 (en) Efficient transport layer processing of incoming packets
EP1495400A1 (en) System for and method of streaming data to a computer in a network
Cisco Channel Interface Processor Microcode Release Note and Microcode Upgrade Requirements
Cisco Channel Interface Processor Microcode Release Note and Microcode Upgrade Requirements
CN114124680B (zh) 一种文件访问控制告警日志管理方法及装置
CN116680045A (zh) 一种分布式多设备数据采集方法及系统
Wang Design and Implementation of TCPHA

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080116

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120125

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130125

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees