(57)【特許請求の範囲】
【請求項１】
オペレーティングシステムと、一つ以上のネットワーク接続をサポートするためのチームとして構成された第１のネットワークインタフェイスカード（ＮＩＣ）及び第２のＮＩＣと、を有する計算デバイスを、負荷分散及びフェイルオーバー技術を用いて設定するプログラムであって、
該プログラムは、バスドライバ、第１のファンクションドライバ、第２のファンクションドライバ、仮想ファンクションドライバ、ユーザレベルプロセス、及び、ネットワーク資源マネージャを備えており、
前記バスドライバが、前記計算デバイスに、前記第１のＮＩＣに対応する前記第１のファンクションドライバと、前記第２のＮＩＣに対応する前記第２のファンクションドライバと、を生成させ、
前記第１のファンクションドライバが、前記計算デバイスに、該第１のファンクションドライバを第１のソフトウェアバインディングを介してオペレーティングシステム内のソフトウェアスタックに結合させ
前記第２のファンクションドライバが、前記計算デバイスに、該第２のファンクションドライバを第２のソフトウェアバインディングを介して前記ソフトウェアスタックに結合させ、
前記バスドライバが、ＮＩＣの前記チームに対応する前記仮想ファンクションドライバであって前記オペレーティングシステムと前記第１及び第２のＮＩＣとの間の通信を取り扱う該仮想ファンクションドライバを生成させ、
前記仮想ファンクションドライバが、前記計算デバイスに、該仮想ファンクションドライバを第３のソフトウェアバインディングを介して前記ソフトウェアスタックに結合させ、
前記第１のファンクションドライバ、前記第２のファンクションドライバ、及び前記仮想ファンクションドライバが、それぞれ、前記計算デバイスに、該第１のファンクションドライバ、該第２のファンクションドライバ、及び該仮想ファンクションドライバを、前記ネットワーク資源マネージャ内のプログラミングインタフェイスによって提供される異なるソフトウェアハンドルを介して前記ネットワーク資源マネージャに結合させ、該ネットワーク資源マネージャは、前記ＮＩＣのチームのネットワーク接続を管理し、且つ、前記第１及び第２のＮＩＣに対して前記負荷分散及びフェイルオーバー機能を提供し、
前記ユーザレベルプロセスが、前記計算デバイスに、前記オペレーティングシステムが前記仮想ファンクションドライバを介して前記ネットワーク資源マネージャと通信するよう、前記第１のファンクションドライバ及び前記第２のファンクションドライバが生成された後に前記第１のソフトウェアバインディング及び前記第２のソフトウェアバインディングを除去させる、
プログラム。
【請求項２】
前記オペレーティングシステム内の前記ソフトウェアスタックが、トランスポートコントロールプロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）スタックである、請求項１に記載のプログラム。
【請求項３】
前記第１のファンクションドライバが、前記計算デバイスに、前記第１のファンクションドライバと前記第１のＮＩＣとの間に通信チャンネルを確立するために、前記第１のファンクションドライバを、前記第１のＮＩＣを代理する前記ネットワーク資源マネージャ内の第１のソフトウェアオブジェクトに第１のソフトウェアハンドルを介して結合させ、
前記第２のファンクションドライバが、前記計算デバイスに、前記第２のファンクションドライバと前記第２のＮＩＣとの間に通信チャンネルを確立ために、前記第２のファンクションドライバを、前記第２のＮＩＣを代理する前記ネットワーク資源マネージャ内の第２のソフトウェアオブジェクトに第２のソフトウェアハンドルを介して結合させ、
前記仮想ファンクションドライバが、前記計算デバイスに、前記仮想ファンクションドライバを、ＮＩＣの前記チームを代理する前記ネットワーク資源マネージャ内の第３のソフトウェアオブジェクトに第３のソフトウェアハンドルを介して結合させる、
請求項１に記載のプログラム。
【請求項４】
記憶機構が、前記計算デバイスに、前記仮想ファンクションドライバと前記ソフトウェアスタックの間の前記第３のソフトウェアバインディングと、前記第１のファンクションドライバ、前記第２のファンクションドライバ、及び前記仮想ファンクションドライバのそれぞれを前記ネットワーク資源マネージャに結合する前記ソフトウェアハンドルと、を記憶デバイスに永続的に記憶させる、請求項１に記載のプログラム。
【請求項５】
前記記憶機構が、前記計算デバイスが再起動されるときに、該計算デバイスに、前記仮想ファンクションドライバと前記ソフトウェアスタックの間の前記第３のソフトウェアバインディングと、前記第１のファンクションドライバ、前記第２のファンクションドライバ、及び前記仮想ファンクションドライバのそれぞれを前記ネットワーク資源マネージャに結合する前記ソフトウェアハンドルと、を前記記憶デバイスから再生成させる、請求項４に記載のプログラム。
【請求項６】
前記第１のファンクションドライバが、前記計算デバイスに、該第１のファンクションドライバを第４のソフトウェアバインディングを介して前記オペレーティングシステム内のネットワークセキュリティソフトウェアプログラムに結合させ、
前記第２のファンクションドライバが、前記計算デバイスに、該第２のファンクションドライバを第５のバインディングを介して前記ネットワークセキュリティソフトウェアプログラムに結合させ、
前記仮想ファンクションドライバが、前記計算デバイスに、該仮想ファンクションドライバを第６のバインディングを介して前記ネットワークセキュリティソフトウェアプログラムに結合させる、
請求項１に記載のプログラム。
【請求項７】
前記ユーザレベルプロセスが、前記計算デバイスに、前記仮想ファンクションドライバと前記ネットワークセキュリティソフトウェアプログラムの間の前記第６のバインディングを除去させる、請求項６に記載のプログラム。
【請求項８】
前記ネットワークセキュリティソフトウェアプログラムが、８０２．１Ｘソフトウェアプログラムである、請求項７に記載のプログラム。
【発明の詳細な説明】
【発明の分野】
【０００１】
[0001]本発明の実施の形態は、広くコンピュータネットワークの構築の分野に関するものであり、より詳細には、改善された負荷分散及びフェイルオーバー機能を備える単一論理ネットワークインタフェイスに関するものである。
【関連技術の説明】
【０００２】
[0002]ネットワーク計算デバイスは、多くの場合、二つ以上のネットワークインタフェイスカードを有して、単一のネットワークインタフェイスカードが提供する以上に、計算デバイスの通信帯域幅を増大する。このような複数のＮＩＣは、一般的には、ＮＩＣの「チーム」と呼ばれる。通常、チームは、共通のインターネットプロトコル（ＩＰ）アドレスを共有し、一方、チーム内のそれぞれのＮＩＣごとに固有のメディアアクセス制御（ＭＡＣ）アドレスを維持している。このチーム構成を使用する一つの側面は、計算デバイスとネットワーク内の別の計算デバイスとの間のネットワークトラフィックをチーム内のＮＩＣ間で分散し、それによって、チームの全体的なスループットを最大化し得ることである。この種のオペレーションは、「負荷分散」と呼ばれる。チーム構成を使用する別の側面は、ネットワークトラフィックをチーム内の機能していないか又は信頼性のないＮＩＣからチーム内の機能しているか又はより信頼性のあるＮＩＣへ移動することができることである。この種のオペレーションは、「フェイルオーバー」と呼ばれる。一つに実装する場合の負荷分散とフェイルオーバーとの組み合わせは、典型的には、「ＬＢＦＯ」と呼ばれる。
【０００３】
[0003]ＬＢＦＯの実装体が、ＮＩＣ間でネットワーク接続を設定及び移動して、計算デバイスのネットワーク通信のスループット及びネットワーク通信の信頼性を最適化するためには、当該ＬＢＦＯの実装体が、それぞれのＮＩＣにおけるエラー率及びそれぞれのネットワークコネクションを介して交換されるデータの量のような動作パラメータをＮＩＣレベルで監視する。典型的なＬＢＦＯの実装体は、ＬＢＦＯソフトウェアをオペレーティングシステム内に配置し、ＮＩＣレベルの動作パラメータを一以上のデバイスドライバを介してＮＩＣハードウェアに要求する。結果として得られるアーキテクチャは、本質的に非効率的なものとなる。なぜならば、それらＬＢＦＯの実装体は、動作パラメータが監視される場所から遠く離れた幾つかのソフトウェアレベルにＬＢＦＯの意思決定機能及び管理機能を配置し、それらソフトウェアレベル間で大量の継続的な通信を必要とするからである。さらに、ソフトウェアレベル間で必要とされる通信を減少させるために、及び／又は、オペレーティングシステム内に存在するＬＢＦＯの実装体がＬＢＦＯ用に十分に最適化されていないので、従来技術によるＬＢＦＯの実装体におけるＬＢＦＯ意思決定エレメントは、ＮＩＣレベルで利用可能な全ての動作パラメータを利用しないことがある。したがって、オペレーティングシステム内に存在するＬＢＦＯの実装体は、ソフトウェアレベル間における過剰なソフトウェア通信、及び、限られたＮＩＣレベルの動作情報に基づいたＬＢＦＯ意思決定のために、性能が低下することがある。
【０００４】
[0004]さらに、ＬＢＦＯの実装体が、信頼性を有し、且つ、高い性能を維持するためには、その構成が、オペレーティングシステム、若しくは、ユーザ又はアプリケーションプログラムのような任意の第三者によって変更されてはならない。典型的なＬＢＦＯの実装体は、チーム内のそれぞれのＮＩＣをオペレーティングシステムに公開し、何れかのＮＩＣを再構成する能力を含めて、オペレーティングシステムに相当な程度までＮＩＣを制御させる。このような実装体においては、オペレーティングシステムは、ＮＩＣのチームに対応するＩＰアドレスを変更可能であったり、あるいは、特定のＮＩＣに対するセキュリティ設定又は通信パラメータを変更可能であることがある。さらに、ＮＩＣがオペレーティングシステムに公開される結果として、それらのＮＩＣが第三者にも暴露される限りにおいて、第三者は、同様に、ＮＩＣを再構成できることがある。例えば、ユーザは、信頼性のあるＮＩＣを誤ってディスエーブル、又は再構成できることがあり、或いは、信頼性のないＮＩＣをイネーブルにできることがある。一般的には、ＮＩＣのチームは、特定のＬＢＦＯアーキテクチャを最適化するように構成される。ＮＩＣがチームとして構成された後にＮＩＣを一方的に再構成することは、その最適化を相当に弱体化させ、それによって、計算デバイスのネットワーク通信の性能及び／又は信頼性を低下させることがある。
【０００５】
[0005]さらに、ＬＢＦＯの実装体が近年のネットワークにおいて極めて有効なものであるためには、当該実装体は、ネットワークにおいて使用されている可能性がある追加のセキュリティ機能を考慮しなければならない。このようなセキュリティ機能の一つは、米国電気電子技術者協会（ＩＥＥＥ）セキュリティ証明書プロトコル（以下、「８０２．１Ｘ」と呼ぶ）であり、これは、ＮＩＣがスイッチと通信する前にセキュリティ証明書サーバーからの認証を要求するようにＮＩＣに命じることによってネットワークセキュリティを改善するものである。更なるセキュリティ機能は、ＩＥＥＥ「仮想ＬＡＮ」プロトコル（以下、「８０２．１Ｑ」と呼ぶ）であり、これは、ネットワーク管理者が、ある範囲のＩＰアドレス範囲を仮想ＬＡＮ（ＶＬＡＮ）として設定し、マシンをＶＬＡＮに選択的に割り当てることを可能にし、これによって、ＶＬＡＮ内に存在するマシン間の通信を可能にし、ＶＬＡＮ内に存在するマシンとＶＬＡＮ外に存在するマシンとの間の通信を阻止することによって、ネットワークセキュリティを改善する。これらのプロトコルのそれぞれは、更なる制約をＬＢＦＯの実装体に課す。その結果として、既存のＬＢＦＯの実装体の一つの欠点は、それら実装体が、上述したセキュリティ（８０２．１Ｘ及び８０２．１Ｑ）プロトコルの制約の範囲内でＬＢＦＯを必ずしも実現するとは限らないことである。
【０００６】
[0006]これまでに説明したように、当分野において必要とされているものは、上述した既存のＬＢＦＯの実装体の一つ以上の欠点を解決するＬＢＦＯアーキテクチャである。
【発明の概要】
【０００７】
[0007]本発明の一実施の形態は、負荷分散及びフェイルオーバー技術を用いて、オペレーティングシステムと、一以上のネットワーク接続をサポートするためのチームとして構成された第１のネットワークインタフェイスカード（ＮＩＣ）及び第２のＮＩＣと、を有する計算デバイスを構成するための方法を説明する。この方法は、第１のＮＩＣに対応する第１のファンクションドライバと、第２のＮＩＣに対応する第２のファンクションドライバとを生成するステップと、第１のファンクションドライバを第１のソフトウェアバインディングを介してオペレーティングシステム内のソフトウェアスタックに結合するステップと、第２のファンクションドライバを第２のソフトウェアバインディングを介してソフトウェアスタックに結合するステップと、ＮＩＣのチームに対応する仮想ファンクションドライバを生成するステップと、仮想ファンクションドライバを第３のソフトウェアバインディングを介してソフトウェアスタックに結合するステップと、を含む。
【０００８】
[0008]開示された方法の一つの利点は、結果として得られるアーキテクチャが、新規で効果的な形でバスアーキテクチャを利用し、ファンクションドライバ、ソフトウェアバインディング、及びソフトウェアハンドルを生成及び管理することによって、単一論理ＮＩＣをオペレーティングシステムに公開することである。単一論理ＮＩＣとネットワーク資源マネージャとが、協働して、オペレーティングシステムから独立に、負荷分散、フェイルオーバー、及びフェイルバックを実行し、これによって、計算デバイスの信頼性及びネットワーキングスループットを改善する。単一論理ＮＩＣは、また、８０２．１Ｘネットワーキング規格及び８０２．１Ｑネットワーキング規格をサポートし、これによって、計算デバイスとコンピュータネットワーク内に存在するその他のマシンとの間における通信のセキュリティを改善することができる。
【０００９】
[0009]上述した本発明の特徴をより詳細に理解できるように、上で簡単に説明した本発明のより詳細な説明を、実施の形態を参照して行う。幾つかの実施形態を添付の図面に示す。添付の図面は、本発明の典型的な実施の形態だけを示すものであり、したがって、本発明の範囲を限定するものとみなすべきではないことに注意されたい。なぜなら、本発明は、その他の同様に有効な実施の形態にも通じるからである。
【詳細な説明】
【００１０】
[0013]図１は、本発明の一実施の形態に係るコンピュータネットワーク１００を示しており、当該コンピュータネットワーク１００は、単一論理ＮＩＣ１１２を備えて構成された計算デバイス１０２を含んでいる。同図に示すように、計算デバイス１０２はまた、限定するものではないが、アプリケーションプログラム１１０、オペレーティングシステム１１１、バスドライバ１１５、ネットワーク資源マネージャ（ＮＲＭ）１１３、及びマルチＮＩＣデバイス１１４を備えており、当該マルチＮＩＣデバイス１１４上には、ＮＩＣ１５１、１５２、及び１５３が設けられている。ＮＩＣ１５１、１５２、及び１５３は、チームとして構成されており、共通のＩＰアドレスを共有しており、個別のＭＡＣアドレスを有している。重要なことに、チームは、オペレーティングシステム１１１及びアプリケーションプログラム１１０に対しては、三つの関連するＮＩＣの集合ではなく、単一の「仮想」ＮＩＣとして表されている。単一論理ＮＩＣ１１２が、この仮想ＮＩＣを形成する。
【００１１】
[0014]オペレーティングシステム１１１は、明瞭にするために図１からは省略されているその他の数あるソフトウェアコンポーネントの中でも、特に、ＴＣＰ／ＩＰスタック１２１、「Ａｐｐ／ＯＳソケットインタフェイスオブジェクト」として示したインタフェイスオブジェクト１２０、及び「ネットワークスタックインタフェイスオブジェクト（ＮＤＩＳ）」として示したソフトウェアインタフェイスオブジェクト１２３を有している。ＴＣＰ／ＩＰスタック１２１は、ソフトウェアインタフェイス１２５を介してインタフェイスオブジェクト１２０に結合されており、また、ソフトウェアインタフェイス１２６を介してインタフェイスオブジェクト１２３に結合されている。
【００１２】
[0015]単一論理ＮＩＣ１１２は、仮想ファンクションドライバ（ＶＦＤ）１３０、ファンクションドライバ（ＦＤ）１３３、ＦＤ１３４、及びＦＤ１３５を有している。ＮＲＭ１１３は、ＮＲＭアプリケーションプログラミングインタフェイス（ＡＰＩ）１４０、ＮＲＭネットワークファンクションソフトウェア１４１、及びハードウェア抽象化レイヤ（ＨＡＬ）１４２を有している。ＮＲＭネットワークファンクションソフトウェア１４１は、ソフトウェアインタフェイス１４８を介してＨＡＬ１４２に結合されており、また、ソフトウェアインタフェイス１４９を介してＮＲＭ  ＡＰＩ１４０に結合されている。マルチＮＩＣデバイス１１４は、「チップ内部へのインタフェイス」として示した外部ハードウェアインタフェイス１５０を有しており、当該外部ハードウェアインタフェイス１５０には、ＮＩＣ１５１、ＮＩＣ１５２、及びＮＩＣ１５３が、それぞれ、ハードウェアインタフェイス１５５、１５６、及び１５７を介して結合されている。ハードウェアインタフェイス１５０は、ハードウェア／ソフトウェアインタフェイス１５４を介して、ＮＲＭ１１３のＨＡＬ１４２に結合されている。
【００１３】
[0016]バスドライバ１１５は、それぞれ、ソフトウェアハンドル１６５、１６４、１６２、１６１、及び１６０を介して、ＮＲＭ１１３、ＶＦＤ１３０、ＦＤ１３３、ＦＤ１３４、及びＦＤ１３５のそれぞれに結合される。以下でより詳細に説明するように、ＮＩＣごとに、ソフトウェアハンドル１４５、１４６、及び１４７が、場合によっては、そのＮＩＣに対応するファンクションドライバとそのＮＩＣを代理するＮＲＭ１１３におけるソフトウェアオブジェクトとの間に通信チャンネルを確立する。同様に、ソフトウェアハンドル１４３が、ＶＦＤ１３０とＮＩＣのチームを代理するＮＲＭ１１３におけるソフトウェアオブジェクトとの間に通信チャンネルを確立する。ＶＦＤ１３０は、ソフトウェアバインディング１６６を介して、ＴＣＰ／ＩＰスタック１２１に結合される。
【００１４】
[0017]コンピュータネットワーク１００は、更に、スイッチ１０４及びリモートマシン１０６を備えている。スイッチ１０４は、ネットワークインタフェイス１０５を介して、リモートマシン１０６に結合されており、また、ネットワークインタフェイス１０７、１０８、及び１０９を介して、ＮＩＣ１５１、１５２、及び１５３にそれぞれ結合されている。
【００１５】
[0018]本明細書においてより詳細に説明するように、本発明は、単一論理ＮＩＣ１１２をオペレーティングシステム１１１に提供する。この単一論理ＮＩＣ１１２とＮＲＭ１１３とは、協働して、オペレーティングシステム１１１から独立に、負荷分散、フェイルオーバー、及びフェイルバックを実行し、これによって、計算デバイス１０２の信頼性及びネットワーキングスループットを改善する。単一論理ＮＩＣ１１２は、また、８０２．１Ｘネットワーキング規格及び８０２．１Ｑネットワーキング規格をサポートし、これによって、計算デバイス１０２とネットワーク１００内に存在するその他のマシンとの間における通信のセキュリティを改善することができる。さらに、計算デバイス１０２内の関連するデバイスドライバ及びハードウェアコンポーネントは、単一論理ＮＩＣ１１２を自動的に生成し、且つ、それを永続的に維持するように構成されている。結果として得られた設定は、自動的かつ永続的に維持され、システム再起動時に、一貫性及び信頼性のある設定を保証する。
【００１６】
（バスアーキテクチャ）
[0019]通常、オペレーティングシステムは、一つ以上のデバイスドライバを介して、ハードウェアデバイスと通信し、当該デバイスドライバは、それらに対応のハードウェアデバイスを直接制御する。デバイスドライバはまた、一以上の仲介デバイスドライバを介して、ハードウェアデバイスと通信し、それらに対応のハードウェアデバイスを間接制御することもある。このような間接制御の一例は、ディジタルカメラデバイスドライバが、ユニバーサルシリアルバス（ＵＳＢ）上のディジタルカメラを、ＵＳＢ用のデバイスドライバへの結合を通じて制御するように、デバイスドライバが、ハードウェアバス上のハードウェアデバイスを、ハードウェアバス用の仲介デバイスドライバへの結合を通じて制御する場合である。ＵＳＢデバイスドライバは、バス上の通信を直接制御し、ディジタルカメラデバイスドライバは、ＵＳＢデバイスドライバとの通信を通じて、バスを介するディジタルカメラとの通信を間接制御する。このようなアーキテクチャは、多くの場合、システム内のオペレーティングシステムとハードウェアデバイスとの間で適切な対話を達成するために適切に管理されなければならない複雑なソフトウェア及びハードウェア階層をもたらす。このようなソフトウェア及びハードウェア階層の技術的な複雑さは、ソフトウェア−ハードウェア間通信を一貫性のあるオブジェクト指向の形で管理するための様々なソフトウェアアーキテクチャの開発を促した。
【００１７】
[0020]一つのこのようなソフトウェアアーキテクチャは、「バスアーキテクチャ」と呼ばれるものであり、ハードウェアバス上のハードウェアデバイスを間接的に制御するようにうまく適合された階層デバイスドライバアーキテクチャを生成するための汎用ソフトウェアオブジェクトを提供する。バスアーキテクチャは、通常、ハードウェアバスを制御するための「汎用バスドライバ」ソフトウェアオブジェクトと、ハードウェアバス上のそれぞれのデバイスを間接制御するための「汎用ファンクションドライバ」ソフトウェアオブジェクトとを提供する。汎用バスドライバ及び汎用ファンクションドライバは、通常、ハードウェア製造業者によって提供される付加的なデバイス固有ソフトウェアによって補完され、当該デバイス固有ソフトウェアは、汎用バスドライバ又は汎用ファンクションドライバが、それぞれ、ハードウェアバス又はそのハードウェアバス上のハードウェアデバイスに対応するデバイス固有ハードウェア機能と通信することを可能にする。このような補完的なソフトウェアは、本明細書では簡単に「バスドライバ」又は「ファンクションドライバ」と呼ぶ「デバイス固有バスドライバ」又は「デバイス固有ファンクションドライバ」を生成する。さらに、バスドライバは、どのハードウェアデバイスがハードウェアバスに結合されるかを特定し、これらのハードウェアデバイス用のファンクションドライバを生成し、そして、そのファンクションドライバを、ソフトウェアインタフェイスを介してバスドライバに結合するソフトウェアを含む。一旦生成されると、各ファンクションドライバは、それ自身を、ハードウェアデバイスへのソフトウェアハンドルを介して、対応のハードウェアデバイスに結合するか、あるいは、それ自身を、仲介ソフトウェアオブジェクトへのソフトウェアハンドルを介して、ハードウェアデバイスを代理する仲介ソフトウェアオブジェクトに結合する。また、ファンクションドライバは、それ自身を、ＮＤＩＳ１２３のようなオペレーティングシステム内のソフトウェアインタフェイスオブジェクトによって提供されるオペレーティングシステムへのソフトウェアバインディングを介して、オペレーティングシステムに結合する。ファンクションドライバは、対応のハードウェアデバイスを管理するために必要とする特定の機能を備えて構成されるか、あるいは、システム内の別のエンティティーからその特定の機能にアクセスすることができるので（例えば、オペレーティングシステムへのネットワーク指向コールを介して）、ファンクションドライバは、オペレーティングシステムとその対応のハードウェアデバイスとを間接的に結合するインタフェイスオブジェクトとしての機能を成すことが可能である。
【００１８】
[0021]重要なことには、オペレーティングシステムが、あるファンクションドライバをどの程度制御するかは、オペレーティングシステムが、そのファンクションドライバに対応するハードウェアデバイスをどの程度制御するかによって定まる。バスドライバは、システム内における様々なファンクションドライバの生成を制御し、また、ファンクションドライバは、それら自身とオペレーティングシステムとの間のソフトウェアインタフェイスを生成する。したがって、バスアーキテクチャが、どのファンクションドライバが生成されるのかを直接制御することによって、また、それらのファンクションドライバがどのようにしてオペレーティングシステムに結合されるのかを間接制御することによって、オペレーティングシステムと種々のハードウェアデバイスとの対話を制御するのに使用されてもよい。さらに、一端設定されてしまえば、バスアーキテクチャは、この情報をレジストリ又は外部データファイルに記憶することによって、バスドライバ、ファンクションドライバ（一つ以上）、及びそれらの結合の設定を永続的に維持し、計算デバイスが再起動されるときに、階層ドライバの設定が高い信頼性で再生成されることを確実にする。設定情報をレジストリ又は外部データファイルに記憶するための方法は、当業者には周知である。このように、バスアーキテクチャは、階層的かつ永続的なデバイスドライバを生成及び維持するための洗練されたソフトウェアアーキテクチャを提供し、当該ソフトウェアアーキテクチャを使用して、デバイスドライバに対応するハードウェアデバイスとのオペレーティングシステムの対話を制御し得る。
【００１９】
[0022]本発明は、新規な態様のバスアーキテクチャを使用して、オペレーティングシステムに対して、ＮＩＣのチームを単一論理ＮＩＣとして表す。単一論理ＮＩＣは、チーム内の各ＮＩＣ用のファンクションドライバと、オペレーティングシステムとＮＩＣのチームとの間の従来のネットワーキング通信を取り扱うための仮想ファンクションドライバと呼ばれる付加的なファンクションドライバと、を有している。従来のネットワークトラフィック及び設定通信の全てを、オペレーティングシステムと個々のファンクションドライバ又はＮＩＣとの間ではなく、オペレーティングシステムと仮想ファンクションドライバとの間で流れるように構成することによって、オペレーティングシステムは、個々のＮＩＣ又はＮＩＣのチームを再設定することを効果的に防止し、また、ネットワークトラフィックをチーム内の個々のＮＩＣ間で分散しようとする試みを効果的に防止する。本明細書でより詳細に説明するように、この構成は、ユーザレベルプロセスによって、また、仲介ソフトウェアオブジェクト、即ち、ＮＩＣの設定及び通信をインテリジェントに制御するためのＮＲＭを導入することによって、ファンクションドライバとオペレーティングシステムとの間の全てのバインディングを選択的に除去することにより、達成される。
【００２０】
[0023]再び、図１を参照する。ＮＲＭ１１３は、ＮＩＣ１５１、１５２、及び１５３のチームを設定及び管理することを可能にし、また、負荷分散機能、フェイルオーバー機能、及びフェイルバック機能をインテリジェントに提供することを可能にして、計算デバイス１０２のネットワーキングスループット及び信頼性を改善する。ＮＲＭ１１３は、ＮＩＣ１５１、１５２、及び１５３のチームを代理するハンドルを仮想ファンクションドライバ１３０に提供し、それによって、ＶＦＤ１３０とＮＲＭ１１３との間における従来のネットワークトラフィック及び設定の伝送を可能にする。ＮＲＭ１１３内においては、ネットワークトラフィックは、個々のＮＩＣ１５１、１５２、及び１５３間に分散されてもよい。ＮＲＭ１１３は、また、ＮＩＣ１５１、１５２、及び１５３のチームに関する状態情報、例えば、総通信スループット又は総リンク状態指標を、ＶＦＤ１３０を介して、オペレーティングシステム１１１へ送信してもよい。さらに、以下でより詳細に説明するように、ハンドルを個々のＮＩＣ１５１、１５２、及び１５３に提供して、ＮＲＭ１１３は、８０２．１ＸのようなＮＩＣレベルの通信を必要とする高度なネットワーキング機能を可能にしてもよい。したがって、単一論理ＮＩＣ１１２は、ＶＦＤ１３０、ＦＤ１３３、ＦＤ１３４、及びＦＤ１３５を備え、ＮＲＭ１１３と共働して、オペレーティングシステム１１１とＮＩＣ１５１、１５２、及び１５３のチームとの間の仮想インタフェイスを生成し、当該仮想インタフェイスによって、オペレーティングシステム１１１が個々のＮＩＣ１５１、１５２、及び１５３と対話する能力を制限する。例えば、種々のＮＩＣ１５１、１５２、及び１４３が、故障するかあるいは動作状態に復旧すると、ＮＲＭ１１３は、ネットワークトラフィックを再構成して、ユーザ又はオペレーティングシステムの何れにもこの再構成を認識させることなく、特定のＮＩＣの除去及び追加を認識し得る。さらに、この構成によって、場合によっては、ＮＲＭ１１３が、ＮＩＣ１５１、１５２、及び１５３をインテリジェントに設定し、且つ、それらのそれぞれのネットワークコネクションを効率的に管理することを可能にし、負荷分散機能、フェイルオーバー機能、及びフェイルバック機能を最適化する。
【００２１】
[0024]図１に示すアーキテクチャを設定する場合に、バスドライバ１１５は、ＦＤ１３３、ＦＤ１３４、及びＦＤ１３５を生成し、次いで、バスドライバ１１５自身を、ソフトウェアハンドル１６２、１６１、及び１６０を介して、これらのファンクションドライバのそれぞれに結合する。最初に、ＦＤ１３３、ＦＤ１３４、及びＦＤ１３５の各々が、それ自身を、ソフトウェアバインディングを介して、ＮＤＩＳ１２３によって提供されるＴＣＰ／ＩＰスタック１２１に結合する。さらに、ＦＤ１３３は、それ自身を、ＮＲＭ  ＡＰＩ１４０によって提供されるハンドル１４５を介して、ＮＩＣ１５１を代理するＮＲＭ１１３内のソフトウェアオブジェクト（図示しない）に結合し、それによって、ＦＤ１３３とＮＩＣ１５１との間に通信チャンネルを生成し、ＦＤ１３４は、それ自身を、ＮＲＭ  ＡＰＩ１４０によって提供されるハンドル１４６を介して、ＮＩＣ１５２を代理するＮＲＭ１１３内のソフトウェアオブジェクト（図示しない）に結合し、それによって、ＦＤ１３４とＮＩＣ１５２との間に通信チャンネルを生成し、ＦＤ１３５は、それ自身を、ＮＲＭ  ＡＰＩ１４０によって提供されるハンドル１４７を介して、ＮＩＣ１５３を代理するＮＲＭ１１３内のソフトウェアオブジェクト（図示しない）に結合し、それによって、ＦＤ１３５とＮＩＣ１５３との間に通信チャンネルを生成する。これらの通信チャンネルのそれぞれは、例えば、以下でより詳細に説明するように、８０２．１Ｘセキュリティ証明書要求が伝達される場合のように、オペレーティングシステム１１１が、ＮＩＣのチームの代わりに、個々のＮＩＣ１５１、１５２、及び１５３と直接に通信する場合に使用されてもよい。
【００２２】
[0025]また、バスドライバ１１５は、ＶＦＤ１３０を生成して、オペレーティングシステム１１１へのインタフェイスを単一論理ＮＩＣ１１２に提供する。さらに、ＶＦＤ１３０は、それ自身を、ＮＩＣ１５１、１５２、及び１５３のチームを代理するＮＲＭ１１３内のソフトウェアオブジェクト（図示しない）に、ＮＲＭ  ＡＰＩ１４０によって提供されるハンドル１４３を介して結合し、また、ＴＣＰ／ＩＰスタック１２１に、ＮＤＩＳ１２３によって提供されるバインディング１６６を介して結合し、それによって、ＴＣＰ／ＩＰスタック１２１とＮＩＣのチームとの間に通信チャンネルを生成する。この通信チャンネルは、例えば、従来のＴＣＰ／ＩＰ通信がオペレーティングシステム１１１内のＴＣＰ／ＩＰスタック１２１によって管理及び処理される場合のように、オペレーティングシステム１１１が、ＮＩＣのチームと直接に通信する場合に使用されてもよい。
【００２３】
[0026]重要なことには、ユーザレベルプロセスは、ＴＣＰ／ＩＰスタック１２１とそれらのＦＤ１３３、ＦＤ１３４、及びＦＤ１３５のそれぞれとの間のバインディングを、バスドライバ１１５がファンクションドライバＦＤ１３３、ＦＤ１３４、及びＦＤ１３５を生成した後に、除去する。その結果として、図面に示すように、オペレーティングシステム１１１と単一論理ＮＩＣ１１２との間のバインディングは、バインディング１６６だけとなる。したがって、バインディング１６６は、従来のネットワーキング通信のための、並びに、設定及び状態情報の通信のための、オペレーティングシステム１１１と単一論理ＮＩＣ１１２との間に存在する単一のソフトウェアインタフェイスとなる。オペレーティングシステム１１１とＦＤ１３３、ＦＤ１３４、及びＦＤ１３５との間のバインディングを除去することによって、オペレーティングシステム１１１及び第三者が一方的にＮＩＣ１５１、１５２、及び１５３を再設定することが防止されることを確実にする。上述したように、結果として得られる設定は、バスアーキテクチャソフトウェア内に組み込まれた内在する記憶機構によって永続的に保存される。再起動時には、計算デバイス１０２の設定が、記憶デバイスから読み出され、バスドライバ１１５、ＶＦＤ１３０、ＦＤ１３３、ＦＤ１３４、及びＦＤ１３５、バインディング１６６、及び結合１６２、１６１、１６０、１４３、１４５、１４６、及び１４７が、再び生成される。
【００２４】
[0027]ＮＲＭ１１３は、ＮＲＭネットワークファンクションソフトウェア１４１を備えており、当該ＮＲＭネットワークファンクションソフトウェア１４１は、ローカルＴＣＰ／ＩＰスタック（図示しない）を有しており、ＮＩＣ最適化機能と、ＮＲＭ１１３によって実行されるすべての専用ネットワーキング機能と、を実行する。したがって、ＴＣＰ／ＩＰコネクションは、ＮＲＭ１１３によって局所的に、又はオペレーティングシステム１１１内のＴＣＰ／ＩＰスタック１２１によって従来のように、管理及び処理されてもよい。しかしながら、当業者には理解されるように、この種の機能のＮＲＭ１１３への組み込みは、ＮＲＭ１１３がマルチＮＩＣデバイス１１４の通信スループットを改善することを、マルチＮＩＣデバイス１１４の設定を最適化し、且つ、ＮＩＣ１５１、１５２、及び１５３間のネットワークコネクションを管理することによって、オペレーティングシステム１１１が従来のデバイスドライバアーキテクチャによって可能にするよりも良好に、可能にする。例えば、ＮＲＭ１１３は、当該ＮＲＭ１１３には利用可能であって、通常、オペレーティングシステムは利用することができない情報、例えば、特定のネットワークコネクションを介して送信されるトラフィックの量を、有する。この種の情報は、特に、負荷分散及びフェイルオーバーの点において、ＮＲＭ１１３がオペレーティングシステム１１１よりも豊富な情報に基づいたネットワーク管理上の意思決定をなすことを可能にする。さらに、ＮＲＭ１１３は、ハードウェア抽象化レイヤ１４２を含み、当該レイヤ１４２は、マルチＮＩＣデバイス１１４のハードウェアをＮＲＭネットワークファンクションソフトウェア１４１から分離し、それによって、ＮＲＭネットワークファンクションソフトウェア１４１を、その後のマルチＮＩＣデバイス１１４に対するハードウェア変更から分離する。
【００２５】
[0028]本明細書で上述したように、ＮＲＭ１１３は、また、単一論理ＮＩＣ１１２の状態情報を、ＶＦＤ１３０を介してオペレーティングシステム１１１に報告するように構成されている。例えば、単一論理ＮＩＣ１１２は、チーム内の個々のＮＩＣ１５１、１５２、及び１５３の総スループットを表すスループットをオペレーティングシステム１１１に報告してもよい。したがって、それぞれのＮＩＣ１５１、１５２、及び１５３の個々のスループットが、１００メガビット／秒（Ｍｂｐｓ）であれば、オペレーティングシステム１１１に報告される単一論理ＮＩＣ１１２のスループットは、３００Ｍｂｐｓとなる。ＮＲＭ１１３は、ＮＩＣがチームに追加され、あるいはチームから除去されたときに単一論理ＮＩＣ１１２の総スループットを調節するように設定される。例えば、同じく１００Ｍｂｐｓのスループットを有する第４のＮＩＣが、チームに追加されると、単一論理ＮＩＣ１１２のスループットは、４００Ｍｂｐｓとしてオペレーティングシステムに報告される。同様に、ＮＩＣ１５２が、故障すれば、単一論理ＮＩＣ１１２のスループットは、２００Ｍｂｐｓとなる。さらに、ＮＲＭ１１３は、ＮＩＣ１５１、１５２、及び１５３の一つ以上がイネーブルであるか否かを示す総リンク状態指標をオペレーティングシステム１１１に報告してもよい。例えば、ＮＩＣ１５１、１５２、及び１５３の一つ以上がアクティブであれば、オペレーティングシステム１１１に報告される総リンク状態は、単一論理ＮＩＣ１１２が「イネーブル」であることを示す。しかしながら、すべてのＮＩＣが、ディスエーブルであれば、総リンク状態報告は、単一論理ＮＩＣ１１２が「ディスエーブル」であることを示す。総スループット及び総リンク状態のような状態情報をオペレーティングシステム１１１に提供することによって、オペレーティングシステム１１１は、単一論理ＮＩＣ１１２に関する状態情報をユーザ又はネットワーク監視ソフトウェアに報告することができる。
【００２６】
[0029]要約すると、開示したアーキテクチャは、従来技術によるＬＢＦＯインプレメンテーションに優る次の利点を有する。第１に、ＬＢＦＯ機能は、ＮＩＣレベルの動作パラメータが監視されるＮＲＭ１１３において実装されており、それによって、負荷分散、フェイルオーバー、及びフェイルバックが実行されるときにソフトウェアレベル間において発生する通信の量を最小化する。第２に、ＮＲＭ１１３は、オペレーティングシステム１１１が利用できるとは限らないネットワークトラフィック情報及びその他のＮＩＣレベルの動作パラメータにアクセスし、それによって、ＮＲＭ１１３は、より豊富な情報に基づいて負荷分散、フェイルオーバー、フェイルバックの意思決定をなすことができる。第３に、ＮＲＭネットワークファンクションソフトウェア１４１は、複雑なＬＢＦＯの管理及びオペレーションに特別に適合され、それによって、従来技術によるインプレメンテーションに比較してＬＢＦＯに関連する性能を改善し得る。最後に、単一論理ＮＩＣ１１２が、オペレーティングシステム１１１及びユーザによって認識され、それは、オペレーティングシステム１１１又はユーザが個々のＮＩＣ１５１、１５２、及び１５３又はＮＩＣのチームを再設定する能力を効果的に制限する。さらに、結果として得られる設定が生成され、そして、永続的に維持される。
【００２７】
（８０２．１Ｘのサポート）
[0030]８０２．１ＸにおけるＮＩＣの認証は、通常、ＮＩＣがスイッチから８０２．１Ｘ証明書を要求することによって開始し、スイッチは、８０２．１Ｘ要求を証明書サーバーへ転送する。８０２．１Ｘ要求が承認されれば、証明書サーバーは、８０２．１Ｘ証明書をスイッチに送信し、当該スイッチは、証明書を要求したＮＩＣへ転送する。ＮＩＣが正当な証明書を持つと、当該ＮＩＣは、証明書が満了するまで、あるいは、ＮＩＣとスイッチとの間のネットワークコネクションが中断されるまで（例えば、ネットワークケーブルが切断され、あるいは、ＮＩＣがディスエーブルされた場合）、スイッチと通信する権限を与えられる。ＮＩＣが、８０２．１Ｘ互換スイッチに証明書を要求し、そして、それから証明書を受信するためのネットワーキングプロトコルは、当業者には周知である。
【００２８】
[0031]本発明の一実施の形態においては、特定のＮＩＣを認証するための８０２．１Ｘセキュリティ証明書の要求は、オペレーティングシステム１１１内の８０２．１Ｘソフトウェアから発生し、８０２．１ＸソフトウェアからそのＮＩＣのファンクションドライバを介してＮＲＭ１１３に伝達され、当該ＮＲＭ１１３は、証明書要求を、そのＮＩＣを介してスイッチ１０４へ転送する。ＴＣＰ／ＩＰスタック１２１からＶＦＤ１３０への従来のＴＣＰ／ＩＰ通信であって、当該ＶＦＤ１３０が、ＴＣＰ／ＩＰトラフィックをＮＲＭ１１３に送信し、当該ＮＲＭ１１３において、トラフィックが、チーム内の様々なＮＩＣ１５１、１５２、及び１５３間に分散される通信とは異なり、証明書要求は、認証される実際のＮＩＣを介して送信される。例えば、ＮＩＣ１５１が認証される場合、８０２．１Ｘソフトウェアは、８０２．１Ｘセキュリティ証明書要求をＦＤ１３３に送信し、それに続いて、ＦＤ１３３は、証明書要求を、ハンドル１４５を介してＮＩＣ１５１に送信する。ＮＩＣによって受信されると、証明書要求は、ＮＩＣからスイッチ１０４へ転送される。
【００２９】
[0032]図２は、８０２．１Ｘを用いて個々のＮＩＣ１５１、１５２、及び１５３を認証するように構成された単一論理ＮＩＣ１１２を備える図１の計算デバイス１０２を示している。オペレーティングシステム１１１は、８０２．１Ｘソフトウェアプログラム２２２を備えており、当該８０２．１Ｘソフトウェアプログラム２２２は、ソフトウェアインタフェイス２２７を介してＮＤＩＳ１２３に結合されている。８０２．１Ｘソフトウェアプログラム２２２は、また、一連のソフトウェアバインディング２６８、２６９、及び２７０を介して、それぞれ、ＦＤ１３３、ＦＤ１３４、及びＦＤ１３５に結合されており、それらソフトウェアバインディング２６８、２６９、及び２７０は、ファンクションドライバが生成されたときに、ファンクションドライバによってＮＤＩＳ１２３から自動的に要求される。バスドライバ１１５によって最初に要求され、個々のファンクションドライバごとにＮＤＩＳ１２３によって提供され、その後に、ユーザレベルプロセスによって除去されるＴＣＰ／ＩＰバインディングと異なり、８０２．１Ｘバインディング２６８、２６９、及び２７０は、永続的なものであり、即ち、これら８０２．１Ｘバインディング２６８、２６９、及び２７０は、システムアーキテクチャ全体の永久的な部分であり、かつ、計算デバイス１０２のその後の再起動時に再生成される。しかしながら、重要なことに、オペレーティングシステム１１１への８０２．１Ｘバインディングが、また、バスドライバ１１５によって要求され、且つ、ＮＤＩＳ１２３によってＶＦＤ１３０に提供されるが、このバインディングは、ユーザレベルプロセスによって除去される。なぜならば、オペレーティングシステム１１１に対して単一論理ＮＩＣ１１２として表されたＮＩＣのチームは、チームレベルの８０２．１Ｘ認証を試みることはないからである。より正確には、８０２．１Ｘ認証は、構成要素であるＮＩＣ１５１、１５２、及び１５３のレベルにおいて実行される。このように、図１のバスドライバアーキテクチャは、８０２．１Ｘプロトコルの特別のバインディング要件を管理するようになっており、それによって、計算デバイス１０２が、この重要なセキュリティプロトコルをチーム内のＮＩＣ１５１、１５２、及び１５３ごとにサポートすることを可能にしてもよい。
【００３０】
（８０２．１Ｑのサポート）
[0033]本発明の一実施の形態においては、計算デバイス１０２は、チーム内のＮＩＣ１５１、１５２、及び１５３のそれぞれに共通の一つ以上のＶＬＡＮの割り当てを有してもよい。かかるＶＬＡＮの割り当てはそれぞれ、当該ＶＬＡＮに対して定義されたＩＰアドレスの範囲内において計算デバイス１０２のＩＰアドレスを表す。さらに、ＶＬＡＮごとに、そのＶＬＡＮに関連するＴＣＰ／ＩＰ通信を行うために、単一論理ＮＩＣ１１２とＴＣＰ／ＩＰスタック１２１との間に独立したバインディングが存在する。ＶＬＡＮとしてＩＰアドレスの範囲を設定し、かつ、ＶＬＡＮにマシンを割り当てるための手順は、当業者には周知である。第１のＶＬＡＮの割り当てをサポートするように計算デバイス１０２を再設定することは、バスドライバ１１５が、ＶＬＡＮ属性３３１を既存のＶＦＤ１３０に追加し、かつ、ＶＦＤ１３０とＴＣＰ／ＩＰスタック１２１との間のバインディング１６６を調節して、ＶＬＡＮ属性３３１とＴＣＰ／ＩＰスタック１２１とを結合することを必要とする。更なるＶＬＡＮの割り当てはそれぞれ、バスドライバ１１５が、別の仮想ファンクションドライバを単一論理ＮＩＣ１１２に追加し、且つ、ＮＤＩＳ１２３からのソフトウェアバインディングを要求して、更なるＶＬＡＮに関連するＴＣＰ／ＩＰ通信を行うために、更なる仮想ファンクションドライバをＴＣＰ／ＩＰスタック１２１に結合することを必要とする。更なる仮想ファンクションドライバは、また、ＴＣＰ／ＩＰスタック１２１とＮＩＣ１５１、１５２、及び１５３のチームとの間の通信を可能にするために、ＶＦＤ１３０がＮＲＭ１１３に結合されるのと同様の方法にて、ＮＲＭ１１３に結合される。さらに、オペレーティングシステム１１１内の８０２．１Ｘソフトウェアプログラム２２２とさらなる仮想ファンクションドライバとの間のバインディングであって、バスドライバ１１５が更なる仮想ファンクションドライバを生成したときに最初に生成された当該バインディングは、ＶＦＤ１３０の場合に８０２．１Ｘバインディングが除去されたように、ユーザレベルプロセスによって除去される。この構成においては、計算デバイス１０２は、単一論理ＮＩＣ１１２内に含まれる仮想ファンクションドライバの何れかに対応するＶＬＡＮの何れかに割り当てられた計算デバイスと通信してもよく、また、計算デバイス１０２は、これらのＶＬＡＮに割り当てられていない計算デバイスと通信することを阻止され、これによって、８０２．１Ｑネットワーク規格をサポートする。
【００３１】
[0034]図３は、単一論理ＮＩＣ１１２を含む計算デバイス１０２を示している。ここでは、ＮＩＣ１５１、１５２、及び１５３は、二つの異なるＶＬＡＮに割り当てられている。図示するように、単一論理ＮＩＣ１１２は、ＶＦＤ１３０、ＶＦＤ３３２、ＦＤ１３３、ＦＤ１３４、及びＦＤ１３５を有している。ＶＦＤ１３０は、ソフトウェアバインディング１６６を介してＴＣＰ／ＩＰスタック１２１に結合されたＶＬＡＮ属性３３１を有している。ＶＦＤ１３０は、バスドライバ１１５に結合されており、また、一対のソフトウェアハンドル１６４及び１４３のそれぞれを介してＮＲＭ  ＡＰＩ１４０に結合されている。ＶＦＤ３３２は、ソフトウェアバインディング３６７を介してＴＣＰ／ＩＰスタック１２１に結合されており、また、さらに、ソフトウェアハンドル３６３及び３４４のそれぞれを介してバスドライバ１１５及びＮＲＭ  ＡＰＩ１４０に結合されている。図３に示すように、計算デバイス１０２に対する第１のＶＬＡＮの割り当ては、ＶＬＡＮ属性３３１をＶＦＤ１３０に追加し、且つ、バインディング１６６を調節して、ＶＬＡＮ属性３３１とＴＣＰ／ＩＰスタック１２１とを結合することによって、提供される。計算デバイス１０２に対する第２のＶＬＡＮの割り当ては、ＶＦＤ３３２を生成し、且つ、ＶＦＤ３３２を、上述したようなソフトウェアハンドル及びバインディングを介して、ＴＣＰ／ＩＰスタック１２１、ＮＲＭ  ＡＰＩ１４０、及びバスドライバ１１５に結合することによって、提供される。重要なことには、ＶＬＡＮ属性３３１及びＶＦＤ３３２は、ＴＣＰ／ＩＰスタック１２１に結合されており、一方、ＦＤ１３３、ＦＤ１３４、及びＦＤ１３５は、８０２．１Ｘソフトウェアプログラム２２２に結合されている。この構成は、ＶＬＡＮトラフィックを伝送する単一論理ＮＩＣ１１２内のコンポーネントへのＴＣＰ／ＩＰ通信を制限し、また、個々のＮＩＣ１５１、１５２、及び１５３を介して８０２．１Ｘ証明書要求を伝送する単一論理ＮＩＣ１１２内のコンポーネントへの８０２．１Ｘ通信を制限する。
【００３２】
[0035]上述の説明は、本発明の幾つかの実施の形態に関するものであり、本発明のその他の実施の形態、及び更なる実施の形態が、本発明の基本的な範囲から逸脱することなく考案されてもよい。例えば、様々な実施の形態において、ＮＩＣのチームは、任意の数のＮＩＣを有していてもよい。計算デバイス１０２が一つのＮＩＣを含む実施の形態においては、そのＮＩＣのための一つのファンクションドライバが存在し、ソフトウェアバインディングが、ＮＩＣとオペレーティングシステム１１１との間で従来のネットワーク通信をハンドリングするために、ＴＣＰ／ＩＰスタック２１２にファンクションドライバを結合することもあるであろう。さらに、適切であるならば、別のソフトウェアバインディングが、８０２．１Ｘを使用するＮＩＣを認証するために、ファンクションドライバを８０２．１Ｘソフトウェアプログラム２２２に結合することもあるであろう。第１のＶＬＡＮの割り当てをサポートするために、第１の仮想ファンクションドライバを生成し、ＴＣＰ／ＩＰスタック１２１とファンクションドライバとの間のソフトウェアバインディングを転送し、第１の仮想ファンクションドライバとＴＣＰ／ＩＰスタック１２１とを結合して、ＶＬＡＮトラフィックが、ＮＩＣとＴＣＰ／ＩＰスタック１２１との間で伝送されることを可能にすることもあるであろう。更なるＶＬＡＮの割り当てごとに、別の仮想ファンクションドライバを、その更なる仮想ファンクションドライバをＴＣＰ／ＩＰスタック１２１に結合するソフトウェアバインディングと共に生成し、更なるＶＬＡＮに関連するネットワークトラフィックを、ＮＩＣとＴＣＰ／ＩＰスタック１２１との間で伝送することを可能にすることもあるであろう。上述の説明に加えて、図１〜図３に示されるソフトウェアコンポーネント及び階層は、例として示したものであり、機能的に等価なその他のソフトウェアコンポーネント及びその他の階層を、本発明の範囲を逸脱することなく実施してもよい。さらに、計算デバイス１０２は、デスクトップコンピュータ、サーバー、ラップトップコンピュータ、パームトップコンピュータ、携帯情報端末、タブレットコンピュータ、ゲーム機、携帯電話、又は情報を処理するそれらに類似する任意のその他の種類のデバイスであってもよい。
【００３３】
[0036]したがって、本発明の範囲は、特許請求の範囲に定義される。
【図面の簡単な説明】
【００３４】
【図１】本発明の一実施の形態に係る単一論理ＮＩＣを備えて構成された計算デバイスを含むコンピュータネットワークを示す図である。
【図２】本発明の一実施の形態に係り、単一論理ＮＩＣが８０２．１Ｘをサポートするように構成されている場合の図１の計算デバイスを示す図である。
【図３】本発明の一実施の形態に係り、ＮＩＣが二つのＶＬＡＮに属している場合の図１の計算デバイスを示す図である。
【符号の説明】
【００３５】
１００…コンピュータネットワーク、１０５…ネットワークインタフェイス、１０７、１０８、１０９…ネットワークインタフェイス、１２５、１２６…ソフトウェアインタフェイス、１４３、１４５、１４６、１４７…ソフトウェアハンドル、１４８、１４９…ソフトウェアインタフェイス、１５４…ハードウェア／ソフトウェアインタフェイス、１５５、１５６、１５７…ハードウェアインタフェイス、１６０、１６１、１６２、１６４、１６５…ソフトウェアハンドル、１６６…ソフトウェアバインディング。
【図１】
0004515441.tif 000002
【図２】
0004515441.tif 000003
【図３】
0004515441.tif 000004