ルータ、管理装置およびルーティング制御プログラム
【課題】トラフィックの少なくとも一部の転送経路を変更する際の消費電力の増加を抑制できるようにする。
【解決手段】ルータ1の状態情報取得手段1dは、特定のリンクを介して転送されるトラフィックの経路を対象経路とし、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ特定のリンクを経由しない経路を分散経路候補とする。そして状態情報取得手段1dは、分散経路候補のトラフィックを中継するルータの状態を示す状態情報を管理している管理装置から、各分散経路候補の状態情報を取得する。分散先決定手段1eは、各分散経路候補の状態情報に基づいて、状態の変化による消費電力の増加量が少ない経路を優先的に分散先経路として決定する。分散要求手段1fは、分散先経路へ、対象経路のトラフィックの少なくとも一部を振り分けるように、対象経路上の最初のルータに指示する分散要求を送信する。
【解決手段】ルータ1の状態情報取得手段1dは、特定のリンクを介して転送されるトラフィックの経路を対象経路とし、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ特定のリンクを経由しない経路を分散経路候補とする。そして状態情報取得手段1dは、分散経路候補のトラフィックを中継するルータの状態を示す状態情報を管理している管理装置から、各分散経路候補の状態情報を取得する。分散先決定手段1eは、各分散経路候補の状態情報に基づいて、状態の変化による消費電力の増加量が少ない経路を優先的に分散先経路として決定する。分散要求手段1fは、分散先経路へ、対象経路のトラフィックの少なくとも一部を振り分けるように、対象経路上の最初のルータに指示する分散要求を送信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はネットワーク上のトラフィックの振り分けを制御するルータ、管理装置およびルーティング制御プログラムに関する。
【背景技術】
【0002】
ネットワークでは複数のルータがパケットを中継し、宛先のコンピュータまでパケットを伝送させる。各ルータはパケットの宛先までの伝送経路を認識するために、経路情報を相互に交換している。経路情報には、その経路情報を送信したルータが認識している伝送経路が示されている。各ルータは、他のルータから受信した経路情報に基づいて、宛先に応じたパケットの転送先を選択する。
【0003】
ルータから宛先のコンピュータへの伝送経路が複数存在する場合、ルータは、所定のアルゴリズムで経路選択を行う。ルータにおける経路選択のアルゴリズムは、OSPF(Open Shortest Path First)やRIP(Routing Information Protocol)などのルーティングプロトコルに規定されている。これらのルーティングプロトコルでは、基本的には最短経路を採るように経路選択が行われる。あるいは、これらのルーティングプロトコルを用いた既存の高度な制御としては、ネットワーク利用率のピークを最小化するよう平滑化しつつ、最短経路を採るように経路選択が行われる。
【0004】
このような従来のルーティングプロトコルでは、パケットなどのトラフィック(ネットワーク上を移動するデータ)は予め決められた経路に沿って転送される。そのため、全体的にトラフィックが少ない時間帯が存在しても、各ルータを起動させ続けなければならない。
【0005】
他方、ネットワークの処理能力の向上に伴い、ネットワークを構成する機器による消費電力も増加している。そのため、ネットワーク全体での消費電力を抑制した運用を行うことの重要性が高まっている。そこで、例えばトラフィックの低下したハイウェイを自動的に検出して、該ハイウェイ内のデータを他のハイウェイに自動的に迂回させる技術が考えられている。データを迂回させたことで未使用状態に移行した電子交換機内装置に対し電源をOFFの制御を行うことで、消費電力の削減が可能となる。また、トラフィックが少ない場合には経路を集約させることで、多くの空きルータを生成する技術も考えられている。
【0006】
逆に、トラフィックで輻輳が発生した場合には、トラフィックを分散させる技術がある。例えば、入力エッジルータと出力エッジルータとの間に設定した複数のパスに、入力エッジルータへの入力トラフィックを分散させる技術がある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2001−119730号公報
【特許文献2】特開2004−48330号公報
【非特許文献】
【0008】
【非特許文献1】山田亜紀子、外3名、「グリーンネットワークに向けた一検討(3)ECOルーティング」、電子情報通信学会総合大会講演論文集、社団法人電子情報通信学会、2009年3月4日、2009年_通信(2)、pp.252
【発明の概要】
【発明が解決しようとする課題】
【0009】
ところで、ネットワークを構成するルータ間を接続するリンクのうち、一部のリンクで輻輳が発生することがある。その場合、そのリンクを経由したパスを利用するトラフィックが、他のパスに分散される。パスは、トラフィックが入力されるルータから、そのトラフィックの転送先となるルータへの転送経路である。
【0010】
しかし、一部のルータが省電力モード(スリープモード)となっているネットワークにおいて、輻輳発生の可能性があるリンクを経由するトラフィックをすべて分散させると、省電力モードとなっていたルータが起動してしまい、省電力化の妨げとなる場合がある。例えば、トラフィックが所定の閾値を超えたリンクを経由するパスが複数ある場合がある。輻輳の発生を抑制するには、トラフィックが閾値を超えたリンクを経由する一部のパスのトラフィックを、別経路に負荷分散すれば十分な場合もある。このような場合にまで、閾値を超えたリンクを経由するすべてのパスを介したトラフィックを別経路へ負荷分散させると、転送経路を集約して通過トラフィックを無くしてスリープしていたルータを必要以上に起動させることになる。その結果、消費電力が必要以上に増加することになる。
【0011】
なお、このような問題は、輻輳発生の抑制のみではなく、例えばリンクの障害によるトラフィックの迂回経路探索時にも同様に生じる。
本発明はこのような点に鑑みてなされたものであり、トラフィックの少なくとも一部の転送経路を変更する際の消費電力の増加を抑制することができるルータ、管理装置およびルーティング制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
上記課題を解決するために、他のルータとの間に張られたリンクを経由して、転送順が定義された経路に沿ってネットワークに入力されたトラフィックを転送する、以下に示すルータが提供される。
【0013】
ルータは、状態情報取得手段、分散先決定手段、および分散要求手段を有する。状態情報取得手段は、特定のリンクを経由して転送されるトラフィックの少なくとも一部を特定のリンクを経由しない経路で転送させる場合に、各リンクを介して転送されるトラフィックのネットワーク内での経路を記憶する経路記憶手段を参照する。そして状態情報取得手段は、特定のリンクを介して転送される1または複数のトラフィックの経路を対象経路とする。さらに状態情報取得手段は、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ特定のリンクを経由しない経路を分散経路候補とする。そして状態情報取得手段は、分散経路候補のトラフィックを中継するルータの状態を示す状態情報を管理している管理装置から、各分散経路候補の状態情報を取得する。分散先決定手段は、状態情報取得手段が取得した各分散経路候補の状態情報に基づいて、分散経路候補へ特定のリンクのトラフィックの一部を流した場合の経路上の他のルータの状態の変化を比較する。そして分散先決定手段は、状態の変化による消費電力の増加量が少ない経路を優先的に分散先経路として決定する。分散要求手段は、分散先決定手段で決定した分散先経路へ、経路上の最初と最後のルータの両方が分散先経路と共通である対象経路のトラフィックの少なくとも一部を振り分けるように、その対象経路上の最初のルータに指示する分散要求を送信する。
【0014】
また上記課題を解決するために、以下に示す管理装置が提供される。
管理装置は、状態情報収集手段と状態情報通知手段とを有する。状態情報収集手段は、ネットワーク内でトラフィックを転送順が定義された経路に沿って転送する各ルータから、該ルータの状態を示す状態情報を収集する。そして状態情報収集手段は、ルータの状態情報を、該ルータが転送するトラフィックの経路と対応付けて経路状態記憶手段に格納する。状態情報通知手段は、ネットワーク内の複数ルータ間に張られた特定のリンクを経由して転送されるトラフィックの経路を対象経路とする。状態情報通知手段は、該対象経路の最初と最後のルータが示されたアラーム情報を受信すると、経路状態記憶手段を参照し、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ特定のリンクを経由しない経路を分散経路候補とする。そして状態情報通知手段は、該分散経路候補の状態情報をアラーム情報の発信元に送信する。
【0015】
さらに上記課題を解決するために、上記ルータと同様の処理をコンピュータに実行させるためのルーティング制御プログラムが提供される。
【発明の効果】
【0016】
トラフィックの少なくとも一部の転送経路を他の経路に振り分ける場合に、消費電力の増加量が少ない経路へトラフィックを振り分けることができる。
【図面の簡単な説明】
【0017】
【図1】第1の実施の形態の機能を示すブロック図である。
【図2】輻輳の予兆検出時の処理を示す図である。
【図3】アラーム情報を受信したルータの処理を示す図である。
【図4】分散要求の送信処理を示す図である。
【図5】送出確率変更後のトラフィックの振り分けを示す図である。
【図6】第2の実施の形態のシステム構成例を示す図である。
【図7】本実施の形態に用いる中継ノードのハードウェアの一構成例を示す図である。
【図8】トラフィックの集約例を示す図である。
【図9】リンク利用率とアラーム情報送信との関係を示す図である。
【図10】中継ノードの機能を示すブロック図である。
【図11】フロー情報記憶部のデータ構造例を示す図である。
【図12】リンク情報記憶部のデータ構造例を示す図である。
【図13】エッジノードの機能を示すブロック図である。
【図14】ノードID「A」のエッジノードの経路状態情報記憶部のデータ構造例を示す図である。
【図15】経路状態情報収集処理の一例を示す図である。
【図16】経路「AED」と経路「BED」との経路空き容量計算例を示す図である。
【図17】ノードID「B」のエッジノードの経路状態情報記憶部のデータ構造例を示す図である。
【図18】入口ノードでの経路状態情報収集処理の手順を示すフローチャートである。
【図19】経路状態情報通知処理の手順を示すフローチャートである。
【図20】輻輳の予兆発生例を示す図である。
【図21】輻輳検出処理の手順の一例を示すフローチャートである。
【図22】フロー情報更新後のフロー情報記憶部の例を示す図である。
【図23】リンク情報更新後のリンク情報記憶部の例を示す図である。
【図24】ノードID「A」のエッジノードの更新後の経路状態情報記憶部の例を示す図である。
【図25】ノードID「B」のエッジノードの更新後の経路状態情報記憶部の例を示す図である。
【図26】輻輳制御処理の手順の一例を示すフローチャートである。
【図27】分散経路募集処理によるアラーム情報の送信状況を示す図である。
【図28】アラーム情報の転送が生じる態様を示す図である。
【図29】分散経路募集処理の一例を示すフローチャートである。
【図30】ノードID「A」のエッジノードのアラーム情報受信後の経路状態情報記憶部の例を示す図である。
【図31】ノードID「B」のエッジノードのアラーム情報受信後の経路状態情報記憶部の例を示す図である。
【図32】入札メッセージの送信例を示す図である。
【図33】入札処理の手順を示す図である。
【図34】分散要求の送信例を示す図である。
【図35】分散先経路決定処理の手順の一例を示すフローチャートである。
【図36】分散経路候補評価処理の手順の一例を示すフローチャートである。
【図37】送出確率更新後の経路状態情報記憶部の例を示す図である。
【図38】負荷分散の一例を示す図である。
【図39】送出確率更新処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0018】
以下、本実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態の機能を示すブロック図である。図1の例では、複数のルータ1〜6を含むネットワークが示されている。各ルータ1〜6には識別子(ID)が付与されている。ルータ1のIDは「E」、ルータ2のIDは「A」、ルータ3のIDは「B」、ルータ4のIDは「C」、ルータ5のIDは「F」、ルータ6のIDは「D」である。各ルータ1〜6は、一定期間トラフィックの流入が途絶えると、省電力モードに移行することができる。省電力モードでは、例えば、トラフィックの転送に関する機能を停止することで、消費電力が抑えられる。ここで、省電力モードで動作しているルータを、スリープノードと呼ぶ。図1の例では、ルータ5がスリープノードである。
【0019】
図1に示すような構成のネットワークでは、輻輳の予兆が検出されていない状況下では、トラフィックを特定の経路に集約して転送することができる。図1の例ではルータ2,3,4に対して、外部のネットワークからトラフィックが流入している。流入したトラフィックは、ルータ6から他のネットワークへ送出される。このようなとき、ルータ1は、トラフィックを転送する中継ノードとして機能する。また、ルータ2,3,4は、トラフィックの入力を受け付ける入口ノードとして機能する。ルータ6は、トラフィックを出力する出口ノードとして機能する。またルータ4,5は、中継ノードとして機能することができるものとする。
【0020】
各ルータ2,3,4に流入したトラフィックは、それぞれ1つの経路に集約されている。すなわち、ルータ2,3に流入したトラフィックは、すべてルータ1を介してルータ6に転送されている。ルータ4に流入したトラフィックは、すべてルータ6に直接転送されている。このようなトラフィックの集約を行うことで、省電力モードに移行できるルータの数を増やし、ネットワーク全体での省電力化が図れる。
【0021】
ただし、トラフィックを集約させた経路で輻輳の予兆が検出された際に、その経路を通るすべてのトラフィックを複数の経路に分散させると、必要以上にスリープノードが通常モードに移行する可能性がある。そこで、第1の実施の形態では、適切なトラフィックの分散制御を行うことで、トラフィックを分散させることによる消費電力の増加の抑制を図っている。そのような分散制御を行うために、各ルータが有する機能を以下に説明する。
【0022】
ここでルータ1は、中継ノードとして機能するため、中継手段1a、輻輳予兆検出手段1b、経路記憶手段1c、状態情報取得手段1d、分散先決定手段1e、および分散要求手段1fを有する。
【0023】
中継手段1aは、入力されたトラフィックを、転送順が定義された経路に沿って転送する。図1の例では、中継手段1aは、ルータ2,3から入力されたトラフィックを、ルータ6に転送している。
【0024】
輻輳予兆検出手段1bは、他のルータとの間に張られた各リンクのトラフィック量を測定し、輻輳発生の予兆を検出する。例えば輻輳予兆検出手段1bは、トラフィック量が所定の閾値を超えたリンクを、輻輳発生の予兆があるリンクとして検出する。
【0025】
経路記憶手段1cは、ルータ1と他のルータ2,3,6との間に設けられた各リンクを介して転送されるトラフィックのネットワーク内での経路を記憶する。例えばルータ1とルータ6との間のリンクを介して転送されるトラフィックの経路として、「ルータ2、ルータ1、ルータ6」の順で転送する経路と、「ルータ3、ルータ2、ルータ6」の順で転送する経路とが、経路記憶手段1cに記憶されている。
【0026】
状態情報取得手段1dは、特定のリンクを経由して転送されるトラフィックの少なくとも一部を特定のリンクを経由しない経路で転送させる場合に、経路の状態情報を管理している管理装置から状態情報を取得する。例えば、状態情報取得手段1dは、輻輳予兆検出手段1bが輻輳発生の予兆を検出したリンクを、特定のリンクとして状態情報を取得する。
【0027】
状態情報取得手段1dは、状態情報を取得する際には、経路記憶手段1cを参照する。
そして状態情報取得手段1dは、特定のリンクを介して転送されるトラフィックの経路を対象経路とする。対象経路は、1または複数である。例えば、ルータ1とルータ6との間のリンクが特定のリンクとされた場合、対象経路は「ルータ2、ルータ1、ルータ6」の順で転送する経路と、「ルータ3、ルータ1、ルータ6」の順で転送する経路との2つのである。
【0028】
さらに状態情報取得手段1dは、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ特定のリンクを経由しない経路を分散経路候補とする。そして状態情報取得手段1dは、分散経路候補のトラフィックを中継するルータの状態を示す状態情報を管理している管理装置から、各分散経路候補の状態情報を取得する。
【0029】
例えば、状態情報取得手段1dにネットワーク内のすべての経路の情報が登録されていれば、状態情報取得手段1dにおいて分散経路候補を特定でききる。またネットワーク内のすべての経路を管理している管理装置があれば、状態情報取得手段1dは、その管理装置から経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ特定のリンクを経由しない経路である分散経路候補を取得することができる。ネットワーク内の経路が複数の管理装置に分散して管理されている場合、状態情報取得手段1dは、それぞれの管理装置から分散経路候補を取得する。例えば各経路の最初のルータにおいて、経路が管理されている場合、状態情報取得手段1dは、対象経路の最初のルータが管理装置であると判断し、そのルータから分散経路候補を取得する。
【0030】
図1の例では、対象経路の最初のルータであるルータ2,3から分散経路候補と、分散経路候補のトラフィックを中継するルータの状態を示す状態情報とを取得している。
ルータ2,3から分散経路候補と状態情報を取得する場合、例えば状態情報取得手段1dは、対象経路それぞれの最初のルータ2,3に対して、対象経路の最初と最後のルータが示されたアラーム情報を送信する。すると、対象経路の最初のルータ2,3から、経路上の最初と最後のルータが対象経路と共通の分散経路候補、および分散経路候補の状態情報が応答される。
【0031】
状態情報取得手段1dは、例えば状態情報として、分散経路候補の経路上のルータのうち省電力モードの状態のルータ数(スリープノード数)を取得する。また状態情報取得手段1dは、状態情報として、分散経路候補の経路上のトラフィックが単位データ量だけ増加したときの経路上の各ルータの消費電力増加量を管理装置から取得してもよい。
【0032】
分散先決定手段1eは、状態情報取得手段1dが取得した各分散経路候補の状態情報に基づいて、分散経路候補へ特定のリンクのトラフィックの一部を流した場合の経路上の他のルータの状態の変化を比較する。そして分散先決定手段1eは、状態の変化による消費電力の増加量が少ない経路を優先的に分散先経路として決定する。例えば、分散先決定手段1eは、経路上のルータのうち省電力モードの状態のルータ数(スリープノード数)が少ない分散経路候補を、優先的に分散先経路に決定する。すなわち、経路上のスリープノード数が多いほど、その経路にトラフィックを振り分けたときに、省電力モードから通常モードに移行するルータ数が多くなる。省電力モードから通常モードに移行するルータが少ないほど、消費電力を抑制できる。そのため、スリープノード数が少ない分散経路候補が優先的に分散先経路に決定される。また分散先決定手段1eは、トラフィックが所定量だけ増加したときの経路上の各ルータの消費電力増加量が少ない分散経路候補を、優先的に分散先経路に決定することもできる。
【0033】
分散要求手段1fは、分散先決定手段1eで決定した分散先経路へ、その分散先経路と経路上の最初と最後のルータの両方が共通な対象経路のトラフィックの少なくとも一部を振り分けるように、対象経路上の最初のルータに指示する分散要求を送信する。分散要求手段1fは、輻輳予兆検出手段1bにより輻輳発生の予兆が検出されたリンクの輻輳発生の予兆が継続している間、所定間隔で分散要求を繰り返し送信してもよい。
【0034】
ルータ2は、入口ノードとして機能するため、経路状態記憶手段2a、中継手段2b、状態情報収集手段2c、状態情報通知手段2d、および送出確率変更手段2eを有している。
【0035】
経路状態記憶手段2aは、ネットワーク内でトラフィックを中継する各ルータの状態情報を、そのルータが中継するトラフィックの経路と対応付けて記憶する。また、経路状態記憶手段2aは、経路上の最初と最後のルータが共通の経路間での各経路へのトラフィックの送出確率を記憶する。
【0036】
中継手段2bは、他のネットワークから流入するトラフィックを転送する。その際、中継手段2bは、経路状態記憶手段2aに示される送出確率で、ルータ1〜6が属するネットワーク内の経路に分散して転送する。
【0037】
状態情報収集手段2cは、ネットワーク内でトラフィックを中継する各ルータから、そのルータの状態を示す状態情報を収集し、該ルータの状態情報を、該ルータが中継するトラフィックの経路と対応付けて経路状態記憶手段2aに格納する。例えば、状態情報収集手段2cは、ルータ2に他のネットワークから流入するトラフィックを転送する経路上の他のルータから状態情報を収集する。また状態情報収集手段2cは、例えばトラフィックを転送する経路上のルータのうちの省電力モードとなっているルータの数を状態情報として収集する。また状態情報収集手段2cは、トラフィックを転送する経路上のルータにおける、トラフィックが単位データ量増加したときの消費電力増加量を状態情報として収集してもよい。
【0038】
状態情報通知手段2dは、アラーム情報に応答して状態情報を送信する。例えば状態情報通知手段2dは、特定のリンクを経由してトラフィックを転送する対象経路の最初と最後のルータが示されたアラーム情報を受信する。すると状態情報通知手段2dは、経路状態記憶手段2aを参照し、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ特定のリンクを経由しない経路を分散経路候補とする。そして状態情報通知手段2dは、分散経路候補の状態情報をアラーム情報の発信元に送信する。
【0039】
送出確率変更手段2eは、対象経路のトラフィックの少なくとも一部を振り分ける分散先経路を指定する分散指示を受け取ると、経路状態記憶手段2aの対象経路と分散先経路との送出確率を更新する。例えば送出確率変更手段2eは、対象経路へのトラフィックの送出確率を減らし、分散先経路へのトラフィックの送出確率を増やす更新処理を行う。
【0040】
なお、図1には、代表的にルータ1,2の機能を示したが、中継ノードとしての機能を有する他のルータ4,5は、ルータ1と同様の機能を有している。また入口ノードとして機能する他のルータ3,4は、ルータ2と同様の機能を有している。
【0041】
各ルータ1〜6がこのような機能を有することで、適切なトラフィックの分散制御が可能となる。例えば、図1のルータ1からルータ6へトラフィックを転送するリンクにおいて、輻輳の予兆が検出されたものとする。
【0042】
図2は、輻輳の予兆検出時の処理を示す図である。ルータ1からルータ6へトラフィックを転送するリンクにおける輻輳の予兆は、例えばルータ1の輻輳予兆検出手段1bで検出される。ルータ1からルータ6へのリンクを経由するトラフィックの経路は、「ルータ2、ルータ1、ルータ6」の順で転送する経路と、「ルータ3、ルータ1、ルータ6」の順で転送する経路とがある。そこで、これらの経路が対象経路とされ、状態情報取得手段1dによって、例えば対象経路の最初のルータ2,3に対してアラーム情報が送信される。アラーム情報には、例えば対象経路の最初と最後のルータとが示される。図2では、例えば「AD」という情報によって、経路の最初がID「A」のルータ2であり、経路の最後がID「D」のルータ6であることが示されている。
【0043】
図3は、アラーム情報を受信したルータの処理を示す図である。アラーム情報を受け取ったルータ2,3は、例えば分散経路候補と、その分散経路候補の状態情報とを、ルータ1に通知する。ルータ2であれば、状態情報通知手段2dによって状態情報が通知される。図3の例では、状態情報として、分散経路候補上のスリープノード数が通知されている。
【0044】
分散経路候補とその状態情報に基づいて、ルータ1の分散先決定手段1eにより分散先経路が決定される。図3の例は、ルータ3から通知された分散経路候補(「経路「BFD」)はスリープノードを含んでいるが、ルータ2から通知された分散経路候補(「経路「ACD」)にはスリープノードが含まれない。すると、経路「ACD」にトラフィックを分散させた方が消費電力の増加を抑制できることが分かる。そこで、経路「ACD」が、分散先経路として決定される。すると、分散要求手段1fにより、ルータ2に対して分散要求が送信される。
【0045】
図4は、分散要求の送信処理を示す図である。分散要求には、トラフィックの分散先となる分散先経路が指定されている。ルータ2の送出確率変更手段2eは、分散要求に従ってルータ2からルータ6へ転送するトラフィックの各経路への、トラフィックの送出確率を更新する。例えば、送出確率変更手段2eは、経路「AED」への送出確率を下げ、経路「ACD」への送出確率を上げる。図4の例では、経路「ACD」への送出確率が「0」から0より大きな値に変更される。変更された送出確率は、経路状態記憶手段2aに設定される。送出確率が更新されると、中継手段2bは更新後の送出確率に従ってトラフィックを振り分ける。
【0046】
図5は、送出確率変更後のトラフィックの振り分けを示す図である。図5に示すように、経路「ACD」へのトラフィックの送出確率を「0」よりも大きな値に変更されたことで、その経路にもトラフィックが振り分けられている。経路「ACD」へ振り分けたトラフィックの分だけ、ルータ1とルータ6との間のリンクのトラフィック量は減少し、輻輳の発生が抑制される。
【0047】
このように、第1の実施の形態では、輻輳の可能性のあるリンクを経由するすべてのトラフィックの入口ノードに対しトラフィックの分散要求を送信するのではなく、分散経路候補の中から決定された分散先経路の入口ノードにのみ分散要求を送信する。この際、分散先候補を評価し、できるだけスリープノードを含む経路へはトラフィックの振り分けを行わないように、分散先経路が決定される。
【0048】
これにより、輻輳発生の予兆が検出された際においても、限られた入口ノードだけ、トラフィックを特定の経路に集約させる集約モードから、トラフィックを複数の経路に分散させる分散モードに移行する。そのため、必要以上のスリープノードの起動が抑制される。その結果、消費電力の不必要な増加を抑えることが可能になる。
【0049】
なお第1の実施の形態では、入口ノードとして機能するルータが、状態情報収集手段2cと状態情報通知手段2dとを有しているが、これらの機能は入口ノードとして機能するルータ以外の管理装置が有していてもよい。例えば、ネットワーク全体を管理する管理装置が、ネットワーク全体のトラフィックの経路と、その経路上のルータの状態を管理している場合も考えられる。その場合、管理装置が状態情報収集手段2cと状態情報通知手段2dの機能、および経路状態記憶手段2aにおける状態情報の記憶機能を有する。管理装置がネットワーク内のすべての経路と各経路の状態情報とを管理している場合、ルータ1は、管理装置から分散経路候補と、分散先経路候補の状態情報とを、一括して取得することができる。
【0050】
〔第2の実施の形態〕
第2の実施の形態は、第1の実施の形態で示した機能に、実際に運用するシステムに適用させるために有用な機能を追加したものである。例えば、第2の実施の形態では、入口ノードが定期的に、自己に設定されているパス(経路)の状態情報を収集する。経路状態情報には、経路上のスリープノード数が含められる。このようにして、各入口ノードが動的に変化するネットワーク上の状況を自律的に把握することができる。すなわち、ネットワーク全体を制御するサーバを設けることなく、スリープノード数の把握が可能となる。
【0051】
また、第2の実施の形態では、新たにトラフィックを送出する経路に対して、少しずつトラフィック量を増加させるように、分散モードに移行した入口ノードを制御する。これにより、トラフィックの転送先を変更したことに起因して、輻輳を検出したリンクとは別のリンクで輻輳を発生させてしまうことを抑制できる。
【0052】
図6は、第2の実施の形態のシステム構成例を示す図である。ネットワーク10には、複数のノード(ルータ)が含まれている。ネットワーク10に含まれるノードは、中継ノード100,100a,100bとエッジノード200,200a,200b,200cとに分かれる。中継ノード100,100a,100bは、ネットワーク10内のトラフィックを転送するものである。エッジノード200,200a,200b,200cは、ネットワーク10内でのトラフィックの転送に加え、他のネットワークから入力されるトラフィックや他のネットワークへ出力するトラフィックの転送を行うものである。
【0053】
各ノードには、ネットワーク10上で識別するためのIDが付与されている。エッジノード200のIDは「A」である。エッジノード200aのIDは「B」である。エッジノード200bのIDは「C」である。エッジノード200cのIDは「D」である。中継ノード100のIDは「E」である。中継ノード100aのIDは「F」である。中継ノード100bのIDは「G」である。
【0054】
中継ノード100は、エッジノード200,200a,200b,200cと中継ノード100aとに接続されている。中継ノード100aは、エッジノード200a,200cと中継ノード100とに接続されている。中継ノード100bは、エッジノード200とエッジノード200cとに接続されている。
【0055】
エッジノード200は、エッジノード200bと中継ノード100,100bとに接続されていると共に、他のネットワーク21にも接続されている。エッジノード200aは、エッジノード200bと中継ノード100,100aとに接続されていると共に、他のネットワーク22にも接続されている。エッジノード200bは、エッジノード200,200a,200cと中継ノード100とに接続されていると共に、他のネットワーク23にも接続されている。エッジノード200cは、エッジノード200bと中継ノード100,100a,100bとに接続されていると共に、他のネットワーク24にも接続されている。
【0056】
以下、2台のノード間を接続する伝送経路を「リンク」と呼ぶ。
ネットワーク10内では、中継ノード100,100a,100bとエッジノード200,200a,200b,200cとが、例えば個々のパケット単位で、伝送経路を選択する。なお、エッジノードとして機能しているルータは、ネットワーク10内でのパケットの中継をするため、中継ノードとしての機能も兼ね備える。
【0057】
また各ノードは、トラフィックの流入が一定時間途絶えると、スリープモードに移行する。スリープモードでは、ノードの多くの機能が停止し、消費電力が低く抑えられる。ただしスリープモードであっても、制御パケットの転送に必要な機能は動作し続ける。なお、スリープモードは、省電力モードの一例である。例えばノードへのトラフィックの流入が一定時間途絶えた場合、省電力モードとして、該当ノードを、動作周波数を低下させる低電力モードに移行させることも可能である。
【0058】
図7は、本実施の形態に用いる中継ノードのハードウェアの一構成例を示す図である。中継ノード100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。
【0059】
RAM102は、中継ノード100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
【0060】
バス108に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および通信インタフェース107a,107b,107c,107d,107eがある。
【0061】
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、中継ノード100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【0062】
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
【0063】
入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0064】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
【0065】
通信インタフェース107aは、エッジノード200に接続されている。通信インタフェース107aは、エッジノード200との間でデータの送受信を行う。通信インタフェース107bは、エッジノード200aに接続されている。通信インタフェース107bは、エッジノード200aとの間でデータの送受信を行う。通信インタフェース107cは、エッジノード200bに接続されている。通信インタフェース107cは、エッジノード200bとの間でデータの送受信を行う。通信インタフェース107dは、エッジノード200cに接続されている。通信インタフェース107dは、エッジノード200cとの間でデータの送受信を行う。通信インタフェース107eは、中継ノード100aに接続されている。通信インタフェース107eは、中継ノード100aとの間でデータの送受信を行う。
【0066】
なお、図7に示した中継ノード100の構成のうち、グラフィック処理装置104、光学ドライブ装置106、モニタ11、キーボード12、およびマウス13は、なくてもよい。例えば、シリアルインタフェースや制御用の通信インタフェースを通じて端末装置から中継ノード100へアクセスし、中継ノード100への各種設定を端末装置から遠隔で行うことも可能である。
【0067】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。図7には中継ノード100のハードウェア構成例を示したが、他の中継ノード100a,100bおよびエッジノード200,200a,200b,200cも同様のハードウェア構成で実現することができる。
【0068】
なお、以下の説明では、ネットワークの特定のエッジノードに入力されたトラフィック(データ)が特定のエッジノードから出力されるトラフィックの流れを「フロー」と呼ぶ。フローは、トラフィックが入力されるエッジノードと、トラフィックが出力されるエッジノードとの組み合わせごとに存在する。また、各フローにおけるトラフィックを転送するための経路は、1または複数である。すなわち、1つのフローに流入するトラフィックを1つの経路で転送してもよいし、複数の経路に分散させて転送してもよい。トラフィックが入力されるエッジノードが入口ノードであり、トラフィックを出力するエッジノードが出口ノードである。
【0069】
第2の実施の形態では、フローの転送に使用可能な経路が、そのフローの入口となるエッジノード(入口ノード)に予め設定されているものとする。そして、入口ノードにフローのトラフィックが流入すると、フローに対応付けてエッジノードに予め設定された経路にトラフィックを振り分ける。ある入口ノードからある出口ノードへのトラフィックは、入口ノードで決定された経路に沿って転送される。
【0070】
中継ノードでは、各フローのトラフィック(入口ノードと出口ノードの組みが指定されたトラフィック)はフローごとに設定されている経路にしたがって次のノードに送られる。例えば、各トラフィックのパケットには、転送の経路を示す情報が含まれる。中継ノードは、パケットで示される経路に従ってそのパケットを転送する。その結果、エッジノードで決定した経路でトラフィックが転送される。このように入口ノードで経路を決定してトラフィックをする制御方式を、経路指定型と呼ぶ。経路指定型のトラフィック制御では、中継ノードは指定された経路でトラフィックを転送し、指定された経路以外の経路への振り分けは行わない。
【0071】
このような経路指定型のトラフィック制御を行う場合、エッジノードは、例えば、予め設定された複数の経路それぞれのトラフィック誘引力を用いて、トラフィックの振り分けを行う。トラフィック誘引力は、トラフィックを特定の経路に集約する場合に用いられる。トラフィック誘引力は、その経路を介して転送されるトラフィック量が多い程、大きな値となる。例えば、出口ノードから経路に沿って、中継ノードがトラフィック誘引力を計算していく。各中継ノードでは、経路上を出口ノード側に隣接するノードへのリンクのトラフィック量が大きい程、そのリンクのトラフィック誘引力を大きくする。また、各中継ノードでは、経路上を出口ノード側に隣接するノードから渡されたトラフィック誘引力が大きい程、そのリンクに関するトラフィック誘引力を大きくする。このようにして、経路上の各中継ノードがトラフィック誘引力を計算する。そして、最後に、入口ノードにおいても、経路上を出口ノード側に隣接するノードへのリンクのトラフィック誘引力を、そのリンクのトラフィック量と、隣接するノードから渡されたトラフィック誘引力を用いて計算する。その計算結果が、経路のトラフィック誘引力となる。入口ノードでは、フローに対応付けて予め設定された経路ごとのトラフィック誘引力を定期的に計算し、計算結果をRAMなどの記憶装置に格納する。
【0072】
入口ノードは、出口ノードが指定されたトラフィックについて、その出口ノード宛の経路のトラフィック誘引力に従った確率で、各経路にトラフィックを振り分ける。
以下、図6に示すシステム構成を用いて、経路指定型のトラフィック制御例を示す。例えば、エッジノード200には、エッジノード200cへのトラフィックが流入しているものとする。このトラフィックの流れをフロー「AD」とする。エッジノード200aには、エッジノード200cへのトラフィックが流入しているものとする。このトラフィックの流れをフロー「BD」とする。エッジノード200bには、エッジノード200cへのトラフィックが流入しているものとする。このトラフィックの流れをフロー「CD」とする。
【0073】
エッジノード200からエッジノード200cへは、エッジノード200bを経由する経路(経路「ACD」)、中継ノード100を経由する経路(経路「AED」)、および中継ノード100bを経由する経路(経路「AGD」)が設定されているものとする。入口であるエッジノード200において、各経路のトラフィック誘引力に対応した確率で、各々の経路に流入トラフィックは分配される。
【0074】
エッジノード200aからエッジノード200cへは、中継ノード100を経由する経路(経路「BED」)、中継ノード100aを経由する経路(経路「BFD」)が設定されているものとする。エッジノード200aにおいても、各経路のトラフィック誘引力に対応した確率で、各々の経路に流入トラフィックは分配される。
【0075】
また、エッジノード200bからエッジノード200cへは、他のノードを経由しない1つの経路(経路「CD」)が設定されているものとする。そのため、エッジノード200bへの流入トラフィックはすべて経路「CD」を通る。
【0076】
中継ノード100からエッジノード200cへのリンク(リンク「ED」)には、フロー「AD」とフロー「BD」とのトラフィックが流れる。そのため、中継ノード100のトラフィック誘引力が高くなる。それが、それぞれ中継ノード100からエッジノード200,200aに通知される。その結果、例えば経路「AED」のトラフィック誘引力が経路「ACD」よりも高くなることによりエッジノード200からエッジノード200cへ流れるトラフィックはすべて経路「AED」に流れるように入口ノードであるエッジノード200でのフロー「AD」の分配確率は計算される。同様にフロー「BD」のトラフィックも経路「BED」に集約される。
【0077】
図8は、トラフィックの集約例を示す図である。トラフィックが集約されたことで、中継ノード100aや中継ノード100bを通過するトラフィックがなくなる。その結果、中継ノード100aや中継ノード100bをスリープモードに移行させることが可能となる。中継ノード100aや中継ノード100bがスリープモードに移行することで、ネットワーク全体での低消費電力が実現される。このような低消費電力化を実現する技術として、本出願人は特願2009−49139号を出願している。また、同様の低消費電力化の技術は以下の論文で公表されている。
【0078】
“山田亜紀子、外3名、「グリーンネットワークに向けた一検討(3)ECOルーティング」、電子情報通信学会総合大会講演論文集、社団法人電子情報通信学会、2009年3月4日、2009年_通信(2)、pp.252”
図8の例では、各フローのトラフィックがそれぞれ1つの経路に集約されている。すなわち経路「ACD」のトラフィック計測値は「0.0」である。経路「AED」のトラフィック計測値は「0.3」である。経路「BED」のトラフィック計測値は「0.4」である。経路「BFD」のトラフィック計測値は「0.0」である。経路「CD」のトラフィック計測値は「0.1」である。なお、各リンクのリンク容量は「1.0」である。
【0079】
このようにトラフィックの集約が実現された状態において、中継ノード100からエッジノード200cへのリンク(リンク「ED」)には、フロー「AD」とフロー「BD」との両方のトラフィックの全てが流れる。この状態で、エッジノード200あるいはエッジノード200aへの流入トラフィックが増大した場合を考える。この場合、各リンクでは流れるトラフィック量を計測しておき、リンク最大容量に対する輻輳検出判定閾値を超えないかどうか、常時チェックしておく。フロー「AD」とフロー「BD」のトラフィック量の和がリンク「ED」のリンク容量に近づくと、輻輳発生の可能性が生じる。ここで、輻輳発生の可能性が生じたリンクを制御対象リンクとする。輻輳の発生を抑制するには制御対象リンクを流れるトラフィックの一部を他の経路へ分散させる輻輳制御が行われる。
【0080】
輻輳制御では、例えば輻輳発生の可能性を検出したノードから、制御対象リンクへトラフィックを流している経路の入口ノードに対し、アラーム情報が送信される。そして、アラーム情報を受信した入口ノードが、トラフィックを集約させる制御を停止し、トラフィックの分散制御を行う。
【0081】
ここで、制御対象リンクへトラフィックを流している経路のすべての入口ノードが、アラーム情報の受信に応じてトラフィックを分散させてしまうと、必要以上の消費電力の増加を招いてしまう。
【0082】
例えば図8の例であれば、リンク「ED」を流れるフロー「AD」およびフロー「BD」のトラフィック量増加によりリンク「ED」の輻輳発生の可能性が検出された場合を想定する。この場合に、アラーム情報がリンク「BD」を通過する全フローの経路の入口ノードに対し送出されると、スリープノードであった中継ノード100a,100bが通常モードに移行してしまう。
【0083】
つまり通過するフロー「AD」の経路「AED」、フロー「BD」の経路「BED」に沿ってそれぞれ入口のエッジノード200、エッジノード200aに対してアラーム情報が送出される。すると、アラーム情報を受け取ったエッジノード200では、フロー「AD」の経路(経路「AED」、経路「ACE」、経路「AGD」の3つがある)を集約モードから分散モードに切り替える。すなわちエッジノード200は、アラーム情報がきた経路「AED」へのトラフィック送出確率を減らし、別の経路「ACD」、「AGD」への送出確率を上げる。このように、エッジノード200は、経路「ACD」、「AGD」へ一部のトラフィックを分配することにより負荷分散を図り、リンク「ED」を通過する経路「AED」のトラフィックを下げる。この結果、中継ノード100bを通過するトラフィックが発生し、中継ノード100bはスリープモードから起動し、通常モードでの動作を開始する。
【0084】
同様に、エッジノード200aにおいてもフロー「BD」の経路「BED」への送出確率を下げ、経路「BFD」への送出確率を上げる。この結果、中継ノード100aを通過するトラフィックが発生し、中継ノード100aはスリープモードから起動し、通常モードでの動作を開始する。
【0085】
このようにすべてのスリープノードが通常モードに移行してしまうと、ネットワーク全体としての消費電力が増加する。ところが、輻輳発生の抑制には、該当リンクを経由するフローの一部だけを、別経路に負荷分散すれば十分な場合もある。例えば、図8に示すリンク「ED」で輻輳発生の可能性が検出された場合において、エッジノード200のみが負荷分散を行えば、輻輳の発生を抑制可能な場合も考えられる。例えば、エッジノード200においてフロー「AD」のトラフィックの多くを経路「ACD」へ振り向けることができれば、フロー「BD」のトラフィックは経路「BED」に集約したままでも、リンク「ED」の輻輳は回避可能な場合があり得る。この場合、スリープノードである中継ノード100aは、スリープモードのままでよく、低消費電力化が図られる。なお、エッジノード200bは、フロー「CD」があることにより既に起動しており、経路「ACD」へトラフィックを流入させても、スリープノードを通常モードに移行させる場合に比べ、消費電力の増加は少なくてすむ。
【0086】
しかも、エッジノード200においてアラーム情報を受信した際に、既知の経路すべてのトラフィックを分散させるのではなく、一部の経路のみを分散先とすれば、さらに省電力化を図ることができる。例えば、図8の例では、エッジノード200がフロー「AD」のトラフィックを分散させる際に、既知のすべての経路である経路「AED」、経路「ACD」、経路「AGD」それぞれにトラフィックを分散させてしまうと、中継ノード100bが通常モードに移行する。その結果、消費電力が増加する。そこで、エッジノード200がアラーム情報を受信した場合であっても、分散先の経路を経路「ACD」のみに限定すれば、中継ノード100bをスリープモードのまま維持できる。
【0087】
そこで、第2の実施の形態では、輻輳発生の可能性が検出された場合であっても、できるだけスリープノードを起動させずにすむように輻輳制御を行う。以下、このような輻輳制御を実現するための機能および処理内容について、詳細に説明する。なお、第2の実施の形態では、以下のように情報を定義する。
【0088】
〔リンク容量〕リンク容量は、リンクを通すことのできるトラフィックの最大量である。
〔リンク利用率〕リンク利用率は、リンクを流れるトラフィック量をリンク容量で除算した値である。
【0089】
〔リンク目標容量〕リンク目標容量は、輻輳を起こさないように(最大リンク容量から余裕をもって)、リンクのトラフィック量がこの値を超えない様に制御する目標値である。
【0090】
〔Target値〕Target値は、リンク目標容量をリンク容量で除算した値である。リンク利用率がTarget値を超えないように、各ルータの連係動作によってトラフィックの分散制御が実行される。
【0091】
〔Control値〕リンク利用率がTarget値を超えないように保つためには、トラフィック増加に伴って上昇するリンク利用率がTarget値に近づいた手前の時点で輻輳抑止の制御を開始する必要がある。Control値は、輻輳制御を開始する閾値を決めるための数値である。
【0092】
〔制御開始閾値〕制御開始閾値は、輻輳制御を開始する基準となるリンク利用率の閾値である。例えば、Control値とTarget値を用いて、以下の式により輻輳制御を開始する閾値が決められる。
制御開始閾値=Target値−Control値 ・・・(1)
〔偏差〕偏差は、Target値とリンク利用率との差である。偏差は、以下の式で算出される。
偏差=Target値−リンク利用率 ・・・(2)
これらの情報を用いて、輻輳制御が行われる。輻輳制御では、輻輳の予兆の検出や、輻輳抑制のためのアラーム情報の通知の継続判断などが行われる。そのために、各フローの入口ノードにおいて、所定周期ごとに、そのノードを入口ノードとするフローのトラフィック量が計測される。また、各ノードでは、計測されたトラフィック量に基づいて、各ノードにおいて各リンクのリンク利用率が計算される。そして、「リンク利用率>制御開始閾値(=Target値−Control値)」という条件が満たされるとき、条件を満たしたリンクにおいて輻輳発生の予兆があると判断される。このとき、条件を満たしたリンクが、制御対象リンクとされる。
【0093】
輻輳発生の予兆が検出されると、検出したノードにおいて、制御対象リンクに関する輻輳制御が開始される。輻輳発生の予兆を検出したノードは、アラーム情報を作成して制御パケットとして、制御対象リンクを通る各トラフィックの入口ノード宛へ経路を逆に辿るように送り出す。アラーム情報は、制御対象リンクを通るトラフィックの入口ノードにおいて、そのトラフィックの分散経路候補の募集通知とみなされる。ここで、リンク利用率が輻輳制御の制御開始閾値を下回らない限り、定期的にアラーム情報が送信される。
【0094】
図9は、リンク利用率とアラーム情報送信との関係を示す図である。図9では、横軸に時間、縦軸にリンク利用率を示している。図9の例では、徐々にリンク利用率が上昇し、輻輳制御が開始されている。輻輳制御が開始されたことでアラーム情報が送信される。輻輳制御が開始されると、徐々にリンク利用率の上昇傾向が緩やかになり、しばらく経つとリンク利用率が低下する。リンク利用率が制御開始閾値以下になると、輻輳制御が終了する。すなわち、定期的なアラーム情報の送信が終了する。
【0095】
ここでTarget値は、輻輳を発生させないためにリンク利用率の目標値として定めた値である。本実施の形態では輻輳制御において、徐々に分散するトラフィック量を増やすため、輻輳制御の開始と同時にリンク利用率が急減するわけではない。そのため、Target値よりもControl値分低い値を制御開始閾値とし、リンク利用率が制御開始閾値を超えた時点で輻輳制御を開始する。これにより、リンク利用率が上昇傾向にあっても、リンク利用率をTarget値付近で抑えることができる。
【0096】
ここで、Target値とリンク利用率との差が偏差である。偏差は、アラーム値(規制率)の算出に使用される。例えば、偏差の増加度合いが大きい程、アラーム値が大きくなる。アラーム値は、アラーム情報に含められ、入口ノードでの分散の度合いを決定するのに利用される。例えばアラーム値は、対象経路への現在のトラフィックの送出確率に対する振り分け後の送出確率の比率である。
【0097】
各フローの入口ノードは、アラーム情報に対して分散経路の候補を応答するために、予め経路状態情報収集処理を行う。経路状態情報収集処理は、特定のフローの入口ノードが、そのフローの各経路上のリンクやルータの状態を収集する処理である。入口ノードは、経路状態情報収集処理を実行することで、各出口ノード宛フローの(複数の)経路とその状態を管理できる。例えば入口ノードは、定期的に、状態収集パケットを各経路に沿って送出する。状態収集パケットは、経路上のルータで転送されるごとに、スリープノード数、経路空き容量、消費電力パラメータなどの情報が更新される。そして、状態収集パケットは、出口ノードに到達すると、出口ノードから入口ノードに送り返される。これにより、入口ノードにおいて、各経路のスリープノード数、経路空き容量、消費電力パラメータ集計が可能となる。状態収集パケットを用いて収集される情報の内容は以下の通りである。
【0098】
〔経路空き容量〕経路空き容量は、その経路にあとどれぐらいのトラフィックを転送することができるかを示す値である。経路の空き容量は、経路上の各リンクの空き容量に基づいて決定される。リンクの空き容量は以下の式で計算される。
リンクの空き容量=リンク容量×Target値−リンクトラフィック量 ・・・(3)
なお、上記式によるリンクの空き容量の値が負になる時は、リンクの空き容量=0とされる。また、経路上の各リンクの空き容量のうちの最小値が、経路空き容量となる。なお、リンクを複数のフローの経路が共有する可能性がある。その場合、リンクの空き容量は複数のフローの経路の空き容量として重複して使われる。そのため、この計算による経路の空き容量は、あくまで状態収集時点での目安量であって、必ずその量が保証されている(つまりその分だけその経路にトラフィックを増やしても輻輳が発生しない)という訳ではない。
【0099】
〔経路の消費電力パラメータ〕経路の消費電力パラメータは、単位トラフィック量の増加に対する経路上の全ノードでの消費電力増加量を示す値である。経路の消費電力パラメータは、経路上の各ノードの消費電力パラメータに基づいて決定される。ノードの消費電力パラメータは、単位トラフィック量分のトラフィックの増加に対する該当ノードの消費電力増加量である。経路上の各中継ノードの消費電力パラメータの和が、経路の消費電力パラメータとなる。
【0100】
なお、経路上の全ノードの消費電力パラメータが総トラフィック量に関係なく一定であれば、経路の消費電力パラメータは、一回だけ収集すればよい。経路上の少なくとも1つのノードの消費電力パラメータが総トラフィック量の影響を受けて変動する場合は、状態収集パケットが転送されるごとに、経路の消費電力パラメータが収集される。
【0101】
〔スリープノード数〕スリープノード数は、経路上のスリープモードの状態の中継ノードの数である。なお、スリープノード数を収集せずに、各スリープノードの起動状態になる消費電力増加量の和に加えることも可能である。この場合、分散経路を決定する際に、スリープノード数による判定は行われないこととなる。ただし、スリープ状態から起動状態に移行する際の電力増加量は、処理トラフィック増による増加分より遥かに大きい固定量である。そのため第2の実施の形態では、消費電力パラメータとは別に、スリープノード数を収集し、分散経路の判定においては、スリープノード数による判定結果を、消費電力パラメータによる判定結果に優先する。
【0102】
次に、経路状態情報収集処理と輻輳発生の予兆検出時の輻輳制御との実行に用いられる各ルータの機能について説明する。
図10は、中継ノードの機能を示すブロック図である。中継ノード100は、フロー情報記憶部110、リンク情報記憶部120、経路状態通知部130、輻輳検出部140、分散制御部150、パケット中継部160、およびスリープ制御部170を有している。
【0103】
フロー情報記憶部110は、中継ノード100を経由するトラフィックの転送に使用するフローに関する情報(フロー情報)を記憶する。例えば、RAM102やHDD103の記憶領域の一部が、フロー情報記憶部110として使用される。フロー情報記憶部110に格納されるフロー情報には、中継ノード100を経由して転送されるフローに関する経路情報や、その経路のトラフィックの量に関する情報などが含まれる。
【0104】
リンク情報記憶部120は、中継ノード100と他のルータとの間のリンクに関する情報を記憶する。例えば、RAM102やHDD103の記憶領域の一部が、リンク情報記憶部120として使用される。リンク情報記憶部120には、例えば、リンクごとのトラフィック量などの情報が格納される。
【0105】
経路状態通知部130は、特定の経路に関する状態収集パケットを受信すると、その状態収集パケットの内容を更新する。例えば経路状態通知部130は、自身がスリープノードであれば、状態収集パケットに含まれるスリープノード数を示す情報をカウントアップする。また経路状態通知部130は、転送するトラフィック量に応じた中継ノード100の消費電力パラメータを、状態収集パケットに含まれる経路の消費電力パラメータに加算する。さらに、経路状態通知部130は、状態収集パケットに示される経路の次のノードへのリンクの空き容量を算出する。経路状態通知部130は、算出したリンクの空き容量と状態収集パケットに示される経路空き容量とを比較する。リンクの空き容量の方が少なければ、算出したリンクの空き容量の値を、新たな経路空き容量として状態収集パケットに設定する。そして経路状態通知部130は、状態収集パケットに示される経路における次ノードへ、内容更新後の状態収集パケットを転送する。
【0106】
輻輳検出部140は、中継ノード100と他のノードとの間のリンクに関するトラフィックを計測し、輻輳発生の予兆を検出する。例えば、リンク利用率が輻輳制御の制御開始閾値よりも大きくなると、輻輳検出部140において輻輳発生の予兆有りと判断される。また輻輳検出部140は、トラフィックの計測結果に応じて、フロー情報記憶部110内のフロー情報やリンク情報記憶部120内のリンク情報を更新する。例えば、輻輳検出部140は、リンクのトラフィック量を計測すると、フロー情報におけるフローごとのトラフィック計測値などの情報を更新する。また、輻輳検出部140は、リンクのトラフィック量を計測すると、リンク情報におけるリンクのトラフィック量、リンク利用率、偏差などの情報を更新する。
【0107】
分散制御部150は、特定のリンクにおいて輻輳発生の予兆を検出すると、そのリンク(制御対象リンク)を通る経路を有するフローのうちの少なくとも一部に関し、トラフィックを別の経路へ分散することを決定する。例えば分散制御部150は、特定のリンクにおいて輻輳発生の予兆を検出すると、該当リンクを通る経路上を入口ノード方向にアラーム情報を送信する。このアラーム情報は、分散経路候補募集の意味を有している。そのため、アラーム情報を受け取った入口ノードから、分散経路候補情報が送り返される。分散制御部150は、取得した分散経路候補情報の中から、トラフィックを分散させることによる消費電力の増加が少ない経路を優先的に選択し、分散先経路に決定する。そして、分散制御部150は、決定した分散先経路の入口ノードに対して、分散先経路へのトラフィックの分散を指示する。
【0108】
パケット中継部160は、隣接する他のノードから送られたパケットを中継する。パケット中継部160は、パケットを中継する際には、フロー情報記憶部110を参照し、パケットの宛先が出口ノードとなる経路情報を抽出する。そして、パケット中継部160は、抽出した経路情報において、中継ノード100の次のノードにパケットを転送する。ただしパケット中継部160は、制御パケットについては、その制御パケット内で指定された経路で転送する。制御パケットには、状態収集パケット、アラーム情報を含むパケット、入札メッセージを含むパケット、分散要求を含むパケットなどがある。
【0109】
スリープ制御部170は、中継ノード100のスリープモードへの移行、およびスリープモードから通常モードへの復帰を制御する。例えば、スリープ制御部170は、一定期間、制御パケット以外のトラフィックの流入が途絶えた場合、中継ノード100をスリープモードに移行させる。スリープモードに移行させた場合、スリープ制御部170は、例えば、輻輳検出部140、分散制御部150、パケット中継部160を停止することで、消費電力を低下させる。なお、経路状態通知部130については、スリープモードに移行しても動作を継続させる。またスリープ制御部170は、スリープモードで動作中に制御パケット以外のパケットが入力されると、中継ノード100を通常モードに移行させる。通常モードに移行する場合、例えば輻輳検出部140、分散制御部150、パケット中継部160の全機能が起動される。
【0110】
なおスリープ制御部170は、現在の動作モードを示すフラグを保持している。そのフラグは、例えばRAM102内に格納される。経路状態通知部130などの他の要素は、スリープ制御部170が保持しているフラグを参照して、現在の動作モードを認識できる。
【0111】
図11は、フロー情報記憶部のデータ構造例を示す図である。図11の例では、フロー情報記憶部110にフロー管理テーブル111が格納されている。フロー管理テーブル111には、フローID、入口ノード、経路情報、入口ポート、出口ポート、フローのトラフィック計測値、および前回のフローのトラフィック計測値の欄が設けられている。フロー管理テーブル111内の横方向に並べられた情報が互いに関連付けられている。互いに関連付けられた情報を含むレコードが、1つのフロー情報となる。
【0112】
フローIDの欄には、中継ノード100を経由する経路を有するフローの識別情報(フローID)が設定される。フローIDは、フローの入口ノードのノードIDと出口ノードのノードIDとの組で表される。例えば、エッジノード200(ノードID:A)に入力され、エッジノード200c(ノードID:D)から出力されるフローのフローIDは「AD」となる。
【0113】
入口ノードの欄には、フローの入口ノードのノードIDが設定される。
経路情報の欄には、フローのトラフィックを転送するために予め設定された経路の情報(経路情報)が設定される。中継ノード100が有するフロー管理テーブル111には、中継ノード100を含む経路の経路情報が設定される。経路情報には、トラフィックを中継するノードのノードIDが、入口ノードに近い順に左から並べられている。
【0114】
入口ポートの欄には、経路情報における前のノードとの間のリンクに接続された中継ノード100の通信ポートのポートIDが設定される。
出口ポートの欄には、経路情報における次のノードとの間のリンクに接続された中継ノード100の通信ポートのポートIDが設定される。
【0115】
フローのトラフィック計測値の欄には、経路情報で示される経路における中継ノード100と次のノードとの間の対応するフローに関するトラフィック(トラフィック計測値)が設定される。トラフィック計測値は、例えば、一定間隔(トラフィック計測周期)ごとに、その一定時間内に流れるフローごとの各パケットのデータ長を合計した値である。
【0116】
前回のフローのトラフィック計測値の欄には、最近のトラフィック計測値の前のトラフィック計測によって得られた各フローのトラフィック計測値が設定される。
フロー情報のうち、フローID、入口ノード、経路情報、入口ポート、および出口ポートの欄の情報は、システムの管理者によって予め設定される。またフローのトラフィック計測値、前回のフローのトラフィック計測値の欄の情報は、輻輳検出部140がリンクのトラフィックを計測するごとに、輻輳検出部140によって更新される。
【0117】
図12は、リンク情報記憶部のデータ構造例を示す図である。図12の例では、リンク情報記憶部120には、リンク情報管理テーブル121が格納されている。リンク情報管理テーブル121には、ポート番号、リンク容量、Target値、Control値、リンクのトラフィック量、リンク利用率、偏差、前回リンク利用率、前回偏差、輻輳制御フラグ、アラーム値、および前回アラーム値の欄が設けられている。リンク情報管理テーブル121内の横方向に並べられた情報が互いに関連付けられている。互いに関連付けられた情報を含むレコードが、1つのリンク情報となる。
【0118】
ポート番号の欄には、中継ノード100の通信ポートのポート番号が設定される。
リンク容量の欄には、通信ポートを介した通信の単位時間当たりの最大通信容量(バンド幅)が、基準値の倍数で示される。第2の実施の形態では、各通信ポートのバンド幅が同じであるため、各通信ポートのバンド幅を単位容量とし、リンク容量として「1」が設定されている。
【0119】
Target値の欄には、リンクごとのTarget値が設定されている。Target値は、リンク容量設定の際の単位容量に対する比率で示される。例えば、ポート番号「#4」に対応するリンクのTarget値は「0.8」である。
【0120】
Control値の欄には、リンクごとのControl値が設定されている。Control値は、リンク容量に対する比率で示される。図12の例では、すべてのリンクのControl値として「0.1」が設定されている。
【0121】
リンクのトラフィック量の欄には、各リンクについて最近測定したトラフィック量が設定される。リンクのトラフィック量は、リンク容量設定の際の単位容量に対する比率で示される。トラフィック量が「0」の通信ポートは、送出しているトラフィックがないことを示している。
【0122】
リンク利用率の欄には、最近測定した各リンクのリンク利用率が設定されている。なお図12の例では、各通信ポートのバンド幅を単位容量とし、リンク容量が「1」となっているため、リンクのトラフィック量とリンク利用率とは同じ値となる。
【0123】
偏差の欄には、最近測定した各リンクの偏差が設定される。
前回リンク利用率の欄には、最近の測定の1回前に測定した各リンクのリンク利用率が設定されている。
【0124】
前回偏差の欄には、最近の測定の1回前に測定した各リンクの偏差が設定されている。
輻輳制御フラグの欄には、輻輳の予兆を検出した場合に、輻輳制御フラグが設定される。
【0125】
アラーム値の欄には、輻輳の予兆を検出した場合に、直前のアラーム情報の送信時に計算されたアラーム値が設定される。
前回アラーム値の欄には、直前のアラーム情報の送信の前のアラーム送信時に計算されたアラーム値が設定される。
【0126】
リンク情報のうち、ポート番号、リンク容量、Target値、およびControl値の欄の情報は、システムの管理者によって予め設定される。リンク情報のうち、リンク利用率、偏差、前回リンク利用率、および前回偏差の欄の情報は、輻輳検出部140がリンクのトラフィックを計測するごとに、輻輳検出部140によって更新される。リンク情報のうち、輻輳制御フラグ、アラーム値、および前回アラーム値の欄の情報は、輻輳制御が行われているときに、輻輳検出部140によって更新される。
【0127】
図13は、エッジノードの機能を示すブロック図である。エッジノード200には、フロー情報記憶部211、リンク情報記憶部212、経路状態通知部213、輻輳検出部214、分散制御部215、パケット中継部216、スリープ制御部217、経路状態情報記憶部220、経路状態情報収集部230、入札処理部240、および送出確率変更部250を有している。このうちフロー情報記憶部211、リンク情報記憶部212、経路状態通知部213、輻輳検出部214、および分散制御部215については、エッジノード200が中継ノードと同様にトラフィックを中継するのに用いられる機能である。従って、フロー情報記憶部211、リンク情報記憶部212、経路状態通知部213、輻輳検出部214、分散制御部215、パケット中継部216、スリープ制御部217は、図10に示した中継ノード100内の同名の要素と同様の機能を有している。ただし、パケット中継部216は、エッジノード200が入口ノードとなるフローについては、経路状態情報記憶部220に設定されている送出確率に従って、該当フローに設定された経路にトラフィックを振り分ける。またパケット中継部216は、エッジノード200が入口ノードとなるフローの経路ごとのトラフィック量を定期的に計測し、経路状態情報記憶部220に設定する。
【0128】
経路状態情報記憶部220は、エッジノード200を入口ノードとするフローの経路の状態に関する情報(経路状態情報)を記憶する。例えばエッジノード200のRAMやHDDの記憶領域の一部が経路状態情報記憶部220として使用される。
【0129】
経路状態情報収集部230は、経路状態情報を定期的に収集する。例えば経路状態情報収集部230は、制御パケットの一種である状態収集パケットを、予め設定されている経路に沿って出口ノード宛に送信する。状態収集パケットは、出口ノードに到達すると、収集結果がエッジノード200に送り返される。また状態収集パケットは各ノードで転送されるごとに内部の情報が更新され、エッジノード200に送り返される収集結果には、経路の最新の状態を示す情報が設定される。経路状態情報収集部230は、収集した経路状態情報を経路状態情報記憶部220に格納する。
【0130】
入札処理部240は、トラフィックを中継するノード(中継ノードまたはエッジノード)からアラーム情報が入力されると、分散経路の候補を示す情報(分散経路候補情報)を作成して、アラーム情報の送信元のノードで送信する。分散経路の候補は、アラームが発生したフローの経路のうち、アラーム情報の送信元のノードを経由しない経路から選択される。
【0131】
送出確率変更部250は、特定のフローに関する負荷分散要求を受け取ると、特定のフローのトラフィックの一部を負荷分散要求に示される分散対象経路へ分散させる。分散させるトラフィックの量は、負荷分散要求に示されるアラーム値によって決定される。
【0132】
図14は、ノードID「A」のエッジノードの経路状態情報記憶部のデータ構造例を示す図である。経路状態情報記憶部220には、経路管理テーブル221が格納されている。経路管理テーブル221には、フローID、経路、スリープノード数、送出確率、経路空き容量、経路消費電力パラメータ、受信アラーム値、およびフローのトラフィック値の欄が設けられている。経路管理テーブル221内の横方向に並べられた情報が互いに関連付けられている。互いに関連付けられた情報を含むレコードが、1つの経路状態情報となる。
【0133】
フローIDの欄には、エッジノード200を入口ノードとするフローのフローIDが設定される。
経路の欄には、エッジノード200を入口ノードとするフローにおけるトラフィックの経路が設定される。
【0134】
スリープノード数の欄には、経路上の中継ノードのうちのスリープノードの数が設定される。
送出確率の欄には、フローにおけるトラフィックの対応する経路への送出確率が設定される。図14の例では、経路「ACD」及び経路「AGD」に対する送出確率が「0.0」であり、経路「AED」に対する送出確率が「1.0」である。これは、フローID「AD」で示されるフローのトラフィックが、経路「AED」に集約されていることを示している。
【0135】
経路空き容量の欄には、対応する経路空き容量が設定される。
経路消費電力パラメータの欄には、対応する経路の消費電力パラメータが設定される。
受信アラーム値の欄には、対応する経路でアラームが発生したときに受信したアラーム値が設定される。
【0136】
フローのトラフィック値の欄には、エッジノード200で該当経路に振り分けたトラフィック量が設定される。
経路状態情報のうち、フローIDと経路との欄に設定される情報は、システムの管理者によって予め設定される。経路状態情報のうち、スリープノード数、経路空き容量、経路消費電力パラメータについては、経路状態情報収集部230が経路状態情報収集処理を行うごとに経路状態情報収集部230によって更新される。経路状態情報のうち送出確率については、送出確率変更部250が送出確率を計算するごとに送出確率変更部250によって更新される。経路状態情報のうちフローのトラフィック値については、パケット中継部216が単位時間当たりの各フローの経路ごとのトラフィック量を計測するごとに、パケット中継部216によって更新される。なおパケット中継部216は、定期的にフローの経路ごとのトラフィック量を計測する。
【0137】
次に、経路状態情報収集処理について詳細に説明する。
図15は、経路状態情報収集処理の一例を示す図である。図15の例では、エッジノード200cを出口ノードとする3つのフローに関する経路状態情報収集処理が示されている。1つのフローの入口ノードは、エッジノード200である。他の1つのフローの入口ノードはエッジノード200aである。また、もう1つのフローの入口ノードはエッジノード200bである。
【0138】
図15では、エッジノード200cを出口ノードとする3つのフローのトラフィックを、実線の矢印で示している。エッジノード200には、エッジノード200cを出口ノードとするフローに対して、3つの経路が登録されている。1つの経路は、エッジノード200bのみを経由する。他の1つの経路は、中継ノード100のみを経由する。もう1つの経路は中継ノード100bのみを経由する。エッジノード200aには、エッジノード200cを出口ノードとするフローに対して、2つの経路が登録されている。1つの経路は、中継ノード100のみを経由する。他の1つの経路は、中継ノード100aのみを経由する。エッジノード200bには、エッジノード200cを出口ノードとするフローに対して、他のノードを経由しない1つの経路のみが登録されている。
【0139】
入口ノードとなる各エッジノード200,200a,200bは、エッジノード200cを出口ノードとするフローに設定されている各経路を介して、状態収集パケット31〜36を出力する。例えば状態収集パケット31〜36には、状態情報パケットであることを示す識別子、および状態情報の収集対象となる経路の情報が含まれる。またエッジノード200,200a,200bから送出直後の状態収集パケット31〜36には、収集すべき各種情報が初期状態で含められている。図15では、状態収集パケット31〜36が転送される経路を、点線の矢印で示している。例えば、エッジノード200から出力された状態収集パケット31は、中継ノード100を経由してエッジノード200cに転送される。中継ノード200は、状態収集パケット31を転送する際には、状態収集パケット31内の情報を更新する。エッジノード200cは、自身が、状態収集パケットで経路状態情報を収集すべき経路における出口ノードであることを認識し、状態収集パケット31による収集結果をエッジノード200に送り返す。
【0140】
各エッジノード200,200a,200bは、自己の認識している経路に沿って状態収集パケット31〜36を、定期的に送信する。その結果、エッジノード200,200a,200bで経路状態情報が定期的に取得される。経路状態情報には、経路の空き容量、経路の消費電力パラメータ、スリープノード数などが含まれる。各エッジノード200,200a,200bは、取得した状態収集パケット31〜36に基づいて、自己の管理する経路状態情報を更新する。
【0141】
ここで、経路「AED」と経路「BED」とについて着目し、経路空き容量の計算例について説明する。
図16は、経路「AED」と経路「BED」との経路空き容量計算例を示す図である。経路「AED」と経路「BED」との両方の経路上に配置された中継ノード100は、出力ポートごとのリンクのトラフィック量を計測している。図16の例では、ポート番号「#1」の通信ポートがエッジノード200に接続されている。ポート番号「#2」の通信ポートがエッジノード200aに接続されている。ポート番号「#3」の通信ポートがエッジノード200bに接続されている。ポート番号「#4」の通信ポートがエッジノード200cに接続されている。ポート番号「#5」の通信ポートが中継ノード100aに接続されている。
【0142】
ここで、リンクのトラフィック量は、そのリンクを通過するフローのトラフィック量の和である。このトラフィック量は、中継ノード100の輻輳検出部140がトラフィック計測周期ごとに、単位時間内に流れるフローごとのパケット数とデータ長とを集計することにより測定される。図16の例では、フロー「AD」のトラフィック量が「0.3」であり、すべてのトラフィックが経路「AED」に集約されている。また、フロー「BD」のトラフィック量が「0.4」であり、すべてのトラフィックが経路「BED」に集約されている。すると、中継ノード100におけるポート番号「#4」の通信ポートを出力ポートとするリンクのトラフィック量は、「0.7=0.3+0.4」となる。
【0143】
図16の例では、中継ノード100において、ポート番号「#4」の通信ポートを出力ポートとするリンクのTarget値が「0.8」に設定されている。この場合、ポート番号「#4」の通信ポートを出力ポートとするリンクの空き容量は「0.1=0.8−0.7」となる。ネットワーク10上に図示した以外のフローが存在していない場合、経路「AED」と経路「BED」とのそれぞれの状態収集パケットは、共に中継ノード100において経路空き容量が「0.1」に更新される。このようにして更新された状態収集パケットの収集結果が、各エッジノード200,200aに送信され、経路状態情報が更新される。例えば、エッジノード200の経路状態情報は、図14に示した通りの内容となる。また、エッジノード200aが管理する経路状態情報は、図17に示す通りの内容となる。
【0144】
図17は、ノードID「B」のエッジノードの経路状態情報記憶部のデータ構造例を示す図である。エッジノード200aが有する経路状態情報記憶部220aには、図14と同様のデータ構造の経路管理テーブル221aが格納されている。この経路管理テーブル221aには、エッジノード200aを入口ノードとするフローの経路状態情報が登録されている。
【0145】
このような経路状態情報収集処理は、入口ノードであるエッジノードの経路状態情報収集部と、経路上の他のノードの経路状態通知部との連携処理である。
図18は、入口ノードでの経路状態情報収集処理の手順を示すフローチャートである。図18には、1つの経路に対する処理手順が示されている。すなわち、図18に示した処理が、経路管理テーブルに登録されている経路状態情報に示される経路ごとに個別に実行される。以下、図18に示す処理をステップ番号に沿って説明する。
【0146】
[ステップS11]経路状態情報収集部230は、状態収集パケットを送信する。状態収集パケットは制御パケットの一種であり、転送の経路がパケット内に指定されている。状態収集パケットの伝送経路は、経路状態情報収集の対象となる経路(経路管理テーブルの経路の欄に示される経路)である。また、生成された状態収集パケットには、スリープノード数、経路空き容量、消費電力パラメータの初期値が設定されている。スリープノード数の初期値は、例えば「0」である。経路空き容量の初期値は、例えば「1」である。消費電力パラメータの初期値は、例えば「0」である。
【0147】
[ステップS12]経路状態情報収集部230は、経路状態情報の収集結果を受信したか否かを判断する。収集結果を受信した場合、処理がステップS13に進められる。収集結果を受信していなければステップS12の処理が繰り返され、収集結果の受信待ち状態となる。
【0148】
[ステップS13]経路状態情報収集部230は、受信した収集結果に基づいて、経路状態情報記憶部220内の該当する経路の経路状態情報を更新する。
[ステップS14]経路状態情報収集部230は、予め設定された経路状態情報収集周期だけ待機する。ステップS13の処理が終了してから経路状態情報収集周期が経過すると、処理がステップS11に進められる。
【0149】
このようにして、入口ノードにおいて定期的な経路状態情報の収集処理が行われる。次に、状態収集パケットを受信したノードで実行される経路状態情報通知処理について説明する。
【0150】
図19は、経路状態情報通知処理の手順を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
[ステップS21]経路状態通知部130は、状態収集パケットを受信すると、その状態収集パケットに示される経路において、中継ノード100自身が出口ノードとなる経路か否かを判断する。出口ノードであれば、処理がステップS22に進められる。出口ノードでなければ処理がステップS23に進められる。
【0151】
[ステップS22]経路状態通知部130は、状態収集パケットに示される経路の入口ノードへ、収集結果を送信する。収集結果は、制御パケットに含めて送信される。その後、経路状態情報通知処理が終了する。
【0152】
なお図19のフローチャートは、中継ノードとエッジノードとのいずれの経路状態通知部でも同様の処理を実行することを前提としている。そのため、中継ノード100の経路状態通知部130においてもステップS21,S22のような出口ノードにおける処理が含まれている。ただし、第2の実施の形態では中継ノードは出口ノードとはならない。そのため、中継ノード内の経路状態通知部130においては、ステップS21,S22の処理を行わなくてもよい。
【0153】
[ステップS23]経路状態通知部130は、自身が出口ノードでなければ、スリープノードか否かを判断する。例えば経路状態通知部130は、スリープ制御部170が保持しているフラグを参照し、動作モードがスリープモードか否かを判断する。動作モードがスリープモードであれば、経路状態通知部130は、中継ノード100がスリープノードであると判断する。スリープノードであれば、処理がステップS24に進められる。スリープノードでなければ、処理がステップS25に進められる。
【0154】
[ステップS24]経路状態通知部130は、中継ノード100がスリープノードであれば、状態収集パケットに含まれるスリープノード数の値に「1」を加算する。
[ステップS25]経路状態通知部130は、経路の次のノードへのリンクの空き容量を計算する。例えば経路状態通知部130は、状態収集パケットに示される経路(対象経路)に基づいて、中継ノード100の次となるノードを判断する。次に、経路状態通知部130は、フロー情報記憶部110内の対象経路に対応するフロー情報を参照し、出口ポートを判断する。さらに経路状態通知部130は、リンク情報記憶部120内の対象経路の出口ポートに対応するリンク情報を参照し、リンク容量、Target値、およびリンクのトラフィック量を抽出する。そして、経路状態通知部130は、「リンク容量×Target値−リンクトラフィック量」の計算結果を、リンクの空き容量とする。
【0155】
[ステップS26]経路状態通知部130は、状態収集パケットをこれまで転送したノードで算出されたリンクの空き容量のなかで、ステップS25で算出したリンクの空き容量が最も少ないか否かを判断する。例えば経路状態通知部130は、状態収集パケットに含まれる経路空き容量と、算出したリンクの空き容量とを比較する。リンク空き容量の方が少なければ、算出したリンクの空き容量がこれまでで最も少ないと判断される。算出したリンクの空き容量がこれまでで最も少ない場合、処理がステップS27に進められる。そうでなければ、処理がステップS28に進められる。
【0156】
[ステップS27]経路状態通知部130は、状態収集パケットに含まれている経路空き容量の値を、ステップS25で算出したリンク空き容量の値に更新する。その後、処理がステップS28に進められる。
【0157】
[ステップS28]経路状態通知部130は、状態収集パケットに含まれている消費電力パラメータを更新する。例えば経路状態通知部130は、中継ノード100の消費電力パラメータの値を、状態収集パケットに含まれている消費電力パラメータの値に加算する。
【0158】
[ステップS29]経路状態通知部130は、経路上の次のノードへ状態収集パケットを転送する。その後、処理が終了する。
以上のようにして、入口ノードと他のノードとの連携動作により、入口ノードにおいて経路状態情報が収集される。そして、経路状態情報の収集が定期的に行われることで、入口ノードにおける経路状態情報記憶部内の経路状態情報が、随時最新の情報に更新される。
【0159】
次に、輻輳検出処理について説明する。
図20は、輻輳の予兆発生例を示す図である。図20の例では、フロー「BD」のトラフィック量が「0.4」から「0.6」に増加している。すると、中継ノード100のノード番号「#4」の通信ポートを出力ポートとするリンクにおいて、リンクのトラフィック量が「0.9」となる。ここで中継ノード100において、ノード番号「#4」の通信ポートを出力ポートとするリンクのTarget値が「0.8」、Control値が「0.1」であるものとする。この場合、制御開始閾値は「0.7=0.8−0.1」である。すると、リンクのトラフィック量が制御開始閾値より大きくなっている。中継ノード100では、輻輳検出部140がリンクのトラフィック量が制御開始閾値を超えたことを検出し、輻輳制御を開始する。
【0160】
図21は、輻輳検出処理の手順の一例を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。
[ステップS31]輻輳検出部140は、中継ノード100を経由する各フローの単位時間当たりの通過データ量を計測する。これにより、各フローのトラフィック量が得られる。輻輳検出部140は、算出したフローのトラフィック量を、各フローのトラフィック計測値としてフロー情報記憶部110内に新たに格納する。この際、輻輳検出部140は、新たに計測したトラフィック計測値の登録以前に、フローのトラフィック計測値として設定されていた値を、前回のフローのトラフィック計測値としてフロー情報記憶部110に格納する。
【0161】
[ステップS32]輻輳検出部140は、中継ノード100と他のノードとの間の各リンクを処理対象リンクとし、処理対象リンクごとに、ステップS33〜ステップS36の処理を実行する。
【0162】
[ステップS33]輻輳検出部140は、リンクのトラフィック量、リンク利用率、および偏差を計算する。例えば輻輳検出部140は、フロー情報記憶部110内の各フローの出力ポートを参照し、処理対象リンクを通過するフローを判断する。次に輻輳検出部140は、処理対象リンクを通過するフローのトラフィック量の和を求める。算出された和が、処理対象リンクのトラフィック量となる。さらに輻輳検出部140は、リンクのトラフィック量をリンク容量で除算し、リンク利用率を求める。また輻輳検出部140は、Target値からリンク利用率を減算し、偏差を求める。
【0163】
輻輳検出部140は、算出したリンクのトラフィック量、リンクの利用率、および偏差を、リンク情報記憶部120に格納する。この際、輻輳検出部140は、新たに算出したリンク利用率および偏差の登録前に該当項目に格納されていた情報を、それぞれ前回リンク利用率、前回偏差としてリンク情報記憶部120に格納する。
【0164】
[ステップS34]輻輳検出部140は、処理対象リンクのリンク利用率が、輻輳制御の制御開始閾値を超えているか否かを判断する。リンク利用率が制御開始閾値を超えていれば、処理がステップS36に進められる。制御開始閾値を超えていなければ、処理がステップS35に進められる。
【0165】
[ステップS35]輻輳検出部140は、リンク利用率が制御開始閾値を超えていなければ、輻輳制御フラグをリセットする。例えば、輻輳制御フラグが「1」のとき輻輳制御実行中を示し、「0」のとき輻輳制御を実行していないことを示す場合、輻輳検出部140は輻輳制御フラグを「0」にセットする。なお、ステップS35の処理以前から輻輳制御フラグがセットされていない場合には、リセットの処理を行わなくてもよい。その後、処理がステップS37に進められる。
【0166】
[ステップS36]輻輳検出部140は、リンク利用率が制御開始閾値を超えていれば、輻輳制御処理を実行する。この処理の詳細は後述する(図26参照)。その後、処理がステップS37に進められる。
【0167】
[ステップS37]輻輳検出部140は、すべてのリンクに対してステップS33〜ステップS36の処理が完了すると、処理をステップS38に進める。
[ステップS38]輻輳検出部140は、トラフィック計測周期の時間だけ待機し、処理をステップS31進める。
【0168】
このような処理により、定期的にフローのトラフィックが計測され、フロー情報記憶部110内のフロー情報が更新される。
図22は、フロー情報更新後のフロー情報記憶部の例を示す図である。図22には、図20に示した各フローのトラフィックの計測結果が反映されている。図11と比較すると分かるように、フローID「BD」のフロー情報に関して、フローのトラフィック計測値と前回のフローのトラフィック計測値とが更新されている。フローのトラフィック計測値は「0.4」から「0.6」に変更されている。前回のフローのトラフィック計測値は「0.3」から「0.4」に変更されている。
【0169】
また、リンクのトラフィック量が計測されることで、リンク情報記憶部120内のリンク情報が更新される。この際、リンク利用率が制御開始閾値を超えたリンクを含むフローに関するリンク情報には、輻輳制御フラグが立てられ、アラーム値が設定される。
【0170】
図23は、リンク情報更新後のリンク情報記憶部の例を示す図である。図23は、図20に示した輻輳の予兆を検出したことによりアラーム発生後のリンク情報記憶部120内のリンク情報を示している。図12と比較すると分かるように、ポート番号「#4」の通信ポートを出力ポートとするリンクについて、リンクのトラフィック量、リンク利用率、偏差、前回リンク利用率、前回偏差、輻輳制御フラグ、アラーム値、および前回アラーム値が更新されている。
【0171】
ポート番号「#4」の通信ポートを出力ポートとするリンクのリンク情報は、トラフィック量が「0.7」から「0.9」に変更されている。リンク利用率が「0.7」から「0.9」に変更されている。偏差が「0.1」から「−0.1」に変更されている。前回リンク利用率が「0.6」から「0.7」に変更されている。前回偏差が「0.2」から「0.1」に変更されている。輻輳制御フラグが新たにセットされている。アラーム値として新たに「0.89」が設定されている。前回アラーム値には、初期値として「1」が設定されている。
【0172】
このように中継ノード100におけるフロー情報やリンク情報が更新されると、経路状態情報収集処理によって、エッジノード200,200aの経路状態情報にも変更内容が反映される。
【0173】
図24は、ノードID「A」のエッジノードの更新後の経路状態情報記憶部の例を示す図である。図24には、図20に示した各フローのトラフィックの計測結果が反映されている。図14と比較すると分かるように、フローID「AD」の経路「AED」の経路状態情報に関して、経路空き容量が更新されている。経路空き容量は「0.1」から「0」に変更されている。
【0174】
なお経路空き容量は、経路上のリンクの空き容量のうちの最小値である。リンクの空き容量は、リンク容量×Target値−リンクトラフィック量である。そのため、図20の例では、中継ノード100のポート番号「#4」の通信ポートを出力ポートとするリンクの空き容量は、計算式上は「−0.1」(1×0.8−0.9)となってしまう。ただし、リンクの空き容量が計算上負の数になるときは、リンクの空き容量の値は「0」とされる。「0」は最小値であるため、該当リンクを通るすべての経路の経路空き容量も「0」となる。
【0175】
図25は、ノードID「B」のエッジノードの更新後の経路状態情報記憶部の例を示す図である。図25には、図20に示した各フローのトラフィックの計測結果が反映されている。図17と比較すると分かるように、フローID「BD」の経路「BED」の経路状態情報に関して、経路空き容量が更新されている。経路空き容量は「0.1」から「0」に変更されている。
【0176】
トラフィックの計測が行われた結果、リンク利用率が制御開始閾値を超えるリンクが検出されると、輻輳の予兆検出と判断され輻輳制御処理が行われる。
図26は、輻輳制御処理の手順の一例を示すフローチャートである。以下、図26に示す処理をステップ番号に沿って説明する。
【0177】
[ステップS41]輻輳検出部140は、分散経路募集処理を実行する。分散経路募集処理は、トラフィックの分散先となる経路の候補を、入口ノードに募集する処理である。分散経路募集処理において、入口ノードに対してアラーム情報が送信される。この処理の詳細は後述する(図29参照)。
【0178】
[ステップS42]分散制御部150は、分散経路候補の中からトラフィックの分散先とする経路を決定し、その経路の入口ノードに対してトラフィックの負荷分散を指示する。この処理の詳細は後述する(図35参照)。
【0179】
図27は、分散経路募集処理によるアラーム情報の送信状況を示す図である。図27の例では、中継ノード100のポート番号「#4」の通信ポートを出力ポートとするリンクにおいて、輻輳の予兆が検出されている。この場合、輻輳の予兆が検出された制御対象リンクを通る経路の入口ノードであるエッジノード200,200aに対してアラーム情報が送信されている。
【0180】
アラーム情報には、「アラーム値(規制率)」、「フローID」、「入口ノード名(アラーム情報宛先)」、「経路情報」、および「制御対象リンク名」が含まれる。制御対象リンク名は、輻輳の予兆が検出されたリンクのリンク名である。リンク名は、リンクの両端のノードのノードIDの組で表される。その際、左側にリンクへトラフィックを出力するノードのノードID、右側に該当リンクからトラフィックが入力されるノードのノードIDが設定される。例えば、中継ノード100のポート番号「#4」の通信ポートを出力ポートとするリンクのリンク名は「ED」となる。
【0181】
リンクiのアラーム値が以下の式で計算される。
ai(t)=ai(t−1)+P×(ei(t)−ei(t−1))+I×ei(t)
・・・(4)
ここで「t」はアラーム情報送信周期における何周期目かを示す値である。tは、1から開始され、一周期ごとに1ずつ増加される。ただし、「ai(0)=1」と定義する。
【0182】
「P」、「I」は、PI(Proportional-Integral)コントローラにおける制御パラメータであり、所定の値が設定される。例えば、本実施の形態では、P=0.5、I=0.1であるものとする。
【0183】
ei(t)は、リンクiにおけるt周期目の偏差である。偏差「ei(t)」は、以下の式で表される。
ei(t)=Ti−Tri(t) ・・・(5)
ここで「Ti」はリンクiのTarget値である。「Tri(t)」はリンクiのトラフィック利用率である。
【0184】
例えば、図23のポート番号「#4」の通信ポートを出力ポートとするリンク(リンクED)のアラーム値を計算する場合を考える。
前回アラーム値:aED(t−1)=1
偏差:eED(t)=−0.1
前回偏差:eED(t−1)=0.1
ここでP=0.5、I=0.1である。そこで、アラーム値は以下の値となる。
アラーム値:
aED(t)=1+0.5(−0.1−0.1)+0.1(−0.1)=0.89
アラーム情報は、制御パケットに含めて送信される。制御パケットは、その制御パケットを転送する経路を指定する情報を付加することができる。例えば、図27に示すように中継ノード100のポート番号「#4」の通信ポートを出力ポートとするリンクでリンク利用率が制御開始閾値を超えると、そのリンク(制御対象リンク)へのトラフィックの入力側である中継ノード100において、輻輳の予兆が検出される。その場合、中継ノード100が、アラーム情報を作成して制御パケットに載せる。
【0185】
中継ノード100は、制御対象リンクを介してエッジノード200cへ流れる全フローの各経路の入口ノード宛に、アラーム情報を含む制御パケットを送信する。この制御パケットが出力される通信ポートは、制御対象リンクを含む経路の入口ポート側の隣接ノードに接続された通信ポートである。すなわち、制御対象リンクを含む経路上の入口ノード側に隣接するノードに対して、中継ノード100から制御パケットが渡される。そして、制御パケットに含められる経路の指定は、制御対象リンクを含む経路を入口ノードに向かって辿る経路である。例えば、図27のフロー「AD」の経路「AED」に対しては、中継ノード100からエッジノード200へ、アラーム情報を含む制御パケットが送信される。また、フロー「BD」の経路「BED」に対しては、中継ノード100からエッジノード200aへ、アラーム情報を含む制御パケットが送信される。
【0186】
送信されるアラーム情報のデータフォーマットを[フローID,入口ノード,アラーム発生経路状態情報,制御対象リンク,アラーム値]と表すと、各エッジノード200,200aに送信されるアラーム情報の内容は以下の通りである。
・エッジノード200宛の制御パケットに含まれるアラーム情報
[AD,A,(A,E,D),ED,0.89]
・エッジノード200a宛の制御パケットに含まれるアラーム情報
[BD,B,(B,E,D),ED,0.89]
図27の例では、輻輳の予兆を検出した中継ノード100に対して、制御対象リンクを含む経路の入口ノードが隣接している。そのため、アラーム情報を含む制御パケットの転送は発生していない。もし輻輳の予兆を検出したノードと制御対象リンクを含む経路の入口ノードとが隣接していない場合、アラーム情報を含む制御パケットは、その制御パケットで指定された経路で転送される。
【0187】
図28は、アラーム情報の転送が生じる態様を示す図である。図28には、図6に示した構成に対し、2台の中継ノード100c,100dが追加された例が示されている。中継ノード100cは、中継ノード100とエッジノード200との間に設けられている。また中継ノード100dは、中継ノード100と、エッジノード200aとの間に設けられている。中継ノード100cのノードIDは「H」である。中継ノード100dのノードIDは「I」である。
【0188】
このようなネットワーク構成の場合、フローID「AD」のフローの経路は、「A,H,E,D」となる。また、フローID「BD」のフローの経路は、経路「BIED」となる。従って、中継ノード100におけるフロー管理テーブル111aでは、フローID「AD」のフロー情報に経路「AHED」が設定され、フローID「BD」のフロー情報に経路「BIED」が設定されている。中継ノード100cにおけるフロー管理テーブル111bにおいても、フローID「AD」のフロー情報に経路「AHED」が設定されている。
【0189】
このようなネットワーク構成のときに、中継ノード100とエッジノード200cとの間のリンクで輻輳の予兆が検出されたものとする。この場合、中継ノード100において、輻輳の予兆が検出された制御対象リンクを通る2つの経路が認識される。そして、中継ノード100から各経路の入口ノードであるエッジノード200,200aそれぞれへのアラーム情報が送信される。中継ノード100からエッジノード200宛のアラーム情報は、経路「AHED」を逆向きに沿って、中継ノード100cに送出される。また中継ノード100からエッジノード200a宛のアラーム情報は、経路「BIED」を逆向きに沿って、中継ノード100dに送出される。
【0190】
中継ノード100cは、取得したアラーム情報を、フローID「AD」の経路「AHED」を逆向きに沿って、エッジノード200に送出する。中継ノード100dは、取得したアラーム情報を、フローID「BD」の経路「BIED」を逆向きに沿って、エッジノード200aに送出する。
【0191】
第2の実施の形態では、アラーム情報内に経路状態情報が含まれている。そのため、アラーム情報を受信したノードは、アラーム情報内の経路状態情報を参照して、転送先を判断できる。また、各ノードがフローの経路の情報を有している。従って、アラーム情報に経路状態情報が含まれていなくても、そのアラーム情報の転送が可能である。例えば、アラーム情報を受信したノードは、アラーム情報に含まれるフローIDを参照し、そのフローIDに対応する経路状態情報をフロー情報記憶部から取得する。そして、アラーム情報を受信したノードは、取得した経路状態情報を逆方向に辿るように、アラーム情報を転送する。
【0192】
このようにして、アラーム情報は、経路に沿って逆向きに転送され、入口ノードに渡される。
図29は、分散経路募集処理の一例を示すフローチャートである。以下、図29に示す処理をステップ番号に沿って説明する。
【0193】
[ステップS51]輻輳検出部140は、輻輳制御フラグがリセット状態か否かを判断する。例えば輻輳検出部140は、リンク情報記憶部120内の制御対象リンクに関するリンク情報を参照し、そのリンク情報に輻輳制御フラグがセットされているか否かを判断する。輻輳制御フラグがリセット状態であれば、処理がステップS52に進められる。輻輳制御フラグがすでにセットされていれば、処理がステップS54に進められる。
【0194】
[ステップS52]輻輳検出部140は、輻輳制御フラグをセットする。例えば輻輳検出部140は、リンク情報記憶部120内の制御対象リンクに関するリンク情報に対して、輻輳制御フラグをセットする。
【0195】
[ステップS53]輻輳検出部140は、前回アラーム値を初期化する。例えば輻輳検出部140は、リンク情報記憶部120内の制御対象リンクに関するリンク情報の前回アラーム値の項目に対して、「1」を設定する。
【0196】
[ステップS54]輻輳検出部140は、アラーム値「ai(t)」を計算する。例えばアラーム値は、上記の式(4)、式(5)によって計算できる。また輻輳検出部140はアラーム値の計算に用いられるデータを、リンク情報記憶部120内の制御対象リンクに関するリンク情報から取得する。
【0197】
[ステップS55]輻輳検出部140は、制御対象リンクを通過するフローごとに、ステップS56〜ステップS57の処理を実行する。
[ステップS56]輻輳検出部140は、フロー情報記憶部110内の制御対象リンクを通過するフローに関するフロー情報から、入口ノードと経路状態情報とを抽出する。
【0198】
[ステップS57]輻輳検出部140は、フローの経路上を入口ノード側に隣接するノードに対して、アラーム情報を含む入口ノード宛の制御パケットを送信する。
[ステップS58]輻輳検出部140は、制御対象リンクを通過するすべてのフローに対するステップS56〜ステップS57の処理が完了した場合、アラーム情報送信処理を終了する。
【0199】
以上のようにして、輻輳予兆検出に応じたアラーム情報の送信が行われる。次に、アラーム情報を受信した入口ノードにおける入札処理について説明する。
アラーム情報を受信した入口ノードでは、まず、受信したアラーム情報に基づいて経路状態情報を更新する。
【0200】
図30は、ノードID「A」のエッジノードのアラーム情報受信後の経路状態情報記憶部の例を示す図である。図30の例は、経路「AED」で輻輳の予兆が検出された場合である。エッジノード200では、アラーム情報から経路情報とアラーム値が抽出され、経路情報に対応する経路の受信アラーム値の欄に、アラーム情報から抽出したアラーム値が設定される。図30の例では、受信アラーム値として「0.89」が設定されている。
【0201】
図31は、ノードID「B」のエッジノードのアラーム情報受信後の経路状態情報記憶部の例を示す図である。エッジノード200aにおいても、アラーム情報から経路情報とアラーム値が抽出され、経路情報に対応する経路の受信アラーム値の欄に、アラーム情報から抽出したアラーム値が設定される。図31の例では、受信アラーム値として「0.89」が設定されている。
【0202】
経路状態情報の更新後、アラーム情報を受信したエッジノードは、入札メッセージを送信する。
図32は、入札メッセージの送信例を示す図である。アラーム情報を受信したエッジノード200,200aは、アラーム情報の送信元である中継ノード100に対して入札メッセージを送信する。入札メッセージは、アラーム情報で示されたフローに関するアラーム発生経路以外の経路(分散経路候補)を通知するメッセージである。入札メッセージのデータには、「フローID」、「経路」、「スリープノード数」、「空き容量」、「消費電力パラメータ」を有する分散経路候補情報が含まれる。分散経路候補情報は、分散経路候補ごとに作成され、入札メッセージに含められる。
【0203】
図32の例では、エッジノード200には、フロー「AD」の経路として3つの経路「AED」、「ACD」、「AGD」が設定されている。このうち経路「AED」はアラーム発生経路である。従って2つの経路「ACD」、「AGD」が、分散経路候補となる。ここで、入札メッセージに含まれる分散経路候補情報のデータフォーマットを(フローID,経路,スリープノード数,空き容量,消費電力パラメータ)とする。このときエッジノード200から中継ノード100に送信される入札メッセージに含まれる分散経路候補情報は以下の通りである。
[(AD,ACD,0,0.7,20),(AD,AGD,1,0.8,20)]
エッジノード200aには、フロー「BD」の経路として2つの経路「BED」、「BFD」が設定されている。このうち経路「BED」はアラーム発生経路である。従って1つの経路「BFD」が、分散経路候補となる。このときエッジノード200aから中継ノード100に送信される入札メッセージに含まれる分散経路候補情報は以下の通りである。
[(BD,BFD,1,0.8,15)]
次に、入口ノードにおける入札処理の手順について説明する。
【0204】
図33は、入札処理の手順を示す図である。以下、図33に示す処理をステップ番号に沿って説明する。
[ステップS61]入札処理部240は、アラーム情報を受信する。
【0205】
[ステップS62]入札処理部240は、受信したアラーム情報から、フローID,入口ノード、アラーム発生経路情報、制御対象リンク、アラーム値フローIDを抽出する。このとき、入札処理部240は、抽出した入口ノードとしてエッジノード200のノードIDが設定されていることにより、エッジノード200が入口ノードとなることを認識する。
【0206】
[ステップS63]入札処理部240は、経路状態情報記憶部220内の経路状態情報を更新する。具体的には入札処理部240は、アラーム情報から抽出したフローIDと経路との組に対応する経路状態情報を、経路状態情報記憶部220から特定する。そして入札処理部240は、特定した経路状態情報の受信アラーム値として、受信したアラーム情報から抽出したアラーム値を設定する。
【0207】
[ステップS64]入札処理部240は、分散経路候補があるか否かを判断する。分散経路候補とは、アラーム情報から抽出したフローIDで示されるフローの経路のうち、アラーム発生経路以外の経路である。分散経路候補があれば、処理がステップS65に進められる。分散経路候補がなければ、入札処理が終了する。
【0208】
[ステップS65]入札処理部240は、分散経路候補がある場合、分散経路候補ごとの分散経路候補情報を作成する。なお、入札処理部240は、分散経路候補情報を構成する「フローID」、「経路」、「スリープノード数」、「空き容量」、「消費電力パラメータ」は、経路状態情報記憶部220から取得する。
【0209】
[ステップS66]入札処理部240は、作成した分散経路候補情報を1つの入札メッセージに含め、アラーム情報の送信元であるノードに入札メッセージを送信する。その後、処理が終了する。
【0210】
入札メッセージを取得した中継ノード100では、各入札メッセージに含まれる分散経路候補情報を比較し、分散先経路を決定する。例えば中継ノード100は、起動するスリープノードが少ない分散経路候補を選択し、分散先経路に決定する。そして、中継ノード100は決定した分散経路の入口ノードであるエッジノードに対して分散要求を送信する。
【0211】
図34は、分散要求の送信例を示す図である。図34の例では、中継ノード100aと100bがスリープノードであり、エッジノード200aが提示した分散経路候補は、中継ノード100aを経由する経路である。また、エッジノード200が提示した分散経路候補は中継ノード100bを経由する経路と、エッジノード200bを経由する経路である。そこで中継ノード100では提示された分散経路候補の中から1つを選択し、分散経路に決定する。例えば中継ノード100は、提示された3つの分散経路候補のうち、スリープノード数の少ない方の経路(つまり経路「ACD」)を選択する。そして、中継ノード100は、エッジノード200に対して経路「ACD」へのトラフィックの分散要求を送信する。
【0212】
分散要求には、「フローID」、「分散先経路」、「アラーム発生経路」、「アラーム値」が含まれる。分散要求のデータフォーマットを[フローID,分散先経路,アラーム発生経路,アラーム値]とすると、図34の例においてエッジノード200に送信される分散要求の内容は以下の通りとなる。
[AD,ACD,AED,0.89]
次に、分散先候補決定処理の手順について説明する。
【0213】
図35は、分散先経路決定処理の手順の一例を示すフローチャートである。以下、図35に示す処理をステップ番号に沿って説明する。
[ステップS71]分散制御部150は、入札メッセージを受信したか否かを判断する。入札メッセージを受信したら処理がステップS72に進められる。入札メッセージを受信していなければ、処理がステップS73に進められる。
【0214】
[ステップS72]分散制御部150は、入札メッセージに含まれる分散経路候補をRAM102またはHDD103内の記憶領域に格納する。
[ステップS73]分散制御部150は、入札メッセージ待ち時間がタイムアウトとなったか否かを判断する。入札メッセージ待ち時間は、アラーム情報を送信してから所定の時間である。分散制御部150は、アラーム情報を送信したときから時間計測を開始し、入札メッセージ待ち時間を経過するとタイムアウトと判定する。タイムアウトになった場合、処理がステップS74に進められる。タイムアウトとなっていなければ、処理がステップS71に進められる。
【0215】
[ステップS74]分散制御部150は、分散経路候補評価処理を行う。この処理の詳細は後述する(図36参照)。
[ステップS75]分散制御部150は、分散経路候補評価処理によって選択した分散経路候補を、分散先経路に決定する。
【0216】
[ステップS76]分散制御部150は、分散先経路の入口ノードに対して、分散先経路へのトラフィックの分散要求を送信する。その後、分散先決定処理が終了する。
次に、分散経路候補評価処理について説明する。
【0217】
図36は、分散経路候補評価処理の手順の一例を示すフローチャートである。以下、図36に示す処理をステップ番号に沿って説明する。
[ステップS81]分散制御部150は、入札メッセージ中の分散経路候補をスリープノード数が少ない順に整列させる。
【0218】
[ステップS82]分散制御部150は、ステップS81で整列させた分散経路候補から、スリープノード数が最も少ない分散経路候補を抽出する。
[ステップS83]分散制御部150は、ステップS82においてスリープノード数が最も少ない分散経路候補が複数抽出されたか否かを判断する。複数の分散経路候補が抽出された場合、処理がステップS85に進められる。抽出された分散経路候補が1つだけの場合、処理がステップS84に進められる。
【0219】
[ステップS84]分散制御部150は、ステップS82で抽出した分散経路候補が1つだけであれば、その分散経路候補を選択し、分散経路候補評価処理を終了する。
[ステップS85]分散制御部150は、ステップS82で抽出した分散経路候補が複数あれば、抽出した分散経路候補を消費電力パラメータが小さい順に整列させる。
【0220】
[ステップS86]分散制御部150は、ステップS85で整列させた分散経路候補から、消費電力パラメータが最小の分散経路候補を抽出する。
[ステップS87]分散制御部150は、ステップS86において消費電力パラメータが最小の分散経路候補が複数抽出されたか否かを判断する複数の分散経路候補が抽出された場合、処理がステップS89に進められる。抽出された分散経路候補が1つだけの場合、処理がステップS88に進められる。
【0221】
[ステップS88]分散制御部150は、ステップS86で抽出した分散経路候補が1つだけであれば、その分散経路候補を選択し、分散経路候補評価処理を終了する。
[ステップS89]分散制御部150は、ステップS86で抽出した分散経路候補が複数あれば、抽出した分散経路候補を空き容量が大きい順に整列させる。
【0222】
[ステップS90]分散制御部150は、ステップS89で整列させた分散経路候補から、空き容量が最大の経路を抽出する。
[ステップS91]分散制御部150は、ステップS90で抽出した分散経路候補のうちの1つを選択し、分散経路候補評価処理を終了する。
【0223】
以上のような処理により、分散先経路が決定され、分散先経路の入口ノードに対して分散要求が送信される。分散要求を受信した入口ノードでは、分散要求に従ってトラフィックの負荷分散を行う。
【0224】
次に入口ノードにおけるトラフィックの負荷分散処理について説明する。負荷分散処理では、入口ノードにおいて、アラーム発生経路と分散先経路とへのトラフィックの送出確率を変更する。例えば、入口ノードは以下の式により、アラーム発生経路と分散先経路との送出確率を決定する。
アラーム発生経路への送出確率(新確率)=アラーム値×旧確率 ・・・(6)
分散先経路への送出確率(新確率)
=旧確率+(1−アラーム値)×アラーム発生経路の旧確率 ・・・(7)
これらの式(6)、式(7)で送出確率を決定することで、アラーム発生経路への送出確率は、アラーム発生経路への確率を減らした分が増やされる。なお、アラーム発生経路と分散先経路以外の経路の送出確率は変更されない。
【0225】
例えば、エッジノード200が[AD,ACD,AED,0.89]という内容の分散要求を受信した場合を考える。このときアラーム発生経路「AED」の旧送出確率は「1」である。すると、アラーム発生経路への送出確率(新確率)は、「0.89」となる。他方、分散先経路「ACD」への送出確率(新確率)は、「0.11」となる。エッジノード200では、送出確率変更部250が新たな送出確率を計算し、経路状態情報記憶部220に格納されている経路状態情報の送出確率を更新する。また、その後の経路状態情報収集処理によって、経路容量などの値が経路状態情報収集部230によって更新される。
【0226】
図37は、送出確率更新後の経路状態情報記憶部の例を示す図である。図30と比較すると分かるように、経路状態情報記憶部220のフローID「AD」の経路「ACD」の送出確率が「0」から「0.11」に変更されている。経路「ACD」の送出確率が変更されたことで、この経路「ACD」におけるフローのトラフィック値が「0」から「0.033」に変更されている。またこの経路「ACD」にトラフィックが振り分けられるようになったことで、経路空き容量が「0.7」から「0.59」に変更されている。
【0227】
またフローID「AD」の経路「AED」の送出確率が「1」から「0.89」に変更されている。経路「AED」の送出確率が変更されたことで、この経路「AED」におけるフローのトラフィック値が「0.3」から「0.267」に変更されている。
【0228】
ただし、経路「AED」の経路空き容量は「0」のままである。これは経路「AED」のトラフィック量が「0.267」になっても、フロー「BD」のトラフィック量「0.6」と合算すると、リンク「ED」のトラフィック量は「0.867」となる。このリンク「ED」のリンク容量×Target値は「0.8」であるため、空き容量の計算結果が負の値となる。そのためリンク「ED」の空き容量が「0」と判定され、経路空き容量も「0」のままとなる。
【0229】
送出確率が更新されると、パケット中継部216は、フロー「AD」のトラフィックを、更新後の送出確率に従って、経路「AED」と経路「ACD」とに振り分ける。これにより、経路「AED」に集中していたトラフィックが複数の経路に分散される。
【0230】
図38は、負荷分散の一例を示す図である。図38の例では、フロー「AD」の全トラフィック量は「0.3」のままである。このトラフィックが、エッジノード200において、経路「AED」と経路「ACD」とに、それぞれ0.89:0.11の割合で振り分けられている。その結果、経路「AED」のトラフィック量が「0.267」、経路「ACD」のトラフィック量が「0.033」となっている。
【0231】
なお、図37、図38の例は、一回目のアラーム情報に応じた負荷分散結果を示しており、リンク「ED」のリンク利用率が制御開始閾値「0.7」以下になるまで、アラーム情報が繰り返し出力される。そのアラーム情報に応じて負荷分散によるトラフィックの送出確率の更新も繰り返し実行される。このような送出確率の更新を繰り返すことで、徐々に経路「AED」のトラフィックのうち経路「ACD」に迂回させる量が多くなり、経路「AED」のトラフィック量が減少する。
【0232】
図39は、送出確率更新処理の手順の一例を示すフローチャートである。以下、図39に示す処理をステップ番号に沿って説明する。
[ステップS101]送出確率変更部250は、分散要求を受信する。
【0233】
[ステップS102]送出確率変更部250は、分散要求からフローID、分散先経路、アラーム発生経路、およびアラーム値を抽出する。
[ステップS103]送出確率変更部250は、アラーム発生経路の送出確率を更新する。例えば送出確率変更部250は、アラーム発生経路の送出確率を式(6)に基づいて計算する。そして送出確率変更部250は、算出した送出確率を、経路状態情報記憶部220内のアラーム発生経路の送出確率として設定する。
【0234】
[ステップS104]送出確率変更部250は、分散先経路の送出確率を更新する。例えば送出確率変更部250は、分散先経路の送出確率を式(7)に基づいて計算する。そして送出確率変更部250は、算出した送出確率を、経路状態情報記憶部220内の分散先経路の送出確率として設定する。
【0235】
このようにして、送出確率を変更し、負荷分散の度合いを調整することができる。
以上説明したように、第2の実施の形態によれば、特定のリンクで輻輳の予兆が検出された場合、そのリンクを通るすべてのトラフィックを分散させるのではなく、経路上のスリープノードが少ない経路に優先的にトラフィックが分散される。これにより、無駄なスリープノードの起動を抑制できる。
【0236】
しかも、PIコントローラを用いて、分散先経路へ振り分けるトラフィック量を調整するようにしている。すなわち、トラフィックの集約が段階的に解かれる。そのため、必要以上のスリープノードが起動されることや、無駄な消費電力の増加が避けられる。さらには、分散先経路へのトラフィックが急激に増加し、分散先経路で輻輳が発生することも抑制されている。
【0237】
〔その他の応用例〕
上記の第1、第2の実施の形態では、輻輳発生の予兆検出をきっかけとして、トラフィックの分散を行っているが、トラフィックを分散させるきっかけは輻輳発生の予兆検出に限らない。たとえば、いずれかのリンクで障害を検出した場合、そのリンクを通るトラフィックを分散させる場合もある。その場合、例えば輻輳検出部140が、輻輳の予兆の検出に加えリンクの障害検出も行えばよい。
【0238】
上記の処理機能は、コンピュータによって実現することができる。その場合、各ルータ(エッジノード、中継ノードを含む)が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
【0239】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0240】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0241】
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
【0242】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【0243】
以上の実施の形態に開示された技術には、以下の付記に示す技術が含まれる。
(付記1) 他のルータとの間に張られたリンクを経由して、転送順が定義された経路に沿ってネットワークに入力されたトラフィックを転送するルータにおいて、
特定のリンクを経由して転送されるトラフィックの少なくとも一部を前記特定のリンクを経由しない経路で転送させる場合に、各リンクを介して転送されるトラフィックの前記ネットワーク内での経路を記憶する経路記憶手段を参照し、前記特定のリンクを介して転送される1または複数のトラフィックの経路を対象経路とし、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ前記特定のリンクを経由しない経路を分散経路候補とし、分散経路候補のトラフィックを中継するルータの状態を示す状態情報を管理している管理装置から、各分散経路候補の状態情報を取得する状態情報取得手段と、
前記状態情報取得手段が取得した各分散経路候補の状態情報に基づいて、分散経路候補へ前記特定のリンクのトラフィックの一部を流した場合の経路上の他のルータの状態の変化を比較し、状態の変化による消費電力の増加量が少ない経路を優先的に分散先経路として決定する分散先決定手段と、
前記分散先決定手段で決定した前記分散先経路へ、経路上の最初と最後のルータの両方が前記分散先経路と共通である前記対象経路のトラフィックの少なくとも一部を振り分けるように、該対象経路上の最初のルータに指示する分散要求を送信する分散要求手段と、
を有することを特徴とするルータ。
【0244】
(付記2) 前記状態情報取得手段は、前記分散経路候補の経路上のルータのうち省電力モードの状態のルータ数を管理装置から取得し、
前記分散先決定手段は、経路上のルータのうち省電力モードの状態のルータ数が少ない分散経路候補を、優先的に分散先経路に決定することを特徴とする付記1記載のルータ。
【0245】
(付記3) 前記状態情報取得手段は、前記分散経路候補の経路上のトラフィックが単位データ量増加したときの経路上の各ルータの消費電力増加量を管理装置から取得し、
前記分散先決定手段は、トラフィックが所定量だけ増加したときの経路上の各ルータの消費電力増加量が少ない分散経路候補を、優先的に分散先経路に決定することを特徴とする付記1または付記2のいずれかに記載のルータ。
【0246】
(付記4) 前記分散要求手段は、前記分散要求に、前記対象経路から前記分散先経路へ振り分けるトラフィック量の計算指標となるアラーム値を含めることを特徴とする付記1乃至5記載のルータ。
【0247】
(付記5) 前記アラーム値は、前記対象経路への現在のトラフィックの送出確率に対する振り分け後の送出確率の比率であることを特徴とする付記4記載のルータ。
(付記6) 他のルータとの間に張られた各リンクのトラフィック量を測定し、輻輳発生の予兆を検出する輻輳予兆検出手段をさらに有し、
前記状態情報取得手段は、前記輻輳予兆検出手段が輻輳発生の予兆を検出したリンクを、前記特定のリンクとすることを特徴とする付記1乃至5のいずれかに記載のルータ。
【0248】
(付記7) 前記分散要求手段は、前記輻輳予兆検出手段により輻輳発生の予兆が検出されたリンクの輻輳発生の予兆が継続している間、所定間隔で前記分散要求を繰り返し送信することを特徴とする付記6記載のルータ。
【0249】
(付記8) 前記輻輳予兆検出手段は、トラフィック量が所定の閾値を超えたリンクを、輻輳発生の予兆があるリンクとして検出することを特徴とする付記6または付記7記載のルータ。
【0250】
(付記9) 前記状態情報取得手段は、対象経路それぞれの最初のルータを前記管理装置と判断し、対象経路それぞれの最初のルータから各分散経路候補の状態情報を取得することを特徴とする付記1乃至8のいずれかに記載のルータ。
【0251】
(付記10) 前記状態情報取得手段は、対象経路それぞれの最初のルータに対して該対象経路の最初と最後のルータが示されたアラーム情報を送信し、該最初のルータから、経路上の最初と最後のルータが該対象経路と共通の分散経路候補、および該分散経路候補の状態情報を取得することを特徴とする付記9記載のルータ。
【0252】
(付記11) ネットワーク内でトラフィックを転送順が定義された経路に沿って転送する各ルータから、該ルータの状態を示す状態情報を収集し、該ルータの状態情報を、該ルータが転送するトラフィックの経路と対応付けて経路状態記憶手段に格納する状態情報収集手段と、
前記ネットワーク内の複数ルータ間に張られた特定のリンクを経由して転送されるトラフィックの経路を対象経路とし、該対象経路の最初と最後のルータが示されたアラーム情報を受信すると、前記経路状態記憶手段を参照し、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ前記特定のリンクを経由しない経路を分散経路候補とし、該分散経路候補の状態情報を前記アラーム情報の発信元に送信する状態情報通知手段と、
を有することを特徴とする管理装置。
【0253】
(付記12) 前記経路状態記憶手段は、経路上の最初と最後のルータが共通の経路間での各経路へのトラフィックの送出確率を記憶しており、
前記経路状態記憶手段に示される送出確率で、他のネットワークから流入するトラフィックを前記ネットワーク内の経路に分散して転送する中継手段と、
前記対象経路のトラフィックの少なくとも一部を振り分ける分散先経路を指定する分散指示を受け取ると、前記経路状態記憶手段に対して、前記対象経路へのトラフィックの送出確率を減らし、前記分散先経路へのトラフィックの送出確率を増やす更新処理を行う送出確率変更手段と、
をさらに有することを特徴とする付記11記載の管理装置。
【0254】
(付記13) 前記状態情報収集手段は、他のネットワークから流入するトラフィックを転送する経路上のルータから状態情報を収集することを特徴とする付記11または付記12のいずれかに記載の管理装置。
【0255】
(付記14) 前記状態情報収集手段は、トラフィックを転送する経路上のルータのうちの省電力モードとなっているルータの数を状態情報として収集することを特徴とする付記11乃至13のいずれかに記載の管理装置。
【0256】
(付記15) 前記状態情報収集手段は、トラフィックを転送する経路上のルータにおける、トラフィックが単位データ量増加したときの消費電力増加量を状態情報として収集することを特徴とする付記11乃至14のいずれかに記載の管理装置。
【0257】
(付記16) 他のルータとの間に張られたリンクを経由して、転送順が定義された経路に沿ってネットワークに入力されたトラフィックを転送する処理をコンピュータに実行させるルーティング制御プログラムにおいて、
前記コンピュータに、
特定のリンクを経由して転送されるトラフィックの少なくとも一部を前記特定のリンクを経由しない経路で転送させる場合に、各リンクを介して転送されるトラフィックの前記ネットワーク内での経路を記憶する経路記憶手段を参照し、前記特定のリンクを介して転送される1または複数のトラフィックの経路を対象経路とし、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ前記特定のリンクを経由しない経路を分散経路候補とし、分散経路候補のトラフィックを中継するルータの状態を示す状態情報を管理している管理装置から、各分散経路候補の状態情報を取得し、
取得した各分散経路候補の状態情報に基づいて、分散経路候補へ前記特定のリンクのトラフィックの一部を流した場合の経路上の他のルータの状態の変化を比較し、状態の変化による消費電力の増加量が少ない経路を優先的に分散先経路として決定し、
決定した前記分散先経路へ、経路上の最初と最後のルータの両方が前記分散先経路と共通である前記対象経路のトラフィックの少なくとも一部を振り分けるように、該対象経路上の最初のルータに指示する分散要求を送信する、
処理を実行させることを特徴とするルーティング制御プログラム。
【符号の説明】
【0258】
1〜6 ルータ
1a 中継手段
1b 輻輳予兆検出手段
1c 経路記憶手段
1d 状態情報取得手段
1e 分散先決定手段
1f 分散要求手段
2a 経路状態記憶手段
2b 中継手段
2c 状態情報収集手段
2d 状態情報通知手段
2e 送出確率変更手段
【技術分野】
【0001】
本発明はネットワーク上のトラフィックの振り分けを制御するルータ、管理装置およびルーティング制御プログラムに関する。
【背景技術】
【0002】
ネットワークでは複数のルータがパケットを中継し、宛先のコンピュータまでパケットを伝送させる。各ルータはパケットの宛先までの伝送経路を認識するために、経路情報を相互に交換している。経路情報には、その経路情報を送信したルータが認識している伝送経路が示されている。各ルータは、他のルータから受信した経路情報に基づいて、宛先に応じたパケットの転送先を選択する。
【0003】
ルータから宛先のコンピュータへの伝送経路が複数存在する場合、ルータは、所定のアルゴリズムで経路選択を行う。ルータにおける経路選択のアルゴリズムは、OSPF(Open Shortest Path First)やRIP(Routing Information Protocol)などのルーティングプロトコルに規定されている。これらのルーティングプロトコルでは、基本的には最短経路を採るように経路選択が行われる。あるいは、これらのルーティングプロトコルを用いた既存の高度な制御としては、ネットワーク利用率のピークを最小化するよう平滑化しつつ、最短経路を採るように経路選択が行われる。
【0004】
このような従来のルーティングプロトコルでは、パケットなどのトラフィック(ネットワーク上を移動するデータ)は予め決められた経路に沿って転送される。そのため、全体的にトラフィックが少ない時間帯が存在しても、各ルータを起動させ続けなければならない。
【0005】
他方、ネットワークの処理能力の向上に伴い、ネットワークを構成する機器による消費電力も増加している。そのため、ネットワーク全体での消費電力を抑制した運用を行うことの重要性が高まっている。そこで、例えばトラフィックの低下したハイウェイを自動的に検出して、該ハイウェイ内のデータを他のハイウェイに自動的に迂回させる技術が考えられている。データを迂回させたことで未使用状態に移行した電子交換機内装置に対し電源をOFFの制御を行うことで、消費電力の削減が可能となる。また、トラフィックが少ない場合には経路を集約させることで、多くの空きルータを生成する技術も考えられている。
【0006】
逆に、トラフィックで輻輳が発生した場合には、トラフィックを分散させる技術がある。例えば、入力エッジルータと出力エッジルータとの間に設定した複数のパスに、入力エッジルータへの入力トラフィックを分散させる技術がある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2001−119730号公報
【特許文献2】特開2004−48330号公報
【非特許文献】
【0008】
【非特許文献1】山田亜紀子、外3名、「グリーンネットワークに向けた一検討(3)ECOルーティング」、電子情報通信学会総合大会講演論文集、社団法人電子情報通信学会、2009年3月4日、2009年_通信(2)、pp.252
【発明の概要】
【発明が解決しようとする課題】
【0009】
ところで、ネットワークを構成するルータ間を接続するリンクのうち、一部のリンクで輻輳が発生することがある。その場合、そのリンクを経由したパスを利用するトラフィックが、他のパスに分散される。パスは、トラフィックが入力されるルータから、そのトラフィックの転送先となるルータへの転送経路である。
【0010】
しかし、一部のルータが省電力モード(スリープモード)となっているネットワークにおいて、輻輳発生の可能性があるリンクを経由するトラフィックをすべて分散させると、省電力モードとなっていたルータが起動してしまい、省電力化の妨げとなる場合がある。例えば、トラフィックが所定の閾値を超えたリンクを経由するパスが複数ある場合がある。輻輳の発生を抑制するには、トラフィックが閾値を超えたリンクを経由する一部のパスのトラフィックを、別経路に負荷分散すれば十分な場合もある。このような場合にまで、閾値を超えたリンクを経由するすべてのパスを介したトラフィックを別経路へ負荷分散させると、転送経路を集約して通過トラフィックを無くしてスリープしていたルータを必要以上に起動させることになる。その結果、消費電力が必要以上に増加することになる。
【0011】
なお、このような問題は、輻輳発生の抑制のみではなく、例えばリンクの障害によるトラフィックの迂回経路探索時にも同様に生じる。
本発明はこのような点に鑑みてなされたものであり、トラフィックの少なくとも一部の転送経路を変更する際の消費電力の増加を抑制することができるルータ、管理装置およびルーティング制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
上記課題を解決するために、他のルータとの間に張られたリンクを経由して、転送順が定義された経路に沿ってネットワークに入力されたトラフィックを転送する、以下に示すルータが提供される。
【0013】
ルータは、状態情報取得手段、分散先決定手段、および分散要求手段を有する。状態情報取得手段は、特定のリンクを経由して転送されるトラフィックの少なくとも一部を特定のリンクを経由しない経路で転送させる場合に、各リンクを介して転送されるトラフィックのネットワーク内での経路を記憶する経路記憶手段を参照する。そして状態情報取得手段は、特定のリンクを介して転送される1または複数のトラフィックの経路を対象経路とする。さらに状態情報取得手段は、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ特定のリンクを経由しない経路を分散経路候補とする。そして状態情報取得手段は、分散経路候補のトラフィックを中継するルータの状態を示す状態情報を管理している管理装置から、各分散経路候補の状態情報を取得する。分散先決定手段は、状態情報取得手段が取得した各分散経路候補の状態情報に基づいて、分散経路候補へ特定のリンクのトラフィックの一部を流した場合の経路上の他のルータの状態の変化を比較する。そして分散先決定手段は、状態の変化による消費電力の増加量が少ない経路を優先的に分散先経路として決定する。分散要求手段は、分散先決定手段で決定した分散先経路へ、経路上の最初と最後のルータの両方が分散先経路と共通である対象経路のトラフィックの少なくとも一部を振り分けるように、その対象経路上の最初のルータに指示する分散要求を送信する。
【0014】
また上記課題を解決するために、以下に示す管理装置が提供される。
管理装置は、状態情報収集手段と状態情報通知手段とを有する。状態情報収集手段は、ネットワーク内でトラフィックを転送順が定義された経路に沿って転送する各ルータから、該ルータの状態を示す状態情報を収集する。そして状態情報収集手段は、ルータの状態情報を、該ルータが転送するトラフィックの経路と対応付けて経路状態記憶手段に格納する。状態情報通知手段は、ネットワーク内の複数ルータ間に張られた特定のリンクを経由して転送されるトラフィックの経路を対象経路とする。状態情報通知手段は、該対象経路の最初と最後のルータが示されたアラーム情報を受信すると、経路状態記憶手段を参照し、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ特定のリンクを経由しない経路を分散経路候補とする。そして状態情報通知手段は、該分散経路候補の状態情報をアラーム情報の発信元に送信する。
【0015】
さらに上記課題を解決するために、上記ルータと同様の処理をコンピュータに実行させるためのルーティング制御プログラムが提供される。
【発明の効果】
【0016】
トラフィックの少なくとも一部の転送経路を他の経路に振り分ける場合に、消費電力の増加量が少ない経路へトラフィックを振り分けることができる。
【図面の簡単な説明】
【0017】
【図1】第1の実施の形態の機能を示すブロック図である。
【図2】輻輳の予兆検出時の処理を示す図である。
【図3】アラーム情報を受信したルータの処理を示す図である。
【図4】分散要求の送信処理を示す図である。
【図5】送出確率変更後のトラフィックの振り分けを示す図である。
【図6】第2の実施の形態のシステム構成例を示す図である。
【図7】本実施の形態に用いる中継ノードのハードウェアの一構成例を示す図である。
【図8】トラフィックの集約例を示す図である。
【図9】リンク利用率とアラーム情報送信との関係を示す図である。
【図10】中継ノードの機能を示すブロック図である。
【図11】フロー情報記憶部のデータ構造例を示す図である。
【図12】リンク情報記憶部のデータ構造例を示す図である。
【図13】エッジノードの機能を示すブロック図である。
【図14】ノードID「A」のエッジノードの経路状態情報記憶部のデータ構造例を示す図である。
【図15】経路状態情報収集処理の一例を示す図である。
【図16】経路「AED」と経路「BED」との経路空き容量計算例を示す図である。
【図17】ノードID「B」のエッジノードの経路状態情報記憶部のデータ構造例を示す図である。
【図18】入口ノードでの経路状態情報収集処理の手順を示すフローチャートである。
【図19】経路状態情報通知処理の手順を示すフローチャートである。
【図20】輻輳の予兆発生例を示す図である。
【図21】輻輳検出処理の手順の一例を示すフローチャートである。
【図22】フロー情報更新後のフロー情報記憶部の例を示す図である。
【図23】リンク情報更新後のリンク情報記憶部の例を示す図である。
【図24】ノードID「A」のエッジノードの更新後の経路状態情報記憶部の例を示す図である。
【図25】ノードID「B」のエッジノードの更新後の経路状態情報記憶部の例を示す図である。
【図26】輻輳制御処理の手順の一例を示すフローチャートである。
【図27】分散経路募集処理によるアラーム情報の送信状況を示す図である。
【図28】アラーム情報の転送が生じる態様を示す図である。
【図29】分散経路募集処理の一例を示すフローチャートである。
【図30】ノードID「A」のエッジノードのアラーム情報受信後の経路状態情報記憶部の例を示す図である。
【図31】ノードID「B」のエッジノードのアラーム情報受信後の経路状態情報記憶部の例を示す図である。
【図32】入札メッセージの送信例を示す図である。
【図33】入札処理の手順を示す図である。
【図34】分散要求の送信例を示す図である。
【図35】分散先経路決定処理の手順の一例を示すフローチャートである。
【図36】分散経路候補評価処理の手順の一例を示すフローチャートである。
【図37】送出確率更新後の経路状態情報記憶部の例を示す図である。
【図38】負荷分散の一例を示す図である。
【図39】送出確率更新処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0018】
以下、本実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態の機能を示すブロック図である。図1の例では、複数のルータ1〜6を含むネットワークが示されている。各ルータ1〜6には識別子(ID)が付与されている。ルータ1のIDは「E」、ルータ2のIDは「A」、ルータ3のIDは「B」、ルータ4のIDは「C」、ルータ5のIDは「F」、ルータ6のIDは「D」である。各ルータ1〜6は、一定期間トラフィックの流入が途絶えると、省電力モードに移行することができる。省電力モードでは、例えば、トラフィックの転送に関する機能を停止することで、消費電力が抑えられる。ここで、省電力モードで動作しているルータを、スリープノードと呼ぶ。図1の例では、ルータ5がスリープノードである。
【0019】
図1に示すような構成のネットワークでは、輻輳の予兆が検出されていない状況下では、トラフィックを特定の経路に集約して転送することができる。図1の例ではルータ2,3,4に対して、外部のネットワークからトラフィックが流入している。流入したトラフィックは、ルータ6から他のネットワークへ送出される。このようなとき、ルータ1は、トラフィックを転送する中継ノードとして機能する。また、ルータ2,3,4は、トラフィックの入力を受け付ける入口ノードとして機能する。ルータ6は、トラフィックを出力する出口ノードとして機能する。またルータ4,5は、中継ノードとして機能することができるものとする。
【0020】
各ルータ2,3,4に流入したトラフィックは、それぞれ1つの経路に集約されている。すなわち、ルータ2,3に流入したトラフィックは、すべてルータ1を介してルータ6に転送されている。ルータ4に流入したトラフィックは、すべてルータ6に直接転送されている。このようなトラフィックの集約を行うことで、省電力モードに移行できるルータの数を増やし、ネットワーク全体での省電力化が図れる。
【0021】
ただし、トラフィックを集約させた経路で輻輳の予兆が検出された際に、その経路を通るすべてのトラフィックを複数の経路に分散させると、必要以上にスリープノードが通常モードに移行する可能性がある。そこで、第1の実施の形態では、適切なトラフィックの分散制御を行うことで、トラフィックを分散させることによる消費電力の増加の抑制を図っている。そのような分散制御を行うために、各ルータが有する機能を以下に説明する。
【0022】
ここでルータ1は、中継ノードとして機能するため、中継手段1a、輻輳予兆検出手段1b、経路記憶手段1c、状態情報取得手段1d、分散先決定手段1e、および分散要求手段1fを有する。
【0023】
中継手段1aは、入力されたトラフィックを、転送順が定義された経路に沿って転送する。図1の例では、中継手段1aは、ルータ2,3から入力されたトラフィックを、ルータ6に転送している。
【0024】
輻輳予兆検出手段1bは、他のルータとの間に張られた各リンクのトラフィック量を測定し、輻輳発生の予兆を検出する。例えば輻輳予兆検出手段1bは、トラフィック量が所定の閾値を超えたリンクを、輻輳発生の予兆があるリンクとして検出する。
【0025】
経路記憶手段1cは、ルータ1と他のルータ2,3,6との間に設けられた各リンクを介して転送されるトラフィックのネットワーク内での経路を記憶する。例えばルータ1とルータ6との間のリンクを介して転送されるトラフィックの経路として、「ルータ2、ルータ1、ルータ6」の順で転送する経路と、「ルータ3、ルータ2、ルータ6」の順で転送する経路とが、経路記憶手段1cに記憶されている。
【0026】
状態情報取得手段1dは、特定のリンクを経由して転送されるトラフィックの少なくとも一部を特定のリンクを経由しない経路で転送させる場合に、経路の状態情報を管理している管理装置から状態情報を取得する。例えば、状態情報取得手段1dは、輻輳予兆検出手段1bが輻輳発生の予兆を検出したリンクを、特定のリンクとして状態情報を取得する。
【0027】
状態情報取得手段1dは、状態情報を取得する際には、経路記憶手段1cを参照する。
そして状態情報取得手段1dは、特定のリンクを介して転送されるトラフィックの経路を対象経路とする。対象経路は、1または複数である。例えば、ルータ1とルータ6との間のリンクが特定のリンクとされた場合、対象経路は「ルータ2、ルータ1、ルータ6」の順で転送する経路と、「ルータ3、ルータ1、ルータ6」の順で転送する経路との2つのである。
【0028】
さらに状態情報取得手段1dは、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ特定のリンクを経由しない経路を分散経路候補とする。そして状態情報取得手段1dは、分散経路候補のトラフィックを中継するルータの状態を示す状態情報を管理している管理装置から、各分散経路候補の状態情報を取得する。
【0029】
例えば、状態情報取得手段1dにネットワーク内のすべての経路の情報が登録されていれば、状態情報取得手段1dにおいて分散経路候補を特定でききる。またネットワーク内のすべての経路を管理している管理装置があれば、状態情報取得手段1dは、その管理装置から経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ特定のリンクを経由しない経路である分散経路候補を取得することができる。ネットワーク内の経路が複数の管理装置に分散して管理されている場合、状態情報取得手段1dは、それぞれの管理装置から分散経路候補を取得する。例えば各経路の最初のルータにおいて、経路が管理されている場合、状態情報取得手段1dは、対象経路の最初のルータが管理装置であると判断し、そのルータから分散経路候補を取得する。
【0030】
図1の例では、対象経路の最初のルータであるルータ2,3から分散経路候補と、分散経路候補のトラフィックを中継するルータの状態を示す状態情報とを取得している。
ルータ2,3から分散経路候補と状態情報を取得する場合、例えば状態情報取得手段1dは、対象経路それぞれの最初のルータ2,3に対して、対象経路の最初と最後のルータが示されたアラーム情報を送信する。すると、対象経路の最初のルータ2,3から、経路上の最初と最後のルータが対象経路と共通の分散経路候補、および分散経路候補の状態情報が応答される。
【0031】
状態情報取得手段1dは、例えば状態情報として、分散経路候補の経路上のルータのうち省電力モードの状態のルータ数(スリープノード数)を取得する。また状態情報取得手段1dは、状態情報として、分散経路候補の経路上のトラフィックが単位データ量だけ増加したときの経路上の各ルータの消費電力増加量を管理装置から取得してもよい。
【0032】
分散先決定手段1eは、状態情報取得手段1dが取得した各分散経路候補の状態情報に基づいて、分散経路候補へ特定のリンクのトラフィックの一部を流した場合の経路上の他のルータの状態の変化を比較する。そして分散先決定手段1eは、状態の変化による消費電力の増加量が少ない経路を優先的に分散先経路として決定する。例えば、分散先決定手段1eは、経路上のルータのうち省電力モードの状態のルータ数(スリープノード数)が少ない分散経路候補を、優先的に分散先経路に決定する。すなわち、経路上のスリープノード数が多いほど、その経路にトラフィックを振り分けたときに、省電力モードから通常モードに移行するルータ数が多くなる。省電力モードから通常モードに移行するルータが少ないほど、消費電力を抑制できる。そのため、スリープノード数が少ない分散経路候補が優先的に分散先経路に決定される。また分散先決定手段1eは、トラフィックが所定量だけ増加したときの経路上の各ルータの消費電力増加量が少ない分散経路候補を、優先的に分散先経路に決定することもできる。
【0033】
分散要求手段1fは、分散先決定手段1eで決定した分散先経路へ、その分散先経路と経路上の最初と最後のルータの両方が共通な対象経路のトラフィックの少なくとも一部を振り分けるように、対象経路上の最初のルータに指示する分散要求を送信する。分散要求手段1fは、輻輳予兆検出手段1bにより輻輳発生の予兆が検出されたリンクの輻輳発生の予兆が継続している間、所定間隔で分散要求を繰り返し送信してもよい。
【0034】
ルータ2は、入口ノードとして機能するため、経路状態記憶手段2a、中継手段2b、状態情報収集手段2c、状態情報通知手段2d、および送出確率変更手段2eを有している。
【0035】
経路状態記憶手段2aは、ネットワーク内でトラフィックを中継する各ルータの状態情報を、そのルータが中継するトラフィックの経路と対応付けて記憶する。また、経路状態記憶手段2aは、経路上の最初と最後のルータが共通の経路間での各経路へのトラフィックの送出確率を記憶する。
【0036】
中継手段2bは、他のネットワークから流入するトラフィックを転送する。その際、中継手段2bは、経路状態記憶手段2aに示される送出確率で、ルータ1〜6が属するネットワーク内の経路に分散して転送する。
【0037】
状態情報収集手段2cは、ネットワーク内でトラフィックを中継する各ルータから、そのルータの状態を示す状態情報を収集し、該ルータの状態情報を、該ルータが中継するトラフィックの経路と対応付けて経路状態記憶手段2aに格納する。例えば、状態情報収集手段2cは、ルータ2に他のネットワークから流入するトラフィックを転送する経路上の他のルータから状態情報を収集する。また状態情報収集手段2cは、例えばトラフィックを転送する経路上のルータのうちの省電力モードとなっているルータの数を状態情報として収集する。また状態情報収集手段2cは、トラフィックを転送する経路上のルータにおける、トラフィックが単位データ量増加したときの消費電力増加量を状態情報として収集してもよい。
【0038】
状態情報通知手段2dは、アラーム情報に応答して状態情報を送信する。例えば状態情報通知手段2dは、特定のリンクを経由してトラフィックを転送する対象経路の最初と最後のルータが示されたアラーム情報を受信する。すると状態情報通知手段2dは、経路状態記憶手段2aを参照し、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ特定のリンクを経由しない経路を分散経路候補とする。そして状態情報通知手段2dは、分散経路候補の状態情報をアラーム情報の発信元に送信する。
【0039】
送出確率変更手段2eは、対象経路のトラフィックの少なくとも一部を振り分ける分散先経路を指定する分散指示を受け取ると、経路状態記憶手段2aの対象経路と分散先経路との送出確率を更新する。例えば送出確率変更手段2eは、対象経路へのトラフィックの送出確率を減らし、分散先経路へのトラフィックの送出確率を増やす更新処理を行う。
【0040】
なお、図1には、代表的にルータ1,2の機能を示したが、中継ノードとしての機能を有する他のルータ4,5は、ルータ1と同様の機能を有している。また入口ノードとして機能する他のルータ3,4は、ルータ2と同様の機能を有している。
【0041】
各ルータ1〜6がこのような機能を有することで、適切なトラフィックの分散制御が可能となる。例えば、図1のルータ1からルータ6へトラフィックを転送するリンクにおいて、輻輳の予兆が検出されたものとする。
【0042】
図2は、輻輳の予兆検出時の処理を示す図である。ルータ1からルータ6へトラフィックを転送するリンクにおける輻輳の予兆は、例えばルータ1の輻輳予兆検出手段1bで検出される。ルータ1からルータ6へのリンクを経由するトラフィックの経路は、「ルータ2、ルータ1、ルータ6」の順で転送する経路と、「ルータ3、ルータ1、ルータ6」の順で転送する経路とがある。そこで、これらの経路が対象経路とされ、状態情報取得手段1dによって、例えば対象経路の最初のルータ2,3に対してアラーム情報が送信される。アラーム情報には、例えば対象経路の最初と最後のルータとが示される。図2では、例えば「AD」という情報によって、経路の最初がID「A」のルータ2であり、経路の最後がID「D」のルータ6であることが示されている。
【0043】
図3は、アラーム情報を受信したルータの処理を示す図である。アラーム情報を受け取ったルータ2,3は、例えば分散経路候補と、その分散経路候補の状態情報とを、ルータ1に通知する。ルータ2であれば、状態情報通知手段2dによって状態情報が通知される。図3の例では、状態情報として、分散経路候補上のスリープノード数が通知されている。
【0044】
分散経路候補とその状態情報に基づいて、ルータ1の分散先決定手段1eにより分散先経路が決定される。図3の例は、ルータ3から通知された分散経路候補(「経路「BFD」)はスリープノードを含んでいるが、ルータ2から通知された分散経路候補(「経路「ACD」)にはスリープノードが含まれない。すると、経路「ACD」にトラフィックを分散させた方が消費電力の増加を抑制できることが分かる。そこで、経路「ACD」が、分散先経路として決定される。すると、分散要求手段1fにより、ルータ2に対して分散要求が送信される。
【0045】
図4は、分散要求の送信処理を示す図である。分散要求には、トラフィックの分散先となる分散先経路が指定されている。ルータ2の送出確率変更手段2eは、分散要求に従ってルータ2からルータ6へ転送するトラフィックの各経路への、トラフィックの送出確率を更新する。例えば、送出確率変更手段2eは、経路「AED」への送出確率を下げ、経路「ACD」への送出確率を上げる。図4の例では、経路「ACD」への送出確率が「0」から0より大きな値に変更される。変更された送出確率は、経路状態記憶手段2aに設定される。送出確率が更新されると、中継手段2bは更新後の送出確率に従ってトラフィックを振り分ける。
【0046】
図5は、送出確率変更後のトラフィックの振り分けを示す図である。図5に示すように、経路「ACD」へのトラフィックの送出確率を「0」よりも大きな値に変更されたことで、その経路にもトラフィックが振り分けられている。経路「ACD」へ振り分けたトラフィックの分だけ、ルータ1とルータ6との間のリンクのトラフィック量は減少し、輻輳の発生が抑制される。
【0047】
このように、第1の実施の形態では、輻輳の可能性のあるリンクを経由するすべてのトラフィックの入口ノードに対しトラフィックの分散要求を送信するのではなく、分散経路候補の中から決定された分散先経路の入口ノードにのみ分散要求を送信する。この際、分散先候補を評価し、できるだけスリープノードを含む経路へはトラフィックの振り分けを行わないように、分散先経路が決定される。
【0048】
これにより、輻輳発生の予兆が検出された際においても、限られた入口ノードだけ、トラフィックを特定の経路に集約させる集約モードから、トラフィックを複数の経路に分散させる分散モードに移行する。そのため、必要以上のスリープノードの起動が抑制される。その結果、消費電力の不必要な増加を抑えることが可能になる。
【0049】
なお第1の実施の形態では、入口ノードとして機能するルータが、状態情報収集手段2cと状態情報通知手段2dとを有しているが、これらの機能は入口ノードとして機能するルータ以外の管理装置が有していてもよい。例えば、ネットワーク全体を管理する管理装置が、ネットワーク全体のトラフィックの経路と、その経路上のルータの状態を管理している場合も考えられる。その場合、管理装置が状態情報収集手段2cと状態情報通知手段2dの機能、および経路状態記憶手段2aにおける状態情報の記憶機能を有する。管理装置がネットワーク内のすべての経路と各経路の状態情報とを管理している場合、ルータ1は、管理装置から分散経路候補と、分散先経路候補の状態情報とを、一括して取得することができる。
【0050】
〔第2の実施の形態〕
第2の実施の形態は、第1の実施の形態で示した機能に、実際に運用するシステムに適用させるために有用な機能を追加したものである。例えば、第2の実施の形態では、入口ノードが定期的に、自己に設定されているパス(経路)の状態情報を収集する。経路状態情報には、経路上のスリープノード数が含められる。このようにして、各入口ノードが動的に変化するネットワーク上の状況を自律的に把握することができる。すなわち、ネットワーク全体を制御するサーバを設けることなく、スリープノード数の把握が可能となる。
【0051】
また、第2の実施の形態では、新たにトラフィックを送出する経路に対して、少しずつトラフィック量を増加させるように、分散モードに移行した入口ノードを制御する。これにより、トラフィックの転送先を変更したことに起因して、輻輳を検出したリンクとは別のリンクで輻輳を発生させてしまうことを抑制できる。
【0052】
図6は、第2の実施の形態のシステム構成例を示す図である。ネットワーク10には、複数のノード(ルータ)が含まれている。ネットワーク10に含まれるノードは、中継ノード100,100a,100bとエッジノード200,200a,200b,200cとに分かれる。中継ノード100,100a,100bは、ネットワーク10内のトラフィックを転送するものである。エッジノード200,200a,200b,200cは、ネットワーク10内でのトラフィックの転送に加え、他のネットワークから入力されるトラフィックや他のネットワークへ出力するトラフィックの転送を行うものである。
【0053】
各ノードには、ネットワーク10上で識別するためのIDが付与されている。エッジノード200のIDは「A」である。エッジノード200aのIDは「B」である。エッジノード200bのIDは「C」である。エッジノード200cのIDは「D」である。中継ノード100のIDは「E」である。中継ノード100aのIDは「F」である。中継ノード100bのIDは「G」である。
【0054】
中継ノード100は、エッジノード200,200a,200b,200cと中継ノード100aとに接続されている。中継ノード100aは、エッジノード200a,200cと中継ノード100とに接続されている。中継ノード100bは、エッジノード200とエッジノード200cとに接続されている。
【0055】
エッジノード200は、エッジノード200bと中継ノード100,100bとに接続されていると共に、他のネットワーク21にも接続されている。エッジノード200aは、エッジノード200bと中継ノード100,100aとに接続されていると共に、他のネットワーク22にも接続されている。エッジノード200bは、エッジノード200,200a,200cと中継ノード100とに接続されていると共に、他のネットワーク23にも接続されている。エッジノード200cは、エッジノード200bと中継ノード100,100a,100bとに接続されていると共に、他のネットワーク24にも接続されている。
【0056】
以下、2台のノード間を接続する伝送経路を「リンク」と呼ぶ。
ネットワーク10内では、中継ノード100,100a,100bとエッジノード200,200a,200b,200cとが、例えば個々のパケット単位で、伝送経路を選択する。なお、エッジノードとして機能しているルータは、ネットワーク10内でのパケットの中継をするため、中継ノードとしての機能も兼ね備える。
【0057】
また各ノードは、トラフィックの流入が一定時間途絶えると、スリープモードに移行する。スリープモードでは、ノードの多くの機能が停止し、消費電力が低く抑えられる。ただしスリープモードであっても、制御パケットの転送に必要な機能は動作し続ける。なお、スリープモードは、省電力モードの一例である。例えばノードへのトラフィックの流入が一定時間途絶えた場合、省電力モードとして、該当ノードを、動作周波数を低下させる低電力モードに移行させることも可能である。
【0058】
図7は、本実施の形態に用いる中継ノードのハードウェアの一構成例を示す図である。中継ノード100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。
【0059】
RAM102は、中継ノード100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
【0060】
バス108に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および通信インタフェース107a,107b,107c,107d,107eがある。
【0061】
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、中継ノード100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【0062】
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
【0063】
入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0064】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
【0065】
通信インタフェース107aは、エッジノード200に接続されている。通信インタフェース107aは、エッジノード200との間でデータの送受信を行う。通信インタフェース107bは、エッジノード200aに接続されている。通信インタフェース107bは、エッジノード200aとの間でデータの送受信を行う。通信インタフェース107cは、エッジノード200bに接続されている。通信インタフェース107cは、エッジノード200bとの間でデータの送受信を行う。通信インタフェース107dは、エッジノード200cに接続されている。通信インタフェース107dは、エッジノード200cとの間でデータの送受信を行う。通信インタフェース107eは、中継ノード100aに接続されている。通信インタフェース107eは、中継ノード100aとの間でデータの送受信を行う。
【0066】
なお、図7に示した中継ノード100の構成のうち、グラフィック処理装置104、光学ドライブ装置106、モニタ11、キーボード12、およびマウス13は、なくてもよい。例えば、シリアルインタフェースや制御用の通信インタフェースを通じて端末装置から中継ノード100へアクセスし、中継ノード100への各種設定を端末装置から遠隔で行うことも可能である。
【0067】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。図7には中継ノード100のハードウェア構成例を示したが、他の中継ノード100a,100bおよびエッジノード200,200a,200b,200cも同様のハードウェア構成で実現することができる。
【0068】
なお、以下の説明では、ネットワークの特定のエッジノードに入力されたトラフィック(データ)が特定のエッジノードから出力されるトラフィックの流れを「フロー」と呼ぶ。フローは、トラフィックが入力されるエッジノードと、トラフィックが出力されるエッジノードとの組み合わせごとに存在する。また、各フローにおけるトラフィックを転送するための経路は、1または複数である。すなわち、1つのフローに流入するトラフィックを1つの経路で転送してもよいし、複数の経路に分散させて転送してもよい。トラフィックが入力されるエッジノードが入口ノードであり、トラフィックを出力するエッジノードが出口ノードである。
【0069】
第2の実施の形態では、フローの転送に使用可能な経路が、そのフローの入口となるエッジノード(入口ノード)に予め設定されているものとする。そして、入口ノードにフローのトラフィックが流入すると、フローに対応付けてエッジノードに予め設定された経路にトラフィックを振り分ける。ある入口ノードからある出口ノードへのトラフィックは、入口ノードで決定された経路に沿って転送される。
【0070】
中継ノードでは、各フローのトラフィック(入口ノードと出口ノードの組みが指定されたトラフィック)はフローごとに設定されている経路にしたがって次のノードに送られる。例えば、各トラフィックのパケットには、転送の経路を示す情報が含まれる。中継ノードは、パケットで示される経路に従ってそのパケットを転送する。その結果、エッジノードで決定した経路でトラフィックが転送される。このように入口ノードで経路を決定してトラフィックをする制御方式を、経路指定型と呼ぶ。経路指定型のトラフィック制御では、中継ノードは指定された経路でトラフィックを転送し、指定された経路以外の経路への振り分けは行わない。
【0071】
このような経路指定型のトラフィック制御を行う場合、エッジノードは、例えば、予め設定された複数の経路それぞれのトラフィック誘引力を用いて、トラフィックの振り分けを行う。トラフィック誘引力は、トラフィックを特定の経路に集約する場合に用いられる。トラフィック誘引力は、その経路を介して転送されるトラフィック量が多い程、大きな値となる。例えば、出口ノードから経路に沿って、中継ノードがトラフィック誘引力を計算していく。各中継ノードでは、経路上を出口ノード側に隣接するノードへのリンクのトラフィック量が大きい程、そのリンクのトラフィック誘引力を大きくする。また、各中継ノードでは、経路上を出口ノード側に隣接するノードから渡されたトラフィック誘引力が大きい程、そのリンクに関するトラフィック誘引力を大きくする。このようにして、経路上の各中継ノードがトラフィック誘引力を計算する。そして、最後に、入口ノードにおいても、経路上を出口ノード側に隣接するノードへのリンクのトラフィック誘引力を、そのリンクのトラフィック量と、隣接するノードから渡されたトラフィック誘引力を用いて計算する。その計算結果が、経路のトラフィック誘引力となる。入口ノードでは、フローに対応付けて予め設定された経路ごとのトラフィック誘引力を定期的に計算し、計算結果をRAMなどの記憶装置に格納する。
【0072】
入口ノードは、出口ノードが指定されたトラフィックについて、その出口ノード宛の経路のトラフィック誘引力に従った確率で、各経路にトラフィックを振り分ける。
以下、図6に示すシステム構成を用いて、経路指定型のトラフィック制御例を示す。例えば、エッジノード200には、エッジノード200cへのトラフィックが流入しているものとする。このトラフィックの流れをフロー「AD」とする。エッジノード200aには、エッジノード200cへのトラフィックが流入しているものとする。このトラフィックの流れをフロー「BD」とする。エッジノード200bには、エッジノード200cへのトラフィックが流入しているものとする。このトラフィックの流れをフロー「CD」とする。
【0073】
エッジノード200からエッジノード200cへは、エッジノード200bを経由する経路(経路「ACD」)、中継ノード100を経由する経路(経路「AED」)、および中継ノード100bを経由する経路(経路「AGD」)が設定されているものとする。入口であるエッジノード200において、各経路のトラフィック誘引力に対応した確率で、各々の経路に流入トラフィックは分配される。
【0074】
エッジノード200aからエッジノード200cへは、中継ノード100を経由する経路(経路「BED」)、中継ノード100aを経由する経路(経路「BFD」)が設定されているものとする。エッジノード200aにおいても、各経路のトラフィック誘引力に対応した確率で、各々の経路に流入トラフィックは分配される。
【0075】
また、エッジノード200bからエッジノード200cへは、他のノードを経由しない1つの経路(経路「CD」)が設定されているものとする。そのため、エッジノード200bへの流入トラフィックはすべて経路「CD」を通る。
【0076】
中継ノード100からエッジノード200cへのリンク(リンク「ED」)には、フロー「AD」とフロー「BD」とのトラフィックが流れる。そのため、中継ノード100のトラフィック誘引力が高くなる。それが、それぞれ中継ノード100からエッジノード200,200aに通知される。その結果、例えば経路「AED」のトラフィック誘引力が経路「ACD」よりも高くなることによりエッジノード200からエッジノード200cへ流れるトラフィックはすべて経路「AED」に流れるように入口ノードであるエッジノード200でのフロー「AD」の分配確率は計算される。同様にフロー「BD」のトラフィックも経路「BED」に集約される。
【0077】
図8は、トラフィックの集約例を示す図である。トラフィックが集約されたことで、中継ノード100aや中継ノード100bを通過するトラフィックがなくなる。その結果、中継ノード100aや中継ノード100bをスリープモードに移行させることが可能となる。中継ノード100aや中継ノード100bがスリープモードに移行することで、ネットワーク全体での低消費電力が実現される。このような低消費電力化を実現する技術として、本出願人は特願2009−49139号を出願している。また、同様の低消費電力化の技術は以下の論文で公表されている。
【0078】
“山田亜紀子、外3名、「グリーンネットワークに向けた一検討(3)ECOルーティング」、電子情報通信学会総合大会講演論文集、社団法人電子情報通信学会、2009年3月4日、2009年_通信(2)、pp.252”
図8の例では、各フローのトラフィックがそれぞれ1つの経路に集約されている。すなわち経路「ACD」のトラフィック計測値は「0.0」である。経路「AED」のトラフィック計測値は「0.3」である。経路「BED」のトラフィック計測値は「0.4」である。経路「BFD」のトラフィック計測値は「0.0」である。経路「CD」のトラフィック計測値は「0.1」である。なお、各リンクのリンク容量は「1.0」である。
【0079】
このようにトラフィックの集約が実現された状態において、中継ノード100からエッジノード200cへのリンク(リンク「ED」)には、フロー「AD」とフロー「BD」との両方のトラフィックの全てが流れる。この状態で、エッジノード200あるいはエッジノード200aへの流入トラフィックが増大した場合を考える。この場合、各リンクでは流れるトラフィック量を計測しておき、リンク最大容量に対する輻輳検出判定閾値を超えないかどうか、常時チェックしておく。フロー「AD」とフロー「BD」のトラフィック量の和がリンク「ED」のリンク容量に近づくと、輻輳発生の可能性が生じる。ここで、輻輳発生の可能性が生じたリンクを制御対象リンクとする。輻輳の発生を抑制するには制御対象リンクを流れるトラフィックの一部を他の経路へ分散させる輻輳制御が行われる。
【0080】
輻輳制御では、例えば輻輳発生の可能性を検出したノードから、制御対象リンクへトラフィックを流している経路の入口ノードに対し、アラーム情報が送信される。そして、アラーム情報を受信した入口ノードが、トラフィックを集約させる制御を停止し、トラフィックの分散制御を行う。
【0081】
ここで、制御対象リンクへトラフィックを流している経路のすべての入口ノードが、アラーム情報の受信に応じてトラフィックを分散させてしまうと、必要以上の消費電力の増加を招いてしまう。
【0082】
例えば図8の例であれば、リンク「ED」を流れるフロー「AD」およびフロー「BD」のトラフィック量増加によりリンク「ED」の輻輳発生の可能性が検出された場合を想定する。この場合に、アラーム情報がリンク「BD」を通過する全フローの経路の入口ノードに対し送出されると、スリープノードであった中継ノード100a,100bが通常モードに移行してしまう。
【0083】
つまり通過するフロー「AD」の経路「AED」、フロー「BD」の経路「BED」に沿ってそれぞれ入口のエッジノード200、エッジノード200aに対してアラーム情報が送出される。すると、アラーム情報を受け取ったエッジノード200では、フロー「AD」の経路(経路「AED」、経路「ACE」、経路「AGD」の3つがある)を集約モードから分散モードに切り替える。すなわちエッジノード200は、アラーム情報がきた経路「AED」へのトラフィック送出確率を減らし、別の経路「ACD」、「AGD」への送出確率を上げる。このように、エッジノード200は、経路「ACD」、「AGD」へ一部のトラフィックを分配することにより負荷分散を図り、リンク「ED」を通過する経路「AED」のトラフィックを下げる。この結果、中継ノード100bを通過するトラフィックが発生し、中継ノード100bはスリープモードから起動し、通常モードでの動作を開始する。
【0084】
同様に、エッジノード200aにおいてもフロー「BD」の経路「BED」への送出確率を下げ、経路「BFD」への送出確率を上げる。この結果、中継ノード100aを通過するトラフィックが発生し、中継ノード100aはスリープモードから起動し、通常モードでの動作を開始する。
【0085】
このようにすべてのスリープノードが通常モードに移行してしまうと、ネットワーク全体としての消費電力が増加する。ところが、輻輳発生の抑制には、該当リンクを経由するフローの一部だけを、別経路に負荷分散すれば十分な場合もある。例えば、図8に示すリンク「ED」で輻輳発生の可能性が検出された場合において、エッジノード200のみが負荷分散を行えば、輻輳の発生を抑制可能な場合も考えられる。例えば、エッジノード200においてフロー「AD」のトラフィックの多くを経路「ACD」へ振り向けることができれば、フロー「BD」のトラフィックは経路「BED」に集約したままでも、リンク「ED」の輻輳は回避可能な場合があり得る。この場合、スリープノードである中継ノード100aは、スリープモードのままでよく、低消費電力化が図られる。なお、エッジノード200bは、フロー「CD」があることにより既に起動しており、経路「ACD」へトラフィックを流入させても、スリープノードを通常モードに移行させる場合に比べ、消費電力の増加は少なくてすむ。
【0086】
しかも、エッジノード200においてアラーム情報を受信した際に、既知の経路すべてのトラフィックを分散させるのではなく、一部の経路のみを分散先とすれば、さらに省電力化を図ることができる。例えば、図8の例では、エッジノード200がフロー「AD」のトラフィックを分散させる際に、既知のすべての経路である経路「AED」、経路「ACD」、経路「AGD」それぞれにトラフィックを分散させてしまうと、中継ノード100bが通常モードに移行する。その結果、消費電力が増加する。そこで、エッジノード200がアラーム情報を受信した場合であっても、分散先の経路を経路「ACD」のみに限定すれば、中継ノード100bをスリープモードのまま維持できる。
【0087】
そこで、第2の実施の形態では、輻輳発生の可能性が検出された場合であっても、できるだけスリープノードを起動させずにすむように輻輳制御を行う。以下、このような輻輳制御を実現するための機能および処理内容について、詳細に説明する。なお、第2の実施の形態では、以下のように情報を定義する。
【0088】
〔リンク容量〕リンク容量は、リンクを通すことのできるトラフィックの最大量である。
〔リンク利用率〕リンク利用率は、リンクを流れるトラフィック量をリンク容量で除算した値である。
【0089】
〔リンク目標容量〕リンク目標容量は、輻輳を起こさないように(最大リンク容量から余裕をもって)、リンクのトラフィック量がこの値を超えない様に制御する目標値である。
【0090】
〔Target値〕Target値は、リンク目標容量をリンク容量で除算した値である。リンク利用率がTarget値を超えないように、各ルータの連係動作によってトラフィックの分散制御が実行される。
【0091】
〔Control値〕リンク利用率がTarget値を超えないように保つためには、トラフィック増加に伴って上昇するリンク利用率がTarget値に近づいた手前の時点で輻輳抑止の制御を開始する必要がある。Control値は、輻輳制御を開始する閾値を決めるための数値である。
【0092】
〔制御開始閾値〕制御開始閾値は、輻輳制御を開始する基準となるリンク利用率の閾値である。例えば、Control値とTarget値を用いて、以下の式により輻輳制御を開始する閾値が決められる。
制御開始閾値=Target値−Control値 ・・・(1)
〔偏差〕偏差は、Target値とリンク利用率との差である。偏差は、以下の式で算出される。
偏差=Target値−リンク利用率 ・・・(2)
これらの情報を用いて、輻輳制御が行われる。輻輳制御では、輻輳の予兆の検出や、輻輳抑制のためのアラーム情報の通知の継続判断などが行われる。そのために、各フローの入口ノードにおいて、所定周期ごとに、そのノードを入口ノードとするフローのトラフィック量が計測される。また、各ノードでは、計測されたトラフィック量に基づいて、各ノードにおいて各リンクのリンク利用率が計算される。そして、「リンク利用率>制御開始閾値(=Target値−Control値)」という条件が満たされるとき、条件を満たしたリンクにおいて輻輳発生の予兆があると判断される。このとき、条件を満たしたリンクが、制御対象リンクとされる。
【0093】
輻輳発生の予兆が検出されると、検出したノードにおいて、制御対象リンクに関する輻輳制御が開始される。輻輳発生の予兆を検出したノードは、アラーム情報を作成して制御パケットとして、制御対象リンクを通る各トラフィックの入口ノード宛へ経路を逆に辿るように送り出す。アラーム情報は、制御対象リンクを通るトラフィックの入口ノードにおいて、そのトラフィックの分散経路候補の募集通知とみなされる。ここで、リンク利用率が輻輳制御の制御開始閾値を下回らない限り、定期的にアラーム情報が送信される。
【0094】
図9は、リンク利用率とアラーム情報送信との関係を示す図である。図9では、横軸に時間、縦軸にリンク利用率を示している。図9の例では、徐々にリンク利用率が上昇し、輻輳制御が開始されている。輻輳制御が開始されたことでアラーム情報が送信される。輻輳制御が開始されると、徐々にリンク利用率の上昇傾向が緩やかになり、しばらく経つとリンク利用率が低下する。リンク利用率が制御開始閾値以下になると、輻輳制御が終了する。すなわち、定期的なアラーム情報の送信が終了する。
【0095】
ここでTarget値は、輻輳を発生させないためにリンク利用率の目標値として定めた値である。本実施の形態では輻輳制御において、徐々に分散するトラフィック量を増やすため、輻輳制御の開始と同時にリンク利用率が急減するわけではない。そのため、Target値よりもControl値分低い値を制御開始閾値とし、リンク利用率が制御開始閾値を超えた時点で輻輳制御を開始する。これにより、リンク利用率が上昇傾向にあっても、リンク利用率をTarget値付近で抑えることができる。
【0096】
ここで、Target値とリンク利用率との差が偏差である。偏差は、アラーム値(規制率)の算出に使用される。例えば、偏差の増加度合いが大きい程、アラーム値が大きくなる。アラーム値は、アラーム情報に含められ、入口ノードでの分散の度合いを決定するのに利用される。例えばアラーム値は、対象経路への現在のトラフィックの送出確率に対する振り分け後の送出確率の比率である。
【0097】
各フローの入口ノードは、アラーム情報に対して分散経路の候補を応答するために、予め経路状態情報収集処理を行う。経路状態情報収集処理は、特定のフローの入口ノードが、そのフローの各経路上のリンクやルータの状態を収集する処理である。入口ノードは、経路状態情報収集処理を実行することで、各出口ノード宛フローの(複数の)経路とその状態を管理できる。例えば入口ノードは、定期的に、状態収集パケットを各経路に沿って送出する。状態収集パケットは、経路上のルータで転送されるごとに、スリープノード数、経路空き容量、消費電力パラメータなどの情報が更新される。そして、状態収集パケットは、出口ノードに到達すると、出口ノードから入口ノードに送り返される。これにより、入口ノードにおいて、各経路のスリープノード数、経路空き容量、消費電力パラメータ集計が可能となる。状態収集パケットを用いて収集される情報の内容は以下の通りである。
【0098】
〔経路空き容量〕経路空き容量は、その経路にあとどれぐらいのトラフィックを転送することができるかを示す値である。経路の空き容量は、経路上の各リンクの空き容量に基づいて決定される。リンクの空き容量は以下の式で計算される。
リンクの空き容量=リンク容量×Target値−リンクトラフィック量 ・・・(3)
なお、上記式によるリンクの空き容量の値が負になる時は、リンクの空き容量=0とされる。また、経路上の各リンクの空き容量のうちの最小値が、経路空き容量となる。なお、リンクを複数のフローの経路が共有する可能性がある。その場合、リンクの空き容量は複数のフローの経路の空き容量として重複して使われる。そのため、この計算による経路の空き容量は、あくまで状態収集時点での目安量であって、必ずその量が保証されている(つまりその分だけその経路にトラフィックを増やしても輻輳が発生しない)という訳ではない。
【0099】
〔経路の消費電力パラメータ〕経路の消費電力パラメータは、単位トラフィック量の増加に対する経路上の全ノードでの消費電力増加量を示す値である。経路の消費電力パラメータは、経路上の各ノードの消費電力パラメータに基づいて決定される。ノードの消費電力パラメータは、単位トラフィック量分のトラフィックの増加に対する該当ノードの消費電力増加量である。経路上の各中継ノードの消費電力パラメータの和が、経路の消費電力パラメータとなる。
【0100】
なお、経路上の全ノードの消費電力パラメータが総トラフィック量に関係なく一定であれば、経路の消費電力パラメータは、一回だけ収集すればよい。経路上の少なくとも1つのノードの消費電力パラメータが総トラフィック量の影響を受けて変動する場合は、状態収集パケットが転送されるごとに、経路の消費電力パラメータが収集される。
【0101】
〔スリープノード数〕スリープノード数は、経路上のスリープモードの状態の中継ノードの数である。なお、スリープノード数を収集せずに、各スリープノードの起動状態になる消費電力増加量の和に加えることも可能である。この場合、分散経路を決定する際に、スリープノード数による判定は行われないこととなる。ただし、スリープ状態から起動状態に移行する際の電力増加量は、処理トラフィック増による増加分より遥かに大きい固定量である。そのため第2の実施の形態では、消費電力パラメータとは別に、スリープノード数を収集し、分散経路の判定においては、スリープノード数による判定結果を、消費電力パラメータによる判定結果に優先する。
【0102】
次に、経路状態情報収集処理と輻輳発生の予兆検出時の輻輳制御との実行に用いられる各ルータの機能について説明する。
図10は、中継ノードの機能を示すブロック図である。中継ノード100は、フロー情報記憶部110、リンク情報記憶部120、経路状態通知部130、輻輳検出部140、分散制御部150、パケット中継部160、およびスリープ制御部170を有している。
【0103】
フロー情報記憶部110は、中継ノード100を経由するトラフィックの転送に使用するフローに関する情報(フロー情報)を記憶する。例えば、RAM102やHDD103の記憶領域の一部が、フロー情報記憶部110として使用される。フロー情報記憶部110に格納されるフロー情報には、中継ノード100を経由して転送されるフローに関する経路情報や、その経路のトラフィックの量に関する情報などが含まれる。
【0104】
リンク情報記憶部120は、中継ノード100と他のルータとの間のリンクに関する情報を記憶する。例えば、RAM102やHDD103の記憶領域の一部が、リンク情報記憶部120として使用される。リンク情報記憶部120には、例えば、リンクごとのトラフィック量などの情報が格納される。
【0105】
経路状態通知部130は、特定の経路に関する状態収集パケットを受信すると、その状態収集パケットの内容を更新する。例えば経路状態通知部130は、自身がスリープノードであれば、状態収集パケットに含まれるスリープノード数を示す情報をカウントアップする。また経路状態通知部130は、転送するトラフィック量に応じた中継ノード100の消費電力パラメータを、状態収集パケットに含まれる経路の消費電力パラメータに加算する。さらに、経路状態通知部130は、状態収集パケットに示される経路の次のノードへのリンクの空き容量を算出する。経路状態通知部130は、算出したリンクの空き容量と状態収集パケットに示される経路空き容量とを比較する。リンクの空き容量の方が少なければ、算出したリンクの空き容量の値を、新たな経路空き容量として状態収集パケットに設定する。そして経路状態通知部130は、状態収集パケットに示される経路における次ノードへ、内容更新後の状態収集パケットを転送する。
【0106】
輻輳検出部140は、中継ノード100と他のノードとの間のリンクに関するトラフィックを計測し、輻輳発生の予兆を検出する。例えば、リンク利用率が輻輳制御の制御開始閾値よりも大きくなると、輻輳検出部140において輻輳発生の予兆有りと判断される。また輻輳検出部140は、トラフィックの計測結果に応じて、フロー情報記憶部110内のフロー情報やリンク情報記憶部120内のリンク情報を更新する。例えば、輻輳検出部140は、リンクのトラフィック量を計測すると、フロー情報におけるフローごとのトラフィック計測値などの情報を更新する。また、輻輳検出部140は、リンクのトラフィック量を計測すると、リンク情報におけるリンクのトラフィック量、リンク利用率、偏差などの情報を更新する。
【0107】
分散制御部150は、特定のリンクにおいて輻輳発生の予兆を検出すると、そのリンク(制御対象リンク)を通る経路を有するフローのうちの少なくとも一部に関し、トラフィックを別の経路へ分散することを決定する。例えば分散制御部150は、特定のリンクにおいて輻輳発生の予兆を検出すると、該当リンクを通る経路上を入口ノード方向にアラーム情報を送信する。このアラーム情報は、分散経路候補募集の意味を有している。そのため、アラーム情報を受け取った入口ノードから、分散経路候補情報が送り返される。分散制御部150は、取得した分散経路候補情報の中から、トラフィックを分散させることによる消費電力の増加が少ない経路を優先的に選択し、分散先経路に決定する。そして、分散制御部150は、決定した分散先経路の入口ノードに対して、分散先経路へのトラフィックの分散を指示する。
【0108】
パケット中継部160は、隣接する他のノードから送られたパケットを中継する。パケット中継部160は、パケットを中継する際には、フロー情報記憶部110を参照し、パケットの宛先が出口ノードとなる経路情報を抽出する。そして、パケット中継部160は、抽出した経路情報において、中継ノード100の次のノードにパケットを転送する。ただしパケット中継部160は、制御パケットについては、その制御パケット内で指定された経路で転送する。制御パケットには、状態収集パケット、アラーム情報を含むパケット、入札メッセージを含むパケット、分散要求を含むパケットなどがある。
【0109】
スリープ制御部170は、中継ノード100のスリープモードへの移行、およびスリープモードから通常モードへの復帰を制御する。例えば、スリープ制御部170は、一定期間、制御パケット以外のトラフィックの流入が途絶えた場合、中継ノード100をスリープモードに移行させる。スリープモードに移行させた場合、スリープ制御部170は、例えば、輻輳検出部140、分散制御部150、パケット中継部160を停止することで、消費電力を低下させる。なお、経路状態通知部130については、スリープモードに移行しても動作を継続させる。またスリープ制御部170は、スリープモードで動作中に制御パケット以外のパケットが入力されると、中継ノード100を通常モードに移行させる。通常モードに移行する場合、例えば輻輳検出部140、分散制御部150、パケット中継部160の全機能が起動される。
【0110】
なおスリープ制御部170は、現在の動作モードを示すフラグを保持している。そのフラグは、例えばRAM102内に格納される。経路状態通知部130などの他の要素は、スリープ制御部170が保持しているフラグを参照して、現在の動作モードを認識できる。
【0111】
図11は、フロー情報記憶部のデータ構造例を示す図である。図11の例では、フロー情報記憶部110にフロー管理テーブル111が格納されている。フロー管理テーブル111には、フローID、入口ノード、経路情報、入口ポート、出口ポート、フローのトラフィック計測値、および前回のフローのトラフィック計測値の欄が設けられている。フロー管理テーブル111内の横方向に並べられた情報が互いに関連付けられている。互いに関連付けられた情報を含むレコードが、1つのフロー情報となる。
【0112】
フローIDの欄には、中継ノード100を経由する経路を有するフローの識別情報(フローID)が設定される。フローIDは、フローの入口ノードのノードIDと出口ノードのノードIDとの組で表される。例えば、エッジノード200(ノードID:A)に入力され、エッジノード200c(ノードID:D)から出力されるフローのフローIDは「AD」となる。
【0113】
入口ノードの欄には、フローの入口ノードのノードIDが設定される。
経路情報の欄には、フローのトラフィックを転送するために予め設定された経路の情報(経路情報)が設定される。中継ノード100が有するフロー管理テーブル111には、中継ノード100を含む経路の経路情報が設定される。経路情報には、トラフィックを中継するノードのノードIDが、入口ノードに近い順に左から並べられている。
【0114】
入口ポートの欄には、経路情報における前のノードとの間のリンクに接続された中継ノード100の通信ポートのポートIDが設定される。
出口ポートの欄には、経路情報における次のノードとの間のリンクに接続された中継ノード100の通信ポートのポートIDが設定される。
【0115】
フローのトラフィック計測値の欄には、経路情報で示される経路における中継ノード100と次のノードとの間の対応するフローに関するトラフィック(トラフィック計測値)が設定される。トラフィック計測値は、例えば、一定間隔(トラフィック計測周期)ごとに、その一定時間内に流れるフローごとの各パケットのデータ長を合計した値である。
【0116】
前回のフローのトラフィック計測値の欄には、最近のトラフィック計測値の前のトラフィック計測によって得られた各フローのトラフィック計測値が設定される。
フロー情報のうち、フローID、入口ノード、経路情報、入口ポート、および出口ポートの欄の情報は、システムの管理者によって予め設定される。またフローのトラフィック計測値、前回のフローのトラフィック計測値の欄の情報は、輻輳検出部140がリンクのトラフィックを計測するごとに、輻輳検出部140によって更新される。
【0117】
図12は、リンク情報記憶部のデータ構造例を示す図である。図12の例では、リンク情報記憶部120には、リンク情報管理テーブル121が格納されている。リンク情報管理テーブル121には、ポート番号、リンク容量、Target値、Control値、リンクのトラフィック量、リンク利用率、偏差、前回リンク利用率、前回偏差、輻輳制御フラグ、アラーム値、および前回アラーム値の欄が設けられている。リンク情報管理テーブル121内の横方向に並べられた情報が互いに関連付けられている。互いに関連付けられた情報を含むレコードが、1つのリンク情報となる。
【0118】
ポート番号の欄には、中継ノード100の通信ポートのポート番号が設定される。
リンク容量の欄には、通信ポートを介した通信の単位時間当たりの最大通信容量(バンド幅)が、基準値の倍数で示される。第2の実施の形態では、各通信ポートのバンド幅が同じであるため、各通信ポートのバンド幅を単位容量とし、リンク容量として「1」が設定されている。
【0119】
Target値の欄には、リンクごとのTarget値が設定されている。Target値は、リンク容量設定の際の単位容量に対する比率で示される。例えば、ポート番号「#4」に対応するリンクのTarget値は「0.8」である。
【0120】
Control値の欄には、リンクごとのControl値が設定されている。Control値は、リンク容量に対する比率で示される。図12の例では、すべてのリンクのControl値として「0.1」が設定されている。
【0121】
リンクのトラフィック量の欄には、各リンクについて最近測定したトラフィック量が設定される。リンクのトラフィック量は、リンク容量設定の際の単位容量に対する比率で示される。トラフィック量が「0」の通信ポートは、送出しているトラフィックがないことを示している。
【0122】
リンク利用率の欄には、最近測定した各リンクのリンク利用率が設定されている。なお図12の例では、各通信ポートのバンド幅を単位容量とし、リンク容量が「1」となっているため、リンクのトラフィック量とリンク利用率とは同じ値となる。
【0123】
偏差の欄には、最近測定した各リンクの偏差が設定される。
前回リンク利用率の欄には、最近の測定の1回前に測定した各リンクのリンク利用率が設定されている。
【0124】
前回偏差の欄には、最近の測定の1回前に測定した各リンクの偏差が設定されている。
輻輳制御フラグの欄には、輻輳の予兆を検出した場合に、輻輳制御フラグが設定される。
【0125】
アラーム値の欄には、輻輳の予兆を検出した場合に、直前のアラーム情報の送信時に計算されたアラーム値が設定される。
前回アラーム値の欄には、直前のアラーム情報の送信の前のアラーム送信時に計算されたアラーム値が設定される。
【0126】
リンク情報のうち、ポート番号、リンク容量、Target値、およびControl値の欄の情報は、システムの管理者によって予め設定される。リンク情報のうち、リンク利用率、偏差、前回リンク利用率、および前回偏差の欄の情報は、輻輳検出部140がリンクのトラフィックを計測するごとに、輻輳検出部140によって更新される。リンク情報のうち、輻輳制御フラグ、アラーム値、および前回アラーム値の欄の情報は、輻輳制御が行われているときに、輻輳検出部140によって更新される。
【0127】
図13は、エッジノードの機能を示すブロック図である。エッジノード200には、フロー情報記憶部211、リンク情報記憶部212、経路状態通知部213、輻輳検出部214、分散制御部215、パケット中継部216、スリープ制御部217、経路状態情報記憶部220、経路状態情報収集部230、入札処理部240、および送出確率変更部250を有している。このうちフロー情報記憶部211、リンク情報記憶部212、経路状態通知部213、輻輳検出部214、および分散制御部215については、エッジノード200が中継ノードと同様にトラフィックを中継するのに用いられる機能である。従って、フロー情報記憶部211、リンク情報記憶部212、経路状態通知部213、輻輳検出部214、分散制御部215、パケット中継部216、スリープ制御部217は、図10に示した中継ノード100内の同名の要素と同様の機能を有している。ただし、パケット中継部216は、エッジノード200が入口ノードとなるフローについては、経路状態情報記憶部220に設定されている送出確率に従って、該当フローに設定された経路にトラフィックを振り分ける。またパケット中継部216は、エッジノード200が入口ノードとなるフローの経路ごとのトラフィック量を定期的に計測し、経路状態情報記憶部220に設定する。
【0128】
経路状態情報記憶部220は、エッジノード200を入口ノードとするフローの経路の状態に関する情報(経路状態情報)を記憶する。例えばエッジノード200のRAMやHDDの記憶領域の一部が経路状態情報記憶部220として使用される。
【0129】
経路状態情報収集部230は、経路状態情報を定期的に収集する。例えば経路状態情報収集部230は、制御パケットの一種である状態収集パケットを、予め設定されている経路に沿って出口ノード宛に送信する。状態収集パケットは、出口ノードに到達すると、収集結果がエッジノード200に送り返される。また状態収集パケットは各ノードで転送されるごとに内部の情報が更新され、エッジノード200に送り返される収集結果には、経路の最新の状態を示す情報が設定される。経路状態情報収集部230は、収集した経路状態情報を経路状態情報記憶部220に格納する。
【0130】
入札処理部240は、トラフィックを中継するノード(中継ノードまたはエッジノード)からアラーム情報が入力されると、分散経路の候補を示す情報(分散経路候補情報)を作成して、アラーム情報の送信元のノードで送信する。分散経路の候補は、アラームが発生したフローの経路のうち、アラーム情報の送信元のノードを経由しない経路から選択される。
【0131】
送出確率変更部250は、特定のフローに関する負荷分散要求を受け取ると、特定のフローのトラフィックの一部を負荷分散要求に示される分散対象経路へ分散させる。分散させるトラフィックの量は、負荷分散要求に示されるアラーム値によって決定される。
【0132】
図14は、ノードID「A」のエッジノードの経路状態情報記憶部のデータ構造例を示す図である。経路状態情報記憶部220には、経路管理テーブル221が格納されている。経路管理テーブル221には、フローID、経路、スリープノード数、送出確率、経路空き容量、経路消費電力パラメータ、受信アラーム値、およびフローのトラフィック値の欄が設けられている。経路管理テーブル221内の横方向に並べられた情報が互いに関連付けられている。互いに関連付けられた情報を含むレコードが、1つの経路状態情報となる。
【0133】
フローIDの欄には、エッジノード200を入口ノードとするフローのフローIDが設定される。
経路の欄には、エッジノード200を入口ノードとするフローにおけるトラフィックの経路が設定される。
【0134】
スリープノード数の欄には、経路上の中継ノードのうちのスリープノードの数が設定される。
送出確率の欄には、フローにおけるトラフィックの対応する経路への送出確率が設定される。図14の例では、経路「ACD」及び経路「AGD」に対する送出確率が「0.0」であり、経路「AED」に対する送出確率が「1.0」である。これは、フローID「AD」で示されるフローのトラフィックが、経路「AED」に集約されていることを示している。
【0135】
経路空き容量の欄には、対応する経路空き容量が設定される。
経路消費電力パラメータの欄には、対応する経路の消費電力パラメータが設定される。
受信アラーム値の欄には、対応する経路でアラームが発生したときに受信したアラーム値が設定される。
【0136】
フローのトラフィック値の欄には、エッジノード200で該当経路に振り分けたトラフィック量が設定される。
経路状態情報のうち、フローIDと経路との欄に設定される情報は、システムの管理者によって予め設定される。経路状態情報のうち、スリープノード数、経路空き容量、経路消費電力パラメータについては、経路状態情報収集部230が経路状態情報収集処理を行うごとに経路状態情報収集部230によって更新される。経路状態情報のうち送出確率については、送出確率変更部250が送出確率を計算するごとに送出確率変更部250によって更新される。経路状態情報のうちフローのトラフィック値については、パケット中継部216が単位時間当たりの各フローの経路ごとのトラフィック量を計測するごとに、パケット中継部216によって更新される。なおパケット中継部216は、定期的にフローの経路ごとのトラフィック量を計測する。
【0137】
次に、経路状態情報収集処理について詳細に説明する。
図15は、経路状態情報収集処理の一例を示す図である。図15の例では、エッジノード200cを出口ノードとする3つのフローに関する経路状態情報収集処理が示されている。1つのフローの入口ノードは、エッジノード200である。他の1つのフローの入口ノードはエッジノード200aである。また、もう1つのフローの入口ノードはエッジノード200bである。
【0138】
図15では、エッジノード200cを出口ノードとする3つのフローのトラフィックを、実線の矢印で示している。エッジノード200には、エッジノード200cを出口ノードとするフローに対して、3つの経路が登録されている。1つの経路は、エッジノード200bのみを経由する。他の1つの経路は、中継ノード100のみを経由する。もう1つの経路は中継ノード100bのみを経由する。エッジノード200aには、エッジノード200cを出口ノードとするフローに対して、2つの経路が登録されている。1つの経路は、中継ノード100のみを経由する。他の1つの経路は、中継ノード100aのみを経由する。エッジノード200bには、エッジノード200cを出口ノードとするフローに対して、他のノードを経由しない1つの経路のみが登録されている。
【0139】
入口ノードとなる各エッジノード200,200a,200bは、エッジノード200cを出口ノードとするフローに設定されている各経路を介して、状態収集パケット31〜36を出力する。例えば状態収集パケット31〜36には、状態情報パケットであることを示す識別子、および状態情報の収集対象となる経路の情報が含まれる。またエッジノード200,200a,200bから送出直後の状態収集パケット31〜36には、収集すべき各種情報が初期状態で含められている。図15では、状態収集パケット31〜36が転送される経路を、点線の矢印で示している。例えば、エッジノード200から出力された状態収集パケット31は、中継ノード100を経由してエッジノード200cに転送される。中継ノード200は、状態収集パケット31を転送する際には、状態収集パケット31内の情報を更新する。エッジノード200cは、自身が、状態収集パケットで経路状態情報を収集すべき経路における出口ノードであることを認識し、状態収集パケット31による収集結果をエッジノード200に送り返す。
【0140】
各エッジノード200,200a,200bは、自己の認識している経路に沿って状態収集パケット31〜36を、定期的に送信する。その結果、エッジノード200,200a,200bで経路状態情報が定期的に取得される。経路状態情報には、経路の空き容量、経路の消費電力パラメータ、スリープノード数などが含まれる。各エッジノード200,200a,200bは、取得した状態収集パケット31〜36に基づいて、自己の管理する経路状態情報を更新する。
【0141】
ここで、経路「AED」と経路「BED」とについて着目し、経路空き容量の計算例について説明する。
図16は、経路「AED」と経路「BED」との経路空き容量計算例を示す図である。経路「AED」と経路「BED」との両方の経路上に配置された中継ノード100は、出力ポートごとのリンクのトラフィック量を計測している。図16の例では、ポート番号「#1」の通信ポートがエッジノード200に接続されている。ポート番号「#2」の通信ポートがエッジノード200aに接続されている。ポート番号「#3」の通信ポートがエッジノード200bに接続されている。ポート番号「#4」の通信ポートがエッジノード200cに接続されている。ポート番号「#5」の通信ポートが中継ノード100aに接続されている。
【0142】
ここで、リンクのトラフィック量は、そのリンクを通過するフローのトラフィック量の和である。このトラフィック量は、中継ノード100の輻輳検出部140がトラフィック計測周期ごとに、単位時間内に流れるフローごとのパケット数とデータ長とを集計することにより測定される。図16の例では、フロー「AD」のトラフィック量が「0.3」であり、すべてのトラフィックが経路「AED」に集約されている。また、フロー「BD」のトラフィック量が「0.4」であり、すべてのトラフィックが経路「BED」に集約されている。すると、中継ノード100におけるポート番号「#4」の通信ポートを出力ポートとするリンクのトラフィック量は、「0.7=0.3+0.4」となる。
【0143】
図16の例では、中継ノード100において、ポート番号「#4」の通信ポートを出力ポートとするリンクのTarget値が「0.8」に設定されている。この場合、ポート番号「#4」の通信ポートを出力ポートとするリンクの空き容量は「0.1=0.8−0.7」となる。ネットワーク10上に図示した以外のフローが存在していない場合、経路「AED」と経路「BED」とのそれぞれの状態収集パケットは、共に中継ノード100において経路空き容量が「0.1」に更新される。このようにして更新された状態収集パケットの収集結果が、各エッジノード200,200aに送信され、経路状態情報が更新される。例えば、エッジノード200の経路状態情報は、図14に示した通りの内容となる。また、エッジノード200aが管理する経路状態情報は、図17に示す通りの内容となる。
【0144】
図17は、ノードID「B」のエッジノードの経路状態情報記憶部のデータ構造例を示す図である。エッジノード200aが有する経路状態情報記憶部220aには、図14と同様のデータ構造の経路管理テーブル221aが格納されている。この経路管理テーブル221aには、エッジノード200aを入口ノードとするフローの経路状態情報が登録されている。
【0145】
このような経路状態情報収集処理は、入口ノードであるエッジノードの経路状態情報収集部と、経路上の他のノードの経路状態通知部との連携処理である。
図18は、入口ノードでの経路状態情報収集処理の手順を示すフローチャートである。図18には、1つの経路に対する処理手順が示されている。すなわち、図18に示した処理が、経路管理テーブルに登録されている経路状態情報に示される経路ごとに個別に実行される。以下、図18に示す処理をステップ番号に沿って説明する。
【0146】
[ステップS11]経路状態情報収集部230は、状態収集パケットを送信する。状態収集パケットは制御パケットの一種であり、転送の経路がパケット内に指定されている。状態収集パケットの伝送経路は、経路状態情報収集の対象となる経路(経路管理テーブルの経路の欄に示される経路)である。また、生成された状態収集パケットには、スリープノード数、経路空き容量、消費電力パラメータの初期値が設定されている。スリープノード数の初期値は、例えば「0」である。経路空き容量の初期値は、例えば「1」である。消費電力パラメータの初期値は、例えば「0」である。
【0147】
[ステップS12]経路状態情報収集部230は、経路状態情報の収集結果を受信したか否かを判断する。収集結果を受信した場合、処理がステップS13に進められる。収集結果を受信していなければステップS12の処理が繰り返され、収集結果の受信待ち状態となる。
【0148】
[ステップS13]経路状態情報収集部230は、受信した収集結果に基づいて、経路状態情報記憶部220内の該当する経路の経路状態情報を更新する。
[ステップS14]経路状態情報収集部230は、予め設定された経路状態情報収集周期だけ待機する。ステップS13の処理が終了してから経路状態情報収集周期が経過すると、処理がステップS11に進められる。
【0149】
このようにして、入口ノードにおいて定期的な経路状態情報の収集処理が行われる。次に、状態収集パケットを受信したノードで実行される経路状態情報通知処理について説明する。
【0150】
図19は、経路状態情報通知処理の手順を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
[ステップS21]経路状態通知部130は、状態収集パケットを受信すると、その状態収集パケットに示される経路において、中継ノード100自身が出口ノードとなる経路か否かを判断する。出口ノードであれば、処理がステップS22に進められる。出口ノードでなければ処理がステップS23に進められる。
【0151】
[ステップS22]経路状態通知部130は、状態収集パケットに示される経路の入口ノードへ、収集結果を送信する。収集結果は、制御パケットに含めて送信される。その後、経路状態情報通知処理が終了する。
【0152】
なお図19のフローチャートは、中継ノードとエッジノードとのいずれの経路状態通知部でも同様の処理を実行することを前提としている。そのため、中継ノード100の経路状態通知部130においてもステップS21,S22のような出口ノードにおける処理が含まれている。ただし、第2の実施の形態では中継ノードは出口ノードとはならない。そのため、中継ノード内の経路状態通知部130においては、ステップS21,S22の処理を行わなくてもよい。
【0153】
[ステップS23]経路状態通知部130は、自身が出口ノードでなければ、スリープノードか否かを判断する。例えば経路状態通知部130は、スリープ制御部170が保持しているフラグを参照し、動作モードがスリープモードか否かを判断する。動作モードがスリープモードであれば、経路状態通知部130は、中継ノード100がスリープノードであると判断する。スリープノードであれば、処理がステップS24に進められる。スリープノードでなければ、処理がステップS25に進められる。
【0154】
[ステップS24]経路状態通知部130は、中継ノード100がスリープノードであれば、状態収集パケットに含まれるスリープノード数の値に「1」を加算する。
[ステップS25]経路状態通知部130は、経路の次のノードへのリンクの空き容量を計算する。例えば経路状態通知部130は、状態収集パケットに示される経路(対象経路)に基づいて、中継ノード100の次となるノードを判断する。次に、経路状態通知部130は、フロー情報記憶部110内の対象経路に対応するフロー情報を参照し、出口ポートを判断する。さらに経路状態通知部130は、リンク情報記憶部120内の対象経路の出口ポートに対応するリンク情報を参照し、リンク容量、Target値、およびリンクのトラフィック量を抽出する。そして、経路状態通知部130は、「リンク容量×Target値−リンクトラフィック量」の計算結果を、リンクの空き容量とする。
【0155】
[ステップS26]経路状態通知部130は、状態収集パケットをこれまで転送したノードで算出されたリンクの空き容量のなかで、ステップS25で算出したリンクの空き容量が最も少ないか否かを判断する。例えば経路状態通知部130は、状態収集パケットに含まれる経路空き容量と、算出したリンクの空き容量とを比較する。リンク空き容量の方が少なければ、算出したリンクの空き容量がこれまでで最も少ないと判断される。算出したリンクの空き容量がこれまでで最も少ない場合、処理がステップS27に進められる。そうでなければ、処理がステップS28に進められる。
【0156】
[ステップS27]経路状態通知部130は、状態収集パケットに含まれている経路空き容量の値を、ステップS25で算出したリンク空き容量の値に更新する。その後、処理がステップS28に進められる。
【0157】
[ステップS28]経路状態通知部130は、状態収集パケットに含まれている消費電力パラメータを更新する。例えば経路状態通知部130は、中継ノード100の消費電力パラメータの値を、状態収集パケットに含まれている消費電力パラメータの値に加算する。
【0158】
[ステップS29]経路状態通知部130は、経路上の次のノードへ状態収集パケットを転送する。その後、処理が終了する。
以上のようにして、入口ノードと他のノードとの連携動作により、入口ノードにおいて経路状態情報が収集される。そして、経路状態情報の収集が定期的に行われることで、入口ノードにおける経路状態情報記憶部内の経路状態情報が、随時最新の情報に更新される。
【0159】
次に、輻輳検出処理について説明する。
図20は、輻輳の予兆発生例を示す図である。図20の例では、フロー「BD」のトラフィック量が「0.4」から「0.6」に増加している。すると、中継ノード100のノード番号「#4」の通信ポートを出力ポートとするリンクにおいて、リンクのトラフィック量が「0.9」となる。ここで中継ノード100において、ノード番号「#4」の通信ポートを出力ポートとするリンクのTarget値が「0.8」、Control値が「0.1」であるものとする。この場合、制御開始閾値は「0.7=0.8−0.1」である。すると、リンクのトラフィック量が制御開始閾値より大きくなっている。中継ノード100では、輻輳検出部140がリンクのトラフィック量が制御開始閾値を超えたことを検出し、輻輳制御を開始する。
【0160】
図21は、輻輳検出処理の手順の一例を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。
[ステップS31]輻輳検出部140は、中継ノード100を経由する各フローの単位時間当たりの通過データ量を計測する。これにより、各フローのトラフィック量が得られる。輻輳検出部140は、算出したフローのトラフィック量を、各フローのトラフィック計測値としてフロー情報記憶部110内に新たに格納する。この際、輻輳検出部140は、新たに計測したトラフィック計測値の登録以前に、フローのトラフィック計測値として設定されていた値を、前回のフローのトラフィック計測値としてフロー情報記憶部110に格納する。
【0161】
[ステップS32]輻輳検出部140は、中継ノード100と他のノードとの間の各リンクを処理対象リンクとし、処理対象リンクごとに、ステップS33〜ステップS36の処理を実行する。
【0162】
[ステップS33]輻輳検出部140は、リンクのトラフィック量、リンク利用率、および偏差を計算する。例えば輻輳検出部140は、フロー情報記憶部110内の各フローの出力ポートを参照し、処理対象リンクを通過するフローを判断する。次に輻輳検出部140は、処理対象リンクを通過するフローのトラフィック量の和を求める。算出された和が、処理対象リンクのトラフィック量となる。さらに輻輳検出部140は、リンクのトラフィック量をリンク容量で除算し、リンク利用率を求める。また輻輳検出部140は、Target値からリンク利用率を減算し、偏差を求める。
【0163】
輻輳検出部140は、算出したリンクのトラフィック量、リンクの利用率、および偏差を、リンク情報記憶部120に格納する。この際、輻輳検出部140は、新たに算出したリンク利用率および偏差の登録前に該当項目に格納されていた情報を、それぞれ前回リンク利用率、前回偏差としてリンク情報記憶部120に格納する。
【0164】
[ステップS34]輻輳検出部140は、処理対象リンクのリンク利用率が、輻輳制御の制御開始閾値を超えているか否かを判断する。リンク利用率が制御開始閾値を超えていれば、処理がステップS36に進められる。制御開始閾値を超えていなければ、処理がステップS35に進められる。
【0165】
[ステップS35]輻輳検出部140は、リンク利用率が制御開始閾値を超えていなければ、輻輳制御フラグをリセットする。例えば、輻輳制御フラグが「1」のとき輻輳制御実行中を示し、「0」のとき輻輳制御を実行していないことを示す場合、輻輳検出部140は輻輳制御フラグを「0」にセットする。なお、ステップS35の処理以前から輻輳制御フラグがセットされていない場合には、リセットの処理を行わなくてもよい。その後、処理がステップS37に進められる。
【0166】
[ステップS36]輻輳検出部140は、リンク利用率が制御開始閾値を超えていれば、輻輳制御処理を実行する。この処理の詳細は後述する(図26参照)。その後、処理がステップS37に進められる。
【0167】
[ステップS37]輻輳検出部140は、すべてのリンクに対してステップS33〜ステップS36の処理が完了すると、処理をステップS38に進める。
[ステップS38]輻輳検出部140は、トラフィック計測周期の時間だけ待機し、処理をステップS31進める。
【0168】
このような処理により、定期的にフローのトラフィックが計測され、フロー情報記憶部110内のフロー情報が更新される。
図22は、フロー情報更新後のフロー情報記憶部の例を示す図である。図22には、図20に示した各フローのトラフィックの計測結果が反映されている。図11と比較すると分かるように、フローID「BD」のフロー情報に関して、フローのトラフィック計測値と前回のフローのトラフィック計測値とが更新されている。フローのトラフィック計測値は「0.4」から「0.6」に変更されている。前回のフローのトラフィック計測値は「0.3」から「0.4」に変更されている。
【0169】
また、リンクのトラフィック量が計測されることで、リンク情報記憶部120内のリンク情報が更新される。この際、リンク利用率が制御開始閾値を超えたリンクを含むフローに関するリンク情報には、輻輳制御フラグが立てられ、アラーム値が設定される。
【0170】
図23は、リンク情報更新後のリンク情報記憶部の例を示す図である。図23は、図20に示した輻輳の予兆を検出したことによりアラーム発生後のリンク情報記憶部120内のリンク情報を示している。図12と比較すると分かるように、ポート番号「#4」の通信ポートを出力ポートとするリンクについて、リンクのトラフィック量、リンク利用率、偏差、前回リンク利用率、前回偏差、輻輳制御フラグ、アラーム値、および前回アラーム値が更新されている。
【0171】
ポート番号「#4」の通信ポートを出力ポートとするリンクのリンク情報は、トラフィック量が「0.7」から「0.9」に変更されている。リンク利用率が「0.7」から「0.9」に変更されている。偏差が「0.1」から「−0.1」に変更されている。前回リンク利用率が「0.6」から「0.7」に変更されている。前回偏差が「0.2」から「0.1」に変更されている。輻輳制御フラグが新たにセットされている。アラーム値として新たに「0.89」が設定されている。前回アラーム値には、初期値として「1」が設定されている。
【0172】
このように中継ノード100におけるフロー情報やリンク情報が更新されると、経路状態情報収集処理によって、エッジノード200,200aの経路状態情報にも変更内容が反映される。
【0173】
図24は、ノードID「A」のエッジノードの更新後の経路状態情報記憶部の例を示す図である。図24には、図20に示した各フローのトラフィックの計測結果が反映されている。図14と比較すると分かるように、フローID「AD」の経路「AED」の経路状態情報に関して、経路空き容量が更新されている。経路空き容量は「0.1」から「0」に変更されている。
【0174】
なお経路空き容量は、経路上のリンクの空き容量のうちの最小値である。リンクの空き容量は、リンク容量×Target値−リンクトラフィック量である。そのため、図20の例では、中継ノード100のポート番号「#4」の通信ポートを出力ポートとするリンクの空き容量は、計算式上は「−0.1」(1×0.8−0.9)となってしまう。ただし、リンクの空き容量が計算上負の数になるときは、リンクの空き容量の値は「0」とされる。「0」は最小値であるため、該当リンクを通るすべての経路の経路空き容量も「0」となる。
【0175】
図25は、ノードID「B」のエッジノードの更新後の経路状態情報記憶部の例を示す図である。図25には、図20に示した各フローのトラフィックの計測結果が反映されている。図17と比較すると分かるように、フローID「BD」の経路「BED」の経路状態情報に関して、経路空き容量が更新されている。経路空き容量は「0.1」から「0」に変更されている。
【0176】
トラフィックの計測が行われた結果、リンク利用率が制御開始閾値を超えるリンクが検出されると、輻輳の予兆検出と判断され輻輳制御処理が行われる。
図26は、輻輳制御処理の手順の一例を示すフローチャートである。以下、図26に示す処理をステップ番号に沿って説明する。
【0177】
[ステップS41]輻輳検出部140は、分散経路募集処理を実行する。分散経路募集処理は、トラフィックの分散先となる経路の候補を、入口ノードに募集する処理である。分散経路募集処理において、入口ノードに対してアラーム情報が送信される。この処理の詳細は後述する(図29参照)。
【0178】
[ステップS42]分散制御部150は、分散経路候補の中からトラフィックの分散先とする経路を決定し、その経路の入口ノードに対してトラフィックの負荷分散を指示する。この処理の詳細は後述する(図35参照)。
【0179】
図27は、分散経路募集処理によるアラーム情報の送信状況を示す図である。図27の例では、中継ノード100のポート番号「#4」の通信ポートを出力ポートとするリンクにおいて、輻輳の予兆が検出されている。この場合、輻輳の予兆が検出された制御対象リンクを通る経路の入口ノードであるエッジノード200,200aに対してアラーム情報が送信されている。
【0180】
アラーム情報には、「アラーム値(規制率)」、「フローID」、「入口ノード名(アラーム情報宛先)」、「経路情報」、および「制御対象リンク名」が含まれる。制御対象リンク名は、輻輳の予兆が検出されたリンクのリンク名である。リンク名は、リンクの両端のノードのノードIDの組で表される。その際、左側にリンクへトラフィックを出力するノードのノードID、右側に該当リンクからトラフィックが入力されるノードのノードIDが設定される。例えば、中継ノード100のポート番号「#4」の通信ポートを出力ポートとするリンクのリンク名は「ED」となる。
【0181】
リンクiのアラーム値が以下の式で計算される。
ai(t)=ai(t−1)+P×(ei(t)−ei(t−1))+I×ei(t)
・・・(4)
ここで「t」はアラーム情報送信周期における何周期目かを示す値である。tは、1から開始され、一周期ごとに1ずつ増加される。ただし、「ai(0)=1」と定義する。
【0182】
「P」、「I」は、PI(Proportional-Integral)コントローラにおける制御パラメータであり、所定の値が設定される。例えば、本実施の形態では、P=0.5、I=0.1であるものとする。
【0183】
ei(t)は、リンクiにおけるt周期目の偏差である。偏差「ei(t)」は、以下の式で表される。
ei(t)=Ti−Tri(t) ・・・(5)
ここで「Ti」はリンクiのTarget値である。「Tri(t)」はリンクiのトラフィック利用率である。
【0184】
例えば、図23のポート番号「#4」の通信ポートを出力ポートとするリンク(リンクED)のアラーム値を計算する場合を考える。
前回アラーム値:aED(t−1)=1
偏差:eED(t)=−0.1
前回偏差:eED(t−1)=0.1
ここでP=0.5、I=0.1である。そこで、アラーム値は以下の値となる。
アラーム値:
aED(t)=1+0.5(−0.1−0.1)+0.1(−0.1)=0.89
アラーム情報は、制御パケットに含めて送信される。制御パケットは、その制御パケットを転送する経路を指定する情報を付加することができる。例えば、図27に示すように中継ノード100のポート番号「#4」の通信ポートを出力ポートとするリンクでリンク利用率が制御開始閾値を超えると、そのリンク(制御対象リンク)へのトラフィックの入力側である中継ノード100において、輻輳の予兆が検出される。その場合、中継ノード100が、アラーム情報を作成して制御パケットに載せる。
【0185】
中継ノード100は、制御対象リンクを介してエッジノード200cへ流れる全フローの各経路の入口ノード宛に、アラーム情報を含む制御パケットを送信する。この制御パケットが出力される通信ポートは、制御対象リンクを含む経路の入口ポート側の隣接ノードに接続された通信ポートである。すなわち、制御対象リンクを含む経路上の入口ノード側に隣接するノードに対して、中継ノード100から制御パケットが渡される。そして、制御パケットに含められる経路の指定は、制御対象リンクを含む経路を入口ノードに向かって辿る経路である。例えば、図27のフロー「AD」の経路「AED」に対しては、中継ノード100からエッジノード200へ、アラーム情報を含む制御パケットが送信される。また、フロー「BD」の経路「BED」に対しては、中継ノード100からエッジノード200aへ、アラーム情報を含む制御パケットが送信される。
【0186】
送信されるアラーム情報のデータフォーマットを[フローID,入口ノード,アラーム発生経路状態情報,制御対象リンク,アラーム値]と表すと、各エッジノード200,200aに送信されるアラーム情報の内容は以下の通りである。
・エッジノード200宛の制御パケットに含まれるアラーム情報
[AD,A,(A,E,D),ED,0.89]
・エッジノード200a宛の制御パケットに含まれるアラーム情報
[BD,B,(B,E,D),ED,0.89]
図27の例では、輻輳の予兆を検出した中継ノード100に対して、制御対象リンクを含む経路の入口ノードが隣接している。そのため、アラーム情報を含む制御パケットの転送は発生していない。もし輻輳の予兆を検出したノードと制御対象リンクを含む経路の入口ノードとが隣接していない場合、アラーム情報を含む制御パケットは、その制御パケットで指定された経路で転送される。
【0187】
図28は、アラーム情報の転送が生じる態様を示す図である。図28には、図6に示した構成に対し、2台の中継ノード100c,100dが追加された例が示されている。中継ノード100cは、中継ノード100とエッジノード200との間に設けられている。また中継ノード100dは、中継ノード100と、エッジノード200aとの間に設けられている。中継ノード100cのノードIDは「H」である。中継ノード100dのノードIDは「I」である。
【0188】
このようなネットワーク構成の場合、フローID「AD」のフローの経路は、「A,H,E,D」となる。また、フローID「BD」のフローの経路は、経路「BIED」となる。従って、中継ノード100におけるフロー管理テーブル111aでは、フローID「AD」のフロー情報に経路「AHED」が設定され、フローID「BD」のフロー情報に経路「BIED」が設定されている。中継ノード100cにおけるフロー管理テーブル111bにおいても、フローID「AD」のフロー情報に経路「AHED」が設定されている。
【0189】
このようなネットワーク構成のときに、中継ノード100とエッジノード200cとの間のリンクで輻輳の予兆が検出されたものとする。この場合、中継ノード100において、輻輳の予兆が検出された制御対象リンクを通る2つの経路が認識される。そして、中継ノード100から各経路の入口ノードであるエッジノード200,200aそれぞれへのアラーム情報が送信される。中継ノード100からエッジノード200宛のアラーム情報は、経路「AHED」を逆向きに沿って、中継ノード100cに送出される。また中継ノード100からエッジノード200a宛のアラーム情報は、経路「BIED」を逆向きに沿って、中継ノード100dに送出される。
【0190】
中継ノード100cは、取得したアラーム情報を、フローID「AD」の経路「AHED」を逆向きに沿って、エッジノード200に送出する。中継ノード100dは、取得したアラーム情報を、フローID「BD」の経路「BIED」を逆向きに沿って、エッジノード200aに送出する。
【0191】
第2の実施の形態では、アラーム情報内に経路状態情報が含まれている。そのため、アラーム情報を受信したノードは、アラーム情報内の経路状態情報を参照して、転送先を判断できる。また、各ノードがフローの経路の情報を有している。従って、アラーム情報に経路状態情報が含まれていなくても、そのアラーム情報の転送が可能である。例えば、アラーム情報を受信したノードは、アラーム情報に含まれるフローIDを参照し、そのフローIDに対応する経路状態情報をフロー情報記憶部から取得する。そして、アラーム情報を受信したノードは、取得した経路状態情報を逆方向に辿るように、アラーム情報を転送する。
【0192】
このようにして、アラーム情報は、経路に沿って逆向きに転送され、入口ノードに渡される。
図29は、分散経路募集処理の一例を示すフローチャートである。以下、図29に示す処理をステップ番号に沿って説明する。
【0193】
[ステップS51]輻輳検出部140は、輻輳制御フラグがリセット状態か否かを判断する。例えば輻輳検出部140は、リンク情報記憶部120内の制御対象リンクに関するリンク情報を参照し、そのリンク情報に輻輳制御フラグがセットされているか否かを判断する。輻輳制御フラグがリセット状態であれば、処理がステップS52に進められる。輻輳制御フラグがすでにセットされていれば、処理がステップS54に進められる。
【0194】
[ステップS52]輻輳検出部140は、輻輳制御フラグをセットする。例えば輻輳検出部140は、リンク情報記憶部120内の制御対象リンクに関するリンク情報に対して、輻輳制御フラグをセットする。
【0195】
[ステップS53]輻輳検出部140は、前回アラーム値を初期化する。例えば輻輳検出部140は、リンク情報記憶部120内の制御対象リンクに関するリンク情報の前回アラーム値の項目に対して、「1」を設定する。
【0196】
[ステップS54]輻輳検出部140は、アラーム値「ai(t)」を計算する。例えばアラーム値は、上記の式(4)、式(5)によって計算できる。また輻輳検出部140はアラーム値の計算に用いられるデータを、リンク情報記憶部120内の制御対象リンクに関するリンク情報から取得する。
【0197】
[ステップS55]輻輳検出部140は、制御対象リンクを通過するフローごとに、ステップS56〜ステップS57の処理を実行する。
[ステップS56]輻輳検出部140は、フロー情報記憶部110内の制御対象リンクを通過するフローに関するフロー情報から、入口ノードと経路状態情報とを抽出する。
【0198】
[ステップS57]輻輳検出部140は、フローの経路上を入口ノード側に隣接するノードに対して、アラーム情報を含む入口ノード宛の制御パケットを送信する。
[ステップS58]輻輳検出部140は、制御対象リンクを通過するすべてのフローに対するステップS56〜ステップS57の処理が完了した場合、アラーム情報送信処理を終了する。
【0199】
以上のようにして、輻輳予兆検出に応じたアラーム情報の送信が行われる。次に、アラーム情報を受信した入口ノードにおける入札処理について説明する。
アラーム情報を受信した入口ノードでは、まず、受信したアラーム情報に基づいて経路状態情報を更新する。
【0200】
図30は、ノードID「A」のエッジノードのアラーム情報受信後の経路状態情報記憶部の例を示す図である。図30の例は、経路「AED」で輻輳の予兆が検出された場合である。エッジノード200では、アラーム情報から経路情報とアラーム値が抽出され、経路情報に対応する経路の受信アラーム値の欄に、アラーム情報から抽出したアラーム値が設定される。図30の例では、受信アラーム値として「0.89」が設定されている。
【0201】
図31は、ノードID「B」のエッジノードのアラーム情報受信後の経路状態情報記憶部の例を示す図である。エッジノード200aにおいても、アラーム情報から経路情報とアラーム値が抽出され、経路情報に対応する経路の受信アラーム値の欄に、アラーム情報から抽出したアラーム値が設定される。図31の例では、受信アラーム値として「0.89」が設定されている。
【0202】
経路状態情報の更新後、アラーム情報を受信したエッジノードは、入札メッセージを送信する。
図32は、入札メッセージの送信例を示す図である。アラーム情報を受信したエッジノード200,200aは、アラーム情報の送信元である中継ノード100に対して入札メッセージを送信する。入札メッセージは、アラーム情報で示されたフローに関するアラーム発生経路以外の経路(分散経路候補)を通知するメッセージである。入札メッセージのデータには、「フローID」、「経路」、「スリープノード数」、「空き容量」、「消費電力パラメータ」を有する分散経路候補情報が含まれる。分散経路候補情報は、分散経路候補ごとに作成され、入札メッセージに含められる。
【0203】
図32の例では、エッジノード200には、フロー「AD」の経路として3つの経路「AED」、「ACD」、「AGD」が設定されている。このうち経路「AED」はアラーム発生経路である。従って2つの経路「ACD」、「AGD」が、分散経路候補となる。ここで、入札メッセージに含まれる分散経路候補情報のデータフォーマットを(フローID,経路,スリープノード数,空き容量,消費電力パラメータ)とする。このときエッジノード200から中継ノード100に送信される入札メッセージに含まれる分散経路候補情報は以下の通りである。
[(AD,ACD,0,0.7,20),(AD,AGD,1,0.8,20)]
エッジノード200aには、フロー「BD」の経路として2つの経路「BED」、「BFD」が設定されている。このうち経路「BED」はアラーム発生経路である。従って1つの経路「BFD」が、分散経路候補となる。このときエッジノード200aから中継ノード100に送信される入札メッセージに含まれる分散経路候補情報は以下の通りである。
[(BD,BFD,1,0.8,15)]
次に、入口ノードにおける入札処理の手順について説明する。
【0204】
図33は、入札処理の手順を示す図である。以下、図33に示す処理をステップ番号に沿って説明する。
[ステップS61]入札処理部240は、アラーム情報を受信する。
【0205】
[ステップS62]入札処理部240は、受信したアラーム情報から、フローID,入口ノード、アラーム発生経路情報、制御対象リンク、アラーム値フローIDを抽出する。このとき、入札処理部240は、抽出した入口ノードとしてエッジノード200のノードIDが設定されていることにより、エッジノード200が入口ノードとなることを認識する。
【0206】
[ステップS63]入札処理部240は、経路状態情報記憶部220内の経路状態情報を更新する。具体的には入札処理部240は、アラーム情報から抽出したフローIDと経路との組に対応する経路状態情報を、経路状態情報記憶部220から特定する。そして入札処理部240は、特定した経路状態情報の受信アラーム値として、受信したアラーム情報から抽出したアラーム値を設定する。
【0207】
[ステップS64]入札処理部240は、分散経路候補があるか否かを判断する。分散経路候補とは、アラーム情報から抽出したフローIDで示されるフローの経路のうち、アラーム発生経路以外の経路である。分散経路候補があれば、処理がステップS65に進められる。分散経路候補がなければ、入札処理が終了する。
【0208】
[ステップS65]入札処理部240は、分散経路候補がある場合、分散経路候補ごとの分散経路候補情報を作成する。なお、入札処理部240は、分散経路候補情報を構成する「フローID」、「経路」、「スリープノード数」、「空き容量」、「消費電力パラメータ」は、経路状態情報記憶部220から取得する。
【0209】
[ステップS66]入札処理部240は、作成した分散経路候補情報を1つの入札メッセージに含め、アラーム情報の送信元であるノードに入札メッセージを送信する。その後、処理が終了する。
【0210】
入札メッセージを取得した中継ノード100では、各入札メッセージに含まれる分散経路候補情報を比較し、分散先経路を決定する。例えば中継ノード100は、起動するスリープノードが少ない分散経路候補を選択し、分散先経路に決定する。そして、中継ノード100は決定した分散経路の入口ノードであるエッジノードに対して分散要求を送信する。
【0211】
図34は、分散要求の送信例を示す図である。図34の例では、中継ノード100aと100bがスリープノードであり、エッジノード200aが提示した分散経路候補は、中継ノード100aを経由する経路である。また、エッジノード200が提示した分散経路候補は中継ノード100bを経由する経路と、エッジノード200bを経由する経路である。そこで中継ノード100では提示された分散経路候補の中から1つを選択し、分散経路に決定する。例えば中継ノード100は、提示された3つの分散経路候補のうち、スリープノード数の少ない方の経路(つまり経路「ACD」)を選択する。そして、中継ノード100は、エッジノード200に対して経路「ACD」へのトラフィックの分散要求を送信する。
【0212】
分散要求には、「フローID」、「分散先経路」、「アラーム発生経路」、「アラーム値」が含まれる。分散要求のデータフォーマットを[フローID,分散先経路,アラーム発生経路,アラーム値]とすると、図34の例においてエッジノード200に送信される分散要求の内容は以下の通りとなる。
[AD,ACD,AED,0.89]
次に、分散先候補決定処理の手順について説明する。
【0213】
図35は、分散先経路決定処理の手順の一例を示すフローチャートである。以下、図35に示す処理をステップ番号に沿って説明する。
[ステップS71]分散制御部150は、入札メッセージを受信したか否かを判断する。入札メッセージを受信したら処理がステップS72に進められる。入札メッセージを受信していなければ、処理がステップS73に進められる。
【0214】
[ステップS72]分散制御部150は、入札メッセージに含まれる分散経路候補をRAM102またはHDD103内の記憶領域に格納する。
[ステップS73]分散制御部150は、入札メッセージ待ち時間がタイムアウトとなったか否かを判断する。入札メッセージ待ち時間は、アラーム情報を送信してから所定の時間である。分散制御部150は、アラーム情報を送信したときから時間計測を開始し、入札メッセージ待ち時間を経過するとタイムアウトと判定する。タイムアウトになった場合、処理がステップS74に進められる。タイムアウトとなっていなければ、処理がステップS71に進められる。
【0215】
[ステップS74]分散制御部150は、分散経路候補評価処理を行う。この処理の詳細は後述する(図36参照)。
[ステップS75]分散制御部150は、分散経路候補評価処理によって選択した分散経路候補を、分散先経路に決定する。
【0216】
[ステップS76]分散制御部150は、分散先経路の入口ノードに対して、分散先経路へのトラフィックの分散要求を送信する。その後、分散先決定処理が終了する。
次に、分散経路候補評価処理について説明する。
【0217】
図36は、分散経路候補評価処理の手順の一例を示すフローチャートである。以下、図36に示す処理をステップ番号に沿って説明する。
[ステップS81]分散制御部150は、入札メッセージ中の分散経路候補をスリープノード数が少ない順に整列させる。
【0218】
[ステップS82]分散制御部150は、ステップS81で整列させた分散経路候補から、スリープノード数が最も少ない分散経路候補を抽出する。
[ステップS83]分散制御部150は、ステップS82においてスリープノード数が最も少ない分散経路候補が複数抽出されたか否かを判断する。複数の分散経路候補が抽出された場合、処理がステップS85に進められる。抽出された分散経路候補が1つだけの場合、処理がステップS84に進められる。
【0219】
[ステップS84]分散制御部150は、ステップS82で抽出した分散経路候補が1つだけであれば、その分散経路候補を選択し、分散経路候補評価処理を終了する。
[ステップS85]分散制御部150は、ステップS82で抽出した分散経路候補が複数あれば、抽出した分散経路候補を消費電力パラメータが小さい順に整列させる。
【0220】
[ステップS86]分散制御部150は、ステップS85で整列させた分散経路候補から、消費電力パラメータが最小の分散経路候補を抽出する。
[ステップS87]分散制御部150は、ステップS86において消費電力パラメータが最小の分散経路候補が複数抽出されたか否かを判断する複数の分散経路候補が抽出された場合、処理がステップS89に進められる。抽出された分散経路候補が1つだけの場合、処理がステップS88に進められる。
【0221】
[ステップS88]分散制御部150は、ステップS86で抽出した分散経路候補が1つだけであれば、その分散経路候補を選択し、分散経路候補評価処理を終了する。
[ステップS89]分散制御部150は、ステップS86で抽出した分散経路候補が複数あれば、抽出した分散経路候補を空き容量が大きい順に整列させる。
【0222】
[ステップS90]分散制御部150は、ステップS89で整列させた分散経路候補から、空き容量が最大の経路を抽出する。
[ステップS91]分散制御部150は、ステップS90で抽出した分散経路候補のうちの1つを選択し、分散経路候補評価処理を終了する。
【0223】
以上のような処理により、分散先経路が決定され、分散先経路の入口ノードに対して分散要求が送信される。分散要求を受信した入口ノードでは、分散要求に従ってトラフィックの負荷分散を行う。
【0224】
次に入口ノードにおけるトラフィックの負荷分散処理について説明する。負荷分散処理では、入口ノードにおいて、アラーム発生経路と分散先経路とへのトラフィックの送出確率を変更する。例えば、入口ノードは以下の式により、アラーム発生経路と分散先経路との送出確率を決定する。
アラーム発生経路への送出確率(新確率)=アラーム値×旧確率 ・・・(6)
分散先経路への送出確率(新確率)
=旧確率+(1−アラーム値)×アラーム発生経路の旧確率 ・・・(7)
これらの式(6)、式(7)で送出確率を決定することで、アラーム発生経路への送出確率は、アラーム発生経路への確率を減らした分が増やされる。なお、アラーム発生経路と分散先経路以外の経路の送出確率は変更されない。
【0225】
例えば、エッジノード200が[AD,ACD,AED,0.89]という内容の分散要求を受信した場合を考える。このときアラーム発生経路「AED」の旧送出確率は「1」である。すると、アラーム発生経路への送出確率(新確率)は、「0.89」となる。他方、分散先経路「ACD」への送出確率(新確率)は、「0.11」となる。エッジノード200では、送出確率変更部250が新たな送出確率を計算し、経路状態情報記憶部220に格納されている経路状態情報の送出確率を更新する。また、その後の経路状態情報収集処理によって、経路容量などの値が経路状態情報収集部230によって更新される。
【0226】
図37は、送出確率更新後の経路状態情報記憶部の例を示す図である。図30と比較すると分かるように、経路状態情報記憶部220のフローID「AD」の経路「ACD」の送出確率が「0」から「0.11」に変更されている。経路「ACD」の送出確率が変更されたことで、この経路「ACD」におけるフローのトラフィック値が「0」から「0.033」に変更されている。またこの経路「ACD」にトラフィックが振り分けられるようになったことで、経路空き容量が「0.7」から「0.59」に変更されている。
【0227】
またフローID「AD」の経路「AED」の送出確率が「1」から「0.89」に変更されている。経路「AED」の送出確率が変更されたことで、この経路「AED」におけるフローのトラフィック値が「0.3」から「0.267」に変更されている。
【0228】
ただし、経路「AED」の経路空き容量は「0」のままである。これは経路「AED」のトラフィック量が「0.267」になっても、フロー「BD」のトラフィック量「0.6」と合算すると、リンク「ED」のトラフィック量は「0.867」となる。このリンク「ED」のリンク容量×Target値は「0.8」であるため、空き容量の計算結果が負の値となる。そのためリンク「ED」の空き容量が「0」と判定され、経路空き容量も「0」のままとなる。
【0229】
送出確率が更新されると、パケット中継部216は、フロー「AD」のトラフィックを、更新後の送出確率に従って、経路「AED」と経路「ACD」とに振り分ける。これにより、経路「AED」に集中していたトラフィックが複数の経路に分散される。
【0230】
図38は、負荷分散の一例を示す図である。図38の例では、フロー「AD」の全トラフィック量は「0.3」のままである。このトラフィックが、エッジノード200において、経路「AED」と経路「ACD」とに、それぞれ0.89:0.11の割合で振り分けられている。その結果、経路「AED」のトラフィック量が「0.267」、経路「ACD」のトラフィック量が「0.033」となっている。
【0231】
なお、図37、図38の例は、一回目のアラーム情報に応じた負荷分散結果を示しており、リンク「ED」のリンク利用率が制御開始閾値「0.7」以下になるまで、アラーム情報が繰り返し出力される。そのアラーム情報に応じて負荷分散によるトラフィックの送出確率の更新も繰り返し実行される。このような送出確率の更新を繰り返すことで、徐々に経路「AED」のトラフィックのうち経路「ACD」に迂回させる量が多くなり、経路「AED」のトラフィック量が減少する。
【0232】
図39は、送出確率更新処理の手順の一例を示すフローチャートである。以下、図39に示す処理をステップ番号に沿って説明する。
[ステップS101]送出確率変更部250は、分散要求を受信する。
【0233】
[ステップS102]送出確率変更部250は、分散要求からフローID、分散先経路、アラーム発生経路、およびアラーム値を抽出する。
[ステップS103]送出確率変更部250は、アラーム発生経路の送出確率を更新する。例えば送出確率変更部250は、アラーム発生経路の送出確率を式(6)に基づいて計算する。そして送出確率変更部250は、算出した送出確率を、経路状態情報記憶部220内のアラーム発生経路の送出確率として設定する。
【0234】
[ステップS104]送出確率変更部250は、分散先経路の送出確率を更新する。例えば送出確率変更部250は、分散先経路の送出確率を式(7)に基づいて計算する。そして送出確率変更部250は、算出した送出確率を、経路状態情報記憶部220内の分散先経路の送出確率として設定する。
【0235】
このようにして、送出確率を変更し、負荷分散の度合いを調整することができる。
以上説明したように、第2の実施の形態によれば、特定のリンクで輻輳の予兆が検出された場合、そのリンクを通るすべてのトラフィックを分散させるのではなく、経路上のスリープノードが少ない経路に優先的にトラフィックが分散される。これにより、無駄なスリープノードの起動を抑制できる。
【0236】
しかも、PIコントローラを用いて、分散先経路へ振り分けるトラフィック量を調整するようにしている。すなわち、トラフィックの集約が段階的に解かれる。そのため、必要以上のスリープノードが起動されることや、無駄な消費電力の増加が避けられる。さらには、分散先経路へのトラフィックが急激に増加し、分散先経路で輻輳が発生することも抑制されている。
【0237】
〔その他の応用例〕
上記の第1、第2の実施の形態では、輻輳発生の予兆検出をきっかけとして、トラフィックの分散を行っているが、トラフィックを分散させるきっかけは輻輳発生の予兆検出に限らない。たとえば、いずれかのリンクで障害を検出した場合、そのリンクを通るトラフィックを分散させる場合もある。その場合、例えば輻輳検出部140が、輻輳の予兆の検出に加えリンクの障害検出も行えばよい。
【0238】
上記の処理機能は、コンピュータによって実現することができる。その場合、各ルータ(エッジノード、中継ノードを含む)が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
【0239】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0240】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0241】
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
【0242】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【0243】
以上の実施の形態に開示された技術には、以下の付記に示す技術が含まれる。
(付記1) 他のルータとの間に張られたリンクを経由して、転送順が定義された経路に沿ってネットワークに入力されたトラフィックを転送するルータにおいて、
特定のリンクを経由して転送されるトラフィックの少なくとも一部を前記特定のリンクを経由しない経路で転送させる場合に、各リンクを介して転送されるトラフィックの前記ネットワーク内での経路を記憶する経路記憶手段を参照し、前記特定のリンクを介して転送される1または複数のトラフィックの経路を対象経路とし、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ前記特定のリンクを経由しない経路を分散経路候補とし、分散経路候補のトラフィックを中継するルータの状態を示す状態情報を管理している管理装置から、各分散経路候補の状態情報を取得する状態情報取得手段と、
前記状態情報取得手段が取得した各分散経路候補の状態情報に基づいて、分散経路候補へ前記特定のリンクのトラフィックの一部を流した場合の経路上の他のルータの状態の変化を比較し、状態の変化による消費電力の増加量が少ない経路を優先的に分散先経路として決定する分散先決定手段と、
前記分散先決定手段で決定した前記分散先経路へ、経路上の最初と最後のルータの両方が前記分散先経路と共通である前記対象経路のトラフィックの少なくとも一部を振り分けるように、該対象経路上の最初のルータに指示する分散要求を送信する分散要求手段と、
を有することを特徴とするルータ。
【0244】
(付記2) 前記状態情報取得手段は、前記分散経路候補の経路上のルータのうち省電力モードの状態のルータ数を管理装置から取得し、
前記分散先決定手段は、経路上のルータのうち省電力モードの状態のルータ数が少ない分散経路候補を、優先的に分散先経路に決定することを特徴とする付記1記載のルータ。
【0245】
(付記3) 前記状態情報取得手段は、前記分散経路候補の経路上のトラフィックが単位データ量増加したときの経路上の各ルータの消費電力増加量を管理装置から取得し、
前記分散先決定手段は、トラフィックが所定量だけ増加したときの経路上の各ルータの消費電力増加量が少ない分散経路候補を、優先的に分散先経路に決定することを特徴とする付記1または付記2のいずれかに記載のルータ。
【0246】
(付記4) 前記分散要求手段は、前記分散要求に、前記対象経路から前記分散先経路へ振り分けるトラフィック量の計算指標となるアラーム値を含めることを特徴とする付記1乃至5記載のルータ。
【0247】
(付記5) 前記アラーム値は、前記対象経路への現在のトラフィックの送出確率に対する振り分け後の送出確率の比率であることを特徴とする付記4記載のルータ。
(付記6) 他のルータとの間に張られた各リンクのトラフィック量を測定し、輻輳発生の予兆を検出する輻輳予兆検出手段をさらに有し、
前記状態情報取得手段は、前記輻輳予兆検出手段が輻輳発生の予兆を検出したリンクを、前記特定のリンクとすることを特徴とする付記1乃至5のいずれかに記載のルータ。
【0248】
(付記7) 前記分散要求手段は、前記輻輳予兆検出手段により輻輳発生の予兆が検出されたリンクの輻輳発生の予兆が継続している間、所定間隔で前記分散要求を繰り返し送信することを特徴とする付記6記載のルータ。
【0249】
(付記8) 前記輻輳予兆検出手段は、トラフィック量が所定の閾値を超えたリンクを、輻輳発生の予兆があるリンクとして検出することを特徴とする付記6または付記7記載のルータ。
【0250】
(付記9) 前記状態情報取得手段は、対象経路それぞれの最初のルータを前記管理装置と判断し、対象経路それぞれの最初のルータから各分散経路候補の状態情報を取得することを特徴とする付記1乃至8のいずれかに記載のルータ。
【0251】
(付記10) 前記状態情報取得手段は、対象経路それぞれの最初のルータに対して該対象経路の最初と最後のルータが示されたアラーム情報を送信し、該最初のルータから、経路上の最初と最後のルータが該対象経路と共通の分散経路候補、および該分散経路候補の状態情報を取得することを特徴とする付記9記載のルータ。
【0252】
(付記11) ネットワーク内でトラフィックを転送順が定義された経路に沿って転送する各ルータから、該ルータの状態を示す状態情報を収集し、該ルータの状態情報を、該ルータが転送するトラフィックの経路と対応付けて経路状態記憶手段に格納する状態情報収集手段と、
前記ネットワーク内の複数ルータ間に張られた特定のリンクを経由して転送されるトラフィックの経路を対象経路とし、該対象経路の最初と最後のルータが示されたアラーム情報を受信すると、前記経路状態記憶手段を参照し、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ前記特定のリンクを経由しない経路を分散経路候補とし、該分散経路候補の状態情報を前記アラーム情報の発信元に送信する状態情報通知手段と、
を有することを特徴とする管理装置。
【0253】
(付記12) 前記経路状態記憶手段は、経路上の最初と最後のルータが共通の経路間での各経路へのトラフィックの送出確率を記憶しており、
前記経路状態記憶手段に示される送出確率で、他のネットワークから流入するトラフィックを前記ネットワーク内の経路に分散して転送する中継手段と、
前記対象経路のトラフィックの少なくとも一部を振り分ける分散先経路を指定する分散指示を受け取ると、前記経路状態記憶手段に対して、前記対象経路へのトラフィックの送出確率を減らし、前記分散先経路へのトラフィックの送出確率を増やす更新処理を行う送出確率変更手段と、
をさらに有することを特徴とする付記11記載の管理装置。
【0254】
(付記13) 前記状態情報収集手段は、他のネットワークから流入するトラフィックを転送する経路上のルータから状態情報を収集することを特徴とする付記11または付記12のいずれかに記載の管理装置。
【0255】
(付記14) 前記状態情報収集手段は、トラフィックを転送する経路上のルータのうちの省電力モードとなっているルータの数を状態情報として収集することを特徴とする付記11乃至13のいずれかに記載の管理装置。
【0256】
(付記15) 前記状態情報収集手段は、トラフィックを転送する経路上のルータにおける、トラフィックが単位データ量増加したときの消費電力増加量を状態情報として収集することを特徴とする付記11乃至14のいずれかに記載の管理装置。
【0257】
(付記16) 他のルータとの間に張られたリンクを経由して、転送順が定義された経路に沿ってネットワークに入力されたトラフィックを転送する処理をコンピュータに実行させるルーティング制御プログラムにおいて、
前記コンピュータに、
特定のリンクを経由して転送されるトラフィックの少なくとも一部を前記特定のリンクを経由しない経路で転送させる場合に、各リンクを介して転送されるトラフィックの前記ネットワーク内での経路を記憶する経路記憶手段を参照し、前記特定のリンクを介して転送される1または複数のトラフィックの経路を対象経路とし、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ前記特定のリンクを経由しない経路を分散経路候補とし、分散経路候補のトラフィックを中継するルータの状態を示す状態情報を管理している管理装置から、各分散経路候補の状態情報を取得し、
取得した各分散経路候補の状態情報に基づいて、分散経路候補へ前記特定のリンクのトラフィックの一部を流した場合の経路上の他のルータの状態の変化を比較し、状態の変化による消費電力の増加量が少ない経路を優先的に分散先経路として決定し、
決定した前記分散先経路へ、経路上の最初と最後のルータの両方が前記分散先経路と共通である前記対象経路のトラフィックの少なくとも一部を振り分けるように、該対象経路上の最初のルータに指示する分散要求を送信する、
処理を実行させることを特徴とするルーティング制御プログラム。
【符号の説明】
【0258】
1〜6 ルータ
1a 中継手段
1b 輻輳予兆検出手段
1c 経路記憶手段
1d 状態情報取得手段
1e 分散先決定手段
1f 分散要求手段
2a 経路状態記憶手段
2b 中継手段
2c 状態情報収集手段
2d 状態情報通知手段
2e 送出確率変更手段
【特許請求の範囲】
【請求項1】
他のルータとの間に張られたリンクを経由して、転送順が定義された経路に沿ってネットワークに入力されたトラフィックを転送するルータにおいて、
特定のリンクを経由して転送されるトラフィックの少なくとも一部を前記特定のリンクを経由しない経路で転送させる場合に、各リンクを介して転送されるトラフィックの前記ネットワーク内での経路を記憶する経路記憶手段を参照し、前記特定のリンクを介して転送される1または複数のトラフィックの経路を対象経路とし、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ前記特定のリンクを経由しない経路を分散経路候補とし、分散経路候補のトラフィックを中継するルータの状態を示す状態情報を管理している管理装置から、各分散経路候補の状態情報を取得する状態情報取得手段と、
前記状態情報取得手段が取得した各分散経路候補の状態情報に基づいて、分散経路候補へ前記特定のリンクのトラフィックの一部を流した場合の経路上の他のルータの状態の変化を比較し、状態の変化による消費電力の増加量が少ない経路を優先的に分散先経路として決定する分散先決定手段と、
前記分散先決定手段で決定した前記分散先経路へ、経路上の最初と最後のルータの両方が前記分散先経路と共通である前記対象経路のトラフィックの少なくとも一部を振り分けるように、該対象経路上の最初のルータに指示する分散要求を送信する分散要求手段と、
を有することを特徴とするルータ。
【請求項2】
前記状態情報取得手段は、前記分散経路候補の経路上のルータのうち省電力モードの状態のルータ数を管理装置から取得し、
前記分散先決定手段は、経路上のルータのうち省電力モードの状態のルータ数が少ない分散経路候補を、優先的に分散先経路に決定することを特徴とする請求項1記載のルータ。
【請求項3】
前記状態情報取得手段は、前記分散経路候補の経路上のトラフィックが単位データ量増加したときの経路上の各ルータの消費電力増加量を管理装置から取得し、
前記分散先決定手段は、トラフィックが所定量だけ増加したときの経路上の各ルータの消費電力増加量が少ない分散経路候補を、優先的に分散先経路に決定することを特徴とする請求項1または請求項2のいずれかに記載のルータ。
【請求項4】
他のルータとの間に張られた各リンクのトラフィック量を測定し、輻輳発生の予兆を検出する輻輳予兆検出手段をさらに有し、
前記状態情報取得手段は、前記輻輳予兆検出手段が輻輳発生の予兆を検出したリンクを、前記特定のリンクとすることを特徴とする請求項1乃至3のいずれかに記載のルータ。
【請求項5】
前記分散要求手段は、前記輻輳予兆検出手段により輻輳発生の予兆が検出されたリンクの輻輳発生の予兆が継続している間、所定間隔で前記分散要求を繰り返し送信することを特徴とする請求項4記載のルータ。
【請求項6】
前記状態情報取得手段は、対象経路それぞれの最初のルータを前記管理装置と判断し、対象経路それぞれの最初のルータから各分散経路候補の状態情報を取得することを特徴とする請求項1乃至5のいずれかに記載のルータ。
【請求項7】
前記状態情報取得手段は、対象経路それぞれの最初のルータに対して該対象経路の最初と最後のルータが示されたアラーム情報を送信し、該最初のルータから、経路上の最初と最後のルータが該対象経路と共通の分散経路候補、および該分散経路候補の状態情報を取得することを特徴とする請求項6記載のルータ。
【請求項8】
ネットワーク内でトラフィックを転送順が定義された経路に沿って転送する各ルータから、該ルータの状態を示す状態情報を収集し、該ルータの状態情報を、該ルータが転送するトラフィックの経路と対応付けて経路状態記憶手段に格納する状態情報収集手段と、
前記ネットワーク内の複数ルータ間に張られた特定のリンクを経由して転送されるトラフィックの経路を対象経路とし、該対象経路の最初と最後のルータが示されたアラーム情報を受信すると、前記経路状態記憶手段を参照し、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ前記特定のリンクを経由しない経路を分散経路候補とし、該分散経路候補の状態情報を前記アラーム情報の発信元に送信する状態情報通知手段と、
を有することを特徴とする管理装置。
【請求項9】
前記経路状態記憶手段は、経路上の最初と最後のルータが共通の経路間での各経路へのトラフィックの送出確率を記憶しており、
前記経路状態記憶手段に示される送出確率で、他のネットワークから流入するトラフィックを前記ネットワーク内の経路に分散して転送する中継手段と、
前記対象経路のトラフィックの少なくとも一部を振り分ける分散先経路を指定する分散指示を受け取ると、前記経路状態記憶手段に対して、前記対象経路へのトラフィックの送出確率を減らし、前記分散先経路へのトラフィックの送出確率を増やす更新処理を行う送出確率変更手段と、
をさらに有することを特徴とする請求項8記載の管理装置。
【請求項10】
他のルータとの間に張られたリンクを経由して、転送順が定義された経路に沿ってネットワークに入力されたトラフィックを転送する処理をコンピュータに実行させるルーティング制御プログラムにおいて、
前記コンピュータに、
特定のリンクを経由して転送されるトラフィックの少なくとも一部を前記特定のリンクを経由しない経路で転送させる場合に、各リンクを介して転送されるトラフィックの前記ネットワーク内での経路を記憶する経路記憶手段を参照し、前記特定のリンクを介して転送される1または複数のトラフィックの経路を対象経路とし、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ前記特定のリンクを経由しない経路を分散経路候補とし、分散経路候補のトラフィックを中継するルータの状態を示す状態情報を管理している管理装置から、各分散経路候補の状態情報を取得し、
取得した各分散経路候補の状態情報に基づいて、分散経路候補へ前記特定のリンクのトラフィックの一部を流した場合の経路上の他のルータの状態の変化を比較し、状態の変化による消費電力の増加量が少ない経路を優先的に分散先経路として決定し、
決定した前記分散先経路へ、経路上の最初と最後のルータの両方が分散先経路と共通である前記対象経路のトラフィックの少なくとも一部を振り分けるように、該対象経路上の最初のルータに指示する分散要求を送信する、
処理を実行させることを特徴とするルーティング制御プログラム。
【請求項1】
他のルータとの間に張られたリンクを経由して、転送順が定義された経路に沿ってネットワークに入力されたトラフィックを転送するルータにおいて、
特定のリンクを経由して転送されるトラフィックの少なくとも一部を前記特定のリンクを経由しない経路で転送させる場合に、各リンクを介して転送されるトラフィックの前記ネットワーク内での経路を記憶する経路記憶手段を参照し、前記特定のリンクを介して転送される1または複数のトラフィックの経路を対象経路とし、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ前記特定のリンクを経由しない経路を分散経路候補とし、分散経路候補のトラフィックを中継するルータの状態を示す状態情報を管理している管理装置から、各分散経路候補の状態情報を取得する状態情報取得手段と、
前記状態情報取得手段が取得した各分散経路候補の状態情報に基づいて、分散経路候補へ前記特定のリンクのトラフィックの一部を流した場合の経路上の他のルータの状態の変化を比較し、状態の変化による消費電力の増加量が少ない経路を優先的に分散先経路として決定する分散先決定手段と、
前記分散先決定手段で決定した前記分散先経路へ、経路上の最初と最後のルータの両方が前記分散先経路と共通である前記対象経路のトラフィックの少なくとも一部を振り分けるように、該対象経路上の最初のルータに指示する分散要求を送信する分散要求手段と、
を有することを特徴とするルータ。
【請求項2】
前記状態情報取得手段は、前記分散経路候補の経路上のルータのうち省電力モードの状態のルータ数を管理装置から取得し、
前記分散先決定手段は、経路上のルータのうち省電力モードの状態のルータ数が少ない分散経路候補を、優先的に分散先経路に決定することを特徴とする請求項1記載のルータ。
【請求項3】
前記状態情報取得手段は、前記分散経路候補の経路上のトラフィックが単位データ量増加したときの経路上の各ルータの消費電力増加量を管理装置から取得し、
前記分散先決定手段は、トラフィックが所定量だけ増加したときの経路上の各ルータの消費電力増加量が少ない分散経路候補を、優先的に分散先経路に決定することを特徴とする請求項1または請求項2のいずれかに記載のルータ。
【請求項4】
他のルータとの間に張られた各リンクのトラフィック量を測定し、輻輳発生の予兆を検出する輻輳予兆検出手段をさらに有し、
前記状態情報取得手段は、前記輻輳予兆検出手段が輻輳発生の予兆を検出したリンクを、前記特定のリンクとすることを特徴とする請求項1乃至3のいずれかに記載のルータ。
【請求項5】
前記分散要求手段は、前記輻輳予兆検出手段により輻輳発生の予兆が検出されたリンクの輻輳発生の予兆が継続している間、所定間隔で前記分散要求を繰り返し送信することを特徴とする請求項4記載のルータ。
【請求項6】
前記状態情報取得手段は、対象経路それぞれの最初のルータを前記管理装置と判断し、対象経路それぞれの最初のルータから各分散経路候補の状態情報を取得することを特徴とする請求項1乃至5のいずれかに記載のルータ。
【請求項7】
前記状態情報取得手段は、対象経路それぞれの最初のルータに対して該対象経路の最初と最後のルータが示されたアラーム情報を送信し、該最初のルータから、経路上の最初と最後のルータが該対象経路と共通の分散経路候補、および該分散経路候補の状態情報を取得することを特徴とする請求項6記載のルータ。
【請求項8】
ネットワーク内でトラフィックを転送順が定義された経路に沿って転送する各ルータから、該ルータの状態を示す状態情報を収集し、該ルータの状態情報を、該ルータが転送するトラフィックの経路と対応付けて経路状態記憶手段に格納する状態情報収集手段と、
前記ネットワーク内の複数ルータ間に張られた特定のリンクを経由して転送されるトラフィックの経路を対象経路とし、該対象経路の最初と最後のルータが示されたアラーム情報を受信すると、前記経路状態記憶手段を参照し、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ前記特定のリンクを経由しない経路を分散経路候補とし、該分散経路候補の状態情報を前記アラーム情報の発信元に送信する状態情報通知手段と、
を有することを特徴とする管理装置。
【請求項9】
前記経路状態記憶手段は、経路上の最初と最後のルータが共通の経路間での各経路へのトラフィックの送出確率を記憶しており、
前記経路状態記憶手段に示される送出確率で、他のネットワークから流入するトラフィックを前記ネットワーク内の経路に分散して転送する中継手段と、
前記対象経路のトラフィックの少なくとも一部を振り分ける分散先経路を指定する分散指示を受け取ると、前記経路状態記憶手段に対して、前記対象経路へのトラフィックの送出確率を減らし、前記分散先経路へのトラフィックの送出確率を増やす更新処理を行う送出確率変更手段と、
をさらに有することを特徴とする請求項8記載の管理装置。
【請求項10】
他のルータとの間に張られたリンクを経由して、転送順が定義された経路に沿ってネットワークに入力されたトラフィックを転送する処理をコンピュータに実行させるルーティング制御プログラムにおいて、
前記コンピュータに、
特定のリンクを経由して転送されるトラフィックの少なくとも一部を前記特定のリンクを経由しない経路で転送させる場合に、各リンクを介して転送されるトラフィックの前記ネットワーク内での経路を記憶する経路記憶手段を参照し、前記特定のリンクを介して転送される1または複数のトラフィックの経路を対象経路とし、経路上の最初と最後のルータの両方がいずれかの対象経路と共通であり、かつ前記特定のリンクを経由しない経路を分散経路候補とし、分散経路候補のトラフィックを中継するルータの状態を示す状態情報を管理している管理装置から、各分散経路候補の状態情報を取得し、
取得した各分散経路候補の状態情報に基づいて、分散経路候補へ前記特定のリンクのトラフィックの一部を流した場合の経路上の他のルータの状態の変化を比較し、状態の変化による消費電力の増加量が少ない経路を優先的に分散先経路として決定し、
決定した前記分散先経路へ、経路上の最初と最後のルータの両方が分散先経路と共通である前記対象経路のトラフィックの少なくとも一部を振り分けるように、該対象経路上の最初のルータに指示する分散要求を送信する、
処理を実行させることを特徴とするルーティング制御プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【公開番号】特開2011−176631(P2011−176631A)
【公開日】平成23年9月8日(2011.9.8)
【国際特許分類】
【出願番号】特願2010−39277(P2010−39277)
【出願日】平成22年2月24日(2010.2.24)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成23年9月8日(2011.9.8)
【国際特許分類】
【出願日】平成22年2月24日(2010.2.24)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]