(57)【特許請求の範囲】
【請求項１】
それぞれが異なる条件と、前記条件に合致したトラヒックの転送先を示す情報とを含む複数のエントリが構成するルーティングテーブルを利用して転送対象のトラヒックの転送先を決定する転送装置に関する発着ノード別のトラヒック量についての前記エントリ別の割合の集合を、前記転送装置による転送先ごとのグループに分類する分類部と、
前記割合が分類されたグループに対応する転送先が、当該割合に係る前記エントリの条件に合致した場合の転送先となるように前記各エントリを生成する生成部とを有し、
前記分類部は、前記グループごとに、当該グループに分類された割合の総和と、当該グループに対応する転送先に対して前記発着ノード別のトラヒックに関して入力された、転送先別のトラヒック量の割合の目標値との差分が最小となるように、前記エントリ別のトラヒック量の割合の集合を分類する、
ことを特徴とするルーティングテーブル生成装置。
【請求項２】
前記分類部は、以下の最適化問題
【数１０】
0006426076.tif 000011
但し、ｚｉは、ｉ番目の転送先のグループに関する前記目標値と前記総和との差分、
Ｍは、前記ルーティングテーブルのエントリの数、
Ｎは、転送先の数、
ｐｉは、ｉ番目の転送先に関して算出された転送先別のトラヒック量の割合、
ａｉは、ｉ番目の転送先に対応するグループに分類された割合の総和、
ｕｉｊは、ｊ番目のルーティングエントリがｉ番目の転送先に対応するグループに分類された場合に１、そうでない場合に０、
を解くことで、前記エントリ別のトラヒック量の割合の集合を分類する特徴とする請求項１に記載のルーティングテーブル生成装置。
【請求項３】
それぞれが異なる条件と前記条件に合致したトラヒックの転送先を示す情報とを含む複数のエントリが構成するルーティングテーブルを利用して転送対象のトラヒックの転送先を決定する転送装置に関する発着ノード別のトラヒック量についての前記エントリ別の割合の集合を、前記転送装置による転送先ごとのグループに分類する分類手順と、
前記割合が分類されたグループに対応する転送先が、当該割合に係る前記エントリの条件に合致した場合の転送先となるように前記各エントリを生成する生成手順とをコンピュータが実行し、
前記分類手順は、前記グループごとに、当該グループに分類された割合の総和と、当該グループに対応する転送先に対して前記発着ノード別のトラヒックに関して入力された、転送先別のトラヒック量の割合の目標値との差分が最小となるように、前記エントリ別のトラヒック量の割合の集合を分類する、
ことを特徴とするルーティングテーブル生成方法。
【請求項４】
前記分類手順は、以下の最適化問題
【数１１】
0006426076.tif 000012
但し、ｚｉは、ｉ番目の転送先のグループに関する前記目標値と前記総和との差分、
Ｍは、前記ルーティングテーブルのエントリの数、
Ｎは、転送先の数、
ｐｉは、ｉ番目の転送先に関して算出された転送先別のトラヒック量の割合、
ａｉは、ｉ番目の転送先に対応するグループに分類された割合の総和、
ｕｉｊは、ｊ番目のルーティングエントリがｉ番目の転送先に対応するグループに分類された場合に１、そうでない場合に０、
を解くことで、前記エントリ別のトラヒック量の割合の集合を分類する特徴とする請求項３に記載のルーティングテーブル生成方法。
【請求項５】
請求項３又は４に記載のルーティングテーブル生成方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルーティングテーブル生成装置、ルーティングテーブル生成方法、及びプログラムに関する。
【背景技術】
【０００２】
限られたネットワークリソースを用いてトラヒックを効率的に収容する技術として、到着トラヒックを予測し、予測結果に基づいてトラヒックの経路を制御するトラヒックエンジニアリング技術が研究されている。トラヒックエンジニアリングの例として、ネットワーク内の最大リンク利用率を最小化することを目的とした経路制御などが考えられる。最大リンク利用率とは、ネットワーク内において最も混雑している（最も利用率の高い）リンクの利用率をいう。また、リンクの利用率とは、リンクの帯域に対するトラヒック需要の割合をいう。
【０００３】
トラヒックエンジニアリングでは、トラヒック需要、ネットワークのトポロジ情報、及びリンク情報等から構成した数理最適化問題を用いて経路情報を算出する。トラヒックエンジニアリングのための代表的な数理最適化問題として、線形計画問題と整数計画問題とが知られている。なお、トラヒック需要とは、将来におけるトラヒック量の予測値をいう。
【０００４】
トラヒックエンジニアリングのための線形計画問題を数１（式（１．１）〜（１．６））に示す（特許文献２）。
【０００５】
【数１】
0006426076.tif 000002
ここで、ネットワークは、有効グラフＧ（Ｖ、Ｅ）で表現される。Ｖはノードの集合、Ｅはリンクの集合を表す。また、ノードｉ∈Ｖからノードｊ∈Ｖまでのリンク容量はｃｉｊ∈Ｅと表す。ノードｐからノードｑまでのトラヒック需要は、ｔｐｑと表す。
【０００６】
【数２】
0006426076.tif 000003
は、トラヒック需要ｔｐｑについて、リンク（ｉ，ｊ）の通過割合を示し、ルーティング変数と呼ばれる。通過割合とは、トラヒック需要ｔｐｑに対して、リンク（ｉ，ｊ）に分配されたトラヒック量の割合をいう。例えば、２つのリンクを有する転送装置において、トラヒック需要ｔｐｑについての一方のリンクの通過割合が０．３であれば、他方のリンクの通過割合は０．７である。ｒは、最大リンク利用率を示しており、数１ではｒを最小化するようなルーティング変数の値を求めている。
【０００７】
式（１．１）は、最大リンク利用率を最小化する目的関数を示しており、式（１．２）〜式（１．６）は制約条件である。式（１．２）及び式（１．３）は、フロー保存則を示している。式（１．４）は、リンク（ｉ，ｊ）を通過するトラヒックの総和がリンク容量×最大リンク利用率を超えないことを示している。式（１．５）及び（１．６）は、ルーティング変数
【０００８】
【数３】
0006426076.tif 000004
と、最大リンク利用率ｒとの値域を示している。
【０００９】
この線形計画問題では、ネットワーク内の最大リンク利用率を最小化するような経路情報が解として求められる。経路情報は、各転送装置におけるトラヒックの複数の出力ポートへの送出割合として得られる。ここで得られた経路情報をネットワークに設定するためには、各転送装置においてトラヒックを任意の割合でマルチパス分割できる必要がある。
【００１０】
トラヒックをマルチパス分割するための技術として、ＩＰルータにおけるＥＣＭＰ（Equal-Cost Multi-path）技術がある。ＥＣＭＰは、コストが等しい出力ポートに対してトラヒックを等分割して送信する技術であり、任意の割合でマルチパス分割することはできない。
【００１１】
一方、ＯｐｅｎＦｌｏｗ１．３以降において、Ｇｒｏｕｐ  ＴａｂｌｅにおけるＳｅｌｅｃｔ機能を使うことで、任意の粒度でトラヒックをマルチパス分割することができる。しかし、Ｓｅｌｅｃｔ機能は、ＯｐｅｎＦｌｏｗ１．３仕様の中で、必ず実装しなければならない必須機能とされていないため、ＯｐｅｎＦｌｏｗ１．３に準拠したスイッチであっても利用できないことがある。
【００１２】
次に、トラヒックエンジニアリングのための整数計画問題を数４（式（２．１）〜（２．６））に示す。
【００１３】
【数４】
0006426076.tif 000005
数４は、数１において、式（１．５）を式（２．５）に置き換えたものである。
【００１４】
この整数計画問題では、数１の場合と同様に、ネットワーク内の最大リンク利用率を最小化するような経路情報が解として求められる。しかしながら、式（２．５）により、解が整数値であることが制約条件になっているため、得られる経路情報は、各転送装置におけるトラヒックの単一の出力ポートとなる。ここで得られた経路情報をネットワークに設定するにあたっては、各転送装置においてトラヒックを任意の割合でマルチパス分割できる必要がない。このため、整数計画問題で得られた経路は線形計画問題で得られた経路よりも幅広いネットワークに設定することが可能である。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特許第５７４７３９３号公報
【特許文献２】特許第７５４２９８１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
計算時間の観点で線形計画問題と整数計画問題とを比較すると、線形計画問題は、解法としてシンプレックス法、内点法といった効率的なアルゴリズムが存在し、大規模な問題においても高速に解を導出することができる。一方、整数計画問題は、ＮＰ困難であることが知られており、解導出のための効率的なアルゴリズムが存在しない。このため、整数計画問題では、大規模な問題においては現実的な実行時間で解を導出することが困難となる。
【００１７】
次に、「得られる最適経路の性能」の観点で線形計画問題と整数計画問題を比較すると、線形計画問題は、解として整数を含めた実数全てを許容するのに対して、整数計画問題は、解として整数のみを許容する。このように、線形計画問題は、整数計画問題より広い解空間から解を導出できるため、得られる解の最適性、すなわち最適経路の性能は高い。数１及び数２の例のように、ネットワーク内の最大リンク利用率を目的関数とした場合には、線形計画問題（数１）で得られた最適経路の方が、ネットワーク内の最大リンク利用率をより低減させた経路が得られる。
【００１８】
このように、線形計画問題による最適経路計算は、「計算時間」及び「得られる経路の性能」の観点で優れているものの、得られた最適経路を設定できる転送装置が限られる、という課題が存在する。
【００１９】
したがって、線形計画問題による最適経路計算等、任意の方法によって求められた経路情報を転送装置に設定可能な技術が求められる。
【００２０】
本発明は、上記の点に鑑みてなされたものであって、任意の方法で得られた経路情報を設定可能な転送装置の範囲を拡張することを目的とする。
【課題を解決するための手段】
【００２１】
そこで上記課題を解決するため、ルーティングテーブル生成装置は、それぞれが異なる条件と、前記条件に合致したトラヒックの転送先を示す情報とを含む複数のエントリが構成するルーティングテーブルを利用して転送対象のトラヒックの転送先を決定する転送装置に関する発着ノード別のトラヒック量についての前記エントリ別の割合の集合を、前記転送装置による転送先ごとのグループに分類する分類部と、前記割合が分類されたグループに対応する転送先が、当該割合に係る前記エントリの条件に合致した場合の転送先となるように前記各エントリを生成する生成部とを有し、前記分類部は、前記グループごとに、当該グループに分類された割合の総和と、当該グループに対応する転送先に対して前記発着ノード別のトラヒックに関して入力された、転送先別のトラヒック量の割合の目標値との差分が最小となるように、前記エントリ別のトラヒック量の割合の集合を分類する。
【発明の効果】
【００２２】
任意の方法で得られた経路情報を設定可能な転送装置の範囲を拡張することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施の形態におけるネットワーク構成例を示す図である。
【図２】本発明の実施の形態におけるルーティングテーブル生成装置のハードウェア構成例を示す図である。
【図３】本発明の実施の形態におけるルーティングテーブル生成装置の機能構成例を示す図である。
【図４】ルーティングテーブル生成装置が実行する処理手順の一例を説明するためのフローチャートである。
【図５】或る転送装置の構成例を示す図である。
【図６】経路計算装置によって算出された経路情報の一例を示す図である。
【図７】或る転送装置に関するトラヒック情報の一例を示す図である。
【図８】ポート・リンク情報の構成例を示す図である。
【図９】出力ポート別最適トラヒック量割合の集合の一例を示す図である。
【図１０】エントリ別観測トラヒック量割合の集合の分類結果の一例を示す図である。
【図１１】ルーティングテーブルの生成結果の一例を示す図である。
【発明を実施するための形態】
【００２４】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるネットワーク構成例を示す図である。図１には、端末５０ａ〜５０ｄ、転送装置４０ａ〜４０ｃ、制御装置２０、経路計算装置３０、及びルーティングテーブル生成装置１０が示されている。なお、端末５０ａ〜５０ｄを区別しない場合、端末５０という。また、転送装置４０ａ〜４０ｃを区別しない場合、転送装置４０という。
【００２５】
各端末５０は、トラヒックを発生させる装置である。すなわち、各端末５０は、トラヒックの発信元又は宛先に相当する。各端末５０は、いずれかの転送装置４０にネットワークを介して接続される。なお、トラヒックとは、ネットワーク上の通信の流れをいい、通信は、例えば、パケットの集合等によって構成される。
【００２６】
各転送装置４０は、トラヒックを転送（中継）する装置である。転送装置４０の一例として、ＳＤＮ（Software Defined Network）／ＯｐｅｎＦｌｏｗに対応したスイッチ（ＯｐｅｎＦｌｏｗスイッチ）が挙げられる。各転送装置４０は、いずれかの端末５０又は他の転送装置４０にリンクを介して接続される。各転送装置４０は、ルーティングエントリの集合であるルーティングテーブルを有し、ルーティングテーブルに従って、転送対象のトラヒックの出力先の出力ポート（転送先）を決定する。ルーティングエントリは、トラヒックに対する条件であるマッチングルールと、マッチングルールに合致したトラヒックの出力ポート（転送先）を示す出力ポート情報とを含む。マッチングルールは、トラヒックの識別情報（ＩＰヘッダ情報やＴＣＰヘッダ情報やＭＰＬＳ（Multi-Protocol Label Switching）ヘッダ情報等を含み、ルーティングエントリごとに異なる。マッチングルールには、少なくとも発着ノードを識別できる情報（発着アドレス情報、ＭＰＬＳヘッダ情報等）が含まれている必要がある。本実施の形態が有効に機能するためには、発着ノードの識別情報以外の識別子がマッチングルールに追加されており、発着ノード別フローより細かい粒度でのトラヒック制御が可能となっていることが望ましい。例えば、特許文献１で示されるような、発着ノード別マクロフローは、本実施に好適である。
【００２７】
なお、本実施の形態において、「ノード」とは、いずれかの転送装置４０をいい、端末５０は含まれない。したがって、本実施の形態において着目されるトラヒックは、図１において、転送装置４０間を接続するリンクＬ１〜Ｌ３におけるトラヒックをいう。
【００２８】
各転送装置４０は、また、ルーティングエントリごとのパケット数又はバイト数（以下、「トラヒック量」という。）を計測し、計測結果を制御装置２０に送信する。
【００２９】
制御装置２０は、各転送装置４０に対してルーティングテーブルを設定する装置である。制御装置２０の一例として、ＳＤＮ／ＯｐｅｎＦｌｏｗに対応したコントローラ（ＯｐｅｎＦｌｏｗコントローラ）が挙げられる。制御装置２０は、また、定期的に転送装置４０にアクセスし、各時刻におけるルーティングエントリのマッチングルールとエントリカウンタ値を取得できる。エントリカウンタ値は、当該ルーティングエントリにマッチして転送されたトラヒック量を示す。なお、制御装置２０と各転送装置４０との接続形態は、所定のものに限定されない。
【００３０】
経路計算装置３０は、ネットワーク構成情報及びトラヒック情報を収集し、発着ノード別トラヒックごと、かつ、転送装置４０ごとに、最適経路を示す経路情報を算出する。経路情報は、数１に基づいて算出される。経路計算装置３０によって算出される経路情報ｘｉｊｐｑは、発信側のノードｐ（転送装置４０）から宛先のノードｑ（転送装置４０）に送信される発着ノード別トラヒックについて、ノードｉがｊ番目の出力リンク（ｉ，ｊ）にトラヒックを送信する割合を表す。以降、この経路情報ｘｉｊｐｑを「出力リンク別最適トラヒック量割合」という。なお、上記したように、本実施の形態において「ノード」は、転送装置４０のことをいう。したがって、発着ノード別トラヒックとは、転送装置４０間別のトラヒックをいう。
【００３１】
ルーティングテーブル生成装置１０は、経路計算装置３０によって算出された経路情報と、制御装置２０から取得したトラヒック情報とに基づいて、各転送装置４０のルーティングテーブルを生成する。
【００３２】
図２は、本発明の実施の形態におけるルーティングテーブル生成装置のハードウェア構成例を示す図である。図２のルーティングテーブル生成装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００３３】
ルーティングテーブル生成装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００３４】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従ってルーティングテーブル生成装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００３５】
なお、制御装置２０や経路計算装置３０も、図２と同様のハードウェア構成を有していてもよい。また、ルーティングテーブル装置１０、制御装置２０、経路計算装置３０は、１以上の共通のコンピュータを用いて実現されてもよい。
【００３６】
図３は、本発明の実施の形態におけるルーティングテーブル生成装置の機能構成例を示す図である。図３において、ルーティングテーブル生成装置１０は、入力情報取得部１１、分類部１２、及び生成部１３等を有する。これら各部は、ルーティングテーブル生成装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。
【００３７】
入力情報取得部１１は、ルーティングテーブルの生成に必要な情報を制御装置２０及び経路計算装置３０から取得する。制御装置２０からは、転送装置４０のルーティングテーブルと、転送装置４０において観測されたトラヒック情報が取得される。経路計算装置３０からは、最適経路として算出された経路情報が取得される。
【００３８】
分類部１２は、入力されたトラヒック情報及び経路情報に基づいて、転送装置４０ごとに、当該転送装置４０のルーティングテーブルを構成する各ルーティングエントリを、当該転送装置４０の出力ポートごとのグループに分類する。分類の方法については後述される。
【００３９】
生成部１３は、分類部１２による分類結果に基づいて、各転送装置４０のルーティングテーブルを生成（更新）する。より詳しくは、生成部１３は、既存のルーティングテーブルにおける各ルーティングエントリのマッチングルールに対応する出力ポート情報を更新する。
【００４０】
以下、ルーティングテーブル生成装置１０が実行する処理手順について説明する。図４は、ルーティングテーブル生成装置が実行する処理手順の一例を説明するためのフローチャートである。
【００４１】
ステップＳ１０１において、入力情報取得部１１は、経路計算装置３０から各転送装置４０に関して算出された経路情報を取得し、制御装置２０から各転送装置４０のルーティングテーブル及びトラヒック情報を取得する。
【００４２】
本実施の形態では、便宜上、或る１つの転送装置４０（以下、「転送装置Ｘ」という。）に着目して説明する。転送装置Ｘは、図５に示されるような構成を有することとする。
【００４３】
図５に示されるように、転送装置Ｘは、Ｐｏｒｔ＿ａ、Ｐｏｒｔ＿ｂ、又はＰｏｒｔ＿ｃによって識別される３つの出力ポートを有する。各出力ポートには、リンク（Ｌｉｎｋ＿Ｘ、Ｌｉｎｋ＿Ｙ、又はＬｉｎｋ＿Ｚ）が接続されている。なお、図１において、各転送装置４０が他の転送装置４０と接続されるリンクは１つであるが、転送装置Ｘについては、便宜上、他の転送装置４０と接続されるリンクが３つであるとする。
【００４４】
転送装置Ｘは、また、ルーティングテーブルＴ１を有する。ルーティングテーブルＴ１は、マッチングルールとして、Ｒｕｌｅ＿１〜Ｒｕｌｅ＿１１を含む。例えば、Ｒｕｌｅ＿１又はＲｕｌｅ＿５にマッチ（合致）したトラヒックは、Ｐｏｒｔ＿ａから出力され、Ｒｕｌｅ＿２又はＲｕｌｅ＿４にマッチしたトラヒックは、Ｐｏｒｔ＿ｂから出力され、Ｒｕｌｅ＿３にマッチしたトラヒックは、Ｐｏｒｔ＿ｃから出力されるように各ルーティングエントリは設定されている。なお、ルーティングテーブルＴ１において、Ｒｕｌｅ＿６〜Ｒｕｌｅ＿１１に対する出力ポートは、便宜上、省略されている。
【００４５】
このような転送装置Ｘについて、経路計算装置３０は、数１に基づいて、図６に示されるような経路情報を算出したとする。
【００４６】
図６は、経路計算装置によって算出された経路情報の一例を示す図である。図６に示されるように、或る一つの転送装置４０に関する経路情報は、発着ノード別のトラヒックについての各出力リンクへのトラヒック量の割合である「発着ノード別最適トラヒック量割合」の集合である。
【００４７】
一方、制御装置２０からは、転送装置Ｘに関して、図５に示したルーティングテーブルＴ１と、図７に示されるような取得されるトラヒック情報が取得される。
【００４８】
図７に示されるように、転送装置Ｘに関して制御装置２０〜取得されるトラヒック情報は、転送装置Ｘにおいて観測された、発着ノード別のトラヒック量についての、マッチングルール別の割合である、エントリ別観測トラヒック量割合の集合である。
【００４９】
続いて、入力情報取得部１１は、取得された経路情報及びトラヒック情報を、ルーティングテーブルの生成処理に都合の良い形式に加工する（ステップＳ１０２）。
【００５０】
例えば、図６示される出力リンク別ト最適ラヒック量割合は、出力ポート別最適トラヒック量割合に変換される。当該変換は、転送装置Ｘにおいて保持されている「ポート・リンク情報」を利用して行われる。
【００５１】
図８は、ポート・リンク情報の構成例を示す図である。図８に示されるように、ポート・リンク情報は、出力ポートと出力リンクとの対応関係を示す。基本的に、出力ポートと出力リンクとは１対１に対応する。図８では、図５の転送装置Ｘにおけるポート・リンク情報が示されている。なお、ポート・リンク情報は、例えば、制御装置２０を介して転送装置Ｘから取得される。
【００５２】
図６の各出力リンク別最適トラヒック量割合に対応する「出力リンク」が、図８のポート・リンク情報に基づいて、「出力ポート」に置換されることで、出力ポート別最適トラヒック量割合の集合が得られる。図９に、出力ポート別最適トラヒック量割合の集合の一例を示す。
【００５３】
また、入力情報取得部１１は、制御装置２０から取得されたトラヒック情報についても加工を行う。図７では、便宜上、加工結果である「エントリ別観測トラヒック量割合」が示されているが、厳密には、制御装置２０から取得されるトラヒック情報は、「エントリ別観測トラヒック量」である。入力情報取得部１１は、各エントリ別観測トラヒック量について、発着ノード単位での割合を求めることで、「エントリ別観測トラヒック量割合」を得る。
【００５４】
なお、転送装置４０内のルーティングテーブルはルーティングエントリ毎のトラヒック量のカウンタ値を保存している。このカウンタ値を計測することで、「エントリ別観測トラヒック量」を得ることができる。
【００５５】
なお、これから生成されるルーティングテーブルＴ１は、将来において使用されるものである。したがって、「エントリ別観測トラヒック量」がそのまま用いられるのではなく、「エントリ別観測トラヒック量」が、将来において予測されるトラヒック需要の予測値に変換された結果に基づいて、「エントリ別観測トラヒック量割合」が算出されてもよい。例えば、線形予測、ＡＲＩＭＡ等によって予測値が算出されてもよい。本実施の形態では、トラヒック需要が一定であるとの仮定に基づいて、「エントリ別観測トラヒック量」がそのまま予測値として利用される例について説明する。
【００５６】
続いて、分類部１２は、発着ノードごとに、当該発着ノードに関するエントリ別観測トラヒック量割合の集合を、当該発着ノードに関して出力ポート別最適トラヒック量割合が割り当てられている出力ポート別のグループに分類する（ステップＳ１０３）。
【００５７】
特定の発着ノード別トラヒックに対する、出力ポート別最適トラヒック量割合をＰ（ｐ１，ｐ２，ｐ３，...，ｐＮ）とし、エントリ別観測トラヒック量割合をＦ（ｆ１，ｆ２，ｆ３，...，ｆＭ）とした場合、分類部１２は、Ｆを任意に組み合わせて出力ポート別近似トラヒック量割合Ａ（ａ１，ａ２，ａ３，...，ａＮ）を生成する。すなわち、エントリ別観測トラヒック量割合の集合が、出力ポート別のグループに分類される。Ａについて式（３．１）で表す。
【００５８】
【数５】
0006426076.tif 000006
ここで、ｕｉｊは、Ｆの組み合わせを表す０−１変数であり、ａｉにｆｊが含まれる場合に１、それ以外の場合に０を表す。ｆｊは、いずれか１つのａｉにのみ含まれる。この条件について式（３．２）、（３．３）で表す。
【００５９】
【数６】
0006426076.tif 000007
この際、分類部１２は、出力ポート別近似トラヒック量割合Ａと出力ポート別最適トラヒック量割合Ｐとの誤差（差分）が最も小さくなるように、出力ポート別近似トラヒック量割合Ａを生成する。出力ポート別近似トラヒック量割合Ａと出力ポート別最適トラヒック量割合Ｐとの誤差を式（３．４）で表す。
【００６０】
【数７】
0006426076.tif 000008
式（３．１）から（３．４）により、以下の数理計画問題を定式化できる。
【００６１】
【数８】
0006426076.tif 000009
しかしながら、この数理計画問題は、目的関数が非線形関数であるため、効率的な解導出が困難である。そこで、誤差ベクトルＺ（ｚ１，...，ｚN）を導入し、数８を、下記のような０−１整数計画問題へと変換する。
【００６２】
【数９】
0006426076.tif 000010
数９では、式（３．４）の非線形関数が、式（３．６）、（３．７）、及び（３．８）で表現されている。
【００６３】
なお、数９における各パラメータの意味を改めて説明すると、以下の通りである。
ｚｉは、ｉ番目の出力ポートのグループに関する出力ポート別最適トラヒック量割合と出力ポート別近似トラヒック量割合との差分（誤差）である。
Ｍは、ルーティングテーブルＴ１のルーティングエントリの数である。
Ｎは、出力ポートの数である。
ｐｉは、ｉ番目の出力ポートに関して算出された出力ポート別最適トラヒック量割合である。
ａｉは、ｉ番目の出力ポートに対応するグループに分類されたエントリ別観測トラヒック量割合の総和である。
【００６４】
分類部１２は、数９の最適化問題を解くことで、誤差ベクトルＺを最小化するような、マッピング変数ｕｉｊを得る。その結果、エントリ別観測トラヒック量割合の集合は、誤差ベクトルＺが最小となるように、出力ポート別のグループに分類される。
【００６５】
図１０は、エントリ別観測トラヒック量割合の集合の分類結果の一例を示す図である。図１０に示される「最適化問題」は、数９のことである。当該最適化問題が解かれることにより、ｕｉｊの値が求まり、その結果、各マッチングルールは、出力ポート別のグループに分類される。図１０では、マッチングルールとしてＲｕｌｅ＿１、Ｒｕｌｅ＿２、又はＲｕｌｅ＿４を含む３つのルーティングエントリが、Ｐｏｒｔ＿ａのグループに分類され、マッチングルールとしてＲｕｌｅ＿３又はＲｕｌｅ＿５を含む２つのルーティングエントリが、Ｐｏｒｔ＿ｂに分類された例が示されている。
【００６６】
なお、図１０では、特定の発着ノード別トラヒック（Ｎｏｄｅ１−Ｎｏｄｅ２）に関するｕｉｊの算出結果が示されているが、転送装置Ｘにおいて観測された各発着ノード別トラヒックについて、ｕｉｊが算出され、発着ノード別トラヒックごとに、マッチングルールが、出力ポート別のグループに分類される。
【００６７】
続いて、生成部１３は、分類部１２による分類結果に基づいて、転送装置ＸのルーティングテーブルＴ１を生成（更新）する（ステップＳ１０４）。
【００６８】
図１１は、ルーティングテーブルの生成結果の一例を示す図である。図１１では、エントリ別観測トラヒック量割合と出力ポート別最適トラヒック量割合とがルーティングテーブル生成装置１０に入力され、ルーティングテーブル生成装置１０からルーティングテーブルＴ１が出力されることが示されている。生成されたルーティングテーブルＴ１は、制御装置２０によって転送装置Ｘに設定される。その結果、トラヒックを効果的に分散させ、ネットワークの使用効率を向上可能な経路制御が転送装置Ｘによって実行されることになる。
【００６９】
なお、上記の処理手順は、転送装置Ｘ以外の各転送装置４０に関しても実行される。
【００７０】
上述したように、本実施の形態によれば、トラヒックスプリット機能を有さない転送装置４０においても、数１の線形計画問題で得られた経路を設定できるようになる。したがって、発着ノード間に複数のパスが存在する環境において、マルチパスを有効活用することで最適経路に近付けることができる。また、線形計画問題の２つの利点（「計算時間が短い」、「得られる最適経路の性能が高い」）を得ることができる。その結果、大規模なネットワークに対して現実的な時間で高性能な最適経路を様々な転送装置に設定することができる。
【００７１】
なお、数９は、転送装置別、かつ、発着ノード別の問題である。各転送装置、発着ノード間で数９を並列に計算可能であるため、並列計算可能な計算機をルーティングテーブル生成装置１０に用いることで、ネットワーク全体の最適経路解を高速に導出できる。
【００７２】
また、本実施の形態では、経路計算装置３０によって数１に基づいて算出される経路情報がルーティングテーブルの生成に際しての目標値とされる例について説明したが、ルーティングテーブル生成装置１０に入力される経路情報は、斯かる経路情報に限定されない。例えば、最大リンク率以外のパラメータの最適化が目的関数とされてもよい。また、図９に示した出力ポート別最適トラヒック量割合の目標値が、人の任意によって設定されてもよい。また、どのような経路を得たいかに応じて、最適経路以外の経路に関する経路情報が目標値として入力されてもよい。
【００７３】
また、上記では、ルーティングエントリにおいて転送先を示す情報として、出力ポート情報が含まれる例について説明したが、当該転送先を示す情報は、転送パス（転送経路）を示す情報（以下、「転送パス情報」という。）であってもよい。すなわち、各ルーティングエントリは、マッチングルールと転送パス情報とを含む。転送装置４０は、転送対象のトラヒックに合致するマッチングルールを含むルーティングエントリに基づいて転送パスを判定し、転送パスに対応する出力ポートから当該トラヒックを出力する。転送パスと出力ポートとの対応情報は、転送装置４０に記憶されている。また、転送パスと出力ポートとの関係は、必ずしも１対１ではない。この場合、上記における「出力ポート」は、「転送パス」に置き換えられればよい。例えば、経路計算装置３０によって算出される経路情報は、転送パス別に、トラヒック量割合を示す情報となる。したがって、上記における「出力ポート別最適トラヒック量割合」は、「転送パス別最適トラヒック量割合」に置き換えられればよい。
【００７４】
上記より、本実施の形態において、出力ポート及び転送パスは、転送装置４０による転送先の一例である。
【００７５】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７６】
１０          ルーティングテーブル生成装置
１１          入力情報取得部
１２          分類部
１３          生成部
２０          制御装置
３０          経路計算装置
４０ａ、４０ｂ、４０ｃ  転送装置
５０ａ、５０ｂ、５０ｃ、５０ｄ  端末
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
Ｂ            バス
【図１】
0006426076.tif 000013
【図２】
0006426076.tif 000014
【図３】
0006426076.tif 000015
【図４】
0006426076.tif 000016
【図５】
0006426076.tif 000017
【図６】
0006426076.tif 000018
【図７】
0006426076.tif 000019
【図８】
0006426076.tif 000020
【図９】
0006426076.tif 000021
【図１０】
0006426076.tif 000022
【図１１】
0006426076.tif 000023