JP4722157B2 - ネットワークトラフィックのインテリジェントロードバランシング及びフェイルオーバー - Google Patents

ネットワークトラフィックのインテリジェントロードバランシング及びフェイルオーバー Download PDF

Info

Publication number
JP4722157B2
JP4722157B2 JP2008126221A JP2008126221A JP4722157B2 JP 4722157 B2 JP4722157 B2 JP 4722157B2 JP 2008126221 A JP2008126221 A JP 2008126221A JP 2008126221 A JP2008126221 A JP 2008126221A JP 4722157 B2 JP4722157 B2 JP 4722157B2
Authority
JP
Japan
Prior art keywords
address
nic
network
computing device
request 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.)
Expired - Fee Related
Application number
JP2008126221A
Other languages
English (en)
Other versions
JP2008289146A (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 JP2008289146A publication Critical patent/JP2008289146A/ja
Application granted granted Critical
Publication of JP4722157B2 publication Critical patent/JP4722157B2/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
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2542Translation of Internet protocol [IP] addresses involving dual-stack hosts

Description

発明の分野
[0001]本発明の実施形態は、一般的に、ネットワーク通信に係り、より詳細には、ハッシュエンジンを使用してネットワークトラフィックをインテリジェントロードバランシング及びフェイルオーバーするためのシステム及び方法に係る。
関連技術の説明
[0002]性能及び信頼性は、現代のコンピュータネットワークのための重要な必要条件である。複数のネットワークインターフェースカード(「NIC」)を含むコンピューティング装置において新しいネットワーク接続が開始されるとき、オペレーティングシステムは、典型的には、各NICの利用度又はエラー割合に関係なくその接続のためのNICを選択する。このような環境の1つの欠点は、新しい接続が、しばしば、オーバーロードされた又は信頼できないNICへと割り当てられてしまうことがあり、その新しい接続に対するネットワーク性能が減少させられていまい、又、可能性としてその選択されたNICに係る他の既存の接続に対するネットワーク性能が減少させられてしまうことがあり得るということである。
[0003]幾つかの従来技術による解決法は、「接続状態」を含む複雑なデータ構造を維持することにより、新しい接続がオーバーロードした及び/又は信頼できないNICへと割り当てることを避けようとしている。このようなデータ構造を分析することにより、どのNICがオーバーロードした及び/又は信頼できないかを、ネットワーク装置ドライバが決定することができるようにしている。しかしながら、このような接続状態の構造は、どのNICが各接続へ割り当てられているかを効率的に識別できるようにするものでなく、又は、オーバーロードした又は信頼できないNICから十分に機能し得るNICへと接続を効率的に再分散できるようにするものでもない。その上、このような接続状態を維持したり分析したりするには、計算費用が掛かってしまい、コンピューティング装置のための計算及びネットワーク性能が低下させられてしまうことがある。
[0004]前述したように、当業分野において必要とされているものは、コンピューティング装置においてNICに亘ってネットワーク接続を分散及び再分散するためのより効率的な技法である。
発明の概要
[0005]本発明の一実施形態によれば、ネットワークトラフィックを受信するためネットワークインターフェースカード(NIC)へネットワーク接続を知能的に転送するための方法が提供される。本方法は、オペレーティングシステムにより生成されたアドレス解決プロトコル(ARP)応答パケットをインターセプトするステップであって、前記ARP応答パケットが、前記ネットワーク接続に関連したネットワークトラフィックを受信するためにオペレーティングシステムによって選択された第1のNICに関連した第1のメディアアクセス制御(MAC)アドレスを有するものであるステップと、前記ARP応答パケットをデコードするステップと、前記デコードされたARP応答パケットに含まれた1つ以上のネットワークパラメータをハッシュ関数へ与えることにより、第2のNICに関連した第2のMACアドレスを生成するステップと、前記ARP応答パケットにおける前記第1のMACアドレスを前記第2のMACアドレスと置き換えるステップと、を含む。
[0006]前述した方法の1つの効果は、ハッシュエンジンを使用してコンピューティング装置における複数のNICに亘ってネットワーク接続を知能的に転送できることである。ロードバランシング、フェイルオーバー又はフェイルバック機能を行うのに、接続転送を使用することができる。このようにして、オーバーロードしたか又は信頼できないNICを通してネットワーク接続を実行することを容易に回避でき、従って、全ネットワーク性能を改善することができる。
[0007]本発明の前述した特徴を詳細に理解できるように、概要について簡単に前述した本発明について、幾つかを添付図面に例示した実施形態を参照して、以下により特定的に説明する。しかしながら、添付図面は、本発明の典型的な実施形態のみを例示するものであり、従って、本発明の範囲をそれに限定しようとするものではなく、本発明には、他の均等の効果を発揮する実施形態が含まれるものであることに注意されたい。
詳細な説明
[0014]コンピューティング装置における複数のNICの間でのネットワーク接続のインテリジェントロードバランシング及びフェイルオーバーは、コンピューティング装置におけるオペレーティングシステムからリモートコンピューティング装置へ送信されるパケットをインターセプトし、変更し、リダイレクトするネットワークドライバを使用することにより達成される。ある接続のための受信トラフィックは、アドレス解決プロトコル(「ARP」)応答パケットがオペレーティングシステムによってリモートコンピューティング装置へ送信されるときに、そのARP応答パケットをインターセプトすることにより、ロードバランス又はフェイルオーバーされる。インターセプトされたARP応答パケットは、リモートコンピューティング装置へ送られる前に、その接続のための受信トラフィックに対してネットワークドライバによって選択されたNICのMACアドレスを含むように変更される。このような変更により、リモートコンピューティング装置からの受信トラフィックは、オペレーティングシステムによって選択されたNICに達するのでなく、ネットワークドライバによって選択されたNICに達するようにさせられる。
[0015]同様に、ある接続のための送信トラフィックは、標準送信パケットがオペレーティングシステムによってリモートコンピューティング装置へと送信されるときに、その標準送信パケットをインターセプトすることによりロードバランス又はフェイルオーバーされる。インターセプトされた送信パケットは、リモートコンピューティング装置へ送られる前に、その接続のための送信トラフィックに対してネットワークドライバによって選択されたNICのMACアドレスを含むように変更される。このような変更により、送信トラフィックは、オペレーティングシステムによって選択されたNICを通してではなく、ネットワークドライバによって選択されたNICを通してリモートコンピューティング装置へ送られるようになる。
[0016]図1A、図1B及び図1Cは、本発明の1つ以上の態様を実施することのできるコンピューティング装置100を例示している。このコンピューティング装置100は、デスクトップコンピュータ、サーバー、ラップトップコンピュータ、手のひらサイズコンピュータ、携帯情報端末、タブレットコンピュータ、ゲームコンソール、セルラー電話又は情報を処理する任意の他のタイプの同様の装置であってよい。図示されるように、このコンピューティング装置100は、主メモリ102、メモリコントローラ104、マイクロプロセッサ106、入出力コントローラ108及びNIC110、116を含む。NIC110は、ハードウエアオフロードエンジン(「HOE」)112を含み、NIC116は、HOE118を含む。HOE112及び118は、NIC110、116へ選択的にオフロードされた1つ以上のリモートネットワークコンピューティング装置(図示していない)とコンピューティング装置100との間のネットワーク接続に関連したネットワークフレームを処理するように構成されたロジックを含む。従来行われていたようにホストソフトウエア送信制御プロトコル(「TCP/IP」)スタックにてそれらの処理機能(ある場合には、「ソフトウエアによる接続の取扱い」と称される)を実施するのではなく、HOE112及び118でネットワークフレームを処理すること(ある場合には、「ハードウエアによる接続の取扱い」と称される)により、NIC110、116とマイクロプロセッサ106との間の通信並びにマイクロプロセッサ106によって行われる計算量を実質的に減ずることができる。
[0017]メモリコントローラ104は、主メモリ102及びマイクロプロセッサ106に結合されており、入出力コントローラ108は、マイクロプロセッサ106及びNIC110、116に結合されている。本発明の一実施形態では、マイクロプロセッサ106は、入出力コントローラ108へ命令又はデータを書き込むことにより、命令又はデータをNIC110、116へ送信する。このような命令又はデータが入出力コントローラ108へ書き込まれるとき、その入出力コントローラ108は、任意的に、ターゲットNICが理解できるようなフォーマットへとそれら命令又はデータを変換し、それら命令又はデータをそのターゲットNICへと通信する。同様に、NIC110、116は、命令又はデータを入出力コントローラ108へ書き込むことにより、命令又はデータをマイクロプロセッサ106へ送信し、入出力コントローラ108は、任意的に、マイクロプロセッサ106が理解できるようなフォーマットへとそれら命令又はデータを変換し、それら命令又はデータをマイクロプロセッサ106へと通信する。前述したような結合は、PCI(商標)バスの如きメモリバス又は入出力バス又はそれらの組合せとして実施することができ、又は、別の仕方として、任意の他の技術的に可能な方法で実施することができる。
[0018]図1Bにより詳細に示されるように、主メモリ102は、オペレーティングシステム122及びソフトウエアドライバ124を含む。ソフトウエアドライバ124は、ロードバランシング及びフェイルオーバー(「LBFO」)モジュール126及びTCP/IPスタック130を含む。LBFOモジュール126は、各NICについてのネットワーク状態(例えば、各NICのリンク状態、各NICに関する送信エラー及び受信エラーの数及び/又は各NICがキープアライブパケットを送信及び受信しているか)を追跡し、ネットワーク接続がコンピューティング装置100内の1つのNICから別の1つのNICへ移される時に、TCP/IPスタック130と通信する。LBFOモジュール126は、ハッシュエンジン128を含み、このハッシュエンジン128は、各NICの前述したようなネットワーク統計量に基づいて、ネットワーク接続がそのコンピューティング装置100における異なる機能的NICに亘ってどのように分散されるべきかを知能的に決定するものである。
[0019]図1Cにより詳細に示されるように、ハッシュエンジン128は、送信ハッシュテーブル138及び受信ハッシュテーブル140を含む。送信ハッシュテーブル138の目的は、LBFOモジュール126によりこの送信ハッシュテーブル138へ与えられるデータに基づいて、ネットワーク接続に関連したパケットを送信するためのコンピューティング装置100内の機能的NICを選択することである。送信ハッシュテーブル138は、複数のハッシュテーブルエントリー(例えば、ハッシュテーブルエントリー134)及びソフトウエアハッシュ関数(図示していない)を含む。更に又、各ハッシュテーブルエントリーは、テーブルインデックス(例えば、テーブルインデックス132)及びテーブル値(例えば、テーブル値136)を含む。LBFOモジュール126は、TCP/IP接続データを送信ハッシュテーブル138におけるソフトウエアハッシュ関数へ通信するハッシュエンジン128へTCP/IP接続データを通信することにより、ハッシュエンジン128にコンピューティング装置内の送信NICを選択するように指示する。それに応答して、ソフトウエアハッシュ関数は、そのTCP/IP接続データに基づいて、送信ハッシュテーブル138内のテーブルインデックスを選択する。このような選択されたテーブルインデックスから、送信ハッシュテーブル138は、対応するテーブル値を識別し、ハッシュエンジン128は、その識別されたテーブル値をLBFOモジュール126へと通信し返す。もし、その対応するテーブル値が無効である場合には、ハッシュエンジン128は、LBFOモジュール126によって維持されているような、コンピューティング装置100における全てのNICについてのNIC利用度及びNICエラー割合データの重み付け組合せに基づいて、その接続のためのNICを選択し、そして、そのハッシュエンジン128は、現在のテーブルインデックスに対応するテーブル値にその選択されたNICのMACアドレスを記憶させる。ソフトウエアハッシュ関数の設計及び動作は当業者にはよく知られているので、これらのことについては、ここでは論じないこととする。一実施形態では、LBFOモジュール126は、次の4つのTCP/IPデータ、即ち、クライアントインターネットプロトコル(「IP」)アドレス、サーバーIPポート、クライアントIPポート及び仮想ローカルエリアネットワーク識別子(「VLAN ID」)をハッシュエンジン128へ通信する。他の実施形態では、LBFOモジュール126は、技術的に可能なTCP/IPパラメータをハッシュエンジン128へ通信することもできる。
[0020]受信ハッシュテーブル140の目的は、LBFOモジュール126によりその受信ハッシュテーブル140へ与えられるデータに基づいて、ネットワーク接続に関連したパケットを受信するためのコンピューティング装置100内の機能的NICを選択することである。送信ハッシュテーブル138と同様に、受信ハッシュテーブル140は、複数のハッシュテーブルエントリー及びソフトウエアハッシュ関数(図示していない)を含み、各ハッシュテーブルエントリーは、テーブルインデックス及びテーブル値を含む。ここでも又、LBFOモジュール126は、受信ハッシュテーブル140におけるソフトウエアハッシュ関数へTCP/IP接続データを通信するハッシュエンジン128へTCP/IP接続データを通信することにより、ハッシュエンジン128にコンピューティング装置100内の受信NICを選択するように指示する。これに応答して、ソフトウエアハッシュ関数は、そのTCP/IP接続データに基づいて、受信ハッシュテーブル140内のテーブルインデックスを選択する。このように選択されたテーブルインデックスから、受信ハッシュテーブル140は、対応するテーブル値を識別し、そして、ハッシュエンジン128は、その識別されたテーブル値をLBFOモジュール126へと通信し返す。ここでも又、もし、その対応するテーブル値が無効である場合には、ハッシュエンジン128は、LBFOモジュール126によって維持されるようなコンピューティング装置100における全てのNICについてのNIC利用度及びNICエラー割合データの重み付け組合せに基づいて、その接続のためのNICを選択し、そして、そのハッシュエンジン128は、現在のテーブルインデックスに対応するテーブル値にその選択されたNICのMACアドレスを記憶させる。一実施形態では、LBFOモジュール126がハッシュエンジン128へ通信するTCP/IPデータは、サーバーIPアドレスを含む。他の実施形態では、LBFOモジュール126は、任意の技術的に可能なTCP/IPデータをハッシュエンジン128へ通信することもできる。
[0021]重要なことは、ハッシュエンジン128の構造は、ロードバランシング、フェイルオーバー又はフェイルバック動作を行うときに、1つのNICから別の1つのNICへの接続の転送を効率的に支援するものであるということである。例えば、一実施形態では、もし、第1のNICがオーバーロードとされ、LBFOモジュール126がその第1のNICに係る幾つかの接続を第2のNICへと転送しようとする場合には、ハッシュエンジン128は、そのオーバーロードとされた第1のNICのMACアドレスをハッシュテーブル値が含むハッシュテーブルエントリーを無効とすることができる。以下の図2に関する説明においてより詳細に述べられているように、このようにハッシュテーブルエントリーを無効とすることにより、ハッシュエンジン128が、その無効とされたハッシュテーブルエントリーに対応する接続のための新しいNICとして第2のNICを選択し、そのハッシュテーブルエントリーにその第2のNICのMACアドレスを記憶させるようになる。ハッシュテーブル値をこのように変更された後は、その変更されたハッシュテーブル値に対応するハッシュテーブルインデックスの全ての接続は、その第2のNICを通して通信することになる。
[0022]更に又、ハッシュエンジン128の構造は、1つのNICから別の1つのNICへの接続のフェイルオーバーを効率的に支援するものである。例えば、一実施形態では、もし、第1のNICがフェイルした又は信頼できないものとなり、LBFOモジュール126がその第1のNICに係る接続を第2のNICへと転送しようとする場合には、ハッシュエンジン128は、そのフェイルした又は信頼できないものとなったNICのMACアドレスをハッシュテーブル値が含む全てのハッシュテーブルエントリーを無効とすることができる。ここでも又、以下に図2にて説明されるように、このようにハッシュテーブルエントリーを無効とすることにより、ハッシュエンジン128が、その無効とされたハッシュテーブルエントリーに対応する接続のための新しいNICとして第2のNICを選択し、ハッシュテーブル128がそれらのハッシュテーブルエントリーにその第2のNICのMACアドレスを記憶させるようになる。フェイルした又は信頼できないものとなったNICのMACアドレスを含んだ全てのハッシュテーブル値がその第2のNICのMACアドレスでオーバーライトされたとき、その第1のNICに係る全ての接続は、その第2のNICへフェイルオーバーされている。フェイルオーバー中のLBFOモジュール126の機能については、2007年5月18日に出願され、代理人管理番号NVDA/P001880を有する「Intelligent Failover In a Load-Balanced Networking Environment」と題する関連米国特許出願第11/750,903号明細書により詳細に記載されている。従って、この関連出願明細書の記載はここに援用される。
[0023]更に、ハッシュエンジン128の構造は、1つのNICから別の1つのNICへの接続のフェイルバックを効率的に支援するものである。例えば、もし、LBFOモジュール126が第1のNICから幾つかの接続を第2のNICへとフェイルオーバーし、その第1のNICがその後に十分に機能できるものとなった場合には、LBFOモジュール126は、そのフェイルオーバーした接続のうちの幾つか又は全てをその第1のNICへとフェイルバックすることができる。一実施形態では、LBFOモジュール126は、その第2のNICでなくその第1のNICのMACアドレスを記憶するため選択されフェイルオーバーされた接続に対応するハッシュテーブル値を更新することにより、その選択された接続をフェイルバックすることができる。その第2のNICのMACアドレスを含んだハッシュテーブル値がその第1のNICのMACアドレスでオーバーライトされたとき、そのオーバーライトされたハッシュテーブル値に対応する接続は、その第1のNICへとフェイルバックされている。このフェイルバック中のLBFOモジュール126の機能については、2007年5月18日に出願され、代理人管理番号NVDA/P001882を有する「Intelligent Failback In a Load-Balanced Networking Environment」と題する関連米国特許出願第11/750,914号明細書により詳細に記載されている。従って、この関連出願明細書の記載はここに援用される。
[0024]ロードバランシング及びフェイルオーバー/フェイルバックの前述の説明に基づいて、本発明は、各々が異なる動作環境の必要に対して効率的に対処する4つのモードにて動作するように構成することができる。第1の動作モードでは、ハッシュエンジン128は、スイッチ独立型ネットワーク環境(即ち、コンピューティング装置100のNICを外部ネットワークに結合するスイッチが802.3adモードにて動作しないようなネットワーク環境)においてロードバランシング及びフェイルオーバー/フェイルバックを行うため接続を転送するのに使用される。この実施形態では、以下に説明する図3及び図4の方法は、ハッシュエンジン128を使用して、それぞれトラフィックを受信及び送信する接続を転送するためのNICを識別する。ここでも又、このような識別は、ロードバランシングの一部として、又は、信頼できるNICへの接続のフェイルオーバーの一部として行うことができる。重要なことは、ある接続についての受信トラフィック及び送信トラフィックは、以下により詳細に説明されるように、その接続がオフロードされて、単一のNICがそのオフロードされた接続について受信トラフィック及び送信トラフィックを取り扱うようにならない限り、異なるNICを使用することができるということである。
[0025]第2の動作モードでは、ハッシュエンジン128は、スイッチ独立型ネットワーク環境において、送信トラフィックに係るロードバランシングを行うため接続を転送するのに使用されるが、受信トラフィックに係るロードバランシングを行うのには使用されない。重要なことは、ハッシュエンジン128は、フェイルオーバー又はフェイルバックを行うため接続を転送するのには使用されないということである。従って、ハッシュエンジン128は、ある接続に係る送信トラフィックのためのNICを選択し、その後に、送信トラフィックをロードバランシングするようにその選択を変更することができるが、その接続についての受信トラフィックは、オペレーティングシステムにより選択されたNICを通して取り扱われる。ここでも又、ある接続についての受信トラフィック及び送信トラフィックは、以下により詳細に説明されるように、その接続がオフロードされて、オペレーティングシステムにより選択されたNICがそのオフロードされた接続について受信トラフィック及び送信トラフィックを取り扱うようにならない限り、異なるNICを使用することができる。
[0026]第3の動作モードでは、ハッシュエンジン128は、スイッチ独立型ネットワーク環境において、フェイルオーバー及びフェイルバックを行うため接続を転送するのに使用されるが、ロードバランシングを行うのには使用されない。ハッシュエンジン128は、この実施形態ではロードバランシングを行うのに接続を転送しないので、その接続についてのトラフィックを送信及び受信するためオペレーティングシステム122により選択されたNICが維持される。更に又、LBFOモジュール126は、NICがフェイルした又は信頼できないものとなるときに、ネットワークトラフィックをフェイルオーバーするようにハッシュエンジン128に指示し、又、NICが十分に機能できる状態に戻るときに、トラフィックをフェイルバックするようにハッシュエンジン128に指示する。
[0027]第4の動作モードでは、ハッシュエンジン128は、スイッチ依存型ネットワーク環境(即ち、コンピューティング装置100のNICを外部ネットワークに結合するスイッチが802.3adモードにおいて動作するようなネットワーク環境)において、送信トラフィックのロードバランシング及びフェイルオーバー/フェイルバックを行うため接続を転送するのに使用されるが、受信トラフィックのロードバランシング及びフェイルオーバー/フェイルバックを行うため接続を転送するのには使用されない。重要なことは、スイッチ依存型ネットワーク環境では、コンピューティング装置100におけるどのNICがある接続についてのトラフィックを受信するのかを、そのスイッチが選択する。従って、ハッシュエンジン128は、受信トラフィックのロードバランシング又はフェイルオーバー/フェイルバックを行わないが、ハッシュエンジン128は、送信トラフィックをロードバランシングすることができ、LBFOモジュール126は、送信トラフィックをフェイルオーバー/フェイルバックするようにハッシュエンジン128に指示することができる。しかしながら、ここでも又、もし、ネットワーク接続がその接続についてのトラフィックを受信するためそのスイッチによって選択されたNICにオフロードされる場合には、ハッシュエンジン128は、以下により詳細に説明するように、その接続についてのトラフィックを送信するためその同じNICを選択する。
[0028]図2は、本発明の一実施形態によるハッシュ関数に与えられるパラメータに基づいて、ハッシュテーブルからMACアドレスを選択するための方法ステップ200のフローチャートを例示している。この方法は、コンピューティング装置100に関して説明されているのであるが、当業者には、任意の順序でこれら方法ステップを行うように構成されたいずれのシステムも、本発明の範囲内に入るものであることは理解されよう。
[0029]図示されるように、ハッシュエンジン128においてハッシュテーブルからMACアドレスを選択するための方法は、ステップ202で開始され、このステップ202にて、ハッシュテーブル内のハッシュ関数は、そのハッシュ関数によって受け取られたパラメータからハッシュテーブルインデックスを決定する。ハッシュ関数を生成し使用して、そのハッシュ関数に与えられるパラメータに基づいてハッシュテーブルを索引する方法は、当業者にはよく知られているので、これらの方法については、ここでは説明しないこととする。送信ハッシュテーブル138を索引する機能における送信ハッシュ関数によって受け取られるパラメータは、受信ハッシュテーブル140を索引する機能における受信ハッシュ関数によって受け取られるパラメータとは異なるものであることに注意されたい。本発明の一実施形態では、受信ハッシュ関数は、受信ハッシュテーブル140を索引するためのパラメータとして、リモートコンピューティング装置のIPアドレスを受け取る。更に又、送信ハッシュ関数は、送信ハッシュテーブル138を索引するためのパラメータとして、リモートコンピューティング装置のIPアドレス、リモートコンピューティング装置に対するTCPポート、コンピューティング装置100に対するTCPポート、及びそのネットワーク環境において、VLAN ID技法が使用されている場合には、VLAN ID、を受け取る。本発明の他の実施形態では、受信ハッシュ関数及び送信ハッシュ関数は、それぞれ受信ハッシュテーブル140及び送信ハッシュテーブル138を索引するための任意の技術的に可能なパラメータを受け取ることができる。
[0030]ステップ204にて、ハッシュエンジン128は、ステップ202にて識別されたハッシュテーブルインデックスに対応するハッシュテーブルエントリーを読み取る。ステップ206にて、ハッシュエンジン128は、ステップ204にて読み取ったハッシュテーブルエントリーが有効であるかを決定する。もし、ステップ206において、そのハッシュテーブルエントリーが有効であるとされる場合には、この方法は、ステップ208へと続けられ、このステップ208にて、ハッシュエンジン128は、その索引されたハッシュテーブルエントリーに記憶されたMACアドレスを選択する。ステップ216において、ハッシュエンジン128は、その選択されたMACアドレスをLBFOモジュール126へ戻し、この方法は終了する。
[0031]もし、ステップ206において、ステップ204にて読み取られたハッシュテーブルエントリーが有効でないとされる場合には、この方法は、ステップ210へと続き、このステップ210において、ハッシュエンジン128は、ネットワークトラフィックを通信するのに適したNICを識別する。一実施形態では、あるNICについて、そのNICの送信容量又は受信容量に対する割合としてのそのNICの利用度がコンピューティング装置100における他のNICの利用度より低いときに、そのNICは、ネットワークトラフィックを通信するのに適していると見なされる。別の実施形態では、あるNICについて、そのNICについてのエラー割合がコンピューティング装置100における他のNICのエラー割合より低いときに、そのNICは、ネットワークトラフィックを通信するのに適していると見なされる。更に別の実施形態では、あるNICについての利用度及びエラー割合の重み付け組合せと、コンピューティング装置における他のNICの利用度及びエラー割合の重み付け組合せとを相対的に比べることにより、そのNICがネットワークトラフィックを通信するのに適しているかを決定することができる。ステップ212にて、ハッシュエンジン128は、ステップ210において識別された適当なNICのMACアドレスを選択する。ステップ214にて、ハッシュエンジン128は、ステップ202において識別されたハッシュテーブルインデックスに対応するハッシュテーブルエントリーにその選択されたMACアドレスを記憶させる。
[0032]図3A及び図3Bは、本発明の一実施形態によるネットワークトラフィックを受信するためハッシュエンジン128により選択されたNICへ接続を転送するための方法ステップ300のフローチャートを例示している。この方法はコンピューティング装置100に関して説明されているのであるが、当業者には、任意の順序でこれら方法ステップを行うように構成されたいずれのシステムも本発明の範囲内に入るものであることは理解されよう。
[0033]図示されるように、接続を転送するためのこの方法は、ステップ302にて開始され、このステップ302において、オペレーティングシステム122は、リモートコンピューティング装置(図示していない)からのARP要求パケットを聴取する。リモートコンピューティング装置がデータをコンピューティング装置100へ送信するための接続を始動するとき、そのリモートコンピューティング装置は、ローカルネットワークに結合されたコンピューティング装置へコンピューティング装置100のIPアドレスを含むARP要求パケットを送ることにより、コンピューティング装置100のMACアドレスを要求する。コンピューティング装置100は、そのARP要求パケットに応答して、そのコンピューティング装置100のMACアドレスを含むARP応答パケットを送る。そのARP応答パケットを受け取りデコードするとき、そのリモートコンピューティング装置は、そのARP応答パケットからデコードされたMACアドレスを使用して、そのローカルコンピューティング装置100へパケットを送信することができる。ARP要求パケットとARP応答パケットとを交換するための方法は当業者にはよく知られているので、それらの方法についてはここでは説明しないこととする。ステップ304において、オペレーティングシステム122は、ARP要求パケットがステップ302において受信されたかを決定する。もし、ARP要求パケットが受信されていないと、オペレーティングシステムが見出す場合には、この方法は、ステップ302に戻り、そこで、オペレーティングシステム122は、ARP要求パケットを聴取することを続ける。
[0034]しかしながら、もし、ステップ304において、ARP要求パケットが受信されたことを、オペレーティングシステム122が見出す場合には、この方法は、ステップ306から310へと続けられ、そこで、オペレーティングシステム122は、ARP要求パケットの受信に応答して、ARP応答パケットを生成する。ステップ306にて、オペレーティングシステム122は、その接続に対するトラフィックがそこを通して受信されるべきNICを識別する。説明のためだけであるが、オペレーティングシステムは、トラフィックを受信するのに使用されるNICとしてNIC110を選択すると仮定する。ステップ308にて、オペレーティングシステム122は、そのNIC110のMACアドレスを含むARP応答パケットを生成する。ステップ310にて、オペレーティングシステム122は、そのARP応答パケットをNIC110へ送る。
[0035]ステップ312にて、LBFOモジュール126は、オペレーティングシステム122からNIC110へ送られるARP応答パケットをインターセプトする。ここでも又、LBFOモジュール126は、コンピューティング装置100におけるオペレーティングシステム122により選択されたNICへオペレーティングシステム122から送られるARP応答パケットをインターセプトし、それらARP応答パケットのMACアドレスを変更するように構成されている。以下に説明するように、ハッシュエンジン128により選択されたNICのMACアドレスを反映するようにARP応答パケットを変更することにより、リモートコンピューティング装置からのパケットをどのNICが受信するのかについて、LBFOモジュール126が、オペレーティングシステム122に代わって、制御するようになる。従って、ARP応答パケットに組み入れられたハッシュエンジン128によるインテリジェントNIC選択により、その対応する接続は、LBFOモジュール126によって選択されたNICにて受信されるようになり、別の不利なNICにて受信されないようになる。
[0036]ステップ314にて、LBFOモジュール126は、インターセプトされたARP応答パケットを、そのARP応答パケットが宛てられたリモートコンピューティング装置のIPアドレスを含むコンポーネントへとデコードする。ステップ315にて、LBFOモジュール126は、そのARP応答パケットに関する接続が存在し、既に受信NICにあるハードウエアオフロードエンジンへとオフロードされているかを決定する。もし、そのような接続が存在していないか又はそのような接続が存在していても受信NICにあるハードウエアオフロードエンジンへとオフロードされていないことを、LBFOモジュール126が見出す場合には、この方法は、ステップ316へと続き、そこで、ハッシュエンジン128がMACアドレスを選択する。このような選択は、図2において前述したように、LBFOモジュール126がリモートコンピューティング装置のIPアドレスをハッシュエンジン128へパラメータとして通すことに基づいてなされる。
[0037]ステップ318にて、LBFOモジュール126は、デコードされたARP応答パケットにおけるオペレーティングシステム122により選択されたMACアドレスを、その選択されたMACアドレスと置き換える。ステップ320にて、LBFOモジュール126は、その選択されたMACアドレス及びデコードされたARP応答パケットの残りのコンポーネントをエンコードして、ARP応答パケットを形成する。ステップ322にて、LBFOモジュールは、そのARP応答パケットをリモートコンピューティング装置へ送信し、この方法は、終了する。一実施形態では、そのARP応答パケットは、その選択されたMACアドレスに対応するNICを通して送信される。
[0038]ステップ315に戻って、もし、インターセプトされたARP応答パケットに関する接続が存在していて既に受信NICにあるハードウエアオフロードエンジンへオフロードされていることを、LBFOモジュール126が見出す場合には、この方法は、ステップ317へと続く。ステップ317にて、ハッシュエンジン128は、ステップ318からステップ322にて前述したように、ARP応答パケットを変更し、エンコードし、送信するところへ進む前に、受信NICのMACアドレスを選択する。
[0039]図4A及び図4Bは、本発明の一実施形態によるネットワークトラフィックを送信するためハッシュエンジン128により選択されたNICへ接続を転送するための方法ステップ400のフローチャートを例示している。この方法はコンピューティング装置100に関して説明されているが、当業者には、任意の順序にてこれら方法ステップを行うように構成されたいずれのシステムも本発明の範囲内に入るものであることは理解されよう。
[0040]図示されるように、接続を転送するためのこの方法は、ステップ402で始まり、このステップ402では、オペレーティングシステム122は、このオペレーティングシステム122により選択されたNICのMACアドレスを含む送信パケットを生成する。例えば、オペレーティングシステム122は、コンピューティング装置100とリモートコンピューティング装置(図示していない)との間の発信通信の一部として送信パケットを生成するように、アプリケーションプログラムにより要求される。説明のためだけであるが、オペレーティングシステム122は、リモートコンピューティング装置へ送信パケットを送るためNIC110を選択すると仮定する。
[0041]ステップ404にて、オペレーティングシステム122は、ステップ402にて生成された送信パケットをNIC110へ送る。ステップ406にて、LBFOモジュール126は、オペレーティングシステム122からNIC110へ送られる送信パケットをインターセプトする。前述したように、LBFOモジュール126は、コンピューティング装置100においてオペレーティングシステム122により選択されたNICへオペレーティングシステム122から送られる送信パケットをインターセプトし、そのインターセプトされた送信パケットのMACアドレスを変更するように構成されている。ここでも又、ハッシュエンジン128によって選択されたNICのMACアドレスを反映するように送信パケットを変更することにより、どのNICがリモートコンピューティング装置からの送信パケットを送るかの制御を、LBFOモジュール126が、オペレーティングシステム122に代わって、行うことができるようになる。従って、ハッシュエンジン128によりインテリジェントNIC選択により、パケットがLBFOモジュール126により選択されたNICにて送信されるようになり、別のより不利なNICにて送信されるようなことがなくなる。
[0042]ステップ408にて、LBFOモジュール126は、ステップ406からの送信パケットをデコードして、その送信パケットの1つ以上のTCP/IPパラメータを識別する。ステップ410にて、LBFOモジュール126は、その送信パケットに対応する接続が受信NICにあるハードウエアオフロードエンジンへオフロードされているかを決定する。ここでも又、もし、ある接続が受信NICにあるそのハードウエアオフロードエンジンへ既にオフロードされている場合には、その接続に対するパケットは、異なるNICのソフトウエアからでなく、その受信NICにあるそのハードウエアオフロードエンジンから効果的に送信される。従って、もし、その送信パケットに対応する接続が受信NICにあるハードウエアオフロードエンジンへ既にオフロードされている場合には、ステップ412において、ハッシュエンジン128は、その受信NICのMACアドレスを送信MACアドレスとして選択する。
[0043]ステップ416にて、LBFOモジュール126は、そのデコードされたソースMACアドレスを送信MACアドレスと置き換えて、デコードされ変更されたパケットを形成する。ステップ418にて、LBFOモジュール126は、そのデコードされ変更されたパケットを送信パケットへとエンコードする。ステップ420にて、LBFOモジュール126は、その送信MACアドレスに対応するNICを通してコンピューティング装置へその送信パケットを通信する。
[0044]ステップ410へ戻って、もし、送信パケットに対応する接続が受信NICにあるハードウエアオフロードエンジンへオフロードされていない場合には、この方法は、ステップ414へと続く。ステップ414にて、ハッシュエンジン128は、ステップ408において送信パケットからデコードされたTCP/IPパラメータを使用して、図2において前述したように、送信ハッシュテーブル138から送信MACアドレスを選択する。それから、この方法は、前述したように、ステップ416から420へと進む。
[0045]図5は、本発明の一実施形態によるハッシュエンジン128により選択されたNICへ既存の接続をオフロードするための方法ステップ500のフローチャートを例示している。この方法はコンピューティング装置100に関して説明されるが、当業者には、任意の順序にてこれら方法ステップを行うように構成されたいずれのシステムも本発明の範囲内に入るものであることは理解されよう。
[0046]図示されるように、既存の接続をオフロードするためのこの方法は、ステップ502で開始され、このステップ502において、ソフトウエアドライバ124は、その既存の接続をオフロードするための動作を開始させる。ソフトウエアドライバ124は、オペレーティングシステム122の要求により、又は、このソフトウエアドライバ124により行われる特定の処理動作に基づいて、オフロード動作を開始することができる。例えば、ソフトウエアドライバ124は、その既存の接続がハードウエアオフロードエンジンによりより良好に処理される高トラフィック接続であることを決定することができる。
[0047]ステップ504にて、LBFOモジュール126は、その接続に関連したネットワークトラフィックを受信するため新しいNICを選択するためハッシュエンジン128に問い合わせる。ステップ506にて、ハッシュエンジン128は、受信ハッシュテーブル140を使用して、コンピューティング装置100内のどのNIC及びハードウエアオフロードエンジンがその接続に関連したネットワークトラフィックを受信するのに選択されるべきかを決定する。その選択されたNIC及びハードウエアオフロードエンジンは、最小平均ロードを担持し、最小数のオフロード接続を有することができ、又は、最も信頼できる物理リンクへ接続される。ステップ508にて、LBFOモジュール126は、その選択されたNIC及びハードウエアオフロードエンジンへその受信NICをオフロードする。
[0048]図6は、本発明の一実施形態によるダミーインターネットプロトコルアドレスを使用して、アドレス解決プロトコル(ARP)要求を行うための方法ステップ600のフローチャートを例示している。この方法はコンピューティング装置100に関して説明されるのであるが、当業者には、任意の順序にてこれら方法ステップを行うように構成されたいずれのシステムも本発明の範囲内に入るものであることは理解されよう。
[0049]図示されるように、アドレス解決プロトコル要求を行うためのこの方法は、ステップ602で始まり、このステップ602において、オペレーティングシステム122は、確立すべき接続に関連したネットワークトラフィックを受信するためオペレーティングシステム122により選択されたNICのMACアドレス及びコンピューティング装置100のIPアドレスを含むARP要求パケットを生成する。そのIPアドレスは、手動的に又は工業標準ダイナミックホストコンフィギュレーションプロトコル(DHCP)の如き自動技法により、コンピューティング装置100へと割り当てられる。そのMACアドレスは、オペレーティングシステム122により認識されるデフォルト又は一次NICに対応することができる。ステップ604にて、オペレーティングシステム122は、その選択されたNICへそのARP要求パケットを送る。
[0050]ステップ606において、LBFOモジュール126は、そのARP要求パケットが送信のためその選択されたNICへ与えられる前に、そのARP要求パケットをインターセプトする。ステップ608にて、LBFOモジュール126は、コンピューティング装置100のIPアドレスをこのLBFOモジュール126により選択されたダミーIPアドレスと置き換えて、変更されたARP要求パケットを生成する。このダミーIPアドレスは、そのネットワーク内の非マップアドレスであるべきである。例えば、10.1.1.0から10.1.1.255までの範囲に亘るIPアドレスを有するネットワークにおいては、10.1.1.254の如き1つのIPアドレスが、ダミーIPアドレスとして、ネットワーク管理者によって予約される。この実施例では、そのARP要求パケットを受信する装置は、そのダミーIPアドレスに対するローカルARPキャッシュエントリーを新しいMACアドレスで更新し、それにより、コンピューティング装置100のIPアドレスに対するキャッシュエントリーが破損されてしまうのを回避することができる。そのダミーIPアドレスは、LBFOモジュール126による使用のため、マニュアルコンフィギュレーションを含む任意の技術的に可能な手段により確立することができる。ステップ610にて、LBFOモジュール126は、コンピューティング装置100と同じネットワークに接続された1つ以上のリモートコンピューティング装置へ、その選択されたNICを通してその変更されたARP要求パケットを送信(ブロードキャスト)する。
[0051]図6の方法は、LBFOモジュール126が、オペレーティングシステム122を必要とせずに、複数のNICに亘るARP要求処理を管理することができるようにする。その上、この方法は、変更されたARP要求パケットを受信するリモートコンピューティング装置により維持されたARPキャッシュが破損されるのを避けるために使用することができる。
[0052]ここに説明した本発明のシステム及び方法の1つの効果は、これらのシステム及び方法によれば、ハッシュエンジンを使用して複数のコンピューティング装置に亘ってネットワーク接続を知能的に転送することができるということである。このような接続転送は、ロードバランシング、フェイルオーバー又はフェイルバック機能を行うのに使用することができる。この形式においては、オーバーロードされた又は信頼できないNICを通してネットワーク接続を実行してしまうようなことを容易に避けることができ、従って、全ネットワーク性能を改善することができる。もう1つ別の効果は、各NICへの接続の割当てを管理するのにハッシュエンジンを使用することにより、接続状態を管理するための複雑且つ計算費用の掛かる処理を避けつつ、どのNICが各接続を取り扱うかの決定を効率よく行うことができるようになるということである。
[0053]本発明の幾つかの実施形態について前述したのであるが、本発明の基本的範囲から逸脱せずに、本発明の他の更に別の実施形態を考えることができるものである。例えば、本発明の態様は、ハードウエア又はソフトウエア、又はハードウエアとソフトウエアとの組合せにて実施することができるものである。本発明の一実施形態は、コンピュータシステムに使用するためのプログラム製品として実施することができる。そのようなプログラム製品のプログラムは、それら実施形態(ここに説明した方法を含む)の機能を定義しており、種々なコンピュータ読み取り可能な記憶媒体に含ませることができるものである。コンピュータ読み取り可能な記憶媒体の例としては、これらに限定されるものではないが、(i)情報が永久的に記憶される非書き込み可能記憶媒体(例えば、CD-ROMドライブにより読み取られるCD-ROMディスクの如きコンピュータ内のリードオンリーメモリ装置、フラッシュメモリ、ROMチップ又は任意のタイプの固体不揮発性半導体メモリ)、及び(ii)変更可能情報が記憶される書き込み可能記憶媒体(例えば、ディスケットドライブ又はハードディスクドライブ内のフロッピーディスク、又は任意のタイプの固体ランダムアクセス半導体メモリ)がある。このようなコンピュータ読み取り可能な記憶媒体は、本発明の機能を指示するコンピュータ読み取り可能な命令を担持するとき、本発明の実施形態である。従って、本発明の範囲は、特許請求の範囲の記載により決定されるものである。
本発明の1つ以上の態様を実施することのできるコンピューティング装置を例示している。 本発明の1つ以上の態様を実施することのできるコンピューティング装置を例示している。 本発明の1つ以上の態様を実施することのできるコンピューティング装置を例示している。 本発明の一実施形態によるハッシュ関数に与えられるパラメータに基づいてハッシュテーブルからMACアドレスを選択するための方法ステップのフローチャートを例示している。 本発明の一実施形態によるネットワークトラフィックを受信するためハッシュエンジンによって選択されたNICへ接続を転送するための方法ステップのフローチャートを例示している。 本発明の一実施形態によるネットワークトラフィックを受信するためハッシュエンジンによって選択されたNICへ接続を転送するための方法ステップのフローチャートを例示している。 本発明の一実施形態によるネットワークトラフィックを送信するためハッシュエンジンによって選択されたNICへ接続を転送するための方法ステップのフローチャートを例示している。 本発明の一実施形態によるネットワークトラフィックを送信するためハッシュエンジンによって選択されたNICへ接続を転送するための方法ステップのフローチャートを例示している。 本発明の一実施形態によるハッシュエンジンによって選択されたNICへ既存の接続をオフロードするための方法ステップのフローチャートを例示している。 本発明の一実施形態によるダミーインターネットプロトコルアドレスを使用してアドレス解決プロトコル要求を行うための方法ステップのフローチャートを例示している。
符号の説明
100…コンピューティング装置、102…主メモリ、104…メモリコントローラ、106…マイクロプロセッサ、108…入出力コントローラ、110…ネットワークインターフェースカード(NIC)、112…ハードウエアオフロードエンジン(HOE)、116…NIC、118…HOE、122…オペレーティングシステム、124…ソフトウエアドライバ、126…ロードバランシング及びフェイルオーバー(LBFO)モジュール、128…ハッシュエンジン、130…TCP/IPスタック、132…テーブルインデックス、134…ハッシュテーブルエントリー、136…テーブル値、138…送信ハッシュテーブル、140…受信ハッシュテーブル。

Claims (12)

  1. アドレス解決プロトコル(ARP)キャッシュ破損を回避するネットワーク接続を確立するための方法において、
    第1ネットワークインターフェースカード(NIC)へ送信されるARP要求パケットであって、第1のメディアアクセス制御(MAC)アドレス及び第1のインターネットプロトコル(IP)アドレスを含むARP要求パケットをインターセプトするステップと、
    記第1のIPアドレスを前記第1のIPアドレスと異なるダミーIPアドレス置き換えて、変更されたARP要求パケットを生成するステップと、
    前記変更されたARP要求パケットを1つ以上のリモートコンピューティング装置へブロードキャストするステップと、
    を備える方法。
  2. 前記ARP要求パケットを生成し、前記ARP要求パケットを前記第1のNICへ送信するステップを更に備える、請求項1に記載の方法。
  3. ホストオペレーティングシステムが、前記ARP要求パケットを生成し、前記ARP要求パケットを送信する、請求項2に記載の方法。
  4. ネットワークドライバ内のロードバランシングフェイルオーバーモジュールが、前記ARP要求パケットをインターセプトし、前記第1のIPアドレスを前記ダミーIPアドレスと置き換える、請求項1に記載の方法。
  5. 前記第1のIPアドレスは、ホストコンピューティング装置のIPアドレスを含む、請求項1に記載の方法。
  6. 前記ダミーIPアドレスは、前記ホストコンピューティング装置を含むネットワークにおける非マップIPアドレスを含む、請求項5に記載の方法。
  7. 前記第1のMACアドレスは、前記ネットワーク接続に関連したネットワークトラフィックを受信するためホストオペレーティングシステムにより選択されたNICのMACアドレスを含む、請求項1に記載の方法。
  8. プロセッサによって実行されるとき、前記プロセッサが、
    第1ネットワークインターフェースカード(NIC)へ送信されるARP要求パケットであって、第1のメディアアクセス制御(MAC)アドレス及び第1のインターネットプロトコル(IP)アドレスを含むARP要求パケットをインターセプトするステップと、
    記第1のIPアドレスを前記第1のIPアドレスと異なるダミーIPアドレスに置き換えて、変更されたARP要求パケットを生成するステップと、
    前記変更されたARP要求パケットを1つ以上のリモートコンピューティング装置へブロードキャストするステップと、
    を行うことにより、アドレス解決プロトコル(ARP)キャッシュ破損を回避するネットワーク接続を確立するようにさせる命令を含むコンピュータ読み取り可能な媒体。
  9. 前記コンピュータ読み取り可能な媒体は、ネットワークドライバ内のロードバランシングフェイルオーバーモジュールを含む、請求項8に記載のコンピュータ読み取り可能な媒体。
  10. 前記第1のIPアドレスは、ホストコンピューティング装置のIPアドレスを含む、請求項8に記載のコンピュータ読み取り可能な媒体。
  11. 前記ダミーIPアドレスは、前記ホストコンピューティング装置を含むネットワークにおける非マップIPアドレスを含む、請求項10に記載のコンピュータ読み取り可能な媒体。
  12. 前記第1のMACアドレスは、前記ネットワーク接続に関連したネットワークトラフィックを受信するためホストオペレーティングシステムにより選択されたNICのMACアドレスを含む、請求項8に記載のコンピュータ読み取り可能な媒体。
JP2008126221A 2007-05-18 2008-05-13 ネットワークトラフィックのインテリジェントロードバランシング及びフェイルオーバー Expired - Fee Related JP4722157B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/750,987 US8300647B2 (en) 2007-05-18 2007-05-18 Intelligent load balancing and failover of network traffic
US11/750,987 2007-05-18

Publications (2)

Publication Number Publication Date
JP2008289146A JP2008289146A (ja) 2008-11-27
JP4722157B2 true JP4722157B2 (ja) 2011-07-13

Family

ID=40027406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008126221A Expired - Fee Related JP4722157B2 (ja) 2007-05-18 2008-05-13 ネットワークトラフィックのインテリジェントロードバランシング及びフェイルオーバー

Country Status (5)

Country Link
US (1) US8300647B2 (ja)
JP (1) JP4722157B2 (ja)
KR (1) KR100989488B1 (ja)
CN (1) CN101394400B (ja)
TW (1) TWI381682B (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990431B2 (en) 2009-05-05 2015-03-24 Citrix Systems, Inc. Systems and methods for identifying a processor from a plurality of processors to provide symmetrical request and response processing
US8391174B2 (en) 2010-07-13 2013-03-05 Hewlett-Packard Development Company, L.P. Data packet routing
CN102131239B (zh) * 2010-10-27 2013-10-02 华为技术有限公司 业务处理单元和方法以及业务控制网关和负载均衡方法
US9300491B2 (en) * 2011-02-11 2016-03-29 Qualcomm Incorporated Frame delivery path selection in hybrid communication networks
US9025603B2 (en) 2011-03-08 2015-05-05 Qualcomm Incorporated Addressing scheme for hybrid communication networks
US8694618B2 (en) * 2011-04-13 2014-04-08 Microsoft Corporation Maximizing data transfer through multiple network devices
US8627412B2 (en) 2011-04-14 2014-01-07 Microsoft Corporation Transparent database connection reconnect
US8594096B2 (en) * 2011-10-31 2013-11-26 Hewlett-Packard Development Company, L.P. Dynamic hardware address assignment to network devices in a switch mesh
US9172557B2 (en) 2012-08-17 2015-10-27 International Business Machines Corporation Load balancing overlay network traffic using a teamed set of network interface cards
US10102028B2 (en) 2013-03-12 2018-10-16 Sas Institute Inc. Delivery acknowledgment in event stream processing
CN103491007B (zh) * 2013-09-13 2017-01-04 新浪网技术(中国)有限公司 一种数据包传输方法及装置
US9122651B1 (en) * 2014-06-06 2015-09-01 Sas Institute Inc. Computer system to support failover in an event stream processing system
US9369406B2 (en) * 2014-07-03 2016-06-14 Sas Institute Inc. Resource server providing a rapidly changing resource
US9356986B2 (en) 2014-08-08 2016-05-31 Sas Institute Inc. Distributed stream processing
US9888095B2 (en) * 2015-06-26 2018-02-06 Microsoft Technology Licensing, Llc Lightweight transport protocol
CN105357674B (zh) * 2015-10-26 2023-05-16 青岛海尔智能家电科技有限公司 一种数据分流方法、装置和系统
CN106789705B (zh) * 2015-11-25 2020-04-28 华为技术有限公司 传输控制报文的方法和装置
CN107026890B (zh) * 2016-02-02 2020-10-09 华为技术有限公司 一种基于服务器集群的报文生成方法和负载均衡器
CN106161120B (zh) * 2016-10-08 2019-04-09 电子科技大学 动态均衡负载的分布式元数据管理方法
US11757774B1 (en) 2017-08-08 2023-09-12 Cable Television Laboratories, Inc. Multi-channel communication
US11937167B1 (en) 2018-03-12 2024-03-19 Cable Television Laboratories, Inc. Client modification of traffic table in multi channel Wi-Fi
US10805258B2 (en) 2018-11-28 2020-10-13 International Business Machines Corporation Multiple link layer address resolution protocol (ARP)
US11343152B2 (en) * 2020-04-07 2022-05-24 Cisco Technology, Inc. Traffic management for smart network interface cards
CN112527200A (zh) * 2020-12-07 2021-03-19 成都网信天成科技有限公司 一种Jmatrix分布式云储存系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002044178A (ja) * 2000-07-17 2002-02-08 Hitachi Ltd I/oチャネルの通信制御方式
JP2006253900A (ja) * 2005-03-09 2006-09-21 Hitachi Ltd Ipアドレス引き継ぎ方法、ipアドレスアドレス引き継ぎプログラム、サーバおよびネットワークシステム

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557798A (en) 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
EP0660569A1 (en) 1993-12-22 1995-06-28 International Business Machines Corporation Method and system for improving the processing time of the path selection in a high speed packet switching network
JPH0816422A (ja) 1994-07-04 1996-01-19 Fujitsu Ltd バス通信方法及びバス通信システム
US5724510A (en) * 1996-09-06 1998-03-03 Fluke Corporation Method of configuring a valid IP address and detecting duplicate IP addresses in a local area network
US5864535A (en) 1996-09-18 1999-01-26 International Business Machines Corporation Network server having dynamic load balancing of messages in both inbound and outbound directions
US5914938A (en) 1996-11-19 1999-06-22 Bay Networks, Inc. MAC address table search unit
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
US6052733A (en) 1997-05-13 2000-04-18 3Com Corporation Method of detecting errors in a network
US6208616B1 (en) 1997-05-13 2001-03-27 3Com Corporation System for detecting errors in a network
US6393483B1 (en) * 1997-06-30 2002-05-21 Adaptec, Inc. Method and apparatus for network interface card load balancing and port aggregation
JP3372455B2 (ja) 1997-07-03 2003-02-04 富士通株式会社 パケット中継制御方法,パケット中継装置およびプログラム記憶媒体
US6151297A (en) 1997-07-08 2000-11-21 Hewlett-Packard Company Method and system for link level server/switch trunking
US6687758B2 (en) * 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
JP2000029806A (ja) 1998-07-09 2000-01-28 Hitachi Ltd 計算機システムのlanアダプタ負荷分散方式
US6570875B1 (en) * 1998-10-13 2003-05-27 Intel Corporation Automatic filtering and creation of virtual LANs among a plurality of switch ports
JP4015770B2 (ja) 1998-12-22 2007-11-28 株式会社東芝 クラスタシステム、サーバ計算機及び負荷分散方法
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
US7299294B1 (en) 1999-11-10 2007-11-20 Emc Corporation Distributed traffic controller for network data
US20030229809A1 (en) * 1999-04-15 2003-12-11 Asaf Wexler Transparent proxy server
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
US6779039B1 (en) 2000-03-31 2004-08-17 Avaya Technology Corp. System and method for routing message traffic using a cluster of routers sharing a single logical IP address distinct from unique IP addresses of the routers
US20010056503A1 (en) 2000-04-27 2001-12-27 Hibbard Richard J. Network interface device having primary and backup interfaces for automatic dial backup upon loss of a primary connection and method of using same
US6944785B2 (en) * 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
US7116664B2 (en) 2002-05-13 2006-10-03 International Business Machines Corporation Lookups by collisionless direct tables and CAMs
US8145790B2 (en) * 2002-07-11 2012-03-27 Hewlett-Packard Development Company, L.P. Method and device for using dynamic updates in a network
CN1206600C (zh) * 2002-11-14 2005-06-15 华中科技大学 一种全分布式的集群网络服务器系统
US7386611B2 (en) 2002-12-10 2008-06-10 International Business Machines Corporation Apparatus and methods for co-location and offloading of web site traffic based on traffic pattern recognition
US7415028B1 (en) 2003-02-11 2008-08-19 Network Equipment Technologies, Inc. Method and system for optimizing routing table changes due to ARP cache invalidation in routers with split plane architecture
US7159034B1 (en) * 2003-03-03 2007-01-02 Novell, Inc. System broadcasting ARP request from a server using a different IP address to balance incoming traffic load from clients via different network interface cards
WO2004088501A1 (en) * 2003-03-28 2004-10-14 Thomson Licensing S.A. System and method for transmitting media based files
US7324512B2 (en) 2003-06-12 2008-01-29 International Business Machines Corporation MAC layer bridging of network frames between isolated and external networks
US8285881B2 (en) 2003-09-10 2012-10-09 Broadcom Corporation System and method for load balancing and fail over
US7934020B1 (en) 2003-09-19 2011-04-26 Vmware, Inc. Managing network data transfers in a virtual computer system
EP1697842A2 (en) 2003-12-11 2006-09-06 Bladefusion Technologies 2003 LTD. Method and an apparatus for controlling executables running on blade servers
US7877519B2 (en) 2004-10-18 2011-01-25 Intel Corporation Selecting one of a plurality of adapters to use to transmit a packet
US7505401B2 (en) 2005-01-31 2009-03-17 International Business Machines Corporation Method, apparatus and program storage device for providing mutual failover and load-balancing between interfaces in a network
US7460470B2 (en) 2005-03-18 2008-12-02 Hewlett-Packard Development Company, L.P. Systems and methods of priority failover determination
CN100493086C (zh) * 2005-04-20 2009-05-27 大唐移动通信设备有限公司 一种实现虚拟网际协议的方法
JP4405941B2 (ja) * 2005-05-26 2010-01-27 日本電信電話株式会社 回線冗長化方法およびこれに用いる中継装置
US7876689B2 (en) 2005-06-29 2011-01-25 Hewlett-Packard Development Company, L.P. Method and apparatus for load balancing network interface adapters based on network information
US20070201490A1 (en) 2005-07-13 2007-08-30 Mahamuni Atul B System and method for implementing ethernet MAC address translation
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
US7619993B2 (en) 2005-11-01 2009-11-17 International Business Machines Corporation Efficient probabilistic duplicate packet detector in computer networks
US8031617B2 (en) 2006-07-28 2011-10-04 Hewlett-Packard Development Company, L.P. Fast detection of path failure for TCP
US7710862B2 (en) * 2006-08-30 2010-05-04 Hewlett-Packard Development Company, L.P. Method and system of assigning media access control (MAC) addresses across teamed communication ports
US7995465B2 (en) 2007-05-18 2011-08-09 Nvidia Corporation Intelligent load balancing and failover of network traffic

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002044178A (ja) * 2000-07-17 2002-02-08 Hitachi Ltd I/oチャネルの通信制御方式
JP2006253900A (ja) * 2005-03-09 2006-09-21 Hitachi Ltd Ipアドレス引き継ぎ方法、ipアドレスアドレス引き継ぎプログラム、サーバおよびネットワークシステム

Also Published As

Publication number Publication date
JP2008289146A (ja) 2008-11-27
CN101394400A (zh) 2009-03-25
KR20080101815A (ko) 2008-11-21
TW200910840A (en) 2009-03-01
US20080285553A1 (en) 2008-11-20
US8300647B2 (en) 2012-10-30
CN101394400B (zh) 2013-07-10
KR100989488B1 (ko) 2010-10-22
TWI381682B (zh) 2013-01-01

Similar Documents

Publication Publication Date Title
JP4722157B2 (ja) ネットワークトラフィックのインテリジェントロードバランシング及びフェイルオーバー
JP4651692B2 (ja) ネットワークトラフィックのインテリジェントロードバランシング及びフェイルオーバー
JP4840943B2 (ja) ネットワークトラフィックのインテリジェントロードバランシング及びフェイルオーバー
US10171567B2 (en) Load balancing computer device, system, and method
US7996569B2 (en) Method and system for zero copy in a virtualized network environment
US7554993B2 (en) Method and apparatus for performing connection management with multiple stacks
US10270689B2 (en) Multi-nonce enabled interest packet design for named-data networking
US9450780B2 (en) Packet processing approach to improve performance and energy efficiency for software routers
US10574477B2 (en) Priority tagging based solutions in fc sans independent of target priority tagging capability
US8432788B2 (en) Intelligent failback in a load-balanced networking environment
US9455948B2 (en) Reducing proliferation of network-to-link-layer address resolution messages
US20080056122A1 (en) Method and system of transmit load balancing across multiple physical ports
US10104002B2 (en) Method and system for network address re-use in network address translation
US20070233886A1 (en) Method and system for a one bit TCP offload
US20080056263A1 (en) Efficient transport layer processing of incoming packets
US20140064270A1 (en) Using Fabric Port-Channels to Scale IP Connectivity to Hosts in Directly Connected Subnets in Massive Scale Data Centers
WO2022042370A1 (zh) Mptcp负载均衡方法、介质及设备
WO2023143103A1 (zh) 报文处理方法、网关设备及存储系统

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100713

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101012

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101015

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101115

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110405

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

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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