JP4515441B2 - 改善された負荷分散及びフェイルオーバー機能のための単一論理ネットワークインタフェイス - Google Patents

改善された負荷分散及びフェイルオーバー機能のための単一論理ネットワークインタフェイス Download PDF

Info

Publication number
JP4515441B2
JP4515441B2 JP2006338932A JP2006338932A JP4515441B2 JP 4515441 B2 JP4515441 B2 JP 4515441B2 JP 2006338932 A JP2006338932 A JP 2006338932A JP 2006338932 A JP2006338932 A JP 2006338932A JP 4515441 B2 JP4515441 B2 JP 4515441B2
Authority
JP
Japan
Prior art keywords
function driver
software
nic
driver
computing device
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.)
Expired - Fee Related
Application number
JP2006338932A
Other languages
English (en)
Other versions
JP2007193779A5 (ja
JP2007193779A (ja
Inventor
ケー. ジャ アシュトシュ
アブデュラ アヤツ
マニッカヴァサガム ハママリニ
ラジャゴパラン アナンド
ジェー. サイデンブラッド ポール
Original Assignee
エヌヴィディア コーポレイション
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 エヌヴィディア コーポレイション filed Critical エヌヴィディア コーポレイション
Publication of JP2007193779A publication Critical patent/JP2007193779A/ja
Publication of JP2007193779A5 publication Critical patent/JP2007193779A5/ja
Application granted granted Critical
Publication of JP4515441B2 publication Critical patent/JP4515441B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

発明の分野
[0001]本発明の実施の形態は、広くコンピュータネットワークの構築の分野に関するものであり、より詳細には、改善された負荷分散及びフェイルオーバー機能を備える単一論理ネットワークインタフェイスに関するものである。
関連技術の説明
[0002]ネットワーク計算デバイスは、多くの場合、二つ以上のネットワークインタフェイスカードを有して、単一のネットワークインタフェイスカードが提供する以上に、計算デバイスの通信帯域幅を増大する。このような複数のNICは、一般的には、NICの「チーム」と呼ばれる。通常、チームは、共通のインターネットプロトコル(IP)アドレスを共有し、一方、チーム内のそれぞれのNICごとに固有のメディアアクセス制御(MAC)アドレスを維持している。このチーム構成を使用する一つの側面は、計算デバイスとネットワーク内の別の計算デバイスとの間のネットワークトラフィックをチーム内のNIC間で分散し、それによって、チームの全体的なスループットを最大化し得ることである。この種のオペレーションは、「負荷分散」と呼ばれる。チーム構成を使用する別の側面は、ネットワークトラフィックをチーム内の機能していないか又は信頼性のないNICからチーム内の機能しているか又はより信頼性のあるNICへ移動することができることである。この種のオペレーションは、「フェイルオーバー」と呼ばれる。一つに実装する場合の負荷分散とフェイルオーバーとの組み合わせは、典型的には、「LBFO」と呼ばれる。
[0003]LBFOの実装体が、NIC間でネットワーク接続を設定及び移動して、計算デバイスのネットワーク通信のスループット及びネットワーク通信の信頼性を最適化するためには、当該LBFOの実装体が、それぞれのNICにおけるエラー率及びそれぞれのネットワークコネクションを介して交換されるデータの量のような動作パラメータをNICレベルで監視する。典型的なLBFOの実装体は、LBFOソフトウェアをオペレーティングシステム内に配置し、NICレベルの動作パラメータを一以上のデバイスドライバを介してNICハードウェアに要求する。結果として得られるアーキテクチャは、本質的に非効率的なものとなる。なぜならば、それらLBFOの実装体は、動作パラメータが監視される場所から遠く離れた幾つかのソフトウェアレベルにLBFOの意思決定機能及び管理機能を配置し、それらソフトウェアレベル間で大量の継続的な通信を必要とするからである。さらに、ソフトウェアレベル間で必要とされる通信を減少させるために、及び/又は、オペレーティングシステム内に存在するLBFOの実装体がLBFO用に十分に最適化されていないので、従来技術によるLBFOの実装体におけるLBFO意思決定エレメントは、NICレベルで利用可能な全ての動作パラメータを利用しないことがある。したがって、オペレーティングシステム内に存在するLBFOの実装体は、ソフトウェアレベル間における過剰なソフトウェア通信、及び、限られたNICレベルの動作情報に基づいたLBFO意思決定のために、性能が低下することがある。
[0004]さらに、LBFOの実装体が、信頼性を有し、且つ、高い性能を維持するためには、その構成が、オペレーティングシステム、若しくは、ユーザ又はアプリケーションプログラムのような任意の第三者によって変更されてはならない。典型的なLBFOの実装体は、チーム内のそれぞれのNICをオペレーティングシステムに公開し、何れかのNICを再構成する能力を含めて、オペレーティングシステムに相当な程度までNICを制御させる。このような実装体においては、オペレーティングシステムは、NICのチームに対応するIPアドレスを変更可能であったり、あるいは、特定のNICに対するセキュリティ設定又は通信パラメータを変更可能であることがある。さらに、NICがオペレーティングシステムに公開される結果として、それらのNICが第三者にも暴露される限りにおいて、第三者は、同様に、NICを再構成できることがある。例えば、ユーザは、信頼性のあるNICを誤ってディスエーブル、又は再構成できることがあり、或いは、信頼性のないNICをイネーブルにできることがある。一般的には、NICのチームは、特定のLBFOアーキテクチャを最適化するように構成される。NICがチームとして構成された後にNICを一方的に再構成することは、その最適化を相当に弱体化させ、それによって、計算デバイスのネットワーク通信の性能及び/又は信頼性を低下させることがある。
[0005]さらに、LBFOの実装体が近年のネットワークにおいて極めて有効なものであるためには、当該実装体は、ネットワークにおいて使用されている可能性がある追加のセキュリティ機能を考慮しなければならない。このようなセキュリティ機能の一つは、米国電気電子技術者協会(IEEE)セキュリティ証明書プロトコル(以下、「802.1X」と呼ぶ)であり、これは、NICがスイッチと通信する前にセキュリティ証明書サーバーからの認証を要求するようにNICに命じることによってネットワークセキュリティを改善するものである。更なるセキュリティ機能は、IEEE「仮想LAN」プロトコル(以下、「802.1Q」と呼ぶ)であり、これは、ネットワーク管理者が、ある範囲のIPアドレス範囲を仮想LAN(VLAN)として設定し、マシンをVLANに選択的に割り当てることを可能にし、これによって、VLAN内に存在するマシン間の通信を可能にし、VLAN内に存在するマシンとVLAN外に存在するマシンとの間の通信を阻止することによって、ネットワークセキュリティを改善する。これらのプロトコルのそれぞれは、更なる制約をLBFOの実装体に課す。その結果として、既存のLBFOの実装体の一つの欠点は、それら実装体が、上述したセキュリティ(802.1X及び802.1Q)プロトコルの制約の範囲内でLBFOを必ずしも実現するとは限らないことである。
[0006]これまでに説明したように、当分野において必要とされているものは、上述した既存のLBFOの実装体の一つ以上の欠点を解決するLBFOアーキテクチャである。
発明の概要
[0007]本発明の一実施の形態は、負荷分散及びフェイルオーバー技術を用いて、オペレーティングシステムと、一以上のネットワーク接続をサポートするためのチームとして構成された第1のネットワークインタフェイスカード(NIC)及び第2のNICと、を有する計算デバイスを構成するための方法を説明する。この方法は、第1のNICに対応する第1のファンクションドライバと、第2のNICに対応する第2のファンクションドライバとを生成するステップと、第1のファンクションドライバを第1のソフトウェアバインディングを介してオペレーティングシステム内のソフトウェアスタックに結合するステップと、第2のファンクションドライバを第2のソフトウェアバインディングを介してソフトウェアスタックに結合するステップと、NICのチームに対応する仮想ファンクションドライバを生成するステップと、仮想ファンクションドライバを第3のソフトウェアバインディングを介してソフトウェアスタックに結合するステップと、を含む。
[0008]開示された方法の一つの利点は、結果として得られるアーキテクチャが、新規で効果的な形でバスアーキテクチャを利用し、ファンクションドライバ、ソフトウェアバインディング、及びソフトウェアハンドルを生成及び管理することによって、単一論理NICをオペレーティングシステムに公開することである。単一論理NICとネットワーク資源マネージャとが、協働して、オペレーティングシステムから独立に、負荷分散、フェイルオーバー、及びフェイルバックを実行し、これによって、計算デバイスの信頼性及びネットワーキングスループットを改善する。単一論理NICは、また、802.1Xネットワーキング規格及び802.1Qネットワーキング規格をサポートし、これによって、計算デバイスとコンピュータネットワーク内に存在するその他のマシンとの間における通信のセキュリティを改善することができる。
[0009]上述した本発明の特徴をより詳細に理解できるように、上で簡単に説明した本発明のより詳細な説明を、実施の形態を参照して行う。幾つかの実施形態を添付の図面に示す。添付の図面は、本発明の典型的な実施の形態だけを示すものであり、したがって、本発明の範囲を限定するものとみなすべきではないことに注意されたい。なぜなら、本発明は、その他の同様に有効な実施の形態にも通じるからである。
詳細な説明
[0013]図1は、本発明の一実施の形態に係るコンピュータネットワーク100を示しており、当該コンピュータネットワーク100は、単一論理NIC112を備えて構成された計算デバイス102を含んでいる。同図に示すように、計算デバイス102はまた、限定するものではないが、アプリケーションプログラム110、オペレーティングシステム111、バスドライバ115、ネットワーク資源マネージャ(NRM)113、及びマルチNICデバイス114を備えており、当該マルチNICデバイス114上には、NIC151、152、及び153が設けられている。NIC151、152、及び153は、チームとして構成されており、共通のIPアドレスを共有しており、個別のMACアドレスを有している。重要なことに、チームは、オペレーティングシステム111及びアプリケーションプログラム110に対しては、三つの関連するNICの集合ではなく、単一の「仮想」NICとして表されている。単一論理NIC112が、この仮想NICを形成する。
[0014]オペレーティングシステム111は、明瞭にするために図1からは省略されているその他の数あるソフトウェアコンポーネントの中でも、特に、TCP/IPスタック121、「App/OSソケットインタフェイスオブジェクト」として示したインタフェイスオブジェクト120、及び「ネットワークスタックインタフェイスオブジェクト(NDIS)」として示したソフトウェアインタフェイスオブジェクト123を有している。TCP/IPスタック121は、ソフトウェアインタフェイス125を介してインタフェイスオブジェクト120に結合されており、また、ソフトウェアインタフェイス126を介してインタフェイスオブジェクト123に結合されている。
[0015]単一論理NIC112は、仮想ファンクションドライバ(VFD)130、ファンクションドライバ(FD)133、FD134、及びFD135を有している。NRM113は、NRMアプリケーションプログラミングインタフェイス(API)140、NRMネットワークファンクションソフトウェア141、及びハードウェア抽象化レイヤ(HAL)142を有している。NRMネットワークファンクションソフトウェア141は、ソフトウェアインタフェイス148を介してHAL142に結合されており、また、ソフトウェアインタフェイス149を介してNRM API140に結合されている。マルチNICデバイス114は、「チップ内部へのインタフェイス」として示した外部ハードウェアインタフェイス150を有しており、当該外部ハードウェアインタフェイス150には、NIC151、NIC152、及びNIC153が、それぞれ、ハードウェアインタフェイス155、156、及び157を介して結合されている。ハードウェアインタフェイス150は、ハードウェア/ソフトウェアインタフェイス154を介して、NRM113のHAL142に結合されている。
[0016]バスドライバ115は、それぞれ、ソフトウェアハンドル165、164、162、161、及び160を介して、NRM113、VFD130、FD133、FD134、及びFD135のそれぞれに結合される。以下でより詳細に説明するように、NICごとに、ソフトウェアハンドル145、146、及び147が、場合によっては、そのNICに対応するファンクションドライバとそのNICを代理するNRM113におけるソフトウェアオブジェクトとの間に通信チャンネルを確立する。同様に、ソフトウェアハンドル143が、VFD130とNICのチームを代理するNRM113におけるソフトウェアオブジェクトとの間に通信チャンネルを確立する。VFD130は、ソフトウェアバインディング166を介して、TCP/IPスタック121に結合される。
[0017]コンピュータネットワーク100は、更に、スイッチ104及びリモートマシン106を備えている。スイッチ104は、ネットワークインタフェイス105を介して、リモートマシン106に結合されており、また、ネットワークインタフェイス107、108、及び109を介して、NIC151、152、及び153にそれぞれ結合されている。
[0018]本明細書においてより詳細に説明するように、本発明は、単一論理NIC112をオペレーティングシステム111に提供する。この単一論理NIC112とNRM113とは、協働して、オペレーティングシステム111から独立に、負荷分散、フェイルオーバー、及びフェイルバックを実行し、これによって、計算デバイス102の信頼性及びネットワーキングスループットを改善する。単一論理NIC112は、また、802.1Xネットワーキング規格及び802.1Qネットワーキング規格をサポートし、これによって、計算デバイス102とネットワーク100内に存在するその他のマシンとの間における通信のセキュリティを改善することができる。さらに、計算デバイス102内の関連するデバイスドライバ及びハードウェアコンポーネントは、単一論理NIC112を自動的に生成し、且つ、それを永続的に維持するように構成されている。結果として得られた設定は、自動的かつ永続的に維持され、システム再起動時に、一貫性及び信頼性のある設定を保証する。
(バスアーキテクチャ)
[0019]通常、オペレーティングシステムは、一つ以上のデバイスドライバを介して、ハードウェアデバイスと通信し、当該デバイスドライバは、それらに対応のハードウェアデバイスを直接制御する。デバイスドライバはまた、一以上の仲介デバイスドライバを介して、ハードウェアデバイスと通信し、それらに対応のハードウェアデバイスを間接制御することもある。このような間接制御の一例は、ディジタルカメラデバイスドライバが、ユニバーサルシリアルバス(USB)上のディジタルカメラを、USB用のデバイスドライバへの結合を通じて制御するように、デバイスドライバが、ハードウェアバス上のハードウェアデバイスを、ハードウェアバス用の仲介デバイスドライバへの結合を通じて制御する場合である。USBデバイスドライバは、バス上の通信を直接制御し、ディジタルカメラデバイスドライバは、USBデバイスドライバとの通信を通じて、バスを介するディジタルカメラとの通信を間接制御する。このようなアーキテクチャは、多くの場合、システム内のオペレーティングシステムとハードウェアデバイスとの間で適切な対話を達成するために適切に管理されなければならない複雑なソフトウェア及びハードウェア階層をもたらす。このようなソフトウェア及びハードウェア階層の技術的な複雑さは、ソフトウェア−ハードウェア間通信を一貫性のあるオブジェクト指向の形で管理するための様々なソフトウェアアーキテクチャの開発を促した。
[0020]一つのこのようなソフトウェアアーキテクチャは、「バスアーキテクチャ」と呼ばれるものであり、ハードウェアバス上のハードウェアデバイスを間接的に制御するようにうまく適合された階層デバイスドライバアーキテクチャを生成するための汎用ソフトウェアオブジェクトを提供する。バスアーキテクチャは、通常、ハードウェアバスを制御するための「汎用バスドライバ」ソフトウェアオブジェクトと、ハードウェアバス上のそれぞれのデバイスを間接制御するための「汎用ファンクションドライバ」ソフトウェアオブジェクトとを提供する。汎用バスドライバ及び汎用ファンクションドライバは、通常、ハードウェア製造業者によって提供される付加的なデバイス固有ソフトウェアによって補完され、当該デバイス固有ソフトウェアは、汎用バスドライバ又は汎用ファンクションドライバが、それぞれ、ハードウェアバス又はそのハードウェアバス上のハードウェアデバイスに対応するデバイス固有ハードウェア機能と通信することを可能にする。このような補完的なソフトウェアは、本明細書では簡単に「バスドライバ」又は「ファンクションドライバ」と呼ぶ「デバイス固有バスドライバ」又は「デバイス固有ファンクションドライバ」を生成する。さらに、バスドライバは、どのハードウェアデバイスがハードウェアバスに結合されるかを特定し、これらのハードウェアデバイス用のファンクションドライバを生成し、そして、そのファンクションドライバを、ソフトウェアインタフェイスを介してバスドライバに結合するソフトウェアを含む。一旦生成されると、各ファンクションドライバは、それ自身を、ハードウェアデバイスへのソフトウェアハンドルを介して、対応のハードウェアデバイスに結合するか、あるいは、それ自身を、仲介ソフトウェアオブジェクトへのソフトウェアハンドルを介して、ハードウェアデバイスを代理する仲介ソフトウェアオブジェクトに結合する。また、ファンクションドライバは、それ自身を、NDIS123のようなオペレーティングシステム内のソフトウェアインタフェイスオブジェクトによって提供されるオペレーティングシステムへのソフトウェアバインディングを介して、オペレーティングシステムに結合する。ファンクションドライバは、対応のハードウェアデバイスを管理するために必要とする特定の機能を備えて構成されるか、あるいは、システム内の別のエンティティーからその特定の機能にアクセスすることができるので(例えば、オペレーティングシステムへのネットワーク指向コールを介して)、ファンクションドライバは、オペレーティングシステムとその対応のハードウェアデバイスとを間接的に結合するインタフェイスオブジェクトとしての機能を成すことが可能である。
[0021]重要なことには、オペレーティングシステムが、あるファンクションドライバをどの程度制御するかは、オペレーティングシステムが、そのファンクションドライバに対応するハードウェアデバイスをどの程度制御するかによって定まる。バスドライバは、システム内における様々なファンクションドライバの生成を制御し、また、ファンクションドライバは、それら自身とオペレーティングシステムとの間のソフトウェアインタフェイスを生成する。したがって、バスアーキテクチャが、どのファンクションドライバが生成されるのかを直接制御することによって、また、それらのファンクションドライバがどのようにしてオペレーティングシステムに結合されるのかを間接制御することによって、オペレーティングシステムと種々のハードウェアデバイスとの対話を制御するのに使用されてもよい。さらに、一端設定されてしまえば、バスアーキテクチャは、この情報をレジストリ又は外部データファイルに記憶することによって、バスドライバ、ファンクションドライバ(一つ以上)、及びそれらの結合の設定を永続的に維持し、計算デバイスが再起動されるときに、階層ドライバの設定が高い信頼性で再生成されることを確実にする。設定情報をレジストリ又は外部データファイルに記憶するための方法は、当業者には周知である。このように、バスアーキテクチャは、階層的かつ永続的なデバイスドライバを生成及び維持するための洗練されたソフトウェアアーキテクチャを提供し、当該ソフトウェアアーキテクチャを使用して、デバイスドライバに対応するハードウェアデバイスとのオペレーティングシステムの対話を制御し得る。
[0022]本発明は、新規な態様のバスアーキテクチャを使用して、オペレーティングシステムに対して、NICのチームを単一論理NICとして表す。単一論理NICは、チーム内の各NIC用のファンクションドライバと、オペレーティングシステムとNICのチームとの間の従来のネットワーキング通信を取り扱うための仮想ファンクションドライバと呼ばれる付加的なファンクションドライバと、を有している。従来のネットワークトラフィック及び設定通信の全てを、オペレーティングシステムと個々のファンクションドライバ又はNICとの間ではなく、オペレーティングシステムと仮想ファンクションドライバとの間で流れるように構成することによって、オペレーティングシステムは、個々のNIC又はNICのチームを再設定することを効果的に防止し、また、ネットワークトラフィックをチーム内の個々のNIC間で分散しようとする試みを効果的に防止する。本明細書でより詳細に説明するように、この構成は、ユーザレベルプロセスによって、また、仲介ソフトウェアオブジェクト、即ち、NICの設定及び通信をインテリジェントに制御するためのNRMを導入することによって、ファンクションドライバとオペレーティングシステムとの間の全てのバインディングを選択的に除去することにより、達成される。
[0023]再び、図1を参照する。NRM113は、NIC151、152、及び153のチームを設定及び管理することを可能にし、また、負荷分散機能、フェイルオーバー機能、及びフェイルバック機能をインテリジェントに提供することを可能にして、計算デバイス102のネットワーキングスループット及び信頼性を改善する。NRM113は、NIC151、152、及び153のチームを代理するハンドルを仮想ファンクションドライバ130に提供し、それによって、VFD130とNRM113との間における従来のネットワークトラフィック及び設定の伝送を可能にする。NRM113内においては、ネットワークトラフィックは、個々のNIC151、152、及び153間に分散されてもよい。NRM113は、また、NIC151、152、及び153のチームに関する状態情報、例えば、総通信スループット又は総リンク状態指標を、VFD130を介して、オペレーティングシステム111へ送信してもよい。さらに、以下でより詳細に説明するように、ハンドルを個々のNIC151、152、及び153に提供して、NRM113は、802.1XのようなNICレベルの通信を必要とする高度なネットワーキング機能を可能にしてもよい。したがって、単一論理NIC112は、VFD130、FD133、FD134、及びFD135を備え、NRM113と共働して、オペレーティングシステム111とNIC151、152、及び153のチームとの間の仮想インタフェイスを生成し、当該仮想インタフェイスによって、オペレーティングシステム111が個々のNIC151、152、及び153と対話する能力を制限する。例えば、種々のNIC151、152、及び143が、故障するかあるいは動作状態に復旧すると、NRM113は、ネットワークトラフィックを再構成して、ユーザ又はオペレーティングシステムの何れにもこの再構成を認識させることなく、特定のNICの除去及び追加を認識し得る。さらに、この構成によって、場合によっては、NRM113が、NIC151、152、及び153をインテリジェントに設定し、且つ、それらのそれぞれのネットワークコネクションを効率的に管理することを可能にし、負荷分散機能、フェイルオーバー機能、及びフェイルバック機能を最適化する。
[0024]図1に示すアーキテクチャを設定する場合に、バスドライバ115は、FD133、FD134、及びFD135を生成し、次いで、バスドライバ115自身を、ソフトウェアハンドル162、161、及び160を介して、これらのファンクションドライバのそれぞれに結合する。最初に、FD133、FD134、及びFD135の各々が、それ自身を、ソフトウェアバインディングを介して、NDIS123によって提供されるTCP/IPスタック121に結合する。さらに、FD133は、それ自身を、NRM API140によって提供されるハンドル145を介して、NIC151を代理するNRM113内のソフトウェアオブジェクト(図示しない)に結合し、それによって、FD133とNIC151との間に通信チャンネルを生成し、FD134は、それ自身を、NRM API140によって提供されるハンドル146を介して、NIC152を代理するNRM113内のソフトウェアオブジェクト(図示しない)に結合し、それによって、FD134とNIC152との間に通信チャンネルを生成し、FD135は、それ自身を、NRM API140によって提供されるハンドル147を介して、NIC153を代理するNRM113内のソフトウェアオブジェクト(図示しない)に結合し、それによって、FD135とNIC153との間に通信チャンネルを生成する。これらの通信チャンネルのそれぞれは、例えば、以下でより詳細に説明するように、802.1Xセキュリティ証明書要求が伝達される場合のように、オペレーティングシステム111が、NICのチームの代わりに、個々のNIC151、152、及び153と直接に通信する場合に使用されてもよい。
[0025]また、バスドライバ115は、VFD130を生成して、オペレーティングシステム111へのインタフェイスを単一論理NIC112に提供する。さらに、VFD130は、それ自身を、NIC151、152、及び153のチームを代理するNRM113内のソフトウェアオブジェクト(図示しない)に、NRM API140によって提供されるハンドル143を介して結合し、また、TCP/IPスタック121に、NDIS123によって提供されるバインディング166を介して結合し、それによって、TCP/IPスタック121とNICのチームとの間に通信チャンネルを生成する。この通信チャンネルは、例えば、従来のTCP/IP通信がオペレーティングシステム111内のTCP/IPスタック121によって管理及び処理される場合のように、オペレーティングシステム111が、NICのチームと直接に通信する場合に使用されてもよい。
[0026]重要なことには、ユーザレベルプロセスは、TCP/IPスタック121とそれらのFD133、FD134、及びFD135のそれぞれとの間のバインディングを、バスドライバ115がファンクションドライバFD133、FD134、及びFD135を生成した後に、除去する。その結果として、図面に示すように、オペレーティングシステム111と単一論理NIC112との間のバインディングは、バインディング166だけとなる。したがって、バインディング166は、従来のネットワーキング通信のための、並びに、設定及び状態情報の通信のための、オペレーティングシステム111と単一論理NIC112との間に存在する単一のソフトウェアインタフェイスとなる。オペレーティングシステム111とFD133、FD134、及びFD135との間のバインディングを除去することによって、オペレーティングシステム111及び第三者が一方的にNIC151、152、及び153を再設定することが防止されることを確実にする。上述したように、結果として得られる設定は、バスアーキテクチャソフトウェア内に組み込まれた内在する記憶機構によって永続的に保存される。再起動時には、計算デバイス102の設定が、記憶デバイスから読み出され、バスドライバ115、VFD130、FD133、FD134、及びFD135、バインディング166、及び結合162、161、160、143、145、146、及び147が、再び生成される。
[0027]NRM113は、NRMネットワークファンクションソフトウェア141を備えており、当該NRMネットワークファンクションソフトウェア141は、ローカルTCP/IPスタック(図示しない)を有しており、NIC最適化機能と、NRM113によって実行されるすべての専用ネットワーキング機能と、を実行する。したがって、TCP/IPコネクションは、NRM113によって局所的に、又はオペレーティングシステム111内のTCP/IPスタック121によって従来のように、管理及び処理されてもよい。しかしながら、当業者には理解されるように、この種の機能のNRM113への組み込みは、NRM113がマルチNICデバイス114の通信スループットを改善することを、マルチNICデバイス114の設定を最適化し、且つ、NIC151、152、及び153間のネットワークコネクションを管理することによって、オペレーティングシステム111が従来のデバイスドライバアーキテクチャによって可能にするよりも良好に、可能にする。例えば、NRM113は、当該NRM113には利用可能であって、通常、オペレーティングシステムは利用することができない情報、例えば、特定のネットワークコネクションを介して送信されるトラフィックの量を、有する。この種の情報は、特に、負荷分散及びフェイルオーバーの点において、NRM113がオペレーティングシステム111よりも豊富な情報に基づいたネットワーク管理上の意思決定をなすことを可能にする。さらに、NRM113は、ハードウェア抽象化レイヤ142を含み、当該レイヤ142は、マルチNICデバイス114のハードウェアをNRMネットワークファンクションソフトウェア141から分離し、それによって、NRMネットワークファンクションソフトウェア141を、その後のマルチNICデバイス114に対するハードウェア変更から分離する。
[0028]本明細書で上述したように、NRM113は、また、単一論理NIC112の状態情報を、VFD130を介してオペレーティングシステム111に報告するように構成されている。例えば、単一論理NIC112は、チーム内の個々のNIC151、152、及び153の総スループットを表すスループットをオペレーティングシステム111に報告してもよい。したがって、それぞれのNIC151、152、及び153の個々のスループットが、100メガビット/秒(Mbps)であれば、オペレーティングシステム111に報告される単一論理NIC112のスループットは、300Mbpsとなる。NRM113は、NICがチームに追加され、あるいはチームから除去されたときに単一論理NIC112の総スループットを調節するように設定される。例えば、同じく100Mbpsのスループットを有する第4のNICが、チームに追加されると、単一論理NIC112のスループットは、400Mbpsとしてオペレーティングシステムに報告される。同様に、NIC152が、故障すれば、単一論理NIC112のスループットは、200Mbpsとなる。さらに、NRM113は、NIC151、152、及び153の一つ以上がイネーブルであるか否かを示す総リンク状態指標をオペレーティングシステム111に報告してもよい。例えば、NIC151、152、及び153の一つ以上がアクティブであれば、オペレーティングシステム111に報告される総リンク状態は、単一論理NIC112が「イネーブル」であることを示す。しかしながら、すべてのNICが、ディスエーブルであれば、総リンク状態報告は、単一論理NIC112が「ディスエーブル」であることを示す。総スループット及び総リンク状態のような状態情報をオペレーティングシステム111に提供することによって、オペレーティングシステム111は、単一論理NIC112に関する状態情報をユーザ又はネットワーク監視ソフトウェアに報告することができる。
[0029]要約すると、開示したアーキテクチャは、従来技術によるLBFOインプレメンテーションに優る次の利点を有する。第1に、LBFO機能は、NICレベルの動作パラメータが監視されるNRM113において実装されており、それによって、負荷分散、フェイルオーバー、及びフェイルバックが実行されるときにソフトウェアレベル間において発生する通信の量を最小化する。第2に、NRM113は、オペレーティングシステム111が利用できるとは限らないネットワークトラフィック情報及びその他のNICレベルの動作パラメータにアクセスし、それによって、NRM113は、より豊富な情報に基づいて負荷分散、フェイルオーバー、フェイルバックの意思決定をなすことができる。第3に、NRMネットワークファンクションソフトウェア141は、複雑なLBFOの管理及びオペレーションに特別に適合され、それによって、従来技術によるインプレメンテーションに比較してLBFOに関連する性能を改善し得る。最後に、単一論理NIC112が、オペレーティングシステム111及びユーザによって認識され、それは、オペレーティングシステム111又はユーザが個々のNIC151、152、及び153又はNICのチームを再設定する能力を効果的に制限する。さらに、結果として得られる設定が生成され、そして、永続的に維持される。
(802.1Xのサポート)
[0030]802.1XにおけるNICの認証は、通常、NICがスイッチから802.1X証明書を要求することによって開始し、スイッチは、802.1X要求を証明書サーバーへ転送する。802.1X要求が承認されれば、証明書サーバーは、802.1X証明書をスイッチに送信し、当該スイッチは、証明書を要求したNICへ転送する。NICが正当な証明書を持つと、当該NICは、証明書が満了するまで、あるいは、NICとスイッチとの間のネットワークコネクションが中断されるまで(例えば、ネットワークケーブルが切断され、あるいは、NICがディスエーブルされた場合)、スイッチと通信する権限を与えられる。NICが、802.1X互換スイッチに証明書を要求し、そして、それから証明書を受信するためのネットワーキングプロトコルは、当業者には周知である。
[0031]本発明の一実施の形態においては、特定のNICを認証するための802.1Xセキュリティ証明書の要求は、オペレーティングシステム111内の802.1Xソフトウェアから発生し、802.1XソフトウェアからそのNICのファンクションドライバを介してNRM113に伝達され、当該NRM113は、証明書要求を、そのNICを介してスイッチ104へ転送する。TCP/IPスタック121からVFD130への従来のTCP/IP通信であって、当該VFD130が、TCP/IPトラフィックをNRM113に送信し、当該NRM113において、トラフィックが、チーム内の様々なNIC151、152、及び153間に分散される通信とは異なり、証明書要求は、認証される実際のNICを介して送信される。例えば、NIC151が認証される場合、802.1Xソフトウェアは、802.1Xセキュリティ証明書要求をFD133に送信し、それに続いて、FD133は、証明書要求を、ハンドル145を介してNIC151に送信する。NICによって受信されると、証明書要求は、NICからスイッチ104へ転送される。
[0032]図2は、802.1Xを用いて個々のNIC151、152、及び153を認証するように構成された単一論理NIC112を備える図1の計算デバイス102を示している。オペレーティングシステム111は、802.1Xソフトウェアプログラム222を備えており、当該802.1Xソフトウェアプログラム222は、ソフトウェアインタフェイス227を介してNDIS123に結合されている。802.1Xソフトウェアプログラム222は、また、一連のソフトウェアバインディング268、269、及び270を介して、それぞれ、FD133、FD134、及びFD135に結合されており、それらソフトウェアバインディング268、269、及び270は、ファンクションドライバが生成されたときに、ファンクションドライバによってNDIS123から自動的に要求される。バスドライバ115によって最初に要求され、個々のファンクションドライバごとにNDIS123によって提供され、その後に、ユーザレベルプロセスによって除去されるTCP/IPバインディングと異なり、802.1Xバインディング268、269、及び270は、永続的なものであり、即ち、これら802.1Xバインディング268、269、及び270は、システムアーキテクチャ全体の永久的な部分であり、かつ、計算デバイス102のその後の再起動時に再生成される。しかしながら、重要なことに、オペレーティングシステム111への802.1Xバインディングが、また、バスドライバ115によって要求され、且つ、NDIS123によってVFD130に提供されるが、このバインディングは、ユーザレベルプロセスによって除去される。なぜならば、オペレーティングシステム111に対して単一論理NIC112として表されたNICのチームは、チームレベルの802.1X認証を試みることはないからである。より正確には、802.1X認証は、構成要素であるNIC151、152、及び153のレベルにおいて実行される。このように、図1のバスドライバアーキテクチャは、802.1Xプロトコルの特別のバインディング要件を管理するようになっており、それによって、計算デバイス102が、この重要なセキュリティプロトコルをチーム内のNIC151、152、及び153ごとにサポートすることを可能にしてもよい。
(802.1Qのサポート)
[0033]本発明の一実施の形態においては、計算デバイス102は、チーム内のNIC151、152、及び153のそれぞれに共通の一つ以上のVLANの割り当てを有してもよい。かかるVLANの割り当てはそれぞれ、当該VLANに対して定義されたIPアドレスの範囲内において計算デバイス102のIPアドレスを表す。さらに、VLANごとに、そのVLANに関連するTCP/IP通信を行うために、単一論理NIC112とTCP/IPスタック121との間に独立したバインディングが存在する。VLANとしてIPアドレスの範囲を設定し、かつ、VLANにマシンを割り当てるための手順は、当業者には周知である。第1のVLANの割り当てをサポートするように計算デバイス102を再設定することは、バスドライバ115が、VLAN属性331を既存のVFD130に追加し、かつ、VFD130とTCP/IPスタック121との間のバインディング166を調節して、VLAN属性331とTCP/IPスタック121とを結合することを必要とする。更なるVLANの割り当てはそれぞれ、バスドライバ115が、別の仮想ファンクションドライバを単一論理NIC112に追加し、且つ、NDIS123からのソフトウェアバインディングを要求して、更なるVLANに関連するTCP/IP通信を行うために、更なる仮想ファンクションドライバをTCP/IPスタック121に結合することを必要とする。更なる仮想ファンクションドライバは、また、TCP/IPスタック121とNIC151、152、及び153のチームとの間の通信を可能にするために、VFD130がNRM113に結合されるのと同様の方法にて、NRM113に結合される。さらに、オペレーティングシステム111内の802.1Xソフトウェアプログラム222とさらなる仮想ファンクションドライバとの間のバインディングであって、バスドライバ115が更なる仮想ファンクションドライバを生成したときに最初に生成された当該バインディングは、VFD130の場合に802.1Xバインディングが除去されたように、ユーザレベルプロセスによって除去される。この構成においては、計算デバイス102は、単一論理NIC112内に含まれる仮想ファンクションドライバの何れかに対応するVLANの何れかに割り当てられた計算デバイスと通信してもよく、また、計算デバイス102は、これらのVLANに割り当てられていない計算デバイスと通信することを阻止され、これによって、802.1Qネットワーク規格をサポートする。
[0034]図3は、単一論理NIC112を含む計算デバイス102を示している。ここでは、NIC151、152、及び153は、二つの異なるVLANに割り当てられている。図示するように、単一論理NIC112は、VFD130、VFD332、FD133、FD134、及びFD135を有している。VFD130は、ソフトウェアバインディング166を介してTCP/IPスタック121に結合されたVLAN属性331を有している。VFD130は、バスドライバ115に結合されており、また、一対のソフトウェアハンドル164及び143のそれぞれを介してNRM API140に結合されている。VFD332は、ソフトウェアバインディング367を介してTCP/IPスタック121に結合されており、また、さらに、ソフトウェアハンドル363及び344のそれぞれを介してバスドライバ115及びNRM API140に結合されている。図3に示すように、計算デバイス102に対する第1のVLANの割り当ては、VLAN属性331をVFD130に追加し、且つ、バインディング166を調節して、VLAN属性331とTCP/IPスタック121とを結合することによって、提供される。計算デバイス102に対する第2のVLANの割り当ては、VFD332を生成し、且つ、VFD332を、上述したようなソフトウェアハンドル及びバインディングを介して、TCP/IPスタック121、NRM API140、及びバスドライバ115に結合することによって、提供される。重要なことには、VLAN属性331及びVFD332は、TCP/IPスタック121に結合されており、一方、FD133、FD134、及びFD135は、802.1Xソフトウェアプログラム222に結合されている。この構成は、VLANトラフィックを伝送する単一論理NIC112内のコンポーネントへのTCP/IP通信を制限し、また、個々のNIC151、152、及び153を介して802.1X証明書要求を伝送する単一論理NIC112内のコンポーネントへの802.1X通信を制限する。
[0035]上述の説明は、本発明の幾つかの実施の形態に関するものであり、本発明のその他の実施の形態、及び更なる実施の形態が、本発明の基本的な範囲から逸脱することなく考案されてもよい。例えば、様々な実施の形態において、NICのチームは、任意の数のNICを有していてもよい。計算デバイス102が一つのNICを含む実施の形態においては、そのNICのための一つのファンクションドライバが存在し、ソフトウェアバインディングが、NICとオペレーティングシステム111との間で従来のネットワーク通信をハンドリングするために、TCP/IPスタック212にファンクションドライバを結合することもあるであろう。さらに、適切であるならば、別のソフトウェアバインディングが、802.1Xを使用するNICを認証するために、ファンクションドライバを802.1Xソフトウェアプログラム222に結合することもあるであろう。第1のVLANの割り当てをサポートするために、第1の仮想ファンクションドライバを生成し、TCP/IPスタック121とファンクションドライバとの間のソフトウェアバインディングを転送し、第1の仮想ファンクションドライバとTCP/IPスタック121とを結合して、VLANトラフィックが、NICとTCP/IPスタック121との間で伝送されることを可能にすることもあるであろう。更なるVLANの割り当てごとに、別の仮想ファンクションドライバを、その更なる仮想ファンクションドライバをTCP/IPスタック121に結合するソフトウェアバインディングと共に生成し、更なるVLANに関連するネットワークトラフィックを、NICとTCP/IPスタック121との間で伝送することを可能にすることもあるであろう。上述の説明に加えて、図1〜図3に示されるソフトウェアコンポーネント及び階層は、例として示したものであり、機能的に等価なその他のソフトウェアコンポーネント及びその他の階層を、本発明の範囲を逸脱することなく実施してもよい。さらに、計算デバイス102は、デスクトップコンピュータ、サーバー、ラップトップコンピュータ、パームトップコンピュータ、携帯情報端末、タブレットコンピュータ、ゲーム機、携帯電話、又は情報を処理するそれらに類似する任意のその他の種類のデバイスであってもよい。
[0036]したがって、本発明の範囲は、特許請求の範囲に定義される。
本発明の一実施の形態に係る単一論理NICを備えて構成された計算デバイスを含むコンピュータネットワークを示す図である。 本発明の一実施の形態に係り、単一論理NICが802.1Xをサポートするように構成されている場合の図1の計算デバイスを示す図である。 本発明の一実施の形態に係り、NICが二つのVLANに属している場合の図1の計算デバイスを示す図である。
符号の説明
100…コンピュータネットワーク、105…ネットワークインタフェイス、107、108、109…ネットワークインタフェイス、125、126…ソフトウェアインタフェイス、143、145、146、147…ソフトウェアハンドル、148、149…ソフトウェアインタフェイス、154…ハードウェア/ソフトウェアインタフェイス、155、156、157…ハードウェアインタフェイス、160、161、162、164、165…ソフトウェアハンドル、166…ソフトウェアバインディング。

Claims (8)

  1. オペレーティングシステムと、一つ以上のネットワーク接続をサポートするためのチームとして構成された第1のネットワークインタフェイスカード(NIC)及び第2のNICと、を有する計算デバイスを、負荷分散及びフェイルオーバー技術を用いて設定するプログラムであって、
    該プログラムは、バスドライバ、第1のファンクションドライバ、第2のファンクションドライバ、仮想ファンクションドライバ、ユーザレベルプロセス、及び、ネットワーク資源マネージャを備えており、
    前記バスドライバが、前記計算デバイスに、前記第1のNICに対応する前記第1のファンクションドライバと、前記第2のNICに対応する前記第2のファンクションドライバと、を生成させ、
    前記第1のファンクションドライバが、前記計算デバイスに、該第1のファンクションドライバを第1のソフトウェアバインディングを介してオペレーティングシステム内のソフトウェアスタックに結合させ
    前記第のファンクションドライバが、前記計算デバイスに、該第2のファンクションドライバを第2のソフトウェアバインディングを介して前記ソフトウェアスタックに結合させ、
    前記バスドライバが、NICの前記チームに対応する前記仮想ファンクションドライバであって前記オペレーティングシステムと前記第1及び第2のNICとの間の通信を取り扱う該仮想ファンクションドライバを生成させ、
    前記仮想ファンクションドライバが、前記計算デバイスに、該仮想ファンクションドライバを第3のソフトウェアバインディングを介して前記ソフトウェアスタックに結合させ、
    前記第1のファンクションドライバ、前記第2のファンクションドライバ、及び前記仮想ファンクションドライバが、それぞれ、前記計算デバイスに、該第1のファンクションドライバ、該第2のファンクションドライバ、及び該仮想ファンクションドライバを、前記ネットワーク資源マネージャ内のプログラミングインタフェイスによって提供される異なるソフトウェアハンドルを介して前記ネットワーク資源マネージャに結合させ、該ネットワーク資源マネージャは、前記NICのチームのネットワーク接続を管理し、且つ、前記第1及び第2のNICに対して前記負荷分散及びフェイルオーバー機能を提供し、
    前記ユーザレベルプロセスが、前記計算デバイスに、前記オペレーティングシステムが前記仮想ファンクションドライバを介して前記ネットワーク資源マネージャと通信するよう、前記第1のファンクションドライバ及び前記第2のファンクションドライバが生成された後に前記第1のソフトウェアバインディング及び前記第2のソフトウェアバインディングを除去させる、
    プログラム。
  2. 前記オペレーティングシステム内の前記ソフトウェアスタックが、トランスポートコントロールプロトコル/インターネットプロトコル(TCP/IP)スタックである、請求項1に記載のプログラム。
  3. 前記第1のファンクションドライバが、前記計算デバイスに、前記第1のファンクションドライバと前記第1のNICとの間に通信チャンネルを確立するために、前記第1のファンクションドライバを、前記第1のNICを代理する前記ネットワーク資源マネージャ内の第1のソフトウェアオブジェクトに第1のソフトウェアハンドルを介して結合させ、
    前記第2のファンクションドライバが、前記計算デバイスに、前記第2のファンクションドライバと前記第2のNICとの間に通信チャンネルを確立ために、前記第2のファンクションドライバを、前記第2のNICを代理する前記ネットワーク資源マネージャ内の第2のソフトウェアオブジェクトに第2のソフトウェアハンドルを介して結合させ、
    前記仮想ファンクションドライバが、前記計算デバイスに、前記仮想ファンクションドライバを、NICの前記チームを代理する前記ネットワーク資源マネージャ内の第3のソフトウェアオブジェクトに第3のソフトウェアハンドルを介して結合させる、
    請求項1に記載のプログラム。
  4. 記憶機構が、前記計算デバイスに、前記仮想ファンクションドライバと前記ソフトウェアスタックの間の前記第3のソフトウェアバインディングと、前記第1のファンクションドライバ、前記第2のファンクションドライバ、及び前記仮想ファンクションドライバのそれぞれを前記ネットワーク資源マネージャに結合する前記ソフトウェアハンドルと、を記憶デバイスに永続的に記憶させる、請求項1に記載のプログラム。
  5. 前記記憶機構が、前記計算デバイスが再起動されるときに、該計算デバイスに、前記仮想ファンクションドライバと前記ソフトウェアスタックの間の前記第3のソフトウェアバインディングと、前記第1のファンクションドライバ、前記第2のファンクションドライバ、及び前記仮想ファンクションドライバのそれぞれを前記ネットワーク資源マネージャに結合する前記ソフトウェアハンドルと、を前記記憶デバイスから再生成させる、請求項4に記載のプログラム。
  6. 前記第1のファンクションドライバが、前記計算デバイスに、該第1のファンクションドライバを第4のソフトウェアバインディングを介して前記オペレーティングシステム内のネットワークセキュリティソフトウェアプログラムに結合させ、
    前記第2のファンクションドライバが、前記計算デバイスに、該第2のファンクションドライバを第5のバインディングを介して前記ネットワークセキュリティソフトウェアプログラムに結合させ、
    前記仮想ファンクションドライバが、前記計算デバイスに、該仮想ファンクションドライバを第6のバインディングを介して前記ネットワークセキュリティソフトウェアプログラムに結合させる、
    請求項1に記載のプログラム。
  7. 前記ユーザレベルプロセスが、前記計算デバイスに、前記仮想ファンクションドライバと前記ネットワークセキュリティソフトウェアプログラムの間の前記第6のバインディングを除去させる、請求項6に記載のプログラム。
  8. 前記ネットワークセキュリティソフトウェアプログラムが、802.1Xソフトウェアプログラムである、請求項7に記載のプログラム。
JP2006338932A 2005-12-15 2006-12-15 改善された負荷分散及びフェイルオーバー機能のための単一論理ネットワークインタフェイス Expired - Fee Related JP4515441B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/303,779 US8572288B2 (en) 2005-12-15 2005-12-15 Single logical network interface for advanced load balancing and fail-over functionality

Publications (3)

Publication Number Publication Date
JP2007193779A JP2007193779A (ja) 2007-08-02
JP2007193779A5 JP2007193779A5 (ja) 2009-04-23
JP4515441B2 true JP4515441B2 (ja) 2010-07-28

Family

ID=38264574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006338932A Expired - Fee Related JP4515441B2 (ja) 2005-12-15 2006-12-15 改善された負荷分散及びフェイルオーバー機能のための単一論理ネットワークインタフェイス

Country Status (4)

Country Link
US (1) US8572288B2 (ja)
JP (1) JP4515441B2 (ja)
CN (2) CN103152282A (ja)
TW (1) TWI360781B (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI288352B (en) * 2005-11-17 2007-10-11 Benq Corp Processing methods and systems for drivers
US7693044B2 (en) * 2005-12-15 2010-04-06 Nvidia Corporation Single logical network interface for advanced load balancing and fail-over functionality
US8572288B2 (en) 2005-12-15 2013-10-29 Nvidia Corporation Single logical network interface for advanced load balancing and fail-over functionality
DE102005061662A1 (de) * 2005-12-22 2007-06-28 Giesecke & Devrient Gmbh Verfahren zum Installieren einer Hilfseinheit
JP4965144B2 (ja) * 2006-03-20 2012-07-04 株式会社リコー 通信装置
JP4802159B2 (ja) * 2007-08-23 2011-10-26 株式会社エヌ・ティ・ティ・ドコモ ネットワーク装置
US8223649B2 (en) * 2008-03-25 2012-07-17 Intel Corporation Method and apparatus for sending a packet from a source node to a destination node in the same broadcast domain
US7921327B2 (en) * 2008-06-18 2011-04-05 Dell Products L.P. System and method for recovery from uncorrectable bus errors in a teamed NIC configuration
US9191281B2 (en) * 2008-11-05 2015-11-17 Telefonaktiebolaget L M Ericsson (Publ) Systems and methods for configuring a demarcation device
JP5272709B2 (ja) * 2008-12-19 2013-08-28 富士通株式会社 アドレス割当方法、コンピュータ、物理マシン、プログラム、及びシステム
US8265973B2 (en) 2010-03-11 2012-09-11 International Business Machines Corporation Analytic-based scaling of information technology resources
CN101909054B (zh) * 2010-07-15 2012-12-19 华中科技大学 虚拟化环境中多网络接口卡聚合的方法
US9838342B2 (en) * 2013-05-15 2017-12-05 Dell Products L.P. Network interface connection teaming system
US10511608B2 (en) * 2014-10-30 2019-12-17 Lenovo (Singapore) Pte. Ltd. Aggregate service with file sharing
CN105302611B (zh) * 2015-11-13 2019-10-25 中标软件有限公司 一种Linux下的启动计算机系统的方法及系统
US9921991B2 (en) 2015-11-24 2018-03-20 Nicira, Inc. Systems and methods for flipping NIC teaming configuration without interfering live traffic
JP2019009638A (ja) * 2017-06-26 2019-01-17 ルネサスエレクトロニクス株式会社 無線通信装置、システム及び方法
CN113157447B (zh) * 2021-04-13 2023-08-29 中南大学 一种基于智能网卡的rpc负载均衡方法
US20230350770A1 (en) * 2022-04-29 2023-11-02 Dell Products L.P. Recovery of smart network interface controller operating system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000244526A (ja) * 1999-02-23 2000-09-08 Hitachi Ltd 多重化したネットワーク接続装置システム
JP2005085284A (ja) * 2003-09-10 2005-03-31 Microsoft Corp フェイルオーバーイベントをサポートするネットワーク状態オブジェクトの多重オフロード
US6941377B1 (en) * 1999-12-31 2005-09-06 Intel Corporation Method and apparatus for secondary use of devices with encryption

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6253334B1 (en) * 1997-05-13 2001-06-26 Micron Electronics, Inc. Three bus server architecture with a legacy PCI bus and mirrored I/O PCI buses
US6105151A (en) * 1997-05-13 2000-08-15 3Com Corporation System for detecting network errors
US6687758B2 (en) * 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US6229538B1 (en) * 1998-09-11 2001-05-08 Compaq Computer Corporation Port-centric graphic representations of network controllers
US20010052084A1 (en) * 1998-11-10 2001-12-13 Jiandoug Huang Apparatus and methods for providing fault tolerance of networks and network interface cards
JP2000244527A (ja) 1999-02-23 2000-09-08 Adtec:Kk 伝送方法、伝送装置およびlanシステム
US6590861B1 (en) * 1999-03-18 2003-07-08 3Com Corporation Combining virtual local area networks and load balancing with fault tolerance in a high performance protocol
US6512774B1 (en) * 1999-03-18 2003-01-28 3Com Corporation Fail over with multiple network interface cards
US6567377B1 (en) * 1999-03-18 2003-05-20 3Com Corporation High performance load balancing of outbound internet protocol traffic over multiple network interface cards
US6560630B1 (en) * 1999-03-18 2003-05-06 3Com Corporation Receive load balancing and fail over with multiple network interface cards
US6683882B1 (en) * 1999-11-09 2004-01-27 3Com Corporation Method and system for directing transmission of IPX control packets to influence reception of IPX data packets
US7082530B1 (en) * 1999-12-31 2006-07-25 Intel Corporation Method and apparatus for accelerating hardware encryption with multiple networking interfaces
US7089335B2 (en) * 2000-10-30 2006-08-08 Microsoft Corporation Bridging multiple network segments and exposing the multiple network segments as a single network to a higher level networking software on a bridging computing device
US6941405B2 (en) * 2001-08-21 2005-09-06 02Micro International Limited System and method capable of offloading converter/controller-specific tasks to a system microprocessor
US7463585B2 (en) * 2002-05-16 2008-12-09 Broadcom Corporation System, method, and apparatus for load-balancing to a plurality of ports
US7111303B2 (en) * 2002-07-16 2006-09-19 International Business Machines Corporation Virtual machine operating system LAN
US7752635B2 (en) * 2003-12-18 2010-07-06 Intel Corporation System and method for configuring a virtual network interface card
US7580415B2 (en) * 2005-04-27 2009-08-25 Hewlett-Packard Development Company, L.P. Aggregation of hybrid network resources operable to support both offloaded and non-offloaded connections
US7872965B2 (en) * 2005-08-01 2011-01-18 Hewlett-Packard Development Company, L.P. Network resource teaming providing resource redundancy and transmit/receive load-balancing through a plurality of redundant port trunks
US7646708B2 (en) * 2005-08-01 2010-01-12 Hewlett-Packard Development Company, L.P. Network resource teaming combining receive load-balancing with redundant network connections
US20070110244A1 (en) * 2005-11-16 2007-05-17 Kapil Sood Method, apparatus and system for enabling a secure wireless platform
US8572288B2 (en) 2005-12-15 2013-10-29 Nvidia Corporation Single logical network interface for advanced load balancing and fail-over functionality

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000244526A (ja) * 1999-02-23 2000-09-08 Hitachi Ltd 多重化したネットワーク接続装置システム
US6941377B1 (en) * 1999-12-31 2005-09-06 Intel Corporation Method and apparatus for secondary use of devices with encryption
JP2005085284A (ja) * 2003-09-10 2005-03-31 Microsoft Corp フェイルオーバーイベントをサポートするネットワーク状態オブジェクトの多重オフロード

Also Published As

Publication number Publication date
US8572288B2 (en) 2013-10-29
TWI360781B (en) 2012-03-21
CN103152282A (zh) 2013-06-12
US20070168563A1 (en) 2007-07-19
CN101001177A (zh) 2007-07-18
JP2007193779A (ja) 2007-08-02
TW200745954A (en) 2007-12-16

Similar Documents

Publication Publication Date Title
JP4515441B2 (ja) 改善された負荷分散及びフェイルオーバー機能のための単一論理ネットワークインタフェイス
US7693044B2 (en) Single logical network interface for advanced load balancing and fail-over functionality
US10015046B2 (en) Methods and apparatus for a self-organized layer-2 enterprise network architecture
US9246849B2 (en) Technique for implementing virtual fabric membership assignments for devices in a storage area network
US9032054B2 (en) Method and apparatus for determining a network topology during network provisioning
US8886783B2 (en) System and method for providing secure subnet management agent (SMA) based fencing in an infiniband (IB) network
US8565118B2 (en) Methods and apparatus for distributed dynamic network provisioning
US7783788B1 (en) Virtual input/output server
US8331362B2 (en) Methods and apparatus for distributed dynamic network provisioning
US6330599B1 (en) Virtual interfaces with dynamic binding
US8713649B2 (en) System and method for providing restrictions on the location of peer subnet manager (SM) instances in an infiniband (IB) network
US20030177174A1 (en) Target resource allocation in an iSCSI network environment
US9432474B2 (en) Control method, control device, and processor in software defined network
WO2015180154A1 (zh) 网络控制方法和装置
Zhuang An Open Congestion Control Architecture for high performance fabrics
CN117201178A (zh) 一种网络访问控制方法、装置、设备及可读存储介质
Cisco Systems, Inc Cisco IOS 12.0 Bridging and IBM Network Solutions

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20090311

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090311

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091027

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20091228

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: 20100420

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100512

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: 20130521

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees