(57)【要約】【課題】他のネットワークエレメントの潜在的な伝送能力についての情報をネットワークエレメントが取得可能とする。【解決手段】ネットワークエレメント２は、１又は複数の他のネットワークエレメント２との間に設定される通信経路毎の伝送能力に関する指標値の合算値を他のネットワークエレメント２へ送信する。当該合算値を受信したネットワークエレメント２は、受信した合算値を基に、データの送信先対象に選ぶネットワークエレメント２を制御することが可能になる。【選択図】図２
2015162739.tif 000002
【特許請求の範囲】
【請求項１】
複数のネットワークエレメントを備えた通信システムにおける前記ネットワークエレメントであって、
１又は複数の他のネットワークエレメントとの間に設定される通信経路毎の伝送能力に関する指標値を合算する算出部と、
前記算出部で算出された前記指標値の合算値を前記他のネットワークエレメントへ送信する送信部と、を備えた、ネットワークエレメント。
【請求項２】
前記他のネットワークエレメントで算出された前記指標値の合算値を前記他のネットワークエレメントから受信する受信部と、
前記受信部で受信された前記指標値の合算値に基づいて、前記他のネットワークエレメントのいずれをデータ送信先対象に選ぶかを制御する制御部と、を備えた、請求項１に記載のネットワークエレメント。
【請求項３】
前記他のネットワークエレメントとの間の前記通信経路が設定されるポートを有する通信インタフェースを備え、
前記指標値は、前記通信経路に対応する前記ポートの帯域幅に関する指標値である、請求項１又は２に記載のネットワークエレメント。
【請求項４】
前記制御部は、
前記受信部で受信された、前記指標値の合算値に応じたデータの振分比率を求め、前記振分比率に応じて、前記データ送信先対象へのデータの振り分けを制御する振分処理部を備えた、請求項２又は３に記載のネットワークエレメント。
【請求項５】
前記制御部は、
前記データの振り分けにおいて、前記振分比率に応じたデータ量に満たない不足分のデータ量を前記通信経路単位にカウントするカウンタを備え、
前記振分処理部は、
前記カウンタのカウント値に基づいて、前記振分比率が維持されるように前記データの振り分けを調整する、請求項４に記載のネットワークエレメント。
【請求項６】
複数のネットワークエレメントを備えた通信システムにおける前記ネットワークエレメントであって、
１又は複数の他のネットワークエレメントにおいて算出された、通信経路毎の伝送能力に関する指標値の合算値を前記他のネットワークエレメントから受信する受信部と、
前記受信部で受信された前記指標値の合算値に基づいて、前記他のネットワークエレメントのいずれをデータ送信先対象に選ぶかを制御する制御部と、を備えた、ネットワークエレメント。
【請求項７】
複数のネットワークエレメントを備えた通信システムであって、
前記ネットワークエレメントのそれぞれは、
１又は複数の他のネットワークエレメントとの間に設定される通信経路毎の伝送能力に関する指標値の合算値を前記他のネットワークエレメントと交換し、
前記他のネットワークエレメントから受信した、前記他のネットワークエレメントで算出された前記指標値の合算値に基づいて、前記他のネットワークエレメントのいずれをデータ送信先対象に選ぶかを制御する、通信システム。
【請求項８】
複数のネットワークエレメントを備えた通信システムの通信制御方法であって、
前記ネットワークエレメントのそれぞれは、
１又は複数の他のネットワークエレメントとの間に設定される通信経路毎の伝送能力に関する指標値の合算値を前記他のネットワークエレメントと交換し、
前記他のネットワークエレメントから受信した、前記他のネットワークエレメントで算出された前記指標値の合算値に基づいて、前記他のネットワークエレメントのいずれをデータ送信先対象に選ぶかを制御する、通信制御方法。
【請求項９】
複数のネットワークエレメントを備えた通信システムにおける前記ネットワークエレメントに、
１又は複数の他のネットワークエレメントとの間に設定される通信経路毎の伝送能力に関する指標値の合算値を前記他のネットワークエレメントと交換し、
前記他のネットワークエレメントから受信した、前記他のネットワークエレメントで算出された前記指標値の合算値に基づいて、前記他のネットワークエレメントのいずれをデータ送信先対象に選ぶかを制御する、
処理を実行させる、通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークエレメント、通信システム、通信制御方法、及び、通信制御プログラムに関する。
【背景技術】
【０００２】
ルータやスイッチを用いて構成されたネットワークにおいて、パケット等のデータをルーティングする技術が知られている。従来のルーティング技術の多くは、最短経路を選択する技術や、宛先までの経路のコストを基に経路を選択する技術である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２９０４４６号公報
【特許文献２】特開２００９−２９０２８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、従来のルーティング技術では、選択経路に含まれるスイッチ（あるいは、ルータ）と、選択経路に含まれないスイッチとの間で負荷に大きな差が生じることがある。例えば、宛先までの経路のコストを基に経路選択を行なうと、コストが相対的に低い経路が選ばれ易くなるため、複数の選択経路が１つのスイッチを集中的に経由する結果になる場合がある。そのため、相対的に、一部のスイッチに負荷が集中し易い。結果として、ネットワークの伝送帯域を効率良く利用できない場合がある。なお、ネットワークを成すスイッチ（あるいは、ルータ）は、「ネットワークエレメント（ＮＥ）」と称してよい。
【０００５】
１つの側面では、本発明の目的の１つは、他のネットワークエレメントの潜在的な伝送能力についての情報をネットワークエレメントが取得可能とすることにある。
【課題を解決するための手段】
【０００６】
一態様では、１又は複数の他のＮＥとの間に設定される通信経路毎の伝送能力に関する指標値の合算値を他のＮＥへ送信する。
【０００７】
また、一態様では、１又は複数の他のネットワークエレメントにおいて算出された、通信経路毎の伝送能力に関する指標値の合算値を前記他のネットワークエレメントから受信し、受信した合算値に基づいて、他のネットワークエレメントのいずれをデータ送信先対象に選ぶかを制御する。
【０００８】
さらに、一態様では、１又は複数の他のネットワークエレメントとの間に設定される通信経路毎の伝送能力に関する指標値の合算値を他のネットワークエレメントと交換する。そして、他のネットワークエレメントから受信した、他のネットワークエレメントで算出された前記指標値の合算値に基づいて、他のネットワークエレメントのいずれをデータ送信先対象に選ぶかを制御する。
【発明の効果】
【０００９】
１つの側面として、他のネットワークエレメントの潜在的な伝送能力についての情報をネットワークエレメントが取得可能とすることができる。また、取得した他のネットワークエレメントの潜在的な伝送能力についての情報を利用すれば、潜在的な伝送能力について考慮した負荷分散処理を行なうことも可能となる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係る通信システムの構成例を示すブロック図である。
【図２】図１に例示するスイッチ（ＳＷ）ノードのＳＷコストを説明するための図である。
【図３】図１に例示するＳＷノードの構成例を示す機能ブロック図である。
【図４】図３に例示するＳＷノードが保有するＮＷ構成テーブルを説明するための図である。
【図５】図３に例示するＳＷノードが保有するＮＷ構成テーブルの一例を示す図である。
【図６】図３に例示するＳＷノードが保有する隣接ノードＮＷ構成テーブルの一例を示す図である。
【図７】図３に例示するＳＷノードの起動時の処理の一例を示すフローチャートである。
【図８】図３に例示するＳＷノードが送信するコスト情報パケットの一例を示す図である。
【図９】図３に例示するＳＷノードの運用中の処理の一例を示すフローチャートである。
【図１０】図９に例示するコスト情報処理の一例を示すフローチャートである。
【図１１】図９に例示するＮＷ構成テーブル情報処理の一例を示すフローチャートである。
【図１２】図９に例示する転送先判断処理の一例を示すフローチャートである。
【図１３】図３に例示するＳＷノードが転送するデータパケットの一例を示す図である。
【図１４】図３に例示するＳＷノードが送信するＮＷ構成テーブル情報パケットの一例を示す図である。
【図１５】図３に例示するＳＷノードが転送するデータパケットの一例を示す図である。
【図１６】図１に例示する通信システムにおいてＳＷ＃ＡからＳＷ＃Ｉ宛のデータパケットが伝送されるときの動作例を説明する図である。
【図１７】図１に例示する通信システムにおいてＳＷ＃ＡからＳＷ＃Ｉ宛のデータパケットが伝送されるときの動作例を説明する図である。
【図１８】図１に例示する通信システムにおいてＳＷ＃ＡからＳＷ＃Ｉ宛のデータパケットが伝送されるときの動作例を説明する図である。
【図１９】図１２に例示する振分処理の一例を示すフローチャートである。
【図２０】図１９に例示する振分処理の一例を説明するための図である。
【図２１】図１９に例示する振分処理の一例を説明するための図である。
【図２２】一実施形態との比較例を説明するための図である。
【図２３】一実施形態の変形例に係る通信システムの構成例を示すブロック図である。
【図２４】図２３に例示する変形例との比較例を説明するための図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１２】
図１は、一実施形態に係る通信システムの構成例を示すブロック図である。図１に示す通信システム１は、例示的に、複数のスイッチ（ＳＷ）ノード２を備える。図１には、非限定的な一例として、ＳＷ＃Ａ〜ＳＷ＃Ｉでそれぞれ表した９台のＳＷノード２を例示している。
【００１３】
各ＳＷノード２は、例示的に、隣接するＳＷノード２と双方向通信可能に接続されて、メッシュ状のネットワーク（ＮＷ）＃１を形成する。したがって、ＳＷノード２は、ネットワークエレメント（ＮＥ）と称してもよい。また、ネットワーク（＃１）は、「エリア（＃１）」と称してもよい。
【００１４】
ＳＷノード２は、それぞれ、例えばレイヤ３（Ｌ３）の通信信号の一例であるパケットの転送処理を行なう「Ｌ３スイッチ」であってよい。ただし、ＳＷノード２は、レイヤ２（Ｌ２）の通信信号の一例である、イーサネット（登録商標）フレーム等のフレームの転送処理を行なう「Ｌ２スイッチ」であってもよい。
【００１５】
本実施形態のＳＷノード２のそれぞれは、ＮＷ＃１に属する各ＳＷノード２の通信インタフェースが許容（サポート）する伝送帯域幅（あるいは、伝送容量又は伝送レートと称してもよい。）を考慮して、受信パケットを転送する宛先を自律的に決定する。
【００１６】
そのため、ＳＷノード２は、それぞれ、大別すると、コスト算出処理、ＮＷ学習処理、宛先判定処理、及び、パケット振分処理を実施する。
【００１７】
コスト算出処理は、各ＳＷノード２が有する「コスト」を算出する処理である。「コスト」の詳細については、後述する。
【００１８】
ＮＷ学習処理は、各ＳＷノード２間でネットワーク（ＮＷ）構成情報を交換し、ＮＷ構成を学習する処理である。ＮＷ構成は、「ＮＷトポロジー」と称してもよく、その情報をＮＷトポロジー情報と称してよい。
【００１９】
宛先判定処理は、学習したＮＷ構成情報に基づいて、受信パケットの次の宛先（「ネクストホップ」と称してもよい。）となる１又は複数のＳＷノード２を判定し選択（決定）する処理である。ネクストホップとなるＳＷノード２を「宛先ＳＷ２」あるいは「ネクストホップＳＷ２」と称することがある。
【００２０】
パケット振分処理は、宛先判定処理で選択された宛先ＳＷ２へ受信パケットを転送（伝送）する。その際、コスト算出処理で算出したコストに応じて、複数の宛先ＳＷ２に伝送するパケット数（別言すると、データ量あるいはデータレート）の割合を調整することができる。
【００２１】
次に、「コスト」について説明する。「コスト」は、例示的に、ＳＷノード２の通信インタフェースに対して設定される値であり、受信パケットの転送経路を動的に決定するために用いられる指標値である。指標値は、「メトリック」と称されてもよい。
【００２２】
指標値（メトリック）の非限定的な一例としては、ＳＷノード２の通信インタフェースが許容（サポート）する伝送帯域幅が挙げられる。別言すると、「コスト」は、ＳＷノード２の通信インタフェースがサポートする伝送能力に関する指標値であると捉えてよい。
【００２３】
例えば、コストは、伝送帯域幅が広い（別言すると、伝送能力あるいは通信品質が高い）ほど、小さい値で表すことができる。非限定的な一例を示すと、１Ｇｂｐｓの伝送帯域を許容する通信インタフェースは「コスト＝１」、１００Ｍｂｐｓの伝送帯域を許容するポートは「コスト＝２」等と表すことができる。
【００２４】
ＳＷノード２の通信インタフェースには、複数の物理的あるいは論理的なポートが含まれることがある。別言すると、当該通信インタフェースには、各ポートに対応して複数の通信経路を設定することが可能な場合がある。通信経路は、「パス」と称してもよいし、「リンク」と称してもよい。
【００２５】
そのような場合、「コスト」は、パス（あるいはリンク）に対応するポート単位で割り当て可能である。したがって、「コスト」は、「ポートコスト」（あるいは「インタフェースコスト」）と称してもよい。
【００２６】
本実施形態では、既述のコスト算出処理において、１つのＳＷノード２についてのポートコストの合計を算出する。ポートコストの合算値を当該ＳＷノード２がもつ「スイッチ（ＳＷ）コスト」と称する。したがって、ＳＷコストの小さいＳＷノード２ほど、伝送能力が高いことを表す。
【００２７】
例えば図２に示すように、ＳＷ＃Ｅと、４つのＳＷ＃Ｂ、ＳＷ＃Ｄ、ＳＷ＃Ｆ及びＳＷ＃Ｈとの間の点線で表した４つのパスに対応するポートコスト（Ｃ）がそれぞれ２（Ｃ：２）であり、他のパスに対応するポートコストはいずれも１（Ｃ：１）であるとする。
【００２８】
この場合、ＳＷ＃Ａに着目すると、ＳＷ＃Ｂ及びＳＷ＃Ｄとの間の２つパスに対応するポートコストはそれぞれ１（Ｃ：１）であるため、ＳＷ＃ＡのＳＷコストはコスト１×２（ポート）＝２で表される。
【００２９】
また、ＳＷ＃Ｅに着目すると、４つのＳＷ＃Ｂ、ＳＷ＃Ｄ、ＳＷ＃Ｆ及びＳＷ＃Ｈとの間の４つのパスに対応するポートコストはそれぞれ２（Ｃ：２）であるため、ＳＷ＃ＥのＳＷコストはコスト２×４（ポート）＝８で表される。
【００３０】
同様に、ＳＷ＃Ｇに着目すると、２つのＳＷ＃Ｄ及びＳＷ＃Ｈとの間の２つのパスに対応するポートコストはそれぞれ１（Ｃ：１）であるため、ＳＷ＃ＧのＳＷコストはコスト１×２（ポート）＝２で表される。
【００３１】
その他のＳＷ＃Ｂ、ＳＷ＃Ｃ、ＳＷ＃Ｆ、ＳＷ＃Ｈ及びＳＷ＃ＩのＳＷコストについても同様にして表される。
【００３２】
ＳＷノード２は、それぞれ、既述のＮＷ学習処理において、自ノードのポートコストの合算値であるＳＷコストを他のＳＷノード２と交換する。そして、ＳＷノード２は、それぞれ、既述のパケット振分処理において、自ノード２のＳＷコストと他ノード２のＳＷコストとに基づいてネクストホップＳＷ２を決定し受信パケットの転送処理を行なう。
【００３３】
その際、ＳＷノード２は、自ノード２と接続関係（「隣接関係」と称してもよい）にある他のＳＷノード２の中で相対的にＳＷコストが小さいＳＷノード２に、より多くの受信パケットが転送されるように転送処理（振分処理と称してもよい。）を実施してよい。これにより、ＳＷノード２にかかる負荷をＳＷノード２間で自律的に分散し、ＮＷ＃１の総帯域を有効活用することが可能になる。
【００３４】
なお、「コスト」という概念（指標値）は、ＯＳＰＦ（Open Shortest Path First）でも用いられる。ＯＳＰＦは、ルータやＬ３スイッチがパケットの転送先を動的に決定するためのルーティングプロトコルの一種である。ＯＳＰＦでは、Ｌ３スイッチから宛先までの経路で経由する通信インタフェースのコストを加算してゆき、その合計値が最小となる経路を最適経路と判断し、最適経路へ受信パケットの転送を行なう。
【００３５】
別言すると、ＯＳＰＦでは、経路について「コスト」を加算してゆく。この意味で、ＯＳＰＦでの「コスト」は、「経路コスト」と称することができ、上述したＳＷノード２毎のポートコストの合算値である「ＳＷコスト」とは異なる指標値である。
【００３６】
次に、上述したＳＷノード２の処理（機能）を実現する構成例を図３に示す。図３は、一実施形態に係るＳＷノード２の機能ブロック図である。図３に示すように、ＳＷノード２のそれぞれは、例示的に、通信インタフェース２１、送信処理部２２、受信処理部２３、コントローラ２４、及び、メモリ２５を備える。
【００３７】
通信インタフェース２１は、他のＳＷノード２との間の接続インタフェースの一例であり、他のＳＷノード２との通信を可能にする。通信インタフェース２１には、他のＳＷノード２との間の通信に用いられる通信プロトコルに応じたプロトコル変換機能が備えられてよい。また、通信インタフェース２１には、既述のように、複数の物理的あるいは論理的なポートが設定されてよい。ポートを通じて他のＳＷノード２との間にパス（あるいはリンク）が確立され、当該パス（あるいはリンク）を通じて通信（別言すると、パケット伝送）が行なわれる。なお、リンクの確立を「リンクアップ」と称し、確立したリンクが切断されることを「リンクダウン」と称することがある。
【００３８】
送信処理部２２は、他のＳＷノード２に対するパケットの送信処理を行なう。例えば、送信処理部２２は、コントローラ２４による制御に応じて、パケットを通信インタフェース２１の該当ポートへ送信する。送信処理の対象となるパケットには、他のＳＷノード２から受信したパケットのほか、コントローラ２４が生成したパケットが含まれてよい。
【００３９】
受信処理部２３は、通信インタフェース２１のいずれかのポートを通じて受信したパケットをコントローラ２４に転送する。
【００４０】
コントローラ２４は、ＳＷノード２としての動作を制御する制御部の一例であり、送信処理部２２による送信処理、及び、受信処理部２３による受信処理を制御する。例示的に、コントローラ２４は、テーブル構築部２４１と、パケット伝送制御部２４２と、を備える。また、テーブル構築部２４１は、例示的に、コスト算出部２４１１及びＮＷ学習部２４１２を備える。パケット伝送制御部２４２は、例示的に、宛先判定部２４２１、振分処理部２４２２及びカウンタ２４２３を備える。
【００４１】
コスト算出部２４１１は、例えばＳＷノード２の起動時等において、既述のコスト算出処理を実行し、自ＳＷノード２のＳＷコストを算出（合算）する。ＳＷコストの算出対象は、リンクアップしているポートのポートコストとしてよい。なお、通信インタフェース２１には、後述するように、複数のＮＷ（エリア）に重複して属するパスが接続されることがある。その場合、当該パスに対応するポートに関しては、複数のＮＷの別にポートコストを算出し、ＳＷコストに加算する。
【００４２】
ＮＷ学習部２４１２は、既述のＮＷ学習処理を実行し、例えば自ノード２が属するＮＷ＃１（図１参照）の構成（トポロジー）を学習する。例示的に、ＮＷ学習部２４１２は、接続関係を有する他のＳＷノード２との間で、自ＳＷノード２の識別情報の一例であるＳＷ−ＩＤやコスト等の情報を交換し、ＮＷトポロジーを学習する。なお、ここで交換するコストには、「ＳＷコスト」と「経路コスト」とが含まれてよい。
【００４３】
他のＳＷノード２との間の情報交換の際、ＮＷ学習部２４１２は、接続関係を有する他のＳＷノード２との間の距離情報の一例であるホップ数を他のＳＷノード２と交換し、各ＳＷノード２間の相対的な距離を併せて学習してよい。学習した相対的な距離情報は、ＮＷトポロジーの学習終了後、接続関係を有するＳＷノード２に送信してよい。距離情報は、「レンジ（range）情報」と称してよく、図面において便宜的に、「Ｒａｎ」と表記することがある。
【００４４】
例えば図４に示すように、ＳＷ＃Ｄに着目すると、ＳＷ＃Ｄは、隣接関係にあるＳＷ＃Ａ、ＳＷ＃Ｅ及びＳＷ＃Ｇと情報交換を行ない、それぞれとの間のレンジ情報（Ｒａｎ：ホップ数）、経路コスト（Ｃ）、及び、ＳＷコストを取得、学習する。
【００４５】
図４の例では、ＳＷ＃Ｄは、隣接ＳＷ＃Ａまでのホップ数及び経路コストがそれぞれ１であり、当該ＳＷ＃ＡのＳＷコストが２であることを取得、学習する。同様にして、ＳＷ＃Ｄは、隣接ＳＷ＃Ｅまでのホップ数が１、経路コストが２、当該ＳＷ＃ＥのＳＷコストが８であり、隣接ＳＷ＃Ｇまでのホップ数が１、経路コストが１、当該ＳＷ＃ＧのＳＷコストが２であることを学習する。
【００４６】
学習したＮＷトポロジー情報及び距離情報は、例示的に、メモリ２５に記憶される。ＮＷトポロジー情報は、各ＳＷノード２において共通に保持される情報の一例であり、各ＳＷノード２間の経路コストや距離情報が含まれてよい。隣接関係を有するＳＷノード２間の距離情報については、隣接関係を有するＳＷノード２に限って保持することとしてよい。
【００４７】
図５及び図６に、ＳＷノード２（メモリ２５）で保持されるＮＷ構成情報の一例を示す。ＮＷ構成情報は、図５に例示するように、テーブル形式の情報としてメモリ２５に記憶されてよい。テーブル形式で記憶されたＮＷ構成情報は、「ＮＷ構成テーブル」と称してよい。図５に例示するＮＷ構成テーブル２５１は、図１、図２及び図４に例示したＳＷ＃Ａ（ＳＷコスト：２）で保持される情報の一例である。
【００４８】
図５に示すように、ＳＷ＃ＡのＮＷ構成テーブル２５１には、例示的に、図１及び図２に示したＮＷ＃１に属する他のＳＷ＃Ｂ〜ＳＷ＃Ｉのそれぞれについて、レンジ情報（Ｒａｎ）、経路コスト（Ｃ）、ＳＷコスト、及び、隣接関係を表す情報が登録される。
【００４９】
例えば、ＳＷ＃Ｂのエントリに着目すると、ＳＷ＃ＡからＳＷ＃Ｂまでのレンジ情報（ホップ数）が１であり、ＳＷ＃ＡからＳＷ＃Ｂまでの経路コストが１であり、ＳＷ＃ＢのＳＷコストが４であり、ＳＷ＃ＢはＳＷ＃Ａと隣接関係にあることが登録される。
【００５０】
同様に、ＳＷ＃Ｄのエントリに着目すると、ＳＷ＃ＡからＳＷ＃Ｄまでのホップ数が１であり、ＳＷ＃ＡからＳＷ＃Ｄまでの経路コストが１であり、ＳＷ＃ＤのＳＷコストが４であり、ＳＷ＃ＢはＳＷ＃Ａと隣接関係にあることが登録される。
【００５１】
他のエントリについても同様であるが、ＳＷ＃Ａにとって、ＳＷ＃Ｂ及びＳＷ＃Ｄ以外のＳＷ＃Ｃ及びＳＷ＃Ｅ〜ＳＷ＃Ｈは、隣接関係にないので、隣接関係を示す情報の登録は不要である。ただし、隣接関係にないことを示す情報を登録しても構わない。
【００５２】
ＳＷ＃Ａ以外の他のＳＷ＃Ｂ〜ＳＷ＃Ｉにおいても、上記と同様のフォーマットを有するＮＷ構成テーブル２５１がメモリ２５に記憶される。
【００５３】
なお、ＳＷノード２は、隣接関係にあるＳＷノード２（以下「隣接ノード２」と称することがある。）に限って当該隣接ノード２で保持されている、隣接ノード２を基準にした他のＳＷノード２との間のレンジ情報及び経路コストをメモリ２５に記憶してよい。
【００５４】
例えば図１、図２、図４及び図５において、ＳＷ＃Ａの隣接ノード２は２つのＳＷ＃Ｂ及びＳＷ＃Ｄである。この場合、ＳＷ＃Ａは、例えば図６に示すように、ＳＷ＃Ｄで保持されている、ＳＷ＃Ｄを基準にしたＳＷ＃Ａ〜ＳＷ＃Ｃ及びＳＷ＃Ｅ〜ＳＷ＃Ｉそれぞれとの間のレンジ情報及び経路コストをテーブル形式のデータとしてメモリ２５に記憶してよい。当該テーブル形式のデータは、ＳＷ＃Ａの隣接ノードであるＳＷ＃ＤについてのＮＷ構成テーブルであるから、隣接ノードＮＷ構成テーブル２５２と称してよい。同様にして、ＳＷ＃Ｂについての隣接ノードＮＷ構成テーブル２５２も、ＳＷ＃Ａのメモリ２５に記憶される。
【００５５】
図３に例示したテーブル構築部２４１は、以上のようにして各ＮＷ構成テーブル２５１及び２５２を構築し、メモリ２５に記憶する。テーブル構築部２４１（例示的に、ＮＷ学習部２４１２）は、他のＳＷノード２からＮＷトポロジー情報やレンジ情報、経路コスト、ＳＷコスト等を受信した場合、受信した情報に応じてＮＷ構成テーブル２５１及び／又は２５２のエントリを更新する。
【００５６】
次に、図３において、パケット伝送制御部２４２は、上述のごとくメモリ２５に記憶されたＮＷ構成テーブル２５１及び２５２に基づいて、パケットの伝送（転送）制御を実施する。
【００５７】
例えば、パケット伝送制御部２４２の宛先判定部２４２１は、メモリ２５のＮＷ構成テーブル２５１及び２５２を参照して、パケットの宛先（ネクストホップ）となるＳＷノード２を判断、決定する。
【００５８】
例えば、ＳＷ＃ｎ（ｎは、ＳＷ−ＩＤを表し、例えば、Ａ〜Ｉのいずれかである。）宛のパケットが受信されると、宛先判定部２４２１は、自ＳＷノード２に関するＮＷ構成テーブル２５１（図４参照）のＳＷ＃ｎに対応するエントリを参照する。併せて、宛先判定部２４２１は、隣接ノードＮＷ構成テーブル２５２の宛先ＳＷ＃ｎに対応するエントリを参照する。
【００５９】
そして、宛先判定部２４２１は、宛先ＳＷ＃ｎに対応する各エントリに含まれるレンジ情報を比較し、レンジ情報がより小さい隣接ＳＷノード２を、ＳＷ＃ｎ宛の受信パケットを転送すべきネクストホップと判定する。レンジ情報が同じ候補ＳＷノード２が存在する場合、宛先判定部２４２１は、経路コストのより小さい隣接ＳＷノード２があれば、当該隣接ＳＷノード２を、ＳＷ＃ｎ宛の受信パケットを転送すべきネクストホップと判定する。
【００６０】
別言すると、隣接ＳＷノード２の中で、宛先ＳＷ＃ｎまでのホップ数がより少ないＳＷノード２、あるいは、ホップ数が同じでも宛先ＳＷ＃ｎまでの経路コストがより少ないＳＷノード２が、ＳＷ＃ｎ宛のパケットの送信先対象（ネクストホップ）候補に選ばれる。このように、最終的な宛先ＳＷ＃ｎまでのホップ数と、ネクストホップ候補から宛先ＳＷ＃ｎまでのホップ数と、を比較して、ネクストホップを選ぶことで、パケットがＮＷ＃１内でループすることを防ぐことができる。
【００６１】
なお、パケットのループを防ぐために、例えばペイロードにループ識別用のデータを設定してもよい。その場合、宛先判定部２４２１は、宛先ＳＷ＃ｎまでのホップ数が大きくても、宛先ＳＷ＃ｎまでの経路コストが同じか、あるいは小さいＳＷノード２であれば、当該ＳＷノード２をネクストホップに選んでもよい。
【００６２】
別言すると、宛先判定部２４２１は、宛先ＳＷ＃ｎまでの経路コストが同じか、あるいは小さいＳＷノード２であれば、ＮＷ＃１において、より遠回りになる経路であっても、当該ＳＷノード２をパケットの送信先対象に選んでよい。ただし、パケットのペイロードがループ識別用のデータに消費されるので、伝送帯域の有効利用という観点からすると、好ましくない場合がある。
【００６３】
すなわち、伝送帯域の有効利用と負荷分散の程度との間には、トレードオフの関係がある。したがって、ネクストホップの判定条件は、当該トレードオフの関係に応じて設定するとよい。
【００６４】
宛先判定部２４２１は、参照した自ＳＷノード２のＮＷ構成テーブル２５１の、ＳＷ＃ｎに対応するエントリのレンジ情報（ホップ数）が１であった場合、自ＳＷノード２が宛先ＳＷ＃ｎへの最終転送ノードであることを認識する。したがって、宛先ＳＷ＃ｎ以外のエントリ内容に関わらず、受信パケットのネクストホップが宛先ＳＷ＃ｎであると判定する。
【００６５】
次に、パケット伝送制御部２４２の振分処理部２４２２は、例えば図４に例示したＮＷ構成テーブル２５１の、ネクストホップに選ばれた隣接ＳＷノード２に対応するエントリを参照し、ＳＷコストを比較する。そして、振分処理部２４２２は、ＳＷコストに応じた割合でネクストホップへパケットを送信する。
【００６６】
例えば、ネクストホップに選ばれた３つの隣接ノード２のＳＷコストが「１：２：１」の比率であるとき、振分処理部２４２２は、３つの隣接ノード２に対して「２：１：２」の比率（以下「振分比率」と称することがある。）でパケットの転送を行なう。
【００６７】
次に、パケット伝送制御部２４２のカウンタ２４２３は、振分比率に応じた数よりも少ないパケットしかネクストホップの該当ポートへ送信されない場合に、未送信分のパケット数をポート単位にカウントする。例えば、振分比率に従うと或るネクストホップへ４パケット分を送信可能であるにも関わらず、或る送信タイミングにおいて０〜３パケットしか該当ポートへ送信されない場合、未送信分の４〜１パケットをカウントする。
【００６８】
振分処理部２４２２は、カウンタ２４２３のカウント値が示す未送信分のパケット数が以降の送信タイミングで該当ポートへ優先的に送信されるように振分処理を調整する。例えば、振分処理部２４２２は、カウンタ２４２３のカウント値が０になるまで、あるいは、該当ポートへ送信可能なパケットが無くなるまで、該当ポートへのパケットの送信を継続する。これにより、振分処理部２４２２は、パケットの振分処理の偏りを抑制して、振分比率をできるだけ保証することが可能になる。
【００６９】
なお、図３により上述したコントローラ２４の機能は、ＣＰＵやＤＳＰ等の演算能力を備えたプロセッサが、メモリ２５等の記憶装置に記憶されたプログラム（あるいは、ソフトウェアと称してもよい）やデータを読み取って動作することで具現されてよい。コントローラ２４の機能を具現するプログラムは、通信制御プログラムと称してよい。また、演算能力を備えたプロセッサは、「コンピュータ」と称してもよい。
【００７０】
プログラムやデータは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ，ＭＯ，ＤＶＤ、ブルーレイディスク、ポータブルハードディスク、ＵＳＢメモリ等のコンピュータ読取可能な記録媒体に記録された形態で提供されてよい。この場合、コンピュータは、記録媒体から制御プログラムやデータを読み取って例えばメモリ２５等の記憶装置に展開して用いる。また、制御プログラムやデータは、サーバ等から通信回線を介してコンピュータに提供（ダウンロード）されてもよい。
【００７１】
記録媒体には、上述したフレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ、磁気ディスク、光ディスク、及び、光磁気ディスクのほか、ＩＣカードや、ＲＯＭカートリッジ、ハードディスク装置等の、コンピュータ読取可能な種々の媒体を利用してよい。
【００７２】
以下、上述したＳＷノード２の動作例について説明する。
【００７３】
（起動時の処理例）
図７は、ＳＷノード７が起動された時の処理の一例を示すフローチャートである。図７に例示するように、ＳＷノード２は、起動されると、例えばテーブル構築部２４１のコスト算出部２４１１（図３参照）によって、既述のように自ＳＷノード２のＳＷコスト（ポートコストの合算値）を算出する（処理Ｐ１１）。
【００７４】
次いで、ＳＷノード２は、例えばＮＷ学習部２４１２によって、隣接ＳＷノード２へコスト情報を送信する（処理Ｐ１２）。コスト情報には、例示的に、自ＳＷノード２のＳＷ−ＩＤ、算出したＳＷコスト、レンジ情報（Ｒａｎ）、及び、経路コスト（Ｃ）が含まれてよい。例えば図１及び図２に例示したＳＷ＃Ａであれば、コスト情報の一例として「ＳＷ−ＩＤ：＃Ａ，ＳＷコスト：２、Ｒａｎ：０（初期値）、Ｃ：０（初期値）」といった情報を、隣接ＳＷ＃Ｂ及びＳＷ＃Ｄへ送信する。ＳＷ＃Ａ以外のＳＷノード２も、同様に、コスト情報を隣接ＳＷノード２へ送信する。
【００７５】
コスト情報の送信には、例えば図８に例示するような、ヘッダとペイロードとを有するパケット（「コスト情報パケット」と称してよい。）を用いてよい。コスト情報パケットのペイロードに、上述したコスト情報が含められる。なお、コスト情報パケットのヘッダには、隣接ＳＷノード２を宛先とする宛先情報（例えば、ＳＷ−ＩＤ）等の、隣接ＳＷノード２との間の通信に用いるプロトコルに応じた情報が含まれる。コスト情報パケットは、例示的に、ＮＷ学習部２４１２が生成してよい。ＮＷ学習部２４１２が生成したコスト情報パケットは、送信処理部（図３参照）を通じて隣接ＳＷノード２宛に送信される。
【００７６】
コスト情報（パケット）を送信したＳＷノード２は、隣接ＳＷノード２からの情報受信待機状態となる（処理Ｐ１３）。
【００７７】
（運用中の処理例）
次に、図９は、ＳＷノード２の運用中の処理の一例を示すフローチャートである。図９に例示するように、ＳＷノード２は、情報受信待機状態において、コスト情報、ＮＷ構成テーブル情報、及び、ＳＷ＃ｎ宛のデータパケットのいずれかが受信処理部２３（図３参照）を通じてコントローラ２４にて受信されるかを監視する（処理Ｐ２１〜Ｐ２３）。受信した情報が、コスト情報、ＮＷ構成テーブル情報、及び、データパケットのいずれであるかは、例えばパケットヘッダに示されるデータタイプ情報を基に識別可能である。
【００７８】
コントローラ２４は、受信処理部２３を通じて受信された情報（パケット）に応じた処理を実施する。例えば、コスト情報（パケット）が受信されると（処理Ｐ２１でＹｅｓの場合）、例えばテーブル構築部２４１のＮＷ学習部２４１２によって、コスト情報処理が実施される（処理Ｐ２４）。コスト情報処理の一例は、図１０のフローチャートに示される。図１０に示すコスト情報処理の詳細については後述する。
【００７９】
また、ＮＷ構成テーブル情報が受信されると（処理Ｐ２１でＮｏかつ処理Ｐ２２でＹｅｓの場合）、テーブル構築部２４１のＮＷ学習部２４１２によって、ＮＷ構成テーブル情報処理が実施される（処理Ｐ２５）。ＮＷ構成テーブル情報には、図５及び図６に例示したＮＷ構成テーブル２５１及び２５２に登録される情報要素が含まれる。ＮＷ構成テーブル情報処理の一例は、図１１のフローチャートに示される。図１１に示すＮＷ構成テーブル情報処理の詳細については後述する。
【００８０】
また、ＳＷ＃ｎ宛のデータパケットが受信されると（処理Ｐ２１及びＰ２２でＮｏかつ処理Ｐ２３でＹｅｓの場合）、パケット伝送制御部２４２（図３参照）によって、転送先判断処理が実施される（処理Ｐ２６）。転送先判断処理の一例は、図１２のフローチャートに示される。図１２に示す転送先判断処理の詳細については後述する。データパケットは、例えば図１３に例示するように、ヘッダとペイロードとを有する。ヘッダに、宛先情報（例えば、ＳＷ＃ｎのＳＷ−ＩＤ）が格納され、ペイロードにユーザデータ等のデータ本体が格納される。
【００８１】
なお、コスト情報、ＮＷ構成テーブル情報、及び、データパケットのいずれも受信されない場合（処理Ｐ２１〜Ｐ２３でいずれもＮｏの場合）、コントローラ２４は、情報受信待機状態（処理Ｐ１３）に戻り、情報受信の監視を継続する。
【００８２】
（コスト情報処理）
図１０に例示するように、ＮＷ学習部２４１２は、他のＳＷノード２からコスト情報（パケット）を受信すると（処理Ｐ３１）、受信したコスト情報の更新を行なう（処理Ｐ３２）。例えば図１及び図２に例示したＳＷ＃ＢがＳＷ＃Ａからコスト情報「ＳＷ−ＩＤ：＃Ａ，ＳＷコスト：２、Ｒａｎ：０、Ｃ：０」を受信したとすると、ＮＷ学習部２４１２は、レンジ情報（Ｒａｎ：０）に１を加算し、かつ、経路コスト（Ｃ：０）に、受信したコスト情報パケットが経由したパスの経路コスト（例えば、Ｃ：１）を加算する。したがって、ＳＷ＃Ａから受信したコスト情報は、「ＳＷ−ＩＤ：＃Ａ，ＳＷコスト：２、Ｒａｎ：１、Ｃ：１」に更新される。
【００８３】
次いで、ＮＷ学習部２４１２は、メモリ２５（図３参照）のＮＷ構成テーブル２５１を参照して、受信したコスト情報パケットに含まれるＳＷ−ＩＤによって識別されるＳＷノード２のエントリが未登録であるか否かを確認する（処理Ｐ３３）。
【００８４】
未登録であれば（処理Ｐ３３でＹｅｓの場合）、ＮＷ学習部２４１２は、受信したコスト情報をＮＷ構成テーブル２５１に登録する（処理Ｐ３４）。
【００８５】
また、ＮＷ学習部２４１２は、処理Ｐ３２で更新したコスト情報を隣接ＳＷノード２へ送信処理部２２を通じて送信する（処理Ｐ３５）。当該コスト情報の送信についても、図８に例示したコスト情報パケットを用いてよい。
【００８６】
併せて、ＮＷ学習部２４１２は、隣接ＳＷノード２が図６に例示した隣接ノードＮＷ構成テーブル２５２を構築できるように、ＮＷ構成テーブル２５１の内容（ＮＷ構成テーブル情報）を隣接ＳＷノード２へ送信処理部２２を通じて送信する（処理Ｐ３６）。
【００８７】
ＮＷ構成テーブル情報の送信には、例えば図１４に示すように、ヘッダとペイロードとを有するパケット（「ＮＷ構成テーブル情報パケット」と称してよい。）を用いてよい。ヘッダには、宛先情報として隣接ＳＷノード２のＳＷ−ＩＤが格納される。ペイロードには、ＮＷ構成テーブル２５１に登録済みの情報（例えば、ＳＷ−ＩＤ、ＳＷコスト、レンジ情報（Ｒａｎ値）、及び、経路コスト（Ｃ値））が格納される。
【００８８】
一方、隣接ＳＷノード２から受信したコスト情報がＮＷ構成テーブル２５１に登録済みの場合（処理Ｐ３３でＮｏの場合）、ＮＷ学習部２４１２は、受信したコスト情報のレンジ情報が登録済みのレンジ情報よりも小さいか否かを確認する（処理Ｐ３７）。
【００８９】
受信したコスト情報のレンジ情報が登録済みのレンジ情報よりも小さければ（処理Ｐ３７でＹｅｓの場合）、ＮＷ学習部２４１２は、登録済みのコスト情報を受信したコスト情報に更新する（処理Ｐ３４）。別言すると、ＮＷ学習部２４１２は、コスト情報が登録済みであっても、レンジ情報（ホップ数）がより小さいコスト情報を受信すれば、受信したコスト情報でＮＷ構成テーブル２５１を更新する。その際、登録済みの（古い）コスト情報は、新しいコスト情報で上書きされて削除されて構わない。
【００９０】
これに対し、受信したコスト情報のレンジ情報が登録済みのコスト情報のレンジ情報よりも小さくなければ（処理Ｐ３７でＮｏの場合）、ＮＷ学習部２４１２は、受信したコスト情報のレンジ情報が登録済みのレンジ情報と同じか否かを確認する（処理Ｐ３８）。
【００９１】
受信したコスト情報のレンジ情報が登録済みのレンジ情報と同じであれば（処理Ｐ３８でＹｅｓの場合）、ＮＷ学習部２４１２は、更に、受信したコスト情報の経路コスト（Ｃ値）が登録済みの経路コストよりも小さいか否かを確認する（処理Ｐ３９）。
【００９２】
受信したコスト情報の経路コスト（Ｃ値）が登録済みの経路コストよりも小さければ（処理Ｐ３９でＹｅｓの場合）、ＮＷ学習部２４１２は、登録済みのコスト情報を受信したコスト情報に更新する（処理Ｐ３４）。別言すると、ＮＷ学習部２４１２は、ホップ数が同じでも、より経路コストの小さいコスト情報を受信すれば、受信したコスト情報でＮＷ構成テーブル２５１を更新する。その際、登録済みの（古い）コスト情報は、新しいコスト情報で上書きされて削除されて構わない。
【００９３】
いずれにしても、ＮＷ学習部２４１２は、ＮＷ構成テーブル２５１を更新すると、更新後のコスト情報及びＮＷ構成テーブル情報を隣接ＳＷノード２へ送信する（処理Ｐ３６及びＰ３７）。これにより、各ＳＷノード２は、コスト情報及びＮＷ構成テーブル情報を最新の情報に保つ（同期する）ことが可能となる。
【００９４】
なお、受信したコスト情報のレンジ情報が登録済みのレンジ情報よりも大きい場合（処理Ｐ３７及びＰ３８でＮｏの場合）、ＮＷ学習部２４１２は、受信したコスト情報を破棄してよい（処理Ｐ４０）。また、受信したコスト情報のレンジ情報が同じでも経路コストが登録済みの経路コストよりも大きい場合（処理Ｐ３９でＮｏの場合）も、ＮＷ学習部２４１２は、受信したコスト情報を破棄してよい（処理Ｐ４０）。
【００９５】
（ＮＷ構成テーブル情報処理）
次に、図１１を参照してＮＷ構成テーブル情報処理の一例について説明する。図１１に例示するように、他のＳＷノード２からＮＷ構成テーブル情報が受信されると（処理Ｐ５１）、ＮＷ学習部２４１２は、受信したＮＷ構成テーブル情報をメモリ２５（隣接ノードＮＷ構成テーブル２５２）に登録する（処理Ｐ５２）。
【００９６】
ここで、隣接ノードＮＷ構成テーブル２５２は、既述のように隣接ＳＷノード２分に限ってメモリ２５に記憶しておけば、データパケットの振分処理が可能である。各ＳＷノード２は、図１０のコスト情報処理で説明したように、それぞれのＳＷノード２におけるＮＷ構成テーブル２５１の更新に応じて更新したＮＷ構成テーブル情報を隣接ＳＷノード２に送信するため、受信したＮＷ構成テーブル情報は、最新の情報である。そのため、ＮＷ学習部２４１２は、コスト情報を受信した場合とは異なり、受信した情報の比較等は行なわずに、受信した情報をメモリ２５に登録し、あるいはメモリ２５に登録済みの情報を受信した情報で更新すればよい。
【００９７】
受信したＮＷ構成テーブル情報は、他のＳＷノード２へ転送しなくてよいため、ＮＷ学習部２４１２は、受信したＮＷ構成テーブル情報を破棄して、処理を終了してよい（処理Ｐ５３）。
【００９８】
（転送先判断処理）
次に、図１２を参照して、データパケットの転送先判断（宛先判定）処理の一例について説明する。
【００９９】
データパケットが受信処理部２３で受信されると（図９の処理Ｐ２３でＹｅｓの場合）、パケット伝送制御部２４２の宛先判定部２４２１が、データパケットの宛先情報（例えばＳＷ−ＩＤが＃ｎのＳＷ＃ｎ）を基にＮＷ構成テーブル２５１及び２５２を参照する。
【０１００】
例示的に、宛先判定部２４２１は、ＮＷ構成テーブル２５１から自ＳＷノード２における宛先ＳＷ＃ｎに対応するレンジ情報と、隣接ノードＮＷ構成テーブル２５２から隣接ＳＷノード２における宛先ＳＷ＃ｎに対応するレンジ情報と、を取得する（処理Ｐ６１）。なお、便宜的に、前者のレンジ情報を「自レンジ情報」と称し、後者のレンジ情報を「隣接レンジ情報」と称することがある。
【０１０１】
そして、宛先判定部２４２１は、取得した両レンジ情報を比較して、自レンジ情報よりも隣接レンジ情報が小さいか否かを確認する（処理Ｐ６２）。自レンジ情報よりも隣接レンジ情報の方が小さければ（処理Ｐ６２でＹｅｓの場合）、宛先判定部２４２１は、当該隣接レンジ情報に対応する隣接ＳＷノード２をデータパケットの転送先として選択する（処理Ｐ６５）。
【０１０２】
一方、処理Ｐ６２でＮｏの場合、宛先判定部２４２１は、更に隣接レンジ情報が自レンジ情報と同じであるか否かを確認する（処理Ｐ６３）。隣接レンジ情報が自レンジ情報と同じであれば（処理Ｐ６３でＹｅｓの場合）、宛先判定部２４２１は、更に、自ＳＷノード２及び隣接ノード２における宛先ＳＷ＃ｎに対応するコスト情報の経路コスト（Ｃ）を比較、確認する（処理Ｐ６４）。
【０１０３】
例えば、宛先判定部２４２１は、ＮＷ構成テーブル２５１及び２５２を参照して、自ＳＷノード２における宛先ＳＷ＃ｎに対応する経路コスト（Ｃ）よりも隣接ＳＷノード２における宛先ＳＷ＃ｎに対応する経路コスト（Ｃ）が小さいか否かを確認する。なお、原義的に、前者の経路コストを「自ノード経路コスト」と称し、後者の経路コストを「隣接ノード経路コスト」と称することがある。
【０１０４】
自ノード経路コストよりも隣接ノード経路コストが小さければ（処理Ｐ６４でＹｅｓの場合）、宛先判定部２４２１は、当該隣接ノード経路コストに対応する隣接ＳＷノード２をデータパケットの転送先として選択する（処理Ｐ６５）。
【０１０５】
一方、処理Ｐ６３でＮｏの場合や、処理Ｐ６４でＮｏの場合、処理Ｐ６５で隣接ＳＷノード２を転送先に選択した場合、宛先判定部２４２１は、全ての隣接ＳＷノード２について処理Ｐ６２〜Ｐ６４の比較判定処理を実施したか否かを確認する（処理Ｐ６６）。全ての隣接ＳＷノード２についての比較判定処理が完了していなければ（処理Ｐ６６でＮｏの場合）、完了するまで比較判定処理を繰り返す。比較判定処理が完了すれば（処理Ｐ６６でＹｅｓの場合）、宛先判定部２４２１は、振分処理部２４２２に処理を引き継ぐ（処理Ｐ６７）。振分処理部２４２２による振分処理の一例は、図１９のフローチャートに示される。図１９に示す振分処理の詳細については後述する。
【０１０６】
次に、上述した各ＳＷノード２の転送先判断処理を踏まえて、図１５〜図１８を参照して、図１及び図２に例示したＳＷ＃Ｉを宛先とするデータパケットをＳＷ＃Ａが受信し、ＳＷ＃ＡからＳＷ＃Ｉへデータパケットが伝送される動作例について説明する。
【０１０７】
図１５に例示するように、パケットヘッダに宛先情報としてＳＷ＃ＩのＳＷ−ＩＤ＝＃Ｉが含まれるパケットデータがＳＷ＃Ａで受信されたとする。この場合、ＳＷ＃Ａは、ＮＷ構成テーブル２５１及び２５２を参照して、図１６に例示するように、宛先ＳＷ＃Ｉに対応するコスト情報を比較する。
【０１０８】
図１６の例では、自ＳＷ＃Ａ（ＳＷコスト：２）の宛先ＳＷ＃Ｉに対応するレンジ情報は４であり、かつ、経路コストは４である（ＳＷ＃Ｉ（Ｒａｎ：４  Ｃ：４））。また、隣接ＳＷ＃Ｂ（ＳＷコスト：４）の宛先ＳＷ＃Ｉに対応するレンジ情報は３であり、かつ、経路コストは３である（ＳＷ＃Ｉ（Ｒａｎ：３  Ｃ：３））。同様に、隣接ＳＷ＃Ｄ（ＳＷコスト：４）の宛先ＳＷ＃Ｉに対応するレンジ情報は３であり、かつ、経路コストは３である（ＳＷ＃Ｉ（Ｒａｎ：３  Ｃ：３））。
【０１０９】
ＳＷ＃Ａは、自レンジ情報（Ｒａｎ：４）と、各隣接ＳＷ＃Ｂ及びＳＷ＃Ｄの隣接レンジ情報（Ｒａｎ：３）と、を比較すると、隣接ＳＷ＃Ｂ及びＳＷ＃Ｄの隣接レンジ情報（Ｒａｎ：３）の方がそれぞれ自レンジ情報よりも小さい。したがって、ＳＷ＃Ａは、ＳＷ＃Ｉ宛のデータパケットの転送先としてＳＷ＃Ｂ及びＳＷ＃Ｄを選択する。
【０１１０】
次に、図１７に例示するように、ＳＷ＃Ｄに着目すると、ＳＷ＃Ｄは、ＳＷ＃ＡからＳＷ＃Ｉ宛のデータパケットを受信した場合、ＳＷ＃Ａと同様に、ＮＷ構成テーブル２５１及び２５２を参照して、宛先ＳＷ＃Ｉに対応するコスト情報を比較する。
【０１１１】
図１７の例では、自ＳＷ＃Ｄ（ＳＷコスト：４）の宛先ＳＷ＃Ｉに対応するレンジ情報は３であり、かつ、経路コストは３である（ＳＷ＃Ｉ（Ｒａｎ：３  Ｃ：３））。また、隣接ＳＷ＃Ａ（ＳＷコスト：２）の宛先ＳＷ＃Ｉに対応するレンジ情報は４であり、かつ、経路コストは４である（ＳＷ＃Ｉ（Ｒａｎ：４  Ｃ：４））。
【０１１２】
同様に、隣接ＳＷ＃Ｅ（ＳＷコスト：８）の宛先ＳＷ＃Ｉに対応するレンジ情報は２であり、かつ、経路コストは３である（ＳＷ＃Ｉ（Ｒａｎ：２  Ｃ：３））。また、隣接ＳＷ＃Ｇ（ＳＷコスト：２）の宛先ＳＷ＃Ｉに対応するレンジ情報は２であり、かつ、経路コストは２である（ＳＷ＃Ｉ（Ｒａｎ：２  Ｃ：２））。
【０１１３】
ＳＷ＃Ｄは、自レンジ情報（Ｒａｎ：３）と、３つの隣接ＳＷ＃Ａ、ＳＷ＃Ｅ、及びＳＷ＃Ｇの隣接レンジ情報と、を比較すると、自レンジ情報よりも隣接ＳＷ＃Ａの隣接レンジ情報（Ｒａｎ：４）が大きいので、ＳＷ＃Ａは転送先として選択しない。したがって、データパケットがＳＷ＃Ａに戻ってしまってループするような事態を回避できる。
【０１１４】
これに対し、他の２つの隣接ＳＷ＃Ｅ及びＳＷ＃Ｇについては、ＳＷ＃Ｄの自レンジ情報よりも隣接レンジ情報（Ｒａｎ：２）の方がそれぞれ自レンジ情報よりも小さい。したがって、ＳＷ＃Ｄは、ＳＷ＃Ｉ宛のデータパケットの転送先としてＳＷ＃Ｅ及びＳＷ＃Ｇを選択する。
【０１１５】
このようにして、各ＳＷノード２でＳＷ＃Ｉ宛のデータパケットの転送先が自律的に選択される結果、例えば図１８に示すように、ＳＷ＃Ｉ宛のデータパケットは、ＮＷ＃１において、ＳＷ＃ＡからＳＷ＃Ｉに向けて伝送されてゆく。
【０１１６】
ここで、図１８において、ＳＷ＃Ｈに着目すると、ＳＷ＃Ｈは、自ＳＷ＃ＨのＮＷ構成テーブル２５１に、宛先ＳＷ＃Ｉに対応するレンジ情報として１が登録されているので、自ＳＷ＃Ｈが宛先ＳＷ＃Ｉに対する最終転送ノードであることを認識する。したがって、ＳＷ＃Ｈは、宛先ＳＷ＃Ｉ以外の隣接ＳＷ＃Ｅ及び＃Ｇの隣接レンジ情報に関わらず、データパケットの転送先としてＳＷ＃Ｉを選択する。
【０１１７】
（振分処理）
次に、図１９を参照して、ＳＷノード２の振分処理部２４２２（図３参照）によるデータパケットの振分処理について説明する。図１９に例示するように、振分処理部２４２２は、ＮＷ構成テーブル２５１を参照して、隣接ＳＷノード２のＳＷコストを参照し、ＳＷコストに応じたデータパケットの振分比率を作成する（処理Ｐ７１）。
【０１１８】
例えば図２０に示すように、ＳＷ＃Ｄに着目すると、３つの隣接ＳＷ＃Ａ、ＳＷ＃Ｅ及びＳＷ＃ＧのＳＷコストがそれぞれ２、８及び２であれば、ＳＷコストの比率は「１：４：１」である。ＳＷコストは、値が小さいほど伝送性能が高いことを示すので、ＳＷ＃Ｄの振分処理部２４２２は、データパケットの振分比率を例えば「ＳＷ＃Ａ：ＳＷ＃Ｅ：ＳＷ＃Ｇ」＝「４：１：４」に設定する。
【０１１９】
振分比率は、例示的に、テーブル形式のデータ（「振分テーブル」と称してよい。）として例えばメモリ２５に記憶される。振分処理部２４２２は、送信可能なデータパケットが無くなるまで、当該振分比率（振分テーブル）に従って、隣接ＳＷ＃Ａ、ＳＷ＃Ｅ及びＳＷ＃Ｇへのデータパケットの振分を実施する（処理Ｐ７２）。
【０１２０】
例えば図２１に示すように、ＳＷ＃Ｄは、ＳＷ＃ＡへはＳＷ＃Ｆ宛のデータパケットを４パケット、ＳＷ＃ＥへはＳＷ＃Ｉ宛のデータパケットを１パケット、ＳＷ＃ＧへはＳＷ＃Ｉ宛のデータパケットを４パケット、送信する。
【０１２１】
ここで、振分比率をできるだけ維持するよう、振分処理部２４２２は、カウンタ２４２３（図３参照）のカウント値を用いて、隣接ＳＷノード２へのデータパケットの伝送量を調整する。例えば、隣接ＳＷノードの全てがデータパケットの振分候補である場合は、振分比率に従って振分処理が実施されるが、一部の隣接ＳＷノード２が振分候補から除外されている場合がある。その場合、除外された隣接ＳＷノード２へ送信可能であった比率分のパケット数をカウンタ２４２３でカウントする。
【０１２２】
非限定的な一例を示すと、ＳＷ＃Ｄに対する３つの隣接ＳＷ＃Ａ、ＳＷ＃Ｅ及びＳＷ＃Ｇのうち、隣接ＳＷ＃Ａが振分候補から除外されていた場合、ＳＷ＃Ｄは、残り２つのＳＷ＃Ｅ及びＳＷ＃Ｇに対して「１：４」の比率でデータパケットを振り分ける。その際、カウンタ２４２３は、除外された隣接ＳＷ＃Ａへの振分比率（４）分のパケット数をカウントする。
【０１２３】
例えば、ＳＷ＃Ｄの振分処理部２４２２が、５０パケットの振分処理を行なう場合、ＳＷ＃Ｅへは１０パケットを送信し、ＳＷ＃Ｇへは４０パケットを送信する。そして、除外されたＳＷ＃Ａへ送信可能であった４０パケット分が、カウンタ２４２３でカウント（加算）される。
【０１２４】
別言すると、カウンタ２４２３は、振分処理部２４２２によるデータパケットの振り分けにおいて、振分比率に応じたデータ量に満たない不足分のデータ量をパスに対応するポート単位にカウントする。
【０１２５】
以降、ＳＷ＃Ｄの振分処理部２４２２は、カウンタ２４２３のカウント値が０になるまで、あるいは、ＳＷ＃Ａへ送信可能なパケットが無くなるまで、優先してＳＷ＃Ａへデータパケットが送信されるよう振分処理を調整する。別言すると、振分処理部２４２２は、カウンタ２４２３のカウント値に基づいて、振分比率が維持されるようにデータパケットの振り分けを調整する。
【０１２６】
以上のような調整処理の一例を示したのが、図１９の処理Ｐ７３〜処理Ｐ８０である。
まず、振分処理部２４２２は、カウンタ２４２３による各隣接ＳＷノード２のカウント値が０であるか否かを確認する（処理Ｐ７３）。カウント値が０であれば（処理Ｐ７３でＹｅｓの場合）、振分処理部２４２２は、隣接ＳＷノード２の全てが振分候補であるか否かを確認する（処理Ｐ７７）。
【０１２７】
隣接ＳＷノード２の全てが振分候補であれば（処理Ｐ７７でＹｅｓの場合）、振分処理部２４２２は、振分比率に従って隣接ＳＷノード２へのデータパケットの振り分け（伝送）を行ない（処理Ｐ７９）、処理Ｐ７２以降へ戻る。
【０１２８】
一方、隣接ＳＷノード２の一部が振分候補から除外されていた場合（処理Ｐ７７でＮｏの場合）、振分処理部２４２２は、除外された隣接ＳＷノード２に対応する比率分を除いた振分比率に従って、振分候補の隣接ＳＷノード２へのデータパケットの振り分け（伝送）を行なう（処理Ｐ７８）。
【０１２９】
併せて、振分処理部２４２２は、除外された隣接ＳＷノード２に対応する比率分のパケット数をカウンタ２４２３のカウント値に加算し（処理Ｐ８０）、処理Ｐ７２以降へ戻る。
【０１３０】
処理Ｐ７３においてカウンタ２４２３による各隣接ＳＷノード２のカウント値が０でなければ（処理Ｐ７３でＮｏの場合）、振分処理部２４２２は、カウント値が０でない隣接ＳＷノード２が振分候補に有るか否かを確認する（処理Ｐ７４）。カウント値が０でない隣接ＳＷノード２が振分候補に無ければ（処理Ｐ７４でＮｏの場合）、振分処理部２４２２は、既述の処理Ｐ７７以降の処理を実施する。
【０１３１】
一方、カウント値が０でない隣接ＳＷノード２が振分候補に有れば（処理Ｐ７４でＹｅｓの場合）、振分処理部２４２２は、対象の隣接ＳＷノード２へカウント値が示す分のデータパケットを送信する（処理Ｐ７５）。振分処理部２４２２は、送信したパケット数だけカウント値を減算し（処理Ｐ７６）、処理Ｐ７２以降の処理へ戻る。
【０１３２】
このようにして、各ＳＷノード２の振分処理部２４２２は、隣接ＳＷノード２のＳＷコストに応じた振分比率をできるだけ維持するようにデータパケットの振分処理を行なう。したがって、隣接ＳＷノード２へのデータパケットの振り分けに偏りが生じることを抑制できる。
【０１３３】
以上のように、上述した例によれば、パケットの宛先ＳＷノード２までの経路コストに基づくパケット伝送（別言すると、経路選択）を行なわず、代替的に、各ＳＷノード２がそれぞれのＳＷコストに応じて経路選択（振分処理）を自律的に行なう。
【０１３４】
別言すると、他のＳＷノード２の潜在的な伝送能力についての情報をＳＷノード２が取得可能である。また、取得した他のＳＷノード２の潜在的な伝送能力についての情報を利用すれば、潜在的な伝送能力について考慮した負荷分散処理を行なうことも可能となる。
【０１３５】
例えば、ＮＷ＃１を形成する各ＳＷノード２の、伝送帯域幅の指標値であるＳＷコストに応じて、なるべく効率的に伝送帯域を利用可能な経路を各ＳＷノード２で自律的に選択することが可能になる。その結果、ＮＷ＃１でパケット伝送に利用可能な帯域を最大限に活用できる。よって、バーストトラフィック等によるパケットロスの発生確率を低減することも可能となる。
【０１３６】
これに対し、例えば、宛先ＳＷノードまでの経路コストに基づくパケット伝送では、図２２に例示するように、経路コスト（Ｃ）が他のＳＷノードよりも相対的に高いＳＷノード２を経由する経路が選ばれにくくなる。
【０１３７】
そのため、経路コスト（Ｃ）が相対的に低いＳＷノードを経由する経路（例示的に、太実線矢印に示す伝送経路＃１及び＃２）にパケットが集中して伝送され易くなる。その結果、当該経路においてバーストトラフィック等に起因するパケットロスが生じ易くなり、また、当該経路を経由するＳＷノードに負荷が集中し易くなる。
【０１３８】
別言すると、上述した実施形態によれば、ＳＷコストに応じた振分処理によってリアルタイムのパケット伝送量を各ＳＷノード２間で利用可能な伝送帯域幅に応じて調整（最適化と称してもよい。）できる。したがって、ＳＷノード２にかかる負荷を分散することも可能である。
【０１３９】
更に、上述した実施形態によれば、ＳＷコストやＮＷ構成テーブルをＳＷノード２間で相互に交換する仕組みを有するので、対応機器同士が設定情報を相互に交換する仕組みをサポートする「ＴＲＩＬＬ」と称されるネットワークへの適用や対応が容易である。なお、「ＴＲＩＬＬ」は、Transparent Interconnection of Lots of Linksの略称である。「ＴＲＩＬＬ」の仕様は、インターネット技術を標準化する業界団体であるＩＥＴＦ（Internet Engineering Task Force）において策定作業が進められている。
【０１４０】
（変形例）
図２３は、変形例に係る通信システムの構成例を示すブロック図である。図２３に示す通信システム１は、例示的に、ＳＷ＃Ａ〜ＳＷ＃Ｌでそれぞれ表した１２台のＳＷノード２を備え、図１に例示した構成と同様に、各ＳＷノード２は、例えばメッシュ状のネットワーク＃１を形成する。
【０１４１】
各ＳＷノード２は、それぞれ、既述の実施形態と同等の構成を有するが、図２３には、一部のＳＷノード２が複数のＮＷ（エリア）＃１及び＃２のそれぞれに属する例を示している。例示的に、エリア＃１に属するＳＷ＃Ａ〜ＳＷ＃Ｌのうち、６台のＳＷ＃Ａ〜ＳＷ＃Ｆは、エリア＃２にも属している。
【０１４２】
この場合、６台のＳＷ＃Ａ〜ＳＷ＃Ｆそれぞれの間に設定されるパスは、複数のエリア＃１及び＃２において共有されることになる。そのため、エリア＃２に属するＳＷノード２は、エリア＃２に属しないＳＷノード２に比べて、パケット伝送の負荷が上昇しやすい。
【０１４３】
例えば、エリア＃２において、ＳＷ＃Ａ−＃Ｂ、ＳＷ＃Ｂ−＃Ｃ、及び、ＳＷ＃Ａ−＃Ｄの間の経路コスト（Ｃ：１）が、ＳＷ＃Ｂ−＃Ｅ、ＳＷ＃Ｃ−＃Ｆ、ＳＷ＃Ｄ−＃Ｅ、及び、ＳＷ＃Ｅ−＃Ｆ間の経路コスト（Ｃ：２）よりも小さい場合を想定してみる。
【０１４４】
この場合に、通常のＯＳＰＦのように、ＮＷ＃１及び＃２の重複を考慮せずに、特定の宛先ＳＷノード２までの経路コストの合算値に基づいて経路選択を行なうと、経路コストのより小さいパスを経由する経路が選ばれ易くなる。そのため、例えばＳＷ＃Ａ−＃Ｂ、ＳＷ＃Ｂ−＃Ｃ、及び、ＳＷ＃Ａ−＃Ｄの間のパスが選ばれ易くなり、ＳＷ＃Ａ〜ＳＷ＃Ｄの負荷が上昇し易くなる。例えば図２４に示すように、エリア＃１及び＃２において太実線で示すパスが伝送経路＃１及び＃２に選択されると、ＳＷ＃Ｂ及びＳＷ＃Ｃの負荷が上昇する。
【０１４５】
そこで、本変形例では、各ＳＷノード２において、既述のＳＷコストをエリア＃１及び＃２の重複を考慮して求める。例えば、各ＳＷノード２は、複数のエリア＃１及び＃２に共用されるポートのコストを複数のエリア＃１及び＃２の別に求めて、エリア別に求めたポートコストを合算することで、自ＳＷノード２のＳＷコストとする。
【０１４６】
図２３の例では、ＳＷ＃Ａに着目すると、ＳＷ＃Ｂ及びＳＷ＃Ｄとの間の２つのパスは、２つのエリア＃１及び＃２に共用され、各パスに対応するポートコストは２つのエリア＃１及び＃２についてそれぞれ１（Ｃ：１）である。したがって、ＳＷ＃ＡのＳＷコストは、コスト１×２（ポート）×２（エリア）＝４で表される。
【０１４７】
また、ＳＷ＃Ｄに着目すると、ＳＷ＃Ａ及びＳＷ＃Ｅとの間の２つパスが２つのエリア＃１及び＃２に共用され、ＳＷ＃Ｇとの間のパスは１つのエリア＃１で使用される。ＳＷ＃Ａとの間のパスに対応するポートコストは１（Ｃ：１）であり、ＳＷ＃Ｅとの間のパスに対応するポートコストは２（Ｃ：２）であり、ＳＷ＃Ｇとの間のパスに対応するポートコストは１（Ｃ：１）である。したがって、ＳＷ＃ＥのＳＷコストは、コスト１×２（ポート：エリア＃１）＋コスト２×１（ポート：エリア＃１）＋コスト１×１（ポート：エリア＃２）＋コスト２×１（ポート：エリア＃２）＝７で表される。
【０１４８】
一方、エリア＃１に属するがエリア＃２には属さないＳＷ＃Ｇに着目すると、図２の場合と同様に、１つのエリア＃１におけるＳＷ＃Ｄ及びＳＷ＃Ｈとの間の２つのパスに対応するポートコストは１（Ｃ：１）である。したがって、ＳＷ＃ＧのＳＷコストは、コスト１×２（ポート）×１（エリア）＝２で表される。
【０１４９】
他のＳＷノード２についても、上記と同様にして、エリア＃１及び＃２の重複の有無を考慮して、ＳＷコストがそれぞれ求められる。求められたＳＷコストは、既述の実施形態と同様にして各ＳＷノード２間で交換される。当該交換によって、既述のＮＷ構成テーブル２５１及び２５２が各ＳＷノード２で構築（保持）され、ＳＷコストに基づくデータパケットの振分処理に用いられる。
【０１５０】
以上のように、上述した変形例によれば、既述の実施形態と同様の作用効果が得られるほか、複数のＮＷ（例示的に、エリア＃１及び＃２）が重複して設定される場合であっても、当該重複を考慮したパケット転送の負荷分散が可能になる。
【０１５１】
（比較例）
なお、各ＳＷノード２の負荷を分散する第１の手法として、負荷分散用のコントローラを設置し、当該コントローラにおいて、各経路の負荷を中央集中的に監視、管理し、負荷に応じてコントローラが経路変更を行なう手法が考えられる。また、第２の手法の一例として、ＳＷノード２間で負荷を監視し、負荷に応じてＳＷノード２が経路変更を実施する手法が考えられる。
【０１５２】
しかし、第１の手法では、負荷がコントローラに集中してしまう。また、第２の手法では、負荷がメインの経路に集中し易く、また、経路変更後の経路コストに保証が無い。さらに、いずれの手法でも、負荷に応じて経路を制御するため、バーストトラフィックのような瞬間的な負荷変動に弱く、パケットロスが発生し易い。
【０１５３】
また、第３の手法として、ＩＧＲＰやＥＧＲＰと称されるルーティングプロトコルを用いることが考えられる。ＩＧＲＰは、Interior Gateway Routing Protocolの略称であり、ＥＧＲＰは、Enhanced Interior Gateway Routing Protocolの略称である。当該プロトコルでは、経路コストに応じてパケットの振り分けが可能であるが、特定の１つの宛先への経路における分散が可能であるに過ぎず、異なる宛先への経路との重複を考慮できないため、適切な負荷分散が行なえない場合がある。別言すると、既述のように複数のＮＷ（エリア）が重複する場合に、重複を考慮した負荷分散が行なえない。
【符号の説明】
【０１５４】
１  通信システム
２  スイッチ（ＳＷ）ノード
２１  通信インタフェース
２２  送信処理部
２３  受信処理部
２４  コントローラ
２４１  テーブル構築部
２４１１  コスト算出部
２４１２  ＮＷ学習部
２４２  パケット伝送制御部
２４２１  宛先判定部
２４２２  振分処理部
２４２３  カウンタ
２５  メモリ
２５１  ネットワーク（ＮＷ）構成テーブル
２５２  隣接ノードＮＷ構成テーブル
【図１】
2015162739.tif 000003
【図２】
2015162739.tif 000004
【図３】
2015162739.tif 000005
【図４】
2015162739.tif 000006
【図５】
2015162739.tif 000007
【図６】
2015162739.tif 000008
【図７】
2015162739.tif 000009
【図８】
2015162739.tif 000010
【図９】
2015162739.tif 000011
【図１０】
2015162739.tif 000012
【図１１】
2015162739.tif 000013
【図１２】
2015162739.tif 000014
【図１３】
2015162739.tif 000015
【図１４】
2015162739.tif 000016
【図１５】
2015162739.tif 000017
【図１６】
2015162739.tif 000018
【図１７】
2015162739.tif 000019
【図１８】
2015162739.tif 000020
【図１９】
2015162739.tif 000021
【図２０】
2015162739.tif 000022
【図２１】
2015162739.tif 000023
【図２２】
2015162739.tif 000024
【図２３】
2015162739.tif 000025
【図２４】
2015162739.tif 000026