(57)【要約】【課題】トラフィック重み係数を用いてトラフィックをルーティングするための方法を提供すること。【解決手段】本発明は、第１のノードから複数の中間ノードに、複数の中間ノードに関連づけられた個々のトラフィック重み係数に従って、トラフィックをルーティングするための方法を含む。【選択図】図１
2006101510.tif 000002
【特許請求の範囲】
【請求項１】
第１のノードでトラフィックを受信する工程であって、前記トラフィックは、複数の中間ノードの各々にルーティングされるように適合され、前記第１のノードは、前記中間ノードの各々を個々のトラフィック重み係数に関連づける工程と、
前記複数の中間ノードの各々に前記トラフィックの個々の部分を前記個々の中間ノード・トラフィック重み係数に従ってルーティングする工程とを含む、トラフィックをルーティングするための方法。
【請求項２】
前記受信工程および前記ルーティング工程は、ネットワーク内の複数の第１のノードの各々で実行される、請求項１に記載の方法。
【請求項３】
前記トラフィックの個々の部分をルーティングする前記工程は、トラフィック行列とは無関係に実行される、請求項１に記載の方法。
【請求項４】
前記複数の中間ノードは、少なくとも１つの他の複数の中間ノードにトラフィックをルーティングする、請求項１に記載の方法。
【請求項５】
トラフィックが、前記複数の中間ノードから前記少なくとも１つの他の複数の中間ノードに個々の追加の中間ノード・トラフィック重み係数に従ってルーティングされる、請求項４に記載の方法。
【請求項６】
前記複数の中間ノードが、少なくとも１つの宛先ノードにトラフィックをルーティングする、請求項１に記載の方法。
【請求項７】
前記第１のノードでトラフィックをルーティングする前記工程は、パケット・レベルとフロー・レベルの少なくとも一方で実行される、請求項１に記載の方法。
【請求項８】
複数の第１のノード、複数の中間ノード、および複数の宛先ノードを有する既存のネットワーク内でトラフィック・フローを適応させるための方法であって、
各中間ノードに対して個々のトラフィック重み係数を設定する工程と、
前記複数の第１のノードから前記中間ノードに前記トラフィック重み係数に従って前記トラフィックの部分をルーティングする工程とを含む方法。
【請求項９】
前記トラフィック重み係数の少なくとも１つを経路の利用度がほぼ一定になるような方式で適応させる工程をさらに含む、請求項８に記載の方法。
【請求項１０】
前記ほぼ一定の経路の利用度は、式θｊＲｉ＋θｉＣｊによって与えられる容量を有し、θｊＲｉは、ルーティングの第１のフェーズにおいて、ノードｉからノードｊにルーティングされるトラフィックの量に対応し、θｉＣｊは、ルーティングの第２のフェーズにおいて、ノードｉからノードｊにルーティングされるトラフィックの量に対応する、請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークの分野に関し、より詳細には、通信ネットワークを介するトラフィックのルーティングに関する。
【背景技術】
【０００２】
既存の通信ネットワークでは、発信源から宛先へのトラフィックのルーティングは、様々な方法によって達成することができる。従来のパイプ・モデル・ルーティング方式では、ネットワーク・アクセス・ポイント間のトラフィックは、容量が事前に割り当てられたポイント・ツー・ポイントのパイプを介して伝送される。このモデルの一変形では、パイプは、ネットワークの各ノード対の間の最悪ケースのトラフィックに対して割り当てられ、それらのノードを接続するリンクの必要容量を計算するために、これらのパイプの容量が足し合わされる。多くのモデルでは、トラフィックを効率的にルーティングするには、ネットワーク内の実際のトラフィックについての知識（すなわち、トラフィック行列）が必要とされる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
トラフィック行列は一般に、決定するのが困難で、しばしば多くのコンピューティング資源の利用を必要とする。さらに、ネットワーク内のトラフィックは、時間とともに常に変化しており、ネットワーク・トラフィックの変化を追跡し、それに反応するには、より多くのコンピューティング資源を必要とする。理想的には、トラフィック行列の動的な変化に適応するため、ネットワークのルーティング方式を変更するべきである。この手法の実施に伴って、しばしば問題が生じる。残念ながら、そのような動的トラフィック変化に適応し得るほど速やかにルーティング方式を変更することは、本質的に困難である。
【０００４】
ネットワークのトラフィック行列全体を知ることは実際上困難なので、トラフィック行列を規定するのに代わる代替手法が存在している。最近提案されたそのような方法の１つに、ホース・モデルがある。ホース・モデルでは、ネットワーク・トラフィックは、ネットワーク内の各ノード対のポイント・ツー・ポイント要求量からなるトラフィック行列を用いる代わりに、ノード毎の入力端トラフィック量の総計と出力端トラフィック量の総計を用いて特徴づけられる。言い換えると、ホース・モデルでは、ネットワーク内の各ノードについて、入力端容量および出力端容量は分かると仮定するが、ノード間でトラフィックをどう分割するかは正確には分からない。ホース・モデルに対する主要な批判は、全体的なトラフィック要求量行列が分かっているネットワークと比べて、トラフィックをルーティングするのに、より多くの資源、および容量の過剰供給が必要となるというものである。
【０００５】
ツリー・ルーティングは、ネットワークを介する経路がツリー手法を用いて計算されるホース・モデルの変形であり、ツリー手法では、ネットワークを介するコネクションは、ネットワークの元のトポロジのツリー状サブセットを使用するように制限される。この場合のルーティングは、ツリーを使用するように制限されるので、ホース・モデルの他の変形よりも、経路長が著しく長くなることがあり、冗長性を実施するには、追加の容量が必要になることがある。したがって、ルーティング・アルゴリズムが、アルゴリズムの最適解であっても、帯域幅効率の良いものになる保証はない。
【０００６】
ネットワーク内におけるトラフィック分配の不確定性が高い場合、柔軟性、閉塞の減少、トラフィック損失の低下、およびホース・モデルの様々な変形の仕様定義の容易性のため、ホース・モデルは、従来のパイプ・モデルのルーティングに代わる魅力的な代替案となる。しかし、残念ながら、ホース・モデルの既存の変形では、必要な過剰供給率がネットワーク・サイズに連れて増大する傾向にあるため特に、ホース・モデルの様々な変形を実施するのに現在必要な過剰供給が、依然としてホース・モデルの主要な難点となる。
【課題を解決するための手段】
【０００７】
本発明は、複数の第１のノードの少なくとも１つから複数の中間ノードに、個々の中間ノード重み係数に従って、トラフィックをルーティングするための方法を含む。具体的には、本発明の一実施形態による方法は、複数の第１のノードでトラフィックを受信する工程と、前記複数の第１のノードと少なくとも１つの宛先ノードの間に位置する複数の中間ノードを識別する工程と、個々の中間ノード・トラフィック重み係数を決定する工程と、中間ノード・トラフィック重み係数に従って、前記複数の中間ノードにトラフィックの部分をルーティングする工程とを含む。
【０００８】
一実施形態では、本発明は、コンピュータによって実行されたときに、第１のノードでトラフィックを受信する工程であって、前記トラフィックは複数の中間ノードの各々にルーティングされるように適合され、前記第１のノードは各中間ノードを個々のトラフィック重み係数に関連づける工程と、複数の中間ノードの各々に、個々の中間ノード・トラフィック重み係数に従って、トラフィックの個々の部分をルーティングする工程とを含む方法をコンピュータに実行させるソフトウェア・プログラムを保存するコンピュータ可読媒体を含む。
本発明の教示は、以下の詳細な説明を添付の図面と併せて考察することによって容易に理解することができるであろう。
【発明を実施するための最良の形態】
【０００９】
理解を容易にするため、複数の図面で共通な同一要素を指示するのに、可能な場合には、同一参照番号が使用される。
本発明は、複数の第１のノード、複数の中間ノード、および複数の宛先ノードを含む仮想私設ネットワーク・アーキテクチャとの関連で説明される。しかし、本発明の方法は、その他のネットワーク・アーキテクチャおよびトポロジにも容易に適用することができる。本発明の一実施形態は、第１のノードから複数の中間ノードに、複数の中間ノードに関連づけられた個々の中間ノード・トラフィック重み係数に従って、ネットワーク・トラフィックをルーティングする方法を含む。
【００１０】
この方法では、ネットワークを介するトラフィックのルーティングを最適化するのに、ネットワーク内の各ノードに関連する入力端容量および出力端容量のみを必要とするので、ネットワークにおける実際のトラフィック（トラフィック行列）を知る必要がなくなる。さらに、重み係数を慎重に選択することによって、ネットワークの帯域幅効率が改善される。
【００１１】
図１に、本発明から利益を得る通信ネットワーク・アーキテクチャのハイレベル・ブロック図を示す。具体的には、図１の通信ネットワーク・アーキテクチャ１００は、通信リンク１３０を介して管理システム１２０と通信する通信ネットワーク１１０を含む。通信ネットワーク１１０は、複数の第１のノード１１２１から１１２Ｎ（一括して、第１のノード１１２）、複数の中間ノード１１４１から１１４９（一括して、中間ノード１１４）、および複数の宛先ノード１１６１から１１６Ｎ（一括して、宛先ノード１１６）を含む。例を平明にするため、図１には、９つの中間ノードが示されているが、より少ないまたは多い中間ノードを使用することもできる。
【００１２】
図１に示すように、第１のノード１１２、中間ノード１１４、および宛先ノード１１６は、通信リンク１１８を介して通信する。図１には示されていないが、第１のノード１１２の各々は、付加的な通信リンクを介して、互いに直接通信することができる。同様に、図１には示されていないが、宛先ノード１１６の各々は、付加的な通信リンクを介して、互いに直接通信することができる。さらに、図１には示されていないが、第１のノード１１２の各々は、付加的な通信リンクを介して、宛先ノードの各々と直接通信することができる。
【００１３】
さらに、ただ１つの役割しか実行しないかのように示されているが、第１のノード１１２の各々は、第１のノードとして機能する以外に、中間ノードとして、また宛先ノードとして動作することができる。同様に、ただ１つの役割しか実行しないかのように示されているが、中間ノード１１４の各々は、中間ノードとして機能する以外に、第１のノードとして、また宛先ノードとして動作することができる。同様に、ただ１つの役割しか実行しないかのように示されているが、宛先ノード１１６の各々は、宛先ノードとして機能する以外に、第１のノードとして、また中間ノードとして動作することができる。
【００１４】
第１のノード１１２のいずれか１つが与えられた場合、対応する複数の中間ノード１１４の各々は、個々の中間ノード・トラフィック重み係数の合計が１（１００パーセント）となるように、個々の中間ノード・トラフィック重み係数を自ノードに関連づける。したがって、個々の中間ノード・トラフィック重み係数は、トラフィックを受信する第１のノード１１２とは無関係に設定される。第１のノード１１２の与えられたいずれか１つに関連づけられた中間ノード１１４の中に、個々のトラフィック重み係数が０に等しい中間ノードがあってもよい。
【００１５】
一実施形態では、本発明は、第１のノード１１２の１つから中間ノード１１４にトラフィックをルーティングする方法を含み、この方法は、第１のノード１１２の１つでトラフィックを受信する工程と、中間ノード１１４の各々に関連づけられた個々のトラフィック重み係数に従って、中間ノード１１４にトラフィックをルーティングする工程とを含む。第１のノード１１２の１つから中間ノード１１４の１つに、個々の中間ノード・トラフィック重み係数に従って、ネットワーク・トラフィックをルーティングすることは、第１のノード１１２の１つから宛先ノード１１６の１つにネットワーク・トラフィックをルーティングするための第１ステージ（フェーズ）である。
【００１６】
例えば、トラフィックが第１のノード１１２２で受信されて、第１のノード１１２２から中間ノード１１４４、１１４５、１１４６にルーティングされ、中間ノード１１４４、１１４５、１１４６の各々は、個々のトラフィック重み係数を自ノードに関連づけると仮定する。この例のため、中間ノード１１４４、１１４５、１１４６に関連づけるトラフィック重み係数は、それぞれ０．３、０．４、０．３であると仮定する。したがって、この例によれば、第１のノード１１２２で受信されたトラフィックの３０パーセントは、中間ノード１１４４にルーティングされ、第１のノード１１２２で受信されたトラフィックの４０パーセントは、中間ノード１１４５にルーティングされ、第１のノード１１２２で受信されたトラフィックの３０パーセントは、中間ノード１１４６にルーティングされる。
【００１７】
ネットワーク・トラフィックのルーティングは、複数の方法の少なくとも１つによって達成される。本発明の一実施形態では、第１のノード１１２の１つで受信されたトラフィックは、個々のトラフィック重み係数の各々が一定値に維持されるように、中間ノード１１４にランダムにルーティングされる。本発明の別の実施形態では、第１のノード１１２の１つで受信されたトラフィックは、個々のトラフィック重み係数の各々が一定値に維持されるように、ラウンド・ロビン・アルゴリズムによって中間ノード１１４にルーティングされる。
【００１８】
本発明のさらなる一実施形態では、第１のノード１１２の１つから中間ノード１１４にルーティングされるネットワーク・トラフィックは、中間ノード１１４から宛先ノード１１６にルーティングされる。中間ノード１１４の１つから宛先ノード１１６の１つにネットワーク・トラフィックをルーティングすることは、第１のノード１１２の１つから宛先ノード１１６の１つにネットワーク・トラフィックをルーティングするための第２ステージである。上の例を続けると、第１のノード１１２２から中間ノード１１４４、１１４５、１１４６にルーティングされたトラフィックは、次に、それらの中間ノード１１４４、１１４５、１１４６の各々から宛先ノード１１６にルーティングされる。
【００１９】
そのような一実施形態では、例えば、第１のノード１１２２によってルーティングされるトラフィックは、宛先ノード１１６の１つへの経路となる単一のコネクションに属する。この実施形態では、中間ノード１１４４、１１４５、１１４６で受信されるトラフィックは、宛先ノード１１６の１つ（例えば、宛先ノード１１６１）にルーティングされる。第１のノード１１２２によってルーティングされるトラフィックが複数のコネクションに属するような別の実施形態では、中間ノード１１４４、１１４５、１１４６で受信されるトラフィックは、宛先ノード１１６の少なくとも１つにルーティングされる。
【００２０】
トラフィックがルーティングされる宛先ノード１１６は、ルーティングされるネットワーク・トラフィックのパケット・ヘッダを調べることによって、中間ノード１１４によって決定される。トラフィックの送り先となる宛先ノードが決定された後、中間ノード１１４から宛先ノード１１６へのトラフィックのルーティングは、複数の方法の少なくとも１つによって達成される。本発明の一実施形態では、中間ノード１１４から宛先ノード１１６へのトラフィックのルーティングは、最小コスト経路ルーティング・アルゴリズム、最短経路ルーティング・アルゴリズムなど、ネットワーク内でトラフィックをルーティングするための従来の方法を用いて実行される。
【００２１】
別の実施形態では、本発明の方法は、トラフィックを宛先ノード１１６にルーティングする前に、第１の複数の中間ノードの各々によって反復して実行されて、トラフィックを少なくとも１つの他の複数の中間ノードにルーティングする。この実施形態では、第１のノード１１２の１つからトラフィックを受信した第１の複数の中間ノードの各々が、トラフィックが宛先ノード１１６にルーティングされる前にルーティング少なくとも１つの他の複数の中間ノードに対して、上で説明した第１のノードとして動作する。
【００２２】
同様に、この実施形態は、複数の第１のノードと複数の宛先ノードの間にある追加の複数の中間ノードをサポートするように拡張可能である。したがって、トラフィックを宛先ノード１１６にルーティングする前に、トラフィックを受信し、処理し、関連するトラフィック重み係数に従ってルーティングするために定義し得る、複数の中間ノードからなる組（ステージ）の数に制限はない。
【００２３】
上で述べたように、中間ノード１１４から宛先ノード１１６へのトラフィックのルーティングは、複数の方法の少なくとも１つを用いて達成される。本発明の一実施形態では、中間ノード１１４から宛先ノード１１６へのトラフィックのルーティングは、最小コスト経路ルーティング・アルゴリズム、最短経路ルーティング・アルゴリズムなど、ネットワーク内でトラフィックをルーティングするための従来の方法を用いて実行される。別の実施形態では、中間ノード１１４は、トラフィックをルーティングする少なくとも１つの中間ノードおよびトラフィックの送り先となる宛先ノードに関連づけられた少なくとも１つの他のトラフィック重み係数に従って、宛先ノード１１６にトラフィックをルーティングする。
【００２４】
第１のノード１１２２で受信されたトラフィックの部分が、第１のノード１１２２から中間ノード１１４５に、値が０．４である第１の中間ノード・トラフィック重み係数に従ってルーティングされる、上で説明した例について考える。本発明の実施形態では、中間ノード１１４５で受信されたこのトラフィックは、次に、ネットワーク内でトラフィックをルーティングするための従来の方法の少なくとも１つ、および少なくとも１つの他のトラフィック重み係数を用いて、宛先ノード１１６１にルーティングされる。
【００２５】
本発明の方法を用いると、ノードｉからノードｊにルーティングされるトラフィックの総量は、式θｊＲｉ＋θｉＣｊによって与えられる。この式において、第１項θｊＲｉは、第１のノード１１２の１つから中間ノード１１４の１つにルーティングを行う第１のフェーズに現在ある、ノードｉからノードｊにルーティングされるネットワーク・トラフィックの量を表し、第２項θｉＣｊは、中間ノード１１４の１つから宛先ノード１１６の１つにルーティングを行う第２のフェーズに現在ある、ノードｉからノードｊにルーティングされるネットワーク・トラフィックの量を表す。
【００２６】
第１項θｊＲｉにおいて、θｊは、ノードｊに関連づけられた中間ノード・トラフィック重み係数であり、Ｒｉは、ノードｉの入力端の総容量である。第２項θｉＣｊにおいて、θｉは、ノードｉに関連づけられた中間ノード・トラフィック重み係数であり、Ｃｊは、ノードｊの出力端の総容量である。上で説明したように、中間ノード・トラフィック重み係数θｉおよびθｊは、第１のノード１１２からそれらの個々のノードにルーティングされるトラフィックの部分を表す。そのため、ノードｉとノードｊの間のトラフィックの総量（したがって、ノードｉとノードｊの間で必要とされる容量の総量）は、通信ネットワーク１１０のトラフィック行列とは無関係である。
【００２７】
例えば、中間ノード１１４２から中間ノード１１４８にルーティングされるトラフィックの量を決定するため、中間ノード１１４２と中間ノード１１４８の間のルーティングの第１および第２の両ステージにおけるネットワーク・トラフィックがカウントされる。この例では、ネットワーク・トラフィックは、第１のノード１１２２から中間ノード１１４２および１１４５を介して中間ノード１１４８に、中間ノード・トラフィック重み係数に従ってルーティングされると仮定する。そのネットワーク・トラフィックは、本発明によるルーティングの第１ステージ（フェーズ）でルーティングされるので、上で定義した式の第１項（θｊＲｉ）の一部としてカウントされる。
【００２８】
この例を続け、ネットワーク・トラフィックが、第１のノード１１２２から中間ノード１１４２に、中間ノード・トラフィック重み係数に従ってルーティングされると仮定する。さらに、中間ノード１１４２にルーティングされたネットワーク・トラフィックは、次に、中間ノード１１４５および１１４８を介して、宛先ノード１１６２にルーティングされると仮定する。そのネットワーク・トラフィックは、本発明によるルーティングの第２ステージ（フェーズ）で中間ノード１１４２から中間ノード１１４８にルーティングされるので、上で定義した式の第２項（θｊＲｉ）の一部としてカウントされる。
【００２９】
第１の中間ノード・トラフィック重み係数は、ネットワーク１１０内の２つのノード間（例えば、中間ノード１１４２と中間ノード１１４８の間）の経路の利用度がほぼ一定となるような方式で定めることができる。利用度がほぼ一定の経路は、上で説明したように、式θｊＲｉ＋θｉＣｊによって与えられる容量を有する。そのような利用度がほぼ一定の経路を定めることによって、トラフィックのルーティングは、ネットワークのトラフィック行列とは無関係になる。したがって、本発明は、ネットワークのトラフィック行列を知る必要なしに、ネットワーク容量の効率的利用を可能にする。
【００３０】
本発明の一実施形態では、通信ネットワーク１１０の中間ノード１１４は、現在、自ノードに関連づけられた個々のトラフィック重み係数を有していない。そのため、ネットワークを介するトラフィックのルーティングは、ネットワークを介してトラフィックをルーティングするための従来の方法のいずれかに基づくことができる。この実施形態では、本発明は、既存のネットワーク内でトラフィック・フローを適応させるための方法を含む。本明細書で説明するように、少なくとも１組の個々のトラフィック重み係数を使用して、ネットワーク内のトラフィック・フローを制御することができる。
【００３１】
本発明の一実施形態では、中間ノード１１４の各々に対して、個々のトラフィック重み係数が設定される。個々のトラフィック重み係数を使用して、第１のノード１１２から中間ノード１１４へのトラフィックのルーティングを適応させることができる。別の実施形態では、次の複数の中間ノードに対して、次の個々のトラフィック重み係数が設定され、次の個々のトラフィック重み係数は、第１の複数の中間ノードから次の複数の中間ノードへのトラフィックのルーティングを適応させる働きをもつ。開始ノード１１２と宛先ノード１１６の間にある中間ノードのステージの数に制限はないので、中間ノードのそれらのステージに関連づけられる個々のトラフィック重み係数の数に制限はない。
【００３２】
中間ノード１１４に関連づけられた個々の中間ノード・トラフィック重み係数の設定は、複数の方法の少なくとも１つによって達成される。本発明の一実施形態では、個々の中間ノード・トラフィック重み係数は、例えば、図１に示すような管理システム１２０などの管理システムによって決定される。この実施形態では、個々の中間ノード・トラフィック重み係数は、次に、トラフィックのルーティングで使用するため、第１のノード１１２、中間ノード１１４、および宛先ノード１１６に通知される。別の実施形態では、個々の中間ノード・トラフィック重み係数は、第１のノード１１２、中間ノード１１４、および宛先ノード１１６の少なくとも１つによって決定され、次に、通信ネットワーク１１０内のノードに通知される。どちらの実施形態でも、個々のトラフィック重み係数は、ネットワーク要素間での通信に適したいずれかの手段を用いて通知される。
【００３３】
管理システム１２０による既存のネットワーク内でのトラフィック・フローの適応は、複数の方法の少なくとも１つを用いて達成される。本発明の一実施形態では、管理システム１２０は、ソフトウェア・プログラムを読み込み、ソフトウェア・プログラムを実行し、結果のトラフィック・ルーティング命令を通信ネットワーク１１０内のノードに通知する。この実施形態では、結果のトラフィック・ルーティング命令は、ネットワーク内のトラフィック・フローを適応させるために使用される。
【００３４】
別の実施形態では、管理システム１２０は、通信ネットワーク１１０内の少なくとも１つのノードに、ソフトウェア・プログラムの少なくとも一部を伝達する。この実施形態では、ソフトウェア・プログラムの少なくとも一部を受信したノードは、ソフトウェア・プログラムの受信した部分を実行して、結果のトラフィック・ルーティング命令を、ネットワーク内のトラフィック・フローを適応させるために、そのノードで使用する。
【００３５】
図２に、図１の通信ネットワーク・アーキテクチャ１００での使用に適したコントローラのハイレベル・ブロック図を示す。具体的には、図２の例示的なコントローラ２００は、プロセッサ２１０と、様々な要素管理、ネットワーク管理、トラフィック管理、および制御プログラム２２５を格納するメモリ２２０と、サポート回路２３０と、入出力回路２４０とを含む。図２に示すように、メモリ２２０、サポート回路２３０、および入出力回路２４０は、プロセッサ２１０に結合される。
【００３６】
プロセッサ２１０は、メモリ２２０に格納されたプログラム２２５の実行を支援する回路と協働するほか、電源、クロック回路、キャッシュ・メモリなど、従来のサポート回路２３０とも協働する。したがって、本明細書でソフトウェア・プロセスとして開示されるプロセス工程のいくつかは、例えば、プロセッサ２１０と協働して様々な工程を実行するサポート回路２３０として、ハードウェア内で実施可能であることが企図されている。
【００３７】
コントローラ２００は、図１のネットワーク１１０と通信するため、コントローラ２００の様々な機能要素の間のインタフェースを形成する入出力回路２４０を含む。本発明の一実施形態では、図２のコントローラ２００は、図１の管理システム１２０として実施される。この実施形態では、図１に示すように、管理システム１２０は、通信リンク１３０を介して通信ネット１１０と通信する。
【００３８】
図２のコントローラ２００は、本発明による様々なトラフィック・ルーティング機能を実行するようにプログラムされる汎用コンピュータとして示されているが、本発明は、例えば、特定用途向け集積回路としてハードウェアで実施することもできる。したがって、本明細書で説明するプロセス工程は、ソフトウェア単独でも、ハードウェア単独でも、または双方を組み合わせても等価に実行されると広く解釈されるものとする。
【００３９】
図３に、本発明による方法のフローチャートを示す。具体的には、図３には、複数の第１のノードの少なくとも１つから複数の中間ノードの少なくとも１つに、個々の中間ノード・トラフィック重み係数に従って、ネットワーク・トラフィックをルーティングするための、また場合によっては、少なくとも１つの宛先ノードにネットワーク・トラフィックをルーティングするための方法３００のフローチャートが示されている。図３の方法３００は、工程３１０で開始されて、工程３２０に進み、トラフィックが複数の第１のノードの少なくとも１つによって受信される。トラフィックは、当技術分野で知られている受信および処理機能を実行するのに適したいずれかの方法に従って、受信され、処理される。
【００４０】
工程３３０で、工程３２０において複数の第１のノードによって受信されたネットワーク・トラフィックが、複数の中間ノードの少なくとも１つに、個々の中間ノード・トラフィック重み係数に従ってルーティングされる。ネットワーク・トラフィックがルーティングされる中間ノードは、ネットワーク・トラフィックをルーティングした第１のノードに直接結合されている必要はない。本発明の一実施形態では、方法３００は、場合によっては、工程３３０の後で終了する。別の実施形態では、方法３００は工程３４０に進む。
【００４１】
工程３４０で、工程３３０においてトラフィックを受信した中間ノードが、複数の宛先ノードの少なくとも１つにトラフィックを直接ルーティングすべきか、それとも複数の宛先ノードの少なくとも１つにルーティングする前に、次の複数の中間ノードにトラフィックをルーティングすべきかを決定する。次の複数の中間ノードにトラフィックをルーティングすべき場合、方法３００は工程３５０に進む。複数の宛先ノードの少なくとも１つにトラフィックを直接ルーティングすべき場合、方法３００は工程３６０に進む。
【００４２】
工程３５０で、最後にネットワーク・トラフィックを受信した中間ノードが、そのトラフィックを次の複数の中間ノードにルーティングする。本発明の一実施形態では、次の複数の中間ノードへのネットワーク・トラフィックのルーティングは、最小コスト経路ルーティング・アルゴリズム、最短経路ルーティング・アルゴリズムなど、ネットワーク内でトラフィックをルーティングするための従来の方法を用いて実行される。別の実施形態では、次の複数の中間ノードへのネットワーク・トラフィックのルーティングは、次の複数の中間ノードに関連づけられた個々の中間ノード・トラフィック重み係数に従って実行される。
【００４３】
その後、工程３４０および工程３５０は、複数の宛先ノードの少なくとも１つにトラフィックを直接ルーティングする複数の中間ノードにトラフィックがルーティングされるまで、反復的に実行される。複数の宛先ノードの少なくとも１つにトラフィックを直接ルーティングする最終的な複数の中間ノードによってトラフィックが受信されると、方法３００は工程３６０に進む。
【００４４】
工程３６０で、トラフィックを受信した最終的な複数の中間ノードが、そのトラフィックを複数の宛先ノードの少なくとも１つにルーティングする。トラフィックがルーティングされる宛先ノードは、トラフィックをルーティングした複数の中間ノードに直接結合されている必要はない。本発明の一実施形態では、データ・パケットの送り先となる宛先ノードを決定するため、データ・パケットをルーティングする中間ノードは、データ・パケットのヘッダを抽出して読み、送り先となる宛先ノードを決定する。
【００４５】
最終的な複数の中間ノードから複数の宛先ノードへのトラフィックのルーティングは、複数の方法の少なくとも１つによって達成される。本発明の一実施形態では、最終的な複数の中間ノードから複数の宛先ノードの少なくとも１つへのトラフィックのルーティングは、最小コスト経路ルーティング・アルゴリズム、最短経路ルーティング・アルゴリズムなど、ネットワーク内でトラフィックをルーティングするための従来の方法を用いて実行される。
【００４６】
別の実施形態では、最終的な複数の中間ノードから複数の宛先ノードの少なくとも１つへのトラフィックのルーティングは、最終的な複数の中間ノードの各々に関連づけられた個々のトラフィック重み係数に従って実行される。ネットワーク・トラフィックが複数の宛先ノードの少なくとも１つにルーティングされた後、方法３００は、方法３００が終了する工程３７０に進む。
【００４７】
図４に、本発明による方法のフローチャートを示す。具体的には、図４には、複数の第１のノードから複数の中間ノードに、第１の個々の中間ノード・トラフィック重み係数に従って、ネットワーク・トラフィックをルーティングするための、また場合によっては、複数の宛先ノードにネットワーク・トラフィックをルーティングするための方法４００のフローチャートが示されている。図４の方法４００は、工程４０２で開始されて、工程４０４に進み、トラフィックが複数の第１のノードによって受信される。ネットワーク・トラフィックは、当技術分野で知られている受信および処理機能を実行するのに適したいずれかの方法に従って、受信され、処理される。
【００４８】
工程４０６で、複数の第１のノードの各々が、トラフィックをルーティングする中間ノードを識別する。トラフィック（データ・パケット）がルーティングされる中間ノードは、管理システム１２０による通信リンク１３０を介した通知、複数の第１のノード１１２の各々での少なくとも１つのテーブル検索、およびデータ・パケットのそれぞれのヘッダの読み取りなどの利用を含む複数の方法の少なくとも１つによって決定される。
【００４９】
工程４０８で、複数の第１のノードの各々は、工程４０６において決定された複数の中間ノードの各々に関連づけられた個々の中間ノード・トラフィック重み係数を決定する。複数の第１のノードでは、対応する複数の中間ノードの各々に関連づけられた個々のトラフィック重み係数は、上で説明したように、合計すると１（１００パーセント）になる。
【００５０】
工程４１０で、工程４０４において複数の第１のノードによって受信されたトラフィックは、複数の中間ノードの各々に関連づけられた個々のトラフィック重み係数に従って、複数の中間ノードにルーティングされる。トラフィックがルーティングされる中間ノードは、ネットワーク・トラフィックをルーティングした複数の第１のノードに直接結合されている必要はない。本発明の一実施形態では、方法４００は、場合によっては、工程４１０の後で終了する。別の実施形態では、方法４００は工程４１２に進む。
【００５１】
工程４１２で、複数の中間ノードが、複数の宛先ノードにトラフィックを直接ルーティングすべきか、それとも複数の宛先ノードにルーティングする前に、次の複数の中間ノードにトラフィックをルーティングすべきかを決定する。次の複数の中間ノードにネットワーク・トラフィックをルーティングすべき場合、方法４００は工程４１４に進む。複数の宛先ノードにトラフィックを直接ルーティングすべき場合、方法４００は工程４２０に進む。
【００５２】
図４に示された工程４１４、工程４１６、工程４１８は、図４に示され、本明細書で説明された工程４０６、工程４０８、工程４１０に対応しており、ほぼ同じ方式で実行される。第１の複数の中間ノードに関連づけられた第１の個々のトラフィック重み係数の代わりに、工程４１４、工程４１６、工程４１８は、次の複数の中間ノードの各々に関連づけられた次の個々の中間ノード・トラフィック重み係数に従って実行される。
【００５３】
その後、工程４１２、工程４１４、工程４１６、工程４１８は、複数の宛先ノードの少なくとも１つにネットワーク・トラフィックを直接ルーティングする複数の中間ノードにトラフィックがルーティングされるまで、反復的に実行される。複数の宛先ノードの少なくとも１つにトラフィックを直接ルーティングする複数の中間ノードの各々によってトラフィックが受信されると、方法４００は工程４２０に進む。
【００５４】
工程４２０で、トラフィックを受信した最終的な複数の中間ノードの各々が、そのトラフィックを複数の宛先ノードの少なくとも１つにルーティングする。トラフィックがルーティングされる宛先ノードは、トラフィックをルーティングした複数の中間ノードの各々に直接結合されている必要はない。本発明の一実施形態では、トラフィックがルーティングされる宛先ノードは、（各データ・パケットのそれぞれのヘッダにアクセスすることによって）トラフィックをルーティングする中間ノードによって決定される。最終的な複数の中間ノードから複数の宛先ノードへのトラフィックのルーティングは、複数の方法の少なくとも１つによって達成される。
【００５５】
本発明の一実施形態では、最終的な複数の中間ノードの各々から複数の宛先ノードの少なくとも１つへのトラフィックのルーティングは、最小コスト経路ルーティング・アルゴリズム、最短経路ルーティング・アルゴリズムなど、ネットワーク内でトラフィックをルーティングするための従来の方法を用いて実行される。別の実施形態では、最終的な複数の中間ノードの各々から複数の宛先ノードの少なくとも１つへのトラフィックのルーティングは、最終的な複数の中間ノードの各々に関連づけられた個々のトラフィック重み係数に従って実行される。トラフィックが複数の宛先ノードの少なくとも１つにルーティングされた後、方法４００は、方法４００が終了する工程４２２に進む。
【００５６】
図５に、本発明による方法のフローチャートを示す。具体的には、図５には、複数の第１のノード、複数の中間ノード、および複数の宛先ノードを有する既存のネットワーク内でトラフィック・フローを適応させるための方法５００のフローチャートが示されている。図５の方法５００は、工程５１０で開始されて、工程５２０に進む。
【００５７】
工程５２０で、複数の中間ノードに関連づけられた個々の中間ノード・トラフィック重み係数が設定される。上で説明したように、個々のトラフィック重み係数は、複数の第１のノードの１つで受信されるトラフィックであって、その第１のノードに関連づけられた複数の中間ノードの１つにルーティングされるトラフィックの部分に対応する。
【００５８】
本発明の一実施形態では、個々のトラフィック重み係数は、管理システム１２０によって決定され、通信リンク１３０を介して通信ネットワーク１１０に伝達される。別の実施形態では、個々のトラフィック重み係数は、複数の第１のノード、複数の中間ノード、および複数の宛先ノードの少なくとも１つによって計算され、通信ネットワーク１１０内のノードに通知される。複数の第１のノードの各々では、個々の中間ノード・トラフィック重み係数は、合計すると１（１００パーセント）になる。
【００５９】
工程５３０では、個々の中間ノード・トラフィック重み係数の設定の後、ネットワーク内でのトラフィックのルーティングが、個々のトラフィック重み係数に従って適応させられる。設定された個々のトラフィック重み係数に従ったトラフィックのルーティングは、本明細書で説明したトラフィックをルーティングするための方法を用いて達成される。その後、方法５００は、方法５００が終了する工程５４０に進む。
【００６０】
少なくとも１つの他の複数の中間ノードを使用して、複数の第１のノードから複数の宛先ノードにトラフィックをルーティングする、上で説明した方法５００による一実施形態では、少なくとも１つの他の複数の中間ノードの各々が、他の個々のトラフィック重み係数に自ノードを関連づけるように、他の個々のトラフィック重み係数が設定される。この実施形態では、ネットワーク内でのトラフィックのルーティングはさらに、他の個々のトラフィック重み係数に従って適応させられる。
【００６１】
上で説明した実施形態の各々で、個々の中間ノード・トラフィック重み係数は、通信ネットワーク内での２つのノード間で、利用度がほぼ一定となる経路が確立されるように、計算し、設定することができる。上で説明したように、利用度がほぼ一定の経路の全容量は、式θｊＲｉ＋θｉＣｊによって与えられる。この式において、第１項θｊＲｉは、（例えば、第１のノード１１２の１つから中間ノード１１４の１つに）ルーティングを行う第１のフェーズに現在ある、ノードｉからノードｊにルーティングされるネットワーク・トラフィックの量を表す。同様に、第２項θｉＣｊは、（例えば、中間ノード１１４の１つから宛先ノード１１６の１つに）ルーティングを行う第２のフェーズに現在ある、ノードｉからノードｊにルーティングされるネットワーク・トラフィックの量を表す。
【００６２】
第１項θｊＲｉにおいて、θｊは、ノードｊに関連づけられた中間ノード・トラフィック重み係数であり、Ｒｉは、ノードｉの入力端の総容量である。第２項θｉＣｊにおいて、θｉは、ノードｉに関連づけられた中間ノード・トラフィック重み係数であり、Ｃｊは、ノードｊの出力端の総容量である。上で説明したように、中間ノード・トラフィック重み係数θｉおよびθｊは、第１のノード１１２からそれらの個々のノードにルーティングされるトラフィックの部分を表す。そのため、ノードｉとノードｊの間のトラフィックの総量（したがって、ノードｉとノードｊの間で必要とされる容量の総量）は、通信ネットワーク１１０のトラフィック行列とは無関係である。
【００６３】
本発明の一実施形態では、トラフィックは、複数の第１のノードにおいて、パケット・レベルで分割され、同じコネクションに属するパケットは、第１のノードの１つから複数の宛先ノードの１つまで異なる経路をとる。この実施形態では、異なる経路をとるパケットは、異なるネットワーク待ち時間をこうむることがあり、その結果、宛先ノードに順序通りに到着しないことがある。この実施形態では、コネクションのパケットを正しい順序に並び替えるため、宛先ノードにおいて少なくとも１つの順序付け替えバッファを利用する必要がある。
【００６４】
本発明の別の実施形態では、トラフィックは、複数の第１のノードにおいて、フロー・レベルで分割され、同じコネクションに属するパケットは、複数の第１のノードの１つから複数の宛先ノードの１つまで同じ経路を辿る。この実施形態では、フロー毎の状態が、複数の中間ノードの各々で維持される。フロー・レベルは、第１のノードのポート、第１のノードのアドレス、宛先ノードのポート、宛先ノードのアドレス、およびプロトコルにフローを関連づける。プロトコルは、フロー毎の状態を維持しながら、第１のノードから宛先ノードにトラフィックをルーティングするのに適したいずれかのプロトコルとする。
【００６５】
本明細書で説明したように、一実施形態では、本発明は、宛先ノードにトラフィックを伝送するように適合された通信経路内の非宛先ノードを介して宛先ノードにトラフィックをルーティングするための方法を含む。この実施形態では、非宛先ノードは、トラフィック重み係数を、非宛先ノードと宛先ノードの間に位置する複数のノードの少なくとも１つに関連づけ、非宛先ノードは、個々の中間ノード・トラフィック重み係数に従って、トラフィックの個々の部分を中間ノードにルーティングする。
【００６６】
本明細書で説明した異なる実施形態では、中間ノード・トラフィック重み係数の第１のノードおよび宛先ノードに対する依存性は異なり得る。一実施形態では、中間ノード・トラフィック重み係数は、複数の第１のノードと複数の宛先ノードのどちらにも依存しない。別の実施形態では、中間ノード・トラフィック重み係数は、複数の第１のノードには依存するが、複数の宛先ノードには依存しない。別の実施形態では、中間ノード・トラフィック重み係数は、複数の第１のノードと複数の宛先ノードのどちらにも依存する。
【００６７】
本発明による方法では、上で詳しく説明したように、ネットワークを介したトラフィックのルーティングを最適化するのに、ネットワーク内における実際のトラフィックについての知識は必要ではない。代わりに、ネットワークを介したトラフィックのルーティングを最適化するのに、ネットワーク内の各ノードに関連する入力端容量および出力端容量についての知識だけが必要とされる。
【００６８】
本発明の教示を含む様々な実施形態を示し、詳細に説明してきたが、当業者であれば、本発明の教示を依然として含む他の多くの変形された実施形態を容易に考案することができるであろう。
【図面の簡単な説明】
【００６９】
【図１】通信ネットワーク・アーキテクチャのハイレベル・ブロック図である。
【図２】図１の通信ネットワーク・アーキテクチャでの使用に適したコントローラのハイレベル・ブロック図である。
【図３】本発明による方法のフローチャートである。
【図４】本発明による方法のフローチャートである。
【図４Ａ】本発明による方法のフローチャートである。
【図５】本発明による方法のフローチャートである。
【図１】
2006101510.tif 000003
【図２】
2006101510.tif 000004
【図３】
2006101510.tif 000005
【図４】
2006101510.tif 000006
【図４Ａ】
2006101510.tif 000007
【図５】
2006101510.tif 000008