JP4452176B2 - データ・ネットワークにおける負荷平衡化 - Google Patents

データ・ネットワークにおける負荷平衡化 Download PDF

Info

Publication number
JP4452176B2
JP4452176B2 JP2004515120A JP2004515120A JP4452176B2 JP 4452176 B2 JP4452176 B2 JP 4452176B2 JP 2004515120 A JP2004515120 A JP 2004515120A JP 2004515120 A JP2004515120 A JP 2004515120A JP 4452176 B2 JP4452176 B2 JP 4452176B2
Authority
JP
Japan
Prior art keywords
hash
routing
logic
packet
parameters
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 - Lifetime
Application number
JP2004515120A
Other languages
English (en)
Other versions
JP2005536087A (ja
Inventor
ボーエン、ホイト、エドウイン、ジュニア
ドロズ、パトリック
ケンクル、ルーカス
メツラー、ベルンハード
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2005536087A publication Critical patent/JP2005536087A/ja
Application granted granted Critical
Publication of JP4452176B2 publication Critical patent/JP4452176B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、一般的にデータ・ネットワークにおける負荷平衡化(load balancing)に関し、特定すれば、データ・ネットワークにおける負荷平衡化のための方法および装置に関する。
データ・ネットワークは、通常、データ通信ネットワーク・インフラストラクチャを介して複数のクライアント・コンピュータに相互接続された複数のサーバ・コンピュータを備えている。ネットワーク・インフラストラクチャは、通常、クライアント・コンピュータとサーバ・コンピュータとの間でデータ・パケットをルーティングするための、スイッチ、ルータ等の複数の中間データ通信デバイスまたはノードを備えている。かかるデータ通信デバイスは、典型的に、複数の入力/出力(I/O)ポート、あるポート上で受信したデータ・パケットを他のポートの1つ以上にルーティングするためのスイッチ機構、および、スイッチ機構を制御して、過渡的なデータ・パケットに含まれるアドレス情報に基づいてポート間で適切な接続を行うための制御論理を備えている。
かかるデータ・ネットワークに関連する問題は、ネットワーク・インフラストラクチャ内の異なるノード間で負荷を平衡化することである。ネットワーク・インフラストラクチャが処理するデータ・トラヒックの量が増大すると、インフラストラクチャ内のノードにかかる負荷間のバランスをタイムリーに維持することが難しくなる。従って、通信が妨げられ、遅延が発生する。
本発明によれば、データ通信ネットワークのための負荷平衡化装置が提供される。この装置は、入来データ・パケットに対してハッシュ関数を計算するハッシュ論理と、ハッシュ論理に接続された閾値検出器であって、所定の閾値を超えた下流オブジェクトの利用に応答して、下流オブジェクト間でデータ・パケットを再分配させるため、ハッシュ論理において、第1組のパラメータから第2組のパラメータへの、ハッシュ関数のパラメータの再画定をトリガする閾値検出器と、を備え、ハッシュ論理は、使用の際、第1組のパラメータを用いたハッシュ計算に基づいて第1のルーティング経路を介してネットワークの下流オブジェクトにルーティングするためにパケットを送出し、閾値を超えた場合には、第1組および前記第2組のパラメータを用いた別個のハッシュ計算に応じて第1のルーティング経路および第2のルーティング経路の1つにパケットを選択的に送出し、以降、別個のハッシュ計算の1つの結果に基づいて第1および第2のルーティング経路のうち選択された1つを介してパケットをルーティングする。
好ましくは、ハッシュ論理は、使用の際、別個のハッシュ計算の結果が交差する場合にはデータ・パケットを第1のルーティング経路に送出し、その他の場合、データ・パケットを第2のルーティング経路に送出する。本発明の好適な実施形態では、この装置は、ハッシュ論理に接続され、所定の値を超えた寿命を有するフローについて、選択的にハッシュ論理を迂回させるためのフィルタを更に備える。本発明の特に好適な実施形態では、この装置は、第1のルーティング経路および第2のルーティング経路を更に備え、第1のルーティング経路はハッシュ論理に接続された第1のルーティング論理を備え、第2のルーティング経路はハッシュ論理に接続された第2のルーティング論理を備え、第1のルーティング経路は第2のルーティング経路よりも高速であり、第2のルーティング経路上で、パケット・フロー・ステータスに基づいて下流オブジェクトを選択する。
第1のルーティング論理は少なくとも1つのネットワーク・プロセッサを備え、第2のルーティング論理は少なくとも1つの汎用プロセッサを備えることができる。第2のルーティング論理は、データ・パケットのフローにおいてフロー・デリミッタを検出し、開始インジケータを検出すると、第2のパラメータを用いてハッシュ関数に従って対応するフローをルーティングするように構成することができる。また、第2のルーティング論理は、所定のイナクティブ時間を超えたパケットのフローを検出し、かかるフローを第2のパラメータを用いてハッシュ関数に従ってルーティングするように構成することができる。更に、第2のルーティング論理は、所定の寿命を超えたパケットのフローを検出し、かかるフローを第1のルーティング論理に送出するように構成することができる。
本発明は、本明細書において前述した負荷平衡化装置を備えた特定用途向け集積回路に拡張される。また、本発明は、本明細書において前述した負荷平衡化装置を備えたネットワーク・インフラストラクチャ・ノードに拡張される。更に、本発明は、かかるネットワーク・インフラストラクチャ・ノードを備えたデータ通信ネットワークに拡張される。
別の態様から本発明を見ると、データ通信ネットワークにおける負荷平衡化の方法が提供される。この方法は、入来データ・パケットに対してハッシュ関数を計算するステップと、所定の閾値を超えた下流オブジェクトの利用に応答して、下流オブジェクト間でデータ・パケットを再分配させるため、第1組のパラメータから第2組のパラメータへの、ハッシュ関数のパラメータの再画定をトリガするステップと、第1組のパラメータを用いたハッシュ計算に基づいて第1のルーティング経路を介してネットワークの下流オブジェクトにルーティングするためにパケットを送出し、閾値を超えた場合には、第1組および前記第2組のパラメータを用いた別個のハッシュ計算に応じて第1のルーティング経路および第2のルーティング経路の1つにパケットを選択的に送出し、以降、別個のハッシュ計算の1つの結果に基づいて第1および第2のルーティング経路のうち選択された1つを介してパケットをルーティングするステップと、を備える。
本発明の好適な実施形態では、この方法は、別個のハッシュ計算の結果が交差する場合にはデータ・パケットを第1のルーティング経路に送出し、その他の場合、データ・パケットを第2のルーティング経路に送出するステップを備える。
ハードウエアにおいて10,000および100,000のフローを最適に平衡化するため、フローで最低限の状態を維持するが、ホスト間のTCPフロー等のアクティブ・フローの接続性を維持する方式を決定することが必要である。
本発明の好適な実施形態では、反復ハードウエア負荷平衡化技法が提供される。この技法では、ハッシュ関数を用いて、データ通信ネットワークにおける多数のホスト、中間ノード、および/またはネットワーク・インタフェース間でパケット・フローを平衡化する。フローに関連したソースのアドレス等、フローの持続時間一定である各パケットの一部に、ハッシュを実行する。この技法では、1組のみのハッシュ・パラメータによってハッシュ関数を計算する状態と、2組のハッシュ・パラメータが与えられる状態とが交互に生じる。1つの状態では、1つのハッシュ結果が既知である。他の状態では、2つのハッシュ結果間の差が既知である。この技法は、ルーティング高速経路およびルーティング低速経路を識別する。ルーティング高速経路は、ネットワーク・プロセッサまたは同様の特定用途向け集積回路(ASIC:application specific integrated circuit)等の専用ハードウエアにおいて実行可能である。ルーティング低速経路は、汎用プロセッサ(GPP:general purpose processor)上のソフトウエアのいいて実行する方が良い。継続性が維持されない限り、負荷平衡化したオブジェクト間で進行中のデータ・フローは移動しない。これにより、フロー接続性が断続せず、パケットは整理し直されないことが保証されて有利である。更に、2つのハッシュ関数の交点の外側のデータ・フローについて状態を保持する。しかしながら、この保持された状態は、絶えず積極的に低減される。これは、ハードウエアのコストを最小限に抑えるので有利である。更に、ネットワーク・プロセッサ・ハードウエア等の専用ハードウエアによって高速経路ルーティングを実行することによって、データ通信の性能は、今まで利用可能であったレベルよりも向上する。
ここで、本発明の好適な実施形態について、添付図面を参照して、一例としてのみ説明する。
まず図1を参照すると、データ通信ネットワーク140は、複数のネットワーク・オブジェクト10〜120を備えている。ネットワーク・オブジェクトは、ネットワーク・ノード10〜90および、ネットワーク・ノード10〜30間でデータ・パケットを伝達するための介入ネットワーク・リンク100〜120を含む。ネットワーク・ノード10〜90は、終点ノード10〜60およびインフラストラクチャ・ノード70〜90を含む。リンク110〜120のインフラストラクチャ・ノード70〜90は、集合的に、ネットワーク・インフラストラクチャ130を形成する。終点ノード10〜60は、複数のクライアント・データ処理デバイス10〜30および複数のサーバ・コンピュータ・システム40〜60を含む。クライアント10〜30およびサーバ40〜60は、介入ネットワーク・インフラストラクチャ100を介して相互接続されている。各クライアント10〜30は、パーソナル・コンピュータ、ラップトップ・コンピュータ、パーソナル・デジタル・アシスタント、携帯電話等とすることができる。各サーバ40〜60は、ファイル・サーバ、プリント・サーバ、または同様のホスト・データ処理またはデータ保存リソースとすることができる。
動作において、クライアント10〜30およびサーバ40〜60間のデータ通信は、ネットワーク・インフラストラクチャ130を介したデータ・パケットのフローによって行われる。データ・パケット・フローは、1つ以上のデータ通信プロトコルに従って、クライアント10〜30およびサーバ40〜60間の途中で、ネットワーク・インフラストラクチャのインフラストラクチャ・ノード70〜90間を通る。各インフラストラクチャ・ノード70〜90は、パケット・ルーティング機能を実行して、受信したデータ・パケットを適切な受信側オブジェクトに転送する。
ここで図2を参照すると、各インフラストラクチャ・ノード70〜90は、第1のルーティング論理220、第2ルーティング論理210、ならびに、第1のルーティング論理220および第2のルーティング論理210の双方に接続された負荷平衡器200を備えている。第1のルーティング論理220および第2のルーティング論理210は双方とも、同一のルーティング機能を実行する。しかしながら、第1のルーティング論理220は、第2のルーティング論理210よりも高速でルーティング機能を実行する。このため、第1のルーティング論理220は、比較的高速のルーティング経路を提供し、第2のルーティング論理210は、比較的低速のルーティング経路を提供する。
ここで図3を実行すると、本発明の特に好適な実施形態において、各インフラストラクチャ・ノードは、制御ポイント400に接続されたネットワーク・プロセッサ(NP:network processor)300を備えている。負荷平衡器200および第1のルーティング論理220は双方とも、NP300において実施される。具体的には、NP300は、パケット・ルーティング機能を実行するための第1のルーティング論理220のハードワイヤード(hardwired)論理実施と共に、負荷平衡器200の負荷平衡化決定を実行するための実行可能ソフトウエアを備えている。負荷平衡器200は、フィルタ230と、このフィルタ230に接続されたハッシュ論理(hash logic)とを備えている。
NP300に接続された制御ポイント(CP:controlpoint)400は、メモリ420に接続された汎用処理ユニット(GPP:general purpose processing unit)410を備えている。メモリ420には、GPP410によって実行された場合に、フロー状態コントローラ430、閾値検出器440および490、ハッシュ・パラメータ発生器450、競合フロー状態テーブル460、「長生き」フロー状態テーブル480、およびルータ470を実行するためのコンピュータ・プログラム・コードが保存されている。フロー状態コントローラ430は、クライアント−サーバのフローの状態を計算する。閾値検出器440は、サーバ40〜60の現在の負荷ステータスを監視して負荷管理を行う。ルータ470は、第2のルーティング論理210を実現する。CP400によるパケット・ルーティング機能の実行は、NP300によるパケット・ルーティング機能の実行よりも低速である。
動作において、負荷平衡器200は、フィルタ230およびハッシュ論理240の現在のステータスに応じて、入来データ・パケットの各フローを第1のルーティング論理220またはCP400のどちらで処理するかを決定する。フィルタ230およびハッシュ論理240の双方のステータスは、ネットワーク140におけるダウンストリーム・オブジェクトの1つ以上に対する主な要求に基づいて、CP400によって制御される。かかる負荷平衡化は、例えば、最適でない方法で分配されたクライアント要求によるダウンストリーム・オブジェクトの1つ以上の不必要な過負荷を防ぐために望ましい。不必要な過負荷を防ぐことによって、ネットワーク140における利用可能なサービス・レベルは最適化される。負荷平衡器200は、内部のハッシュ論理240によって、ハッシュ関数を実行して、ネットワーク内のオブジェクト間でデータ・パケット・フローを平衡化する。具体的には、ハッシュ論理240は、ソース・アドレス等、パケット・フローの持続時間の間一定である入来データ・パケットの一部に対してハッシュ関数を実行する。負荷平衡器200では、2つのハッシュ関数の結果間の差が既知である状態と、1つのみのハッシュ関数の結果が既知である状態とが交互に生じる。フィルタ230は、いくつかのパケット・フローについてハッシュ論理240を避けさせることができる。
動作において、フィルタ230は、データ・パケットの入来フローを、第1のルーティング論理220またはハッシュ論理240のいずれかに送出する。ハッシュ論理240は、CP400からの制御入力に応じて、パケットを、第1のルーティング論理220または第2のルーティング論理210が実施されているCP400のいずれかに送出する。パケットが第1のルーティング論理220に渡された場合、これに、ハッシュ論理240またはフィルタ230からのルーティング情報を結合する。追加されたルーティング情報は、第1のルーティング論理220に、特定のルーティング経路を選ばせる。ハッシュ関数が、パケットを第2のルーティング論理220に再送出した場合、パケットにはルーティング情報も含まれる。
ここで図4を参照すると、制御ポイント400は、ステップ500において、負荷平衡器200のハッシュ論理240およびフィルタ230の双方を初期化することから開始する。フィルタ230は無効にセットされる。ハッシュ論理240の初期パラメータは、オペレータの構成に基づくものとすることができる。あるいは、初期ハッシュ・パラメータは、平衡化するオブジェクト40〜60のリソース容量の自動化問合せに基づくものとしても良い。かかるリソース性能の例は、CPU速度、インタフェース速度等を含む。ステップ510では、CP400は、平衡化されるオブジェクト40〜60におけるリソース利用に関連してフィードバック・メモリ430に統計値を蓄積する。
ステップ520では、閾値検出器440が、所定の閾値に対してフロー状態コントローラ430に蓄積された統計値を調べて、オブジェクト40〜60のうち少なくとも1つが他のオブジェクトに対して過度に利用されているか否かを判定する。判定結果が肯定である場合、ステップ530において、新たなハッシュ・パラメータを、ハッシュ・パラメータ発生器450によって計算し、第2組のパラメータとしてハッシュ論理240にロードする。新たなハッシュ・パラメータは、収集した統計値に基づいてネットワーク・トラヒックを最適に分配させる。ステップ540において、CP400は、第2のルーティング論理210として機能する。具体的には、CP400は、ハッシュ論理240が古い1組のパラメータおよび新しい1組のパラメータの双方によってハッシュ関数を計算した場合に異なるハッシュ結果を出したパケットを負荷平衡器200から受信する。かかる「競合フロー」について、CP400は、競合フロー状態テーブル460内でフロー状態ごとの情報を確立し維持する。CP400が構成可能時間間隔内で競合フローのパケットを受信しない場合、またはCP400が少なくとも一度TCP FINビット等のフローエンド・インジケータを受信した場合、対象のフローは終了したと見なされ、その状態は「古いので終了」と示される。
ステップ545では、CP400は、パケットを、第2のルーティング論理470を介して、負荷平衡化したオブジェクト40〜60の1つに転送する。パケットが属するフローのステータスが「古いので終了」と示されている場合、パケットは、新たなハッシュ・パラメータを用いたハッシュ計算の結果に転送される。その他の場合、パケットは、古いハッシュ・パラメータを用いたハッシュ計算の結果に転送される。
ステップ540において、フロー終了の検出に割り当てた時間間隔以上の時間間隔の後、ステップ550において、閾値検出器490は、所定の閾値に対して未終了の競合フローの数を調べる。閾値検出器490が、閾値として設定されたフロー以下の量を検出した場合、ステップ560において、未終了の全競合フローのローカル状態を「長生き」フロー状態テーブル480に移し、競合フロー状態テーブル460をクリアする。この場合、ステップ560において、「長生き」フロー状態テーブル480の内容は、負荷平衡器200のフィルタ関数230に転送され、ハッシュ論理240の古いハッシュ・パラメータは除去される。ステップ550において、閾値検出器490が、閾値として設定されたフローよりも多い未終了競合フローを検出した場合、CP400は負荷平衡器200からのハッシュ競合パケットの受信を続ける。
ステップ570では、CP400は、「長生き」フローに属するパケットのコピーを受信する。ステップ580では、CP400は、パケットがTCP FINビット等のフローエンド・インジケータを有するか否か、または「長生き」フローが所定の間隔イナクティブであったか否かを判定するためにチェックを行う。双方の判定結果が否定である場合、CP400はステップ570に戻り、「長生き」フローに属するパケットのコピーの受信を続ける。
ステップ580においてフローの終了が検出された場合、ステップ585において、「長生き」フロー・テーブル480およびフィルタ230の双方から、対応するフロー・エントリを除去する。ステップ590では、CP400は、「長生き」フロー・テーブル480が空であるか否かを調べる。これが空であれば、CP400のステータスは、ステップ510におけるフィードバック情報の蓄積に戻る。「長生き」フロー・テーブル480が空でない場合、CP400はステップ570に戻り、「長生き」フローに属するパケットのコピーを受信する。
CP400によって、ディープ・パケット処理を実行して、終了すると見なされる進行中のフローを識別することも可能である。例えば、ある状況では、進行中のファイルフィルタ転送プロトコル(FTP:File Transfer Protocol)フローを、不都合なく新たなサーバにルーティングすることができる。
ここで図5を参照すると、動作において、ステップ600では、フィルタ230は、各入来パケットごとにフィルタ・ルールが設定されているかチェックする。イエスの場合、ステップ610において、フィルタ230は、ローカル・フィルタ・ルールに対してパケット・フロー識別子の照合を行う。フィルタ・ルールが存在しないか、またはルールが一致しない場合、ステップ620において、パケットをハッシュ論理240に転送する。パケットがフィルタ・ルールと一致した場合、一致したフィルタ・ルールに基づいて、ステップ630において、パケットにそのルーティング情報を結合する。ステップ640において、パケットをCP400にコピーし、ステップ650において、パケットを第1のルーティング論理220に送信する。
図6を参照すると、ハッシュ論理240では2つの状態が交互に生じる。すなわち、1組のハッシュ・パラメータが既知であるか、または1組の古いハッシュ・パラメータおよび1組の新しいハッシュ・パラメータが既知である状態である。ステップ700において、ハッシュ論理240は、新しい1組のパラメータに基づいてハッシュ結果を計算する。ステップ710では、ハッシュ論理240は、古い1組のハッシュ・パラメータが存在するか否かを判定するためチェックを行う。古い1組のパラメータが存在しない場合、ステップ720において、パケットおよびハッシュ結果を第1のルーティング論理220に渡して、適切なターゲット・オブジェクト40〜60にパケットを送信する。古い1組のハッシュ・パラメータが存在する場合、ステップ730において、古い1組のパラメータに基づいて、ハッシュ結果を再び計算する。ステップ740では、ハッシュ結果をチェックして、双方のハッシュ計算が同一の結果を生じたか否かを判定する。同一の結果を生じた場合、適切なターゲット・オブジェクト40〜60にルーティングするため、ステップ720においてパケットを第1のルーティング論理220に渡す。同一の結果を生じない場合、ステップ750において、低速経路でルーティグするため、パケットおよび双方のハッシュ結果をCP400に渡す。
本明細書において述べた本発明の実施形態において、ネットワーク130における各インフラストラクチャ90〜110は、負荷平衡化機能を備えている。しかしながら、ネットワーク130は、インフラストラクチャ・ノードの一部のみが負荷均衡機能を備えるように組み立てることも可能であることは認められよう。
データ通信ネットワークのための負荷平衡化装置は、入来データ・パケットに対してハッシュ関数を計算するためのハッシュ論理を備えている。ハッシュ論理に、閾値検出器が接続され、所定の閾値を超えた下流オブジェクトの利用に応答して、下流オブジェクト間でデータ・パケットを再分配させるため、ハッシュ論理において、第1組のパラメータから第2組のパラメータへの、ハッシュ関数のパラメータの再画定をトリガする。使用の際、ハッシュ論理は、使用の際、第1組のパラメータを用いたハッシュ計算に基づいて第1のルーティング経路を介してネットワークの下流オブジェクトにルーティングするためにパケットを送出し、閾値を超えた場合には、第1組および第2組のパラメータを用いた別個のハッシュ計算に応じて第1のルーティング経路および第2のルーティング経路の1つにパケットを選択的に送出し、以降、別個のハッシュ計算の1つの結果に基づいて第1および第2のルーティング経路のうち選択された1つを介してパケットをルーティングする。
まとめると、本発明の一例として本明細書中で述べてきたことは、データ通信ネットワークのための負荷均衡化装置200であり、入来データ・パケットに対してハッシュ関数を計算するためのハッシュ論理240を備えている。ハッシュ論理240に、閾値検出器が440接続され、所定の閾値を超えた下流オブジェクトの利用に応答して、下流オブジェクト間でデータ・パケットを再分配させるため、ハッシュ論理240において、第1組のパラメータから第2組のパラメータへの、ハッシュ関数のパラメータの再画定をトリガする。使用の際、ハッシュ論理240は、第1組のパラメータを用いたハッシュ計算に基づいて第1のルーティング経路を介してネットワークの下流オブジェクトにルーティングするためにパケットを送出し、閾値を超えた場合には、第1組および第2組のパラメータを用いた別個のハッシュ計算に応じて第1のルーティング経路および第2のルーティング経路の1つにパケットを選択的に送出し、以降、別個のハッシュ計算の1つの結果に基づいて第1および第2のルーティング経路のうち選択された1つを介してパケットをルーティングする。しかしながら、本発明は、2組のハッシュ・パラメータに限定されないことは認められよう。本発明の別の実施形態では、ハッシュ論理240によって、3組以上のハッシュ・パラメータも使用可能である。
データ通信ネットワークのブロック図である。 データ通信ネットワークのインフラストラクチャ・ノードのブロック図である。 インフラストラクチャ・ノードの別のブロック図である。 インフラストラクチャ・ノードの制御点に関連したフローチャートである。 インフラストラクチャ・ノードの負荷平衡器に関連したフローチャートである。 インフラストラクチャ・ノードの負荷平衡器に関連した別のフローチャートである。

Claims (12)

  1. データ通信ネットワークのための負荷平衡化装置であって、
    入来データ・パケットに対してハッシュ関数を計算するハッシュ論理と、
    前記ハッシュ論理に接続された閾値検出器であって、所定の閾値を超えたダウンストリーム・オブジェクトの利用に応答して、前記ダウンストリーム・オブジェクト間で前記データ・パケットを再分配させるため、前記ハッシュ論理において、第1組のパラメータから第2組のパラメータへの、前記ハッシュ関数のパラメータの再画定をトリガする閾値検出器と、
    を備え、前記ハッシュ論理は、使用の際、前記第1組のパラメータを用いたハッシュ計算に基づいて第1のルーティング経路を介して前記ネットワークのダウンストリーム・オブジェクトにルーティングするために前記パケットを送出し、更に、前記閾値を超えた場合には、前記第1組および前記第2組のパラメータを用いた別個のハッシュ計算に応じて前記第1のルーティング経路および第2のルーティング経路の1つに前記パケットを選択的に送出し、以降、前記別個のハッシュ計算の1つの結果に基づいて前記第1および第2のルーティング経路のうち選択された1つを介して前記パケットをルーティングするための手段を有する、負荷平衡化装置。
  2. 前記ハッシュ論理は、使用の際、前記別個のハッシュ計算の結果が一致する場合には前記データ・パケットを前記第1のルーティング経路に送出するための手段を有し、その他の場合、前記データ・パケットを前記第2のルーティング経路に送出するための手段を有する、請求項1に記載の装置。
  3. 前記ハッシュ論理に接続され、所定の値を超えた寿命を有するフローについて、選択的に前記ハッシュ論理を迂回させるためのフィルタを更に備える、請求項1または2に記載の装置。
  4. 前記第1のルーティング経路および前記第2のルーティング経路を更に備え、前記第1のルーティング経路は前記ハッシュ論理に接続された第1のルーティング論理を備え、前記第2のルーティング経路は前記ハッシュ論理に接続された第2のルーティング論理を備え、前記第1のルーティング経路は前記第2のルーティング経路よりも高速であり、前記第2のルーティング経路上で、パケット・フロー・ステータスに基づいてダウンストリーム・オブジェクトを選択する、請求項1に記載の装置。
  5. 前記第1のルーティング論理は少なくとも1つのネットワーク・プロセッサを備え、前記第2のルーティング論理は少なくとも1つの汎用プロセッサを備える、請求項4に記載の装置。
  6. 前記第2のルーティング論理は、所定のイナクティブ時間を超えたパケットのフローを検出し、かかるフローを前記第2組のパラメータを用いて前記ハッシュ関数に従ってルーティングするように構成されている、請求項に記載の装置。
  7. 前記第2のルーティング論理は、所定の寿命を超えたパケットのフローを検出し、かかるフローを前記第1のルーティング論理に送出するように構成されている、請求項に記載の装置。
  8. 前出のいずれかの請求項に記載の負荷平衡化装置を備えた特定用途向け集積回路。
  9. 請求項1ないしのいずれかに記載の負荷平衡化装置を備えたネットワーク・インフラストラクチャ・ノード。
  10. 請求項に記載のネットワーク・インフラストラクチャ・ノードを備えたデータ通信ネットワーク。
  11. データ通信ネットワークにおける負荷平衡化の方法であって、
    入来データ・パケットに対してハッシュ関数を計算するステップと、
    所定の閾値を超えたダウンストリーム・オブジェクトの利用に応答して、前記ダウンストリーム・オブジェクト間で前記データ・パケットを再分配させるため、第1組のパラメータから第2組のパラメータへの、前記ハッシュ関数のパラメータの再画定をトリガするステップと、
    前記第1組のパラメータを用いたハッシュ計算に基づいて第1のルーティング経路を介して前記ネットワークのダウンストリーム・オブジェクトにルーティングするために前記パケットを送出し、前記閾値を超えた場合には、前記第1組および前記第2組のパラメータを用いた別個のハッシュ計算に応じて前記第1のルーティング経路および第2のルーティング経路の1つに前記パケットを選択的に送出し、以降、前記別個のハッシュ計算の1つの結果に基づいて前記第1および第2のルーティング経路のうち選択された1つを介して前記パケットをルーティングするステップと、
    を備える、方法。
  12. 前記別個のハッシュ計算の結果が一致する場合には前記データ・パケットを前記第1のルーティング経路に送出し、その他の場合、前記データ・パケットを前記第2のルーティング経路に送出するステップを備える、請求項11に記載の方法。
JP2004515120A 2002-06-24 2003-06-20 データ・ネットワークにおける負荷平衡化 Expired - Lifetime JP4452176B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02014116 2002-06-24
PCT/IB2003/002409 WO2004002109A1 (en) 2002-06-24 2003-06-20 Load balancing in data networks

Publications (2)

Publication Number Publication Date
JP2005536087A JP2005536087A (ja) 2005-11-24
JP4452176B2 true JP4452176B2 (ja) 2010-04-21

Family

ID=29797140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004515120A Expired - Lifetime JP4452176B2 (ja) 2002-06-24 2003-06-20 データ・ネットワークにおける負荷平衡化

Country Status (7)

Country Link
US (2) US20060087968A1 (ja)
EP (1) EP1516475B1 (ja)
JP (1) JP4452176B2 (ja)
CN (1) CN100539580C (ja)
AU (1) AU2003232413A1 (ja)
DE (1) DE60303384T2 (ja)
WO (1) WO2004002109A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7693050B2 (en) * 2005-04-14 2010-04-06 Microsoft Corporation Stateless, affinity-preserving load balancing
US7764612B2 (en) * 2005-06-16 2010-07-27 Acme Packet, Inc. Controlling access to a host processor in a session border controller
GB2429869A (en) * 2005-09-02 2007-03-07 Data Connection Ltd Party identifiers in a multi-telephony service environment
CN100407705C (zh) * 2006-04-12 2008-07-30 华为技术有限公司 一种路由器控制方法和系统
US7684352B2 (en) * 2006-11-02 2010-03-23 Nortel Networks Ltd Distributed storage of routing information in a link state protocol controlled network
US8218553B2 (en) * 2009-02-25 2012-07-10 Juniper Networks, Inc. Load balancing network traffic on a label switched path using resource reservation protocol with traffic engineering
US8259585B1 (en) * 2009-04-17 2012-09-04 Juniper Networks, Inc. Dynamic link load balancing
US20100274893A1 (en) * 2009-04-27 2010-10-28 Sonus Networks, Inc. Methods and apparatus for detecting and limiting focused server overload in a network
US8699343B2 (en) 2009-04-27 2014-04-15 Sonus Networks, Inc. Adaptive rate control based on overload signals
US9705977B2 (en) * 2011-04-20 2017-07-11 Symantec Corporation Load balancing for network devices
WO2013007002A1 (en) 2011-07-08 2013-01-17 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for load balancing
KR101383905B1 (ko) * 2011-12-19 2014-04-17 주식회사 솔박스 해시 함수 결과를 이용한 서버 부하 분산 처리 방법 및 그 장치
US9923798B1 (en) 2012-06-28 2018-03-20 Juniper Networks, Inc. Dynamic load balancing of network traffic on a multi-path label switched path using resource reservation protocol with traffic engineering
US9331891B2 (en) * 2012-10-11 2016-05-03 International Business Machines Corporation Virtual consolidated appliance
CN106656842A (zh) * 2015-10-29 2017-05-10 华为数字技术(苏州)有限公司 一种负载均衡方法和流量转发设备
US10230621B2 (en) 2017-05-09 2019-03-12 Juniper Networks, Inc. Varying a per-hop-bandwidth constraint in multi-path label switched paths

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044080A (en) * 1996-11-19 2000-03-28 Pluris, Inc. Scalable parallel packet router
JP3369445B2 (ja) * 1997-09-22 2003-01-20 富士通株式会社 ネットワークサービスサーバ負荷調整装置、方法および記録媒体
GB2349296B (en) * 1999-04-21 2001-04-04 3Com Corp Reduction of imbalance in transmit traffic queues in a network switch
CA2328011A1 (en) * 2000-01-18 2001-07-18 Lucent Technologies Inc. Method and apparatus for load balancing of network services
JP4150159B2 (ja) * 2000-03-01 2008-09-17 富士通株式会社 伝送経路制御装置及び伝送経路制御方法並びに伝送経路制御プログラムを記録した媒体
US6553005B1 (en) * 2000-07-26 2003-04-22 Pluris, Inc. Method and apparatus for load apportionment among physical interfaces in data routers

Also Published As

Publication number Publication date
DE60303384D1 (de) 2006-04-13
DE60303384T2 (de) 2006-08-17
CN100539580C (zh) 2009-09-09
CN1659845A (zh) 2005-08-24
EP1516475A1 (en) 2005-03-23
US7769025B2 (en) 2010-08-03
JP2005536087A (ja) 2005-11-24
US20060087968A1 (en) 2006-04-27
EP1516475B1 (en) 2006-01-25
AU2003232413A1 (en) 2004-01-06
WO2004002109A1 (en) 2003-12-31
US20080219258A1 (en) 2008-09-11
WO2004002109A8 (en) 2004-03-18

Similar Documents

Publication Publication Date Title
US7769025B2 (en) Load balancing in data networks
EP3528440B1 (en) Path selection method and system, network acceleration node, and network acceleration system
KR102030574B1 (ko) 전송 제어 프로토콜(tcp) 데이터 패킷을 송신하는 방법 및 장치 그리고 시스템
US10938748B2 (en) Packet processing method, computing device, and packet processing apparatus
JP5637148B2 (ja) スイッチネットワークシステム、コントローラ、及び制御方法
US9609549B2 (en) Dynamic network load rebalancing
CN107579923B (zh) 一种sdn网络的链路负载均衡方法和sdn控制器
US7355977B1 (en) Method and system for a weighted allocation table
EP3526939B1 (en) Virtual router with dynamic flow offload capability
CN106713182B (zh) 一种处理流表的方法及装置
TWI542172B (zh) 路徑更換方法與系統及其控制器
WO2012034414A1 (zh) 一种处理p2p业务的方法及系统
Li et al. Amtcp: an adaptive multi-path transmission control protocol
Joshi et al. Sfo: Subflow optimizer for mptcp in sdn
US20120155268A1 (en) Packet relay device
JP5870995B2 (ja) 通信システム、制御装置、計算機、ノードの制御方法およびプログラム
CN113595920B (zh) 网络拥塞控制方法及设备
WO2015097749A1 (ja) 情報処理装置及び情報処理方法及びプログラム
JP3560552B2 (ja) サーバへのフラッド攻撃を防止する方法及び装置
US20070064690A1 (en) Method and system for routing protocol outbound route control
JP2016225729A (ja) ネットワークシステム、データ転送制御方法及び制御装置
JP6509143B2 (ja) 帯域制御装置及び方法
Mon et al. Flow path computing in software defined networking
KR20190048324A (ko) 다중 네트워크 기반의 서비스를 제공하는 방법 및 장치
CN108173776A (zh) 报文转发方法及装置、计算机可读存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060905

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061117

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070510

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070529

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100129

R150 Certificate of patent or registration of utility model

Ref document number: 4452176

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130205

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130205

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140205

Year of fee payment: 4

EXPY Cancellation because of completion of term