"複数の通信制御装置がそれぞれリンクで接続されることで構成されるネットワークシステムに用いられる通信制御装置であって、前記通信制御装置は、受信部と、送信部と、経路テーブルと、既定流量計算部と、未定流量計算部と、転送先決定部とを有しており、前記経路テーブルには、パケットの送信元と宛先との組み合わせで定義されるフローごとに、そのフローの宛先への経路上に位置し、自身に隣接する転送先の前記通信制御装置と、その隣接する前記通信制御装置の候補になる前記通信制御装置の台数とが対応づけて格納されており、前記受信部は、他の前記通信制御装置からパケットを受信すると、そのパケットが自身宛てでないときに、受信したパケットを前記送信部へと通知し、前記送信部は、通知されたパケットの宛先をもとに前記経路テーブルを検索し、その宛先に向かうための隣接する前記通信制御装置を特定して、その特定した前記通信制御装置へパケットを送信し、前記既定流量計算部は、隣接する前記通信制御装置の候補が1台のフローと、隣接する前記通信制御装置の候補が複数台のフローのうちの前記受信部を介して受信したフローとを、ネットワークシステム内の各リンクに割り当てることで、リンクごとの流量を計算し、前記未定流量計算部は、隣接する前記通信制御装置の候補が複数台のフローのうちの前記送信部を介して送信するフローについて、複数台の候補のうちの1台を選択して、その選択した前記通信制御装置へのリンクに割り当てる仮割当処理について、選択する前記通信制御装置を前記仮割当処理ごとに異なるものとして複数回実行し、前記既定流量計算部が計算したリンクごとの流量と、前記仮割当処理により割り当てられたフローのリンクごとの流量とを加算することにより、前記各仮割当処理におけるリンクごとの流量を計算し、前記転送先決定部は、前記未定流量計算部が計算した前記各仮割当処理におけるリンクごとの流量を入力とする負荷評価関数を計算することにより、その負荷評価関数において負荷のばらつきが最も少ない前記仮割当処理を特定し、その特定した前記仮割当処理により各リンクに割り当てられたフローをもとに、前記経路テーブルを更新することを特徴とする通信制御装置。前記未定流量計算部は、前記既定流量計算部が計算したリンクごとの流量と、前記仮割当処理により割り当てられたフローのリンクごとの流量とを加算するときに、各リンクごとの流量に対して、異なった重み値を乗算してから加算し、前記既定流量計算部が計算したリンクごとの流量にかかる重み値よりも、前記仮割当処理により割り当てられたフローのリンクごとの流量にかかる重み値を小さい値とすることを特徴とする請求項1に記載の通信制御装置。前記転送先決定部は、前記負荷評価関数を計算するときに、リンクごとの流量について、最も大きい流量から最も小さい流量を減じた流量のレンジを計算し、そのレンジが最も小さい値である前記仮割当処理を、前記負荷評価関数において負荷のばらつきが最も少ない前記仮割当処理とすることを特徴とする請求項1または請求項2に記載の通信制御装置。前記転送先決定部は、前記負荷評価関数を計算するときに、リンクごとの流量を入力とする分散評価関数を計算し、その分散値が最も小さい値である前記仮割当処理を、前記負荷評価関数において負荷のばらつきが最も少ない前記仮割当処理とすることを特徴とする請求項1または請求項2に記載の通信制御装置。複数の通信制御装置がそれぞれリンクで接続されることで構成されるネットワークシステムに用いられる通信制御装置による通信制御方法であって、前記通信制御装置は、制御部と、受信部と、送信部と、経路テーブルとを有しており、前記経路テーブルには、パケットの送信元と宛先との組み合わせで定義されるフローごとに、そのフローの宛先への経路上に位置し、自身に隣接する転送先の前記通信制御装置と、その隣接する前記通信制御装置の候補になる前記通信制御装置の台数とが対応づけて格納されており、前記制御部は、前記受信部に、他の前記通信制御装置からパケットを受信させると、そのパケットが自身宛てでないときに、受信したパケットを前記送信部へと通知させる受信制御ステップと、前記送信部に通知されたパケットの宛先をもとに前記経路テーブルを検索させ、その宛先に向かうための隣接する前記通信制御装置を特定させて、その特定した前記通信制御装置へパケットを送信させる送信制御ステップと、隣接する前記通信制御装置の候補が1台のフローと、隣接する前記通信制御装置の候補が複数台のフローのうちの前記受信部を介して受信したフローとを、ネットワークシステム内の各リンクに割り当てることで、リンクごとの流量を計算させる既定流量計算ステップと、隣接する前記通信制御装置の候補が複数台のフローのうちの前記送信部を介して送信するフローについて、複数台の候補のうちの1台を選択して、その選択した前記通信制御装置へのリンクに割り当てる仮割当処理について、選択する前記通信制御装置を前記仮割当処理ごとに異なるものとして複数回実行し、前記既定流量計算ステップで計算されたリンクごとの流量と、前記仮割当処理により割り当てられたフローのリンクごとの流量とを加算することにより、前記各仮割当処理におけるリンクごとの流量を計算させる未定流量計算ステップと、前記未定流量計算ステップで計算された前記各仮割当処理におけるリンクごとの流量を入力とする負荷評価関数を計算することにより、その負荷評価関数において負荷のばらつきが最も少ない前記仮割当処理を特定させ、その特定した前記仮割当処理により各リンクに割り当てられたフローをもとに、前記経路テーブルを更新させる転送先決定ステップとを実行することを特徴とする通信制御方法。前記制御部は、前記未定流量計算ステップにおいて、前記既定流量計算ステップで計算されたリンクごとの流量と、前記仮割当処理により割り当てられたフローのリンクごとの流量とを加算するときに、各リンクごとの流量に対して、異なった重み値を乗算してから加算し、前記既定流量計算ステップで計算されたリンクごとの流量にかかる重み値よりも、前記仮割当処理により割り当てられたフローのリンクごとの流量にかかる重み値を小さい値とすることを特徴とする請求項5に記載の通信制御方法。前記制御部は、前記転送先決定ステップにおいて、前記負荷評価関数を計算するときに、リンクごとの流量について、最も大きい流量から最も小さい流量を減じた流量のレンジを計算し、そのレンジが最も小さい値である前記仮割当処理を、前記負荷評価関数において負荷のばらつきが最も少ない前記仮割当処理とすることを特徴とする請求項5または請求項6に記載の通信制御方法。前記制御部は、前記転送先決定ステップにおいて、前記負荷評価関数を計算するときに、リンクごとの流量を入力とする分散評価関数を計算し、その分散値が最も小さい値である前記仮割当処理を、前記負荷評価関数において負荷のばらつきが最も少ない前記仮割当処理とすることを特徴とする請求項5または請求項6に記載の通信制御方法。請求項5ないし請求項8のいずれか1項に記載の通信制御方法を、コンピュータに実行させることを特徴とする通信制御プログラム。ネットワークシステムの通信効率を向上させるためには、ネットワークシステムを構成する各構成要素にかかる負担を、なるべくバランスよく分散されることが、望ましい。もし、ある1つのルータだけに負荷が集中してしまうと、そのルータがネットワークシステム全体のボトルネックとなり、他のルータの処理能力に余裕があるにもかかわらず、ネットワークシステム全体の通信効率が向上しないためである。一方、従来の技術では、ネットワークシステム全体の負荷分散を考慮した、転送先のルータを決定する方法は提案されていない。非特許文献1では、そもそも負荷情報を全く考慮せず、常に同一の隣接ルータに転送するために、その転送先の隣接ルータへの負荷集中が発生しやすい。非特許文献2では、負荷情報として隣接ルータ隣接する通信制御装置だけの輻輳状態を参照するだけなので、ルータ間のホップ数が2ホップ以上先に、ネットワークトポロジ全体に負荷を分散できる迂回路が存在していても、その迂回路は採用されづらい。そこで、本発明は、前記した課題を解決し、パケットの転送先である隣接する通信制御装置を選択するときに、ネットワークシステム全体の負荷分散を実現することを、主な目的とする。前記課題を解決するために、本発明は、複数の通信制御装置がそれぞれリンクで接続されることで構成されるネットワークシステムに用いられる通信制御装置であって、前記通信制御装置が、受信部と、送信部と、経路テーブルと、既定流量計算部と、未定流量計算部と、転送先決定部とを有しており、前記経路テーブルには、パケットの送信元と宛先との組み合わせで定義されるフローごとに、そのフローの宛先への経路上に位置し、自身に隣接する転送先の前記通信制御装置と、その隣接する前記通信制御装置の候補になる前記通信制御装置の台数とが対応づけて格納されており、前記受信部が、他の前記通信制御装置からパケットを受信すると、そのパケットが自身宛てでないときに、受信したパケットを前記送信部へと通知し、前記送信部が、通知されたパケットの宛先をもとに前記経路テーブルを検索し、その宛先に向かうための隣接する前記通信制御装置を特定して、その特定した前記通信制御装置へパケットを送信し、前記既定流量計算部が、隣接する前記通信制御装置の候補が1台のフローと、隣接する前記通信制御装置の候補が複数台のフローのうちの前記受信部を介して受信したフローとを、ネットワークシステム内の各リンクに割り当てることで、リンクごとの流量を計算し、前記未定流量計算部が、隣接する前記通信制御装置の候補が複数台のフローのうちの前記送信部を介して送信するフローについて、複数台の候補のうちの1台を選択して、その選択した前記通信制御装置へのリンクに割り当てる仮割当処理について、選択する前記通信制御装置を前記仮割当処理ごとに異なるものとして複数回実行し、前記既定流量計算部が計算したリンクごとの流量と、前記仮割当処理により割り当てられたフローのリンクごとの流量とを加算することにより、前記各仮割当処理におけるリンクごとの流量を計算し、前記転送先決定部が、前記未定流量計算部が計算した前記各仮割当処理におけるリンクごとの流量を入力とする負荷評価関数を計算することにより、その負荷評価関数において負荷のばらつきが最も少ない前記仮割当処理を特定し、その特定した前記仮割当処理により各リンクに割り当てられたフローをもとに、前記経路テーブルを更新することを特徴とする。その他の手段は、後記する。本発明によれば、パケットの転送先である隣接する通信制御装置を選択するときに、ネットワークシステム全体の負荷分散を実現することができる。以下、本発明の一実施形態を、図面を参照して詳細に説明する。図1は、ネットワークシステムの構成例を示す説明図である。ネットワークシステムは、複数のルータ1通信制御装置が、それぞれリンクで接続されて構成される。ルータ1とは、他装置から受信したフローのパケットを隣接するルータ1へと転送する転送手段と、自装置が作成したパケットを隣接するルータ1へと送信する送信手段とを備えた通信装置であり、ルータ専用機だけでなく、その他の通信機器、無線ネットワークを構築するデバイスなどによって構成されてもよい。ルータ1は、制御部CPU、記憶部メモリ、ハードディスクなど、および、通信部受信部および送信部を実現するためのネットワークインタフェースを備えるコンピュータとして構成される。ルータ1は、例えば、ホップ数に基づく最短経路法により構築されたルーティングテーブルを参照して、パケットの転送先を決定する。なお、本実施形態の説明において、ルータごとにそのルータのID図1のR1などや、リンクごとにそのリンクのID1から順に採番した番号などを付して説明する。表1は、図1のネットワークシステム上を流れるフローの分類を示す表である。フローとは、ネットワークを流れるトラフィックパケットのうちの、送信元と宛先との組み合わせが一致するパケットの集合を示す。フローの識別情報送信元と宛先との組み合わせは、例えば、パケットのヘッダを読み取ることによって、取得することができる。送信元ルータとは、フローの送信元を示すルータである。宛先ルータとは、フローの宛先を示すルータである。隣接ルータとは、送信元ルータから宛先ルータへの経路上のルータ群のうち、自ルータからみて経路の次ホップに位置するルータ換言すると、自ルータからみてパケットの直接の送信先であるルータである。なお、宛先ルータが自ルータから直接リンクで接続されている場合、宛先ルータと隣接ルータとは、同じルータになる。転送先ルータ適宜転送先と略すとは、送信元ルータから宛先ルータへのフローの経路が一意に決定したとき、その決定した経路上に位置する隣接ルータである。転送先数とは、自ルータからみた、所定の宛先ルータに向かうための転送先ルータの候補数隣接ルータの数である。経路数とは、送信元ルータから宛先ルータへの経路のうちの、ルーティングにホップ数に基づく最短経路法を採用した場合、最短ホップ数でフローを伝達できる経路の候補数である。例えば、図1aでは、送信元ルータR2から宛先ルータR5へのフローの経路数は、以下に示すように、2である。フローFyルータR2→ルータR3→ルータR5:2ホップフローFzルータR2→ルータR4→ルータR5:2ホップまた、図1aでは、送信元ルータR4から宛先ルータR5へのフローの経路数は、フローFxルータR4→ルータR5の1である。なお、迂回経路ルータR4→ルータR2→ルータR3→ルータR5は、ホップ数が3であるため、最短経路には該当しない。ここで、隣接ルータを通過する経路とは、経路数が最短最小である経路であることが、望ましい。つまり、経路数が最短ではない迂回経路を通過する次ホップのルータを、転送先ルータの候補である隣接ルータから除外してもよい。転送先と転送先数とについて、例えば、図1aでは、自ルータR2からみて、送信元ルータR2から宛先ルータR5へのフローの転送先数は、2つ転送先=ルータR3,R4である。一方、図1bでは、自ルータR1からみて、送信元ルータR1から宛先ルータR5へのフローの転送先数は、1つ転送先=ルータR2である。フローFpでも、フローFqでも同じルータR2が隣接ルータとなるためである。方向とは、自ルータからみた、フローの送受信の方向を示す。同じフローFyでも、ルータR2からみたら方向=送信であり、ルータR5からみたら方向=受信である。分類とは、第1~第4フローを既定フローまたは未定フローのいずれかに分類するものである。既定フローとは、自ルータからみて宛先の隣接ルータを複数の候補から1つの候補を選択する必要がないフローである。未定フローとは、自ルータからみて宛先の隣接ルータを複数の候補から1つの候補を選択する必要があるフローである。第1フローは、経路数1かつ転送先数1かつ方向送受信に該当するフローであり、図1aでは、例えば、ルータR4からみたフローFxが第1フローに該当する。第2フローは、経路数複数かつ転送先数1かつ方向送受信に該当するフローであり、図1bでは、例えば、ルータR1からみた、フローFpやフローFqが該当する。第3フローは、経路数複数かつ転送先数複数かつ方向受信に該当するフローであり、図1aでは、例えば、ルータR5からみた、フローFyやフローFzが該当する。第4フローは、経路数複数かつ転送先数複数かつ方向送信に該当するフローであり、図1aでは、例えば、ルータR2からみた、フローFyやフローFzが該当する。表2は、本実施形態で説明に用いる各パラメータを示す変数リストを示す表である。カウンタ用制御用の変数i、j、k、rは、同じ処理を繰り返すときに、現在の処理対象を特定するために用いられる。フローの流量を示す変数集合f1、f2、f3、f4は、表1で示した4種類のフローそれぞれのネットワークシステム上で流れている流量の値を示す。なお、ネットワークシステムには複数のリンクが存在するため、フローの流量を示す変数集合例えば、f1のうちの所定のリンクでのフローの流量例えば、2番目のリンクの流量を示すために、配列表現f1[2]を適宜用いている。重み値w2、w3、w4は、第2~第4フローの流量f2,f3,f4にそれぞれ乗算する値である。w2、w3、w4は、それぞれ0より大きく1以下の値から任意に設定でき、ある重み値と、別の重み値とが同じ値でもよいし、別の値でもよい。第2~第4フローは、経路数が複数あるフローであり、経路が切り替わることで経由するルータが変わることもある。つまり、その複数の経路の内のどのリンクに割り当てられるかは、経路テーブル13図2参照の経路表の内容や、転送先決定部16図2参照で決定された経路に依存する。よって、第2~第4フローは、経路の隣接ルータが変更される可能性があることも考慮するため、第2~第4フローの各流量f2~f4に対して、第1フローの重み1以下の重み値w2~w4を乗算重み付け演算することによって、経路の切替が発生する可能性がない第1フローよりも、経路の切替が発生する可能性がある第2~第4フローの影響を低く設定している。以下の説明では、重み値w2=1,w3=1,w4=0.5を例に説明する。計算結果格納用の変数集合A、B、Cは、ルータ1が第4フローの転送先である隣接ルータを特定するための計算結果計算過程も含むを格納するものである。これらの各変数集合の詳細は、図2の構成図や図3a,図3bのフローチャートにおいて、明らかにする。図2は、ネットワークシステムに用いられるルータを示す構成図である。この図2の説明では、ルータ1内の各構成要素の処理概要を説明するものであり、その処理概要に対応する処理詳細計算式などは、後記する図3のフローチャートの説明において、明らかにする。ルータ1は、受信部11と、送信部12と、経路テーブル13と、既定流量計算部14と、未定流量計算部15と、転送先決定部16とを含めて構成される。なお、既定流量計算部14、未定流量計算部15、および、転送先決定部16は、ルータ1の制御部CPUがルータ1の記憶手段から読み取ったプログラムを実行することにより実現される。受信部11は、隣接ルータから受信したパケットあるいは自ルータが作成したパケットを受信する。送信部12は、送信対象のパケットの転送先である隣接ルータを、経路テーブル13から特定し、その隣接ルータに対して、送信対象のパケットを送信する。経路テーブル13には、フローの宛先ごとに、その宛先に向かうための1つの隣接ルータが対応づけられている。既定流量計算部14は、流量f1~f3、重みw2,w3をもとに、リンクiごとに既定流量A[i]を計算する。換言すると、既定流量計算部14は、既定フローの各流量f1~f3を、各リンクiに割り当てる。未定流量計算部15は、j=1~M回の仮割当を行うことで第4フローの流量f4[j][i]を特定し、その仮割当ごとに、仮割当流量B[j]を計算する。換言すると、未定流量計算部15は、未定フローの流量f4を各リンクiに割り当てるとともに、各リンクiに割り当てられた既定フローと未定フローの合計値をもとに、各リンクiの負荷を見積る。転送先決定部16は、複数の仮割当流量B[j]から、それぞれの負荷評価関数を計算し、1つの仮割当流量B[k]を仮割当から本割当として決定する。さらに、転送先決定部16は、決定したk回目の仮割当のフロー経路上に位置する隣接ルータを、転送先として経路テーブル13へと書き込む。なお、転送先決定部16は、同じフローのパケット群送信元ルータと宛先ルータとの組み合わせが同じパケット群を、同じ隣接ルータへと転送する。例えば、同じ時間帯において、図1aのフローFyかフローFzかのいずれかが本割当のフローとして決定され例えば、フローFy、決定されなかったフローの経路例えば、フローFzは用いられない。これにより、パケットの経路変更によるパケットの順序の入れ替わりを抑制する。一方、非特許文献2の方法では、同じフローのパケットであっても、それぞれ異なる隣接ルータヘ順次転送されると、経路ごとの転送時間の差から宛先のルータで順序の入れ替わりが発生してしまい、TCPTransmissionControlProtocolなどのセッションを管理しているトラフィックがネットワーク内に流れている場合には、宛先で到着したパケットが順番通りに届いていないとパケットの再送などの問題が生じる。図3aは、ルータ1によるフロー通信処理を示すフローチャートである。S101において、受信部11は、隣接ルータから受信したパケットあるいは自ルータが作成したパケットを受信する。受信したパケットが、自ルータを宛先ルータとするパケットであれば、自ルータがそのままパケットを読み取り、送信部12への通知を省略する。一方、自ルータを宛先ルータとするパケットでなければ、受信したパケットを転送用のパケットとして送信部12に通知する。S102において、送信部12は、送信対象のパケット自ルータが新たに作成したパケットや、受信部11から通知された転送用のパケットを受け、送信対象のパケットの宛先を検索キーとして、経路テーブル13から該当するレコードの転送先である隣接ルータを特定する。S103において、送信部12は、S102で特定された隣接ルータに対して、送信対象のパケットを送信する。図3bは、ルータ1による経路変更処理を示すフローチャートである。この図3bの処理は、所定契機定期的に、または、不定期にごとに実行される。以下の説明では、後記する図4,図5のルータR1を自ルータとしたときの処理を一例として説明する。表3は、パケットの伝送量を示す表である。この表は、行要素が送信元のルータ、列要素が宛先のルータである2次元の表である。例えば、1行目R1と2列目R2とが交差するセル値2とは、ルータ1からルータ2へのパケットの伝送量が2であることを示す。なお、対角要素d行目,d列目は、自ルータから自ルータヘのパケットの伝送量であり、簡単のために0とした。ルータ1は、自身の記憶手段図示省略内に、表3のようなパケットの伝送量を示すデータをあらかじめ記憶しておく。表4は、図3bの処理を行う前経路テーブル13の変更前における、ルータR1の経路テーブル13と、各フローの経路送信元ルータ、中継ルータ、宛先ルータを示す表である。この経路テーブル13を構成する各パラメータフローごとの転送先数などは、あらかじめルーティングプロトコルの処理により動的に作成されてもよいし、管理者が手入力した経路テーブル13を用いてもよい。経路テーブル13において、1行目のフローAルータR1→ルータR2と、2行目のフローBルータR1→ルータR3との割当内容は、次のようになっている。フローAルータR1→ルータR2は、隣接ルータR4i=1へと送信される。フローBルータR1→ルータR3は、隣接ルータR4i=1へと送信される。経路テーブル13において、3行目~5行目では、第2ルータ集合に属する各ルータR4,R5,R6は、それぞれ第1ルータ集合のルータR1から直接接続されたリンクを介して、1ホップで通信可能である宛先=転送先。S201において、既定流量計算部14は、既定流量Aの計算に必要な入力パラメータ流量f1~f3、重みw2,w3を取得する。そのため、まず、既定流量計算部14は、表1で既定フローと分類されている第1~第3フローの流量f1,f2,f3を取得する。次に、既定流量計算部14は、ルータ1内の記憶手段にあらかじめ格納されている重みリスト図示省略から、重み値w2=1,w3=1を取得する。なお、第1~第4フローのうちのどのフローに該当するかを分類する処理を例示する。まず、既定流量計算部14は、受信部11が受信したパケットの通知を受け、そのパケットのヘッダを参照することで、フローの特定情報送信元および宛先の組み合わせを取得する。次に、既定流量計算部14は、フローの特定情報を検索キーとして、ルータ1内の記憶手段にあらかじめ格納されているフロー分類リスト図示省略から検索し、そのフローの特定情報に対応するフローの分類結果第1~第4フローのうちのいずれかを取得する。つまり、フロー分類リストは、フローの特定情報ごとに、そのフローの分類結果第1~第4フローのうちのいずれかをあらかじめ定義するものである。例えば、ルータR1を自ルータとすると、後記する図4,図5のネットワークトポロジでは、第1フローは流れるものの、第2フローおよび第3フローは流れない。よって、表3のパケットの伝送量から、以下のようにフロー流量が取得される。f1[1]=28、f1[2]=27、f1[3]=16リンク番号i=1は、ルータR1とルータR4とを接続するリンクに付された番号である。リンク番号i=2は、ルータR1とルータR5とを接続するリンクに付された番号である。リンク番号i=3は、ルータR1とルータR6とを接続するリンクに付された番号である。f2[i]=0i=1,2,3f3[i]=0i=1,2,3S202において、既定流量計算部14は、リンクiごとに既定流量Aを計算する。つまり、計算式既定流量A[i]=f1[i]f2[i]×w2f3[i]×w3を、各リンクi=1~Nごとに計算する。例えば、ルータR1を自ルータとしたときには、ルータR1に接続されている3つのリンクi=1,2,3ごとに、既定流量A[i]が計算される。A[1]=281×01×0=28A[2]=271×01×0=27A[3]=161×01×0=16S203において、未定流量計算部15は、転送先決定部16が転送先を決定する対象となる第4フローの集合を取得する。そのため、未定流量計算部15は、定期にもしくは不定期に、所定期間分に送信部12が送信するパケットを、送信部12から受け取る。そして、未定流量計算部15は、送信部12から受け取った各フローから、S201で説明したように第1~第4フローの分類処理を行うことで、第4フローとして分類されたフローの集合を取得する。S204において、未定流量計算部15は、j=1~M回の仮割当を行う。それぞれの仮割当は、第4フローを隣接ルータへ割り当てる組み合わせにより表現され、前回以前の仮割当の組み合わせと、今回の仮割当の組み合わせとは、異なる組み合わせとする。仮割当の結果は、f4[j][i]である。なお、仮割当の組み合わせが複数個あるときに、どの組み合わせを優先的に選択するかについては、例えば、隣接ルータのルータIDがなるべく小さい値になる組み合わせを優先的に選択してもよい非特許文献1に記載されている方法。以下では、仮割当の回数として、M=2の場合を例示する。なお、一般的には、S203で取得した第4フローの集合から、その集合に属する各フローの転送先数フローAでは3、フローBでは3をそれぞれ取得し、取得した転送先数どうしを乗算した結果3×3=9がM回の上限値すべての組み合わせを網羅した仮割当回数に該当する。図4は、ネットワークシステムを構成するネットワークトポロジを示す構成図である。この図4のネットワークシステムの構成例は、後記する図5の仮割当処理の説明用のネットワークシステムである。このネットワークシステムでは、6つのルータ1のうちのルータR1~R3を第1ルータ集合とし、残りのルータR4~R6を第2ルータ集合とすると、第1ルータ集合に属する任意のルータ1と、第2ルータ集合に属する任意のルータ1とが直接接続されている。つまり、あるルータ1は、自身とは異なるルータ集合に属するルータ1への通信を、直接接続されたリンクを介して、1ホップで通信できる。一方、あるルータ1は、自身と同じルータ集合に属する他のルータ1への通信を、自身とは異なるルータ集合を経由して、2ホップで通信できる。図5は、図4のネットワークシステムにおいて、フローの経路の変更処理を示す説明図である。図5では図4で示したリンクのうち、フローが流れないリンクを省略しているが、実際には図4で示したリンクは存在する。図5aでは、j=1回目の仮割当として、フローAルータR1→ルータR2の隣接ルータをルータR4i=1に割り当て、フローBルータR1→ルータR3の隣接ルータをルータR6i=3に割り当てる。つまり、f4[1][i]は、以下の値である。f4[1][1]=2表3の1行目2列目f4[1][2]=0仮割当の対象外f4[1][3]=8表3の1行目3列目図5bでは、j=2回目の仮割当として、フローAルータR1→ルータR2の隣接ルータをルータR5i=2に割り当て、フローBルータR1→ルータR3の隣接ルータをルータR5i=2に割り当てる。つまり、f4[1][i]は、以下の値である。f4[2][1]=0仮割当の対象外f4[2][2]=10表3の1行目2列目表3の1行目3列目f4[2][3]=0仮割当の対象外S205において、未定流量計算部15は、j回目の仮割当における仮割当流量B[j]を計算する。なお、仮割当流量B[j]は、仮割当流量B[j][1]~仮割当流量B[j][N]によって構成される。そして、未定流量計算部15は、i番目のリンクごとの仮割当流量B[j][i]を、以下の計算式で計算する。仮割当流量B[j][i]=A[i]f4[j][i]×w4なお、A[i]は、S202で計算されたパラメータであり、既定流量計算部14から未定流量計算部15へと通知される。j=1回目の仮割当では、仮割当流量B[1]は、以下の仮割当流量B[1][i]から構成される。仮割当流量B[1][1]=A[1]f4[1][1]×w4=282×0.5=29仮割当流量B[1][2]=A[2]f4[1][2]×w4=270×0.5=27仮割当流量B[1][3]=A[3]f4[1][3]×w4=168×0.5=20j=2回目の仮割当では、仮割当流量B[2]は、以下の仮割当流量B[1][i]から構成される。仮割当流量B[2][1]=A[1]f4[2][1]×w4=280×0.5=28仮割当流量B[2][2]=A[2]f4[2][2]×w4=2710×0.5=32仮割当流量B[2][3]=A[3]f4[2][3]×w4=160×0.5=16S206において、転送先決定部16は、複数の仮割当流量B[j]から、1つの仮割当流量B[k]を転送先として決定する換言すると、複数の仮割当の候補から、1つの割当内容を決定する。この転送先の決定処理には、仮割当流量B[j]を入力パラメータとする、ネットワークシステム全体の負荷分散度合いを評価する負荷評価関数を用いる。以下、負荷評価関数を2つ例示する。1つめの負荷評価関数は、仮割当流量B[j]の取り得る値の幅レンジとして、レンジR[j]を計算する関数である。j回目の仮割当仮割当流量B[j]のレンジは、次の式で計算できる。レンジR[j]=仮割当流量B[j][i]のうちの最大値-仮割当流量B[j][i]のうちの最小値2つめの負荷評価関数は、仮割当流量B[j]の各値の分散V[j]を計算する関数である。j回目の仮割当仮割当流量B[j]の分散は、次の式で計算できる。例えば、1つめの負荷評価関数を採用すると、転送先決定部16は、仮割当流量B[1]および仮割当流量B[2]それぞれについて、以下の負荷評価値を計算する。レンジR[1]=29-20=9レンジR[2]=32-16=16そして、転送先決定部16は、負荷評価値が低いj=k回目の仮割当を転送先として採用する。この場合は、k=1回目が採用される。S207において、転送先決定部16は、決定したk回目の仮割当の経路を、経路テーブル13へと書き込む。これにより、S102において、更新された経路テーブル13を参照した送信部12は、ネットワーク全体の負荷分散がなされたk=1回目の割当結果である経路を活用することができ、ネットワークの利用効率を高めることができる。表5は、表4の状態から、転送先決定部16による経路テーブル13の更新処理S207が実行された後の各テーブルを示す。経路テーブル13の2行目の転送先が、図5aで示されるように、ルータR4からルータR6へと更新されている。以上、転送先決定部16が仮割当流量B[j]の負荷評価関数をもとに、採用する仮割当の経路を決定する処理を説明した。転送先決定部16は、さらに、リンクごとの情報である仮割当流量B[j]の代わりに、ルータごとの情報であるルータ負荷値C[j]を負荷評価関数の入力パラメータとして用いてもよい。ルータ負荷値C[j]は、ルータ負荷値C[j][1]~ルータ負荷値C[j][R]の集合であり、ルータ負荷値C[j][1]とは、j回目の仮割当における1番目のルータの負荷値を示す。ルータ負荷値C[j][r]は、以下の計算式で求められる。ルータ負荷値C[j][r]=j回目の仮割当におけるr番目のルータに流入する第1フローから第4フローまでの流量の総和j回目の仮割当におけるr番目のルータから流出する第1フローから第4フローまでの流量の総和表4の経路テーブル13の内容では、ルータ負荷値Cは、以下のように計算される。なお、表4の経路テーブル13では、仮割当をしていないため、j=0とする。ルータ負荷値C[0][1]=68ルータ負荷値C[0][2]=41ルータ負荷値C[0][3]=53ルータ負荷値C[0][4]=68ルータ負荷値C[0][5]=60ルータ負荷値C[0][6]=36ルータ負荷値C[0]の負荷評価値は、レンジR[0]=68-36=32、または、分散V[0]=153となる。例えば、ルータ負荷値C[0][1]=68は、以下の3つの流量の和261428=68である。1番目のルータR1を送信元ルータとするフローの流量=表3の1行目要素=028475261番目のルータR1を宛先ルータとするフローの流量=表3の1列目要素=032180141番目のルータR1を中継ルータとするフローの流量=表4の中継ルータがR1であるフローを抽出し表4の7行目~12行目、抽出したフローごとに、各フローを識別するための送信元ルータと宛先ルータとの組み合わせを取得し、その取得したフローに該当する伝送量を表3から読み取る。例えば、表4の7行目のフローは、送信元ルータR4,宛先ルータR5なので、表3の4行目5列目の要素4を読み取る。このようにして、抽出した表4の7行目~12行目に該当するフローの伝送量として、4188280728が計算される。表5の経路テーブル13の内容では、ルータ負荷値Cは、以下のように計算される。j=1とする。ルータ負荷値C[1][1]=52ルータ負荷値C[1][2]=41ルータ負荷値C[1][3]=69ルータ負荷値C[1][4]=49ルータ負荷値C[1][5]=60ルータ負荷値C[1][6]=55ルータ負荷値C[1]の負荷評価値は、レンジR[1]=69-41=28、または、分散V[1]=76となる。よって、経路変更前の表4の経路テーブル13よりも、経路変更後の表5の経路テーブル13のほうが、負荷評価値を低くすることができ、各ルータの処理量がネットワーク全体で、効率的に分散されている。以上説明した本実施形態では、ルータの接続するリンクを流れるパケットの伝送量から得られる指標フローの流量に基づいて、ルータの接続するリンクを流れるパケットの伝送量が同じになるようにレンジや分散値がなるべく低くなるように、宛先ルータごとにパケットの転送先である隣接ルータを決定する。この隣接ルータを決定する処理をネットワークシステム内の各ルータがそれぞれ独立して行う。これにより、ネットワークシステム内のルータごとの処理量の偏りが緩和されるので、パケットの転送先である隣接する通信制御装置を選択するときに、ネットワークシステム全体の負荷分散を実現することができる。"