JP2016071860A - 粗粒度の負荷分散と細粒度の負荷分散との間をブリッジする技術 - Google Patents

粗粒度の負荷分散と細粒度の負荷分散との間をブリッジする技術 Download PDF

Info

Publication number
JP2016071860A
JP2016071860A JP2015159579A JP2015159579A JP2016071860A JP 2016071860 A JP2016071860 A JP 2016071860A JP 2015159579 A JP2015159579 A JP 2015159579A JP 2015159579 A JP2015159579 A JP 2015159579A JP 2016071860 A JP2016071860 A JP 2016071860A
Authority
JP
Japan
Prior art keywords
network
flow
next hop
computing node
entry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015159579A
Other languages
English (en)
Other versions
JP6106896B2 (ja
Inventor
バブ ラミア、カナン
Babu Ramia Kannan
バブ ラミア、カナン
マチオッコ、クリスチャン
Maciocco Christian
ゴブリエル、サメハ
Gobriel Sameh
ラジャン、アショク サンダー
Sunder Rajan Ashok
ラジャン、アショク サンダー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2016071860A publication Critical patent/JP2016071860A/ja
Application granted granted Critical
Publication of JP6106896B2 publication Critical patent/JP6106896B2/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/41Flow control; Congestion control by acting on aggregated flows or links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/021Ensuring consistency of routing table updates, e.g. by using epoch numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • 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
    • 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/17Interaction among intermediate nodes, e.g. hop by hop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】粗粒度の負荷分散と細粒度の負荷分散との間でブリッジする。
【解決手段】コンピューティングノード110は、ネットワークコントローラ120から受信したフロー情報に基づきフローエントリをローカルフローテーブルに追加する。コンピューティングノードは、フロー情報およびネクストホップ情報を他のコンピューティングノードに送信する。コンピューティングノードはまた、他のコンピューティングノードから受信したマルチキャストネットワークパケットに基づき、異なるフローエントリをローカルフローテーブルに追加し、ネクストホップエントリをローカルネクストホップテーブルに追加する。コンピューティングノードは、追加された複数のフローエントリに基づき、リモートコンピューティングデバイス130から受信したネットワークパケットをローカルに処理し、受信したネットワークパケットを他のコンピューティングノードに転送する。
【選択図】図1

Description

クラスタシステム又はクラスタデバイスは、連動してリモートコンピューティングデバイスから受信するネットワークトラフィックを処理するように設定された一群の相互接続コンピューティングノードである(例えば、既成のサーバ、デスクトップコンピュータなど)。しばしば、着信ネットワークトラフィックの処理は、細粒度の負荷分散スキームによって、クラスタシステムの複数のコンピューティングノード間で分散され得る。しかしながら、クラスタシステムの外部におけるコンピューティングデバイスの視点では、一群の相互接続コンピューティングノードは、複数インターフェースを備える単一の論理エンティティとして表れる。幾つかの環境において、単一の論理エンティティの複数のインターフェース間で着信ネットワークトラフィックを分散すべく、ネットワークロードバランサが用いられる。
ネットワークロードバランサは、とりわけ、処理作業負荷の平衡を保たせ、冗長性を提供し、拡張可能性を提供し、有用性を上げる、2つ又は3つ以上のコンピューティングデバイス間で、ネットワークトラフィックを分散する。そのようにすべく、ネットワークロードバランサは一般的に、粗粒度の負荷分散スキーム(例えば、等コストマルチパスルーティング(ECMP)、ラウンドロビンなど)によって、複数のコンピューティングデバイス間で着信ネットワークパケットを分散する。しかしながら、そのようなネットワークロードバランサは、一般的なクラスタシステムの物理的トポロジに気付かず、その結果、そのシステムで利用されている細粒度の負荷分散スキームを理解していないことになる。
本明細書で説明される複数の概念は、添付の図面において例として示されるのであって、限定として示されるのではない。説明の簡略化及び明確化を目的として、図面で示される複数の要素は、必ずしも縮尺通りに描かれていない。適切であると考えられる場合は、対応する又は類似する複数の要素を示すべく、複数の参照符号が複数の図面間で繰り返されている。
多数のコンピューティングノードを含むクラスタコンピューティングデバイスで粗粒度の負荷分散と細粒度の負荷分散との間をブリッジするシステムの少なくとも1つの実施形態の簡略ブロック図である。 図1のシステムのクラスタコンピューティングデバイスにおける、複数のコンピューティングノードの少なくとも1つの実施形態の簡略ブロック図である。 図1のシステムのクラスタコンピューティングデバイスにおける、複数のコンピューティングノードの環境の少なくとも1つの実施形態の簡略ブロック図である。 図1のシステムのクラスタコンピューティングデバイスにおけるコンピューティングノードによって実行され得る、ネットワークコントローラからのネットワークフロー情報を受信する方法の、少なくとも1つの実施形態の簡略フロー図である。 図4の方法を実行する図1のシステムのクラスタコンピューティングデバイスにおける、コンピューティングノードによって実行され得る疑似コードの例示的実施形態である。 図1のシステムのクラスタコンピューティングデバイスのコンピューティングノードによって実行され得る、クラスタコンピューティングデバイスの他のコンピューティングノードからのネットワークフロー情報を受信する方法の、少なくとも1つの実施形態の簡略フロー図である。 図6の方法を実行する図1のシステムのクラスタコンピューティングデバイスのコンピューティングノードによって実行され得る、疑似コードの例示的実施形態である。 図1のシステムのクラスタコンピューティングデバイスのコンピューティングノードによって実行され得る、リモートコンピューティングデバイスから受信されるネットワークパケットを処理する方法の、少なくとも1つの実施形態の簡略フロー図である。 図1のシステムのクラスタコンピューティングデバイスのコンピューティングノードによって実行され得る、リモートコンピューティングデバイスから受信されるネットワークパケットを処理する方法の、少なくとも1つの実施形態の簡略フロー図である。 図8および9の方法を実行する図1のシステムのクラスタコンピューティングデバイスのコンピューティングノードによって実行され得る、疑似コードの例示的実施形態である。 ネットワーク機能仮想化(NFV)環境で動作する多数のコンピューティングノードを含むクラスタコンピューティングデバイスで、粗粒度の負荷分散と細粒度の負荷分散との間をブリッジするシステムの少なくとも1つの実施形態の簡略ブロック図である。
本開示の複数の概念は、様々な変更及び代替的な形態の対象たり得るものである一方で、それらの複数の具体的実施形態は、図面において例として示され、本明細書において詳細に説明されるだろう。しかしながら、本開示の複数の概念を開示される複数の特定形態に制限する意図は無く、それどころか、本開示及び添付の特許請求の範囲と相反しない全ての変更、均等物及び代替案を包含する意図であることを理解されるべきである。
明細書における「一実施形態」、「実施形態」、「例示的実施形態」などについての複数の言及は、説明される実施形態が特定の機能、構造または特性を含み得ることを示しているが、いずれの実施形態も、それら特定の機能、構造または特性を含んでもよく、又は、必ずしも含まなくてもよい。更に、そのような複数の表現は、必ずしも同一の実施形態について言及していない。更に、特定の機能、構造または特性が実施形態に関連して説明される場合、明示的に説明されているか否かに拘らず、他の複数の実施形態に関連してそのような特徴、構造または特性を達成することは、当業者の知識の範囲内であるとされる。加えて、「A、BおよびCの少なくとも1つ」という形の一覧に含まれている複数のアイテムは、(A)、(B)、(C)、(AおよびB)、(AおよびC)、(BおよびC)、又は、(A、BおよびC)を意味し得ることが理解されるべきである。同様に、「A、BまたはCの少なくとも1つ」という形で列挙されている複数のアイテムは、(A)、(B)、(C)、(AおよびB)、(AおよびC)、(BおよびC)、又は、(A、BおよびC)を意味し得る。
開示される複数の実施形態は、場合によっては、ハードウェア、ファームウェア、ソフトウェア、又は、それらの任意の組み合わせにおいて実装されてもよい。開示される複数の実施形態はまた、1または複数のプロセッサによって読み取られて実行され得る、1または複数の一時的又は非一時機械可読(例えばコンピュータ可読)記憶媒体によって伝達又は格納される複数の命令として実装されてもよい。機械可読記憶媒体は、情報を機械で読み取り可能な形で格納又は送信する、任意のストレージデバイス、メカニズム、又は、他の物理的構造として具現化されてもよい(例えば、揮発性若しくは非揮発性メモリ、メディアディスク、又は、他のメディアデバイス)。
図面において、幾つかの構造的又は方法的な特徴は、複数の具体的な構成及び/又は順序で示され得る。しかしながら、そのような複数の具体的な構成及び/又は順序が必要とされなくてもよいことが理解されるべきである。むしろ、幾つかの実施形態において、そのような複数の特徴は、例示的な図面で示されるものと異なる方法及び/又は順序で配置されてもよい。加えて、特定の図面において構造的又は方法的な特徴を含ませることは、そのような特徴が全ての実施形態において必要とされることを暗示するつもりではなく、幾つかの実施形態においては含まれなくても良く、又は、他の複数の特徴と組み合わされてもよい。
ここで、図1を参照すると、例示的実施形態において、粗粒度の負荷分散と細粒度の負荷分散との間でブリッジするシステム100は、複数のコンピューティングノード110を有するクラスタコンピューティングデバイス102と、ネットワークコントローラ120と、リモートコンピューティングデバイス130と、ネットワークロードバランサ140とを備え、これらの各々は、ソフトウェアデファインドネットワーキング(SDN)環境及び/又はネットワーク機能仮想化(NFV)環境で動作可能であってもよい。ネットワークロードバランサ140は、別個の複数の通信リンク(例えば、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、ライトガイドなど)を介して、クラスタコンピューティングデバイス102の2つ又は3つ以上のコンピューティングノード110(例えば、コンピューティングノードA112およびコンピューティングノードB114)に通信可能に連結されてもよい。使用する場合、ネットワークロードバランサ140は、例えばリモートコンピューティングデバイス130のような1または複数のコンピューティングデバイスから、クラスタコンピューティングデバイス102に向かう複数のネットワークパケットを受信する。ネットワークロードバランサ140は、粗粒度の負荷分散スキーム(例えば等コストマルチパスルーティング(ECMP)、ラウンドロビンなど)によって、クラスタコンピューティングデバイス102の複数のコンピューティングノード110を渡って、受信された複数のネットワークパケットを分散してもよい。しかしながら、受信された複数のネットワークパケットを処理する負担は(例えば、複数のパケット転送操作を実行する、複数のパケットルーティング操作を実行する、複数のローカルパケット処理操作を実行するなど)、細粒度の負荷分散スキームによって、複数のコンピューティングノード110間で分配されてもよい。
従って、幾つかの実施形態において、受信されたネットワークパケットは、ネットワークロードバランサ140によって、ネットワークパケットを処理する責任がある特定のコンピューティングノード110に拘らず、クラスタコンピューティングデバイス102の複数のコンピューティングノード110のいずれか一つ(例えば、コンピューティングノードA112、コンピューティングノードB114、コンピューティングノードC116)に転送されてもよい。そのような複数の実施形態において、クラスタコンピューティングデバイス102の複数のコンピューティングノード110の各々は、それが、受信されたネットワークパケットを処理する責任があるコンピューティングノード110かどうか、又は、クラスタコンピューティングデバイス102の他のコンピューティングノード110が責任あるかどうかを決定するように設定されてもよい。そのような決定は、ネットワークコントローラ120から、又は、クラスタコンピューティングデバイス102の複数のコンピューティングノード110の他の1つから受信されるネットワークフロー情報に基づいて行われてもよい。幾つかの実施形態において、そのような決定はまた、ネットワークコントローラ120と、任意の数の他のコンピューティングデバイス、コンピューティングノード及び/又は複数のコンピューティングエンティティとから受信される複合情報に基づいて行われてもよい。例えば、そのような複数の実施形態において、クラスタコンピューティングデバイス102のコンピューティングノード110の各々は、それが又は異なるコンピューティングノード110が、複数のコンピューティングノード110の他の1つから、及び/又は、クラスタコンピューティングデバイス102の複数のコンピューティングエンティティ(例えば作業負荷制御エンティティなど)から受信される情報と組み合わせて、ネットワークコントローラ120から受信されるネットワークフロー情報に基づいて特定のネットワークパケットを処理する責任があるかどうかを決定するように設定されてもよい。
もしネットワークロードバランサ140からネットワークパケットを受信するコンピューティングノード110がネットワークパケットを処理する責任のあるコンピューティングノード110であれば、ネットワークパケットはローカルに更に処理されるだろう。しかしながら、もしネットワークロードバランサ140からネットワークパケットを受信するコンピューティングノード110がネットワークパケットを処理する責任のあるコンピューティングノード110ではないならば、コンピューティングノード110は、クラスタコンピューティングデバイス102の他の複数のコンピューティングノード110のいずれがネットワークパケットを処理する責任があるかを決定する。次に、受信されたネットワークパケットは、更に処理する責任がある、クラスタコンピューティングデバイス102のコンピューティングノード110に転送される。
動作中に、コンピューティングノード110(例えばコンピューティングノードA112)は、粗粒度の負荷分散スキームに基づいて、ネットワークロードバランサ140によって転送されるネットワークパケットを受信してもよい。コンピューティングノード110(例えばコンピューティングノードA112)は、ネットワークパケットを処理する責任があるクラスタコンピューティングデバイス102のコンピューティングノード110であるかどうかを決定してもよい。そのようにすべく、幾つかの実施形態において、コンピューティングノード110(例えばコンピューティングノードA112)は、受信されたネットワークパケットの発信元情報および宛先情報(例えば5タプル)を、コンピューティングノード110(例えばコンピューティングノードA112)によって維持されるローカルフローテーブルと比較してもよい。幾つかの実施形態において、コンピューティングノード110(例えばコンピューティングノードA112)は、受信されたネットワークパケットと関連付けられる全ての発信元情報および宛先情報(例えば5タプルの全てのフィールド)を比較してもよく、又は、受信されたネットワークパケットと関連付けられる発信元情報および宛先情報のサブセット(例えば5タプルの複数のフィールドの一部)を比較してもよい。そのような複数の実施形態において、コンピューティングノード110(例えばコンピューティングノードA112)によって比較される(例えば5タプルの複数のフィールドの)特定の発信元情報および宛先情報は、ネットワークコントローラ120、及び/又は、クラスタコンピューティングデバイス102の異なるコンピューティングノード若しくはエンティティ(例えば、複数のコンピューティングノード110の他の1つ、作業負荷制御エンティティなど)によって選択されてもよく、そうでなければ、決定されてもよい。それに拘らず、コンピューティングノード110(例えばコンピューティングノードA112)は、受信されたネットワークパケットの発信元情報および宛先情報が、コンピューティングノード110(例えばコンピューティングノードA112)によって維持されるローカルフローテーブルに含まれる複数のネットワークフローエントリのうちのあるネットワークフローエントリと一致するかどうかを決定する。受信されたネットワークパケットの発信元情報および宛先情報がローカルフローテーブル内のネットワークフローエントリと一致するという決定に応じて、コンピューティングノード110(例えばコンピューティングノードA112)は、一致するネットワークフローエントリと関連付けられるネクストホップタイプを決定する。もし、一致するネットワークフローエントリのネクストホップタイプが、ネクストホップ(例えばネクストホップコンピューティングデバイス)がローカルにあることを示していると、コンピューティングノード110(例えばコンピューティングノードA112)が決定するならば、コンピューティングノード110(例えばコンピューティングノードA112)は、受信されたネットワークパケットをローカルに処理する。しかしながら、もしその代わりに、一致するネットワークフローエントリのネクストホップタイプが、ネクストホップが遠隔にあることを示していると、コンピューティングノード110(例えばコンピューティングノードA112)が決定するならば、コンピューティングノード110(例えばコンピューティングノードA112)は、コンピューティングノード110(例えばコンピューティングノードA112)によって維持されているローカルネクストホップテーブルに格納された、関連付けられたネクストホップエントリに基づいて、更に処理する責任がある、クラスタコンピューティングデバイス102のコンピューティングノード110に、受信されたネットワークパケットを転送する。
幾つかの実施形態において、コンピューティングノード110(例えばコンピューティングノードA112)は、ネットワークコントローラ120からネットワークフロー情報を受信する。ネットワークフロー情報は、ネットワークフロー、及び、ネットワークフローと関連付けられる任意のネットワークパケットに対応する。そのような複数の実施形態において、コンピューティングノード110(例えばコンピューティングノードA112)は、ネットワークフローエントリを自身のローカルフローテーブルに追加する。そのようにしている間に、コンピューティングノード110(例えばコンピューティングノードA112)は、ネットワークフローエントリと一致する受信された複数のネットワークパケットがローカルに処理されるべきであることを示す、追加されたネットワークフローエントリのネクストホップタイプを更新する。続いて、コンピューティングノード110(例えばコンピューティングノードA112)は、マルチキャストネットワークパケットを生成し、クラスタコンピューティングデバイス102の他の複数のコンピューティングノード110に送信する。コンピューティングノード110(例えばコンピューティングノードA112)によって生成されるマルチキャストネットワークパケットは、ネットワークコントローラ120から受信されたネットワークフロー情報と、コンピューティングノード110(例えばコンピューティングノードA112)と関連付けられたインターネットプロトコル(IP)アドレスとを含む。幾つかの実施形態において、他の複数のコンピューティングノード110は、コンピューティングノード110(例えばコンピューティングノードA112)から受信されたマルチキャストネットワークパケットに基づいて、対応するネットワークフローエントリをそれら自身のローカルフローテーブルに追加し、関連付けられたネクストホップエントリをそれら自身のローカルネクストホップテーブルに追加する。しかしながら、そのような複数の実施形態において、他の複数のコンピューティングノード110によってそれら各々のローカルフローテーブルに追加されたローカルネットワークフローエントリは、ネットワークフローエントリと一致する受信された複数のネットワークパケットが(例えばコンピューティングノードA112によって)遠隔から処理されるべきであることを示すネクストホップタイプを含む。
幾つかの実施形態において、コンピューティングノード110(例えばコンピューティングノードA112)はまた、クラスタコンピューティングデバイス102の複数のコンピューティングノード110(例えばコンピューティングノードB114)の他の1つによって生成されて送信されるマルチキャストネットワークパケットを受信する。受信されたマルチキャストネットワークパケットは、ネットワークフロー、及び、ネットワークフローと関連付けられた任意のネットワークパケットに対応するネットワークフロー情報を含んでもよい。幾つかの実施形態において、受信されたマルチキャストネットワークパケットはまた、含まれるネットワークフロー情報に対応するネットワークフローと関連付けられた、複数のネットワークパケットを処理する責任があるコンピューティングノード110(例えばコンピューティングノードB114)を示すネクストホップ情報を含む。そのような複数の実施形態において、コンピューティングノード110(例えばコンピューティングノードA112)は、受信されたマルチキャストネットワークパケットのネットワークフロー情報およびネクストホップ情報に基づいて、新しいネットワークフローエントリを自身のローカルフローテーブルに追加し、関連付けられたネクストホップエントリを自身のローカルネクストホップテーブルに追加してもよい。そのようにしている間に、コンピューティングノード110(例えばコンピューティングノードA112)は、ネットワークフローエントリと一致する任意の受信された複数のネットワークパケットが、遠隔から処理されるべく他のコンピューティングノード110(例えばコンピューティングノードB114)に転送される予定であることを示す、追加されたネットワークフローエントリのネクストホップタイプを更新する。
クラスタコンピューティングデバイス102(例えば分散コンピューティングデバイス)は、本明細書で説明される複数の機能を実行するように一斉に動作する個別のコンピューティングノード110のグループとして具現化されてもよい。図1に例示的に示されるように、クラスタコンピューティングデバイス102は、十分に接続されたメッシュネットワーキングトポロジに従って、互いに通信可能に連結された複数のコンピューティングノード110を含んでもよい。しかしながら、各コンピューティングノード110は、任意の他のネットワーキングトポロジに従って、他の複数のコンピューティングノード110と通信可能に連結されてもよいことが理解されるべきである。例えば、各コンピューティングノード110は、とりわけ、交換ネットワークトポロジ、CLOSネットワークトポロジ、バスネットワークトポロジ、スターネットワークトポロジ、リングネットワークトポロジ、及び/又は、それらの任意の組み合わせに従って、他の複数のコンピューティングノード110と通信可能に連結されてもよい。クラスタコンピューティングデバイス102の複数のコンピューティングノード110の各々は、クラスタコンピューティングデバイス102に対する複数のパケット処理操作(例えば、パケット転送操作、パケットルーティング操作、ローカルパケット処理操作など)の任意の部分を実行するように設定されてもよい。例えば、複数のコンピューティングノード110の各々は、ネットワークコントローラ120から受信されたネットワークフロー情報に少なくとも部分的に基づいて、そうでなければ当該情報に応じて、特定のネットワークフローと関連付けられた複数のネットワークパケットをローカルに処理するように設定されてもよい。加えて、又は、代替的に、複数のコンピューティングノード110の各々は、マルチキャストネットワークパケットによって他のコンピューティングノード110から受信されたネットワークフロー情報及びネクストホップ情報に少なくとも部分的に基づいて、そうでなければこれらの情報に応じて、更に処理する目的で、クラスタコンピューティングデバイス102の他のコンピューティングノード110に、特定のネットワークフローと関連付けられた複数のネットワークパケットを転送またはルーティングするように設定されてもよい。
ここで、図2を参照すると、複数のコンピューティングノード110の各々は、これらに限定されないが、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピューティングデバイス、民生用電子機器、モバイルコンピューティングデバイス、携帯電話、スマートフォン、タブレットコンピューティングデバイス、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス、スマートテレビ、スマート機器、及び/又は、他のタイプのコンピューティングデバイスを含めて、本明細書で説明される複数の機能を実行可能な任意のタイプのコンピューティングデバイスとして具現化されてもよく、そうでなければこれらを含んでもよい。図2に例示的に示されるように、複数のコンピューティングノード110の各々は、プロセッサ210、メモリ214、入出力(I/O)サブシステム220、データストレージ224、及び、通信回路226を含む。勿論、複数のコンピューティングノード110は、他の複数の実施形態において、コンピュータ内で一般的に見出されるもの(例えば様々な入出力デバイス)のような、他の又は追加の複数のコンポーネントを含んでもよい。加えて、幾つかの実施形態において、複数の例示的コンポーネントのうちの1または複数は、他のコンポーネントの中に組み込まれてもよく、そうでなければ他のコンポーネントの一部の形であってもよい。例えば、メモリ214、又は、その複数の部分は、幾つかの実施形態において、プロセッサ210内に組み込まれてもよい。複数のコンピューティングノード110の各々は、プロセッサ210、メモリ214、入出力(I/O)サブシステム220、データストレージ224、及び、通信回路226を含むが、複数の例示的コンポーネントの以下の説明は、説明の明確化を目的として、単一のコンピューティングノード112を特定参照して説明されることが理解されるべきである。
プロセッサ210は、本明細書で説明される複数の機能を実行可能な任意のタイプのプロセッサとして具現化されてもよい。例えば、幾つかの実施形態において、プロセッサ210は、シングルコアプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ、又は、他のプロセッサ若しくは処理/制御回路として具現化されてもよい。他の複数の実施形態において、図2に例示的に示されるもののように、プロセッサ210は、複数のプロセッサコア212を有するマルチコアプロセッサとして具現化されてもよい。そのような複数の実施形態において、プロセッサ210の各プロセッサコア212は、1または複数のアプリケーションを実行可能である。
メモリ214は、本明細書で説明される複数の機能を実行可能な、任意のタイプの揮発性若しくは非揮発性メモリ又はデータストレージとして具現化されてもよい。動作中、メモリ214は、複数のオペレーティングシステム、複数のアプリケーション、複数のプログラム、複数のライブラリ、及び、複数のドライバなどの、コンピューティングノード112の動作中に用いられる様々なデータ及びソフトウェアを格納してもよい。メモリ214は、I/Oサブシステム220を介してプロセッサ210と通信可能に連結される。I/Oサブシステム220は、プロセッサ210、メモリ214、及び、コンピューティングノード112の他の複数のコンポーネントとの複数の入出力操作を促す回路及び/又は複数のコンポーネントとして具現化されてもよい。例えば、I/Oサブシステム220は、複数のメモリコントローラハブ、複数の入出力制御ハブ、複数のファームウェアデバイス、複数の通信リンク(すなわち、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、ライトガイド、プリント回路基板トレースなど)、及び/又は、複数の入出力操作を促す他の複数のコンポーネント並びに複数のサブシステムとして具現化されてもよく、そうでなければこれらを含んでもよい。幾つかの実施形態において、I/Oサブシステム220は、システムオンチップ(SoC)の一部を形成してもよく、プロセッサ210、メモリ214、及び、コンピューティングノード112の他の複数のコンポーネントと共に単一の集積回路チップに組み込まれてもよい。
幾つかの実施形態において、メモリ214は、ローカルフローテーブル216を含む。以下でより詳細に説明されるように、ローカルフローテーブル216は、各々が異なるネットワークフローに対応する情報を有する複数のネットワークフローエントリを含む。例えば、ローカルフローテーブル216の各ネットワークフローエントリは、異なるネットワークフローと関連付けられてもよく、そのネットワークフローに対応する、フロー識別子、フロータプル、ネクストホップタイプおよびネクストホップインデックスを含んでもよい。各ネットワークフローエントリのフロー識別子は、コンピューティングノード112のローカルフローテーブル216に格納された複数のネットワークフローエントリのうちの他の複数のネットワークフローエントリから、ネットワークフローエントリを一意に識別する。各ネットワークフローエントリのフロータプルは、対応するネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示してもよい。例えば、幾つかの実施形態において、フロータプルは、他の複数のタイプの情報の中でも、発信元インターネットプロトコル(IP)アドレス、発信元ポート番号、宛先IPアドレス、宛先ポート番号、及び、対応するネットワークフローと関連付けられる複数のネットワークパケットのプロトコルを含んでもよい。
各ネットワークフローエントリのネクストホップタイプは、対応するネットワークフローと関連付けられる複数のネットワークパケットが、コンピューティングノード112によってローカルに処理されるべきか、又は、クラスタコンピューティングデバイス102の複数のコンピューティングノード110の他の1つによって遠隔から処理されるべきかを示す。各ネットワークフローエントリのネクストホップインデックスは、そのネットワークフローエントリと関連付けられるコンピューティングノード112における、ローカルネクストホップテーブル218の特定ネクストホップエントリを示し、そうでなければそれを識別する。以下で説明されるように、ネクストホップインデックスは、コンピューティングノード112のローカルネクストホップテーブル218に格納された複数のネクストホップエントリから、関連付けられたネクストホップエントリを一意に識別する。加えて、以下で説明されるように、ローカルフローテーブル216における1または複数のネットワークフローエントリのネクストホップインデックスは、対応するネットワークフローと関連付けられる複数のネットワークパケットがコンピューティングノード112によってローカルに処理されるべきであることを、対応するネットワークフローエントリのネクストホップタイプが示している複数の実施形態において、ヌル値を含んでもよい。そのような複数の実施形態において、ローカルネクストホップテーブル218は、関連付けられたネクストホップエントリを含まなくてもよい。加えて、幾つかの実施形態において、ローカルフローテーブル216に格納された複数のフローエントリのうちの1または複数は、複数のネットワークパケットが既にコンピューティングノード112によって受信されているネットワークフローに対応してもよい。加えて、又は、代替的に、ローカルフローテーブル216に格納された複数のフローエントリのうちの1または複数は、複数のネットワークパケットがまだコンピューティングノード112によって受信されていないネットワークフローに対応してもよい。すなわち、幾つかの実施形態において、ローカルフローテーブル216に格納された複数のフローエントリのうちの1または複数は、複数のネットワークパケットがその後に受信され得るネットワークフローに対応してもよい。
幾つかの実施形態において、メモリ214はまた、ローカルネクストホップテーブル218を含む。以下でより詳細に説明されるように、ローカルネクストホップテーブル218は、各々がローカルフローテーブル216の異なるネットワークフローエントリと関連付けられ、受信された複数のネットワークパケットを更に処理する責任があるネクストホップコンピューティングノード110(例えば、クラスタコンピューティングデバイス102の複数のコンピューティングノード110の他の1つ)を決定すること、そうでなければ識別することに関する情報を含む、複数のネクストホップエントリを含む。例えば、ローカルネクストホップテーブル218の各ネクストホップエントリは、ローカルフローテーブル216の異なるネットワークフローエントリと関連付けられてもよく、フロー識別子、ネットワークフローに対応する受信された複数のネットワークパケットを更に処理する責任があるネクストホップコンピューティングノード110と関連付けられたIPアドレス、及び、ネットワークフローに対応する受信された複数のネットワークパケットを更に処理する責任があるネクストホップコンピューティングノード110と関連付けられた媒体アクセス制御(MAC)アドレスを含んでもよい。各ネクストホップエントリのネクストホップインデックスは、コンピューティングノード112のローカルネクストホップテーブル218に格納された複数のネクストホップエントリの他の複数のネクストホップエントリから、ネクストホップエントリを一意に識別する。
幾つかの実施形態において、特定のネットワークフロー用のネットワークフロー情報(例えば、各ネットワークフローエントリのフロータプル、ネクストホップタイプ、ネクストホップインデックスおよびネクストホップ識別子)及びネクストホップ情報(例えば、フロー識別子、ネクストホップコンピューティングノード110のIPアドレス、及び、各ネクストホップエントリのネクストホップコンピューティングノード110のMACアドレス)は、別個のテーブルよりもむしろ同一のテーブルに格納され又は維持されてもよい。勿論、特定のネットワークフローに関するネットワークフロー情報およびネクストホップ情報は、例示的実施形態において1または複数のテーブルに格納されるものとして説明されるが、ネットワークフロー情報及び/又はネクストホップ情報は、他の複数の実施形態において、異なるフォーマットを有するデータ構造(例えば、ドキュメント、ファイル、データベースなど)に格納されてもよいことが理解されるべきである。例えば、特定のネットワークフローに関するネットワークフロー情報及び/又はネクストホップ情報は、コンマ区切り(CSV)ファイル、テキストファイル、暗号化済みデータファイル、1または複数の拡張マークアップ言語(XML)要素を有するXMLドキュメント、又は、ネットワーク情報並びに/若しくはネクストホップ情報を格納するのに適した任意の他のフォーマットとして具現化されてもよい。加えて、ローカルフローテーブル216およびローカルネクストホップテーブル218は、例示的実施形態において、コンピューティングノード112のメモリ214に格納されるものとして説明されるが、ローカルフローテーブル216およびローカルネクストホップテーブル218は、他の複数の実施形態において、コンピューティングノード112の他の複数のデータストレージデバイスに格納されてもよいことが理解されるべきである。例えば、幾つかの実施形態において、ローカルフローテーブル216及び/又はローカルネクストホップテーブル218の全て、又は、それらの一部は、プロセッサ210のキャッシュメモリ(不図示)に格納されてもよい。
複数のコンピューティングノード110の通信回路226は、1または複数の通信ネットワーク(例えば、複数のローカルエリアネットワーク、複数のパーソナルエリアネットワーク、複数のワイドエリアネットワーク、複数のセルラーネットワーク、インターネットのようなグローバルネットワークなど)を介して、クラスタコンピューティングデバイス102のコンピューティングノード112並びに他の複数のコンピューティングノード110、ネットワークコントローラ120、ネットワークロードバランサ140、及び/又は、他の複数のコンピューティングデバイス間における複数の通信を実現可能な任意のタイプの通信回路、デバイスまたはそれらの集合として具現化されてもよい。通信回路226は、任意の1または複数の通信技術(例えば、無線又は有線通信)、及び、そのような通信に影響する複数の関連付けられたプロトコル(例えば、イーサネット(登録商標)、Wi−Fi(登録商標)、WiMAX(登録商標)など)を用いるように設定されてもよい。例示的実施形態において、通信回路226は、1または複数の通信インターフェース228を含み、そうでなければ、それらと通信可能に連結される。複数の通信インターフェース228は、複数のコンピューティングノード110を、任意の数の他の複数のコンピューティングノード110、ネットワークコントローラ120、ネットワークロードバランサ140、複数のネットワーク(例えば物理的又は論理的ネットワーク)、及び/又は、複数の外部コンピューティングデバイス(例えば、リモートコンピューティングデバイス130のような、クラスタコンピューティングデバイス102の一部でない複数のコンピューティングデバイス)と通信可能に連結するように設定されてもよい。
データストレージ224は、例えば、複数のメモリデバイス並びに複数のメモリ回路、複数のメモリカード、複数のハードディスクドライブ、複数のソリッドステートドライブ、又は、他の複数のデータストレージデバイスなどの、データの短期間又は長期間保存用に設定された任意のタイプのデバイスまたは複数のデバイスとして具現化されてもよい。例えば、データストレージ224は、複数のコンピューティングノード110によって初期化及び/又は実行される1または複数のオペレーティングシステムを格納するように設定されてもよい。幾つかの実施形態において、オペレーティングシステムの複数の部分は、より速い処理のため、及び/又は、任意の他の理由で、複数の動作中にメモリ214にコピーされてもよい。
ここで、再び図1を参照すると、ネットワークコントローラ120は、これらに限定されないが、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピューティングデバイス、民生用電子機器、モバイルコンピューティングデバイス、携帯電話、スマートフォン、タブレットコンピューティングデバイス、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス、スマートテレビ、スマート機器、及び/又は、他のタイプのコンピューティング若しくはネットワーキングデバイスを含めて、本明細書で説明される複数の機能を実行可能な任意のタイプのコンピューティングデバイスとして具現化されてもよく、そうでなければこれらを含んでもよい。そのように、ネットワークコントローラ120は、複数のプロセッサ、複数のメモリデバイス、通信回路、及び、複数のデータストレージなどの、複数の同様のコンピューティングデバイス又はネットワークコントローラにおいて一般的に見出される複数のデバイス及び複数の構造を含んでもよく、説明の明確化を目的として、図1ではこれらを不図示としている。例示的実施形態において、ネットワークコントローラ120は、ソフトウェアデファインドネットワーキング(SDN)環境、及び/又は、ネットワーク機能仮想化(NFV)環境(例えば図11に例示的に示されているシステム1100)において動作可能である。そのように、ネットワークコントローラ120は、ネットワークフロー情報を、複数のコンピューティングノード110、及び/又は、SDN環境及び/又はNFV環境で動作可能な他の複数のコンピューティングデバイスに送信(send)(例えば送信(transmit)など)してもよい。例えば、ネットワークコントローラ120は、例えば、ネットワークフローと関連付けられた複数のネットワークパケットのフロー識別子及びフロータプル(例えば、発信元IPアドレス、発信元ポート番号、宛先IPアドレス、宛先ポート番号、及び、プロトコル)のようなネットワークフロー情報を送信してもよい。幾つかの実施形態において、ネットワークコントローラ120は、細粒度の負荷分散スキームによって、クラスタコンピューティングデバイス102の複数のコンピューティングノード110間で複数の異なるネットワークフローを処理する負担を分配してもよい。例えば、幾つかの実施形態において、ネットワークコントローラ120は、1つのコンピューティングノード110(例えばコンピューティングノードA112)が第1ネットワークフローと関連付けられた複数のネットワークパケットを処理する(例えば、複数のパケット転送操作を実行する、複数のパケットルーティング操作を実行する、複数のローカルパケット処理操作を実行するなど)責任があるべきか、及び、第2コンピューティングノード110(例えばコンピューティングノードB114)が第2ネットワークフローと関連付けられた複数のネットワークパケットを処理する責任があるべきかを決定してもよい。そのような複数の実施形態において、ネットワークコントローラ120は、第1ネットワークフローに対応するネットワークフロー情報を第1コンピューティングノード110(例えばコンピューティングノードA112)に送信し、第2ネットワークフローに対応するネットワークフロー情報を第2コンピューティングノード110(例えばコンピューティングノードB114)に送信するように設定されてもよい。
リモートコンピューティングデバイス130は、これらに限定されないが、デスクトップコンピュータ、ラップトップコンピューティングデバイス、サーバコンピュータ、民生用電子機器、モバイルコンピューティングデバイス、携帯電話、スマートフォン、タブレットコンピューティングデバイス、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス、スマートテレビ、スマート機器、及び/又は、他のタイプのコンピューティングデバイスを含めて、本明細書で説明される複数の機能を実行可能な任意のタイプのコンピューティングデバイスとして具現化されてもよく、そうでなければこれらを含んでもよい。そのように、リモートコンピューティングデバイス130は、複数のプロセッサ、複数のメモリデバイス、通信回路、及び、複数のデータストレージなど、複数のコンピューティングデバイスにおいて一般的に見出される複数のデバイス及び複数の構造を含んでもよく、説明の明確化を目的として、図1ではこれらを不図示としている。幾つかの実施形態において、リモートコンピューティングデバイス130は、複数のネットワークパケットを、クラスタコンピューティングデバイス102、及び/又は、クラスタコンピューティングデバイス102の複数のコンピューティングノード110に/から、送信及び/又は受信するように設定されてもよい。
ネットワークロードバランサ140は、これらに限定されないが、ネットワークロードバランサ、ネットワークスイッチ、ネットワークルータ、ネットワークハブ、無線アクセスポイント、デスクトップコンピュータ、ラップトップコンピューティングデバイス、サーバコンピュータ、民生用電子機器、モバイルコンピューティングデバイス、携帯電話、スマートフォン、タブレットコンピューティングデバイス、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス、スマートテレビ、スマート機器、及び/又は、他のタイプのコンピューティングデバイスを含む、本明細書で説明される複数の機能を実行可能な任意のタイプのネットワーキング又はコンピューティングデバイスとして具現化されてもよく、そうでなければそれらを含んでもよい。そのように、ネットワークロードバランサ140は、複数のプロセッサ、複数のメモリデバイス、通信回路、及び、複数のデータストレージのようなネットワークロードバランサ又は複数の同様のコンピューティングデバイスで一般的に見出される複数のデバイス及び複数の構造を含んでもよく、これらは説明の明確化を目的として図1では不図示としている。例示的実施形態において、ネットワークロードバランサ140は、他の複数のデバイスの中でも、クラスタコンピューティングデバイス102、クラスタコンピューティングデバイス102のコンピューティングノード110、及び、ネットワークコントローラ120を含み得る、ソフトウェアデファインドネットワーキング(SDN)環境及び/又はネットワーク機能仮想化(NFV)環境で動作可能である。
幾つかの実施形態において、ネットワークロードバランサ140は、別個の複数の通信リンク(例えば、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、ライトガイドなど)を介して、クラスタコンピューティングデバイス102の2つ又は3つ以上のコンピューティングノード110(例えば、コンピューティングノードA112およびコンピューティングノードB114)に通信可能に連結されてもよい。そのような複数の実施形態において、ネットワークロードバランサ140は、リモートコンピューティングデバイス130から1または複数のネットワークパケットを受信してもよい。リモートコンピューティングデバイス130から受信された複数のネットワークパケットは、クラスタコンピューティングデバイス102に仕向けられてもよい。そのように、ネットワークロードバランサ140は、粗粒度の負荷分散スキーム(例えば等コストマルチパスルーティング(ECMP)、ラウンドロビンなど)によって、クラスタコンピューティングデバイス102の複数のコンピューティングノード110を渡って、受信された複数のネットワークパケットを分散する。しかしながら、上記で説明されたように、受信された複数のネットワークパケットを処理する負担は(例えば、複数のパケット転送操作を実行する、複数のパケットルーティング操作を実行する、複数のローカルパケット処理操作を実行するなど)、細粒度の負荷分散スキームによって、複数のコンピューティングノード110間で分配されてもよい。そのように、幾つかの実施形態において、ネットワークロードバランサ140は、ネットワークパケットを処理する責任がないクラスタコンピューティングデバイス102のコンピューティングノード110にネットワークパケットを分散してもよい。そのような複数の実施形態において、以下でより詳細に説明されるように、各コンピューティングノード110は、クラスタコンピューティングデバイス102のいずれのコンピューティングノード110に受信されたネットワークパケットを処理する責任があるかを決定し、受信されたネットワークパケットをそのコンピューティングノード110に転送するように設定されてもよい。
ここで、図3を参照すると、使用する場合、複数のコンピューティングノード110の各々は、動作中の環境300を確立する。例示的環境300は、フロー管理モジュール302とフロー制御モジュール304とを含む。幾つかの実施形態において、フロー制御モジュール304は、1次フロー制御モジュール306と2次フロー制御モジュール308とを含む。環境300の複数のモジュール、ロジックおよび他の複数のコンポーネントの各々は、ハードウェア、ソフトウェア、ファームウェア、又は、それらの組み合わせとして具現化されてもよい。例えば、環境300の複数のモジュール、ロジックおよび他の複数のコンポーネントの各々は、各コンピューティングノード110のプロセッサ210または他の複数のハードウェアコンポーネントの一部を形成してもよく、そうでなければそれらによって確立されてもよい。各コンピューティングノード110は、コンピューティングデバイスにおいて一般的に見出される他の複数のコンポーネント、複数のサブコンポーネント、複数のモジュールおよび複数のデバイスを含んでもよく、これらは説明の明確化を目的として図3では示されていないことが理解されるべきである。加えて、複数のコンピューティングノード110の各々は動作中に例示的環境300を確立してもよいが、その例示的環境300の以下の説明は、説明の明確化を目的として、単一のコンピューティングノード112を特定参照して説明されることが理解されるべきである。
フロー管理モジュール302は、ネットワークコントローラ120からネットワークフロー情報を受信するように設定される。ネットワークフロー情報は、ネットワークフロー、及び、そのネットワークフローと関連付けられた任意のネットワークパケットに対応する。例えば、幾つかの実施形態において、ネットワークフロー情報は、特定のネットワークフローと関連付けられた複数のネットワークパケットのフロー識別子及びフロータプル(例えば、発信元IPアドレス、発信元ポート番号、宛先IPアドレス、宛先ポート番号、及び、プロトコル)を含む。ネットワークフロー情報は、特定のネットワークフローに対応する任意の他のタイプの情報を含んでもよいことが理解されるべきである。
フロー管理モジュール302はまた、ネットワークコントローラ120から受信されたネットワークフロー情報に基づいて、複数のネットワークフローエントリをコンピューティングノード112のローカルフローテーブル216に追加するように設定される。例えば、フロー管理モジュール302は、特定のネットワークフローに対応する、ネットワークコントローラ120からのネットワークフロー情報の受信に応答して、ネットワークフローエントリをコンピューティングノード112のローカルフローテーブル216に追加するように設定されてもよい。ローカルフローテーブル216に追加されたネットワークフローエントリは、受信されたネットワークフロー情報と関連付けられたネットワークフローに対応する、フロー識別子、フロータプル、ネクストホップタイプ、及び、ネクストホップインデックスを含む。フロー管理モジュール302がネットワークコントローラ120からネットワークフロー情報を受信する複数の実施形態において、フロー管理モジュール302は、特定のネットワークフローに対応する複数のネットワークパケットがコンピューティングノード112によってローカルに処理されるべきであることを示す、ローカルフローテーブル216に追加されたネットワークフローエントリのネクストホップタイプを更新するように、そうでなければそれを設定するように設定される。そのような複数の実施形態において、フロー管理モジュール302はまた、ヌル値を含むローカルフローテーブル216に追加されたネットワークフローのネクストホップインデックスを更新するように、そうでなければそれを設定するように設定されてもよい。
幾つかの実施形態において、フロー管理モジュール302は、1または複数のOpenFlowメッセージとして、ネットワークコントローラ120からネットワークフロー情報を受信するように設定されてもよい。加えて、又は、代替的に、フロー管理モジュール302は、1または複数の簡易オブジェクトアクセスプロトコル(SOAP)メッセージとして、ネットワークコントローラ120からネットワーク情報を受信するように設定されてもよい。勿論、任意の他の適切なメッセージング及び/又は通知プロトコル(例えばRepresentational State Transfer(REST)メッセージ、拡張マークアップ言語(XML)など)は、ネットワークコントローラ120からネットワークフロー情報を受信するフロー管理モジュール302によって用いられてもよいことが理解されるべきである。
フロー管理モジュール302はまた、ネットワークコントローラ120から受信されたネットワークフロー情報に基づいて、マルチキャストネットワークパケットを生成するように設定される。フロー管理モジュール302によって生成されるマルチキャストネットワークパケットは、ネットワークフローに対応するフロータプル(例えば、発信元IPアドレス、発信元ポート番号、宛先IPアドレス、宛先ポート番号、及び、プロトコル)を含んでもよい。フロー管理モジュール302によって生成されるマルチキャストネットワークパケットはまた、特定のネットワークフローに対応する複数のネットワークパケットを処理する責任のあるコンピューティングノード110としてコンピューティングノード112を示す、そうでなければ識別するネクストホップインターネットプロトコル(IP)アドレスを含む。幾つかの実施形態において、フロー管理モジュール302はまた、クラスタコンピューティングデバイス102の1または複数の他のコンピューティングノード110と通信可能に連結されるコンピューティングノード112のインターフェース228に対応するローカルIPアドレスを決定するように設定されてもよい。そのような複数の実施形態において、マルチキャストネットワークパケットの範囲内に含まれるネクストホップIPアドレスは、コンピューティングノード112のインターフェース228に対応するローカルIPアドレスとして具現化されてもよい。フロー管理モジュール302は、生成されるマルチキャストネットワークパケットを、マルチキャスト通信伝達、ブロードキャスト通信伝達、ユニキャスト通信伝達、及び/又は、マルチキャストネットワークパケットを他の複数のコンピューティングノード110の各々に送信するのに適した任意の他のタイプの通信伝達(例えばリモート・ダイレクト・メモリ・アクセス(RDMA)など)によって、クラスタコンピューティングデバイス102の他の複数のコンピューティングノード110の各々に送信するように設定される。
加えて、又は、代替的に、フロー管理モジュール302は、クラスタコンピューティングデバイス102の複数のコンピューティングノード110の他の1つからマルチキャストネットワークパケットを受信するように設定されてもよい。受信されたマルチキャストネットワークパケットは、特定のネットワークフローに対応する、フロー識別子、フロータプル、及び、ネクストホップIPアドレスを含んでもよい。ネクストホップIPアドレスは、更に処理することを目的として、特定のネットワークフローに対応する複数のネットワークパケットが転送されるべきクラスタコンピューティングデバイス102の特定のコンピューティングノード110を示し、そうでなければそれを識別する。幾つかの実施形態において、複数のコンピューティングノード110の他の1つからマルチキャストネットワークパケットを受信されたことに応じて、フロー管理モジュール302は、受信されたマルチキャストネットワークパケットに基づいて、ネットワークフローエントリをコンピューティングノード112のローカルフローテーブル216に追加するように設定されてもよい。フロー管理モジュール302が複数のコンピューティングノード110の他の1つからマルチキャストネットワークパケットを受信する複数の実施形態において、フロー管理モジュール302は、特定のネットワークフローに対応する複数のネットワークパケットがクラスタコンピューティングデバイス102の複数のコンピューティングノード110の他の1つによって遠隔から処理されるべきであることを示す、ローカルフローテーブル216に追加されたネットワークフローエントリのネクストホップタイプを更新するように、そうでなければそれを設定するように設定される。
加えて、フロー管理モジュール302が複数のコンピューティングノード110の他の1つからマルチキャストネットワークパケットを受信する複数の実施形態において、フロー管理モジュール302は、受信されたマルチキャストネットワークパケットに基づいて、ネクストホップエントリをコンピューティングノード112のローカルネクストホップテーブル218に追加するように設定される。ローカルネクストホップテーブル218に追加されたネクストホップエントリは、他のコンピューティングノード110から受信されたマルチキャストネットワークパケットからの、ネクストホップ識別子およびネクストホップIPアドレスを含む。ネクストホップインデックスは、コンピューティングノード112のローカルネクストホップテーブル218に格納された、そうでなければ維持された、複数の他のネクストホップエントリから、追加されたネクストホップエントリを一意に識別する。幾つかの実施形態において、ローカルネクストホップテーブル218に追加されたネクストホップエントリはまた、更に処理することを目的として、特定のネットワークフローに対応する複数のネットワークパケットが転送されるべきクラスタコンピューティングデバイス102の特定のコンピューティングノード110と関連付けられた媒体アクセス制御(MAC)アドレスを含む。そのような複数の実施形態において、フロー管理モジュール302は、アドレス解決プロトコル(ARP)テーブルおよびネクストホップIPアドレスに基づいて、ネットワークフローに対応する複数のネットワークパケットを処理する責任のあるコンピューティングノード110のMACアドレスを決定するように設定されてもよい。
フロー制御モジュール304は、ネットワークロードバランサ140、及び/又は、クラスタコンピューティングデバイス102の複数のコンピューティングノード110の他の1つからネットワークパケットを受信するように設定される。幾つかの実施形態において、フロー制御モジュール304は、コンピューティングノード112、又は、クラスタコンピューティングデバイス102の他のコンピューティングノード110のいずれが受信されたネットワークパケットを処理する責任があるかを決定するように設定される。そのようにすべく、フロー制御モジュール304は、受信されたネットワークパケットと関連付けられた発信元情報および宛先情報(例えば5タプル)を決定するように設定される。フロー制御モジュール304は更に、コンピューティングノード112のローカルフローテーブル216でフロールックアップ操作を実行するように設定されてもよい。動作中、フロー制御モジュール304は、受信されたネットワークパケットと関連付けられた発信元情報および宛先情報(例えば5タプル)をローカルフローテーブル216の複数のネットワークフローエントリの複数のフロータプルと比較するように設定される。
受信されたネットワークパケットと関連付けられた発信元情報および宛先情報(例えば5タプル)と一致する、又は、それらと実質的に同様であるフロータプルを含む、ローカルフローテーブル216のネットワークフローエントリを識別することに応じて、フロー制御モジュール304は、識別されたフローエントリのネクストホップタイプを決定するように設定される。例えば、幾つかの実施形態において、フロー制御モジュール304は、識別されたフローエントリのネクストホップタイプが、受信されたネットワークパケットがコンピューティングノード112によってローカルに処理されるべきかどうか、又は、受信されたネットワークパケットがクラスタコンピューティングデバイス102の他のコンピューティングノード110によって遠隔から処理されるべきかどうか、のいずれを示すか決定するように設定されてもよい。
フロー制御モジュール304はまた、識別されたフローエントリの決定されたネクストホップタイプに基づいて、受信されたネットワークパケットを処理するように設定されてもよい。そのようにすべく、幾つかの実施形態において、フロー制御モジュール304は、1次フロー制御モジュール306と2次フロー制御モジュール308とを含む。1次フロー制御モジュール306は、受信されたネットワークパケットがローカルに処理されるべきであるとの決定に応じて、受信されたネットワークパケットをローカルに処理するように設定されてもよい。例えば、幾つかの実施形態において、1次フロー制御モジュール306は、受信されたネットワークパケットをコンピューティングノード112のローカルメモリ待ち行列に保存するか、そうでなければ転送し、続いて、コンピューティングノード112によって実行されるアプリケーションに、受信されたネットワークパケットが処理されるべく利用可能であることを(例えば割り込み又はポーリングによって)知らせるように設定されてもよい。
2次フロー制御モジュール308は、受信されたネットワークパケットがクラスタコンピューティングデバイス102の他のコンピューティングノード110によって遠隔から処理されるべきとの決定に応じて、受信されたネットワークパケットを更に処理する責任があるネクストホップコンピューティングノード110を決定するように設定されてもよい。そのようにすべく、2次フロー制御モジュール308は、ローカルネクストホップテーブル218に格納された対応するネクストホップエントリを取得すべく、ローカルフローテーブル216の識別されたフローエントリのネクストホップインデックスを利用するように設定されてもよい。幾つかの実施形態において、2次フロー制御モジュール308はまた、ローカルネクストホップテーブル218に格納された対応するネクストホップエントリからネクストホップコンピューティングノード110の対応するMACアドレスを取得するように設定されてもよい。加えて、2次フロー制御モジュール308は、受信されたネットワークパケットを決定されたネクストホップコンピューティングノード110に送信(transmit)(例えば、転送、ルーティング、送信(send)など)するように設定されてもよい。
ここで、図4を参照すると、クラスタコンピューティングデバイス102のコンピューティングノード110は、ネットワークコントローラ120からネットワークフロー情報を受信する方法400を実行してもよい。方法400に対応する疑似コード500の一実施形態は、コンピューティングノード110によって実行されてもよく、図5に例示的に示されている。勿論、コンピューティングノード110は、方法400を実行する場合に、異なる及び/又は追加の指示または指令を実行してもよいことが理解されるべきである。
方法400は、コンピューティングノード110がネットワークコントローラ120から、ネットワークフローと関連付けられたネットワークフロー情報を受信するブロック402で開始する。ネットワークフロー情報は、ネットワークフローと関連付けられた複数のネットワークパケットを処理する責任がある、クラスタコンピューティングデバイス102の特定のコンピューティングノード110を示してもよい。幾つかの実施形態において、ネットワークコントローラ120から受信してネットワークフロー情報は、ネットワークフローに対応するフロー識別子及びフロータプル(例えば、発信元IPアドレス、発信元ポート番号、宛先IPアドレス、宛先ポート番号およびプロトコル)を含む。そのような複数の実施形態において、ブロック404で、コンピューティングノード110は、受信されたネットワーク情報からフロー識別子及びフロータプルを抽出してもよい。
ブロック406で、コンピューティングノード110は、ネットワークコントローラ120から受信されたネットワークフロー情報に基づいて、ネットワークフロー用のネットワークフローエントリを自身のローカルフローテーブル216に追加する。ローカルフローテーブル216に追加されたネットワークフローエントリは、受信されたネットワークフロー情報と関連付けられたネットワークフローに対応する、フロー識別子、フロータプル、ネクストホップタイプ、及び、ネクストホップインデックスを含む。追加されたネットワークフローエントリのフロー識別子は、コンピューティングノード110のローカルフローテーブル216に格納され、そうでなければ維持される他の複数のネットワークフローエントリから、追加されたネットワークフローエントリを一意に識別する。追加されたネットワークフローエントリのネクストホップタイプは、対応するネットワークフローと関連付けられる複数のネットワークパケットが、コンピューティングノード110によってローカルに処理されるべきか、又は、クラスタコンピューティングデバイス102の複数のコンピューティングノード110の他の1つによって遠隔から処理されるべきかを示す。幾つかの実施形態において、ブロック408で、コンピューティングノード110は、対応するネットワークフローと関連付けられた複数のネットワークパケットがローカルに処理されるべきであることを示す、追加されたネットワークフローエントリのネクストホップタイプを更新し、そうでなければそれを設定する。例えば、コンピューティングノード110は、ネットワークコントローラ120からのネットワークフロー情報の受信に応答して、「NHOP_LOCAL」値(または同様の値)を含む、そうでなければそれを示すネクストホップタイプを更新してもよい。対応するネットワークフローと関連付けられた複数のネットワークパケットが、コンピューティングノード110によってローカルに処理されるべきであることを示すべく、任意の他の値又は識別子が用いられてもよいことが理解されるべきである。加えて、コンピューティングノード110が、ネットワークコントローラ120からネットワークフロー情報を受信して、対応するネットワークフローと関連付けられた複数のネットワークパケットがローカルに処理されるべきであることを示すべく、自身のローカルフローテーブル216に追加されたネットワークフローエントリのネクストホップタイプフィールドを更新する複数の実施形態において、コンピューティングノード110は、対応するネットワークフローと関連付けられた複数のネットワークパケットを処理する1次責任を引き受けてもよい。
ブロック410で、コンピューティングノード110は、ネットワークコントローラ120から受信されたネットワーク情報を含むマルチキャストネットワークパケットを生成する。例えば、コンピューティングノード110は、ネットワークフローに対応するフロー識別子及びフロータプル(例えば、発信元IPアドレス、発信元ポート番号、宛先IPアドレス、宛先ポート番号およびプロトコル)を含む、マルチキャストネットワークパケットを生成する。幾つかの実施形態において、コンピューティングノード110によって生成されるマルチキャストネットワークパケットはまた、更に処理する目的でネットワークフローに対応する受信された複数のネットワークパケットが転送されるべき、クラスタコンピューティングデバイス102の特定のコンピューティングノード110を示す、そうでなければ識別するネクストホップインターネットプロトコル(IP)アドレスを含む。コンピューティングノード110がネットワークフローに対応するネットワークパケットを処理する1次責任を引き受ける複数の実施形態において、ネクストホップIPアドレスは、コンピューティングノード110と関連付けられたIPアドレスであってもよい。例えば、ブロック412で、コンピューティングノード110は、クラスタコンピューティングデバイス102の1または複数の他のコンピューティングノード110と通信可能に連結されたコンピューティングノード110のインターフェース228に対応するローカルIPアドレスを決定してもよい。そのような複数の実施形態において、マルチキャストネットワークパケットの範囲内に含まれるネクストホップIPアドレスは、複数のコンピューティングノード110のインターフェース228に対応するローカルIPアドレスとして具現化されてもよい。コンピューティングノード110によって生成されるネットワークパケットは、例示的実施形態でマルチキャストネットワークパケットとして説明されるが、他の複数の実施形態においては、任意の他のタイプのパケット(例えばブロードキャストなど)がコンピューティングノード110によって生成されてもよいことが理解されるべきである。
ブロック414で、コンピューティングノード110は、マルチキャストネットワークパケットをクラスタコンピューティングデバイス102の他の複数のコンピューティングノード110に送信する。幾つかの実施形態において、マルチキャストネットワークパケットは、マルチキャスト通信伝達、ブロードキャスト通信伝達、ユニキャスト通信伝達、及び/又は、マルチキャストネットワークパケットを他の複数のコンピューティングノード110の各々に送信するのに適した任意の他のタイプの通信伝達(例えばリモート・ダイレクト・メモリ・アクセス(RDMA)など)によって、クラスタコンピューティングデバイス102の他の複数のコンピューティングノード110の各々に送信されてもよい。説明されるように、コンピューティングノード110からのマルチキャストネットワークパケットの受信に応答して、クラスタコンピューティングデバイス102の他の複数のコンピューティングノード110の各々は、対応するフローエントリをそれら自身が所有するローカルフローテーブル216に追加し、及び、関連付けられたネクストホップエントリをそれら自身が所有するローカルネクストホップテーブル218に追加するように設定されてもよい。
ここで、図6を参照すると、クラスタコンピューティングデバイス102のコンピューティングノード110は、クラスタコンピューティングデバイス102の他のコンピューティングノード110からネットワークフロー情報を受信する方法600を実行してもよい。方法600に対応する疑似コード700の一実施形態は、コンピューティングノード110によって実行されてもよく、図7に例示的に示されている。勿論、コンピューティングノード110は、方法600を実行する場合に、異なる及び/又は追加の指示または指令を実行してもよいことが理解されるべきである。方法600は、コンピューティングノード110が、マルチキャストネットワークパケットがクラスタコンピューティングデバイス102の他のコンピューティングノード110から受信されたかどうかを決定する決定ブロック602で開始する。幾つかの実施形態において、コンピューティングノード110は、ネットワークコントローラ120からのネットワークフローに対応するネットワーク情報を受信する他のコンピューティングノード110に応じて、他のコンピューティングノード110からマルチキャストネットワークパケットを受信してもよい。決定ブロック602で、もしコンピューティングノード110が、マルチキャストネットワークパケットがクラスタコンピューティングデバイス102の他のコンピューティングノード110から受信されていないと決定するならば、方法600は決定ブロック602にループバックし、コンピューティングノード110は、マルチキャストネットワークパケットが受信されたかどうかを判断し続ける。しかしながら、もしコンピューティングノード110が決定ブロック602で代わりに、マルチキャストネットワークパケットが他のコンピューティングノード110から受信されたと決定するならば、方法600はブロック604に進む。
ブロック604で、コンピューティングノードは、クラスタコンピューティングデバイス102の他のコンピューティングノード110から受信してマルチキャストネットワークパケットに基づいて、ネクストホップエントリを自身のローカルネクストホップテーブル218に追加する。受信されたマルチキャストネットワークパケットは、ネットワークフローに対応する、フロー識別子、フロータプル、及び、ネクストホップIPアドレスを含んでもよい。ローカルネクストホップテーブル218に追加されたネクストホップエントリは、他のコンピューティングノード110から受信されたマルチキャストネットワークパケットからの、ネクストホップ識別子およびネクストホップIPアドレスを含む。ネクストホップインデックスは、複数のコンピューティングノード110のローカルネクストホップテーブル218に格納された、そうでなければ維持された、複数の他のネクストホップエントリから、追加されたネクストホップエントリを一意に識別する。ネクストホップIPアドレスは、ネットワークフローに対応する複数のネットワークパケットが更に処理されるように転送されるべき、クラスタコンピューティングデバイス102の特定のコンピューティングノード110を示し、そうでなければそれを識別する。すなわち、ネクストホップIPアドレスは、ネットワークロードバランサ140を介してリモートコンピューティングデバイス130から受信され得る、ネットワークフローに対応する複数のネットワークパケットを処理する1次責任を有する、そうでなければそれを引き受ける、クラスタコンピューティングデバイス102のコンピューティングノード110と関連付けられてもよい。そのような複数の実施形態において、ブロック606で、コンピューティングノード110は、受信されたマルチキャストネットワークパケットからネクストホップIPアドレスを抽出してもよい。
幾つかの実施形態において、ネットワークフローに対応する受信された複数のネットワークパケットを、複数のネットワークパケットを処理する1次責任を有するクラスタコンピューティングデバイス102のコンピューティングノード110に転送するのを促すことを目的として、ローカルネクストホップテーブル218に追加されたネクストホップエントリはまた、複数のネットワークパケットを処理する1次責任を有するクラスタコンピューティングデバイス102のコンピューティングノード110と関連付けられた媒体アクセス制御(MAC)アドレスを含んでもよい。そのような複数の実施形態において、ブロック608で、コンピューティングノード110は、ネットワークフローに対応する複数のネットワークパケットを処理する1次責任を有するクラスタコンピューティングデバイス102のコンピューティングノード110のMACアドレスを決定してもよい。そのようにすべく、コンピューティングノード110は、ネクストホップIPアドレスに基づいて、ネットワークフローに対応する複数のネットワークパケットを処理する1次責任を有するコンピューティングノード110のMACアドレスをルックアップすべく、アドレス解決プロトコル(ARP)テーブルを利用してもよい。続いて、コンピューティングノード110は、1次責任を有するクラスタコンピューティングデバイス102のコンピューティングノード110のMACアドレスを含むローカルネクストホップテーブル218に追加された、MACアドレスフィールド、及び/又は、ネクストホップエントリ値を更新してもよい。以下で説明されるように、複数のコンピューティングノード110のローカルネクストホップテーブル218に追加されたネクストホップエントリは、複数のコンピューティングノード110のローカルフローテーブル216に追加されたネットワークフローエントリと関連付けられる。
ブロック610で、コンピューティングノード110は、クラスタコンピューティングデバイス102の他のコンピューティングノード110から受信されたマルチキャストネットワークパケットに基づいて、ネットワークフロー用のネットワークフローエントリを自身のローカルフローテーブル216に追加する。ローカルフローテーブル216に追加されたネットワークフローエントリは、他のコンピューティングノード110から受信されたマルチキャストネットワークパケットからのフロー識別子及びフロータプルを含む。加えて、ローカルフローテーブル216に追加されたネットワークフローエントリは、ネットワークフローに対応する、ネクストホップインデックスおよびネクストホップタイプを含む。説明されるように、複数のコンピューティングノード110のローカルネクストホップテーブル218に追加されたネクストホップエントリは、複数のコンピューティングノード110のローカルフローテーブル216に追加されたネットワークフローエントリと関連付けられる。幾つかの実施形態において、ブロック612で、コンピューティングノード110は、ローカルネクストホップテーブル218に追加されたネクストホップエントリと関連付けられたネクストホップインデックスを含むローカルフローテーブル216を追加された、ネットワークフローエントリのネクストホップインデックスを更新する。そのように、コンピューティングノード110は、ローカルネクストホップテーブル218からネクストホップ情報(例えば、ネクストホップIP及び/又は対応するMACアドレス)の全て又はその一部を取得すべく、ローカルフローテーブル216に追加されたネットワークフローエントリのネクストホップインデックスを利用してもよい。
説明したように、追加されたネットワークフローエントリのネクストホップタイプは、対応するネットワークフローと関連付けられる複数のネットワークパケットが、コンピューティングノード110によってローカルに処理されるべきか、又は、クラスタコンピューティングデバイス102の複数のコンピューティングノード110の他の1つによって遠隔から処理されるべきかを示す。幾つかの実施形態において、他のコンピューティングノード110からのマルチキャストネットワークパケットの受信に応答して、ブロック614で、コンピューティングノード110は、対応するネットワークフローと関連付けられた複数のネットワークパケットが遠隔から処理されるべきであることを示す、追加されたネットワークフローエントリのネクストホップタイプを更新し、そうでなければそれを設定する。例えば、コンピューティングノード110は、クラスタコンピューティングデバイス102の他のコンピューティングノード110からのマルチキャストネットワークパケットの受信に応答して、「NHOP_REMOTE」値(又は同様の値)を含む、そうでなければそれを示すネクストホップタイプを更新してもよい。対応するネットワークフローと関連付けられた複数のネットワークパケットが、クラスタコンピューティングデバイス102の他のコンピューティングノード110によって遠隔から処理されるべきであることを示すべく、任意の他の値又は識別子が用いられてもよいことが理解されるべきである。加えて、コンピューティングノード110が、他のコンピューティングノード110からマルチキャストネットワークパケットを受信して、対応するネットワークフローと関連付けられた複数のネットワークパケットが遠隔から処理されるべきであることを示すべく、自身のローカルフローテーブル216に追加されたネットワークフローエントリのネクストホップタイプフィールドを更新する複数の実施形態において、コンピューティングノード110は、対応するネットワークフローと関連付けられた複数のネットワークパケットを処理する2次責任を引き受けてもよい。すなわち、コンピューティングノード110は、更に処理する目的で、対応するネットワークフローと関連付けられた複数のネットワークパケットを他のコンピューティングノード110に転送してもよい。
ここで、図8及び図9を参照すると、クラスタコンピューティングデバイス102のコンピューティングノード110は、リモートコンピューティングデバイス130から受信されたネットワークパケットを処理する方法800を実行してもよい。方法800に対応する疑似コード1000の一実施形態は、コンピューティングノード110によって実行されてもよく、図10に例示的に示されている。勿論、コンピューティングノード110は、方法800を実行する場合に、異なる及び/又は追加の指示または指令を実行してもよいことが理解されるべきである。方法800は、コンピューティングノード110が、ネットワークパケットがリモートコンピューティングデバイス130から受信されたかどうかを決定する、決定ブロック802で開始する。幾つかの実施形態において、ネットワークパケットは、ネットワークロードバランサ140を介して、リモートコンピューティングデバイス130から受信されてもよい。説明されたように、ネットワークロードバランサ140は、粗粒度の負荷分散スキーム(例えば、等コストマルチパスルーティング(ECMP)、ラウンドロビンなど)によって、リモートコンピューティングデバイス130からのネットワークパケットをコンピューティングノード110に転送してもよい。決定ブロック802で、もしコンピューティングノード110が、ネットワークパケットがリモートコンピューティングデバイス130から受信されていないと決定するならば、方法800は決定ブロック802にループバックし、コンピューティングノード110は、ネットワークパケットが受信されたかどうかを判断し続ける。しかしながら、もしコンピューティングノード110が、ネットワークパケットがリモートコンピューティングデバイス130から受信されたと決定するならば、方法800は、コンピューティングノード110が受信されたネットワークパケットの発信元情報および宛先情報(例えば5タプル)を決定するブロック804に進む。
ブロック806で、コンピューティングノード110は、受信されたネットワークパケットの発信元情報および宛先情報(例えば5タプル)に基づいて、ローカルフローテーブル216でフロールックアップを実行する。そのようにすべく、幾つかの実施形態において、ブロック808で、コンピューティングノード110は、受信されたネットワークパケットの決定された発信元情報および宛先情報(例えば5タプル)と、ローカルフローテーブル216の複数のネットワークフローエントリの複数のフロータプルとを比較する。比較に基づいて、コンピューティングノード110は、受信されたネットワークパケットの5タプルに一致する、そうでなければ実質的に同様であるフロータプルを含む、ローカルフローテーブル216のネットワークフローエントリを決定する。
ブロック810で、コンピューティングノード110は、受信されたネットワークパケットの5タプルに一致する、そうでなければ実質的に同様であるフロータプルを含む、ローカルフローテーブル216のフローエントリのネクストホップタイプを決定する。決定ブロック812で、コンピューティングノード110は、ローカルフローテーブル216の一致するフローエントリのネクストホップタイプが、ネットワークパケットがローカルに処理されるべきであることを示すかどうかを決定する。そのようにすべく、幾つかの実施形態において、コンピューティングノード110は、ローカルフローテーブル216の一致するフローエントリのネクストホップタイプが、「NHOP_LOCAL」値(又は同様の値)を含むかどうか、そうでなければそれを示すかどうかを決定してもよい。説明されたように、ローカルフローテーブル216の一致するフローエントリが、ネットワークパケットがローカルに処理されるべきであることを示す複数の実施形態において、コンピューティングノード110は、対応するネットワークフローと関連付けられた複数のネットワークパケット(及び、続いて受信された複数のネットワークパケット)を処理する1次責任を引き受ける。しかしながら、ローカルフローテーブル216の一致するフローエントリが、ネットワークパケットが遠隔から処理される(例えばクラスタコンピューティングデバイス102の異なるコンピューティングノード110によって処理される)べきであることを示す複数の実施形態において、コンピューティングノード110は、対応するネットワークフローと関連付けられた複数のネットワークパケット(及び、続いて受信された複数のネットワークパケット)を処理する2次責任を引き受ける。すなわち、コンピューティングノード110は、更に処理する目的で、対応するネットワークフローと関連付けられたネットワークパケット(及び、続いて受信された複数のネットワークパケット)を、クラスタコンピューティングデバイス102の他のコンピューティングノード110に転送してもよい。決定ブロック812で、もしコンピューティングノード110が、一致するフローエントリのネクストホップタイプが、ネットワークパケットがローカルに処理されるべきであることを示すと決定するならば、方法800はブロック814に進む。しかしながら、決定ブロック812で、もしコンピューティングノード110が、一致するフローエントリのネクストホップタイプが、ネットワークパケットがローカルに処理されるべきであることを示さないと決定するならば(例えばネットワークパケットが遠隔から処理されるべきである)、方法800は代わりに、ブロック816に進む。
ブロック814で、コンピューティングノード110は、受信されたネットワークパケットをローカルに処理する。例えば、幾つかの実施形態において、コンピューティングノード110は、一致するフローエントリのフロー識別子を、コンピューティングノード110のアプリケーション層に渡す。他の例において、コンピューティングノード110は、受信されたネットワークパケットをローカルメモリ待ち行列に保存し、そうでなければそこに転送し、コンピューティングノード110によって実行されるアプリケーションに、受信されたネットワークパケットが処理されるべく利用可能であることを(例えば割り込み又はポーリングによって)知らせる。
ブロック816で、コンピューティングノード110は、ローカルフローテーブル216およびローカルネクストホップテーブル218に基づいて、受信されたネットワークパケットを更に処理する責任があるネクストホップコンピューティングノード110(例えば、クラスタコンピューティングデバイス102の複数のコンピューティングノード110の他の1つ)を決定する。そのようにすべく、幾つかの実施形態において、コンピューティングノード110は、ローカルネクストホップテーブル218に格納された対応するネクストホップエントリを取得すべく、一致するフローエントリのネクストホップインデックスを利用する。説明されたように、一致するフローエントリに対応するネクストホップエントリは、ネクストホップコンピューティングノード110のネクストホップIP及び/又は対応するMACアドレスを含む。ネクストホップエントリがネクストホップコンピューティングノード110のMACアドレスを含む複数の実施形態において、ブロック818で、コンピューティングノード110は、ローカルネクストホップテーブル218からネクストホップコンピューティングノード110のMACアドレスを取得する。
ブロック820で、コンピューティングノード110は、受信されたネットワークパケットを決定されたネクストホップコンピューティングノード110に送信(transmit)(例えば、転送、ルーティング、送信(send)など)する。そのようにすべく、幾つかの実施形態において、ブロック822で、コンピューティングノード110は、受信されたネットワークパケットの宛先MACアドレスに代えて、ネクストホップコンピューティングノード110のMACアドレスを用いる、そうでなければそれに置換する。説明されたように、ネクストホップコンピューティングノード110(例えば、クラスタコンピューティングデバイス102の異なるコンピューティングノード110)は、受信されたネットワークパケットを更に処理するように設定されてもよい。
ここで、図11を参照すると、例示的実施形態において、粗粒度の負荷分散と細粒度の負荷分散との間をブリッジするシステム1100は、複数のコンピューティングノード110と、ネットワークコントローラ120と、リモートコンピューティングデバイス130と、ネットワークロードバランサ140とを有するクラスタコンピューティングデバイス102を備え、それらの各々は、ネットワーク機能仮想化(NFV)環境で動作可能であってもよい。図11に示される、クラスタコンピューティングデバイス102、クラスタコンピューティングデバイス102の複数のコンピューティングノード110(例えばコンピューティングノードA112およびコンピューティングノードB114)、リモートコンピューティングデバイス130、及び、ネットワークロードバランサ140は、図1から図3を参照して上記で説明された、クラスタコンピューティングデバイス102、コンピューティングノード110、リモートコンピューティングデバイス130、及び、ネットワークロードバランサ140と実質的に同様の、機能性、複数の特徴、及び/又は、構造を含んでもよいことが理解されるべきである。図11に例示的に示されるように、システム1100はまた、フロー管理モジュール(FMM)302とフロー制御モジュール(FCM)304とを含んでもよい。図11に示されるフロー管理モジュール302及びフロー制御モジュール304は、図3を参照して上記で説明されたフロー管理モジュール302及びフロー制御モジュール304と同様の、機能性及び/又は複数の特徴を含んでもよいことが理解されるべきである。動作中、コンピューティングノードA112およびコンピューティングノードB114は各々、任意の数の仮想ネットワーク機能1102を与えるべく、1または複数の仮想機械(又は、仮想環境)を含んでもよい。システム1100の複数のコンピューティングノード110(例えばコンピューティングノードA112およびコンピューティングノードB114)の各々におけるフロー管理モジュール302及びフロー制御モジュール304は、複数のコンピューティングノード110の各々が、それぞれ提供する複数の仮想ネットワーク機能1102に対応する複数のネットワークパケットを処理する1次責任を引き受けることを可能にするように設定されてもよい。加えて、システム1100の複数のコンピューティングノード110(例えばコンピューティングノードA112およびコンピューティングノードB114)の各々におけるフロー管理モジュール302及びフロー制御モジュール304は、複数のコンピューティングノード110の各々が、クラスタコンピューティングデバイス102の他の複数のコンピューティングノード110によって提供される複数の仮想ネットワーク機能1102に対応する複数のネットワークパケットを処理する2次責任を引き受けることを可能にするように設定されてもよい。
[複数の例]
本明細書で開示される複数の技術の複数の例示的な例が以下で提供される。複数の技術の実施形態は、以下で説明される任意の1または複数の例、及び、それらの任意の組み合わせを含んでもよい。
例1は、粗粒度の負荷分散と細粒度の負荷分散との間でブリッジするクラスタコンピューティングデバイスのコンピューティングノードを含み、コンピューティングノードは、(1)複数のネットワークフローエントリを格納するローカルフローテーブルと、(2)複数のネットワークフローエントリのうちの1または複数に関する転送情報を格納するローカルネクストホップテーブルとを含むメモリ、及び、(1)ネットワークコントローラからネットワークフロー情報を受信し、(2)ネットワークコントローラから受信されたネットワークフロー情報に基づいてネットワークフローエントリをローカルフローテーブルに追加し、(3)ネットワークコントローラから受信されたネットワークフロー情報と、コンピューティングノードと関連付けられたインターネットプロトコルアドレスとを含むマルチキャストネットワークパケットを生成し、(4)マルチキャストネットワークパケットに基づいて、異なるネットワークフローエントリを互いのコンピューティングノードのローカルフローテーブルに追加すること、及び、ネクストホップエントリを互いのコンピューティングノードローカルネクストホップテーブルに追加することを促すべく、マルチキャストネットワークパケットをクラスタコンピューティングデバイスの互いのコンピューティングノードに送信するフロー管理モジュールを備える。
例2は、例1の主題を含み、コンピューティングノードのローカルフローテーブルに追加されたネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、コンピューティングノードのローカルフローテーブルに格納された複数のネットワークフローエントリの互いのネットワークフローエントリから追加されたネットワークフローエントリを一意に識別するフロー識別子と、コンピューティングノードのローカルネクストホップテーブルにおける関連付けられたネクストホップエントリを識別するネクストホップインデックスと、ネットワークフローと関連付けられた複数のネットワークパケットが、コンピューティングノードによってローカルに処理されるべきか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプとを含む。
例3は例1および2のいずれかの主題を含み、ネットワークコントローラから受信されたネットワークフロー情報は、フロータプル及びフロー識別子を含む。
例4は例1から3のいずれかの主題を含み、フロー管理モジュールは更に、(1)ネットワークフローと関連付けられた複数のネットワークパケットがコンピューティングノードによってローカルに処理されるべきであることを示すべく、ローカルフローテーブルに追加されたネットワークフローエントリのネクストホップタイプを設定し、(2)ローカルフローテーブルに追加されたネットワークフローエントリのネクストホップインデックスをヌル値で設定する予定である。
例5は例1から4のいずれかの主題を含み、フロー管理モジュールは更に、クラスタコンピューティングデバイスの1または複数の他のコンピューティングノードと通信可能に連結された、コンピューティングノードのインターフェースと関連付けられたローカルインターネットプロトコルアドレスを決定する予定であり、コンピューティングノードと関連付けられたインターネットプロトコルアドレスは、コンピューティングノードのインターフェースと関連付けられたローカルインターネットプロトコルアドレスを含む。
例6は例1から5のいずれかの主題を含み、コンピューティングノードのローカルフローテーブルの各ネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、コンピューティングノードのローカルフローテーブルに格納された複数のネットワークフローエントリの互いのネットワークフローエントリから、ネットワークフローエントリを一意に識別するフロー識別子と、ネットワークフローエントリと関連付けられたコンピューティングノードのローカルネクストホップテーブルに格納された複数のネクストホップエントリからネクストホップエントリを識別するネクストホップインデックスと、ネットワークフローと関連付けられた複数のネットワークパケットが、コンピューティングノードによってローカルに処理されるべきか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプとを含む。
例7は例1から6のいずれかの主題を含み、(1)リモートコンピューティングデバイスからネットワークパケットを受信し、(2)5タプルの受信されたネットワークパケットを決定し、(3)5タプルの受信されたネットワークパケットと一致するフロータプルを含むネットワークフローエントリを複数のネットワークフローエントリから決定すべく、コンピューティングノードのローカルフローテーブルでフロールックアップ操作を実行し、(4)決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットがコンピューティングノードによってローカルに処理されるべきであることを示すか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すかを決定し、(5)決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットがコンピューティングノードによってローカルに処理されるべきであることを示すとの決定に応じて、ネットワークパケットを処理し、(6)決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットがクラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すとの決定に応じて、受信されたネットワークパケットをクラスタコンピューティングデバイスのネクストホップコンピューティングノードに転送する、フロー制御モジュールを更に含む。
例8は例1から7のいずれかの主題を含み、フロー制御モジュールは更に、受信されたネットワークパケットを処理するクラスタコンピューティングデバイスのネクストホップコンピューティングノードを決定する予定である。
例9は例1から8のいずれかの主題を含み、フロー制御モジュールは更に、複数のネクストホップエントリのうち一致するネクストホップエントリを決定すべく、決定されたネットワークフローエントリと関連付けられたネクストホップインデックスに応じて、コンピューティングノードのローカルネクストホップテーブルでネクストホップルックアップ操作を実行する予定であり、ネクストホップコンピューティングノードを決定することは、一致するネクストホップエントリに応じて、受信されたネットワークパケットを処理するクラスタコンピューティングデバイスのネクストホップコンピューティングノードを決定することを含む。
例10は例1から9のいずれかの主題を含み、フロー制御モジュールは更に、(1)コンピューティングノードのローカルネクストホップテーブルの一致するネクストホップエントリに基づいて、ネクストホップコンピューティングノードの媒体アクセス制御アドレスを決定し、(2)受信されたネットワークパケットの宛先媒体アクセス制御アドレスをネクストホップコンピューティングノードの決定された媒体アクセス制御アドレスと置き換える予定であり、受信されたネットワークパケットをネクストホップコンピューティングノードに転送することは、受信されたネットワークパケットの置き換えられた宛先媒体アクセス制御アドレスに基づいて、受信されたネットワークパケットをネクストホップコンピューティングノードに転送することを含む。
例11は、粗粒度の負荷分散と細粒度の負荷分散との間でブリッジする方法を含み、当該方法は、クラスタコンピューティングデバイスのコンピューティングノードが、複数のネットワークフローエントリをコンピューティングノードのローカルフローテーブルに格納する段階と、コンピューティングノードが、複数のネットワークフローエントリのうちの1または複数に関する転送情報を、コンピューティングノードのローカルネクストホップテーブルに格納する段階と、コンピューティングノードが、ネットワークコントローラからネットワークフロー情報を受信する段階と、コンピューティングノードが、ネットワークコントローラから受信されたネットワークフロー情報に基づいて、ネットワークフローエントリをコンピューティングノードのローカルフローテーブルに追加する段階と、コンピューティングノードが、ネットワークコントローラから受信されたネットワークフロー情報、及び、コンピューティングノードと関連付けられたインターネットプロトコルアドレスを含むマルチキャストネットワークパケットを生成する段階と、コンピューティングノードが、マルチキャストネットワークパケットに基づいて、異なるネットワークフローエントリを互いのコンピューティングノードのローカルフローテーブルに追加し、ネクストホップエントリを互いのコンピューティングノードのローカルネクストホップテーブルに追加することを促すべく、マルチキャストネットワークパケットをクラスタコンピューティングデバイスの互いのコンピューティングノードに送信する段階と、を含む。
例12は、例11の主題を含み、コンピューティングノードのローカルフローテーブルに追加されたネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、コンピューティングノードのローカルフローテーブルに格納された複数のネットワークフローエントリの互いのネットワークフローエントリから追加されたネットワークフローエントリを一意に識別するフロー識別子と、コンピューティングノードのローカルネクストホップテーブルにおける関連付けられたネクストホップエントリを識別するネクストホップインデックスと、ネットワークフローと関連付けられた複数のネットワークパケットが、コンピューティングノードによってローカルに処理されるべきか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプとを含む。
例13は例11および12のいずれかの主題を含み、ネットワークコントローラから受信されたネットワークフロー情報は、フロータプル及びフロー識別子を含む。
例14は例11から13のいずれかの主題を含み、コンピューティングノードが、ネットワークフローと関連付けられた複数のネットワークパケットがコンピューティングノードによってローカルに処理されるべきであることを示すべく、ローカルフローテーブルに追加されたネットワークフローエントリのネクストホップタイプを設定する段階と、コンピューティングノードが、ヌル値と共にローカルフローテーブルに追加されたネットワークフローエントリのネクストホップインデックスを設定する段階とを更に含む。
例15は、例11から14の主題を含み、コンピューティングノードが、クラスタコンピューティングデバイスの1または複数の他のコンピューティングノードと通信可能に連結された、コンピューティングノードのインターフェースと関連付けられたローカルインターネットプロトコルアドレスを決定する段階を更に含み、コンピューティングノードと関連付けられたインターネットプロトコルアドレスは、コンピューティングノードのインターフェースと関連付けられたローカルインターネットプロトコルアドレスを含む。
例16は例11から15のいずれかの主題を含み、コンピューティングノードのローカルフローテーブルの各ネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、コンピューティングノードのローカルフローテーブルに格納された複数のネットワークフローエントリの互いのネットワークフローエントリから、ネットワークフローエントリを一意に識別するフロー識別子と、ネットワークフローエントリと関連付けられたコンピューティングノードのローカルネクストホップテーブルに格納された複数のネクストホップエントリからネクストホップエントリを識別するネクストホップインデックスと、ネットワークフローと関連付けられた複数のネットワークパケットが、コンピューティングノードによってローカルに処理されるべきか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプとを含む。
例17は例11から16のいずれかの主題を含み、コンピューティングノードが、リモートコンピューティングデバイスからネットワークパケットを受信する段階と、コンピューティングノードが、5タプルの受信されたネットワークパケットを決定する段階と、コンピューティングノードが、5タプルの受信されたネットワークパケットと一致するフロータプルを含むネットワークフローエントリを複数のネットワークフローエントリから決定すべく、コンピューティングノードのローカルフローテーブルでフロールックアップ操作を実行する段階と、コンピューティングノードが、決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットがコンピューティングノードによってローカルに処理されるべきであることを示すか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すかを決定する段階と、コンピューティングノードが、決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットがコンピューティングノードによってローカルに処理されるべきであることを示すとの決定に応じて、ネットワークパケットを処理する段階と、コンピューティングノードが、決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットがクラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すとの決定に応じて、受信されたネットワークパケットをクラスタコンピューティングデバイスのネクストホップコンピューティングノードに転送する段階と、を更に含む。
例18は例11から17の主題を含み、コンピューティングノードが、受信されたネットワークパケットを処理するクラスタコンピューティングデバイスのネクストホップコンピューティングノードを決定する段階を更に含む。
例19は例11から18のいずれかの主題を含み、複数のネクストホップエントリのうち一致するネクストホップエントリを決定すべく、コンピューティングノードが、決定されたネットワークフローエントリと関連付けられたネクストホップインデックスに応じて、コンピューティングノードのローカルネクストホップテーブルでネクストホップルックアップ操作を実行する段階を更に含み、ネクストホップコンピューティングノードを決定する段階は、一致するネクストホップエントリに応じて、受信されたネットワークパケットを処理するクラスタコンピューティングデバイスのネクストホップコンピューティングノードを決定する段階を含む。
例20は、例11から19のいずれかの主題を含み、コンピューティングノードが、コンピューティングノードのローカルネクストホップテーブルの一致するネクストホップエントリに基づいて、ネクストホップコンピューティングノードの媒体アクセス制御アドレスを決定する段階と、コンピューティングノードが、受信されたネットワークパケットの宛先媒体アクセス制御アドレスをネクストホップコンピューティングノードの決定された媒体アクセス制御アドレスと置き換える段階と、を更に含み、受信されたネットワークパケットをネクストホップコンピューティングノードに転送する段階は、受信されたネットワークパケットの置き換えられた宛先媒体アクセス制御アドレスに基づいて、受信されたネットワークパケットをネクストホップコンピューティングノードに転送する段階を含む。
例21は、粗粒度の負荷分散と細粒度の負荷分散との間をブリッジするクラスタコンピューティングデバイスのコンピューティングノードを含み、コンピューティングノードは、プロセッサと、プロセッサによって実行された場合にコンピューティングノードに例11から20のいずれかの方法を実行させる複数の命令をその内部に格納したメモリとを備える。
例22は、実行されたことに応じて、結果としてクラスタコンピューティングデバイスのコンピューティングノードが例11から20のいずれかの方法を実行することになる、そこに格納された複数の命令を備える、1または複数の機械可読媒体を含む。
例23は、粗粒度の負荷分散と細粒度の負荷分散との間でブリッジするクラスタコンピューティングデバイスのコンピューティングノードを含み、コンピューティングノードは、複数のネットワークフローエントリをコンピューティングノードのローカルフローテーブルに格納する手段と、複数のネットワークフローエントリのうちの1または複数に関する転送情報を、コンピューティングノードのローカルネクストホップテーブルに格納する手段と、ネットワークコントローラからネットワークフロー情報を受信する手段と、ネットワークコントローラから受信されたネットワークフロー情報に基づいて、ネットワークフローエントリをコンピューティングノードのローカルフローテーブルに追加する手段と、ネットワークコントローラから受信されたネットワークフロー情報、及び、コンピューティングノードと関連付けられたインターネットプロトコルアドレスを含むマルチキャストネットワークパケットを生成する手段と、マルチキャストネットワークパケットに基づいて、異なるネットワークフローエントリを互いのコンピューティングノードのローカルフローテーブルに追加し、ネクストホップエントリを互いのコンピューティングノードのローカルネクストホップテーブルに追加することを促すべく、マルチキャストネットワークパケットをクラスタコンピューティングデバイスの互いのコンピューティングノードに送信する手段と、を備える。
例24は、例23の主題を含み、コンピューティングノードのローカルフローテーブルに追加されたネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、コンピューティングノードのローカルフローテーブルに格納された複数のネットワークフローエントリの互いのネットワークフローエントリから追加されたネットワークフローエントリを一意に識別するフロー識別子と、コンピューティングノードのローカルネクストホップテーブルにおける関連付けられたネクストホップエントリを識別するネクストホップインデックスと、ネットワークフローと関連付けられた複数のネットワークパケットが、コンピューティングノードによってローカルに処理されるべきか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプとを含む。
例25は例23および24のいずれかの主題を含み、ネットワークコントローラから受信されたネットワークフロー情報は、フロータプル及びフロー識別子を含む。
例26は例23から25のいずれかの主題を含み、ネットワークフローと関連付けられた複数のネットワークパケットがコンピューティングノードによってローカルに処理されるべきであることを示すべく、ローカルフローテーブルに追加されたネットワークフローエントリのネクストホップタイプを設定する手段と、ヌル値と共にローカルフローテーブルに追加されたネットワークフローエントリのネクストホップインデックスを設定する手段とを更に含む。
例27は例23から26のいずれかの主題を含み、クラスタコンピューティングデバイスの1または複数の他のコンピューティングノードと通信可能に連結された、コンピューティングノードのインターフェースと関連付けられたローカルインターネットプロトコルアドレスを決定する手段を更に含み、コンピューティングノードと関連付けられたインターネットプロトコルアドレスは、コンピューティングノードのインターフェースと関連付けられたローカルインターネットプロトコルアドレスを含む。
例28は例23から27のいずれかの主題を含み、コンピューティングノードのローカルフローテーブルの各ネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、コンピューティングノードのローカルフローテーブルに格納された複数のネットワークフローエントリの互いのネットワークフローエントリから、ネットワークフローエントリを一意に識別するフロー識別子と、ネットワークフローエントリと関連付けられたコンピューティングノードのローカルネクストホップテーブルに格納された複数のネクストホップエントリからネクストホップエントリを識別するネクストホップインデックスと、ネットワークフローと関連付けられた複数のネットワークパケットが、コンピューティングノードによってローカルに処理されるべきか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプとを含む。
例29は例23から28のいずれかの主題を含み、リモートコンピューティングデバイスからネットワークパケットを受信する手段と、5タプルの受信されたネットワークパケットを決定する手段と、5タプルの受信されたネットワークパケットと一致するフロータプルを含むネットワークフローエントリを複数のネットワークフローエントリから決定すべく、コンピューティングノードのローカルフローテーブルでフロールックアップ操作を実行する手段と、決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットがコンピューティングノードによってローカルに処理されるべきであることを示すか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すかを決定する手段と、決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットがコンピューティングノードによってローカルに処理されるべきであることを示すとの決定に応じて、ネットワークパケットを処理する手段と、決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットがクラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すとの決定に応じて、受信されたネットワークパケットをクラスタコンピューティングデバイスのネクストホップコンピューティングノードに転送する手段と、を更に含む。
例30は例23から29のいずれかの主題を含み、受信されたネットワークパケットを処理するクラスタコンピューティングデバイスのネクストホップコンピューティングノードを決定する手段を更に含む。
例31は例23から30のいずれかの主題を含み、複数のネクストホップエントリのうち一致するネクストホップエントリを決定すべく、決定されたネットワークフローと関連付けられたネクストホップインデックスに応じて、コンピューティングノードのローカルネクストホップテーブルでネクストホップルックアップ操作を実行する手段を更に含み、ネクストホップコンピューティングノードを決定する手段は、一致するネクストホップエントリに応じて、受信されたネットワークパケットを処理するクラスタコンピューティングデバイスのネクストホップコンピューティングノードを決定する手段を含む。
例32は例23から31のいずれかの主題を含み、コンピューティングノードのローカルネクストホップテーブルの一致するネクストホップエントリに基づいて、ネクストホップコンピューティングノードの媒体アクセス制御アドレスを決定する手段と、受信されたネットワークパケットの宛先媒体アクセス制御アドレスをネクストホップコンピューティングノードの決定された媒体アクセス制御アドレスと置き換える手段とを更に含み、受信されたネットワークパケットをネクストホップコンピューティングノードに転送する手段は、受信されたネットワークパケットの置き換えられた宛先媒体アクセス制御アドレスに基づいて、受信されたネットワークパケットをネクストホップコンピューティングノードに転送する手段を含む。
例33は粗粒度の負荷分散と細粒度の負荷分散との間をブリッジするクラスタコンピューティングデバイスのコンピューティングノードを含み、コンピューティングノードは、(1)クラスタコンピューティングデバイスの異なるコンピューティングノードから、異なるコンピューティングノードを示すネットワークフロー情報及びネクストホップ情報を含むマルチキャストネットワークパケットを受信し、(2)異なるコンピューティングノードから受信されたマルチキャストネットワークパケットからのネットワークフロー情報に基づいて、ネットワークフローエントリをコンピューティングノードのローカルフローテーブルに追加し、(3)異なるコンピューティングノードから受信されたマルチキャストネットワークパケットからのネクストホップ情報に基づいて、ネクストホップエントリをコンピューティングノードのローカルネクストホップテーブルに追加するフロー管理モジュールを含み、コンピューティングノードのローカルネクストホップテーブルに追加されたネクストホップエントリは、コンピューティングノードのローカルフローテーブルに追加されたネットワークフローエントリと関連付けられる。
例34は例33の主題を含み、コンピューティングノードのローカルネクストホップテーブルは、複数のネクストホップエントリを含み、複数のネクストホップエントリの各ネクストホップエントリは、ローカルフローテーブルの複数のネットワークフローエントリのうちの異なるネットワークフローエントリと関連付けられ、異なるコンピューティングノードから受信されたマルチキャストネットワークパケットのネクストホップ情報は、異なるコンピューティングノードと関連付けられたインターネットプロトコルアドレスを含み、コンピューティングノードのローカルネクストホップテーブルに追加されたネクストホップエントリは、異なるコンピューティングノードと関連付けられたインターネットプロトコルアドレスと、コンピューティングノードのローカルネクストホップテーブルに格納された複数のネクストホップエントリにおける互いのネクストホップエントリから、追加されたネクストホップエントリを一意に識別するネクストホップインデックスと、異なるコンピューティングノードと関連付けられたインターネットプロトコルアドレスに対応する媒体アクセス制御アドレスと、を含む。
例35は例33および34のいずれかの主題を含み、フロー管理モジュールは更に、(1)異なるコンピューティングノードと関連付けられたインターネットプロトコルアドレスに対応する媒体アクセス制御アドレスを決定し、(2)決定された媒体アクセス制御アドレスと共にローカルネクストホップテーブルに追加されたネクストホップエントリの媒体アクセス制御アドレスを設定する。
例36は例33から35のいずれかの主題を含み、コンピューティングノードのローカルフローテーブルに追加されたネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、コンピューティングノードのローカルフローテーブルに格納された複数のネットワークフローエントリの互いのネットワークフローエントリから、追加されたネットワークフローエントリを一意に識別するフロー識別子と、コンピューティングノードのローカルフローテーブルに追加されたネットワークフローエントリと関連付けられたローカルネクストホップテーブルにおける複数のネクストホップエントリからネクストホップエントリを一意に識別するネクストホップインデックスと、ネットワークフローと関連付けられた複数のネットワークパケットが、コンピューティングノードによってローカルに処理されるべきか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプと、を含む。
例37は例33から36のいずれかの主題を含み、異なるコンピューティングノードから受信されたマルチキャストネットワークパケットのネットワークフロー情報は、フロータプル及びフロー識別子を含む。
例38は例33から37のいずれかの主題を含み、フロー管理モジュールは更に、異なるコンピューティングノードからのマルチキャストネットワークパケットの受信に応答して、ネットワークフローと関連付けられた複数のネットワークパケットがクラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔からから処理されるべきであることを示すべく、ローカルフローテーブルに追加されたネットワークフローエントリのネクストホップタイプを設定する予定である。
例39は例33から38のいずれかの主題を含み、ローカルフローテーブルは複数のネットワークフローエントリを含み、コンピューティングノードのローカルフローテーブルの各ネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、コンピューティングノードのローカルフローテーブルに格納された複数のネットワークフローエントリの互いのネットワークフローエントリから、ネットワークフローエントリを一意に識別するフロー識別子と、ネットワークフローエントリと関連付けられたローカルネクストホップテーブルの複数のネクストホップエントリからネクストホップエントリを一意に識別するネクストホップインデックスと、ネットワークフローと関連付けられた複数のネットワークパケットが、コンピューティングノードによってローカルに処理されるべきか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプとを含む。
例40は例33から39のいずれかの主題を含み、(1)リモートコンピューティングデバイスからネットワークパケットを受信し、(2)5タプルの受信されたネットワークパケットを決定し、(3)5タプルの受信されたネットワークパケットと一致するフロータプルを含むネットワークフローエントリを複数のネットワークフローエントリから決定すべく、コンピューティングノードのローカルフローテーブルでフロールックアップ操作を実行し、(4)決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットがコンピューティングノードによってローカルに処理されるべきであることを示すか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すかを決定し、(5)決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットがコンピューティングノードによってローカルに処理されるべきであることを示すとの決定に応じて、ネットワークパケットを処理し、(6)決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットがクラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すとの決定に応じて、受信されたネットワークパケットをクラスタコンピューティングデバイスのネクストホップコンピューティングノードに転送する、フロー制御モジュールを更に含む。
例41は例33から40のいずれかの主題を含み、フロー制御モジュールは更に、受信されたネットワークパケットを処理するクラスタコンピューティングデバイスのネクストホップコンピューティングノードを決定する予定である。
例42は例33から41のいずれかの主題を含み、フロー制御モジュールは更に、複数のネクストホップエントリのうち一致するネクストホップエントリを決定すべく、決定されたネットワークフローエントリと関連付けられたネクストホップインデックスに応じて、コンピューティングノードのローカルネクストホップテーブルでネクストホップルックアップ操作を実行する予定であり、ネクストホップコンピューティングノードを決定することは、一致するネクストホップエントリに応じて、受信されたネットワークパケットを処理するクラスタコンピューティングデバイスのネクストホップコンピューティングノードを決定することを含む。
例43は例33から42のいずれかの主題を含み、ネクストホップコンピューティングノードを決定することは、ローカルネクストホップテーブルに追加されたネクストホップエントリに一致することに基づいて、異なるコンピューティングノードがネクストホップコンピューティングノードであると決定することを含む。
例44は粗粒度の負荷分散と細粒度の負荷分散との間をブリッジする方法を含み、当該方法は、クラスタコンピューティングデバイスの第1コンピューティングノードが、クラスタコンピューティングデバイスの第2コンピューティングノードから、第2コンピューティングノードを示すネットワークフロー情報及びネクストホップ情報を含むマルチキャストネットワークパケットを受信する段階と、第1コンピューティングノードが、第2コンピューティングノードから受信されたマルチキャストネットワークパケットからのネットワークフロー情報に基づいて、ネットワークフローエントリを第1コンピューティングノードのローカルフローテーブルに追加する段階と、第1コンピューティングノードが、第2コンピューティングノードから受信されたマルチキャストネットワークパケットからのネクストホップ情報に基づいて、ネクストホップエントリを第1コンピューティングノードのローカルネクストホップテーブルに追加する段階と、を含み、第1コンピューティングノードのローカルネクストホップテーブルに追加されたネクストホップエントリは、第1コンピューティングノードのローカルフローテーブルに追加されたネットワークフローエントリと関連付けられる。
例45は例44の主題を含み、第1コンピューティングノードのローカルネクストホップテーブルは、複数のネクストホップエントリを含み、複数のネクストホップエントリの各ネクストホップエントリは、ローカルフローテーブルの複数のネットワークフローエントリのうちの異なるネットワークフローエントリと関連付けられ、第2コンピューティングノードから受信されたマルチキャストネットワークパケットのネクストホップ情報は、第2コンピューティングノードと関連付けられたインターネットプロトコルアドレスを含み、第1コンピューティングノードのローカルネクストホップテーブルに追加されたネクストホップエントリは、第2コンピューティングノードと関連付けられたインターネットプロトコルアドレスと、第1コンピューティングノードのローカルネクストホップテーブルに格納された複数のネクストホップエントリにおける互いのネクストホップエントリから、追加されたネクストホップエントリを一意に識別するネクストホップインデックスと、第2コンピューティングノードと関連付けられたインターネットプロトコルアドレスに対応する媒体アクセス制御アドレスと、を含む。
例46は例44および45の主題を含み、第1コンピューティングノードが、第2コンピューティングノードと関連付けられたインターネットプロトコルアドレスに対応する媒体アクセス制御アドレスを決定する段階と、第1コンピューティングノードが、決定された媒体アクセス制御アドレスと共にローカルネクストホップテーブルに追加されたネクストホップエントリの媒体アクセス制御アドレスを設定する段階と、を更に含む。
例47は例44から46のいずれかの主題を含み、第1コンピューティングノードのローカルフローテーブルに追加されたネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、第1コンピューティングノードのローカルフローテーブルに格納された複数のネットワークフローエントリの互いのネットワークフローエントリから、追加されたネットワークフローエントリを一意に識別するフロー識別子と、第1コンピューティングノードのローカルフローテーブルに追加されたネットワークフローエントリと関連付けられたローカルネクストホップテーブルにおける複数のネクストホップエントリからネクストホップエントリを一意に識別するネクストホップインデックスと、ネットワークフローと関連付けられた複数のネットワークパケットが、第1コンピューティングノードによってローカルに処理されるべきか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプと、を含む。
例48は例44から47のいずれかの主題を含み、第2コンピューティングノードから受信されたマルチキャストネットワークパケットのネットワークフロー情報は、フロータプル及びフロー識別子を含む。
例49は例44から48のいずれかの主題を含み、第1コンピューティングノードが、第2コンピューティングノードからのマルチキャストネットワークパケットの受信に応答して、ネットワークフローと関連付けられた複数のネットワークパケットがクラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔からから処理されるべきであることを示すべく、ローカルフローテーブルに追加されたネットワークフローエントリのネクストホップタイプを設定する段階を更に含む。
例50は例44から49のいずれかの主題を含み、ローカルフローテーブルは複数のネットワークフローエントリを含み、第1コンピューティングノードのローカルフローテーブルの各ネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、第1コンピューティングノードのローカルフローテーブルに格納された複数のネットワークフローエントリの互いのネットワークフローエントリから、ネットワークフローエントリを一意に識別するフロー識別子と、ネットワークフローエントリと関連付けられたローカルネクストホップテーブルの複数のネクストホップエントリからネクストホップエントリを一意に識別するネクストホップインデックスと、ネットワークフローと関連付けられた複数のネットワークパケットが、第1コンピューティングノードによってローカルに処理されるべきか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプとを含む。
例51は例44から50のいずれかの主題を含み、第1コンピューティングノードが、リモートコンピューティングデバイスからネットワークパケットを受信する段階と、第1コンピューティングノードが、5タプルの受信されたネットワークパケットを決定する段階と、第1コンピューティングノードが、5タプルの受信されたネットワークパケットと一致するフロータプルを含むネットワークフローエントリを複数のネットワークフローエントリから決定すべく、第1コンピューティングノードのローカルフローテーブルでフロールックアップ操作を実行する段階と、第1コンピューティングノードが、決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットが第1コンピューティングノードによってローカルに処理されるべきであることを示すか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すかを決定する段階と、第1コンピューティングノードが、決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットがコンピューティングノードによってローカルに処理されるべきであることを示すとの決定に応じて、ネットワークパケットを処理する段階と、第1コンピューティングノードが、決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットがクラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すとの決定に応じて、受信されたネットワークパケットをクラスタコンピューティングデバイスのネクストホップコンピューティングノードに転送する段階と、を更に含む。
例52は例44から51の主題を含み、第1コンピューティングノードが、受信されたネットワークパケットを処理するクラスタコンピューティングデバイスのネクストホップコンピューティングノードを決定する段階を更に含む。
例53は例44から52のいずれかの主題を含み、複数のネクストホップエントリのうち一致するネクストホップエントリを決定すべく、第1コンピューティングノードが、決定されたネットワークフローエントリと関連付けられたネクストホップインデックスに応じて、第1コンピューティングノードのローカルネクストホップテーブルでネクストホップルックアップ操作を実行する段階を更に含み、ネクストホップコンピューティングノードを決定する段階は、一致するネクストホップエントリに応じて、受信されたネットワークパケットを処理するクラスタコンピューティングデバイスのネクストホップコンピューティングノードを決定する段階を含む。
例54は例44から53のいずれかの主題を含み、ネクストホップコンピューティングノードを決定する段階は、ローカルネクストホップテーブルに追加されたネクストホップエントリに一致することに基づいて、第2コンピューティングノードがネクストホップコンピューティングノードであると決定する段階を含む。
例55は、粗粒度の負荷分散と細粒度の負荷分散との間をブリッジするクラスタコンピューティングデバイスのコンピューティングノードを含み、コンピューティングノードは、プロセッサと、プロセッサによって実行された場合にコンピューティングノードに例44から54のいずれかの方法を実行させる複数の命令をその内部に格納したメモリとを備える。
例56は、実行されたことに応じて、結果としてクラスタコンピューティングデバイスのコンピューティングノードが例44から54のいずれかの方法を実行することになる、そこに格納された複数の命令を備える、1または複数の機械可読媒体を含む。
例57は粗粒度の負荷分散と細粒度の負荷分散との間をブリッジするクラスタコンピューティングデバイスのコンピューティングノードを含み、コンピューティングノードは、クラスタコンピューティングデバイスの異なるコンピューティングノードから、異なるコンピューティングノードを示すネットワークフロー情報及びネクストホップ情報を含むマルチキャストネットワークパケットを受信する手段と、異なるコンピューティングノードから受信されたマルチキャストパケットからのネットワークフロー情報に基づいて、ネットワークフローエントリをコンピューティングノードのローカルフローテーブルに追加する手段と、異なるコンピューティングノードから受信されたマルチキャストパケットからのネクストホップ情報に基づいて、ネクストホップエントリをコンピューティングノードのローカルネクストホップテーブルに追加する手段と、を含み、コンピューティングノードのローカルネクストホップテーブルに追加されたネクストホップエントリは、コンピューティングノードのローカルフローテーブルに追加されたネットワークフローエントリと関連付けられる。
例58は例57の主題を含み、コンピューティングノードのローカルネクストホップテーブルは、複数のネクストホップエントリを含み、複数のネクストホップエントリの各ネクストホップエントリは、ローカルフローテーブルの複数のネットワークフローエントリのうちの異なるネットワークフローエントリと関連付けられ、異なるコンピューティングノードから受信されたマルチキャストネットワークパケットのネクストホップ情報は、異なるコンピューティングノードと関連付けられたインターネットプロトコルアドレスを含み、コンピューティングノードのローカルネクストホップテーブルに追加されたネクストホップエントリは、異なるコンピューティングノードと関連付けられたインターネットプロトコルアドレスと、コンピューティングノードのローカルネクストホップテーブルに格納された複数のネクストホップエントリにおける互いのネクストホップエントリから、追加されたネクストホップエントリを一意に識別するネクストホップインデックスと、異なるコンピューティングノードと関連付けられたインターネットプロトコルアドレスに対応する媒体アクセス制御アドレスと、を含む。
例59は例57および58のいずれかの主題を含み、異なるコンピューティングノードと関連付けられたインターネットプロトコルアドレスに対応する媒体アクセス制御アドレスを決定する手段と、決定された媒体アクセス制御アドレスと共にローカルネクストホップテーブルに追加されたネクストホップエントリの媒体アクセス制御アドレスを設定する手段と、を更に含む。
例60は例57から59のいずれかの主題を含み、コンピューティングノードのローカルフローテーブルに追加されたネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、コンピューティングノードのローカルフローテーブルに格納された複数のネットワークフローエントリの互いのネットワークフローエントリから、追加されたネットワークフローエントリを一意に識別するフロー識別子と、コンピューティングノードのローカルフローテーブルに追加されたネットワークフローエントリと関連付けられたローカルネクストホップテーブルにおける複数のネクストホップエントリからネクストホップエントリを一意に識別するネクストホップインデックスと、ネットワークフローと関連付けられた複数のネットワークパケットが、コンピューティングノードによってローカルに処理されるべきか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプと、を含む。
例61は例57から60のいずれかの主題を含み、異なるコンピューティングノードから受信されたマルチキャストパケットから受信されたネットワークフロー情報は、フロータプル及びフロー識別子を含む。
例62は例57から61のいずれかの主題を含み、異なるコンピューティングノードからのマルチキャストネットワークパケットの受信に応答して、ネットワークフローと関連付けられた複数のネットワークパケットがクラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔からから処理されるべきであることを示すべく、ローカルフローテーブルに追加されたネットワークフローエントリのネクストホップタイプを設定する手段を更に含む。
例63は例57から62のいずれかの主題を含み、ローカルフローテーブルは複数のネットワークフローエントリを含み、コンピューティングノードのローカルフローテーブルの各ネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、コンピューティングノードのローカルフローテーブルに格納された複数のネットワークフローエントリの互いのネットワークフローエントリから、ネットワークフローエントリを一意に識別するフロー識別子と、ネットワークフローエントリと関連付けられたローカルネクストホップテーブルの複数のネクストホップエントリからネクストホップエントリを一意に識別するネクストホップインデックスと、ネットワークフローと関連付けられた複数のネットワークパケットが、コンピューティングノードによってローカルに処理されるべきか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプとを含む。
例64は例57から63のいずれかの主題を含み、リモートコンピューティングデバイスからネットワークパケットを受信する手段と、5タプルの受信されたネットワークパケットを決定する手段と、5タプルの受信されたネットワークパケットと一致するフロータプルを含むネットワークフローエントリを複数のネットワークフローエントリから決定すべく、コンピューティングノードのローカルフローテーブルでフロールックアップ操作を実行する手段と、決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットがコンピューティングノードによってローカルに処理されるべきであることを示すか、又は、クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すかを決定する手段と、決定されたネットワークフローエントリと関連付けられたネクストホップタイプが、ネットワークフローと関連付けられた複数のネットワークパケットがコンピューティングノードによってローカルに処理されるべきであることを示すとの決定に応じて、ネットワークパケットを処理する手段と、決定されたネットワークフローエントリと関連付けられたネクストホップエントリが、ネットワークフローと関連付けられた複数のネットワークパケットがクラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すとの決定に応じて、受信されたネットワークパケットをクラスタコンピューティングデバイスのネクストホップコンピューティングノードに転送する手段と、を更に含む。
例65は例57から64のいずれかの主題を含み、受信されたネットワークパケットを処理するクラスタコンピューティングデバイスのネクストホップコンピューティングノードを決定する手段を更に含む。
例66は例57から65のいずれかの主題を含み、複数のネクストホップエントリのうち一致するネクストホップエントリを決定すべく、決定されたネットワークフローエントリと関連付けられたネクストホップインデックスに応じて、コンピューティングノードのローカルネクストホップテーブルでネクストホップルックアップ操作を実行する手段を更に含み、ネクストホップコンピューティングノードを決定する手段は、一致するネクストホップエントリに応じて、受信されたネットワークパケットを処理するクラスタコンピューティングデバイスのネクストホップコンピューティングノードを決定する手段を含む。
例67は例57から66のいずれかの主題を含み、ネクストホップコンピューティングノードを決定する手段は、ローカルネクストホップテーブルに追加されたネクストホップエントリと一致することに基づいて、異なるコンピューティングノードがネクストホップコンピューティングノードであると決定する手段を含む。

Claims (25)

  1. 粗粒度の負荷分散と細粒度の負荷分散との間でブリッジするクラスタコンピューティングデバイスのコンピューティングノードであって、
    (1)複数のネットワークフローエントリを格納するローカルフローテーブルと、(2)前記複数のネットワークフローエントリのうちの1または複数に関する転送情報を格納するローカルネクストホップテーブルとを含むメモリと、
    (1)ネットワークコントローラからネットワークフロー情報を受信し、(2)前記ネットワークコントローラから受信された前記ネットワークフロー情報に基づいてネットワークフローエントリを前記ローカルフローテーブルに追加し、(3)前記ネットワークコントローラから受信された前記ネットワークフロー情報と、前記コンピューティングノードと関連付けられたインターネットプロトコルアドレスとを含むマルチキャストネットワークパケットを生成し、(4)前記マルチキャストネットワークパケットに基づいて、異なるネットワークフローエントリを互いのコンピューティングノードのローカルフローテーブルに追加すること、及び、ネクストホップエントリを互いのコンピューティングノードのローカルネクストホップテーブルに追加することを促すべく、前記マルチキャストネットワークパケットを前記クラスタコンピューティングデバイスの互いのコンピューティングノードに送信するフロー管理モジュールと
    を備える、コンピューティングノード。
  2. 前記コンピューティングノードの前記ローカルフローテーブルに追加された前記ネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、前記コンピューティングノードの前記ローカルフローテーブルに格納された前記複数のネットワークフローエントリの互いのネットワークフローエントリから前記追加されたネットワークフローエントリを一意に識別するフロー識別子と、前記コンピューティングノードの前記ローカルネクストホップテーブルにおける関連付けられたネクストホップエントリを識別するネクストホップインデックスと、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが、前記コンピューティングノードによってローカルに処理されるべきか、又は、前記クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプとを含み、
    前記ネットワークコントローラから受信された前記ネットワークフロー情報は、前記フロータプル及び前記フロー識別子を含む、請求項1に記載のコンピューティングノード。
  3. 前記フロー管理モジュールは更に、(1)前記ネットワークフローと関連付けられた前記複数のネットワークパケットが前記コンピューティングノードによってローカルに処理されるべきであることを示すべく、前記ローカルフローテーブルに追加された前記ネットワークフローエントリの前記ネクストホップタイプを設定し、(2)前記ローカルフローテーブルに追加された前記ネットワークフローエントリの前記ネクストホップインデックスをヌル値で設定する、請求項2に記載のコンピューティングノード。
  4. 前記フロー管理モジュールは更に、前記クラスタコンピューティングデバイスの1または複数の他のコンピューティングノードと通信可能に連結された、前記コンピューティングノードのインターフェースと関連付けられたローカルインターネットプロトコルアドレスを決定し、
    前記コンピューティングノードと関連付けられた前記インターネットプロトコルアドレスは、前記コンピューティングノードの前記インターフェースと関連付けられた前記ローカルインターネットプロトコルアドレスを含む、請求項1または2に記載のコンピューティングノード。
  5. 前記コンピューティングノードの前記ローカルフローテーブルの各ネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、前記コンピューティングノードの前記ローカルフローテーブルに格納された前記複数のネットワークフローエントリの互いのネットワークフローエントリから、前記ネットワークフローエントリを一意に識別するフロー識別子と、前記ネットワークフローエントリと関連付けられた前記コンピューティングノードの前記ローカルネクストホップテーブルに格納された複数のネクストホップエントリからネクストホップエントリを識別するネクストホップインデックスと、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが、前記コンピューティングノードによってローカルに処理されるべきか、又は、前記クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプとを含む、請求項1に記載のコンピューティングノード。
  6. (1)リモートコンピューティングデバイスからネットワークパケットを受信し、(2)5タプルの前記受信されたネットワークパケットを決定し、(3)前記5タプルの受信されたネットワークパケットと一致する前記フロータプルを含む前記複数のネットワークフローエントリのうちのネットワークフローエントリを決定すべく、前記コンピューティングノードの前記ローカルフローテーブルでフロールックアップ操作を実行し、(4)前記決定されたネットワークフローエントリと関連付けられた前記ネクストホップタイプが、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが前記コンピューティングノードによってローカルに処理されるべきであることを示すか、又は、前記クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すかを決定し、(5)前記決定されたネットワークフローエントリと関連付けられた前記ネクストホップタイプが、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが前記コンピューティングノードによってローカルに処理されるべきであることを示すとの決定に応じて、前記ネットワークパケットを処理し、(6)前記決定されたネットワークフローエントリと関連付けられた前記ネクストホップタイプが、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが前記クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すとの決定に応じて、前記受信されたネットワークパケットを前記クラスタコンピューティングデバイスのネクストホップコンピューティングノードに転送する、フロー制御モジュールを更に備える、請求項5に記載のコンピューティングノード。
  7. 前記フロー制御モジュールは更に、(1)前記複数のネクストホップエントリのうち一致するネクストホップエントリを決定すべく、前記決定されたネットワークフローエントリと関連付けられた前記ネクストホップインデックスに応じて、前記コンピューティングノードの前記ローカルネクストホップテーブルでネクストホップルックアップ操作を実行し、(2)前記一致するネクストホップエントリに応じて、前記受信されたネットワークパケットを処理する前記クラスタコンピューティングデバイスの前記ネクストホップコンピューティングノードを決定する、請求項6に記載のコンピューティングノード。
  8. 前記フロー制御モジュールは更に、(1)前記コンピューティングノードの前記ローカルネクストホップテーブルの前記一致するネクストホップエントリに基づいて、前記ネクストホップコンピューティングノードの媒体アクセス制御アドレスを決定し、(2)前記受信されたネットワークパケットの宛先媒体アクセス制御アドレスを前記ネクストホップコンピューティングノードの前記決定された媒体アクセス制御アドレスと置き換え、
    前記受信されたネットワークパケットを前記ネクストホップコンピューティングノードに転送することは、前記受信されたネットワークパケットの前記置き換えられた宛先媒体アクセス制御アドレスに基づいて、前記受信されたネットワークパケットを前記ネクストホップコンピューティングノードに転送することを含む、請求項7に記載のコンピューティングノード。
  9. 粗粒度の負荷分散と細粒度の負荷分散との間でブリッジする方法であって、
    クラスタコンピューティングデバイスのコンピューティングノードが、複数のネットワークフローエントリを前記コンピューティングノードのローカルフローテーブルに格納する段階と、
    前記コンピューティングノードが、前記複数のネットワークフローエントリのうちの1または複数に関する転送情報を、前記コンピューティングノードのローカルネクストホップテーブルに格納する段階と、
    前記コンピューティングノードが、ネットワークコントローラからネットワークフロー情報を受信する段階と、
    前記コンピューティングノードが、前記ネットワークコントローラから受信された前記ネットワークフロー情報に基づいて、ネットワークフローエントリを前記コンピューティングノードの前記ローカルフローテーブルに追加する段階と、
    前記コンピューティングノードが、前記ネットワークコントローラから受信された前記ネットワークフロー情報、及び、前記コンピューティングノードと関連付けられたインターネットプロトコルアドレスを含むマルチキャストネットワークパケットを生成する段階と、
    前記コンピューティングノードが、前記マルチキャストネットワークパケットに基づいて、異なるネットワークフローエントリを互いのコンピューティングノードのローカルフローテーブルに追加し、ネクストホップエントリを互いのコンピューティングノードのローカルネクストホップテーブルに追加することを促すべく、前記マルチキャストネットワークパケットを前記クラスタコンピューティングデバイスの互いのコンピューティングノードに送信する段階と
    を含む方法。
  10. 前記コンピューティングノードの前記ローカルフローテーブルに追加された前記ネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、前記コンピューティングノードの前記ローカルフローテーブルに格納された前記複数のネットワークフローエントリの互いのネットワークフローエントリから前記追加されたネットワークフローエントリを一意に識別するフロー識別子と、前記コンピューティングノードの前記ローカルネクストホップテーブルにおける関連付けられたネクストホップエントリを識別するネクストホップインデックスと、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが、前記コンピューティングノードによってローカルに処理されるべきか、又は、前記クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプとを含む、請求項9に記載の方法。
  11. 前記コンピューティングノードの前記ローカルフローテーブルの各ネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、前記コンピューティングノードの前記ローカルフローテーブルに格納された前記複数のネットワークフローエントリの互いのネットワークフローエントリから、前記ネットワークフローエントリを一意に識別するフロー識別子と、前記ネットワークフローエントリと関連付けられた前記コンピューティングノードの前記ローカルネクストホップテーブルに格納された複数のネクストホップエントリからネクストホップエントリを識別するネクストホップインデックスと、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが、前記コンピューティングノードによってローカルに処理されるべきか、又は、前記クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプとを含む、請求項9に記載の方法。
  12. 前記コンピューティングノードが、リモートコンピューティングデバイスからネットワークパケットを受信する段階と、
    前記コンピューティングノードが、5タプルの前記受信されたネットワークパケットを決定する段階と、
    前記コンピューティングノードが、前記5タプルの前記受信されたネットワークパケットと一致する前記フロータプルを含む前記複数のネットワークフローエントリのうちのネットワークフローエントリを決定すべく、前記コンピューティングノードの前記ローカルフローテーブルでフロールックアップ操作を実行する段階と、
    前記コンピューティングノードが、前記決定されたネットワークフローエントリと関連付けられた前記ネクストホップタイプが、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが前記コンピューティングノードによってローカルに処理されるべきであることを示すか、又は、前記クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すかを決定する段階と、
    前記コンピューティングノードが、前記決定されたネットワークフローエントリと関連付けられた前記ネクストホップタイプが、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが前記コンピューティングノードによってローカルに処理されるべきであることを示すとの決定に応じて、前記ネットワークパケットを処理する段階と、
    前記コンピューティングノードが、前記決定されたネットワークフローエントリと関連付けられた前記ネクストホップタイプが、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが前記クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すとの決定に応じて、前記受信されたネットワークパケットを前記クラスタコンピューティングデバイスのネクストホップコンピューティングノードに転送する段階と
    を更に含む、請求項11に記載の方法。
  13. 前記コンピューティングノードが、前記複数のネクストホップエントリのうち一致するネクストホップエントリを決定すべく、前記決定されたネットワークフローエントリと関連付けられた前記ネクストホップインデックスに応じて、前記コンピューティングノードの前記ローカルネクストホップテーブルでネクストホップルックアップ操作を実行する段階と、
    前記コンピューティングノードが、前記一致するネクストホップエントリに応じて、前記受信されたネットワークパケットを処理する前記クラスタコンピューティングデバイスの前記ネクストホップコンピューティングノードを決定する段階と
    を更に含む、請求項12に記載の方法。
  14. コンピューティングノードに、請求項9から13のいずれか一項に記載の方法を実行させるためのプログラム。
  15. 粗粒度の負荷分散と細粒度の負荷分散との間でブリッジするクラスタコンピューティングデバイスのコンピューティングノードであって、
    複数のネットワークフローエントリを前記コンピューティングノードのローカルフローテーブルに格納する手段と、
    前記複数のネットワークフローエントリのうちの1または複数に関する転送情報を、前記コンピューティングノードのローカルネクストホップテーブルに格納する手段と、
    ネットワークコントローラからネットワークフロー情報を受信する手段と、
    前記ネットワークコントローラから受信された前記ネットワークフロー情報に基づいて、ネットワークフローエントリを前記コンピューティングノードの前記ローカルフローテーブルに追加する手段と、
    前記ネットワークコントローラから受信された前記ネットワークフロー情報、及び、前記コンピューティングノードと関連付けられたインターネットプロトコルアドレスを含むマルチキャストネットワークパケットを生成する手段と、
    前記マルチキャストネットワークパケットに基づいて、異なるネットワークフローエントリを互いのコンピューティングノードのローカルフローテーブルに追加し、ネクストホップエントリを互いのコンピューティングノードのローカルネクストホップテーブルに追加することを促すべく、前記マルチキャストネットワークパケットを前記クラスタコンピューティングデバイスの互いのコンピューティングノードに送信する手段と
    を備えるコンピューティングノード。
  16. 前記コンピューティングノードの前記ローカルフローテーブルの各ネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、前記コンピューティングノードの前記ローカルフローテーブルに格納された前記複数のネットワークフローエントリの互いのネットワークフローエントリから前記ネットワークフローエントリを一意に識別するフロー識別子と、前記ネットワークフローエントリと関連付けられた前記コンピューティングノードの前記ローカルネクストホップテーブルに格納された複数のネクストホップエントリからネクストホップエントリを識別するネクストホップインデックスと、前記ネットワークフローと関連付けられた複数のネットワークパケットが、前記コンピューティングノードによってローカルに処理されるべきか、又は、前記クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプと、を含み、
    リモートコンピューティングデバイスからネットワークパケットを受信する手段と、
    5タプルの前記受信されたネットワークパケットを決定する手段と、
    前記5タプルの前記受信されたネットワークパケットと一致する前記フロータプルを含む、前記複数のネットワークフローエントリのうちのネットワークフローエントリを決定すべく、前記コンピューティングノードの前記ローカルフローテーブルでフロールックアップ操作を実行する手段と、
    前記決定されたネットワークフローエントリと関連付けられた前記ネクストホップタイプが、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが、前記コンピューティングノードによってローカルに処理されるべきであることを示すか、又は、前記クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すか、を決定する手段と、
    前記決定されたネットワークフローエントリと関連付けられた前記ネクストホップタイプが、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが前記コンピューティングノードによってローカルに処理されるべきであることを示すとの決定に応じて、前記ネットワークパケットを処理する手段と、
    前記決定されたネットワークフローエントリと関連付けられた前記ネクストホップタイプが、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが前記クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すとの決定に応じて、前記受信されたネットワークパケットを前記クラスタコンピューティングデバイスのネクストホップコンピューティングノードに転送する手段と
    を更に含む、請求項15に記載のコンピューティングノード。
  17. 粗粒度の負荷分散と細粒度の負荷分散との間をブリッジするクラスタコンピューティングデバイスのコンピューティングノードであって、
    (1)前記クラスタコンピューティングデバイスの異なるコンピューティングノードから、前記異なるコンピューティングノードを示すネクストホップ情報及びネットワークフロー情報を含むマルチキャストネットワークパケットを受信し、(2)前記異なるコンピューティングノードから受信された前記マルチキャストネットワークパケットからの前記ネットワークフロー情報に基づいて、ネットワークフローエントリを前記コンピューティングノードのローカルフローテーブルに追加し、(3)前記異なるコンピューティングノードから受信された前記マルチキャストネットワークパケットからの前記ネクストホップ情報に基づいて、ネクストホップエントリを前記コンピューティングノードのローカルネクストホップテーブルに追加するフロー管理モジュールを備え、前記コンピューティングノードの前記ローカルネクストホップテーブルに追加された前記ネクストホップエントリは、前記コンピューティングノードの前記ローカルフローテーブルに追加された前記ネットワークフローエントリと関連付けられる、コンピューティングノード。
  18. 前記コンピューティングノードの前記ローカルネクストホップテーブルは、複数のネクストホップエントリを含み、前記複数のネクストホップエントリの各ネクストホップエントリは、前記ローカルフローテーブルの複数のネットワークフローエントリのうちの異なるネットワークフローエントリと関連付けられ、
    前記異なるコンピューティングノードから受信された前記マルチキャストネットワークパケットの前記ネクストホップ情報は、前記異なるコンピューティングノードと関連付けられたインターネットプロトコルアドレスを含み、
    前記コンピューティングノードの前記ローカルネクストホップテーブルに追加された前記ネクストホップエントリは、前記異なるコンピューティングノードと関連付けられた前記インターネットプロトコルアドレスと、前記コンピューティングノードの前記ローカルネクストホップテーブルに格納された前記複数のネクストホップエントリにおける互いのネクストホップエントリから、前記追加されたネクストホップエントリを一意に識別するネクストホップインデックスと、前記異なるコンピューティングノードと関連付けられた前記インターネットプロトコルアドレスに対応する媒体アクセス制御アドレスと、を含む、請求項17に記載のコンピューティングノード。
  19. 前記フロー管理モジュールは更に、(1)前記異なるコンピューティングノードと関連付けられた前記インターネットプロトコルアドレスに対応する前記媒体アクセス制御アドレスを決定し、(2)前記決定された媒体アクセス制御アドレスと共に前記ローカルネクストホップテーブルに追加された前記ネクストホップエントリの前記媒体アクセス制御アドレスを設定する、請求項18に記載のコンピューティングノード。
  20. 前記コンピューティングノードの前記ローカルフローテーブルに追加された前記ネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、前記コンピューティングノードの前記ローカルフローテーブルに格納された前記複数のネットワークフローエントリの互いのネットワークフローエントリから前記追加されたネットワークフローエントリを一意に識別するフロー識別子と、前記コンピューティングノードの前記ローカルフローテーブルに追加された前記ネットワークフローエントリと関連付けられた前記ローカルネクストホップテーブルの前記複数のネクストホップエントリから前記ネクストホップエントリを一意に識別する前記ネクストホップインデックスと、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが、前記コンピューティングノードによってローカルに処理されるべきか、又は、前記クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプと、を含み、
    前記異なるコンピューティングノードから受信された前記マルチキャストネットワークパケットの前記ネットワークフロー情報は、前記フロータプル及び前記フロー識別子を含む、
    請求項18に記載のコンピューティングノード。
  21. 前記フロー管理モジュールは更に、前記異なるコンピューティングノードからの前記マルチキャストネットワークパケットの受信に応答して、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが前記クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すべく、前記ローカルフローテーブルに追加された前記ネットワークフローエントリの前記ネクストホップタイプを設定する、請求項20に記載のコンピューティングノード。
  22. 前記ローカルフローテーブルは複数のネットワークフローエントリを含み、前記コンピューティングノードの前記ローカルフローテーブルの各ネットワークフローエントリは、ネットワークフローと関連付けられた複数のネットワークパケットの発信元及び宛先を示すフロータプルと、前記コンピューティングノードの前記ローカルフローテーブルに格納された前記複数のネットワークフローエントリの互いのネットワークフローエントリから、前記ネットワークフローエントリを一意に識別するフロー識別子と、前記ネットワークフローエントリと関連付けられた前記ローカルネクストホップテーブルの複数のネクストホップエントリからネクストホップエントリを一意に識別するネクストホップインデックスと、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが、前記コンピューティングノードによってローカルに処理されるべきか、又は、前記クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきかを示すネクストホップタイプとを含む、請求項17に記載のコンピューティングノード。
  23. (1)リモートコンピューティングデバイスからネットワークパケットを受信し、(2)5タプルの前記受信されたネットワークパケットを決定し、(3)前記5タプルの受信されたネットワークパケットと一致する前記フロータプルを含む前記複数のネットワークフローエントリのうちのネットワークフローエントリを決定すべく、前記コンピューティングノードの前記ローカルフローテーブルでフロールックアップ操作を実行し、(4)前記決定されたネットワークフローエントリと関連付けられた前記ネクストホップタイプが、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが前記コンピューティングノードによってローカルに処理されるべきであることを示すか、又は、前記クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すかを決定し、(5)前記決定されたネットワークフローエントリと関連付けられた前記ネクストホップタイプが、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが前記コンピューティングノードによってローカルに処理されるべきであることを示すとの決定に応じて、前記ネットワークパケットを処理し、(6)前記決定されたネットワークフローエントリと関連付けられた前記ネクストホップタイプが、前記ネットワークフローと関連付けられた前記複数のネットワークパケットが前記クラスタコンピューティングデバイスの他のコンピューティングノードによって遠隔から処理されるべきであることを示すとの決定に応じて、前記受信されたネットワークパケットを前記クラスタコンピューティングデバイスのネクストホップコンピューティングノードに転送する、フロー制御モジュールを更に備える、請求項22に記載のコンピューティングノード。
  24. 前記フロー制御モジュールは更に、(1)前記複数のネクストホップエントリのうち一致するネクストホップエントリを決定すべく、前記決定されたネットワークフローエントリと関連付けられた前記ネクストホップインデックスに応じて、前記コンピューティングノードの前記ローカルネクストホップテーブルでネクストホップルックアップ操作を実行し、(2)前記一致するネクストホップエントリに応じて、前記受信されたネットワークパケットを処理する前記クラスタコンピューティングデバイスの前記ネクストホップコンピューティングノードを決定する、請求項23に記載のコンピューティングノード。
  25. 前記ネクストホップコンピューティングノードを決定することは、前記ローカルネクストホップテーブルに追加された前記ネクストホップエントリと一致することに基づいて、前記異なるコンピューティングノードが前記ネクストホップコンピューティングノードであると決定することを含む、請求項24に記載のコンピューティングノード。
JP2015159579A 2014-09-25 2015-08-12 粗粒度の負荷分散と細粒度の負荷分散との間をブリッジするクラスタコンピューティングデバイスのコンピューティングノード、および、粗粒度の負荷分散と細粒度の負荷分散との間でブリッジする方法 Expired - Fee Related JP6106896B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/496,495 2014-09-25
US14/496,495 US9882814B2 (en) 2014-09-25 2014-09-25 Technologies for bridging between coarse-grained and fine-grained load balancing

Publications (2)

Publication Number Publication Date
JP2016071860A true JP2016071860A (ja) 2016-05-09
JP6106896B2 JP6106896B2 (ja) 2017-04-05

Family

ID=54011562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015159579A Expired - Fee Related JP6106896B2 (ja) 2014-09-25 2015-08-12 粗粒度の負荷分散と細粒度の負荷分散との間をブリッジするクラスタコンピューティングデバイスのコンピューティングノード、および、粗粒度の負荷分散と細粒度の負荷分散との間でブリッジする方法

Country Status (5)

Country Link
US (1) US9882814B2 (ja)
EP (1) EP3001614B1 (ja)
JP (1) JP6106896B2 (ja)
KR (2) KR101858319B1 (ja)
CN (1) CN105471745B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243337B (zh) * 2013-06-09 2017-09-01 新华三技术有限公司 一种跨集群负载均衡的方法及装置
CN105376168B (zh) * 2014-08-25 2019-06-11 深圳市中兴微电子技术有限公司 一种负载均衡的方法与装置
US9467378B1 (en) * 2015-03-01 2016-10-11 Netronome Systems, Inc. Method of generating subflow entries in an SDN switch
CN106656905B (zh) * 2015-10-28 2020-02-21 新华三技术有限公司 防火墙集群实现方法及装置
KR20170056879A (ko) * 2015-11-16 2017-05-24 한국전자통신연구원 Sdn 다중 오케스트레이터
US20170195218A1 (en) * 2015-12-30 2017-07-06 Qualcomm Incorporated Routing in a hybrid network
US10091166B2 (en) 2015-12-31 2018-10-02 Fortinet, Inc. Sequentially serving network security devices using a software defined networking (SDN) switch
US10148594B2 (en) 2015-12-31 2018-12-04 Fortinet, Inc. Application based conditional forwarding and load balancing in a software defined networking (SDN) architecture
US10075393B2 (en) * 2015-12-31 2018-09-11 Fortinet, Inc. Packet routing using a software-defined networking (SDN) switch
US10057193B2 (en) 2015-12-31 2018-08-21 Fortinet, Inc. Cardinality based packet processing in software-defined networking (SDN) switches
CN107659419B (zh) * 2016-07-25 2021-01-01 华为技术有限公司 网络切片方法和系统
US10462059B2 (en) 2016-10-19 2019-10-29 Intel Corporation Hash table entries insertion method and apparatus using virtual buckets
US11252070B2 (en) * 2018-10-09 2022-02-15 Vmware, Inc. Adaptive polling in software-defined networking (SDN) environments
WO2020236272A1 (en) * 2019-05-23 2020-11-26 Cray Inc. System and method for facilitating fine-grain flow control in a network interface controller (nic)
CN111221773B (zh) * 2020-01-15 2023-05-16 华东师范大学 一种基于rdma高速网络和跳表的数据存储架构方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100302940A1 (en) * 2009-05-28 2010-12-02 Microsoft Corporation Load balancing across layer-2 domains
WO2011074630A1 (ja) * 2009-12-17 2011-06-23 日本電気株式会社 負荷分散システム、負荷分散方法、負荷分散システムを構成する装置およびプログラム
JP2011159247A (ja) * 2010-02-04 2011-08-18 Nec Corp ネットワークシステム、コントローラ、ネットワーク制御方法
JP2011170718A (ja) * 2010-02-19 2011-09-01 Nec Corp コンピュータシステム、コントローラ、サービス提供サーバ、及び負荷分散方法
WO2012133290A1 (ja) * 2011-03-31 2012-10-04 日本電気株式会社 コンピュータシステム、及び通信方法
US20130223444A1 (en) * 2012-02-23 2013-08-29 Christopher D. Liljenstolpe System and methods for managing network packet forwarding with a controller
JP2014067317A (ja) * 2012-09-27 2014-04-17 Nippon Telegr & Teleph Corp <Ntt> クラスタシステム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101394341B (zh) * 2007-09-17 2011-08-03 华为技术有限公司 维护路由的方法、系统及装置
CN102136986B (zh) * 2010-01-22 2013-11-06 杭州华三通信技术有限公司 一种负载分担方法和交换设备
US9185056B2 (en) 2011-09-20 2015-11-10 Big Switch Networks, Inc. System and methods for controlling network traffic through virtual switches
US20130223443A1 (en) 2012-02-28 2013-08-29 Michael L. Ziegler Distribution trees with stages
CN104022960B (zh) * 2013-02-28 2017-05-31 新华三技术有限公司 基于OpenFlow协议实现PVLAN的方法和装置
KR20150001362A (ko) * 2013-06-27 2015-01-06 한국전자통신연구원 오픈플로우 환경에서의 멀티캐스트 트래픽을 처리하기 위한 장치 및 방법
US20150249572A1 (en) * 2014-03-03 2015-09-03 Futurewei Technologies, Inc. Software-Defined Network Control Using Functional Objects
US20150256465A1 (en) * 2014-03-04 2015-09-10 Futurewei Technologies, Inc. Software-Defined Network Control Using Control Macros
US9419874B2 (en) * 2014-03-27 2016-08-16 Nicira, Inc. Packet tracing in a software-defined networking environment
US10063473B2 (en) * 2014-04-30 2018-08-28 Brocade Communications Systems LLC Method and system for facilitating switch virtualization in a network of interconnected switches

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100302940A1 (en) * 2009-05-28 2010-12-02 Microsoft Corporation Load balancing across layer-2 domains
JP2012528551A (ja) * 2009-05-28 2012-11-12 マイクロソフト コーポレーション レイヤー2ドメインにわたる負荷分散
WO2011074630A1 (ja) * 2009-12-17 2011-06-23 日本電気株式会社 負荷分散システム、負荷分散方法、負荷分散システムを構成する装置およびプログラム
US20110283016A1 (en) * 2009-12-17 2011-11-17 Nec Corporation Load distribution system, load distribution method, apparatuses constituting load distribution system, and program
JP2011159247A (ja) * 2010-02-04 2011-08-18 Nec Corp ネットワークシステム、コントローラ、ネットワーク制御方法
JP2011170718A (ja) * 2010-02-19 2011-09-01 Nec Corp コンピュータシステム、コントローラ、サービス提供サーバ、及び負荷分散方法
WO2012133290A1 (ja) * 2011-03-31 2012-10-04 日本電気株式会社 コンピュータシステム、及び通信方法
US20130223444A1 (en) * 2012-02-23 2013-08-29 Christopher D. Liljenstolpe System and methods for managing network packet forwarding with a controller
WO2013126195A1 (en) * 2012-02-23 2013-08-29 Big Switch Network, Inc. System and methods for managing network packet forwarding with a controller
JP2015508967A (ja) * 2012-02-23 2015-03-23 ビッグ スウィッチ ネットワークス インコーポレイテッド コントローラでネットワークパケット転送を管理するシステム及び方法
JP2014067317A (ja) * 2012-09-27 2014-04-17 Nippon Telegr & Teleph Corp <Ntt> クラスタシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6016037110; Fathy Amer, et.al.: '"Performance Evaluation of A Hierarchical Hybrid Adaptive Routing Algorithm for Large Scale Computer' Proceedings of the Computer Networking Symposium, 1988 , 198804, pp.266-275, IEEE Comput. Soc. Press *

Also Published As

Publication number Publication date
JP6106896B2 (ja) 2017-04-05
KR20160036648A (ko) 2016-04-04
KR101858319B1 (ko) 2018-05-15
EP3001614A1 (en) 2016-03-30
KR20180052582A (ko) 2018-05-18
CN105471745A (zh) 2016-04-06
US20160094449A1 (en) 2016-03-31
CN105471745B (zh) 2019-04-30
EP3001614B1 (en) 2019-05-01
US9882814B2 (en) 2018-01-30

Similar Documents

Publication Publication Date Title
JP6106896B2 (ja) 粗粒度の負荷分散と細粒度の負荷分散との間をブリッジするクラスタコンピューティングデバイスのコンピューティングノード、および、粗粒度の負荷分散と細粒度の負荷分散との間でブリッジする方法
KR102162730B1 (ko) 분산형 라우팅 테이블 탐색 기술
EP3677013B1 (en) Replication with dedicated metal deployment in a cloud
US9124527B2 (en) Sliced routing table management
US9215171B2 (en) Hashing-based routing table management
US8787373B2 (en) Multicast miss notification for a distributed network switch
US20140029412A1 (en) Systems and methods for providing anycast mac addressing in an information handling system
CN104335537A (zh) 用于层2多播多路径传送的系统和方法
US9455916B2 (en) Method and system for changing path and controller thereof
US9282034B2 (en) Directed route load/store packets for distributed switch initialization
WO2016173403A1 (zh) 路由设备、负载均衡设备、消息分发方法及系统
US12107695B2 (en) Multicast routing
JP2016502329A (ja) 仮想シャーシシステムにおけるパススルーモードのためのシステムおよび方法
EP3399424B1 (en) Using unified api to program both servers and fabric for forwarding for fine-grained network optimizations
US10938713B2 (en) Flow control device, communication system, flow control method, and recording medium
US9231859B2 (en) System and method for ingress port identification in aggregate switches
JP5218323B2 (ja) 中継装置及び転送ルールに関連する情報処理方法並びにプログラム
US10171346B2 (en) Method, apparatus and system for transmitting information
EP2645677B1 (en) A method and a network element for content based addressing in a data transfer network
JP2015231212A (ja) データ転送システム、データ転送サーバ、データ転送方法、および、プログラム
JP5821641B2 (ja) ネットワークシステム、スイッチ、及びスイッチ間設定通知方法
JP2015170974A (ja) 中継装置
WO2016101650A1 (zh) 一种全局码翻译中路由选择的方法和系统

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161220

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170216

R150 Certificate of patent or registration of utility model

Ref document number: 6106896

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees