(57)【特許請求の範囲】
【請求項１】
ドメイン内に最適パスを生成する方法において、
ａ）前記ドメインのトラフィック量を推定するステップと、
ｂ）前記推定トラフィック量に従ってトラフィックマトリクスを構築するステップと、
ｃ）前記トラフィックマトリクスの各非０要素に対応する、変更可能なプロビジョニングルートを計算するステップと、
ｄ）前記計算されたプロビジョニングルートに応じて前記トラフィックマトリクスを再調整するステップと、
を有し、
前記ステップｃ）は、
ｃ−１）ソース、デスティネーション、前記ソースと前記デスティネーションとの間のレート、及びパス変更可能性を示すインジケータを有するパスからなるクワドラプレットであって、前記少なくとも１つのクラスに対応する全てのものを列挙してソートするステップと、
ｃ−２）拒絶されていない第１クワドラプレットを選択するステップと、
ｃ−３）前記第１クワドラプレットに対応する利用可能最短パスの帯域幅が前記第１クワドラプレットの理想的最短パスの帯域幅よりどれだけ増大するかを表す前記第１クワドラプレットのサブ・オプティマリティ・コストを計算するステップと、
ｃ−４）前記サブ・オプティマリティ・コストがゼロの場合には前記利用可能最短パスを受け入れ、前記サブ・オプティマリティ・コストがゼロでない場合には前記理想的最短パスが実現可能かどうかを決定するバックトラッキングを実行することで、前記第１クワドラプレットに対応する帯域幅利用要求を満たす全てのパスからなるサブネットワークにおける前記ソース及び前記デスティネーション間の最適パスを計算するステップと、
を有し、
前記バックトラッキングは、
変更可能に設定された先のクワドラプレットと、前記サブネットワークにおける前記先のクワドラプレットの前記ソース及び前記デスティネーションとの間の全てのリンクを有するマトリクスを生成するステップと、
前記マトリクスが空ならば、前記第１クワドラプレットの前記利用可能最短パスを受け入れるステップと、
前記マトリクスが空でないならば、前記先のクワドラプレットを削除し、前記第１クワドラプレットを加えることで、前記先のクワドラプレットに対応する変更されたパスを生成するステップと、
前記先のクワドラプレットのレートと、前記現在のパスのホップ数と前記マトリクスにおける前記先のクワドラプレットに対する前記変更されたパスのホップ数との差と、に従って前記先のクワドラプレットのシフティングコストの最小値を計算するステップと、
前記先のクワドラプレットの前記最小シフティングコストが前記第１クワドラプレットの前記サブ・オプティマリティ・コストより大きいならば、前記利用可能最短パスを受け入れるステップと、
前記先のクワドラプレットの前記最小シフティングコストが前記第１クワドラプレットの前記サブ・オプティマリティ・コスト以下ならば、
ｉ）前記先のクワドラプレットを新たなパスでルーティングし、前記先のクワドラプレットの前記現在の利用可能最短パスを前記新たなパスにリセットするステップと、
ｉｉ）前記第１クワドラプレットを前記第１クワドラプレットに対する前記理想的最短パスでルーティングし、前記利用可能最短パスを前記第１クワドラプレットに対する前記理想的最短パスにリセットするステップと、
ｉｉｉ）前記第１クワドラプレットを変更不可に設定するステップと、
を有し、
前記ステップａ）〜ｄ）を少なくとも１つのクラスに対して優先順位の高い順に実行することを特徴とする最適パス生成方法。
【請求項２】
前記ドメインは、ＩＰバックボンネットワーク、および、複数のコアノードが論理リンクを介して隣接ドメインのゲートウエイノードに接続され、かつ少なくとも１つのバイパスノードが前記コアノードの少なくとも１つに接続されているネットワーク、のうちの１つである、ことを特徴とする請求項１記載の方法。
【請求項３】
前記ステップｃ−３）におけるサブ・オプティマリティ・コストは、前記第１クワドラプレットの前記理想的最短パスと当該理想的最短パスのホップ数Ｈと、前記第１クワドラプレットの前記利用可能最短パスと当該利用可能最短パスのホップ数Ｈ*と、前記レートと、に従って、計算されることを特徴とする請求項１記載の方法。
【請求項４】
さらに、
複数のディファレンシエーテッドサービス（Diffserv）クラスから最も高い未選択のクラスを選択するステップと、
前記第１クワドラプレットの前記最適パスに従って、前記ネットワークの帯域幅利用可能性を調整するステップと、
を有することを特徴とする請求項１記載の方法。
【請求項５】
前記ステップｄ）は、前記ドメインがDiffservネットワークの場合には帯域幅の利用可能性を調整し、前記ドメインが光ネットワークの場合には光波長の利用可能性を調整するステップを有することを特徴とする請求項１記載の方法。
【請求項６】
ＳＬＡ（Service Level Agreement：サービスレベル契約）のパス・プロビジョニングのためのネットワークにおいて、
各々が、前記ＳＬＡに従った所定量トラフィックの受信及び送信のいずれかを行う複数のエッジノードと、
受信及び送信エッジノードを互いに接続し、各々が最大キャパシティを有する複数のリンクと、を有し、
前記エッジノードの１つは入口（ingress）ルータであり、前記入り口ルータは、先に計算されたパスをリセットするコストが現在のサブ・オプティマルパスに対するサブ・オプティマリティ・コストより少ないならば、前記先に計算されたパスをリセットして前記現在のサブ・オプティマルパスに対する最適パスを計算する、ことを特徴するネットワーク。
【請求項７】
前記ネットワークはDiffservネットワークであり、前記キャパシティは帯域幅であることを特徴とする請求項６記載のネットワーク。
【請求項８】
前記ネットワークは光ネットワークであり、前記キャパシティは光波長であることを特徴とする請求項６記載のネットワーク。
【請求項９】
前記ネットワークは、ＩＰバックボンネットワーク、および、複数のコアノードが論理リンクを介して隣接ドメインのゲートウエイノードに接続され、かつ少なくとも１つのバイパスノードが前記コアノードの少なくとも１つに接続されているネットワーク、のうちの１つである、ことを特徴とする請求項６記載のネットワーク。
【請求項１０】
前記入口ルータは、
ａ）前記ネットワークのトラフィック量を推定し、
ｂ）前記推定トラフィック量に従ってトラフィックマトリクスを構築し、
ｃ−１）ソース、デスティネーション、前記ソースと前記デスティネーションとの間のレート、及びパス変更可能性を示すインジケータを有するパスからなるクワドラプレットであって、前記少なくとも１つのクラスに対応する全てのものをソートし、
ｃ−２）拒絶されていない第１クワドラプレットを選択し、
ｃ−３）前記第１クワドラプレットに対応する利用可能最短パスの帯域幅が前記第１クワドラプレットの理想的最短パスの帯域幅よりどれだけ増大するかを表す前記第１クワドラプレットのサブ・オプティマリティ・コストを計算し、
ｃ−４）前記第１クワドラプレットのサブ・オプティマリティ・コストがゼロの場合には前記第１クワドラプレットに対応する利用可能最短パスを受け入れ、前記第１クワドラプレットのサブ・オプティマリティ・コストがゼロでない場合には前記第１クワドラプレットの理想的最短パスが実現可能かどうかを決定するバックトラッキングを実行することにより、前記第１クワドラプレットに対応する帯域幅利用要求を満たす全てのパスからなるサブネットワークにおける前記ソース及び前記デスティネーション間の最適パスを計算する、ことによって、前記トラフィックマトリクスの各非０要素に対応する、変更可能なプロビジョニングルートを計算し、
前記バックトラッキングは、
変更可能に設定された先のクワドラプレットと、当該先のクワドラプレットが前記サブネットワークにおける当該先のクワドラプレットの前記ソース及び前記デスティネーションとの間の全てのリンクを有するマトリクスを生成し、
前記マトリクスが空ならば、前記第１クワドラプレットの前記利用可能最短パスを受け入れ、
前記マトリクスが空でないならば、前記先のクワドラプレットを削除し、前記第１クワドラプレットを加えることで、前記先のクワドラプレットに対応する変更されたパスを生成し、
前記先のクワドラプレットのレートと、前記現在のパスのホップ数と前記マトリクスにおける前記先のクワドラプレットに対する前記変更されたパスのホップ数との差と、に従って前記先のクワドラプレットのシフティングコストの最小値を計算し、
前記先のクワドラプレットの前記最小シフティングコストが前記第１クワドラプレットの前記サブ・オプティマリティ・コストより大きいならば、前記利用可能最短パスを受け入れ、
前記先のクワドラプレットの前記最小シフティングコストが前記第１クワドラプレットの前記サブ・オプティマリティ・コスト以下ならば、
前記先のクワドラプレットを新たなパスＰ*でルーティングし、前記先のクワドラプレットの利用可能最短パスを前記新たなパスＰ*にリセットし、
前記第１クワドラプレットを前記第１クワドラプレットに対する前記理想的最短パスでルーティングし、前記利用可能最短パスを前記第１クワドラプレットに対する前記理想的最短パスにリセットし、
前記第１クワドラプレットを変更不可に設定する、
ことにより実行され、
ｄ）前記計算されたプロビジョニングルートに応じて前記トラフィックマトリクスを再調整し、
前記ステップａ）〜ｄ）を少なくとも１つのクラスに対して優先順位の高い順に実行ことを特徴とする請求項６記載のネットワーク。
【請求項１１】
前記サブ・オプティマリティ・コストは、前記第１クワドラプレットの前記理想的最短パスと当該理想的最短パスのホップ数Ｈと、前記第１クワドラプレットの前記利用可能最短パスと当該利用可能最短パスのホップ数Ｈ*と、前記レートと、に従って、計算されることを特徴とする請求項１０記載のネットワーク。
【請求項１２】
前記入口ルータは、さらに、
複数のディファレンシエーテッドサービス（Diffserv）クラスから最も高い未選択のクラスを選択し、
前記第１クワドラプレットの前記最適パスに従って、前記ネットワークの帯域幅利用可能性を調整する、
ことを特徴とする請求項１０記載のネットワーク。
【請求項１３】
請求項６記載のネットワークにおける前記入口ルータを動作させるためのコンピュータプログラムにおいて、
ａ）前記ネットワークのトラフィック量を推定し、
ｂ）前記推定トラフィック量に従ってトラフィックマトリクスを構築し、
ｃ−１）ソース、デスティネーション、前記ソースと前記デスティネーションとの間のレート、及びパス変更可能性を示すインジケータを有するパスからなるクワドラプレットであって、前記少なくとも１つのクラスに対応する全てのものをソートし、
ｃ−２）拒絶されていない第１クワドラプレットを選択し、
ｃ−３）前記第１クワドラプレットに対応する利用可能最短パスの帯域幅が前記第１クワドラプレットの理想的最短パスの帯域幅よりどれだけ増大するかを表す前記第１クワドラプレットのサブ・オプティマリティ・コストを計算し、
ｃ−４）前記第１クワドラプレットのサブ・オプティマリティ・コストがゼロの場合には前記第１クワドラプレットに対応する利用可能最短パスを受け入れ、前記第１クワドラプレットのサブ・オプティマリティ・コストがゼロでない場合には前記第１クワドラプレットの理想的最短パスが実現可能かどうかを決定するバックトラッキングを実行することにより、前記第１クワドラプレットに対応する帯域幅利用要求を満たす全てのパスからなるサブネットワークにおける前記ソース及び前記デスティネーション間の最適パスを計算する、ことによって、前記トラフィックマトリクスの各非０要素に対応する、変更可能なプロビジョニングルートを計算し、
前記バックトラッキングは、
変更可能に設定された先のクワドラプレットと、当該先のクワドラプレットが前記サブネットワークにおける当該先のクワドラプレットの前記ソース及び前記デスティネーションとの間の全てのリンクを有するマトリクスを生成し、
前記マトリクスが空ならば、前記第１クワドラプレットの前記利用可能最短パスを受け入れ、
前記マトリクスが空でないならば、前記先のクワドラプレットを削除し、前記第１クワドラプレットを加えることで、前記先のクワドラプレットに対応する変更されたパスを生成し、
前記先のクワドラプレットのレートと、前記現在のパスのホップ数と前記マトリクスにおける前記先のクワドラプレットに対する前記変更されたパスのホップ数との差と、に従って前記先のクワドラプレットのシフティングコストの最小値を計算し、
前記先のクワドラプレットの前記最小シフティングコストが前記第１クワドラプレットの前記サブ・オプティマリティ・コストより大きいならば、前記利用可能最短パスを受け入れ、
前記先のクワドラプレットの前記最小シフティングコストが前記第１クワドラプレットの前記サブ・オプティマリティ・コスト以下ならば、
前記先のクワドラプレットを新たなパスＰ*でルーティングし、前記先のクワドラプレットの前記利用可能最短パスを前記新たなパスＰ*にリセットし、
前記第１クワドラプレットを前記第１クワドラプレットに対する前記最短理想的パスでルーティングし、前記利用可能最短パスを前記第１クワドラプレットに対する前記最短理想的パスにリセットし、
前記第１クワドラプレットを変更不可に設定する、
ことにより実行され、
ｄ）前記計算されたプロビジョニングルートに応じて前記トラフィックマトリクスを再調整し、
前記ステップａ）〜ｄ）を少なくとも１つのクラスに対して優先順位の高い順に実行するステップを有することを特徴とする前記入口ルータ用コンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はネットワークにおいてパスを提供するシステムおよび方法に係り、特にＩＰディファレンシエーテッド・サービス（ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  ｓｅｒｖｉｃｅ）ネットワークおよび光ネットワークにおけるＳＬＡ（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ：サービスレベル契約）の実行およびトラフィックフローのためのプロビジョニング（ｐｒｏｖｉｓｉｏｎｉｎｇ）を行うシステムおよび方法に関する。
【０００２】
【従来の技術】
従来のＩＰディファレンシエテッド・サービス（Ｄｉｆｆｓｅｒｖ）は、インターネット内でＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ：サービス品質）保証を実現するための効率的且つスケーラブルな仕組みを提供する。従来のＤｉｆｆｓｅｒｖは、従来のフロー単位でシグナリングを行う手法に比べて有利である。従来のフロー単位シグナリングは、エンド・ツー・エンドのＱｏＳ保証を実現するためにコアネットワークにおいてフロー毎に状態をもつ必要があり、そのために拡張性がない。これに対して、従来のＤｉｆｆｓｅｒｖ手法は、ＩＰトラフィックをクラスベースで集約されたフローとして取り扱うことにより、フロー単位シグナリングの拡張性の問題を解決しており、アプリケーションレベルのフローに基づく従来のインテグレイテッド・サービス（Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅ  ：  ＩｎｔＳｅｒｖ）アプローチとは異なっている。
【０００３】
Ｄｉｆｆｓｅｒｖ手法では、各ＩＰパケットがいくつかの予め定義されたＤｉｆｆｓｅｒｖクラスの一つに分類され、Ｄｉｆｆｓｅｒｖクラスに基づいてサービス品質が割り当てられる。Ｄｉｆｆｓｅｒｖ仕様はＤｉｆｆｓｅｒｖドメインとして知られるネットワークエリアにインプリメントされ、ＤｉｆｆｓｅｒｖドメインはＩＰパケットの出入り口となるエッジエレメントを有する。なお、Ｄｉｆｆｓｅｒｖアーキテクチャについてのより詳細な記述は、Ｋ．ＫｉｌｋｋｉのＤｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  ｆｏｒ  ｔｈｅ  Ｉｎｔｅｒｎｅｔ，  １９９９を参照のこと。
【０００４】
ＩＰパケットがエッジエレメントからＤｉｆｆｓｅｒｖドメインに入ると、ＩＰパケットはエッジエレメント（たとえば、入口ルータ（ｉｎｇｒｅｓｓ  ｒｏｕｔｅｒ））で分類され、入ＩＰパケットのＤｉｆｆｓｅｒｖクラスを特定するＤｉｆｆｓｅｒｖコードポイント（ＤＳＣＰ：Ｄｉｆｆｓｅｒｖ  ｃｏｄｅ  ｐｏｉｎｔ）でマーキングされる。より詳しくは、ＤＳＣＰは、ＩＰパケットヘッドのサービスクラス／サービスタイプ（ＣＯＳ／ＴＯＳ：Ｃｌａｓｓ  ｏｆ  Ｓｅｒｖｉｃｅ／Ｔｙｐｅ  ｏｆ  Ｓｅｒｖｉｃｅ）フィールドにエンコードされる。ＩＰパケットはパケットから抽出された情報（たとえばレイヤ３あるいはレイヤ４）に基づいて分類される。
【０００５】
ＩＰパケットがＤＳＣＰでマーキングされると、Ｄｉｆｆｓｅｒｖドメインのコアにあるルータは、そのＤｉｆｆｓｅｒｖクラスに基づいて当該ＩＰパケットを処理する。たとえば、各ＤｉｆｆｓｅｒｖクラスのＱｏＳ保証を満たすように、コアルータは当該コア内においてクラス別のキューイング、スケジューリング及びルーティングを実行する。
【０００６】
しかしながら、この従来の分類システムには種々の課題がある。たとえば、各Ｄｉｆｆｓｅｒｖドメインは、個別に、Ｄｉｆｆｓｅｒｖクラスの範囲と、異なるＤｉｆｆｓｅｒｖクラスを差別化（ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  ｔｒｅａｔｍｅｎｔ）するメカニズムと、を定義することができる。このために、Ｄｉｆｆｓｅｒｖドメイン間での分類の共通性が失われる。ＩＰパケットは、Ｄｉｆｆｓｅｒｖドメインが異なれば、入口ルータによって異なるクラスに分類されマーキングされるかもしれないからである。
【０００７】
上記課題を解決するために、隣接するＤｉｆｆｓｅｒｖドメインの間で転送しうるクラス別のトラフィック量を指定するＳＬＡ（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ：サービスレベル契約）を取り決めることができる。クラス別ポリシング（ｐｏｌｉｃｉｎｇ）は入口ルータで実行され、シェーピング（ｓｈａｐｉｎｇ）は、前記ＳＬＡを監視し遵守するように出口ルータ（ｅｇｒｅｓｓ  ｒｏｕｔｅｒ）で実行される。なお、詳細は後述する。
【０００８】
さらに、ＩＥＴＦ（インターネット技術標準化委員会）は、いくつかのＤｉｆｆｓｅｒｖクラスに対するＰＨＢ（Ｐｅｒ  Ｈｏｐ  Ｂｅｈａｖｉｏｒ）に基づくスケジューリングガイドラインを提供している（Ｋ．  Ｎｉｃｈｏｌｓ，  Ｓ．  Ｂｌａｋｅ，  Ｆ．  Ｂａｋｅｒ  およびＤ．  ＢｌａｃｋのＤｅｆｉｎｉｔｉｏｎ  ｏｆ  ｔｈｅ  Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｆｉｅｌｄ  （ＤＳ  Ｆｉｅｌｄ）  ｉｎ  ｔｈｅ  ＩＰｖ４  ａｎｄ  ＩＰｖ６  Ｈｅａｄｅｒｓ，  ＩＥＴＦ  Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ  ２４７４，  Ｄｅｃｅｍｂｅｒ  １９９８を参照のこと）。
【０００９】
あるインターネット接続業者（ＩＳＰ）に対する任意のドメインについては、クラス別のスケジューリング及びルーティングを用いることでＤｉｆｆｓｅｒｖクラスパフォーマンス要求が満たされる。ルータはクラス別ＰＨＢに基づいた特定のスケジューリングメカニズムを有する。たとえば、ＥＦ（Ｅｘｐｅｄｉｔｅｄ  Ｆｏｒｗａｒｄｉｎｇ）Ｄｉｆｆｓｅｒｖクラスは、キューイングに対して極めて高精度を保証するプリエンプティブな優先スケジューリングを要求するのに対し、ＡＦ（Ａｓｓｕｒｅｄ  Ｆｏｒｗａｒｄｉｎｇ）クラスは、適当なスケジューリング重みを有する重み付けフェアキューイング（ＷＦＱ：Ｗｅｉｇｈｔｅｄ  Ｆａｉｒ  Ｑｕｅｕｉｎｇ）を用いて処理することができる。しかしながら、これらスケジューリングメカニズムは静的（すなわち非適応型）であり、一度ルータインタフェース上に設定されると、あるクラスのトラフィックプロファイル変化を補償するように調整することができず、トラフィックパターンの変化に伴って変化しない。
【００１０】
図１は、従来のドメイン間サービスレベル契約（ＳＬＡ）を説明するためのネットワーク図である。上述したように、ＳＬＡは入口ルータを通してあるドメインに入ることができるトラフィック総量を指定することができる。図１に示すように、ＳＬＡλは、第１のドメインＡから第２のドメインＢへドメインＢの入口ルータＩ１を通して入ることができるトラフィック総量を指定する。ドメインＡは、長期間のトラフィック測定および他の隣接ドメインとのＳＬＡからＳＬＡレートを見積もる。図１において、このＳＬＡに対するトラフィックフローが実線の矢印で示され、他のフローは点線の矢印で示される。また、入口ルータ（たとえば、Ｉ１）でのポリシングおよび出口ルータ（たとえば、Ｅ３）でのシェーピングのために、ＳＬＡパラメータが使用される。
【００１１】
異なる出口ルータ（たとえば、Ｅ１、Ｅ２）へ転送されるトラフィックλの複数部分のそれぞれを指定できる場合には、さらに細かいＳＬＡがＥ３→Ｉ１に対して提供されうる。たとえば、ドメインＡから入口ルータＩ１を介してドメインＢに到着するトラフィックが出口ルータＥ１、Ｅ２を通して出て行くものであれば、それぞれのレートλ１、λ２をＳＬＡにおいて指定することができる。これらのレートはＤｉｆｆｓｅｒｖパスをプロビジョニングする上で有用である。しかしながら、ドメインＡが細かいフロー分配を推定できない場合には、ＳＬＡはこの情報を含まないから、ドメインＡは動的トラフィック測定から細かいフロー分配を推定しなければならない。
【００１２】
ドメインＢの各入口ルータＩ１はＳＬＡ情報を用いて当該入口ルータＩ１と同じドメインの全ての出口ルータＥ１、Ｅ２との間でクラス別トラフィックの推定量を計算し、ＮｘＮマトリクスＭを生成する。ここで、Ｎは当該ドメインのエッジルータの数である。あるクラスに対するトラフィックマトリクスの（ｉ，ｊ）要素は、入口ルータｉから出口ルータｊまでの当該クラスにより使用される帯域幅の合計を表す。たとえば、図１に示すように、ドメインＢにおいて、マトリクスＭの（１，１）要素はλ１に等しく、（１，２）要素はλ２に等しい。いったん構築されると、これらトラフィックマトリクスを用いて非０要素ごとにプロビジョニング・ルート（たとえばパス）を計算し、計算されたパスは、Ｄｉｆｆｓｅｒｖネットワークにおけるマルチプロトコル・ラベル・スイッチング（ＭＰＬＳ：Ｍｕｌｔｉ−ｐｒｏｔｏｃｏｌ  ｌａｂｅｌ  ｓｗｉｔｃｈｉｎｇ）あるいは光ネットワークにおけるマルチプロトコル・ラムダ・スイッチング（ＭＰλＳ：Ｍｕｌｔｉ−ｐｒｏｔｏｃｏｌ  ｌａｍｂｄａ  ｓｗｉｔｃｈｉｎｇ）を用いて固定される。
【００１３】
図１に示す従来例において、ＥＦクラスについては当該仕様のピークレートλがトラフィックマトリクスで使用され、ＡＦクラスについては、トークンバケットパラメータを組み合わせて単一のレートパラメータ（たとえば、ＳＬＡ仕様における等価な帯域幅）を生成し、その単一レートパラメータを用いてトラフィックマトリクスＭを構築することができる。たとえば、図１に示すＡＦ・ＳＬＡごとのＳＬＡレート情報は、｛λｐ，  λｍ，  Ｂ｝として指定されうる。ここで、λｐはピークバケットレート、λｍは平均バケットレート、Ｂは最大バーストサイズである。集約されたフローがその等価な帯域幅で割り当てられ、そのフローがＳＬＡトークンバケットパラメータに従うならば、当該フローのＩＰパケットは、そのフローによって指定される通信品質ＱｏＳを保証される。等価なバンド幅は損失条件も満たすために、損失限度が自動的に保証される。
【００１４】
ＰＨＢのほかに、クラス別ルーティングも使用して、Ｄｉｆｆｓｅｒｖクラスに対するエンド・ツー・エンド・ドメイン内ＱｏＳを保証する。Ｄｉｆｆｓｅｒｖマーキングを有するＩＰパケットは静的に設定された（ｐｒｏｖｉｓｉｏｎｅｄ）エンド・ツー・エンド・パスを用いて転送されうるからである。Ｋ．  Ｎｉｃｈｏｌｓ，  Ｖ．  Ｊａｃｏｂｓｏｎ，  Ｌ．  ＺｈａｎｇによるＡ  Ｔｗｏ−ｂｉｔ  Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  ｔｈｅ  Ｉｎｔｅｒｎｅｔ，  ＩＥＴＦ  Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ  ２６３８，  Ｊｕｌｙ  １９９９では、設定されたパスに対するルートが帯域幅ブローカを用いて集中的に計算されるか、あるいは分散方式で計算されうる。
【００１５】
従来のパス・プロビジョニング・システムでは、個々のフローを分離することでネットワーク負荷のバランスをとっている。フロー分離は、受信トラフィックフローの総帯域幅を増加させるという利点を有するかもしれないが、個々のミクロフローに対するパケット順序づけの保証を困難にするという問題点も有している。たとえば、パケット毎のレイヤ３ルックアップおよびハッシングが入口ルータで必要となるであろう。
【００１６】
Ｄｉｆｆｓｅｒｖドメイン（あるいは光ドメイン）はグラフ空間で記述することができる。たとえば、Ｎ個のノード、Ｅ個のリンクを有する有向グラフＧ＝（Ｎ，Ｅ）を考える。グラフＧの各リンクｅについて、Ｃｅをリンク容量、Ｂｅを当該リンクの空き帯域幅とし、Ｃｅ≧Ｂｅである。さらに、トラフィックマトリクス（たとえば、ＳＬＡマトリクス）の各要素（すなわち、トラフィックフロー）は３つの変数の組であるトリプレット（ｒ，ｓ，ｄ）であり、ここでｓは入口ノード、ｄは出口ノードおよびｒは入口ノードｓから出口ノードｄまでのトラフィックレートを表す。このトリプレットは一般にＴ（ｉ）＝（ｒｉ，ｓｉ，ｄｉ）と表され、ｉ＝１，・・・，Ｋであり、Ｋはトリプレット（すなわちトラフィックマトリクスの非０要素）の総数である。受け入れられるトリプレット（すなわちフロー）もあれば、帯域幅が、あるいは光ネットワークの場合は波長の空きが、不足しているために拒絶されるトリプレットもある。
【００１７】
上記トリプレットを用いてパスのプロビジョニングを行うとき、最適パスプロビジョニングのために、３つの基準を考慮しなければならない。第１の基準は、式（１）に従うフロー阻止レートＲｒを最小にすることである。
【００１８】
Ｒｒ＝Ｒ／Ｋ                  （１）
ここで、Ｒは拒絶されたトリプレットＴ（ｊ１）、・・・Ｔ（ｊＲ）の数であり、Ｋはトリプレットの総数である。
【００１９】
第２の基準は、式（２）〜（４）に従うトラフィック受け入れレートＶｒを最大にすることである。
【００２０】
Ｖｒ＝Ｖ／Ｗ                  （２）
ここで、Ｖは受け入れられたフローの帯域幅の総量、Ｗは全てのフローの帯域幅の総量であり、
【００２１】
【数１】
0003580281.tif 000002
【００２２】
【数２】
0003580281.tif 000003
である。
【００２３】
第３の基準は、式（５）に従うホップ帯域幅積Ｃを最小にすることである。
【００２４】
【数３】
0003580281.tif 000004
ここでｈｉは受け入れられたトリプレットＴ（ｉ）に対応するホップ数であり、ｒｉは上述したように受け入れられたトリプレットのトラフィックレートである。
【００２５】
これらのパフォーマンスメトリクスＲｒ、ＶｒおよびＣは、それぞれの目的が相反している。すなわち、フローが要求する帯域幅は異なるので、多くの“小さな”フローを犠牲にしてより少ない“大きな”フローを受け入れるという選択肢も、またその逆の選択肢も通常存在する。さらに、受け入れられた帯域幅はプロバイダ（ＩＳＰ）の収入に直接影響するために、どのフローを受け入れ、どのフローを拒絶するかを決定することによりトラフィック受け入れレートＶｒを最大にすることが最も高い優先順位となる。その次の優先順位は、ホップ帯域幅積Ｃを最小にすることである。
【００２６】
パス・プロビジョニングを遂行するために、従来のナイーブアルゴリズム（ＮＡ）では、最初、ｉ番目のエッジルータが他の（Ｎ−１）個のエッジルータへのトラフィックベクトルを計算する。各トラフィックベクトルは、当該ドメインのトラフィックマトリクス（すなわち、ＳＬＡ情報）のｉ番目の行に対応する。ＳＬＡ情報がｉ番目のエッジルータにおいて局所的に得られない場合には、中央ＳＬＡマネージャは関連するＳＬＡ仕様をｉ番目のエッジルータへダウンロードする。そして、他のルータとは独立に、各エッジルータは当該ドメインにおける他の全てのエッジルータへのプロビジョニング・パスを計算し固定する。
【００２７】
上記ＮＡをインプリメントするために、図２に示す従来のステップが実行される。第１ステップＳ１において、Ｄｉｆｆｓｅｒｖクラスが選択され、選択されたクラスのトリプレットＴ（ｉ）が任意の順序で列挙される。第２ステップＳ２において、第１のトリプレットがリストから選択される。第３ステップＳ３において、Ｂｅがｒｉよりも小さいリンク（すなわち、使用するだけの十分な帯域幅がないリンク）がすべて削除され、サブネットワークが定義される。第４ステップにおいて、選択されたトリプレットＴ（ｉ）＝（ｒｉ，ｓｉ，ｄｉ）に対して、サブネットワークにおける入口ノードｓｉから出口ノードｄｉまでの最小ホップパスＰが計算される。このサブネットワークは、前記パスＰにおける各リンクｅの現帯域幅の利用可能性を満たすものである（すなわち、Ｂｅ＞ｒｉ）。第５ステップＳ５において、最短のパスＰが存在するかどうかが判定される。最短パスＰが存在しなければ、Ｔ（ｉ）は第６ステップＳ６において拒絶される。最短パスＰが存在すれば、Ｔ（ｉ）は次のステップＳ７で受け入れられ、続くステップＳ８において当該パスＰにおけるリンクｅごとにＢｅが再計算され、Ｂｅは、Ｂｅ＝Ｂｅ−ｒｉのように調整される。次のステップＳ９において、次のトリプレットＴ（ｉ）がリストから選択され、上述したようにして処理が繰り返される。この従来のＮＡプロセスは未選択のクラス毎に繰り返される。
【００２８】
上記従来のＮＡは、集中ＱｏＳサーバを用いてパス・プロビジョニング計算を行うことの利点を評価するための基準である。このＮＡの性能は、エッジルータが他のルータとは独立にそれぞれのトラフィックフローに対するパスを選択し帯域幅利用可能性情報がＱＯＳＰＦプロトコルによりルータへ伝達される分散型のパス・プロビジョニングの性能に近い。
【００２９】
ＱｏＳサーバはパス選択の順序と方法を調整することができる。従来では、電話ネットワーク及び仮想プライベートネットワークの環境において、これらのネットワークで使用されるルーティングアルゴリズムが製造業者により提供される特定の交換機に依存しているために、単一のパスルーティングサービスに対していくらかは有効であった。たとえば、Ｆ．  ＬｉｎおよびＪ．  Ｗａｎｇの”Ａ  Ｍｉｎｉｍａｘ  Ｕｔｉｌｉｚａｔｉｏｎ  Ｒｏｕｔｉｎｇ  Ａｌｇｏｒｉｔｈｍ  ｉｎ  Ｎｅｔｗｏｒｋｓ  ｗｉｔｈ  Ｓｉｎｇｌｅ−Ｐａｔｈ  Ｒｏｕｔｉｎｇ”（Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＩＥＥＥ  Ｇｌｏｂｅｃｏｍ’９３，  １９９３）では、単一パスルーチングを用いて最大リンク利用率を最小化するシナリオが議論されている。Ｌｉｎ等は次善の解を得るためにラグランジュ緩和を用いた線形計画問題としてこのことを記述している。
【００３０】
反復ソート（ＩＳ：ｉｔｅｒａｔｅｄ  ｓｏｒｔｉｎｇ）アルゴリズムと呼ばれる従来のＱｏＳサーバベースのアルゴリズムを図３に示す。従来のＩＳアルゴリズムでは、従来のＮＡと同様に、第１ステップＳ１０においてクラスが選択される。第２ステップＳ１１において、トリプレットが第１フィールド（すなわち、レートｒ）に関してソートされる。トリプレットＴ（ｉ）＝（ｒｉ，ｓｉ，ｄｉ）が条件ｒ１≧ｒ２≧・・・≧ｒＫを満たすと仮定する。ここで、Ｋは非０レートを有するトリプレット（すなわちＳＬＡエントリ）の総数である。第３ステップＳ１２において、ソートされたリストは、従来のナイーブアルゴリズムのステップＳ２〜Ｓ９と同様に処理される。
【００３１】
各反復において、ＩＳアルゴリズムは、要求される帯域幅に関して最も大きいフローを拒絶されていないフローリストから選択し、選択されたフローをネットワークに適合させようとする。このアルゴリズムは、図４に示すように、最適とはいえないかもしれない。たとえば、図４に示すネットワークの全てのリンクが１０単位の空き容量を有し、ＳＬＡには２つのトリプレット（６，５，６）および（５，１，４）のみが存在するものとすると、第１トリプレット（６，５，６）に対するパス（５，２，３，６）のプロビジョニングは第２トリプレット（５，１，４）をブロックする。しかしながら、従来のアルゴリズムには、そのシーケンシャルな性質によって、既にプロビジョンされたパスをリバースするメカニズムが存在しない。これは、従来のＩＳおよびＮＡ手法の本質的な問題である。
【００３２】
【発明が解決しようとする課題】
従来のアルゴリズムは種々の課題を有している。Ｃ．  Ｆｒｅｉ，  Ｂ．  Ｆａｌｔｉｎｇｓの”Ａｂｓｔｒａｃｔｉｏｎ  ａｎｄ  Ｃｏｎｓｔｒａｉｎｔ  Ｓａｔｉｓｆａｃｔｉｏｎ  Ｔｅｃｈｎｉｑｕｅｓ  ｆｏｒ  Ｐｌａｎｎｉｎｇ  Ｂａｎｄｗｉｄｔｈ  Ａｌｌｏｃａｔｉｏｎ”（Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＩＥＥＥ  Ｉｎｆｏｃｏｍ，  ２０００）によって指摘されたように、パス・プロビジョニング問題はＮＰ困難であり、ヒューリスティックアルゴリズムによって取り組むべきである。従来のナイーブアルゴリズムおよび反復ソートアルゴリズムでは、逐次解を提供できるだけであり、パス・プロビジョニング問題のその他の解を示すことも示唆することもない。
【００３３】
本発明の目的は、サービスレベル契約ＳＬＡを満たすドメイン内トラフィックに対するパス・プロビジョニング（すなわち、ルート計算）の方法を提供することにある。
【００３４】
本発明の他の目的は、トラフィックマトリクスを満たすドメイン内トラフィックに対するパス・プロビジョニング（すなわち、ルート計算）の方法を提供することにある。
【００３５】
本発明の別の目的は、トラフィック受け入れレートＶｒを最大化する方法を提供することにある。
【００３６】
本発明のさらに別の目的は、コスト（すなわちホップ・帯域幅の積）Ｃを最小化する方法を提供することにある。
【００３７】
【課題を解決するための手段】
本発明によれば、ドメイン内に最適パスを生成する方法は、ａ）前記ドメインのトラフィック量を推定するステップと、ｂ）前記推定トラフィック量に従ってトラフィックマトリクスを構築するステップと、ｃ）前記トラフィックマトリクスの各非０要素に対応する、変更可能なプロビジョニングルートを計算するステップと、ｄ）前記計算されたプロビジョニングルートに応じて前記トラフィックマトリクスを再調整するステップと、を有し、前記ステップａ）〜ｄ）を少なくとも１つのクラスに対して優先順位の高い順に実行することを特徴とする。
【００３８】
さらに、本発明によれば、ネットワークの最適パスを計算する方法は、ａ）複数のディファレンシエーテッドサービス（Ｄｉｆｆｓｅｒｖ）クラスから最も高い未選択のクラスを選択するステップと、前記ドメインのトラフィック量を推定するステップと、ｂ）ソース、デスティネーション、前記ソースと前記デスティネーションとの間のレート、及びパス変更可能性を示すインジケータを有するパスからなるクワドラプレットであって、前記選択されたクラスに対応する全てのものを列挙し、前記レートに従ってソートするステップと、ｃ）拒絶されていない第１クワドラプレットを選択するステップと、ｄ）前記第１クワドラプレットに対応する帯域幅利用要求を満たす全てのパスからなる前記ネットワークのサブネットワークでの前記ソース及び前記デスティネーション間の最適パスを計算するステップと、ｅ）前記第１クワドラプレットの前記最適パスに従って前記ネットワークの帯域幅利用可能性を調整するステップと、を有し、前記ステップｄ）は、ｄ−１）前記第１クワドラプレットの前記理想的最短パスと当該理想的最短パスのホップ数Ｈとを計算するステップと、ｄ−２）前記第１クワドラプレットの前記最短利用可能パスと当該最短利用可能パスのホップ数Ｈ＊とを計算するステップと、ｄ−３）前記レート、前記ホップ数ＨおよびＨ＊に従って、前記サブ・オプティマリティ・コストを計算するステップと、ｄ−４）前記第１クワドラプレットのサブ・オプティマリティ・コストがゼロの場合には、前記第１クワドラプレットに対応する最短利用可能パスを受け入れるステップと、ｄ−５）前記第１クワドラプレットのサブ・オプティマリティ・コストがゼロでない場合には、前記第１クワドラプレットの理想的最短パスが実現可能かどうかを決定するバックトラッキングステップを実行するステップと、を有し、前記バックトラッキングステップは、    変更可能に設定された先のクワドラプレットを有し、当該先のクワドラプレットが前記サブネットワークにおける当該先のクワドラプレットの前記ソース及び前記デスティネーションとの間の全てのリンクを有するマトリクスを生成するステップと、前記マトリクスが空ならば、前記第１クワドラプレットの前記利用可能な最短パスを受け入れるステップと、前記マトリクスが空でないならば、前記先のクワドラプレットを削除し、前記第１クワドラプレットを加えることで、前記先のクワドラプレットに対応する変更されたパスを生成するステップと、前記先のクワドラプレットのレートと、前記現在のパスのホップ数と前記マトリクスにおける前記先のクワドラプレットに対する前記変更されたパスのホップ数との差と、に従って前記先のクワドラプレットのシフティングコストの最小値を計算するステップと、前記先のクワドラプレットの前記最小シフティングコストが前記第１クワドラプレットの前記サブ・オプティマリティ・コストより大きいならば、前記利用可能な最短パスを受け入れるステップと、前記先のクワドラプレットの前記最小シフティングコストが前記第１クワドラプレットの前記サブ・オプティマリティ・コスト以下ならば、前記先のクワドラプレットを新たなパスＰ＊でルーティングし、前記先のクワドラプレットの前記利��可能な最短パスを前記新たなパスＰ＊にリセットするステップと、前記第１クワドラプレットを前記第１クワドラプレットに対する前記最短理想的パスでルーティングし、前記利用可能な最短パスを前記第１クワドラプレットに対する前記最短理想的パスにリセットするステップと、前記第１クワドラプレットを変更不可に設定するステップと、を有する、ことを特徴とする。
【００３９】
さらに、本発明によれば、ＳＬＡ（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ：サービスレベル契約）のパス・プロビジョニングのためのネットワークは、各々が、前記ＳＬＡに従った所定量トラフィックの受信及び送信のいずれかを行う複数のエッジノードと、受信及び送信エッジノードを互いに接続し、各々が最大キャパシティを有する複数のリンクと、を有し、先に計算されたパスをリセットするコストが現在のサブ・オプティマルパスに対するサブ・オプティマリティ・コストより少ないならば、前記先に計算されたパスをリセットして前記現在のサブ・オプティマルパスに対する最適パスを計算する、ことを特徴する。
【００４０】
【発明の実施の形態】
以下、本発明の実施形態を図面を参照しながら詳細に説明する。本発明において、用語の定義は明細書内で与えられるが、それ以外は明細書によって限定されるものではない。
【００４１】
本発明は、Ｄｉｆｆｓｅｒｖあるいは光ネットワークでのパス・プロビジョニング方法において、ヒューリスティック・アルゴリズム、より詳しくは、逐次パスシフト（ＳＰＳ：  ｓｅｑｕｅｎｔｉａｌ  ｐａｔｈ  ｓｈｉｆｔｉｎｇ）アルゴリズムと呼ばれるバックトラッキングを有する欲張り（ｇｒｅｅｄｙ）アルゴリズムを提供する。更に詳しくは、本発明は、ＳＬＡを満たすドメイン内パス・プロビジョニングを規定する。なお、等価的な帯域幅の計算はＤｉｆｆｓｅｒｖドメイン内でのローカルポリシー及びアルゴリズムに基き、クラス別リソース・パーティション、スケジューリングおよびＡＦ・ＱｏＳ条件は当該ドメイン内で一様であり、かつ全リソースに知られているものと仮定する。
【００４２】
本実施形態によるパス・プロビジョニング方法は、Ｄｉｆｆｓｅｒｖクラスごとに、厳格さの最も強いクラス（すなわち、ＥＦ）から最も弱いクラス（すなわち、ＡＦ４）へ順次別々に実行される。たとえば、ＥＦに対してプロビジョンされるパスが計算され固定されると、残りの利用可能な帯域幅は、そのリンクの空き容量から前記ＥＦに予約された帯域幅を差し引くことで調整され、この同じステップが残りのＤｉｆｆｓｅｒｖクラスの各々に対して実行される。このように、本実施形態は、ある与えられたＤｉｆｆｓｅｒｖクラスに関して説明されるが、Ｄｉｆｆｓｅｒｖクラスの各々に対して順番に本実施形態が適用されることは理解されるであろう。さらに、本発明は、Ｄｉｆｆｓｅｒｖネットワークだけでなく、光ネットワークに対しても適用可能である。
【００４３】
本実施形態では、次の表１に示すように、種々のＤｉｆｆｓｅｒｖクラスが含まれる。
【００４４】
【表１】
0003580281.tif 000005
従来のＩＳアルゴリズムと同様に、ＳＰＳアルゴリズムは、第１フィールド（すなわちレート）に関してシーケンシャルにソートされたトリプレットリストを用いる。すでに受け入れられたトリプレットのパスを変更（すわなち、バックトラッキング）するかもしれない各トリプレットＴ（ｉ）を受け入れるべきかどうかを判断する。このバックトラッキングを組み入れるために、各トリプレットＴ（ｉ）は、過剰ビットｂを加えることで４つ１組のクワドラプレットＴ（ｉ）に拡張される。このビットｂは、フローに対してプロビジョンされたパスがそれに続くフローによって変更されるかどうかを示す。最初は、全てのクワドラプレットに対してビットｂに「ＴＲＵＥ（真）」がセットされる（すなわち、全てのフローに対するパスが変更可能である）。
【００４５】
本実施形態によれば、ＳＰＳアルゴリズムにおいて、プロビジョンされるべきパスのシーケンスをバックトラッキングしリバースすることにより、図４に示した第２トリプレット（５，１，４）のブロッキングを防止することができる。具体的には、第１ステップにおいて、トリプレット（５，１，４）に対してパス（１，２，３，４）が提供され、第２ステップにおいて、トリプレット（６，５，６）のフローはパス（５，７，８，９，６）に沿って転送され、トリプレット（５，１，４）のブロッキングを防止できる。ＳＰＳアルゴリズムはバックトラッキングを有する欲張りアルゴリズムであり、その詳細について次に説明する。
【００４６】
あるグラフＧが与えられると、トラフィックマトリクスの各トリプレットＴ（ｉ）＝（ｒｉ，ｓｉ，ｄｉ）に対して、２つのパスが可能である。第１は、理想的な最短パスＳＰＩ（ｉ）である。すなわち、そのパスにおける全てのリンクに対してＣｅ≧ｒｉであるような、グラフＧにおけるｓｉからｄｉへの最短パスである。言い換えれば、ＳＰＩ（ｉ）は、他のトリプレットによる帯域幅予約のない状態での最短パスである。第２は、利用可能な最短パスＳＰＡ（ｉ）である。すなわち、そのパスにおける全てのリンクに対してＢｅ≧ｒｉであるような、Ｇにおけるｓｉからｄｉへの最短パスである。言い換えれば、ＳＰＡ（ｉ）は、他のトリプレットによる帯域幅予約がある状態での最短パスである。
【００４７】
予約帯域幅ｒを持っている任意のパスｐに対して、２つの可能なオペレーションＡｄｄおよびＤｅｌが存在する。Ａｄｄ（Ｇ，ｐ，ｒ）では、パスｐにおける各リンクｅに対して、利用可能な帯域幅Ｂｅはｒだけ減少する（Ｂｅ：＝Ｂｅ−ｒ）。言い換えれば、Ａｄｄ（Ｇ，ｐ，ｒ）により、Ｇにおける利用可能な帯域幅は、パスｐに沿った帯域幅予約量ｒを反映するように調整される。Ｄｅｌ（Ｇ，ｐ，ｒ）では、パスｐにおける各リンクｅに対して、利用可能な帯域幅Ｂｅはｒだけ増加する（Ｂｅ：＝Ｂｅ＋ｒ）。言い換えれば、Ｄｅｌ（Ｇ，ｐ，ｒ）により、Ｇにおける利用可能な帯域幅は、パスｐに沿った帯域幅解放量ｒを反映するように調整される。
【００４８】
（ＳＰＳアルゴリズム）
図５は、本発明の一実施形態による逐次パスシフト（ＳＰＳ）アルゴリズムに基づくパスプロビジョニング方法を示す。ｉ＝１，…，Ｋに対して、ＳＰＳアルゴリズムは、バックトラッキングを組み入れたｉ番目のクワドラプレットに対する入口（ｉｎｇｒｅｓｓ）から出口（ｅｇｒｅｓｓ）までのパスを発見しようと順次試みる。
【００４９】
第１ステップＳ１３において、クラスが選択される。本実施形態では、この選択されるクラスは、未だ選択されていない最も高い優先順位のクラスである。第２ステップＳ１４において、選択されたクラスにおけるクワドラプレットＴ（ｉ）はその第１フィールドのレートｒに基づいてソートされる。第３ステップＳ１５において、それに対するパス計算が必要な最初のクワドラプレットＴ（ｉ）＝（ｒｉ，ｓｉ，ｄｉ，ｂｉ）が選択される（すなわちＴ（１））。第４ステップＳ１６において、ＳＰＩ（ｉ）、ＳＰＡ（ｉ）、ＨｉおよびＨｉ＊が計算される。ここで、ＨｉおよびＨｉ＊は、それぞれＳＰＩ（ｉ）およびＳＰＡ（ｉ）におけるホップ数を示す。もしＳＰＡ（ｉ）が定義されていない（すなわち、前記ｉ番目のフローを転送するに十分な帯域幅がネットワークに存在しない）ならば、Ｈｉ＊は無限に設定される。ＨｉおよびＨｉ＊の差は、ＳＰＡ（ｉ）が最適パスＳＰＩ（ｉ）を上回るホップ数を表す。
【００５０】
続いて、第５ステップＳ１７において、サブ・オプティマリティ（ｓｕｂ−ｏｐｔｉｍａｌｉｔｙ：劣最適性）コストＷ（ｉ）がｒｉ（Ｈｉ＊−Ｈｉ）によって計算される。サブ・オプティマリティ・コストＷ（ｉ）は、最適パスＳＰＩ（ｉ）と比べて、ｉ番目のフローにより使用される帯域幅がどれくらい増大するかを表す。次のステップＳ１８において、Ｗ（ｉ）＝０であるかどうかが判定される。Ｗ（ｉ）＝０（すなわち、利用可能なパスが理想的なパスと同じ帯域幅を使用している：ＳＰＡ（ｉ）がＳＰＩ（ｉ）である）ならば、次のステップＳ１９においてパスＳＰＡ（ｉ）はＴ（ｉ）について受け入れられる。そして、ステップＳ２０において、次のクワドラプレットがリストから選択され、上述したステップＳ１６へ戻る。
【００５１】
Ｗ（ｉ）≠０ならば（ステップＳ１８のＮＯ）、パスＳＰＩ（ｉ）は当該ｉ番目のフローを収容するために使用することができない。なぜならば、ＳＰＩ（ｉ）におけるリンクｅの少なくとも１つは、利用可能な帯域幅Ｂｅがフローレートｒｉより小さいからである。このような全てのリンクｅの集合Ｑは、Ｑ＝｛ｅ：ｅ∈ＳＰＩ（ｉ）；Ｂｅ＜ｒｉ｝で示される。ネットワーク内に他のフローが存在しなければ、ＳＰＩ（ｉ）の全てのリンクはフローレートｒｉを収容可能である。しかしながら、それ以前の（ｉ−１）ステップの間にパスがすでに準備されているのであるから、ＳＰＩ（ｉ）のリンクのなかには、そのフローレートｒｉをサポートするのに必要な空き帯域幅を持たないもの（すなわち、集合Ｑに属するリンク）が存在する。
【００５２】
そこで、次のステップＳ２１において、以下の示す２つの条件を満たし、以前の（ｉ−１）ステップの間ですでに受け入れられたクワドラプレットＴ（１）、・・・Ｔ（ｉ−１）の部分集合をＭと定義する。
【００５３】
第１の条件は、クワドラプレットのビットｂｊが「真」で、パスＳＰＡ（ｊ）が変更可能であること、第２の条件は、Ｑ＝｛ｅ：ｅ∈ＳＰＩ（ｉ）；Ｂｅ＜ｒｉ｝の全てのリンクｅがパスＳＰＡ（ｊ）に属すること、すなわちＱ⊂ＳＰＡ（ｊ）であること、である。従って、パスＳＰＡ（ｊ）のクワドラプレットＴ（ｊ）のレートｒｊに対応する帯域幅予約が解除されると、Ｑにおける各リンクｅでの利用可能な帯域幅がｒｊだけ増加する。ｉ番目のフローはｒｉ（ｒｉ≦ｒｊ）の帯域幅予約を必要とするから、この利用可能な帯域幅増加は、パスＳＰＩ（ｉ）を使用するｉ番目のフローを収容するのに十分である。
【００５４】
次に、ステップＳ２２において、システムは集合Ｍが空であるかどうかを判定する。Ｍが空であり（ステップＳ２２のＹＥＳ）かつＳＰＡ（ｉ）が定義されている、すなわち、Ｈｉ＊が無限ではないならば（ステップＳ２３のＮＯ）、現在のパスＳＰＡ（ｊ）はステップＳ２５においてｉ番目のフローに対するパスとして受け入れられる。言い換えれば、そのパスはサブ・オプティマルであるが、それを収容するために解除可能なパスがひとつも存在しない。そして、ステップＳ２０において、次のクワドラプレットがリストから選択され、上述したステップＳ１６へ戻る。
【００５５】
Ｈｉ＊が無限である時には（ステップＳ２３のＹＥＳ）、当該ｉ番目のフローはステップＳ２４において拒絶される。
【００５６】
Ｍが空でないならば（ステップＳ２２のＮＯ）、ステップＳ２６においてバックトラッキングが集合Ｍ上で実行される。
【００５７】
（バックトラッキング）
図６にバックトラッキングアルゴリズムを示す。バックトラッキングにおいて、集合Ｍの要素は、次に述べるようにｉ番目のフローを収容することができる。ＭがステップＳ２１において定義され、バックトラッキングがステップＳ２２に基づいて実行されるものとすれば、上述したように、集合Ｍのすでに処理された各クワドラプレットＴ（ｋ）に対して、そのパスＳＰＡ（ｋ）はＱにおける全てのリンクを含む。したがって、トリプレットＴ（ｋ）に対して予約された帯域幅を解放しネットワークからパスＳＰＡ（ｋ）を除去すると、そのｉ番目のフローをパスＳＰＩ（ｉ）上に収容することが可能となる。すなわち、ステップＳ３２において、Ｄｅｌ（Ｇ，Ｐ（ｋ），ｒｋ）を実行し、続いてステップＳ３３においてＡｄｄ（Ｇ，ＳＰＩ（ｉ），ｒｉ）を実行することで、ＧからＴ（ｋ）に対する新たなグラフＧ＊を得る。これらのオペレーションは、Ｔ（ｋ）に対する帯域幅プロビジョニングの削除およびＴ（ｉ）に対する帯域幅プロビジョニングの追加の結果を反映する。こうして、ステップＳ３４において、Ｐ＊（ｋ）は、Ｔ（ｋ）に対する新たなパスとして定義される。
【００５８】
続いて、ステップＳ３５において、新たに定義されたパスＰ＊（ｋ）が存在するか否かが判断される。パスＰ＊（ｋ）が存在しないならば、ステップＳ３６においてＬ＊ｋを無限にセットする。パスＰ＊（ｋ）が存在するならば、ステップＳ３７においてＬ＊ｋをＧ＊において計算されたパスＰ＊（ｋ）のホップ数として定義する。
【００５９】
除去されたクワドラプレットＴ（ｋ）は再度ルーティングされる必要があり、その新たな変更ルートは当初スケジュールされたものより長くなるかもしれない。ステップＳ３８において、この集合Ｍにおける各クワドラプレットＴ（ｋ）（ｋ∈Ｍ）に対して、シフティング・コストＳｋをｒｋ（Ｌｋ＊−Ｌｋ）として定義する。ここで、Ｌｋは、当該クワドラプレットＴ（ｋ）に対応する現在のパスＰ（ｋ）におけるホップ数であり、前述したように計算される。
【００６０】
ステップＳ３９において、集合Ｍで得られる全てのシフティング・コストＳｋ（ｋ∈Ｍ）のうち最小のものをＳｍｉｎとし、その最小シフティング・コストはｋ＝ｊのときに達成されるものとする。こうして、ステップＳ４０において、Ｐ＊＝Ｐ＊（ｊ）が決定される。
【００６１】
図５に戻って、ステップＳ２７に示すように、ＳｍｉｎとＷ（ｉ）のうちのどちらが大きいかによって、ステップＳ２５あるいはステップＳ２８のいずれかが実行される。より詳しくは、バックトラッキングステップＳ２６が終了すると、ステップＳ２７において、以前処理されたクワドラプレットＴ（ｊ）のパスをシフトさせる最小コストであるＳｍｉｎが現在選択されているクワドラプレットＴ（ｉ）に対するサブ・オプティマリティ・コストＷ（ｉ）より大きいかどうかを判定する。Ｓｍｉｎ＞Ｗ（ｉ）であれば、ＳＰＡ（ｉ）上の現在のパスＴ（ｉ）を受け入れる方がコスト的に有利であるから、ステップＳ２５においてＳＰＡ（ｉ）上の現在のパスＴ（ｉ）を受け入れ、以前処理されたクワドラプレットＴ（ｊ）に対するパスは変更しない。そして、ステップＳ２０において、次のクワドラプレットがリストから選択され、上述したステップＳ１６へ戻る。
【００６２】
他方、ＳｍｉｎがＷ（ｉ）以下であれば（ステップＳ２７のＮＯ）、前に処理されたクワドラプレットＴ（ｊ）のシフティング・コストが現在選択されているクワドラプレットＴ（ｉ）に対するサブ・オプティマリティ・コストＷ（ｉ）以下なのであるから、クワドラプレットＴ（ｊ）がパスＰ＊（ｊ）でルーティングされ、ステップＳ２８においてＳＰＡ（ｊ）はＰ＊（ｊ）にリセットされる。Ｔ（ｊ）のシフトの結果、Ｌｍ（すなわち、シフト前のＴ（ｊ）に対するパスＰ（ｊ）におけるホップ数）より長いパスになれば、ステップＳ２９においてクワドラプレットＴ（ｊ）のビットｂｉは「偽」にセットされ、後続するフロー（ｉ＋１，・・・，Ｎ）によるＳＰＡ（ｉ）のシフトを防止し、アルゴリズムを簡略化する。すなわち、もしＳＰＡ（ｉ）が続くフローＴ（ｋ）によってシフト可能ならば、クワドラプレットＴ（ｊ）に対する変更されたパスは再び変更されうる。クワドラプレットＴ（ｉ）はパスＳＰＩ（ｉ）上で転送され、ＳＰＡ（ｉ）は次のステップＳ３０でＳＰＩ（ｉ）にリセットされる。
【００６３】
実験において、次に述べるような種々の負荷条件下で、２つのネットワークについて、従来のＮＡおよびＩＳアルゴリズムのパフォーマンスと本発明のＳＰＳ方法とを比較した。
【００６４】
（ネットワーク例１）
図７は、１２ノードからなるＩＰバックボーンの物理的トポロジを示す。各リンクは１０単位の帯域幅を乗せることが可能であるとする。シアトル（１）、サンフランシスコ（２）およびロサンジェルス（３）がソース（送信元）として選択され、ケンブリッジ（８）、ニューヨーク（９）およびワシントンＤＣ（１０）がデスティネーション（送信先）として選択された。
【００６５】
各ソースが３つのデスティネーションへの３つのフローを生成し、合計９個のフローが生成された。各フローのトラフィックレートはインターバル（０，１０ρ）でランダムに分散された。ここで、ρは０〜１の間で変化するスケールパラメータである。したがって、各フローの平均トラフィックレートはρ／２に等しい。ρの９個の異なる値（すなわち、ρ＝０．１，ρ＝０．２，・・・  ρ＝０．９）がテストされ、ρの各値に対して、全部で３つのアルゴリズム（ＮＡ、ＩＳおよびＳＰＳ）を１５回実行して平均トラフィック受け入れレートＲ、平均フロー拒絶レートＶ、および平均ホップ・帯域幅積Ｃをそれぞれ計算した。平均トラフィック受け入れレートＲは、総トラフィック量（この例では９ρ／２である）により正規化された平均受け入れトラフィック量Ｒとして定義される。平均フロー拒絶レートＶは、トラフィックフローの総数（この例では９個）により正規化された拒絶トラフィックフローの平均数として定義される。平均ホップ・帯域幅積Ｃは、受け入れられたフローの平均ホップ・帯域幅積として定義される。
【００６６】
この一連の実験には、第４のアルゴリズムとしてブルートフォース（以下、ＢＦと記す。）アルゴリズムも使用された。ＮＡのパフォーマンスが下限を示すのに対して、ＢＦアルゴリズムのパフォーマンスは有効な上限を示す。一連の実験において、ＢＦアルゴリズムを用いて、ＮＡ、ＩＳおよびＳＰＳの場合と同様のパフォーマンスメトリクスを計算した。
【００６７】
図８〜１０は実験結果を示すグラフである。ρが小さな値に対しては、３つのパフォーマンスメトリクスにほとんど差はない。言い換えれば、小さな負荷では、全てのアルゴリズムがほぼ同じパフォーマンスを示す。しかしながら、平均フロー要求が０．３に達してシステムへの全体的な負荷が増大すると、パフォーマンスに差が現れる。
【００６８】
図８に示すように、平均トラフィック受け入れレート（主要なターゲットであるパフォーマンスメトリック）に関して、分散ＮＡアルゴリズムと集中ＩＳ、ＳＰＳおよびＢＦアルゴリズムとの間に明らかな差が存在する。ＩＳ、ＳＰＳおよびＢＦアルゴリズムの間の相対的な差は比較的小さい。これらのアルゴリズムの中では、ＳＰＳがＩＳより良好なパフォーマンスを示し、ＢＦがＳＰＳより良好なパフォーマンスを示す。ＢＦとＳＰＳとの間の差は小さい。このことは、ＳＰＳのパフォーマンスが最適なＢＦのパフォーマンスに実質的に近いことを示している。
【００６９】
図９に示すように、フロー阻止レート（二次的なパフォーマンスメトリック）に関しては、ＮＡと他のアルゴリズム（ＩＳ、ＳＰＳおよびＢＦ）との間の関係は逆転する。すなわち、ＮＡは、平均して、他のアルゴリズムよりも多くのフローを受け入れる。この逆転が起こるのは、トラフィック受け入れレートとフロー阻止レートとの間のトレードオフによる。すなわち、ＩＳ、ＳＰＳおよびＢＦは、より大きな帯域幅要求のフローをより少ない数受け入れることにより、より大きなトラフィック量を収容するからである。
【００７０】
最後に、図１０に示すように、ホップ・帯域幅積（三次的なパフォーマンスメトリック）に関しては、アルゴリズム間でほとんど差がない。
【００７１】
図７に示すＩＰバックボーンネットワークに加えて、図１１に示す京都大学のネットワークが用いられた。
【００７２】
（ネットワーク例２）
図１１に示すように、京都大学ネットワークは５個のコアノードからなり、それらは１２４４Ｍｂｐｓの１０本の論理的リンクにより完全に接続されている。ただし、１本の論理的リンクは２本の６２２Ｍｂｐｓ物理的リンクから構成される。コアノードは、８ドメイン（すなわちデパートメント）のゲートウエイノード（すなわち、スイッチ）と６２２Ｍｂｐｓのリンクで接続されている。各ドメイン内では、８〜１０の（ノーマル）ノードが１５５Ｍｂｐｓリンクで相互接続されている。これらノーマルノードの中には、対応するゲートウエイノードを回避して、５個のコアノードと６２２Ｍｂｐｓリンクを介して直接コネクションを有するものもある。これらコアノードと直接接続されたノーマルノードはバイパスノードと呼ばれ、各ドメインはただ１つのバイパスノードを有する。トラフィックは、各ドメイン内ノードから他のドメイン内ノードへ送信される（京都大学のネットワークでは６４個のドメイン内ノードが存在する）。トラフィック強度はソースとデスティネーション間の関係に依存する。たとえば、トラフィックの５０％はドメイン内トラフィックであり、残りの５０％は他の７つのドメインへ均一に転送される。図１１に示す京都大学のネットワークは対称ではないので、この構成によりネットワークの異なるリンクに異なるトラフィック負荷がかかることとなる。
【００７３】
図１２〜１４は、結果的に６４ｘ６４トラフィックマトリクスを有する京都大学のネットワークの実験結果を示す。アルゴリズムの相対的なパフォーマンスは、上記ＩＰバックボーンを用いた実験で観測されたものと同じパターンに従っている。特に、ＳＰＳアルゴリズムは、ＩＳに近い、最も良いトラフィック受け入れレートを示している。
【００７４】
この実験結果は、集中ＱｏＳサーバによってパス・プロビジョニング問題を処理することの有用性を証明しており、かつＳＰＳアルゴリズム（すなわち、バックトラッキングを持つ欲張りアルゴリズム）のパフォーマンスの１つはコンピュータにより実現可能な最適解に極めて近づくことができるという利点を証明している。
【００７５】
【発明の効果】
以上詳細に説明したように、本発明により従来の課題を解決することができる。たとえば、フロー分離が不要となるために、従来のフロー分離にまつわる問題を解消できる。本発明では、トラフィックマトリクスの各要素に対して、ただ１つの入口−出口パスが選択され、そして固定される。
【００７６】
更に、本発明によれば、処理の中間段階のパスプロビジョニングを後続するステップによって逆転させることが可能である。従って、逐次的なパスプロビジョニングの問題を解決できる。更に、本発明は集中型デバイス（たとえばＱｏＳサーバ）にインプリメントすることができ、パフォーマンスを向上させることができる。
【図面の簡単な説明】
【図１】従来のドメイン間サービスレベル契約（ＳＬＡ）を説明するためのネットワーク図である。
【図２】パス・プロビジョニング方法のための従来のナイーブアルゴリズムを示すフローチャートである。
【図３】パス・プロビジョニング方法のための従来の反復ソートアルゴリズムを示すフローチャートである。
【図４】ＩＳ方法のサブオプティマリティの一例を示す模式的ネットワーク図である。
【図５】パス・プロビジョニング方法のための逐次パスシフト（ＳＰＳ）アルゴリズムを適用する本発明の一実施形態による方法を示すフローチャートである。
【図６】パス・プロビジョニング方法のためのＳＰＳアルゴリズムによるバックトラッキング方法を示すフローチャートである。
【図７】ＩＰバックボーンの物理的トポロジを示す図である。
【図８】ＩＰバックボーンに適用された本発明による一実施形態における実験結果のトラフィック受け入れレートを示すグラフである。
【図９】ＩＰバックボーンに適用された本発明による一実施形態における実験結果のフロー阻止レートを示すグラフである。
【図１０】ＩＰバックボーンに適用された本発明による一実施形態における実験結果のホップ帯域幅積を示すグラフである。
【図１１】京都大学のネットワークの物理的トポロジを示す図である。
【図１２】前記京都大学のネットワークに適用された本発明による一実施形態における実験結果のトラフィック受け入れレートを示すグラフである。
【図１３】前記京都大学のネットワークに適用された本発明による一実施形態における実験結果のフロー阻止レートを示すグラフである。
【図１４】前記京都大学のネットワークに適用された本発明による一実施形態における実験結果のホップ帯域幅積を示すグラフである。
【図１】
0003580281.tif 000006
【図２】
0003580281.tif 000007
【図３】
0003580281.tif 000008
【図４】
0003580281.tif 000009
【図５】
0003580281.tif 000010
【図６】
0003580281.tif 000011
【図７】
0003580281.tif 000012
【図８】
0003580281.tif 000013
【図９】
0003580281.tif 000014
【図１０】
0003580281.tif 000015
【図１１】
0003580281.tif 000016
【図１２】
0003580281.tif 000017
【図１３】
0003580281.tif 000018
【図１４】
0003580281.tif 000019