(57)【要約】【課題】自律制御により、ネットワークのトラフィックを少ない経路に確実に集約できるようにする。【解決手段】誘引力取得手段１ｃは、各ルータ３，４の誘引力値を取得する。その後、ルータ１にルータ２（識別子「Ａ」）宛の多数のパケットが入力されると、トラフィック制御手段１ｅは、誘引力値が大きい通信インタフェース１ａの方が通信インタフェース１ｂよりもトラフィックが多くなるように、通信インタフェース１ａへより多くのパケットを振り分ける。そして、トラフィック制御手段１ｅは、各パケットを、振り分け先の通信インタフェースを介して送出する。その結果、多くのパケットがルータ３を経由した伝送経路に集約される。【選択図】図１
2010206467.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信インタフェースと、
複数の前記通信インタフェースのいずれかを介して接続された隣接ルータから、前記隣接ルータで中継したトラフィック量に応じた値の誘引力値を取得し、前記隣接ルータに接続された前記通信インタフェースに対応付けて、前記誘引力値を記憶手段に格納する誘引力取得手段と、
前記記憶手段内を参照し、同一宛先のパケットが複数入力された場合、前記宛先への伝送経路に接続された前記通信インタフェースのうち前記誘引力値が大きい前記通信インタフェースほど送出トラフィック量が多くなるように、入力された前記パケットを前記通信インタフェースに振り分け、振り分けられた前記通信インタフェースを介して前記パケットを送出するトラフィック制御手段と、
を有することを特徴とするルータ。
【請求項２】
前記トラフィック制御手段は、前記隣接ルータから輻輳発生の可能性を示すアラーム情報が入力されると、前記アラーム情報を出力した前記隣接ルータに接続された前記通信インタフェースから送出されるトラフィック量を前記アラーム情報入力前よりも減少させることを特徴とする請求項１記載のルータ。
【請求項３】
複数の前記通信インタフェースに流入するトラフィック量に基づいて、流入する前記トラフィック量が多いほど大きな値となる自己誘引力値を定期的に算出し、複数の前記通信インタフェースを介して前記自己誘引力値を送信する誘引力通知手段をさらに有することを特徴とする請求項１記載のルータ。
【請求項４】
前記隣接ルータから前記誘引力値を取得した場合、複数の前記通信インタフェースに流入するトラフィック量に基づいて前記誘引力値を更新し、更新前の前記誘引力値が入力された前記通信インタフェースとは別の前記通信インタフェースへ更新後の前記誘引力値を送信する誘引力通知手段をさらに有することを特徴とする請求項１記載のルータ。
【請求項５】
前記誘引力通知手段は、前記誘引力値が伝播した経路を示す経路情報が付与された前記誘引力値を前記隣接ルータから取得し、前記経路情報に自己の識別子を追加して更新後の前記誘引力値を送信することを特徴とする請求項４記載のルータ。
【請求項６】
前記トラフィック制御手段は、前記パケットの宛先への伝送経路に接続された前記通信インタフェースそれぞれの前記誘引力値に応じた比例配分で、前記パケットを前記通信インタフェースへ振り分けることを特徴とする請求項１記載のルータ。
【請求項７】
前記トラフィック制御手段は、前記パケットの宛先への伝送経路に接続された前記通信インタフェースを前記誘引力値によって順位付けし、順位の最も高い前記通信インタフェースへ前記パケットを優先的に振り分けることを特徴とする請求項１記載のルータ。
【請求項８】
前記誘引力取得手段は、前記隣接ルータから、トラフィックの宛先への伝送経路ごとの前記誘引力値を取得し、宛先と伝送経路とに対応付けて前記誘引力値を前記記憶手段に格納し、
前記トラフィック制御手段は、入力された前記パケットの宛先への前記伝送経路ごとの前記誘引力値に基づいて、入力された前記パケットを伝送経路に対して振り分け、前記パケットに前記伝送経路を示す経路情報を付加し、振り分けられた前記伝送経路に接続された前記通信インタフェースを介して前記パケットを送信することを特徴とする請求項１記載のルータ。
【請求項９】
複数の通信インタフェースと、
ネットワーク内の１以上の他のルータとの間の伝送経路ごとのトラフィック量を計測して記憶手段に格納するトラフィック計測手段と、
前記他のルータが計測した伝送経路ごとのトラフィック量を収集して、前記記憶手段に格納するトラフィック情報収集手段と、
前記記憶手段に格納された伝送経路ごとのトラフィック量に基づいて、伝送経路上に配置された各ノード間のトラフィック量を推定するトラフィック推定手段と、
推定された各ノード間のトラフィック量に基づいて、トラフィック量が多いほど大きな値となる誘引力値を、前記他のルータとの間の伝送経路ごとに算出する誘引力計算手段と、
同一宛先のパケットが複数入力された場合、前記宛先への伝送経路のうち前記誘引力値が大きい前記伝送経路ほど送出トラフィック量が多くなるように、入力された前記パケットを前記伝送経路に振り分け、振り分けられた前記伝送経路を介して前記パケットを送出するトラフィック制御手段と、
を有することを特徴とするルータ。
【請求項１０】
複数の通信インタフェースを有するコンピュータに、
複数の前記通信インタフェースのいずれかを介して接続された隣接ルータから、前記隣接ルータで中継したトラフィック量に応じた値の誘引力値を取得し、前記隣接ルータに接続された前記通信インタフェースに対応付けて、前記誘引力値を記憶手段に格納し、
前記記憶手段内を参照し、同一宛先のパケットが複数入力された場合、前記宛先への伝送経路に接続された前記通信インタフェースのうち前記誘引力値が大きい前記通信インタフェースほど送出トラフィック量が多くなるように、入力された前記パケットを前記通信インタフェースに振り分け、振り分けられた前記通信インタフェースを介して前記パケットを送出する、
処理を実行させることを特徴とするパケットルーティングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワーク上のトラフィックの振り分けを行うルータ、およびそのためのパケットルーティングプログラムに関する。
【背景技術】
【０００２】
ネットワークでは複数のルータがパケットを中継し、宛先のコンピュータまでパケットを伝送させる。各ルータはパケットの宛先までの伝送経路を認識するために、経路情報を相互に交換している。経路情報には、その経路情報を送信したルータが認識している伝送経路が示されている。各ルータは、他のルータから受信した経路情報に基づいて、宛先に応じたパケットの転送先を選択する。
【０００３】
ルータから宛先のコンピュータへの伝送経路が複数存在する場合、ルータは、所定のアルゴリズムで経路選択を行う。ルータにおける経路選択のアルゴリズムは、ＯＳＰＦ（Open Shortest Path First）やＲＩＰ（Routing Information Protocol）などのルーティングプロトコルに規定されている。これらのルーティングプロトコルでは、基本的には最短経路を採るように経路選択が行われる。あるいは、これらのルーティングプロトコルを用いた既存の高度な制御としては、ネットワーク利用率のピークを最小化するよう平滑化しつつ、最短経路を採るように経路選択が行われる。
【０００４】
このような従来のルーティングプロトコルでは、パケットなどのトラフィックは予め決められた経路に沿って転送される。そのため、全体的にトラフィックが少ない時間帯が存在しても、各ルータを起動させ続けなければならない。
【０００５】
他方、ネットワークの処理能力の向上に伴い、ネットワークを構成する機器による消費電力も増加している。そのため、ネットワーク全体での消費電力を抑制した運用を行うことの重要性が高まっている。そこで、省電力化のため、通信ネットワークにおいてネットワーク制御装置がトラフィックの状態を監視し、トラフィックが少ないときに別の経路に迂回させることで、トラフィックを限定された経路に集約させ空いた交換機を休止させる技術が考えられている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−１１９７３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、トラフィックを１つのネットワーク制御装置で集中管理することが困難なネットワークも存在する。例えば、大規模なネットワークでは、すべてのトラフィックを１つのネットワーク制御装置で集中管理するのは困難である。また、１台のネットワーク制御装置において各伝送経路のトラフィックを集中管理すると、ネットワーク制御装置において誤動作などのトラブルの影響がネットワーク全体に及ぶ可能性があり、システム全体での信頼性の低下に繋がる。
【０００８】
本発明はこのような点に鑑みてなされたものであり、自律制御により、ネットワークのトラフィックを限定された経路に確実に集約させることができるルータ、およびパケットルーティングプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、複数の通信インタフェースと、誘引力取得手段と、トラフィック制御手段とを有するルータが提供される。誘引力取得手段は、複数の通信インタフェースのいずれかを介して接続された隣接ルータから、隣接ルータで中継したトラフィック量に応じた値の誘引力値を取得し、隣接ルータに接続された通信インタフェースに対応付けて、誘引力値を記憶手段に格納する。トラフィック制御手段は、記憶手段内を参照し、同一宛先のパケットが複数入力された場合、宛先への伝送経路に接続された通信インタフェースのうち誘引力値が大きい通信インタフェースほど送出トラフィック量が多くなるように、入力されたパケットを通信インタフェースに振り分け、振り分けられた通信インタフェースを介してパケットを送出する。
【発明の効果】
【００１０】
上記ルータでは、自律制御により、トラフィック量が大きい隣接ルータを介した経路に送出トラフィックを集約させることができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態の概要を示す図である。
【図２】本実施の形態のシステム構成例を示す図である。
【図３】本実施の形態に用いるルータのハードウェア構成例を示す図である。
【図４】本実施の形態によるトラフィックの集約状況を示す図である。
【図５】ルータの機能を示すブロック図である。
【図６】トラフィック記憶部のデータ構造例を示す図である。
【図７】誘引力情報記憶部のデータ構造例を示す図である。
【図８】制御パケット発信処理の手順を示すフローチャートである。
【図９】制御パケットの発信状況を示す概念図である。
【図１０】制御パケット伝播処理の手順を示すフローチャートである。
【図１１】制御パケットの伝播状況を示す概念図である。
【図１２】トラフィック制御処理の手順を示すフローチャートである。
【図１３】パケットの振り分けの概念を示す図である。
【図１４】宛先ごとのパケット振り分け確率の計算例を示す図である。
【図１５】比例分配によるパケット振り分け状態を示す図である。
【図１６】制御パケットの伝播によるトラフィック誘引力の更新状況を示す図である。
【図１７】トラフィック誘引力更新後のパケットの振り分け状況を示す図である。
【図１８】アラーム情報の転送状況を示す図である。
【図１９】完全集約状態における輻輳回避対象リンクの検出状況を示す図である。
【図２０】完全集約状態におけるアラーム情報に基づくトラフィック誘引力の更新状況を示す図である。
【図２１】非完全集約状態における輻輳回避対象リンクの検出状況を示す図である。
【図２２】非完全集約状態におけるアラーム情報に基づくトラフィック誘引力の更新状況を示す図である。
【図２３】スリープ処理の手順を示すフローチャートである。
【図２４】ウェイク処理の手順を示すフローチャートである。
【図２５】トラフィックの集約例を示す図である。
【図２６】トラフィック増加時の輻輳回避状況を示す図である。
【図２７】順位付け方式によるトラフィックの振り分け状況を示す図である。
【図２８】順位付け方式によるトラフィックの振り分けを概念的に示す図である。
【図２９】順位付け方式によるトラフィック振り分け例を示す図である。
【図３０】順位付け方式においてトラフィックが過剰に発生した状況を示す図である。
【図３１】順位付け方式における輻輳回避状況を示す図である。
【図３２】第３の実施の形態における誘引力情報記憶部のデータ構造例を示す図である。
【図３３】第３の実施の形態におけるパスごとの振り分け確率を示す図である。
【図３４】第３の実施の形態における制御パケットの伝播状況を示す図である。
【図３５】エッジノードでのトラフィックの振り分け状況を示す図である。
【図３６】第４の実施の形態におけるエッジノードの機能を示すブロック図である。
【図３７】エッジノード間トラフィック記憶部のデータ構造例を示す図である。
【図３８】ルータ間トラフィック記憶部のデータ構造例を示す図である。
【図３９】誘引力情報記憶部のデータ構造例を示す図である。
【図４０】トラフィック誘引力算出処理の手順を示すフローチャートである。
【図４１】トラフィック情報の交換状況を示す図である。
【図４２】論理トポロジと物理トポロジとの対応付け状況を示す図である。
【図４３】トラフィック誘引力の計算例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本実施の形態を図面を参照して説明する。
図１は、実施の形態の概要を示す図である。図１には、複数のルータ１〜８を有するネットワークを示している。
【００１３】
ルータ１は、複数の通信インタフェース１ａ，１ｂ、誘引力取得手段１ｃ、記憶手段１ｄ、トラフィック制御手段１ｅ、および誘引力通知手段１ｆを有している。
誘引力取得手段１ｃは、複数の通信インタフェース１ａ，１ｂのいずれかを介して接続された隣接のルータ３，４から、それらのルータ３，４で中継したトラフィック量に応じた値の誘引力値を取得する。そして、誘引力取得手段１ｃは、隣接するルータ３，４に接続された通信インタフェース１ａ，１ｂに対応付けて、誘引力値を記憶手段１ｄに格納する。
【００１４】
トラフィック制御手段１ｅは、記憶手段１ｄ内を参照してパケットの振り分けを行う。その際、トラフィック制御手段１ｅは、同一宛先のパケットが複数入力された場合、宛先への伝送経路に接続された通信インタフェースの誘引力値を比較する。ここで、トラフィック制御手段１ｅは、誘引力が大きい通信インタフェースほど送出トラフィック量が多くなるように、入力されたパケットを通信インタフェースに振り分ける。そして、トラフィック制御手段１ｅは、振り分けられた通信インタフェースを介してパケットを送出する。
【００１５】
また、トラフィック制御手段１ｅは、隣接ルータから輻輳発生の可能性を示すアラーム情報が入力されると、アラーム情報を出力した隣接ルータに接続された通信インタフェースから送出されるトラフィック量をアラーム情報入力前よりも減少させる。
【００１６】
誘引力通知手段１ｆは、複数の通信インタフェース１ａ，１ｂに流入するトラフィック量に基づいて、流入するトラフィック量が多いほど大きな値となる自己誘引力値（隣接するルータの誘引力を加味しない誘引力）を定期的に算出する。そして、誘引力通知手段１ｆは、算出した自己誘引力値を、複数の通信インタフェース１ａ，１ｂを介して送信する。
【００１７】
また、誘引力通知手段１ｆは、隣接するルータ３，４から誘引力値を取得した場合、複数の通信インタフェース１ａ，１ｂに流入するトラフィック量に基づいて誘引力値を更新する。そして、誘引力通知手段１ｆは、更新前の誘引力値が入力された通信インタフェースとは別の通信インタフェースへ更新後の誘引力値を送信する。
【００１８】
なお、図１にはルータ１の機能を示しているが、他のルータ２〜８も同様の機能を有している。このようなルータ１〜８を有するネットワークによれば、各ルータの自律制御により、ネットワークに流れるトラフィックを、特定の伝送経路に集約することができる。
【００１９】
例えば、ルータ５からルータ２へ、大量のトラフィックが発生しているものとする。このトラフィックは、ルータ３，６で中継される。また、ルータ７からルータ２へ少量のトラフィックが発生しているものとする。このトラフィックは、ルータ４，８で中継される。
【００２０】
この場合、ルータ３は、大きな値の誘引力値を生成し、隣接するルータ１に送信する。この誘引力値は、ルータ３に接続された通信インタフェース１ａを介して誘引力取得手段１ｃで受信される。他方、ルータ４は、ルータ３よりも小さな値の誘引力値を生成し、隣接するルータ１に送信する。この誘引力値は、ルータ４に接続された通信インタフェース１ｂを介して誘引力取得手段１ｃで受信される。各ルータ３，４の誘引力値を取得した誘引力取得手段１ｃは、取得した誘引力値を、入力された通信インタフェースに対応付けて記憶手段１ｄに格納する。
【００２１】
その後、ルータ１にルータ２（識別子を「Ａ」とする）宛の多数のパケットが入力されると、トラフィック制御手段１ｅは、記憶手段１ｄに格納されている通信インタフェース１ａ，１ｂごとの誘引力値を参照する。そして、トラフィック制御手段１ｅは、誘引力値が大きい通信インタフェース１ａの方が通信インタフェース１ｂよりもトラフィックが多くなるように、通信インタフェース１ａへより多くのパケットを振り分ける。そして、トラフィック制御手段１ｅは、各パケットを、振り分け先の通信インタフェースを介して送出する。その結果、多くのパケットがルータ３を経由して、宛先であるルータ２に伝送され、ルータ４を経由してルータ２に伝送されるパケットは少量となる。
【００２２】
このように、ルータ１が誘引力に応じたトラフィックの振り分けを行うと、ルータ３で処理するトラフィックがさらに増加することとなる。すると、ルータの３の誘引力が増大化され、再度ルータ１に送信される。その結果、ルータ３を経由する伝送経路へのトラフィックの集約度も徐々に高まる。集約度が高まることにより、パケットの流入がないルータが作り出される。そのルータを休止させることでネットワークの省電力効果が得られる。
【００２３】
また、ルータ１では、誘引力通知手段１ｆが、自己の誘引力値を隣接するルータ３，４に定期的に通知する。すると、ルータ４で中継されているルータ２宛のトラフィックの一部は、ルータ１，ルータ３，ルータ６を経由した伝送経路に振り分けられる。その結果、ルータ８で中継されるトラフィックが更に減少する。そして、ルータ８のトラフィックが０になれば、ルータ８を休止させることができ、システムの省電力化が可能となる。
【００２４】
なお、上記の説明では、各ルータが自己の誘引力値を隣接するルータへ送信するものとしているが、別の手段で誘引力値の伝達をすることもできる。例えば、ルータ１の誘引力取得手段１ｃが、隣接するルータ３，４に保持された誘引力値をネットワーク経由で参照することもできる。さらに、誘引力取得手段１ｃは、隣接するルータ３，４が計測しているトラフィック量のデータをネットワーク経由で参照し、そのトラフィック量からルータ３，４の誘引力値を算出することもできる。このように、各ルータが能動的に隣接するルータの誘引力値を取得する機能を有していれば、各ルータにおける自己の誘引力の通知機能は不要となる。
【００２５】
しかも、このようなトラフィックの集約が、各ルータ１〜８が自律的に動作することで実現される。そのため、トラフィックを集中管理する装置は不要であり、大規模なネットワークであっても対応可能である。さらに、各ルータが自律的にトラフィック集中制御を実行するため、いずれかのルータが故障したとしても、トラフィックの集約制御に混乱をきたすことはない。
【００２６】
ところでルータ１の誘引力通知手段１ｆは、隣接するルータ３，４から受信した誘引力値の伝播処理も行う。誘引力値の伝播処理では、受信した誘引力値が、自己の誘引力値を用いて更新される。例えば、誘引力通知手段１ｆは、受信した誘引力値と自己の誘引力値の平均値を、更新後の誘引力値とする。更新された誘引力値は、誘引力値を受信した通信インタフェースとは別の通信インタフェースを介して送出される。例えば、通信インタフェース１ａを介してルータ３から入力された誘引力値は、更新後に通信インタフェース１ｂを介してルータ４に送信される。
【００２７】
このような誘引力値の伝播を行うと、誘引力値の影響を、隣接するルータよりも先のルータに対しても伝えることができる。すなわち、ルータ３の誘引力値が大きいことにより、ルータ４からルータ１経由でルータ２に伝送されるトラフィックが増加する。その結果、トラフィックの集約効果を高めることができる。
【００２８】
このようなトラフィックの集約制御は、蟻がフェロモンを経路上に残して食料に到達する適切な経路を仲間に教えるという蟻の群衆行動になぞらえることができる。すなわち、蟻は目的地から巣に帰る際にフェロモンを出すことで、目的地に向かう他の蟻に目的地までの経路を知らせる。目的地に向かう蟻は、フェロモンを辿り目的地に到達できる。フェロモンが強ければ、多くの蟻が集まってくる。このような蟻の群衆行動と同様に、トラフィック量が多い伝送経路の誘引力値を高く設定し、自律的に動作する各ルータがその伝送経路に多くのトラフィックを振り分けるようにすることで、トラフィックを集約できる。
【００２９】
特に、今後のネットワークトラフィック量の増大に伴い、ネットワークの消費電力量が爆発的に増大することが予想され、ネットワーク自体の省電力化技術が重要となる。そうすると、トラフィック処理の有無に応じてルータを休止状態にできる省電力ルータが普及することが想定される。実際のルータの電力消費はトラフィックの処理量にはほとんど依存せず、機能維持のための消費電力量が支配的である。このことを考慮すると、省電力ルータが導入されたネットワークにおいてトラフィックが流入しないルータをより多く生じさせ、それらのルータを休止させる施策がネットワークの電力化において有効である。
【００３０】
ところで、トラフィックを集約させすぎると、輻輳に陥る危険性がある。そこで、トラフィック集約技術と輻輳回避技術とを組み合わせることで、トラフィックの集約を行いつつも、信頼性の高いネットワークを構築することが可能となる。そこで、以下に、輻輳に陥らない範囲でトラフィックを集約するための実施の形態を詳細に説明する。
【００３１】
なお、以下の実施の形態におけるトラフィックの振り分けは、個々のパケット単位で行うこともでき、パケットフロー単位で行うこともできる。パケットフロー単位でトラフィックの振り分けを行う場合、パケットフローの最初に伝送経路を選択し、パケットフロー内の各パケットは選択した伝送経路を介して伝送される。
【００３２】
また以下の説明では、誘引力値を「トラフィック誘引力」と呼ぶこととする。
［第１の実施の形態］
図２は、本実施の形態のシステム構成例を示す図である。ネットワーク１０には、複数のルータ１００，１００ａ，１００ｂ，１００ｃ，１００ｄ，１００ｅ，１００ｆ，１００ｇが含まれている。ルータ１００は、ルータ１００ｄとルータ１００ｅとに接続されていると共に、他のネットワーク２１にも接続されている。ルータ１００ａは、ルータ１００ｄとルータ１００ｅとに接続されていると共に、他のネットワーク２２にも接続されている。ルータ１００ｂは、ルータ１００ｆとルータ１００ｇとに接続されていると共に、他のネットワーク２３にも接続されている。ルータ１００ｃは、ルータ１００ｆとルータ１００ｇとに接続されていると共に、他のネットワーク２４にも接続されている。ルータ１００ｄ，１００ｅ，１００ｆ，１００ｇは、互いに接続されている。以下、２台のルータ間を接続する伝送経路を「リンク」と呼ぶ。
【００３３】
このような構成のネットワーク１０内でルーティングを行う場合、他のネットワーク２１〜２４に接続されたルータ１００，１００ａ，１００ｂ，１００ｃは、主としてエッジノードとして機能する。エッジノードは、他のネットワーク２１〜２４から流入したトラフィック（個々のパケットやパケットフロー）を受信し、そのトラフィックをネットワーク１０を介して伝送する。また、エッジノードは、ネットワーク１０を介して伝送されてきたトラフィックを、ネットワーク２１〜２４へ転送する。すなわち、本実施の形態によるトラフィックの振り分けに必要な制御パケットの送受信機能などを有していない通信機器との間でパケットの送受信を行うルータは、エッジノードとして機能することとなる。
【００３４】
他のネットワーク２１〜２４に接続されていないルータ１００ｄ，１００ｅ，１００ｆ，１００ｇは、中継ノードとして機能する。中継ノードは、ネットワーク１０内でのトラフィックの中継を行う。なお、エッジノードとして機能しているルータは、ネットワーク１０内でのパケットの中継をするため、中継ノードとしての機能も兼ね備える。
【００３５】
図３は、本実施の形態に用いるルータのハードウェア構成例を示す図である。ルータ１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
【００３６】
ＲＡＭ１０２は、ルータ１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００３７】
バス１０８に接続されている周辺機器としては、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、および複数の通信インタフェース１０７ａ，１０７ｂ，１０７ｃがある。
【００３８】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、ルータ１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３９】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。モニタ１１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００４０】
入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００４１】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１４に記録されたデータの読み取りを行う。光ディスク１４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００４２】
通信インタフェース１０７ａは、ルータ１００ｄに接続されている。通信インタフェース１０７ａは、ルータ１００ｄとの間でデータの送受信を行う。通信インタフェース１０７ｂは、ルータ１００ｅに接続されている。通信インタフェース１０７ｂは、ルータ１００ｅとの間でデータの送受信を行う。通信インタフェース１０７ｃは、ネットワーク２１に接続されている。通信インタフェース１０７ｃは、ネットワーク２１を介して、ネットワーク２１上の他のコンピュータとの間でデータの送受信を行う。
【００４３】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には、ルータ１００のハードウェア構成を示したが、他のルータ１００ａ，１００ｂ，１００ｃ，１００ｄ，１００ｅ，１００ｆ，１００ｇも同様のハードウェア構成で実現することができる。ただし、実装される通信インタフェースの数は、各ルータに接続されたリンク数に応じた数である。
【００４４】
以上のようなシステムにおいて、各ルータの自律制御により、輻輳に陥らない範囲でトラフィックを出来るだけ少ない経路で集約処理する。トラフィックを集約することで、中継ノードの一部は、流入するトラフィックがない状態となる。そのような中継ノードは、機能を停止させることが可能である。
【００４５】
図４は、本実施の形態によるトラフィックの集約状況を示す図である。図４の例では、エッジノードであるルータ１００，１００ｂ間のトラフィックは、中継ノードであるルータ１００ｄ，１００ｆで中継されている。同様に、ルータ１００，１００ｃ間、ルータ１００ａ，１００ｂ間、およびルータ１００ａ，１００ｃ間のトラフィックも、ルータ１００ｄ，１００ｆで中継されている。その結果、ルータ１００ｅ，１００ｇについてはトラフィックが流入せず、休止させることができる。ルータ１００ｅ，１００ｇを休止させれば、ネットワークの省電力化が図れる。なお、集約経路が輻輳状態に陥りそうになった場合は、代替経路上の休止しているルータ１００ｅ，１００ｇを起動することで、スムーズにトラフィックの分散処理に移行できる。
【００４６】
図５は、ルータの機能を示すブロック図である。ルータ１００は、スリープ制御部１１０、誘引力管理部１２０、およびトラフィック制御部１３０を有している。
スリープ制御部１１０は、トラフィック処理が無くなった時点でルータ１００をスリープモードに移行させる。具体的には、スリープ制御部１１０は、トラフィック制御部１３０によるトラフィック制御を監視し、最後のトラフィック処理からの経過時間を計測する。そして、スリープ制御部１１０は、最後のトラフィック処理からの経過時間が、予め設定されたスリープモード移行時間を超えると、ルータ１００をスリープモードに移行させる。スリープ制御部１１０は、他のルータからスリープメッセージを受け取った場合にも、ルータ１００をスリープモードに移行させる。
【００４７】
なお、スリープモードでは、ルータ１００の通信インタフェース１０７ａ，１０７ｂ，１０７ｃにおけるパケットの受信機能のみが動作を継続し、ルータ１００のその他の機能は停止する。通信インタフェース１０７ａ，１０７ｂ，１０７ｃは、ウェイクメッセージまたは中継すべきトラフィックを受信すると、ＣＰＵ１０１に対して通常の動作モードへの復帰信号を送る。すると、ＣＰＵ１０１が起動し、ルータ１００を通常の動作モードに復帰させる。
【００４８】
誘引力管理部１２０は、パケットなどのデータの伝送経路を選択するためのトラフィック誘引力を管理する。誘引力管理部１２０は、トラフィック計測部１２１、トラフィック記憶部１２２、誘引力更新部１２３、誘引力情報記憶部１２４、制御パケット管理部１２５、モード情報記憶部１２６、およびアラーム情報生成部１２７を有する。
【００４９】
トラフィック計測部１２１は、各リンク（隣接するルータとの間の伝送経路）のトラフィック処理量を計測する。具体的には、トラフィック計測部１２１は、トラフィック制御部１３０によるトラフィック制御を監視し、各通信インタフェース１０７ａ，１０７ｂ，１０７ｃへの流入トラフィック量および送出トラフィック量を計測する。トラフィック計測部１２１は、計測したトラフィック量をトラフィック記憶部１２２に格納する。
【００５０】
トラフィック記憶部１２２は、通信インタフェース１０７ａ，１０７ｂ，１０７ｃへの流入トラフィックの量を記憶する記憶機能である。例えば、ＲＡＭ１０２内の記憶領域の一部が、トラフィック記憶部１２２として使用される。
【００５１】
誘引力更新部１２３は、トラフィック誘引力を適宜計算する。例えば、ルータ１００がエッジノードとして機能する場合、誘引力更新部１２３は、定期的にルータ１００のトラフィック誘引力を計算する。
【００５２】
また、誘引力更新部１２３は、ルータ１００が中継ノードとして機能する場合、制御パケット管理部１２５が受信した制御パケットに含まれるトラフィック誘引力を、制御パケット管理部１２５から受け取る。そして、誘引力更新部１２３は、取得したトラフィック誘引力を用い、制御パケットを送信したルータへのトラフィックの送出リンクである制御パケット受信リンクのトラフィック誘引力を計算する。さらに、誘引力更新部１２３は、計算した制御パケット受信リンクのトラフィック誘引力から、制御パケットを生成したエッジノード宛のトラフィックに関してルータ１００が有するトラフィック誘引力を計算する。誘引力更新部１２３は、受信した制御パケットに含まれているトラフィック誘引力から計算された制御パケット受信リンクのトラフィック誘引力により、誘引力情報記憶部１２４に格納されている制御パケット受信リンクのトラフィック誘引力を更新する。
【００５３】
なお、誘引力更新部１２３が計算したトラフィック誘引力は、制御パケット管理部１２５に渡される。
誘引力情報記憶部１２４は、エッジノード宛のトラフィックに関する通信インタフェースごとのトラフィック誘引力を記憶する記憶機能である。例えば、ＲＡＭ１０２内の記憶領域の一部が、誘引力情報記憶部１２４として使用される。
【００５４】
制御パケット管理部１２５は、制御パケットの生成および転送を管理する。具体的には、制御パケット管理部１２５は、ルータ１００がエッジノードとして機能する場合、定期的に生成されるトラフィック誘引力を誘引力更新部１２３から受け取り、各リンクに送出する制御パケットを生成する。生成された制御パケットには、ルータ１００のトラフィック誘引力が含まれる。そして、制御パケット管理部１２５は、制御パケットを、対応するリンクに接続された通信インタフェースを介してブロードキャストで送信する。
【００５５】
また、制御パケット管理部１２５は、ルータ１００が中継ノードとして機能する場合、他のルータから送られてきた制御パケットに含まれるトラフィック誘引力を、誘引力更新部１２３に渡す。その後、制御パケット管理部１２５は、更新されたトラフィック誘引力を、誘引力更新部１２３から受け取る。さらに、制御パケット管理部１２５は、受信した制御パケットを複製し、伝播先リンクごとの制御パケットとする。次に、制御パケット管理部１２５は、制御パケットのトラフィック誘引力を、誘引力更新部１２３により更新されたトラフィック誘引力に更新する。そして、制御パケット管理部１２５は、伝播先リンクに接続された通信インタフェースを介して、制御パケットをブロードキャストで転送する。
【００５６】
さらに、制御パケット管理部１２５は、制御パケットの内容に応じて、トラフィック振り分けモードを設定する。トラフィックの振り分けモードには、集約モードと分散モードとがある。集約モードは、ネットワーク１０上で輻輳が発生していないときに適用される振り分けモードである。集約モードでは、トラフィック誘引力が大きいリンクに対して、多くのトラフィックが振り分けられる。分散モードは、ネットワーク１０上で輻輳が発生した場合に適用される振り分けモードである。分散モードでは、輻輳が発生したリンクでの容量制限を超過した分のトラフィックが、他のリンクへ振り分けられる。
【００５７】
なお、制御パケット管理部１２５は、制御パケット内に、輻輳発生の可能性を示すアラーム情報が含まれている場合に、その制御パケットが送られてきたリンクの経路で輻輳の発生の可能性があると判断する。また、制御パケット管理部１２５は、アラーム情報生成部１２７からアラーム情報を受け取った場合にも、アラーム情報発生の要因となったリンクにおいて輻輳の発生の可能性があると判断する。
【００５８】
制御パケット管理部１２５は、輻輳の発生の可能性があると判断すると、振り分けモードを、集約モードから分散モードに変更する。具体的には、制御パケット管理部１２５は、輻輳の発生の可能性が検知されていなければ、モード情報記憶部１２６に集約モードであることを示す情報を登録する。また、制御パケット管理部１２５は、輻輳の発生の可能性を検知すると、モード情報記憶部１２６に分散モードであることを示す情報を登録する。
【００５９】
制御パケット管理部１２５は、アラーム情報生成部１２７からアラーム情報を受け取った場合には、そのアラーム情報を含む制御パケットを、輻輳の発生の可能性があるリンク以外のリンクへブロードキャストで発信する。この際、制御パケット管理部１２５は、トラフィック誘引力を通知する制御パケットにアラーム情報を含めて発信することができる。また、制御パケット管理部１２５は、トラフィック誘引力を通知する制御パケットを待たずに、アラーム情報のみを通知する制御パケットを生成して発信することもできる。
【００６０】
モード情報記憶部１２６は、トラフィックの振り分けモードの情報を記憶する記憶機能である。例えば、ＲＡＭ１０２内の記憶領域の一部がモード情報記憶部１２６として使用される。
【００６１】
アラーム情報生成部１２７は、トラフィック記憶部１２２を監視し、各リンクのトラフィックの利用率（トラフィック量／リンク容量）が、所定の閾値（トラフィック利用制限値）を超えているか否かを判断する。利用率は、トラフィック量を該当リンクの伝送能力で正規化した値である。利用率が閾値を超えたトラフィックがある場合、アラーム情報生成部１２７はアラーム情報を生成し、制御パケット管理部１２５に渡す。
【００６２】
トラフィック制御部１３０は、パケットを受信すると、そのパケットの宛先となるエッジノードに対応するトラフィック誘引力に従い、パケットを転送するリンクを選択する。そして、トラフィック制御部１３０は、選択したリンクへパケットを転送する。具体的には、トラフィック制御部１３０は、モード情報記憶部１２６を参照し、現在のトラフィックの振り分けモードを確認する。次に、トラフィック制御部１３０は、誘引力情報記憶部１２４を参照してパケットを転送可能な各リンクのトラフィック誘引力を取得する。さらに、トラフィック制御部１３０は、各リンクのトラフィック誘引力を用い、振り分けモードに応じた分配のアルゴリズムによりパケットの転送先となるリンクを決定する。そして、トラフィック制御部１３０は、決定したリンクに接続された通信インタフェースを介して、中継対象のパケットを送出する。
【００６３】
なお、トラフィック制御部１３０は、各リンクのトラフィック誘引力が設定される前は、ＯＳＰＦやＲＩＰなどの既存のルーティングプロトコルを用いて事前に設定された経路を利用してパケットの振り分けを行う。例えば、システムの運用開始直後はトラフィックが無いため、いずれのリンクにもトラフィック誘引力が発生しない（初期値「０」のまま）。このような初期段階のトラフィックは、トラフィック制御部１３０によって、既存のルーティングプロトコルで振り分けられる。そのトラフィックが宛先のルータに到達すると、宛先のルータでトラフィック誘引力を含む制御パケットが生成され、他のルータに転送される。その結果、ルータ１００においても、リンクに対応付けてトラフィック誘引力が設定される。その後は、トラフィック制御部１３０は、トラフィック誘引力に基づくトラフィックの振り分けを行う。
【００６４】
また、図１に示した各機能と図５に示した機能との対応関係は、次の通りである。誘引力取得手段１ｃと誘引力通知手段１ｆとは、図５における制御パケット管理部１２５と誘引力更新部１２３の連携した動作によって実現する機能である。図１に示した記憶手段１ｄは、図５における誘引力情報記憶部１２４によって実現する機能である。図１に示したトラフィック制御手段１ｅは、図５におけるトラフィック制御部１３０によって実現する機能である。
【００６５】
また、第１の実施の形態では、トラフィック誘引力に基づくトラフィックの振り分け方式として、比例配分方式を採用するものとする。比例配分方式は、集約モードにおいては、あるエッジノード宛のパケットを、各リンクのトラフィック誘引力の比率に応じて比例配分するものである。
【００６６】
次に、ルータ１００内に保持される情報について詳細に説明する。
図６は、トラフィック記憶部のデータ構造例を示す図である。トラフィック記憶部１２２には、トラフィック管理テーブル１２２ａが格納されている。トラフィック管理テーブル１２２ａには、通信インタフェース、流入トラフィック量、リンク容量、送出トラフィック量、トラフィック利用制限値の欄が設けられている。
【００６７】
通信インタフェースの欄には、ネットワーク１０上の他のルータに接続された通信インタフェースの識別子が設定される。図３に示すように、ルータ１００においては、２つの通信インタフェース１０７ａ，１０７ｂがネットワーク１０内の他のルータ１００ｄ，１００ｅに接続されている。従って、通信インタフェース１０７ａ，１０７ｂの識別子が、入力インタフェースの欄に設定される。
【００６８】
流入トラフィック量の欄には、対応する通信インタフェースに流入するトラフィック量が設定される。トラフィック量は、１秒当たりの流入データ容量で示される。
リンク容量の欄には、対応する通信インタフェースを用いて通信されるリンクの最大伝送容量が設定される。リンク容量は、１秒当たりに流入可能なデータ容量で示される。
【００６９】
送出トラフィック量の欄には、対応する通信インタフェースを介して送出されるトラフィック量が設定される。トラフィック量は、１秒当たりの送出データ容量で示される。
トラフィック利用制限値の欄には、対応する通信インタフェースを介して、輻輳を発生させずに送出可能なトラフィックの利用率の閾値が予め設定されている。
【００７０】
図７は、誘引力情報記憶部のデータ構造例を示す図である。誘引力情報記憶部１２４には、宛先となるエッジノードごとのトラフィック誘引力テーブル１２４ａ，１２４ｂ，・・・が格納されている。各トラフィック誘引力テーブル１２４ａ，１２４ｂ，・・・には、宛先となるエッジノードの識別子が設定されている。
【００７１】
トラフィック誘引力テーブル１２４ａには、出力インタフェース、隣接ノード、およびトラフィック誘引力の欄が設けられている。
出力インタフェースの欄には、エッジノード宛のパケットを送出する通信インタフェースの識別子が設定される。
【００７２】
隣接ノードの欄には、対応する通信インタフェースを介して接続された他のルータ（隣接ノード）の識別子が設定される。
トラフィック誘引力の欄には、対応するエッジノード宛のトラフィックに関する、対応する通信インタフェースを用いて通信されるリンクのトラフィック誘引力が設定される。
【００７３】
次に、制御パケット発信処理について説明する。
図８は、制御パケット発信処理の手順を示すフローチャートである。この処理は、エッジノードとして機能する各ルータが実行する。以下、ルータ１００が実行するものとして、図８に示す処理をステップ番号に沿って説明する。
【００７４】
［ステップＳ１１］トラフィック計測部１２１は、通信インタフェースごとの流入トラフィック量を定期的に計測する。トラフィック計測部１２１は、計測したトラフィック量をトラフィック記憶部１２２に格納する。
【００７５】
［ステップＳ１２］誘引力更新部１２３は、エッジノードであるルータ１００自身のトラフィック誘引力を計算し、この自己ノードのトラフィック誘引力を制御パケット管理部１２５に渡す。
【００７６】
［ステップＳ１３］制御パケット管理部１２５は、トラフィック誘引力を受け取ると、各通信インタフェースを介して、自己ノードのトラフィック誘引力を含む制御パケットをブロードキャストにより送信する。
【００７７】
このような手順で、エッジノードとして機能するルータから制御パケットがブロードキャストで発信される。
図９は、制御パケットの発信状況を示す概念図である。図９には、エッジノード３１から中継ノード３２，３３を経由してエッジノード３６にいたるパス（伝送経路）を示している。そのパスとは別に、エッジノード３６には、２つの中継ノード３４，３５それぞれとの間でリンクを有し、各リンクからトラフィックの流入があるものとする。
【００７８】
なお、中継ノード３２，３３、およびエッジノード３６へのトラフィックの流入方向を、矢印の向きで示している。また、エッジノード３１の識別子を「ｋ」、中継ノード３２の識別子を「ｉ」、中継ノード３３の識別子を「ｊ」、中継ノード３４の識別子を「ｕ」、中継ノード３５の識別子を「ｖ」、エッジノード３６の識別子を「ｄ」とする。
【００７９】
このようなパス上の各リンクのトラフィック誘引力を決定するために、エッジノード３６において、まず、エッジノード３６のトラフィック誘引力が計算される。ここで、エッジノード３６のトラフィック誘引力τd（ｄ）は、以下の式で表される。
τd（ｄ）＝ｍａｘx（Ｔｒx,d／Ｃｒx,d）      ・・・（１）
τはトラフィック誘引力であることを示している。τの添え字は、そのトラフィック誘引力を有するエッジノードの識別子である。式（１）ではτの添え字は「ｄ」である。
【００８０】
τの括弧内の文字は、どのエッジノード宛のトラフィックに関するトラフィック誘引力なのかを示している。式（１）では、τの括弧内の文字は「ｄ」である。従って、「τd（ｄ）」は、識別子「ｄ」のエッジノード３６宛のトラフィックに関するトラフィック誘引力（エッジノード３６固有の誘引力を示す自己誘引力値）である。
【００８１】
「ｍａｘx（Ｔｒx,d／Ｃｒx,d）」は、すべての要素ｘについて括弧内の式を計算し、計算結果の最大値を採用することを示している。要素ｘは、トラフィック誘引力を計算しているエッジノードとの間にリンクを有する他のルータの識別子である。図９の例では、エッジノード３６との間にリンクを有する他のルータとしては、中継ノード３３〜３５がある。従って、要素ｘは、「ｊ」、「ｕ」、「ｖ」の各値となる。
【００８２】
Ｔは、リンクのトラフィック量を示している。Ｔの添え字の左側は、トラフィックの送出元のルータの識別子であり、右側はトラフィックが流入するルータの識別子である。従って、「Ｔｒx,d」は、識別子「ｘ」のルータ（エッジノードまたは中継ノード）から、識別子「ｄ」のエッジノード３６へ流入するトラフィック量である。
【００８３】
Ｃは、リンクのリンク容量（最大データ転送容量）を示している。Ｃの添え字の左側は、該当リンクにおけるトラフィックの送出元のルータの識別子であり、右側は該当リンクにおけるトラフィックが流入するルータの識別子である。従って、「Ｃｒx,d」は、識別子「ｘ」のルータから識別子「ｄ」のエッジノード３６へのリンク容量である。このトラフィック量とリンク容量とは、トラフィック記憶部１２２から取得できる。
【００８４】
式（１）の右辺の括弧内の式「Ｔｒx,d／Ｃｒx,d」は、リンク容量に対するトラフィックの利用率を示している。エッジノード３６には、トラフィックの流入経路となるリンクが３つある。従って、式（１）により、これらのリンクそれぞれでのトラフィックの利用率のうち最も高い値が、エッジノード３６のトラフィック誘引力τd（ｄ）となる。
【００８５】
ここで計算されたトラフィック誘引力τd（ｄ）は、制御パケット４１に含められる。制御パケット４１の宛先アドレスには、ブロードキャストアドレス（図９中では「ＢＣ」と表記）が設定されている。そして、制御パケット４１が、トラフィック誘引力τd（ｄ）を乗せてブロードキャストで送信される。
【００８６】
同様にして、エッジノード３６では、トラフィック誘引力τd（ｄ）を含む制御パケット４２、４３が生成し、該当するリンクを介して、制御パケット４２、４３がブロードキャストで送信される。そして各制御パケット４２、４３を受信した中継ノード３４、３５では、“中継ノード３４とエッジノード３６との間のリンク”および“中継ノード３５とエッジノード３６との間のリンク”に対応したトラフィック誘引力τud（ｄ）、τv,d（ｄ）が計算される。
【００８７】
エッジノード３６から送信された制御パケット４１は、中継ノード３３で受信される。そして、中継ノード３３、中継ノード３２、エッジノード３１の順で、制御パケットが伝播する。ここで、制御パケットの転送ループを避けるために同じ制御パケットを受信したノードはその制御パケットを転送しない。
【００８８】
次に、制御パケットの伝播処理について詳細に説明する。
図１０は、制御パケット伝播処理の手順を示すフローチャートである。以下、ルータ１００が中継ノードとして機能しているものとしたときのルータ１００による制御パケット伝播処理を、図１０に示す処理をステップ番号に沿って説明する。
【００８９】
［ステップＳ２１］制御パケット管理部１２５は、制御パケットを受信する。制御パケット管理部１２５は、受信した制御パケットのトラフィック誘引力を誘引力更新部１２３に渡す。
【００９０】
［ステップＳ２２］トラフィック計測部１２１は、通信インタフェースごとの流入トラフィック量を計測する。なお、流入トラフィック量の計測は、制御パケットの受信を待たずに、定期的に行うことができる。トラフィック計測部１２１は、計測したトラフィック量をトラフィック記憶部１２２に格納する。
【００９１】
［ステップＳ２３］誘引力更新部１２３は、制御パケットに含まれるトラフィック誘引力を用いて、制御パケットを受信したリンクの重み付けを行い、制御パケットを生成したエッジノード宛のルータ１００が有するトラフィック誘引力を計算する。重み付けを行うことにより、トラフィック転送が多いリンクに対して、より多くのトラフィックを集約できる。この重み付けがされたトラフィック誘引力が、制御パケットの伝播元リンクのトラフィック誘引力となる。
【００９２】
［ステップＳ２４］次に、誘引力更新部１２３は、計算した伝播元リンクトラフィック誘引力を用いて、自ノードが持つ宛先エッジノードへのトラフィック誘引力を更新し、制御パケット管理部１２５に渡す。
【００９３】
［ステップＳ２５］制御パケット管理部１２５は、自ノードが持つ宛先エッジノードへのトラフィック誘引力を制御パケットに記載し、伝播元以外のリンクに接続された通信インタフェースを介して、ブロードキャストにより送信する。
【００９４】
［ステップＳ２６］誘引力更新部１２３は、ステップＳ２４で計算した伝播元リンクのトラフィック誘引力により、誘引力情報記憶部１２４内のトラフィック誘引力を更新する。更新されるのは、受信した制御パケットの発信元であるエッジノード宛の、制御パケットが入力されたリンクに関するトラフィック誘引力である。
【００９５】
このような手順で、中継ノードとして機能するルータによって制御パケットが順次伝播されると共に、中継ノード内のトラフィック誘引力が更新される。
図１１は、制御パケットの伝播状況を示す概念図である。図１１には、エッジノード３１から中継ノード３２，３３を経由してエッジノード３６にいたるパスにおける中継ノード３３での制御パケットの伝播状況を示している。中継ノード３３には、中継ノード３２以外に２つの中継ノード３７，３８それぞれとの間でリンクを有し、各リンクからトラフィックの流入があるものとする。また、中継ノード３７の識別子を「ｗ」、中継ノード３８の識別子を「ｙ」とする。
【００９６】
エッジノード３６から制御パケット４１を受信した中継ノード３３は、まず受信した制御パケット４１に記載されたトラフィック誘引力τd（ｄ）に従い、制御パケット４１を受信したリンク（制御パケット受信リンク）のトラフィック誘引力を計算する。このときの制御パケット受信リンクは、エッジノード３６宛のトラフィックの送出経路となるリンクである。識別子「ｄ」のエッジノード３６との間のリンクのトラフィック誘引力τj,d（ｄ）は、重みパラメータωj,dを用いて以下の式で表される。
τj,d（ｄ）＝ωj,d×τd（ｄ）      ・・・（２）
ωj,d＝Ｔｒj,d／Ｃｒj,d            ・・・（３）
式（２）の左辺のτの添え字の左側はトラフィックの送出元のルータの識別子であり、右側はトラフィックが流入するルータの識別子である。従って、「τj,d（ｄ）」は、識別子「ｊ」の中継ノード３３と識別子「ｄ」のエッジノード３６との間のリンクに関するトラフィック誘引力である。
【００９７】
式（２）の左辺のτの括弧内の文字は、どのエッジノード宛のトラフィックに関するトラフィック誘引力なのかを示している。式（２）では、τの括弧内の文字は「ｄ」である。従って、「τj,d（ｄ）」は、識別子「ｄ」のエッジノード３６宛のトラフィックに関するトラフィック誘引力である。
【００９８】
ωは、リンクの重みパラメータを示している。ωの添え字の左側は該当リンクのトラフィックの送出元のルータの識別子であり、右側は該当リンクのトラフィックが流入するルータの識別子である。従って、「ωj,d」は、識別子「ｊ」の中継ノード３３と識別子「ｄ」のエッジノード３６との間のリンクに関する重みパラメータである。
【００９９】
「Ｔｒj,d」は、識別子「ｊ」の中継ノード３３から、識別子「ｄ」のエッジノード３６へ送出されたトラフィック量である。「Ｃｒj,d」は、識別子「ｊ」の中継ノード３３から、識別子「ｄ」のエッジノード３６へのリンクに関するリンク容量である。
【０１００】
次に、中継ノード３３は、中継ノード３３自身のエッジノード３６宛のトラフィックに関するトラフィック誘引力を計算する。ここで、中継ノード３３のトラフィック誘引力τj（ｄ）は、以下の式で表される。
τj（ｄ）＝AVERAGE｛ｍａｘx（Ｔｒx,j／Ｃｒx,j），τj,d（ｄ）｝      ・・・（４）
ここで、「AVERAGE」は、括弧内のコンマで区切られた各要素の値の平均値を示している。
【０１０１】
「ｍａｘx（Ｔｒx,j／Ｃｒx,j）」は、すべての要素ｘについて括弧内の式を計算し、計算結果の最大値を採用することを示している。要素ｘは、トラフィック誘引力を計算している中継ノード３３との間にリンクを有する他のルータの識別子である。図１１の例では、中継ノード３３との間にリンクを有する他のルータとしては、エッジノード３６および中継ノード３２，３７，３８がある。従って、要素ｘは、「ｉ」、「ｄ」、「ｗ」、「ｙ」の各値となる。この「ｍａｘx（Ｔｒx,j／Ｃｒx,j）」の値は、識別子「ｊ」の中継ノード３３固有の誘引力を示す自己誘引力値である。
【０１０２】
「Ｔｒx,j」は、識別子「ｘ」のルータ（エッジノードまたは中継ノード）から、識別子「ｊ」の中継ノード３３へ流入するトラフィック量である。「Ｃｒx,j」は、識別子「ｘ」のルータから識別子「ｊ」の中継ノード３３へのリンク容量である。「Ｔｒx,j／Ｃｒx,j」は、該当リンクの利用率である。
【０１０３】
τj,d（ｄ）は、識別子「ｊ」の中継ノード３３と識別子「ｄ」のエッジノード３６との間のリンクの、識別子「ｄ」のエッジノード３６宛のトラフィックに関するトラフィック誘引力である。このトラフィック誘引力は、エッジノード３６から送られた制御パケット４１に含まれたトラフィック誘引力と、識別子「ｊ」の中継ノード３３と識別子「ｄ」のエッジノード３６との間のリンクトラフィック量を基に、式（２）、式（３）を用いて算出される。
【０１０４】
このように式（４）により、自己誘引力値と、ノード３３で計算されたリンクのトラフィック誘引力との平均値が得られる。そして、その平均値が、エッジノード３６宛のトラフィックに関する中継ノード３３のトラフィック誘引力となる。
【０１０５】
なお、式（４）では、「ｍａｘx（Ｔｒx,j／Ｃｒx,j）」と「τj,d（ｄ）」との平均値（AVERAGE）を求めているが、「ｍａｘx（Ｔｒx,j／Ｃｒx,j）」が大きい程大きな値となり、かつ「τj,d（ｄ）」が大きい程大きな値となるのであれば、平均値でなくてもよい。例えば、「ｍａｘx（Ｔｒx,j／Ｃｒx,j）」と「τj,d（ｄ）」との積を、トラフィック誘引力τj（ｄ）とすることもできる。
【０１０６】
さらに、式（４）の「ｍａｘx（Ｔｒx,j／Ｃｒx,j）」は、「ｓｕｍx（Ｔｒx,j／Ｃｒx,j）」に置き換えることもできる。「ｓｕｍx（Ｔｒx,j／Ｃｒx,j）」は、すべての要素ｘに関する「Ｔｒx,j／Ｃｒx,j」の値の総和である。
【０１０７】
このようにして計算されたトラフィック誘引力τ,j（ｄ）は、制御パケット４４に含められる。制御パケット４４の宛先アドレスには、ブロードキャストアドレス（図１１中では「ＢＣ」と表記）が設定されている。そして、制御パケット４４が、該当するリンクを介してブロードキャストで送信される。
【０１０８】
また、同様にして中継ノード３３では、トラフィック誘引力τj（ｄ）を含む制御パケット４５および４６が生成される。各制御パケットの宛先アドレスには、ブロードキャストアドレスが設定されている。そして、該当するリンクを介して、制御パケット４５および４６がブロードキャストで送信される。
【０１０９】
制御パケット４４を受信した中継ノード３２では、エッジノード３６宛のトラフィックの送出経路となるリンクのトラフィック誘引力を計算する。識別子「ｉ」の中継ノード３２との間のリンクのトラフィック誘引力τi,j（ｄ）は、重みパラメータωi,jを用いて以下の式で表される。
τi,j（ｄ）＝ωi,j×τj（ｄ）      ・・・（５）
ωi,j＝Ｔｒi,j／Ｃｒi,j            ・・・（６）
「τi,j（ｄ）」は、識別子「ｉ」の中継ノード３２と識別子「ｊ」の中継ノード３３との間のリンクに関するトラフィック誘引力である。「ωi,j」は、識別子「ｉ」の中継ノード３２と識別子「ｊ」の中継ノード３３との間のリンクに関する重みパラメータである。
【０１１０】
「Ｔｒi,j」は、識別子「ｉ」の中継ノード３２から、識別子「ｊ」の中継ノード３３へ送出するトラフィック量である。「Ｃｒi,j」は、識別子「ｉ」の中継ノード３２から、識別子「ｊ」の中継ノード３３へのリンク容量である。
【０１１１】
このような制御パケットの伝播処理が中継ノード３２においても実行される。制御パケットを取得した各ルータは、取得した制御パケットで示されるトラフィック誘引力から、その制御パケットを受信したリンクのトラフィック誘引力を計算し、そのリンクに対応付けて記憶する。その結果、図１１に示すエッジノード３１、中継ノード３２，３３において、エッジノード３６宛のトラフィックに関するトラフィック誘引力が記憶されることとなる。
【０１１２】
エッジノード宛のトラフィック誘引力が各ルータに記憶されることで、各ルータでは、そのエッジノード宛のパケットまたはパケットフローを受信すると、トラフィック誘引力に基づいて転送先の振り分けを行う。
【０１１３】
次に、トラフィック誘引力を用いたトラフィック制御処理について詳細に説明する。
図１２は、トラフィック制御処理の手順を示すフローチャートである。以下、ルータ１００がトラフィック制御を実行するものとして、図１２に示す処理をステップ番号に沿って説明する。
【０１１４】
［ステップＳ３１］トラフィック制御部１３０は、パケットまたはパケットフローの流入を検知する。
［ステップＳ３２］トラフィック制御部１３０は、トラフィック誘引力に基づいて、流入したパケットまたはパケットフローを、ルータ１００に接続されたリンクのいずれかに振り分ける。その際、トラフィック制御部１３０は、モード情報記憶部１２６を参照し、現在の振り分けモードを判断する。振り分けモードが集約モードであれば、トラフィック制御部１３０は、特定宛先のパケットに対し、各リンクに設定された宛先エッジノードに到達するトラフィック誘引力の大きさに応じて確率的に該当パケットを振り分ける。第１の実施の形態では、トラフィック誘引力に応じた比例分配方式によりパケットを振り分けるものとする。
【０１１５】
図１３は、パケットの振り分けの概念を示す図である。図１３の例では、識別子「ｋ」のエッジノード５１に、識別子「ｄ」のエッジノード５４宛のパケット５９が入力されている。エッジノード５１とエッジノード５４との間には、中継ノード５２を経由するパスと、中継ノード５３を経由するパスとが存在する。
【０１１６】
図１３の例では、エッジノード５１と中継ノード５２との間のリンクに設定されたトラフィック誘引力は大きく、それに比べ、エッジノード５１と中継ノード５３との間のリンクに設定されたトラフィック誘引力は小さい。このような場合、パケット５９は、高い確率で中継ノード５２に転送される。
【０１１７】
ここで、識別子「ｄ」のエッジノード宛のパケットの転送先として、識別子「ｉ」の中継ノード５２を選択する確率Ｐk,i（ｄ）は、以下の式で表される。
Ｐk,i（ｄ）＝τk,i（ｄ）／Σlτk,l（ｄ）    ・・・（７）
Ｐは、パケットの振り分け確率であることを示している。Ｐの添え字の左側は、パケットの送出元のルータの識別子であり、右側はパケットが流入するルータの識別子である。Ｐの括弧内の文字は、どのエッジノード宛のパケットに関する確率なのかを示している。従って、「Ｐk,i（ｄ）」は、識別子「ｋ」のエッジノード５１から、識別子「ｉ」の中継ノード５２へのリンクにパケットを振り分ける確率である。
【０１１８】
「τk,i（ｄ）」は、識別子「ｋ」のエッジノード５１と識別子「ｉ」の中継ノード５２との間のリンクに関する、識別子「ｄ」のエッジノード５４宛のトラフィックに関するトラフィック誘引力である。
【０１１９】
「Σlτk,l（ｄ）」は、すべての要素ｌについての「τk,l（ｄ）」の合計である。要素ｌは、送信元のエッジノード５１とリンクで接続された他のノードそれぞれの識別子である。図１３の例では、中継ノード５２の識別子「ｉ」と中継ノード５３の識別子「ｊ」とが、要素ｌの値となる。
【０１２０】
すなわち、式（７）の右辺は、エッジノード５１から中継ノード５２へのリンクに定義されたエッジノード５４宛のトラフィック誘引力と、エッジノード５１に定義されたすべてのリンクのトラフィック誘引力の総和との相対比率を示している。その相対比率が、エッジノード５４宛のパケット５９の転送先として中継ノード５２を選択する確率となる。
【０１２１】
このような式（７）によって、パケット５９の転送先の選択確率が決定される。そして、決定された確率に従って、パケット５９の転送先が決定される。例えば、エッジノード５１は、乱数を用いて、確率に従ったパケットの振り分けを行うことができる。その場合、エッジノード５１において、所定の範囲の数値のうち、確率に応じた数値範囲を各リンクに割り当てられる。ここで、確率０．８のリンクと、確率０．２のリンクが存在する場合を考える。全体の数値範囲を１〜１００とすると、確率０．８のリンクに１〜８０の数値範囲が割り当てられ、確率０．２のリンクに８１〜１００の数値範囲が割り当てられる。エッジノード５１は、パケットまたはパケットフローの振り分け先を決定する際に、全体の数値範囲１〜１００の中で乱数を生成する。そして、生成された乱数が割り当てられたリンクが、振り分け先として選択される。
【０１２２】
以上のようなパケットの振り分け確率は、パケットの宛先ごとに個別に計算される。
図１４は、宛先ごとのパケット振り分け確率の計算例を示す図である。図１４の例では、エッジノード６１に３台の中継ノード６２〜６４が接続されている。また、ネットワーク内には、エッジノード６１以外に２台のエッジノード６５，６６がある。エッジノード６５の識別子は「Ａ」、エッジノード６６の識別子は「Ｂ」である。また、中継ノード６２の識別子は「Ｃ」、中継ノード６３の識別子は「Ｄ」、中継ノード６４の識別子は「Ｅ」である。
【０１２３】
ここで、エッジノード６１に対して、識別子「Ａ」のエッジノード６５宛のパケット６７と、識別子「Ｂ」のエッジノード６６宛のパケット６８とが入力された場合を考える。エッジノード６１には、エッジノード６５宛のパケット６７を振り分けるためのトラフィック誘引力テーブル６１ａと、エッジノード６６宛のパケット６８を振り分けるためのトラフィック誘引力テーブル６１ｂとを有している。
【０１２４】
識別子「Ａ」のエッジノード６５宛のパケット６７がエッジノード６１に入力されると、エッジノード６５に対応するトラフィック誘引力テーブル６１ａを用いて、各中継ノード６２〜６４との間のリンクに関する振り分け確率が計算される。
【０１２５】
例えば、トラフィック誘引力テーブル６１ａでは、識別子「Ｃ」の中継ノード６２との間のリンクに接続されたインタフェース（Ｉ／Ｆ＃１）のトラフィック誘引力は「τ1」である。識別子「Ｄ」の中継ノード６３との間のリンクに接続されたインタフェース（Ｉ／Ｆ＃２）のトラフィック誘引力は「τ2」である。識別子「Ｅ」の中継ノード６４との間のリンクに接続されたインタフェース（Ｉ／Ｆ＃３）のトラフィック誘引力は「τ3」である。
【０１２６】
このようなトラフィック誘引力の場合、パケット６７が識別子「Ｃ」の中継ノード６２に転送される確率は、「τ1／（τ1＋τ2＋τ3）」である。パケット６７が識別子「Ｄ」の中継ノード６３に転送される確率は、「τ2／（τ1＋τ2＋τ3）」である。パケット６７が識別子「Ｅ」の中継ノード６４に転送される確率は、「τ3／（τ1＋τ2＋τ3）」である。
【０１２７】
このような計算によって、識別子「Ａ」のエッジノード６５宛のパケット６７が多数入力されると、トラフィック誘引力の値に応じて中継ノード６２〜６４に対してパケットが比例分配される。同様に、識別子「Ｂ」のエッジノード６６宛のパケット６８は、そのエッジノード６６に対応するトラフィック誘引力テーブル６１ｂに基づいて、比例分配される。
【０１２８】
次に、図１５〜図１７を参照して、トラフィックが集約されるときの状態変化について説明する。
図１５は、比例分配によるパケット振り分け状態を示す図である。なお、図１５に示すネットワーク構成は、図１３と同様である。各ルータ間のリンクのリンク容量は、すべて１００Ｍｂｐｓであるものとする。
【０１２９】
図１５の例では、エッジノード５４宛のトラフィックが、エッジノード５１に５０Ｍｂｐｓだけ入力されている。そのトラフィックのうち、３０Ｍｂｐｓ分のトラフィックが、中継ノード５２を経由する経路でエッジノード５４に転送されている。残りの２０Ｍｂｐｓ分のトラフィックは、中継ノード５３を経由する経路でエッジノード５４に転送されている。
【０１３０】
エッジノード５４では、流入するトラフィック量に基づいて、式（１）により自身のトラフィック誘引力が計算される。識別子「ｉ」の中継ノード５２から流入するトラフィックのリンク容量に対する利用率（Ｔｒi,d／Ｃｒi,d）は、「３０／１００＝０．３」である。識別子「ｊ」の中継ノード５３から流入するトラフィックのリンク容量に対する利用率（Ｔｒj,d／Ｃｒj,d）は、「２０／１００＝０．２」である。すると、利用率の最大値は「０．３」である。従って、エッジノード５４のトラフィック誘引力τd（ｄ）は、「０．３」となる。
【０１３１】
そして、このトラフィック誘引力を含む制御パケットが、該当するリンクを介してエッジノード５４からブロードキャストで送信される。
次に、中継ノード５２，５３では、エッジノード５４のトラフィック誘引力τd（ｄ）に基づいて、エッジノード５４に接続されたリンクのトラフィック誘引力が、式（２）、式（３）により計算される。
【０１３２】
図１６は、制御パケットの伝播によるトラフィック誘引力の更新状況を示す図である。中継ノード５２，５３では、各リンクのトラフィック誘引力が、そのリンクへのトラフィック送出側の通信インタフェースに対応付けて設定される。
【０１３３】
中継ノード５２からエッジノード５４へのリンクの重みパラメータωi,dは、Ｔｒi,d／Ｃｒi,d＝０．３である。エッジノード５４のトラフィック誘引力「０．３」に重みパラメータの値「０．３」を乗算した結果「０．０９」が、中継ノード５２からエッジノード５４へのリンクに関するトラフィック誘引力となる。このトラフィック誘引力が、中継ノード５２において、エッジノード５４に接続された通信インタフェースに対応付けて記憶される。
【０１３４】
中継ノード５３からエッジノード５４へのリンクの重みパラメータωj,dは、Ｔｒj,d／Ｃｒj,d＝０．２である。エッジノード５４のトラフィック誘引力「０．３」に重みパラメータの値「０．２」を乗算した結果「０．０６」が、中継ノード５３からエッジノード５４へのリンクに関するトラフィック誘引力となる。このトラフィック誘引力が、中継ノード５３において、エッジノード５４に接続された通信インタフェースに対応付けて記憶される。
【０１３５】
また、各中継ノード５２，５３では、エッジノード５４との間のリンクに設定したトラフィック誘引力に基づいて、自己のトラフィック誘引力を式（４）により計算する。
中継ノード５２は、エッジノード５１からトラフィックが流入する。エッジノード５１との間のリンクの利用率「Ｔｒk,i／Ｃｒk,i」は、「３０／１００＝０．３」である。図１６の例では、他にトラフィックが流入するリンクが無いため、「０．３」が最大値となる。この最大値と、中継ノード５２からエッジノード５４へのリンクに関するトラフィック誘引力「０．０９」との平均「０．１９５」が、中継ノード５２のトラフィック誘引力となる。
【０１３６】
中継ノード５３は、エッジノード５１からトラフィックが流入する。エッジノード５１との間のリンクの利用率「Ｔｒk,j／Ｃｒk,j」は、「２０／１００＝０．２」である。図１６の例では、他にトラフィックが流入するリンクが無いため、「０．２」が最大値となる。この最大値と、中継ノード５３からエッジノード５４へのリンクに関するトラフィック誘引力「０．０６」との平均「０．０１２」が、中継ノード５３のトラフィック誘引力となる。
【０１３７】
さらに、各中継ノード５１では、中継ノード５２，５３から制御パケットを受信し、式（５）、式（６）を用いて、それぞれエッジノード５１との間のリンクに関するトラフィック誘引力を計算する。
【０１３８】
エッジノード５１から中継ノード５２へのリンクに関する重みパラメータωk,iは、「３０／１００＝０．３」である。中継ノード５２のトラフィック誘引力「０．１９５」に重みパラメータの値「０．３」を乗算した結果「０．０５８５」が、エッジノード５１から中継ノード５２へのリンクに関するトラフィック誘引力となる。このトラフィック誘引力が、エッジノード５１において、中継ノード５２に接続された通信インタフェースに対応付けて記憶される。
【０１３９】
エッジノード５１から中継ノード５３へのリンクに関する重みパラメータωk,jは、「２０／１００＝０．２」である。中継ノード５３のトラフィック誘引力「０．０１２」に重みパラメータの値「０．２」を乗算した結果「０．００２４」が、エッジノード５１から中継ノード５３へのリンクに関するトラフィック誘引力となる。このトラフィック誘引力が、エッジノード５１において、中継ノード５３に接続された通信インタフェースに対応付けて記憶される。
【０１４０】
エッジノード５１では、エッジノード５４宛のパケットを、各通信インタフェースに対して設定されたトラフィック誘引力に応じて、式（７）に示す確率により比例分配する。
図１７は、トラフィック誘引力更新後のパケットの振り分け状況を示す図である。エッジノード５１における中継ノード５２との間のリンクに対する振り分け確率Ｐk,i（ｄ）は、「０．０５８５／｛０．０５８５＋０．００２４｝」である。この確率Ｐk,i（ｄ）で、エッジノード５１に入力された５０Ｍｂｐｓのトラフィックが中継ノード５２に転送される。その結果、中継ノード５２を経由してエッジノード５４に転送されるトラフィックは、４８．０２６Ｍｂｐｓ（約４８Ｍｂｐｓ）となる。
【０１４１】
エッジノード５１における中継ノード５３との間のリンクに対する振り分け確率Ｐk,j（ｄ）は、「０．００２４／｛０．０５８５＋０．００２４｝」である。この確率Ｐk,j（ｄ）で、エッジノード５１に入力された５０Ｍｂｐｓのトラフィックが中継ノード５３に転送される。その結果、中継ノード５３を経由してエッジノード５４に転送されるトラフィックは、１．９７Ｍｂｐｓ（約２Ｍｂｐｓ）となる。
【０１４２】
このようにしてトラフィックの集約が促進される。更新後のトラフィック誘引力に応じてトラフィックの分配比率が変更されると、その後、宛先側のエッジノード５４においてトラフィック誘引力を計算した際に、集約されたトラフィック誘引力に応じた高い値が算出される。さらに、中継ノード５２を経由するトラフィック量も増加しているため、中継ノード５２のトラフィック誘引力も増大する。このように、各ルータにおけるトラフィック誘引力が更新されるごとに、トラフィックの集約度が高まり、最終的には中継ノード５３を経由するトラフィックを無くすことができる。
【０１４３】
ところで、トラフィックの集約度を高めると、トラフィック全体の量が増加したときに、輻輳が発生し易くなる。そこで、本実施の形態では、輻輳が発生する前に、所定の閾値を超えるトラフィックが発生したリンクがある場合、そのリンクへのトラフィックの送出元となるルータが制御パケットを用いてアラーム情報を発信する。アラーム情報を受信した各ルータは、パケットの振り分けモードを、集約モードから分配モードに変更する。
【０１４４】
図１８は、アラーム情報の転送状況を示す図である。図１８の例では、識別子「ｉ」の中継ノード３２から識別子「ｊ」の中継ノード３３へのトラフィックが、トラフィック利用制限値を超えたものとする。この場合、中継ノード３２において、中継ノード３３へのリンクを介して送出するトラフィックがトラフィック利用制限値を超えたことを認識する。そして、中継ノード３２において、トラフィックがトラフィック利用制限値を超えたリンク（輻輳回避対象リンク）に関するアラーム情報（ａi）が生成される。
【０１４５】
アラーム情報としては、各輻輳回避対象リンクのトラフィックがトラフィック利用制限値以下に戻るように、規制率ａが以下の式により定期的に算出される。
ａi［ｔ］＝ａi［ｔ−１］＋ｆ1（Ｔi,j−Ｔｒi,j［ｔ］）    ・・・（８）
初期値  ａi［０］＝１    ・・・（９）
規制率ａの添え字は、輻輳回避対象リンクを検出したルータの識別子である。従って、ａi［ｔ］は、中継ノード３２が輻輳回避対象リンクを検出したことを示している。ｔは、規制率ａの算出が何周期目かを示す整数である。振り分けモードが分散モードに移行し、最初の規制率計算においては、ｔは「１」である。ｔは、規制率を計算するごとに１ずつカウントアップされる。なお、式（８）では、規制率の計算に一回前に計算した規制率ａi［ｔ−１］を用いている。そこで、最初の規制率の計算（ｔ＝１のとき）における式（８）の計算を可能とするため、式（９）に示すようにａi［０］＝「１」と定義する。
【０１４６】
Ｔi,jは、トラフィック利用制限値である。Ｔｒi,j［ｔ］は、ｔ回目の規制率の計算時における輻輳回避対象リンクの利用率（トラフィック量／リンク容量）である。
関数ｆ1は、輻輳回避対象リンク｛ｉ，ｊ｝のトラフィック利用制限値を超えないように設計されるフィードバックコントローラである。フィードバックコントローラとしては、代表的なＰＩ（Proportional-Integral）コントローラを用いることができる。ＰＩコントローラを用いた場合の規制率ａの計算式を以下に示す。
ａi［ｔ］＝ａi［ｔ−１］＋Ｐ1×（ｅi,j［ｔ］−ｅi,j［ｔ−１］）＋Ｉ1×ｅi,j［ｔ］                                              ・・・（１０）
ｅi,j［ｔ］＝Ｔi,j−Ｔｒi,j［ｔ］      ・・・（１１）
ここでＰ1，Ｉ1は、ＰＩコントローラにおける制御パラメータである。ｅはトラフィック利用制限値Ｔi,jと輻輳回避対象リンクのトラフィック量との偏差を表す。式（１０）に示すコントローラは、トラフィックの利用率が高負荷であるときに、偏差がなくなるように規制率ａを制御するものである。
【０１４７】
このようにして算出された規制率がアラーム情報に含められる。そして、アラーム情報を含む制御パケット７１〜７３がそれぞれエッジノード３１、中継ノード３９，４０に送信される。
【０１４８】
アラーム情報を含む制御パケット７１を受信したエッジノード３１は、自己の振り分けモードを、集約モードから分散モードに変更する。そして、エッジノード３１は、アラーム情報が付与された制御パケット受信時において、識別子「ｄ」のエッジノード３６宛のトラフィック誘引力を更新する。
【０１４９】
分散モードでのリンクごとのトラフィック誘引力の更新は、アラーム情報を含む制御パケットを受信したリンク以外のリンクのトラフィック誘引力がすべて０か否かによって計算方法が異なる。
【０１５０】
エッジノード３１において、中継ノード３２以外へのリンクのトラフィック誘引力がすべて０の場合（完全集約状態）、以下の式により、新たなトラフィック誘引力が計算される。
ｉｆ（｛Σlτk,l｝＝０）  （ｌ≠ｉ）                          ・・・（１２）
τk,i（ｄ）＝ａi［ｔ］×τk,i（ｄ）                            ・・・（１３）
τk,l（ｄ）＝（１−ａi［ｔ］）×τk,i（ｄ）／（総リンク数−１）  ・・・（１４）
なお、式（１３）、式（１４）における「＝」の記号は、右辺の値を左辺の変数へ代入することを表す代入演算子である。また、式（１４）における「τk,i（ｄ）」には、式（１３）の計算結果として得られた値が代入される。さらに、式（１４）における要素ｌは、アラーム情報の送信元であるルータの識別子「ｉ」以外の隣接するルータの識別子である（ｌ≠ｉ）。
【０１５１】
式（１２）は、式（１３）、式（１４）に示す計算の実行条件を示している。アラーム情報送信元である識別子「ｉ」の中継ノード３２へのリンク以外のリンクのトラフィック誘引力がすべて０であれば、式（１３）、式（１４）に示す計算により、新たなトラフィック誘引力が算出される。
【０１５２】
式（１３）は、アラーム情報送信元である識別子「ｉ」の中継ノード３２へのリンクに関するトラフィック誘引力の計算式である。式（１３）では、現在のトラフィック誘引力に対してアラーム情報に示される規制率を乗算した結果を、新たなトラフィック誘引力に設定することを示している。
【０１５３】
式（１４）は、アラーム情報送信元である識別子「ｉ」の中継ノード３２以外のルータへのリンクに関するトラフィック誘引力の計算式である。式（１４）では、１から規制率を減算した値を、式（１３）の計算により得られたトラフィック誘引力に乗算し、総リンク数より１少ない数で除算している。総リンク数より１少ない数とは、エッジノード３１からエッジノード３６に通信可能なリンクのうち、アラーム情報送信元である識別子「ｉ」の中継ノード３２へのリンクを除外したリンクの数を意味している。
【０１５４】
エッジノード３１において、中継ノード３２以外へのリンクのトラフィック誘引力の総和が０より大きくなった場合（非完全集約状態）、以下の式により、新たなトラフィック誘引力が計算される。
ｉｆ（｛Σlτk,l｝＝０）  （ｌ≠ｉ）                          ・・・（１５）
τk,i（ｄ）＝｛｛Ｐk,i（ｄ）×ａi［ｔ］｝／１−Ｐk,i（ｄ）×ａi［ｔ］｝×Σlτk,l（ｄ）    （ｌ≠ｉ）                                            ・・・（１６）
式（１５）は、式（１６）に示す計算の実行条件を示している。アラーム情報送信元である識別子「ｉ」の中継ノード３２へのリンク以外のリンクのトラフィック誘引力の総和が０より大きければ、式（１６）に示す計算により、新たなトラフィック誘引力が算出される。なお、アラーム情報送信元である識別子「ｉ」の中継ノード３２へのリンク以外のリンクの新たなトラフィック誘引力τk,l（ｄ）は、集約モードのときと同じように、制御パケットを受け取るごとに、その制御パケットで通知された値に更新される。
【０１５５】
結果として、識別子「ｄ」のエッジノード３６宛のトラフィックに対するエッジノード３１からのすべての出先リンクｌへの振り分け確率は以下のように設定される。
Ｐk,l（ｄ）＝τk,l（ｄ）／Σlτk,l（ｄ）    ・・・（１７）
式（１７）における要素ｌには、「ｉ」も含めエッジノード３１との間にリンクを有するすべてのルータの識別子が設定される。
【０１５６】
次に、図１９〜図２２を参照し、輻輳回避のためのトラフィック誘引力の更新例を説明する。なお、以下の例では、フィードバックコントローラとして式（１０）、式（１１）に示したＰＩコントローラを用いるものとする。なお、輻輳回避時のトラフィック振り分け処理は、輻輳回避対象リンクを経由するパスへのトラフィックのみが存在する場合（完全集約状態）と、輻輳回避対象リンクを経由するパス以外のパスへのトラフィックも存在する場合（非完全集約状態）とで異なる。そこで、完全集約状態と非完全集約状態とにおける輻輳回避状況を順に説明する。
【０１５７】
図１９は、完全集約状態における輻輳回避対象リンクの検出状況を示す図である。エッジノード５１は、集約モードによって動作している。エッジノード５１から中継ノード５２へのリンクにおける、エッジノード５４宛のトラフィックに関するトラフィック誘引力は０．５である。また、エッジノード５１から中継ノード５３へのリンクにおける、エッジノード５４宛のトラフィックに関するトラフィック誘引力は０である。エッジノード５１では、このような各リンクのトラフィック誘引力に基づいて、エッジノード５４宛のトラフィックを比例分配しているものとする。
【０１５８】
このような状況下で、エッジノード５１に入力されたエッジノード５４宛のトラフィックが８０Ｍｂｐｓの状態がしばらくの間継続した後、９０Ｍｂｐｓに増加した場合を想定する。この場合、すべてのトラフィックが中継ノード５２を経由する経路に振り分けられる。ここで、式（１０）に示した制御パラメータＰ1，Ｉ1は、それぞれＰ1＝０．５、Ｉ1＝０．１とする。
【０１５９】
また、中継ノード５２からエッジノード５４へのリンクに関するトラフィック利用制限値は０．８であるものとする。すなわち、各リンクのリンク容量が１００Ｍｂｐｓであるため、トラフィックが８０Ｍｂｐｓを超えた場合に中継ノード５２からエッジノード５４へのリンクが輻輳回避対象リンクとして検出される。
【０１６０】
図１９の状態では、中継ノード５２を経由する経路にトラフィックが集約されている。そのため、エッジノード５４宛のトラフィックが８０Ｍｂｐｓから９０Ｍｂｐｓに増加すると、中継ノード５２において、中継ノード５２からエッジノード５４へのリンクが輻輳回避対象リンクとして検出される。すると、中継ノード５２が規制率を計算する。
【０１６１】
ここで、１周期前（ｔ＝０）の規制率ａi（０）は、式（９）に基づいて「１」である。式（１１）に示す現時（ｔ＝１）の偏差をｅ１とすると、ｅ１＝０．８−０．９＝−０．１である。１周期前（ｔ＝０）の偏差をｅ２とすると、ｅ２＝０．８−０．８＝０である。
【０１６２】
そうすると、現時（ｔ＝１）における規制率ａi（１）は、以下のようになる。
ａi（１）＝１＋Ｐ1×（ｅ１−ｅ２）＋Ｉ1×ｅ１＝０．９４    ・・・（１８）
このような規制率を含むアラーム情報が中継ノード５２で生成され、制御パケットに含められる。そして、アラーム情報を含む制御パケットがエッジノード５１に送信される。すると、エッジノード５１において振り分けモードが分散モードに変更され、エッジノード５４宛のパケットを転送可能なすべてのリンクに関するトラフィック誘引力が更新される。
【０１６３】
図２０は、完全集約状態におけるアラーム情報に基づくトラフィック誘引力の更新状況を示す図である。規制率が０．９４、直前のトラフィック誘引力が０．５であることから、エッジノード５１から中継ノード５２へのリンクに関するトラフィック誘引力τk,i（ｄ）は、式（１３）に基づいて０．９４×０．５＝０．４７となる。また、エッジノード５１から中継ノード５３へのリンクに関するトラフィック誘引力τk,j（ｄ）は、先に選出されたトラフィック誘引力τk,i（ｄ）を用い、式（１４）に基づいて｛１−０．９４｝×０．４７／１＝０．０２８２となる。
【０１６４】
これらのトラフィック誘引力に基づいて、各リンクへのトラフィックの振り分け確率が式（７）を用いて算出される。その振り分け確率に基づいてトラフィックを振り分けることで、エッジノード５１から中継ノード５２への転送トラフィック量は、９０×０．４７／（０．４７＋０．０２８２）＝８４．９１Ｍｂｐｓ（約８４．９Ｍｂｐｓ）となる。また、エッジノード５１から中継ノード５３への転送トラフィック量は、９０×０．０２８２／（０．４７＋０．０２８２）＝５．０９Ｍｂｐｓ（約５．１Ｍｂｐｓ）となる。
【０１６５】
この状態では、またエッジノード５１から中継ノード５２へのトラフィックが、トラフィック利用制限値０．８（８０Ｍｂｐｓ）を超えている。そのため、中継ノード５２は、所定間隔で繰り返しアラーム情報を含む制御パケットをエッジノード５１に送信する。エッジノード５１では、アラーム情報を取得するごとにトラフィック誘引力を更新する。その結果、エッジノード５１から中継ノード５２へのトラフィックは、トラフィック利用制限値付近に収束する。
【０１６６】
次に、アラーム情報受信時に、そのアラーム情報が入力されたリンク以外のリンクのトラフィックが０より大きい場合（非完全集約状態）の例を図２１、図２２を参照して説明する。
【０１６７】
図２１は、非完全集約状態における輻輳回避対象リンクの検出状況を示す図である。エッジノード５１は、集約モードによって動作している。エッジノード５１から中継ノード５２へのリンクにおける、エッジノード５４宛のトラフィックに関するトラフィック誘引力は０．５である。また、エッジノード５１から中継ノード５３へのリンクにおける、エッジノード５４宛のトラフィックに関するトラフィック誘引力は０．０１である。エッジノード５１では、このような各リンクのトラフィック誘引力に基づいて、エッジノード５４宛のトラフィックを比例分配しているものとする。
【０１６８】
このような状況下で、エッジノード５１に入力されたエッジノード５４宛のトラフィックが８０Ｍｂｐｓの状態がしばらくの間継続した後、９０Ｍｂｐｓに増加した場合を想定する。エッジノード５４宛のトラフィックが９０Ｍｂｐｓになると、中継ノード５２を経由する経路に８８Ｍｂｐｓのトラフィックが振り分けられ、中継ノード５３を経由する経路に２Ｍｂｐｓのトラフィックが振り分けられる。ここで、式（１０）に示した制御パラメータＰ1，Ｉ1は、それぞれＰ1＝０．５、Ｉ1＝０．１とする。また、中継ノード５２からエッジノード５４へのリンクに関するトラフィック利用制限値は０．８であるものとする。
【０１６９】
図２１の状態では、中継ノード５２を経由する経路にほとんどのトラフィックが流入している。そのため、エッジノード５４宛のトラフィックが８０Ｍｂｐｓから９０Ｍｂｐｓに増加すると、中継ノード５２において、中継ノード５２からエッジノード５４へのリンクが輻輳回避対象リンクとして検出される。すると、中継ノード５２が規制率を計算する。
【０１７０】
ここで、１周期前（ｔ＝０）の規制率ａi（０）は、式（９）に基づいて「１」である。式（１１）に示す現時（ｔ＝１）の偏差をｅ１とすると、ｅ１＝０．８−０．８８＝−０．０８である。１周期前（ｔ＝０）の偏差をｅ２とすると、ｅ２＝０．８−０．８＝０である。
【０１７１】
そうすると、現時（ｔ＝１）における規制率ａi（１）は、以下のようになる。
ａi（１）＝１＋Ｐ1×（ｅ１−ｅ２）＋Ｉ1×ｅ１＝０．９５２    ・・・（１８）
このような規制率を含むアラーム情報が中継ノード５２で生成され、制御パケットに含められる。そして、アラーム情報を含む制御パケットがエッジノード５１に送信される。すると、エッジノード５１において振り分けモードが分散モードに変更され、エッジノード５４宛のパケットを転送可能なすべてのリンクに関するトラフィック誘引力が更新される。
【０１７２】
図２２は、非完全集約状態におけるアラーム情報に基づくトラフィック誘引力の更新状況を示す図である。アラーム情報を取得したエッジノード５１では、アラーム情報に含まれる規制率を用いた式（１６）によって、中継ノード５２へのリンクのトラフィック誘引力が算出される。
【０１７３】
ここで、式（１６）中のＰk,i（ｄ）は、０．５／（０．５＋０．０１）である。ａi［ｔ］は、式（１８）に示された値０．９５２である。Σlτk,l（ｄ）は、中継ノード５３へのリンクのトラフィック誘引力０．０１である。これらの値を式（１６）に代入すると、トラフィック誘引力τk,i（ｄ）＝｛０．５／（０．５＋０．０１）×０．９５２｝／｛１−０．５／（０．５＋０．０１）×０．９５２｝×０．０１＝０．１４となる。
【０１７４】
他方、エッジノード５１から中継ノード５３へのリンクのトラフィック誘引力は、アラーム情報を受信しても更新されない。そのため、以前のままリンクのトラフィック誘引力は０．０１である。
【０１７５】
これらのトラフィック誘引力に基づいてトラフィックを振り分けると、エッジノード５１から中継ノード５２へは、９０×０．１４／（０．１４＋０．０１）＝８４Ｍｂｐｓのトラフィックが振り分けられる。また、エッジノード５１から中継ノード５３へは、９０×０．０１／（０．１４＋０．０１）＝６Ｍｂｐｓのトラフィックが振り分けられる。
【０１７６】
以上のようにして、トラフィックの集約と輻輳の回避が行われる。トラフィックを集約した場合、トラフィックが発生していないルータは機能を停止することができる。例えば、図１９の中継ノード５３は停止可能である。各ルータは、トラフィックが途絶えると自律的にスリープ状態に移行する機能を有している。
【０１７７】
図２３は、スリープ処理の手順を示すフローチャートである。スリープ処理は、ルータの起動時、およびスリープ状態から通常状態への復帰時に開始される。以下、ルータ１００が実行するものとして、図２３に示す処理をステップ番号に沿って説明する。
【０１７８】
［ステップＳ４１］スリープ制御部１１０は、所定期間以上トラフィックの流入がないか否かを判断する。所定期間以上トラフィックの流入がなければ、処理がステップＳ４２に進められる。トラフィックの流入があるか、あるいは流入のない期間が所定期間未満であれば、ステップＳ４１の処理が繰り返される。
【０１７９】
［ステップＳ４２］スリープ制御部１１０は、自律的にルータ１００の機能を休止する。この場合、通信インタフェースを介して流入したトラフィックを受信する機能、トラフィックの受信をスリープ制御部１１０が検知する機能、および制御パケットの伝播機能については、動作が継続される。
【０１８０】
このように、本実施の形態では、休止中のルータにおいても、制御パケットのやり取りを行うことができるようにしている。これにより、ルータが休止している場合でも、そのルータを経由した経路によりパケットの伝送が可能であることを他のルータに認識させることができる。
【０１８１】
このようにしてスリープ状態になったルータ１００は、トラフィックの流入に起因して自律的に起動（ウェイク）する。
図２４は、ウェイク処理の手順を示すフローチャートである。ウェイク処理は、通常状態からスリープ状態へ移行したときに開始される。以下、ルータ１００が実行するものとして、図２４に示す処理をステップ番号に沿って説明する。
【０１８２】
［ステップＳ５１］スリープ制御部１１０は、トラフィックの流入があるか否かを判断する。トラフィックがある場合、処理がステップＳ５２に進められる。トラフィックがなければ、ステップＳ５１の処理が繰り返される。
【０１８３】
［ステップＳ５２］スリープ制御部１１０は、ルータ１００の休止している機能を起動させる。
このようにして、自律的に休止状態から通常状態に復帰できる。
【０１８４】
なお、第１の実施の形態によるトラフィックの集約処理は、１つのエッジノード宛のトラフィックが複数のエッジノードで発生した場合にも、適切にトラフィックを集約できる。
【０１８５】
図２５は、トラフィックの集約例を示す図である。図２５では、５台のルータ８１〜８５がリング状に接続されている。ルータ８１を基準にすると、反時計回りにルータ８２、ルータ８３、ルータ８４、およびルータ８５が配置されている。ここで、ルータ８１の識別子を「Ａ」、ルータ８２の識別子を「Ｂ」、ルータ８４の識別子を「Ｃ」とする。
【０１８６】
このようなネットワークトポロジにおいて、識別子「Ａ」のルータ８１から識別子「Ｃ」のルータ８４まで利用率が０．３となるトラフィックを与え、識別子「Ｂ」のルータ８２から識別子「Ｃ」のルータ８４まで利用率が０．４となるトラフィックを与えた。このときの各パスのトラフィックの推移をグラフ９１〜９４に示している。各グラフ９１〜９４は、横軸に時間、縦軸に対応するパスのトラフィック利用率を示している。
【０１８７】
グラフ９１は、識別子「Ａ」のルータ８１から識別子「Ｂ」のルータ８２へのパス（パス＃１）に流入するトラフィックを示している。グラフ９２は、識別子「Ｂ」のルータ８２から識別子「Ａ」のルータ８１へのパス（パス＃１）に流入するトラフィックを示している。グラフ９３は、識別子「Ａ」のルータ８１から識別子「Ｃ」のルータ８４へのパス（パス＃２）に流入するトラフィックを示している。グラフ９４は、識別子「Ｂ」のルータ８２から識別子「Ｃ」のルータ８４へのパス（パス＃３）に流入するトラフィックを示している。
【０１８８】
グラフ９１を参照すると、パス＃１には、トラフィック発生直後は、ルータ８１に入力されたトラフィックの一部が流入している。その後、過渡状態では、徐々にパス＃１への流入トラフィックが増加する。そして、ルータ８１に入力されたトラフィックのすべてがパス＃１に流入するようになった後は定常状態となり、その状態が維持されている。
【０１８９】
グラフ９２を参照すると、パス＃１には、トラフィック発生直後は、ルータ８２に入力されたトラフィックの一部が流入している。その後、過渡状態では、徐々にパス＃１への流入トラフィックが減少する。そして、パス＃１のトラフィックが０になった後は定常状態となり、その状態が維持されている。
【０１９０】
グラフ９３を参照すると、パス＃２には、トラフィック発生直後は、ルータ８１，８２に入力されたトラフィックの一部が流入している。その後、過渡状態では、徐々にパス＃２への流入トラフィックが減少する。そして、パス＃２のトラフィックが０になった後は定常状態となり、その状態が維持されている。
【０１９１】
グラフ９４を参照すると、パス＃３には、トラフィック発生直後は、ルータ８１，８２に入力されたトラフィックの一部が流入している。その後、過渡状態では、徐々にパス＃３への流入トラフィックが増加する。そして、ルータ８１，８２に入力されたトラフィックのすべてがパス＃３に流入するようになった後は定常状態となり、その状態が維持されている。
【０１９２】
このように、時間の経過と共にトラフィックの集約が進行し、最終的にはパス＃１とパス＃４のみが使用される。その結果、ルータ８５については流入するトラフィックがなくなり、休止可能である。
【０１９３】
次に、図２５の定常状態からルータ８２に入力されるルータ８４宛のトラフィックが増加した場合の輻輳回避制御について説明する。
図２６は、トラフィック増加時の輻輳回避状況を示す図である。図２６の例では、識別子「Ｂ」のルータ８２から識別子「Ｃ」のルータ８４宛のトラフィックが、パス＃３の利用率が０．７となる程度まで増加している。トラフィック増加前の定常状態では、ルータ８１に入力された利用率０．３のトラフィックもパス＃３を経由してルータ８４に到達している。すると、パス＃３では、トラフィック増加直後に利用率がほぼ１となる。
【０１９４】
ここで、パス＃３に含まれるリンクのトラフィック利用制限値が０．８であるものとする。すると、ルータ８２，８３において、トラフィック利用率がトラフィック利用制限値を超えたことが検出される。図２６の例では、トラフィック利用率がトラフィック利用制限値を超えたことを、ルータ８２より先にルータ８３が検出したものとする。その場合、ルータ８３からルータ８２へアラーム情報を含む制御パケットが送信される。アラーム情報を取得したルータ８２では、振り分けモードを集約モードから分散モードに変更する。その結果、トラフィックがグラフ９５〜９８に示すように遷移する。各グラフ９５〜９８は、横軸に時間、縦軸に対応するパスのトラフィック利用率を示している。
【０１９５】
グラフ９５は、識別子「Ａ」のルータ８１から識別子「Ｂ」のルータ８２へのパス（パス＃１）に流入するトラフィックを示している。グラフ９６は、識別子「Ｂ」のルータ８２から識別子「Ａ」のルータ８１へのパス（パス＃１）に流入するトラフィックを示している。グラフ９７は、識別子「Ａ」のルータ８１から識別子「Ｃ」のルータ８４へのパス（パス＃２）に流入するトラフィックを示している。グラフ９８は、識別子「Ｂ」のルータ８２から識別子「Ｃ」のルータ８４へのパス（パス＃３）に流入するトラフィックを示している。
【０１９６】
グラフ９５を参照すると、パス＃１には、トラフィックの増加前後を通じてルータ８１に入力されたトラフィックのすべてが流入している。
グラフ９６を参照すると、トラフィックの増加前は、パス＃１へのルータ８２からのトラフィックの流入は０である。ルータ８２に入力されるトラフィックが増加し、ルータ８２が分散モードでのパケットの振り分けを開始すると、ルータ８２に入力されたトラフィックの一部（パス＃３におけるトラフィック利用制限値を超えた余剰分）がパス＃１に流入している。
【０１９７】
グラフ９７を参照すると、トラフィックの増加前のパス＃２への流入トラフィックは０である。そして、トラフィックの増加に伴いパス＃２に対してトラフィックが流入する。このトラフィックの流入量は、ルータ８２からパス＃１に流入したトラフィック量と同じである。なお、ルータ８５は、トラフィックの流入開始を検知して休止していた機能を起動する。そして、スリープ状態から通常動作に復帰したルータ８５が、パス＃２に流入したトラフィックを適切にルータ８４に転送する。
【０１９８】
グラフ９８を参照すると、パス＃３には、トラフィック増加前はルータ８１，８２に入力されたすべてのトラフィックが流入している。ルータ８２に入力されるトラフィックが増加すると、一瞬だけトラフィック利用率がトラフィック利用制限値を超える分のトラフィックが流入し、その後トラフィック利用率がトラフィック利用制限値となるだけのトラフィック量に収束する。パス＃３で転送しきれない余剰トラフィックは、パス＃１、パス＃２を経由してルータ８４に伝送される。
【０１９９】
このようにして、各ルータ８１〜８５が自律的に動作しながら、輻輳の発生を回避することができる。
［第２の実施の形態］
第２の実施の形態は、順位付け方式によりトラフィックを分散させるものである。順位付け方式では、トラフィック振り分けモードの管理が不要となる。
【０２００】
第２の実施の形態におけるルータは、図５に示した第１の実施の形態と同様の要素を有している。ただし、第２の実施の形態では、モード情報記憶部１２６は不要である。また、第２の実施の形態では、トラフィック制御部１３０の機能が第１の実施の形態と異なる。
【０２０１】
第２の実施の形態におけるトラフィック制御部１３０は、順位付け方式によりトラフィックの振り分けを行う。
図２７は、順位付け方式によるトラフィックの振り分け状況を示す図である。順位付け方式では、宛先のパケットを転送可能なリンクについて、そのリンクのトラフィック誘引力に基づいて順位付けを行う。トラフィック誘引力の値が大きいリンクほど、順位が上位となる。図２７には、エッジノード５１に入力されたエッジノード５４宛のトラフィックの振り分け状況を示している。この例では、中継ノード５２の順位が１位であり、中継ノード５３の順位が２位である。
【０２０２】
このような場合、エッジノード５１に入力されたトラフィックは、中継ノード５２に対して優先的に転送される。トラフィック利用制限により中継ノード５２へ転送できない分のトラフィックは、順位が２位の中継ノード５３に転送される。
【０２０３】
図２８は、順位付け方式によるトラフィックの振り分けを概念的に示す図である。あるルータに入力されたトラフィックは、宛先に到達するトラフィック誘引力が最も大きいリンク（１位のリンク）に送出確率１００％を分配する。トラフィックが増加し、１位のリンクのトラフィック利用率がトラフィック利用制限値に達すると、１位のリンクで転送しきれない分のトラフィックが２位のリンクに流入する。以後同様に、２位のリンクもトラフィック利用制限値を超えた場合、１位、２位のリンクで転送しきれない分のトラフィックが３位のリンクに流入する。
【０２０４】
なお、トラフィック誘引力が同じ値のリンクが複数ある場合、リンクのインデックス（例えば、リンクの識別番号）の若い順などで順位付けが行われるものとする。
次に、図２７に示す構成において、識別子「ｄ」のエッジノード５４宛のトラフィックをエッジノード５１で振り分ける場合の、各リンクへの振り分け確率の計算方法を説明する。エッジノード５１では、エッジノード５４宛のトラフィックを送出可能な各リンクを、トラフィック誘引力で順位付けする。そして、エッジノード５１は、各リンクに対してエッジノード５４宛のトラフィックを送出する確率Ｐを、一般的なフィードバックコントローラｆを用いて、リンクの利用制限値を超えないように決めることができる。順位が１位のリンクへの送出の確率をＰ＿１（ｄ）［ｔ］、順位が２位のリンクへの送出の確率をＰ＿２（ｄ）［ｔ］とすると、各確率は以下の式で表される。なお、確率Ｐは制御パケットを受信した時点で更新され、ｔは更新周期で何周期目かを示す整数である。
・１位リンク：
Ｐ＿１（ｄ）［ｔ］＝Ｐ＿１（ｄ）［ｔ−１］＋ｆ2（Ｔx）    ・・・（１９）
０≦Ｐ＿１（ｄ）［ｔ］≦１      ・・・（２０）
・２位リンク：
Ｐ＿２（ｄ）［ｔ］＝Ｐ＿２（ｄ）［ｔ−１］＋ｆ2（Ｔx）    ・・・（２１）
０≦Ｐ＿２（ｄ）［ｔ］≦（１−Ｐ＿１（ｄ）［ｔ］）      ・・・（２２）
３位リンク以下も同様に、上位のリンクの振り分け確率の合計値を１から減算した値の範囲内で、確率計算される。
【０２０５】
Ｔxは、確率計算対象のリンクの識別子が「ｘ」の場合の該当リンクのトラフィック利用制限値である。ここで、関数ｆ2は特定順位のリンクの利用制限を超えないように設計されるフィードバックコントローラである。フィードバックコントローラとしては、代表的なＰＩコントローラを用いることができる。その場合、識別子が「ｘ」のリンクへのトラフィックの振り分け確率は、以下のような式で表すことができる。
Ｐx［ｔ］＝Ｐx［ｔ−１］＋Ｐ2×（ｅx［ｔ］−ｅx［ｔ−１］）＋Ｉ2×ｅx［ｔ］
・・・（２３）
ｅx［ｔ］＝Ｔx−Ｔｒx［ｔ］      ・・・（２４）
ただし、Ｐ2、Ｉ2は制御パラメータである。ｅx［ｔ］は、識別子「ｘ」のリンクのトラフィック利用制限値Ｔxと、そのリンクのトラフィック利用率の偏差を表す。式（２３）、式（２４）に示すコントローラは、リンク使用率が高負荷であるときに偏差がなくなるように、振り分け確率Ｐxを制御するものである。
【０２０６】
次に、順位付け方式によるトラフィック振り分けの具体例について説明する。
図２９は、順位付け方式によるトラフィック振り分け例を示す図である。この例は、図１６で示したようなトラフィックおよびトラフィック誘引力が生じている状態から順位付け方式により各リンクへのトラフィックの振り分け確率を更新した結果を示している。
【０２０７】
図１６の状態では、エッジノード５１から中継ノード５２へのリンクのトラフィック誘引力の方が、エッジノード５１から中継ノード５３へのリンクのトラフィック誘引力よりも大きい。そこで、エッジノード５１から中継ノード５２へのリンクの順位が１位となり、エッジノード５１から中継ノード５３へのリンクの順位が２位となる。
【０２０８】
ここで、式（２３）に示した制御パラメータＰ2，Ｉ2は、それぞれＰ2＝０．５、Ｉ2＝０．１とする。
まず、順位が１位のリンク（中継ノード５２を経由する経路）の振り分け確率Ｐ＿１（ｄ）が計算される。ここで、１周期前の時点で、該当リンクには５０Ｍｂｐｓのうちの３０Ｍｂｐｓのトラフィックが振り分けられている。そのため、１周期前の該当リンクへの振り分け確率は０．６である。また、エッジノード５１から中継ノード５２へのリンクに関するトラフィック利用制限値は０．９であるものとする。
【０２０９】
式（２４）に示される現時の偏差をｅ１とすると、ｅ１＝０．９−０．３＝０．６である。１周期前の偏差をｅ２とすると、ｅ２＝０．９−０．３＝０．６である。
そうすると、現時における振り分け確率Ｐ＿１（ｄ）は、以下のようになる。
Ｐ＿１（ｄ）＝０．６＋Ｐ2×（ｅ１−ｅ２）＋Ｉ2×ｅ１＝０．６６    ・・・（２５）
算出されたＰ＿１（ｄ）の値０．６６は、１以下であり、式（２０）の条件を満たす。
【０２１０】
その結果、１位のリンクの転送トラフィック量は、５０×０．６６＝３３Ｍｂｐｓとなる。
次に、順位が２位のリンク（中継ノード５３を経由する経路）の振り分け確率Ｐ＿２（ｄ）が計算される。ここで、１周期前の時点で、該当リンクには５０Ｍｂｐｓのうちの２０Ｍｂｐｓのトラフィックが振り分けられている。そのため、１周期前の該当リンクへの振り分け確率は０．４である。また、エッジノード５１から中継ノード５３へのリンクに関するトラフィック利用制限値は０．９であるものとする。
【０２１１】
式（２４）に示される現時の偏差をｅ１とすると、ｅ１＝０．９−０．２＝０．７である。１周期前の偏差をｅ２とすると、ｅ２＝０．９−０．２＝０．７である。
そうすると、現時における振り分け確率Ｐ＿２（ｄ）は、以下のようになる。
Ｐ＿２（ｄ）＝０．４＋Ｐ2×（ｅ１−ｅ２）＋Ｉ2×ｅ１＝０．４７    ・・・（２６）
算出されたＰ＿２（ｄ）の値０．４７は、１−Ｐ＿１（ｄ）＝１−０．６６＝０．３４よりも大きい。そのため、式（２２）を満たす最大値である０．３４が、２位のリンクの振り分け確率として適用される。
【０２１２】
その結果、２位のリンクの転送トラフィック量は、５０×０．３４＝１７Ｍｂｐｓとなる。
次に、順位付け方式による輻輳回避制御について説明する。なお、順位付け方式では、フィードバックコントローラによって輻輳が回避されており、振り分けモードの変更といった制御は不要である。
【０２１３】
図３０は、順位付け方式においてトラフィックが過剰に発生した状況を示す図である。なお、図３０の例では、各リンクのトラフィック利用制限値は、０．８であるものとする。
【０２１４】
順位付け方式では、１位のリンクのトラフィック利用率がトラフィック利用制限値を超えていない間は、すべてのトラフィックが１位のリンクに集約される。図３０の例では、エッジノード５１から中継ノード５２へのリンクにトラフィックが集約されている。
【０２１５】
ここで、エッジノード５１では、中継ノード５２との間のリンクのトラフィック誘引力が０．５、中継ノード５３との間のリンクのトラフィック誘引力が０であるものとする。そのような状況で、エッジノード５１に入力されるエッジノード５４宛のトラフィックが、８０Ｍｂｐｓから９０Ｍｂｐｓに増加したものとする。この場合、フィードバックコントローラの機能により、輻輳が回避される。
【０２１６】
図３１は、順位付け方式における輻輳回避状況を示す図である。ここで、式（２３）に示した制御パラメータＰ2，Ｉ2は、それぞれＰ2＝０．５、Ｉ2＝０．１とする。
まず、順位が１位のリンク（中継ノード５２を経由する経路）の振り分け確率Ｐ＿１（ｄ）が計算される。ここで、１周期前の時点で、該当リンクには８０Ｍｂｐｓのすべてのトラフィックが振り分けられている。そのため、１周期前の該当リンクへの振り分け確率は１である。また、エッジノード５１から中継ノード５２へのリンクに関するトラフィック利用制限値は０．８である。
【０２１７】
式（２４）に示される現時の偏差をｅ１とすると、ｅ１＝０．８−０．９＝−０．１である。１周期前の偏差をｅ２とすると、ｅ２＝０．８−０．８＝０である。
そうすると、現時における振り分け確率Ｐ＿１（ｄ）は、以下のようになる。
Ｐ＿１（ｄ）＝１＋Ｐ2×（ｅ１−ｅ２）＋Ｉ2×ｅ１＝０．９４    ・・・（２７）
算出されたＰ＿１（ｄ）の値０．９４は、１以下であり、式（２０）の条件を満たす。
【０２１８】
その結果、１位のリンクの転送トラフィック量は、５０×０．９４＝８４．６Ｍｂｐｓとなる。
次に、順位が２位のリンク（中継ノード５３を経由する経路）の振り分け確率Ｐ＿２（ｄ）が計算される。ここで、１周期前の時点で、該当リンクにはトラフィックが振り分けられていない。そのため、１周期前の該当リンクへの振り分け確率は０である。また、エッジノード５１から中継ノード５３へのリンクに関するトラフィック利用制限値は０．８である。
【０２１９】
式（２４）に示される現時の偏差をｅ１とすると、ｅ１＝０．８−０＝０．８である。１周期前の偏差をｅ２とすると、ｅ２＝０．８−０＝０．８である。
そうすると、現時における振り分け確率Ｐ＿２（ｄ）は、以下のようになる。
Ｐ＿２（ｄ）＝０＋Ｐ2×（ｅ１−ｅ２）＋Ｉ2×ｅ１＝０．０８    ・・・（２８）
算出されたＰ＿２（ｄ）の値０．０８は、１−Ｐ＿１（ｄ）＝１−０．９４＝０．０６よりも大きい。そのため、式（２２）を満たす最大値である０．０６が、２位のリンクの振り分け確率として適用される。
【０２２０】
その結果、２位のリンクの転送トラフィック量は、９０×０．０６＝５．４Ｍｂｐｓとなる。
以上のようにして、第２の実施の形態は、振り分けモードの変更といった制御を行わなくても、輻輳回避制御を自律的に行うことができる。
【０２２１】
［第３の実施の形態］
第３の実施の形態は、中継ノードは、トラフィック誘引力の更新および伝播処理のみを行い、伝送のパスを送信側のエッジノードが決定するものである。ここでパスとは、トラフィックの宛先となるエッジノードまでの全伝送経路を指す。１つのパスには、ノード間のリンクが１つ以上含まれる。
【０２２２】
第３の実施の形態におけるルータは、図５に示した第１の実施の形態と同様の要素を有している。ただし、第１の実施の形態と第３の実施の形態とでは、機能が相違する要素がある。そこで、第３の実施の形態における第１の実施の形態と異なる機能について以下に説明する。
【０２２３】
まず、ルータが中継ノードとして機能する場合、トラフィック制御部１３０は、図１２に示すようなトラフィック制御処理を行うのではなく、流入したパケット内に示されるパスに従ってそのパケットを転送する。
【０２２４】
また、ルータがエッジノードとして機能する場合、誘引力更新部１２３は、制御パケットに含まれる情報に基づいて、宛先ごとのパスを認識し、パスごとのトラフィック誘引力を誘引力情報記憶部１２４に格納する。さらに、ルータがエッジノードとして機能する場合、トラフィック制御部１３０は、他のエッジノード宛のトラフィックをパスごとに振り分け、パスの経路情報を含むパケットを振り分け先のパスへ送出する。
【０２２５】
図３２は、第３の実施の形態における誘引力情報記憶部のデータ構造例を示す図である。第３の実施の形態では、誘引力情報記憶部１２４内に、宛先のエッジノードに対応するトラフィック誘引力テーブル１２４ｃ，１２４ｄが格納されている。トラフィック誘引力テーブル１２４ｃ，１２４ｄには、それぞれ宛先となるエッジノードの識別子が付与されている。また、トラフィック誘引力テーブル１２４ｃ，１２４ｄには、候補パス、出力インタフェース、ルート情報、およびトラフィック誘引力の欄が設けられている。
【０２２６】
候補パスの欄には、宛先となるエッジノードまでの伝送経路として選択可能なパス（候補パス）の識別子が設定される。
出力インタフェースの欄には、該当するパスにおける隣接するルータに接続された通信インタフェース（出力インタフェース）の識別子が設定される。トラフィック制御部１３０は、パケットを転送するためのパスを選択した場合、そのパスの出力インタフェースからパケットを送出する。
【０２２７】
ルート情報の欄には、対応するパスのルートを示す情報（ルート情報）が設定される。トラフィック制御部１３０は、パケットを送出する場合、ルート情報を参照し、送出するパケットに、そのパケットを中継するルータの識別子を含める。
【０２２８】
トラフィック誘引力の欄には、対応するパスのトラフィック誘引力が設定される。このトラフィック誘引力の設定方法は、第１の実施の形態と同様である。
このようなトラフィック誘引力テーブルを用いて、送信側のエッジノードにおいてパスごとのトラフィックの振り分けを行う。例えば、各パスのトラフィック誘引力に応じて、トラフィックを比例分配することができる。
【０２２９】
図３３は、第３の実施の形態におけるパスごとの振り分け確率を示す図である。図３３の例では、エッジノード２０１に入力されたエッジノード２０２宛のトラフィックを、３つのパス２１１〜２１３に振り分ける場合を想定している。
【０２３０】
エッジノード２０１は、エッジノード２０２に対応するトラフィック誘引力テーブル２０１ａを有している。なお、図３３の例では、トラフィック誘引力テーブル２０１ａのうち候補パスとトラフィック誘引力の欄のみを抜粋して示している。この例では、識別子「パス＃１」のパス２１１のトラフィック誘引力はτ1である。識別子「パス＃２」のパス２１２のトラフィック誘引力はτ2である。識別子「パス＃３」のパス２１３のトラフィック誘引力はτ3である。
【０２３１】
エッジノード２０１にＡ宛のパケット２２１が入力されると、トラフィック誘引力テーブル２０１ａに登録されたトラフィック誘引力に基づいて、各パス２１１〜２１３の振り分け確率が計算される。パス２１１の振り分け確率は、「τ1／（τ1＋τ2＋τ3）」である。パス２１２の振り分け確率は、「τ2／（τ1＋τ2＋τ3）」である。パス２１３の振り分け確率は、「τ3／（τ1＋τ2＋τ3）」である。
【０２３２】
このようにして、パスごとのトラフィック誘引力に基づいて、トラフィックの比例分配することができる。
また、第３の実施の形態では、エッジノードで生成される制御パケットをブロードキャストする。その制御パケットには、そのエッジノードまでのパスを示す情報（ルート情報）が含まれる。ルート情報は、中継ノードが制御パケットを伝播させるごとに、中継ノードによって更新される。
【０２３３】
図３４は、第３の実施の形態における制御パケットの伝播状況を示す図である。図３４では、エッジノード２３１から中継ノード２３２，２３３を経由してエッジノード２３４にいたるパスの例を示している。なお、エッジノード２３１の識別子が「ｈ」、中継ノード２３２の識別子が「ｉ」、中継ノード２３３の識別子が「ｊ」、エッジノード２３４の識別子が「ｋ」であるものとする。
【０２３４】
エッジノード２３４は、定期的に自己のトラフィック誘引力を計算する。さらに、エッジノード２３４は、自己のトラフィック誘引力を含む制御パケット２４１を生成し、隣接する中継ノード２３３に転送する。その際、エッジノード２３４は、制御パケット２４１のヘッダ部またはペイロード部に、送信元であるエッジノード２３４の識別子「ｋ」をルート情報として含める。なお、制御パケット２４１のヘッダにおける宛先のフィールドには、ブロードキャストアドレス（図３４中では「ＢＣ」と示す）が設定されている。
【０２３５】
制御パケット２４１を受信した中継ノード２３３は、第１の実施の形態と同様に、中継ノード２３３から流出するトラフィックに応じて、エッジノード２３４との間のリンクのトラフィック誘引力を計算する。さらに、中継ノード２３３は、第１の実施の形態と同様に、エッジノード２３４宛のトラフィックに関する自己のトラフィック誘引力を算出する。そして、中継ノード２３３は、計算したトラフィック誘引力を含む制御パケット２４２を生成し、隣接する中継ノード２３２に転送する。その際、中継ノード２３３は、受信した制御パケット２４１のルート情報に自己の識別子「ｊ」を追加し、更新後のルート情報を制御パケット２４２に含める。
【０２３６】
制御パケット２４２を受信した中継ノード２３２は、第１の実施の形態と同様に、中継ノード２３３との間のリンクに対応するトラフィック誘引力を算出する。そして、中継ノード２３２は、エッジノード２３４宛のトラフィックに関する自己のトラフィック誘引力を算出する。そして、中継ノード２３２は、自己のトラフィック誘引力を含む制御パケット２４３を生成し、隣接するエッジノード２３１に転送する。その際、中継ノード２３２は、受信した制御パケット２４２のルート情報に自己の識別子「ｉ」を追加し、更新後のルート情報を制御パケット２４３に含める。
【０２３７】
制御パケット２４３を受信したエッジノード２３１は、制御パケットに記載されたトラフィック誘引力をもとに、中継ノード２３２との間のリンクに対応するトラフィック誘引力を算出する。
【０２３８】
このように、エッジノード２３４で生成された制御パケット２４１は、各中継ノード２３３，２３２においてトラフィック誘引力とルート情報との更新を受けながら、エッジノード２３１に伝播する。エッジノード２３１では、受信した制御パケット２４３に基づいて、エッジノード２３４に対応するトラフィック誘引力テーブルを更新する。その後、エッジノード２３４宛のパケットがエッジノード２３１に入力されると、エッジノード２３１は、エッジノード２３４に対応するトラフィック誘引力テーブルを参照してトラフィックを転送するためのパスを決定する。
【０２３９】
図３５は、エッジノードでのトラフィックの振り分け状況を示す図である。エッジノード２３１は、エッジノード２３４に対応するトラフィック誘引力テーブル２３１ａを有している。そして、制御パケット２４３を受信したエッジノード２３１は、制御パケット２４３に含まれるルート情報により、エッジノード２３４までの１つのパスを認識する。具体的には、エッジノード２３１は、制御パケット２４３に含まれるルート情報と同じルート情報がトラフィック誘引力テーブル２３１ａに登録されているか否かを判断する。
【０２４０】
制御パケット２４３に示されるルート情報と同じルート情報がトラフィック誘引力テーブル２３１ａに登録されていなければ、エッジノード２３１は、新たな候補パスをトラフィック誘引力テーブル２３１ａに登録する。その場合、新たな候補パスには、他と異なるパス識別子が付与され候補パスの欄に設定される。また、新たな候補パスの出力インタフェースの欄には、制御パケット２４３が入力された通信インタフェースの識別子が設定される。新たな候補パスのルート情報の欄には、制御パケット２４３に含まれていたルート情報が設定される。新たな候補パスのトラフィック誘引力の欄には、制御パケット２４３に含まれていたトラフィック誘引力から計算された制御パケットの受信リンクに対応したトラフィック誘引力が設定される。
【０２４１】
他方、制御パケット２４３に示されるルート情報と同じルート情報がトラフィック誘引力テーブル２３１ａに既に登録されていれば、エッジノード２３１は、該当する候補パスのトラフィック誘引力を更新する。すなわち、エッジノード２３１は、制御パケット２４３に示されるルート情報で特定される候補パスのトラフィック誘引力の値を、制御パケット２４３から計算された制御パケットの受信リンクに対応したトラフィック誘引力に更新する。
【０２４２】
このようにして、エッジノード２３１は、新たな制御パケットを受信するごとにトラフィック誘引力テーブル２３１ａを更新する。その結果、エッジノード２３４との間のパスとして複数のルートが存在する場合、各ルートに対応する候補パスがトラフィック誘引力テーブル２３１ａに登録される。図３５の例では、３つの候補パスが登録されたものとする。
【０２４３】
その後、エッジノード２３１にエッジノード２３４宛のパケット２５０が入力されると、エッジノード２３１は、トラフィック誘引力テーブル２３１ａを参照して、振り分け確率を計算する。振り分け確率の計算方法は、図３３を参照して説明した通りである。そして、エッジノード２３１は、振り分け確率に示される確率で、候補パスのうちの１つを選択する。図３５の例では、制御パケット２４３でルート情報が通知された「パス＃１」の候補パスが選択されたものとする。
【０２４４】
エッジノード２３１は、選択した候補パスのルート情報を参照し、送出するパケット２５１を生成する。パケット２５１は、入力されたパケット２５０にルート情報で示される各ルータの識別子を宛先情報として追加したものである。中継ノードの識別子は、経路上でエッジノード２３１に近い位置の中継ノードから順に並べられる。図３５の例では、中継ノード２３２の識別子「ｉ」、中継ノード２３３の識別子「ｊ」、エッジノード２３４の識別子「ｋ」の順である。このように宛先情報を追加したパケット２５１が、出力インタフェースの欄に示される通信インタフェースを介して隣接する中継ノード２３２に転送される。
【０２４５】
中継ノード２３２は、パケット２５１を受信すると、パケット２５１の宛先情報から自己の識別子「ｉ」を除去する。識別子「ｉ」を除去した宛先情報は、次の転送先となるルータの識別子が先頭にくる。図３５の例では、パケット２５２の宛先情報の先頭は、中継ノード２３３の識別子「ｊ」である。そこで、中継ノード２３２は、宛先情報の先頭の識別子「ｊ」で示される中継ノード２３３宛にパケット２５２を転送する。
【０２４６】
中継ノード２３３は、パケット２５２を受信すると、パケット２５２の宛先情報から自己の識別子「ｊ」を除去する。識別子「ｊ」を除去したパケット２５３の宛先情報の先頭は、エッジノード２３４の識別子「ｋ」である。そこで、中継ノード２３３は、宛先情報の先頭の識別子「ｋ」で示されるエッジノード２３４宛にパケット２５３を転送する。
【０２４７】
このようにして、エッジノード間のパスを各エッジノードで管理し、各エッジノードがパス間のトラフィックの振り分けを行うことができる。その結果、中継ノードにおいて、トラフィック誘引力に応じた振り分け処理を行わずに済む。すなわち、中継ノードの処理負荷を低減することができる。
【０２４８】
［第４の実施の形態］
第４の実施の形態は、エッジノード間の情報の交換により中継ノード間のトラフィック量を推定し、中継ノードが制御パケット情報の更新をしなくても適切なトラフィックの振り分けができるようにしたものである。
【０２４９】
第４の実施の形態では、エッジノードにおいて各エッジノード間のパスを事前に構築し、パスに対応した物理経路を把握しておく。各エッジノードは、流入するパスごとにトラフィック量を計測する。この計測情報を各エッジノード間でやり取りし、事前に把握しているリンク（物理経路）情報を参照することにより、各中継ノードで転送しているデータ処理量を推定する。そして、各エッジノードが、推定トラフィック処理量を元に、第３の実施の形態と同様の手段で、エッジノード間パスごとのトラフィック誘引力を計算する。
【０２５０】
図３６は、第４の実施の形態におけるエッジノードの機能を示すブロック図である。エッジノード３００は、スリープ制御部３１０、誘引力管理部３２０、およびトラフィック制御部３３０を有している。スリープ制御部３１０は、図５に示した第１の実施の形態におけるスリープ制御部１１０と同様の機能を有している。
【０２５１】
誘引力管理部３２０は、ネットワーク上の各ルータ間のトラフィックの誘引力を管理する。そのために誘引力管理部３２０は、トラフィック計測部３２１、トラフィック情報送受信部３２２、エッジノード間トラフィック記憶部３２３、トラフィック推定部３２４、ルータ間トラフィック記憶部３２５、誘引力更新部３２６、および誘引力情報記憶部３２７を有している。
【０２５２】
トラフィック計測部３２１は、トラフィック制御部３３０によるパケットの送受信内容を監視し、他のエッジノードとの間のトラフィック量（論理接続トラフィック量）を計測する。トラフィック計測部３２１は、計測結果をエッジノード間トラフィック記憶部３２３に格納する。
【０２５３】
トラフィック情報送受信部３２２は、他のエッジノードとの間における通信の論理接続トラフィック量を示す情報を交換する。そして、トラフィック情報送受信部３２２は、他のエッジノードから受信した論理接続に関するトラフィック量の情報を、エッジノード間トラフィック記憶部３２３に格納する。
【０２５４】
エッジノード間トラフィック記憶部３２３は、ネットワーク内の各エッジノード間の論理接続トラフィック量を記憶する記憶機能である。例えば、エッジノード３００内のＲＡＭの記憶領域の一部が、エッジノード間トラフィック記憶部３２３として使用される。
【０２５５】
トラフィック推定部３２４は、エッジノード間トラフィック記憶部３２３を参照し、物理接続におけるトラフィック量（物理接続トラフィック量）を推定する。トラフィック推定部３２４は、推定した物理接続トラフィック量をルータ間トラフィック記憶部３２５に格納する。
【０２５６】
ルータ間トラフィック記憶部３２５は、ネットワーク内のルータ間の物理接続に関して推定されたトラフィック量を記憶する記憶機能である。例えば、エッジノード３００内のＲＡＭの記憶領域の一部が、ルータ間トラフィック記憶部３２５として使用される。
【０２５７】
誘引力更新部３２６は、ルータ間の物理接続に関して推定されたトラフィック量に基づいて、他のエッジノードへのパスごとのトラフィック誘引力を算出する。誘引力更新部３２６は、算出したパスごとの誘引力を、誘引力情報記憶部３２７に格納する。
【０２５８】
誘引力情報記憶部３２７は、エッジノード宛のトラフィックに関するパスごとのトラフィック誘引力を記憶する記憶機能である。例えば、エッジノード３００のＲＡＭ内の記憶領域の一部が、誘引力情報記憶部３２７として使用される。
【０２５９】
トラフィック制御部３３０は、ネットワーク内の他のエッジノード宛のパケットが入力されると、誘引力情報記憶部３２７を参照し、各パスのトラフィック誘引力に基づいて宛先への１つのパスを選択する。そして、トラフィック制御部３３０は、第３の実施の形態と同様に、転送対象のパケットをパス上の中継ノードの識別子を含め、そのパケットをパスを介して転送する。
【０２６０】
図３７は、エッジノード間トラフィック記憶部のデータ構造例を示す図である。エッジノード間トラフィック記憶部３２３には、エッジノード間トラフィック管理テーブル３２３ａが格納されている。エッジノード間トラフィック管理テーブル３２３ａには、パス、送信元エッジノード、宛先エッジノード、およびトラフィック量の欄が設けられている。
【０２６１】
パスの欄には、エッジノード間のパスを識別するための識別子が設定される。識別子で示されたパスの伝送経路（ルート情報）は、誘引力情報記憶部３２７内に定義されている。
【０２６２】
送信元エッジノードの欄には、トラフィックの送信元となるエッジノードの識別子が設定される。宛先エッジノードの欄には、トラフィックの宛先となるエッジノードの識別子が設定される。トラフィック量の欄には、送信元エッジノードで示されるエッジノードから宛先エッジノードで示されるエッジノード宛の単位時間当たりのトラフィック量が設定される。
【０２６３】
なお、パス、送信元エッジノード、宛先エッジノードの欄の情報は、システム管理者によって予め設定される。送信元エッジノード、宛先エッジノードの各欄の情報によって、論理トポロジが定義されている。また、送信元エッジノードと宛先エッジノードに対応するパスの識別子により、論理接続と物理的な伝送経路とが関連付けられている。トラフィック量の欄の情報は、トラフィック計測部３２１およびトラフィック情報送受信部３２２によって設定される。
【０２６４】
図３８は、ルータ間トラフィック記憶部のデータ構造例を示す図である。ルータ間トラフィック記憶部３２５には、ルータ間トラフィック管理テーブル３２５ａが格納されている。ルータ間トラフィック管理テーブル３２５ａには、送出ルータ、流入ルータ、推定トラフィック量、リンク容量、およびトラフィック利用制限値の欄が設けられている。
【０２６５】
送出ルータの欄には、ルータ間のリンクを介してトラフィックを送出するルータ（送出ルータ）の識別子が設定される。流入ルータの欄には、送出ルータから送出されたトラフィックが流入するルータ（流入ルータ）の識別子が設定される。推定トラフィック量の欄には、送出ルータから流入ルータへ転送される単位時間当たりのトラフィックの推定量が設定される。リンク容量の欄には、送出ルータから流入ルータへ単位時間当たりに転送可能なトラフィック量の最大値が設定される。トラフィック利用制限値の欄には、送出ルータから流入ルータへのトラフィック利用率の制限値が設定される。
【０２６６】
なお、ルータ間トラフィック管理テーブル３２５ａにおける送出ルータ、流入ルータ、リンク容量、およびトラフィック利用制限値の各欄の情報は、予めシステム管理者によって設定される。送出ルータ、流入ルータとの欄の情報によって、物理トポロジが定義されている。推定トラフィック量の欄の情報は、トラフィック推定部３２４によって設定される。
【０２６７】
図３９は、誘引力情報記憶部のデータ構造例を示す図である。誘引力情報記憶部３２７には、宛先となるエッジノードごとのトラフィック誘引力テーブル３２７ａ，３２７ｂ，・・・が格納されている。各トラフィック誘引力テーブル３２７ａ，３２７ｂ，・・・には、宛先となるエッジノードの識別子が設定されている。
【０２６８】
トラフィック誘引力テーブル３２７ａには、候補パス、出力インタフェース、ルート情報、およびトラフィック誘引力の欄が設けられている。
候補パスの欄には、宛先となるエッジノードまでの伝送経路として選択可能なパス（候補パス）の識別子が設定される。出力インタフェースの欄には、該当するパスにおける隣接するルータに接続された通信インタフェース（出力インタフェース）の識別子が設定される。ルート情報の欄には、対応するパスのルートを示す情報（ルート情報）が設定される。トラフィック誘引力の欄には、対応するパスのトラフィック誘引力が設定される。
【０２６９】
ネットワーク上の各エッジノードが以上のような構成を有する。そして、各エッジノードにおいて、ルータ間のトラフィック誘引力が計算される。
図４０は、トラフィック誘引力算出処理の手順を示すフローチャートである。以下、図４０に示す処理をステップ番号に沿って説明する。
【０２７０】
［ステップＳ６１］トラフィック情報送受信部３２２は、他のエッジノードとの間でパスごとのトラフィック量を示す情報を交換する。具体的には、トラフィック計測部３２１が、定期的にエッジノード３００と他のエッジノードとの間のトラフィック量を計測し、エッジノード間トラフィック記憶部３２３に格納する。トラフィック情報送受信部３２２は、エッジノード間トラフィック記憶部３２３内のトラフィック情報のうち、トラフィック計測部３２１が計測したトラフィック情報を、他のエッジノード宛に送信する。また、トラフィック情報送受信部３２２は、他のエッジノードからトラフィック情報を受信すると、受信したトラフィック情報に基づいて、エッジノード間トラフィック記憶部３２３内の他のエッジノード間のトラフィック量を更新する。
【０２７１】
［ステップＳ６２］トラフィック推定部３２４は、ルータ間のトラフィック量を推定する。具体的には、トラフィック推定部３２４には、物理的なルータ間の接続関係（物理トポロジ）と、エッジノード間の通信関係（論理トポロジ）とが予め定義されている。そして、トラフィック推定部３２４は、エッジノード間トラフィック記憶部３２３を参照し、各パスのトラフィック量に基づいて、ルータ間のリンクのトラフィック量を推定する。
【０２７２】
［ステップＳ６３］誘引力更新部３２６は、ルータ間トラフィック記憶部３２５を参照し、ルータ間のパスのトラフィック誘引力を、宛先となるエッジノードごとに算出する。具体的には、誘引力更新部３２６は、宛先とするエッジノードを１つ選択する。次に、誘引力更新部３２６は、選択したエッジノードに流入するトラフィック量に基づいて、式（１）を用いてそのエッジノードのトラフィック誘引力を算出する。更に、誘引力更新部３２６は、選択したエッジノードに接続されたリンクごとに、流入するトラフィック量に応じたトラフィック誘引力を、式（２）、式（３）を用いて算出する。
【０２７３】
次に、誘引力更新部３２６は、トラフィック誘引力の算出対象を、宛先のエッジノードに隣接するルータ（中継ノードまたはエッジノード）に変更する。誘引力更新部３２６は、宛先のエッジノードのリンクごとのトラフィック誘引力と、該当リンクで接続された隣接ルータへの宛先のエッジノード宛の流入トラフィック量に基づいて、式（４）を用いて隣接ルータのトラフィック誘引力を算出する。次に、誘引力更新部３２６は、選択したルータに接続されたリンクごとに、流入するトラフィック量に応じたトラフィック誘引力を、式（５）、式（６）を用いて算出する。
【０２７４】
このように、誘引力更新部３２６は、宛先として選択したエッジノードから順にトラフィック誘引力を計算していき、隣接ルータを順次辿り、エッジノード３００自身に辿り着くまで各ルータのトラフィック誘引力の計算を行う。そして、誘引力更新部３２６は、エッジノード３００と隣接ルータとの間のリンクに関するトラフィック誘引力を取得すると、そのトラフィック誘引力を、算出するまでに辿ったパス（選択したルータの順番）に対応付けて誘引力情報記憶部３２７に格納する。
【０２７５】
このようにして、他のエッジノードへのパスごとのトラフィック誘引力を計算することができる。
図４１は、トラフィック情報の交換状況を示す図である。図４１では、３台のエッジノード３００，３００ａ，３００ｂ間の接続関係の一部を抽出して示している。すなわち、図４１に示した以外にも、各エッジノード間のパスは存在するものとする。図４１の例では、ルータ間の物理接続（リンク）を細い線で示し、論理的な接続関係（パス）を太い線で示している。また、エッジノード３００の識別子は「Ａ」、エッジノード３００ａの識別子は「Ｂ」、エッジノード３００ｂの識別子は「Ｃ」、中継ノード４１０の識別子は「ｈ」、中継ノード４２０の識別子は「ｉ」、中継ノード４３０の識別子は「ｊ」である。
【０２７６】
エッジノード３００とエッジノード３００ａとの間には、中継ノード４１０と中継ノード４２０とを経由するパスが存在する。エッジノード３００とエッジノード３００ｂとの間には、中継ノード４１０と中継ノード４３０とを経由するパスが存在する。エッジノード３００ａとエッジノード３００ｂとの間には、中継ノード４１０、中継ノード４２０、および中継ノード４２３を経由するパスが存在する。
【０２７７】
各エッジノード３００，３００ａ，３００ｂは、それぞれパスごとのトラフィック量を計測する。図４１の例では、すべてのリンク容量が１００Ｍｂｐｓであるものとし、リンク容量に対するトラフィックの利用率によって、リンクのトラフィック量を表している。そして、各エッジノード３００，３００ａ，３００ｂは、計測したトラフィック量を交換する。その結果、エッジノード３００，３００ａ，３００ｂそれぞれが、ネットワーク上に存在する各パスの双方向のトラフィック量を認識できる。
【０２７８】
そして、各エッジノード３００，３００ａ，３００ｂは、各パスのトラフィック量（利用率）を、予め認識している物理トポロジに当てはめることで、ルータ間のトラフィック量（利用率）を推定する。
【０２７９】
図４２は、論理トポロジと物理トポロジとの対応付け状況を示す図である。対応付け処理では、論理的なパスのトラフィック量を、そのパスに対応する物理的な経路における各リンクのトラフィック量として加算する。そして、各パスのトラフィック量をリンクのトラフィック量に加算していったときのリンクごとの合計値が、各リンクのトラフィック量となる。
【０２８０】
例えば、エッジノード３００から中継ノード４１０へのリンクを使用したパスには、エッジノード３００からエッジノード３００ａへのパスと、エッジノード３００からエッジノード３００ｂへのパスとがある。エッジノード３００からエッジノード３００ａ宛のトラフィック量は０．３（３０Ｍｂｐｓ）である。また、エッジノード３００からエッジノード３００ｂ宛のトラフィック量は０．２（２０Ｍｂｐｓ）である。これらのパスのトラフィック量の合計値「０．５（５０Ｍｂｐｓ）」が、エッジノード３００から中継ノード４１０へのリンクのトラフィック量となる。
【０２８１】
同様の計算が、すべてのリンクに対して行われる。その結果、エッジノード３００において、すべてのリンクの双方向のトラフィック量が推定できる。また、エッジノード３００ａ，３００ｂにおいても同様の計算が行われる。各エッジノード３００，３００ａ，３００ｂは、同じ論理トポロジ上のトラフィック量に基づいて同じ計算を行うため、対応付けの結果も同じとなる。すなわち、エッジノード３００，３００ａ，３００ｂにおいて、物理的なリンクのトラフィック量の情報が共有される。
【０２８２】
次に、物理トポロジの各リンクのトラフィック量に基づいて、パスごとのトラフィック誘引力が計算される。
図４３は、トラフィック誘引力の計算例を示す図である。図４３には、エッジノード３００からエッジノード３００ａへのパスに関するトラフィック誘引力の計算例を示している。この計算は、エッジノード３００の誘引力更新部３２６で行われる。
【０２８３】
誘引力更新部３２６は、まず宛先である識別子「Ｂ」のエッジノード３００ａのトラフィック誘引力を、式（１）に従って計算する。その結果、エッジノード３００ａのトラフィック誘引力は「０．５」となる。
【０２８４】
次に誘引力更新部３２６は、識別子「ｉ」の中継ノード４２０からエッジノード３００ａへのリンクのトラフィック誘引力を、式（２）、式（３）に従って計算する。その結果、該当するリンクのトラフィック誘引力は「０．５×０．５＝０．２５」となる。
【０２８５】
次に誘引力更新部３２６は、中継ノード４２０のトラフィック誘引力を、式（４）に従って計算する。その結果、中継ノード４２０のトラフィック誘引力は「Ａｖｅｒａｇｅ｛０．５，０．２５｝＝０．３７５」となる。
【０２８６】
次に誘引力更新部３２６は、識別子「ｈ」の中継ノード４１０から中継ノード４２０へのリンクのトラフィック誘引力を、式（５）、式（６）に従って計算する。その結果、該当するリンクのトラフィック誘引力は「０．５×０．３７５＝０．１８７５」となる。
【０２８７】
次に誘引力更新部３２６は、中継ノード４１０のトラフィック誘引力を、式（４）に従って計算する。その結果、中継ノード４１０のトラフィック誘引力は「Ａｖｅｒａｇｅ｛０．５，０．１８７５｝＝０．３４３７５」となる。
【０２８８】
次に誘引力更新部３２６は、識別子「Ａ」のエッジノード３００から中継ノード４１０へのリンクのトラフィック誘引力を、式（５）、式（６）に従って計算する。その結果、該当するリンクのトラフィック誘引力は「０．５×０．３４３７５＝０．１７１８７５」となる。その結果、エッジノード３００において、識別子「Ｂ」のエッジノード３００ａ宛のパスのトラフィック誘引力が「０．１７１８７５」と認識する。
【０２８９】
パスのトラフィック誘引力の計算後は、各エッジノード３００，３００ａ，３００ｂは、各パスのトラフィック誘引力に応じて、各パスにトラフィックを比例分配する。エッジノード３００，３００ａ，３００ｂは、パケットを送信する際には、第３の実施の形態と同様に、パスの経路を示すルート情報をパケットに含めて送信する。すると、中継ノードでは、ルート情報に基づいてパケットの転送先を認識し、指定されたルートに沿ってパケットを転送する。その結果、送信側のエッジノードが選択したパスでパケットが伝送され、宛先のエッジノードに到達する。
【０２９０】
このようにして、中継ノードが、制御パケット情報の更新を実施しない場合においても、エッジノード間パスのトラフィック誘引力に応じたトラフィックの振り分けが可能となる。なお、エッジ間パスのみで経路制御を行うオーバーレイルーティング方式を利用しトラフィック振り分け制御を実施してもよい。
【０２９１】
［その他の応用例］
休止のルータが発生したときに、そのルータの休止以前の制御パケットのやり取りの情報を隣接ノードで保持し、トラフィックの転送が無い経路の宛先到達性の情報を、休止したルータに隣接するルータから取得できるようにすることができる。このようにすれば、休止したルータでは、制御パケットの伝播機能も停止させることができる。このとき、休止したルータに隣接するルータでは、休止したルータからの制御パケットの転送が途絶えたとしても、休止したルータを経由する伝送経路は存続しているものと判断する。これにより、休止したルータ以外のルータ経由の伝送経路で輻輳が発生した場合などに、休止したルータへのトラフィックの送出を迅速に開始することができる。
【０２９２】
トラフィック誘引力を決定するパラメータとして、トラフィック量だけでなく、各ルータの消費電力量に応じて決定することもできる。その場合、トラフィック量に応じて決定されたトラフィック誘引力にノードの消費電力効率Ｐ（装置電力量／処理容量）を、以下の式により反映させる。
τp＝τ／Ｐα      ・・・（２９）
τpは、消費電力効率を反映させたトラフィック誘引力である。τは、消費電力効率を反映前のトラフィック誘引力であり、式（１）、式（４）のいずれかによって算出された値である。αは予め設定された重みパラメータであり、正の値である。Ｐが小さいほどノードの消費電力効率は良い。そして、Ｐが小さいほど式（２９）で示されるトラフィック誘引力が大きくなる。すなわち、消費電力量が小さいルータに優先的にトラフィックを振り分けることができる。その結果、消費電力の削減が可能となる。
【０２９３】
また、データ転送における経路長の制約を与えることもできる。例えば、パスごとのトラフィック誘引力を管理しているときに、パスのホップ数（経由するルータの数）が所定数以上の場合、そのパスのトラフィック誘引力を０にする。これにより、極端に遠回りの伝送経路でパケットが伝送されることを防止できる。
【０２９４】
さらには、第３、第４の実施の形態において、制御パケットの転送ホップ数に上限を与えることで、制御パケットが転送ホップ数上限に達した時点で、それ以降の制御パケット転送を終了させることもできる。この場合、転送ホップ数の上限以上離れたエッジノード間では、経路の存在が認識されない。その結果、各エッジノードが極端に長い転送経路を自律生成することを防止できる。
【０２９５】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ルータ（エッジノードまたは中継ノード）が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disc）などがある。
【０２９６】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０２９７】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０２９８】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【０２９９】
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
（付記１）  複数の通信インタフェースと、
複数の前記通信インタフェースのいずれかを介して接続された隣接ルータから、前記隣接ルータで中継したトラフィック量に応じた値の誘引力値を取得し、前記隣接ルータに接続された前記通信インタフェースに対応付けて、前記誘引力値を記憶手段に格納する誘引力取得手段と、
前記記憶手段内を参照し、同一宛先のパケットが複数入力された場合、前記宛先への伝送経路に接続された前記通信インタフェースのうち前記誘引力値が大きい前記通信インタフェースほど送出トラフィック量が多くなるように、入力された前記パケットを前記通信インタフェースに振り分け、振り分けられた前記通信インタフェースを介して前記パケットを送出するトラフィック制御手段と、
を有することを特徴とするルータ。
【０３００】
（付記２）  前記トラフィック制御手段は、前記隣接ルータから輻輳発生の可能性を示すアラーム情報が入力されると、前記アラーム情報を出力した前記隣接ルータに接続された前記通信インタフェースから送出されるトラフィック量を前記アラーム情報入力前よりも減少させることを特徴とする付記１記載のルータ。
【０３０１】
（付記３）  複数の前記通信インタフェースに流入するトラフィック量に基づいて、流入する前記トラフィック量が多いほど大きな値となる自己誘引力値を定期的に算出し、複数の前記通信インタフェースを介して前記自己誘引力値を送信する誘引力通知手段をさらに有することを特徴とする付記１記載のルータ。
【０３０２】
（付記４）  前記誘引力取得手段は、前記隣接ルータから前記誘引力値を取得した場合、前記隣接ルータに接続された前記通信インタフェースを介して送出しているトラフィック量に応じて、取得した前記自己誘引力値に重み付けを行い、重み付けされた前記誘引力値を、前記隣接ルータに接続された前記通信インタフェースに対応付けて前記記憶手段に格納することを特徴とする付記１記載のルータ。
【０３０３】
（付記５）  前記隣接ルータから前記誘引力値を取得した場合、複数の前記通信インタフェースに流入するトラフィック量に基づいて前記誘引力値を更新し、更新前の前記誘引力値が入力された前記通信インタフェースとは別の前記通信インタフェースへ更新後の前記誘引力値を送信する誘引力通知手段をさらに有することを特徴とする付記１記載のルータ。
【０３０４】
（付記６）  前記誘引力通知手段は、前記通信インタフェースそれぞれから流入するトラフィック量に応じて自己誘引力値を算出し、前記自己誘引力値が大きいほど大きな値となるように前記誘引力値を更新することを特徴とする付記５記載のルータ。
【０３０５】
（付記７）  前記誘引力通知手段は、前記ルータ自身の消費電力が少ないほど大きな値となるように前記誘引力値を更新することを特徴とする付記５記載のルータ。
（付記８）  前記誘引力通知手段は、前記誘引力値が伝播した経路を示す経路情報が付与された前記誘引力値を前記隣接ルータから取得し、前記経路情報に自己の識別子を追加して更新後の前記誘引力値を送信することを特徴とする付記５記載のルータ。
【０３０６】
（付記９）  前記トラフィック制御手段は、前記パケットの宛先への伝送経路に接続された前記通信インタフェースそれぞれの前記誘引力値に応じた比例配分で、前記パケットを前記通信インタフェースへ振り分けることを特徴とする付記１記載のルータ。
【０３０７】
（付記１０）  前記トラフィック制御手段は、前記パケットの宛先への伝送経路に接続された前記通信インタフェースを前記誘引力値によって順位付けし、順位の最も高い前記通信インタフェースへ前記パケットを優先的に振り分けることを特徴とする付記１記載のルータ。
【０３０８】
（付記１１）  前記誘引力取得手段は、前記隣接ルータから、トラフィックの宛先ごとの前記誘引力値を取得し、宛先に対応付けて前記誘引力値を前記記憶手段に格納し、
前記トラフィック制御手段は、入力された前記パケットの宛先に対応する前記誘引力値に基づいて、入力された前記パケットの前記通信インタフェースへの振り分けを行うことを特徴とする付記１記載のルータ。
【０３０９】
（付記１２）  前記誘引力取得手段は、前記隣接ルータから、トラフィックの宛先への伝送経路ごとの前記誘引力値を取得し、宛先と伝送経路とに対応付けて前記誘引力値を前記記憶手段に格納し、
前記トラフィック制御手段は、入力された前記パケットの宛先への前記伝送経路ごとの前記誘引力値に基づいて、入力された前記パケットを伝送経路に対して振り分け、前記パケットに前記伝送経路を示す経路情報を付加し、振り分けられた前記伝送経路に接続された前記通信インタフェースを介して前記パケットを送信することを特徴とする付記１記載のルータ。
【０３１０】
（付記１３）  前記複数の前記通信インタフェースへのトラフィックの流入が所定期間途絶えた場合、前記トラフィック制御手段の機能を休止させるスリープ制御手段をさらに有することを特徴とする付記１記載のルータ。
【０３１１】
（付記１４）  複数の通信インタフェースと、
ネットワーク内の１以上の他のルータとの間の伝送経路ごとのトラフィック量を計測して記憶手段に格納するトラフィック計測手段と、
前記他のルータが計測した伝送経路ごとのトラフィック量を収集して、前記記憶手段に格納するトラフィック情報収集手段と、
前記記憶手段に格納された伝送経路ごとのトラフィック量に基づいて、伝送経路上に配置された各ノード間のトラフィック量を推定するトラフィック推定手段と、
推定された各ノード間のトラフィック量に基づいて、トラフィック量が多いほど大きな値となる誘引力値を、前記他のルータとの間の伝送経路ごとに算出する誘引力計算手段と、
同一宛先のパケットが複数入力された場合、前記宛先への伝送経路のうち前記誘引力値が大きい前記伝送経路ほど送出トラフィック量が多くなるように、入力された前記パケットを前記伝送経路に振り分け、振り分けられた前記伝送経路を介して前記パケットを送出するトラフィック制御手段と、
を有することを特徴とするルータ。
【０３１２】
（付記１５）  複数の通信インタフェースを有するコンピュータに、
複数の前記通信インタフェースのいずれかを介して接続された隣接ルータから、前記隣接ルータで中継したトラフィック量に応じた値の誘引力値を取得し、前記隣接ルータに接続された前記通信インタフェースに対応付けて、前記誘引力値を記憶手段に格納し、
前記記憶手段内を参照し、同一宛先のパケットが複数入力された場合、前記宛先への伝送経路に接続された前記通信インタフェースのうち前記誘引力値が大きい前記通信インタフェースほど送出トラフィック量が多くなるように、入力された前記パケットを前記通信インタフェースに振り分け、振り分けられた前記通信インタフェースを介して前記パケットを送出する、
処理を実行させることを特徴とするパケットルーティングプログラム。
【符号の説明】
【０３１３】
１〜８  ルータ
１ａ，１ｂ  通信インタフェース
１ｃ  誘引力取得手段
１ｄ  記憶手段
１ｅ  トラフィック制御手段
１ｆ  誘引力通知手段
【図１】
2010206467.tif 000003
【図２】
2010206467.tif 000004
【図３】
2010206467.tif 000005
【図４】
2010206467.tif 000006
【図５】
2010206467.tif 000007
【図６】
2010206467.tif 000008
【図７】
2010206467.tif 000009
【図８】
2010206467.tif 000010
【図９】
2010206467.tif 000011
【図１０】
2010206467.tif 000012
【図１１】
2010206467.tif 000013
【図１２】
2010206467.tif 000014
【図１３】
2010206467.tif 000015
【図１４】
2010206467.tif 000016
【図１５】
2010206467.tif 000017
【図１６】
2010206467.tif 000018
【図１７】
2010206467.tif 000019
【図１８】
2010206467.tif 000020
【図１９】
2010206467.tif 000021
【図２０】
2010206467.tif 000022
【図２１】
2010206467.tif 000023
【図２２】
2010206467.tif 000024
【図２３】
2010206467.tif 000025
【図２４】
2010206467.tif 000026
【図２５】
2010206467.tif 000027
【図２６】
2010206467.tif 000028
【図２７】
2010206467.tif 000029
【図２８】
2010206467.tif 000030
【図２９】
2010206467.tif 000031
【図３０】
2010206467.tif 000032
【図３１】
2010206467.tif 000033
【図３２】
2010206467.tif 000034
【図３３】
2010206467.tif 000035
【図３４】
2010206467.tif 000036
【図３５】
2010206467.tif 000037
【図３６】
2010206467.tif 000038
【図３７】
2010206467.tif 000039
【図３８】
2010206467.tif 000040
【図３９】
2010206467.tif 000041
【図４０】
2010206467.tif 000042
【図４１】
2010206467.tif 000043
【図４２】
2010206467.tif 000044
【図４３】
2010206467.tif 000045