(57)【要約】【課題】通信ネットワーク上のスイッチにおけるエントリあふれの発生を抑制すること。【解決手段】通信システムは、通信ネットワーク上に配置された複数のスイッチと、それら複数のスイッチに接続された管理計算機とを備える。使用エントリ数は、１つのスイッチに管理されているフローの数である。パラメータは、使用エントリ数に依存する量であり、スイッチコストは、そのパラメータに依存する量である。管理計算機は、記憶部と制御部とを備える。記憶部には、複数のスイッチの各々における上記パラメータを示すエントリ状態情報が格納される。制御部は、通信ネットワークにおける送信元から送信先へのフローを制御する。具体的には、制御部は、エントリ状態情報を参照することによって、通信ネットワークにおける送信元から送信先への各経路候補に属する各スイッチのスイッチコストを算出する。そして、制御部は、算出されたスイッチコストに基づいて、経路候補のうち１つを送信元から送信先へのフローの経路として決定する。【選択図】図１
2010161473.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワーク上に配置された複数のスイッチと、
前記複数のスイッチに接続された管理計算機と
を備え、
使用エントリ数は、１つのスイッチに管理されているフローの数であり、
パラメータは、前記使用エントリ数に依存し、
スイッチコストは、前記パラメータに依存し、
前記管理計算機は、
前記複数のスイッチの各々における前記パラメータを示すエントリ状態情報が格納される記憶部と、
前記通信ネットワークにおける送信元から送信先へのフローを制御する制御部と
を備え、
前記制御部は、前記エントリ状態情報を参照することによって、前記通信ネットワークにおける前記送信元から前記送信先への各経路候補に属する各スイッチの前記スイッチコストを算出し、
前記制御部は、前記算出されたスイッチコストに基づいて、前記経路候補のうち１つを前記送信元から前記送信先へのフローの経路として決定する
通信システム。
【請求項２】
請求項１に記載の通信システムであって、
閾値エントリ数は、前記使用エントリ数の閾値であり、
空きエントリ数は、前記閾値エントリ数と前記使用エントリ数との差分であり、
前記スイッチコストは、前記空きエントリ数が減少するにつれて増加する量である
通信システム。
【請求項３】
請求項２に記載の通信システムであって、
前記各経路候補に属するスイッチの前記スイッチコストの総和あるいは積は、総コストであり、
前記制御部は、前記経路候補のうち前記総コストが最小である１つを、前記送信元から前記送信先へのフローの経路として決定する
通信システム。
【請求項４】
請求項２に記載の通信システムであって、
前記各経路候補に属するスイッチの前記スイッチコストのうち最大のものは、最大スイッチコストであり、
前記制御部は、前記経路候補のうち前記最大スイッチコストが最小である１つを、前記送信元から前記送信先へのフローの経路として決定する
通信システム。
【請求項５】
請求項２に記載の通信システムであって、
前記各経路候補に属するスイッチの前記スイッチコストのうち最小のものは、最小スイッチコストであり、
前記制御部は、前記経路候補のうち前記最小スイッチコストが最小である１つを、前記送信元から前記送信先へのフローの経路として決定する
通信システム。
【請求項６】
請求項２乃至５のいずれか一項に記載の通信システムであって、
前記スイッチコストは、前記空きエントリ数の逆数に比例する量である
通信システム。
【請求項７】
請求項２乃至６のいずれか一項に記載の通信システムであって、
前記制御部は、前記送信元から前記送信先へのフローの経路を決定した後、前記空きエントリ数が１減少することに相当する変更を、前記決定された経路に属する各スイッチに関する前記パラメータに加えることによって、前記エントリ状態情報を更新する
通信システム。
【請求項８】
請求項２乃至７のいずれか一項に記載の通信システムであって、
前記決定された経路に属する第１スイッチは、前記送信元から前記送信先へのフローの通信が所定の期間途絶えた場合、エントリ消去通知を前記管理計算機に送信し、
前記制御部は、前記エントリ消去通知に応答して、前記空きエントリ数が１増加することに相当する変更を前記第１スイッチに関する前記パラメータに加えることによって、前記エントリ状態情報を更新する
通信システム。
【請求項９】
請求項１乃至８のいずれか一項に記載の通信システムであって、
前記記憶部には、更に、前記通信ネットワークの構成を示すトポロジ情報が格納され、
前記制御部は、前記トポロジ情報を参照することによって、前記通信ネットワークにおける前記送信元から前記送信先への前記経路候補を抽出する
通信システム。
【請求項１０】
請求項１乃至９のいずれか一項に記載の通信システムであって、
前記管理計算機は、前記決定された経路に属する各スイッチに対して、前記送信元から前記送信先へのフローの通信データを前記決定された経路に沿って転送するように指示する
通信システム。
【請求項１１】
請求項１０に記載の通信システムであって、
前記複数のスイッチの各々は、通信データの入力元と転送先との対応関係を示す転送テーブルを有し、前記転送テーブルを参照することによって前記入力元から受け取った通信データを前記転送先に転送し、
前記管理計算機は、前記決定された経路に属する各スイッチに対して、前記送信元から前記送信先へのフローの通信データが前記決定された経路に沿って転送されるように前記転送テーブルの内容を設定するよう指示し、
前記決定された経路に属する各スイッチは、前記管理計算機からの指示に応答して、前記転送テーブルの内容を設定する
通信システム。
【請求項１２】
通信ネットワーク上に配置された複数のスイッチに接続された管理計算機であって、
使用エントリ数は、１つのスイッチに管理されているフローの数であり、
パラメータは、前記使用エントリ数に依存し、
スイッチコストは、前記パラメータに依存し、
前記管理計算機は、
前記複数のスイッチの各々における前記パラメータを示すエントリ状態情報が格納される記憶部と、
前記通信ネットワークにおける送信元から送信先へのフローを制御する制御部と
を備え、
前記制御部は、前記エントリ状態情報を参照することによって、前記通信ネットワークにおける前記送信元から前記送信先への各経路候補に属する各スイッチの前記スイッチコストを算出し、
前記制御部は、前記算出されたスイッチコストに基づいて、前記経路候補のうち１つを前記送信元から前記送信先へのフローの経路として決定する
管理計算機。
【請求項１３】
外部ネットワークに接続された外部入力ポート及び外部出力ポートと、
前記外部入力ポートと前記外部出力ポートとの間の内部ネットワーク上に配置された複数のスイッチと、
前記複数のスイッチに接続されたスタック管理部と
を備え、
使用エントリ数は、１つのスイッチに管理されているフローの数であり、
パラメータは、前記使用エントリ数に依存し、
スイッチコストは、前記パラメータに依存し、
前記スタック管理部は、
前記複数のスイッチの各々における前記パラメータを示すエントリ状態情報が格納される記憶部と、
前記内部ネットワークにおける前記外部入力ポートから前記外部出力ポートへのフローを制御する制御部と
を備え、
前記制御部は、前記エントリ状態情報を参照することによって、前記内部ネットワークにおける前記外部入力ポートから前記外部出力ポートへの各経路候補に属する各スイッチの前記スイッチコストを算出し、
前記制御部は、前記算出されたスイッチコストに基づいて、前記経路候補のうち１つを前記外部入力ポートから前記外部出力ポートへのフローの経路として決定する
スタックドスイッチ。
【請求項１４】
請求項１３に記載のスタックドスイッチであって、
閾値エントリ数は、前記使用エントリ数の閾値であり、
空きエントリ数は、前記閾値エントリ数と前記使用エントリ数との差分であり、
前記スイッチコストは、前記空きエントリ数が減少するにつれて増加する量である
スタックドスイッチ。
【請求項１５】
請求項１４に記載のスタックドスイッチであって、
前記各経路候補に属するスイッチの前記スイッチコストの総和あるいは積は、総コストであり、
前記制御部は、前記経路候補のうち前記総コストが最小である１つを、前記外部入力ポートから前記外部出力ポートへのフローの経路として決定する
スタックドスイッチ。
【請求項１６】
請求項１４に記載のスタックドスイッチであって、
前記各経路候補に属するスイッチの前記スイッチコストのうち最大のものは、最大スイッチコストであり、
前記制御部は、前記経路候補のうち前記最大スイッチコストが最小である１つを、前記外部入力ポートから前記外部出力ポートへのフローの経路として決定する
スタックドスイッチ。
【請求項１７】
請求項１４に記載のスタックドスイッチであって、
前記各経路候補に属するスイッチの前記スイッチコストのうち最小のものは、最小スイッチコストであり、
前記制御部は、前記経路候補のうち前記最小スイッチコストが最小である１つを、前記外部入力ポートから前記外部出力ポートへのフローの経路として決定する
スタックドスイッチ。
【請求項１８】
請求項１４乃至１７のいずれか一項に記載のスタックドスイッチであって、
前記スイッチコストは、前記空きエントリ数の逆数に比例する量である
スタックドスイッチ。
【請求項１９】
請求項１４乃至１８のいずれか一項に記載のスタックドスイッチであって、
前記制御部は、前記外部入力ポートから前記外部出力ポートへのフローの経路を決定した後、前記空きエントリ数が１減少することに相当する変更を、前記決定された経路に属する各スイッチに関する前記パラメータに加えることによって、前記エントリ状態情報を更新する
スタックドスイッチ。
【請求項２０】
請求項１４乃至１９のいずれか一項に記載のスタックドスイッチであって、
前記決定された経路に属する第１スイッチは、前記外部入力ポートから前記外部出力ポートへのフローの通信が所定の期間途絶えた場合、エントリ消去通知を前記スタック管理部に送信し、
前記制御部は、前記エントリ消去通知に応答して、前記空きエントリ数が１増加することに相当する変更を前記第１スイッチに関する前記パラメータに加えることによって、前記エントリ状態情報を更新する
スタックドスイッチ。
【請求項２１】
請求項１３乃至２０のいずれか一項に記載のスタックドスイッチであって、
前記記憶部には、更に、前記内部ネットワークの構成を示すトポロジ情報が格納され、
前記制御部は、前記トポロジ情報を参照することによって、前記内部ネットワークにおける前記外部入力ポートから前記外部出力ポートへの前記経路候補を抽出する
スタックドスイッチ。
【請求項２２】
請求項１３乃至２１のいずれか一項に記載のスタックドスイッチであって、
前記制御部は、前記決定された経路に属する各スイッチに対して、前記外部入力ポートから前記外部出力ポートへのフローの通信データを前記決定された経路に沿って転送するように指示する
スタックドスイッチ。
【請求項２３】
請求項２２に記載のスタックドスイッチであって、
前記複数のスイッチの各々は、通信データの入力元と転送先との対応関係を示す転送テーブルを有し、前記転送テーブルを参照することによって前記入力元から受け取った通信データを前記転送先に転送し、
前記制御部は、前記決定された経路に属する各スイッチに対して、前記外部入力ポートから前記外部出力ポートへのフローの通信データが前記決定された経路に沿って転送されるように前記転送テーブルの内容を設定するよう指示し、
前記決定された経路に属する各スイッチは、前記制御部からの指示に応答して、前記転送テーブルの内容を設定する
スタックドスイッチ。
【請求項２４】
複数のスイッチが配置された通信ネットワークにおける送信元から送信先へのフローの経路を決定するフロー経路決定方法であって、
使用エントリ数は、１つのスイッチに管理されているフローの数であり、
パラメータは、前記使用エントリ数に依存し、
スイッチコストは、前記パラメータに依存し、
前記フロー経路決定方法は、
前記複数のスイッチの各々における前記パラメータを示すエントリ状態情報を記憶装置から読み出すステップと、
前記エントリ状態情報を参照することによって、前記通信ネットワークにおける前記送信元から前記送信先への各経路候補に属する各スイッチの前記スイッチコストを算出するステップと、
前記算出されたスイッチコストに基づいて、前記経路候補のうち１つを前記送信元から前記送信先へのフローの経路として決定するステップと
を含む
フロー経路決定方法。
【請求項２５】
複数のスイッチが配置された通信ネットワークにおける送信元から送信先へのフローの経路を決定するフロー経路決定処理をコンピュータに実行させるフロー経路決定プログラムであって、
使用エントリ数は、１つのスイッチに管理されているフローの数であり、
パラメータは、前記使用エントリ数に依存し、
スイッチコストは、前記パラメータに依存し、
前記フロー経路決定処理は、
前記複数のスイッチの各々における前記パラメータを示すエントリ状態情報を記憶装置から読み出すステップと、
前記エントリ状態情報を参照することによって、前記通信ネットワークにおける前記送信元から前記送信先への各経路候補に属する各スイッチの前記スイッチコストを算出するステップと、
前記算出されたスイッチコストに基づいて、前記経路候補のうち１つを前記送信元から前記送信先へのフローの経路として決定するステップと
を含む
フロー経路決定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムやスタックドスイッチにおけるフロー経路を決定するための技術に関する。
【背景技術】
【０００２】
複数のスイッチ（ノード）を含む通信ネットワークを通してフロー通信を行う通信システムが知られている。そのような通信システムにおいては、システム性能の観点から適切なフロー経路を決定することが重要である。
【０００３】
また、内部に複数のスイッチを有するが、外部からは１台の大きなスイッチとして見える「スタックドスイッチ（Stacked  Switch）」が知られている（例えば特許文献１参照）。スタックドスイッチの内部では、それら複数のスイッチにより内部ネットワークが構成される。このようなスタックドスイッチの場合も、内部ネットワークにおいて適切なフロー経路を決定することが重要である。
【０００４】
特許文献２には、代表的なルーティングプロトコルである「ＯＳＰＦ（Open  Shortest  Path  First）」が記載されている。ＯＳＰＦでは、ダイクストラ法と呼ばれる最短経路探索アルゴリズムを用いることによりルーティングテーブルが作成される。ダイクストラ法は、ある始点ノードから他の全てのノードまでの最短経路を求めるアルゴリズムである。
【０００５】
特許文献３には、通信状態を統計的に分析して、帯域が空いているところにトラフィックを通す「ＴＥ（Traffic  Engineering）」が開示されている。非特許文献１には、中継ノードをランダムに選択し、帯域を負荷分散する「ＶＬＢ（Valiant  Load  Balancing）」が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−０４２３６８号公報
【特許文献２】特開２００７−３０６４４２号公報
【特許文献３】特開２００７−１２９７８２号公報
【非特許文献】
【０００７】
【非特許文献１】Ｄｅｓｉｇｎｉｎｇ  ａ  Ｐｒｅｄｉｃｔａｂｌｅ  Ｂａｃｋｂｏｎｅ  Ｎｅｔｗｏｒｋ  ｗｉｔｈ  Ｖａｌｉａｎｔ  Ｌｏａｄ  Ｂａｌａｎｃｉｎｇ（ｈｔｔｐ：／／ｗｗｗ．ｃｉｓｃｏ．ｃｏｍ／ｗｅｂ／ａｂｏｕｔ／ａｃ５０／ａｃ２０７／ｐｒｏｃｅｅｄｉｎｇｓ／ＮＧＡ−ＭＣＫＥＯＷＮ．ｐｐｔ）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
通信ネットワークでは、多数のフローの通信が同時に行われる。この時、通信ネットワーク上のある１つのスイッチは、複数のフロー（パス）を管理することとなる。１つのスイッチが管理しているフロー（パス）の数は、以下「使用エントリ数」と参照される。また、あるスイッチにおいて使用エントリ数が所定の閾値（閾値エントリ数）を超える現象は、「エントリあふれ」と参照される。あるスイッチにおいてエントリあふれが発生すると、当該スイッチのスループットが極端に低下してしまう。従って、通信ネットワーク上のスイッチにおけるエントリあふれの発生を抑制することが重要である。
【０００９】
しかしながら、上述の関連技術では、経路選択に際して、通信ネットワーク上の各スイッチの使用エントリ数は考慮されていなかった。上述の関連技術では、リンクコストや帯域に基づいて経路が決定されるため、あるスイッチにフローが集中する恐れがある。その場合、当該スイッチでエントリあふれが発生する。
【００１０】
本発明の１つの目的は、通信ネットワーク上のスイッチにおけるエントリあふれの発生を抑制することができる技術を提供することにある。
【課題を解決するための手段】
【００１１】
フロー通信が行われるネットワーク上の各スイッチに関して、次の量が定義される。使用エントリ数は、１つのスイッチに管理されているフロー（パス）の数である。パラメータは、使用エントリ数に依存する量であり、スイッチコストは、そのパラメータに依存する量である。
【００１２】
本発明の第１の観点において、通信システムが提供される。その通信システムは、通信ネットワーク上に配置された複数のスイッチと、それら複数のスイッチに接続された管理計算機とを備える。管理計算機は、記憶部と制御部とを備える。記憶部には、複数のスイッチの各々における上記パラメータを示すエントリ状態情報が格納される。制御部は、通信ネットワークにおける送信元から送信先へのフローを制御する。具体的には、制御部は、エントリ状態情報を参照することによって、通信ネットワークにおける送信元から送信先への各経路候補に属する各スイッチのスイッチコストを算出する。そして、制御部は、算出されたスイッチコストに基づいて、経路候補のうち１つを送信元から送信先へのフローの経路として決定する。
【００１３】
本発明の第２の観点において、通信ネットワーク上に配置された複数のスイッチに接続された管理計算機が提供される。その管理計算機は、記憶部と制御部とを備える。記憶部には、複数のスイッチの各々における上記パラメータを示すエントリ状態情報が格納される。制御部は、通信ネットワークにおける送信元から送信先へのフローを制御する。具体的には、制御部は、エントリ状態情報を参照することによって、通信ネットワークにおける送信元から送信先への各経路候補に属する各スイッチのスイッチコストを算出する。そして、制御部は、算出されたスイッチコストに基づいて、経路候補のうち１つを送信元から送信先へのフローの経路として決定する。
【００１４】
本発明の第３の観点において、スタックドスイッチが提供される。そのスタックドスイッチは、外部ネットワークに接続された外部入力ポート及び外部出力ポートと、外部入力ポートと外部出力ポートとの間の内部ネットワーク上に配置された複数のスイッチと、複数のスイッチに接続されたスタック管理部と、を備える。スタック管理部は、記憶部と制御部とを備える。記憶部には、複数のスイッチの各々における上記パラメータを示すエントリ状態情報が格納される。制御部は、内部ネットワークにおける外部入力ポートから外部出力ポートへのフローを制御する。具体的には、制御部は、エントリ状態情報を参照することによって、内部ネットワークにおける外部入力ポートから外部出力ポートへの各経路候補に属する各スイッチのスイッチコストを算出する。そして、制御部は、算出されたスイッチコストに基づいて、経路候補のうち１つを外部入力ポートから外部出力ポートへのフローの経路として決定する。
【００１５】
本発明の第４の観点において、複数のスイッチが配置された通信ネットワークにおける送信元から送信先へのフローの経路を決定するフロー経路決定方法が提供される。そのフロー経路決定方法は、（Ａ）複数のスイッチの各々における上記パラメータを示すエントリ状態情報を記憶装置から読み出すステップと、（Ｂ）エントリ状態情報を参照することによって、通信ネットワークにおける送信元から送信先への各経路候補に属する各スイッチのスイッチコストを算出するステップと、（Ｃ）算出されたスイッチコストに基づいて、経路候補のうち１つを送信元から送信先へのフローの経路として決定するステップと、を含む。
【００１６】
本発明の第５の観点において、スタックドスイッチ内の内部ネットワークにおけるフローの経路を決定するフロー経路決定方法が提供される。スタックドスイッチは、内部ネットワーク上に配置された複数のスイッチと、外部ネットワークに接続された外部入力ポート及び外部出力ポートと、を備える。フロー経路決定方法は、（ａ）複数のスイッチの各々における上記パラメータを示すエントリ状態情報を記憶装置から読み出すステップと、（ｂ）エントリ状態情報を参照することによって、内部ネットワークにおける外部入力ポートから外部出力ポートへの各経路候補に属する各スイッチのスイッチコストを算出するステップと、（ｃ）算出されたスイッチコストに基づいて、経路候補のうち１つを外部入力ポートから外部出力ポートへのフローの経路として決定するステップと、を含む。
【００１７】
本発明の第６の観点において、上記フロー経路決定方法をコンピュータに実行させるフロー経路決定プログラムが提供される。
【発明の効果】
【００１８】
本発明によれば、通信ネットワーク上のスイッチにおけるエントリあふれの発生を抑制することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】図１は、本発明の実施の形態に係る通信システムの一例を概略的に示すブロック図である。
【図２】図２は、本発明の実施の形態に係る通信システムの他の例を概略的に示すブロック図である。
【図３】図３は、本発明の実施の形態に係るスタックドスイッチを概略的に示すブロック図である。
【図４】図４は、本発明の実施の形態に係るスイッチの構成例を示すブロック図である。
【図５】図５は、本発明の実施の形態に係る転送テーブルの一例を示す概念図である。
【図６】図６は、本発明の実施の形態に係るスタックドスイッチの構成例を示すブロック図である。
【図７】図７は、本発明の実施の形態に係るポート情報の一例を示している。
【図８】図８は、本発明の実施の形態に係るトポロジ情報の一例を示している。
【図９】図９は、本発明の実施の形態に係るエントリ状態情報の一例を示している。
【図１０】図１０は、本発明の実施の形態に係る通信システムの動作例を示すフローチャートである。
【図１１】図１１は、パケットの一例を示している。
【図１２Ａ】図１２Ａは、スタック管理部１０に対するパケット到着通知を示している。
【図１２Ｂ】図１２Ｂは、管理ホスト１に対するパケット到着通知を示している。
【図１３Ａ】図１３Ａは、スイッチ４に対するテーブル設定命令を示している。
【図１３Ｂ】図１３Ｂは、スタックドスイッチ９に対するテーブル設定命令を示している。
【図１４】図１４は、スイッチ４の転送テーブル４２の設定例を示している。
【図１５】図１５は、本発明の実施の形態に係るスタックドスイッチ９における処理を示すフローチャートである。
【図１６】図１６は、更新後のエントリ状態情報を示している。
【図１７Ａ】図１７Ａは、スイッチ５に対するテーブル設定命令を示している。
【図１７Ｂ】図１７Ｂは、スイッチ７に対するテーブル設定命令を示している。
【図１７Ｃ】図１７Ｃは、スイッチ８に対するテーブル設定命令を示している。
【図１８Ａ】図１８Ａは、スイッチ５の転送テーブル５２の設定例を示している。
【図１８Ｂ】図１８Ｂは、スイッチ７の転送テーブル７２の設定例を示している。
【図１８Ｃ】図１８Ｃは、スイッチ８の転送テーブル８２の設定例を示している。
【図１９Ａ】図１９Ａは、スタックドスイッチ９に対するパケット送信命令を示している。
【図１９Ｂ】図１９Ｂは、スイッチ５に対するパケット送信命令を示している。
【図２０】図２０は、本発明の実施の形態に係る通信システムのエントリ消去動作を示すフローチャートである。
【図２１】図２１は、スタック管理部１０に対するエントリ消去通知を示している。
【図２２】図２２は、管理ホスト１に対するエントリ消去通知を示している。
【図２３】図２３は、スタック管理部１０に対するエントリ消去通知の他の例を示している。
【図２４】図２４は、スタック管理部１０に対するエントリ消去通知の更に他の例を示している。
【図２５】図２５は、エントリ状態情報の変形例を示している。
【図２６】図２６は、エントリ状態情報の他の変形例を示している。
【図２７】図２７は、エントリ状態情報の更に他の変形例を示している。
【図２８】図２８は、エントリ状態情報の更に他の変形例を示している。
【発明を実施するための形態】
【００２０】
添付図面を参照して、本発明の実施の形態を説明する。
【００２１】
１．第１の実施の形態
図１は、本発明の第１の実施の形態に係る通信システムの一例を概略的に示している。図１に示される通信システムは、管理ホスト１、端末２、３、及び複数のスイッチ５〜８を備えており、それらによって通信ネットワークＮＥＴが構成されている。端末２、３は、パソコン、サーバ、ワークステーション等の通信端末である。
【００２２】
図１の例で示される通信ネットワークＮＥＴは、次のような構成（トポロジ）を有している。端末２はスイッチ５のポートＰ２と接続されており、端末２とスイッチ５とは双方向に通信可能である。端末３はスイッチ８のポートＰ３と接続されており、端末３とスイッチ８とは双方向に通信可能である。スイッチ５のポートＰ１６とスイッチ６のポートＰ１５とは互いに接続されており、スイッチ５とスイッチ６とは双方向に通信可能である。スイッチ５のポートＰ１７とスイッチ７のポートＰ１５とは互いに接続されており、スイッチ５とスイッチ７とは双方向に通信可能である。スイッチ８のポートＰ１６とスイッチ６のポートＰ１８とは互いに接続されており、スイッチ８とスイッチ６とは双方向に通信可能である。スイッチ８のポートＰ１７とスイッチ７のポートＰ１８とは互いに接続されており、スイッチ８とスイッチ７とは双方向に通信可能である。このようにして、通信ネットワークＮＥＴが構成されている。
【００２３】
通信ネットワークＮＥＴでは、フロー通信が行われる。通信ネットワークＮＥＴ上に配置されているスイッチ５〜８は、フローの通信データを処理する。具体的には、各スイッチは、他のスイッチあるいは端末から受け取ったフローの通信データを、更に他のスイッチあるいは端末に転送する機能を有する。ある１つのスイッチには、複数のフローの処理が割り当てられ得る。
【００２４】
ここで、通信ネットワークＮＥＴ上の各スイッチに関して、「使用エントリ数ＮＡ」、「閾値エントリ数ＮＭ」、及び「空きエントリ数ＮＢ」が定義され得る。使用エントリ数ＮＡとは、ある１つのスイッチに管理（管轄）されているフローの数であり、当該スイッチに現在割り当てられているフローの数である。閾値エントリ数ＮＭは、ある１つのスイッチにおける使用エントリ数ＮＡに関する所定の閾値である。各スイッチの閾値エントリ数ＮＭは、任意に設定可能であるが、典型的には当該スイッチにおいて“エントリあふれ”が発生しない上限の使用エントリ数ＮＡに設定される。そのような使用エントリ数ＮＡの上限は、当該スイッチのメモリ容量に依存する。空きエントリ数ＮＢは、閾値エントリ数ＮＭと使用エントリ数ＮＡとの差分であり、式：ＮＢ＝ＮＭ−ＮＡで与えられる。あるスイッチに関して、使用エントリ数ＮＡはエントリ消費量を表し、空きエントリ数ＮＢはエントリ残量を表すと言える。すなわち、使用エントリ数ＮＡや空きエントリ数ＮＢは、スイッチにおけるエントリ状態を表している。
【００２５】
また、通信ネットワークＮＥＴ上の各スイッチに関して、「スイッチコストＳＣ」が定義される。ある１つのスイッチのスイッチコストＳＣは、使用エントリ数ＮＡや空きエントリ数ＮＢに依存する量である。具体的には、スイッチコストＳＣは、当該スイッチにおける空きエントリ数ＮＢが減少するにつれて増加する。言い換えれば、スイッチコストＳＣは、当該スイッチにおける使用エントリ数ＮＡが増加するにつれて増加する。スイッチコストＳＣとしては、以下に示されるような様々な例が考えられる。
【００２６】
（例１）スイッチコストＳＣ＝係数Ｃ１／空きエントリ数ＮＢ
（例２）スイッチコストＳＣ＝係数Ｃ２／空きエントリ率（＝ＮＢ／ＮＭ）
（例３）スイッチコストＳＣ＝係数Ｃ３×使用エントリ数ＮＡ
（例４）スイッチコストＳＣ＝係数Ｃ４×使用エントリ率（＝ＮＡ／ＮＭ）
【００２７】
例１と例２の場合、スイッチコストＳＣは、空きエントリ数ＮＢの逆数に比例する量であると言える。例３と例４の場合、スイッチコストＳＣは、使用エントリ数ＮＡに比例する量であると言える。但し、使用エントリ数ＮＡと空きエントリ数ＮＢとは、一方が増えれば他方が減るという密接な関係を有している。従って、例１〜例４のいずれが用いられる場合であっても、スイッチコストＳＣの意味は同じである。また、スイッチコストＳＣは、上記例１〜例４に限られず、空きエントリ数ＮＢが減少するにつれて（使用エントリ数ＮＡが増加するにつれて）増加する量であれば何でもよい。
【００２８】
管理ホスト１（管理計算機、制御計算機）は、通信ネットワークＮＥＴ上に配置されている複数のスイッチ５〜８と接続されており、それぞれのスイッチ５〜８と双方向通信が可能である。この管理ホスト１は、スイッチ５〜８の動作を制御することによって、通信ネットワークＮＥＴにおけるフロー通信を制御する。
【００２９】
より詳細には、図１に示されるように、管理ホスト１は、制御部１０１と記憶部１０２を備えている。制御部１０１は、通信ネットワークＮＥＴにおけるフロー通信を制御する機能を有し、演算処理装置がコンピュータプログラムを実行することにより実現される。そのコンピュータプログラムは、コンピュータ読み取り可能な記録媒体に記録されていてもよい。記憶部１０２は、ＲＡＭ（Random Access Memory）等の記憶装置である。記憶部１０２には、トポロジ情報ＴＰＬ及びエントリ状態情報ＥＮＴが格納される。
【００３０】
トポロジ情報ＴＰＬは、通信ネットワークＮＥＴに関する上述の構成を示す。つまり、トポロジ情報ＴＰＬは、通信ネットワークＮＥＴにおけるスイッチや端末間の接続状況を示す。
【００３１】
エントリ状態情報ＥＮＴは、スイッチ５〜８の各々の「コストパラメータ」を示す。コストパラメータとは、上述のスイッチコストＳＣを算出するために用いられるパラメータであり、各スイッチにおけるエントリ状態（空きエントリ数ＮＢ、使用エントリ数ＮＡ）に関連している。スイッチコストＳＣを算出できるものであれば、コストパラメータは何であってもよい。例えば、コストパラメータは空きエントリ数ＮＢである。コストパラメータは、使用エントリ数ＮＡ、空きエントリ率、あるいは、使用エントリ率であってもよい。更にあるいは、コストパラメータはスイッチコストＳＣそのものであってもよい。いずれの場合であっても、コストパラメータは、空きエントリ数ＮＢ（すなわち、使用エントリ数ＮＡ）に関連していると言える。
【００３２】
本実施の形態に係る管理ホスト１は、通信ネットワークＮＥＴにおいてあるフロー通信が要求された際、当該フローの通信ネットワークＮＥＴにおける経路を決定する。この時、管理ホスト１は、通信ネットワークＮＥＴ上の各スイッチのエントリ状態を考慮し、“エントリあふれ”の発生が抑制されるようにフロー経路を決定する。例として、端末３（送信端末、送信元）から端末２（受信端末、送信先）へのフローを考える。この場合、管理ホスト１は、通信ネットワークＮＥＴにおける送信端末３から受信端末２へのフロー経路を決定する。
【００３３】
トポロジ情報ＴＰＬ及びエントリ状態情報ＥＮＴは、制御部１０１によって記憶部１０２に予め格納されており、また、制御部１０１によって記憶部１０２から読み出される。まず、制御部１０１は、記憶部１０２に格納されているトポロジ情報ＴＰＬを参照することによって、通信ネットワークＮＥＴにおける送信端末３から受信端末２への経路候補を抽出する。図１で示される例では、「端末３−スイッチ８−スイッチ６−スイッチ５−端末２」と「端末３−スイッチ８−スイッチ７−スイッチ５−端末２」の２種類の経路候補が抽出される。あるいは、通信ネットワークＮＥＴにおける送信端末３から受信端末２への経路候補は、予め情報として管理ホスト１に与えられていてもよい。
【００３４】
続いて、制御部１０１は、記憶部１０２に格納されているエントリ状態情報ＥＮＴを参照することによって、各経路候補に属する各スイッチのスイッチコストＳＣを算出する。各スイッチのスイッチコストＳＣは、エントリ状態情報ＥＮＴで与えられるコストパラメータから算出可能である。第１の経路候補「端末３−スイッチ８−スイッチ６−スイッチ５−端末２」に関しては、スイッチ８、６及び５の各々のスイッチコストＳＣが算出される。第２の経路候補「端末３−スイッチ８−スイッチ７−スイッチ５−端末２」に関しては、スイッチ８、７及び５の各々のスイッチコストＳＣが算出される。
【００３５】
次に、制御部１０１は、各経路候補に関して算出されたスイッチコストＳＣに基づいて、経路候補のうち１つを、通信ネットワークＮＥＴにおける当該フローの経路として決定する。上述の通り、スイッチコストＳＣは、空きエントリ数ＮＢが多いほど（使用エントリ数ＮＡが少ないほど）、小さくなる量である。そして、“エントリあふれ”は、空きエントリ数ＮＢが多いほど発生しにくい。従って、制御部１０１は、算出されたスイッチコストＳＣに基づいて、“エントリあふれ”の発生が抑制されるようにフロー経路を決定することができる。そのようなフロー経路の決定アルゴリズムとしては、様々考えられる。
【００３６】
（第１のアルゴリズム）
例えば、制御部１０１は、経路候補毎に、スイッチコストＳＣの総和あるいは積を算出する。すなわち、制御部１０１は、各経路候補に属するスイッチのそれぞれのスイッチコストＳＣの総和あるいは積を算出する。第１の経路候補に関しては、スイッチ８、６、５のそれぞれのスイッチコストＳＣの総和あるいは積が算出される。一方、第２の経路候補に関しては、スイッチ８、７、５のそれぞれのスイッチコストＳＣの総和あるいは積が算出される。算出された総和あるいは積は、以下「総コスト」と参照される。総コストが比較的小さい経路は、空きエントリ数ＮＢが比較的多い経路に相当すると考えられる。従って、制御部１０１は、経路候補のうち総コストが最小である１つを、当該フローの経路として決定する。その結果、エントリあふれの発生が抑制される。
【００３７】
（第２のアルゴリズム）
あるいは、制御部１０１は、各経路候補に属するスイッチのうち、最大のスイッチコストＳＣを有する１つのスイッチ（クリティカルスイッチ）を抽出してもよい。例えば、第１の経路候補ではスイッチ６がクリティカルスイッチであり、第２の経路候補ではスイッチ７がクリティカルスイッチであるとする。その場合、スイッチ６は、第１の経路候補に属するスイッチのうち最大のスイッチコストＳＣを有し、スイッチ７は、第２の経路候補に属するスイッチのうち最大のスイッチコストＳＣを有する。次に、制御部１０１は、それぞれの経路候補のクリティカルスイッチのスイッチコストＳＣ（最大スイッチコスト）同士の比較を行う。最大スイッチコストが比較的大きい経路候補は、他の経路候補と比べて空きエントリ数ＮＢが比較的少ないスイッチを含んでおり、そのスイッチにおいてエントリあふれが発生しやすいと考えられる。従って、制御部１０１は、経路候補のうち最大スイッチコストが最小である１つを、当該フローの経路として決定する。その結果、エントリあふれの発生が抑制される。
【００３８】
（第３のアルゴリズム）
あるいは、制御部１０１は、各経路候補に属するスイッチのうち、最小のスイッチコストＳＣを有する１つのスイッチを抽出してもよい。抽出されたスイッチのスイッチコストＳＣは、最小スイッチコストである。そして、制御部１０１は、それぞれの経路候補の最小スイッチコスト同士の比較を行う。最小スイッチコストが比較的大きい経路候補は、他の経路候補と比べて空きエントリ数ＮＢが比較的少ないスイッチを含んでおり、そのスイッチにおいてエントリあふれが発生しやすいと考えられる。従って、制御部１０１は、経路候補のうち最小スイッチコストが最小である１つを、当該フローの経路として決定する。その結果、エントリあふれの発生が抑制される。
【００３９】
以上に説明されたように、本実施の形態によれば、管理ホスト１は、フロー経路の決定に際して、通信ネットワークＮＥＴ上の各スイッチのエントリ状態を考慮する。そして、管理ホスト１は、空きエントリ数ＮＢが極端に少なくなるスイッチの発生をなるべく回避するように、フロー経路を決定する。これは、通信ネットワークＮＥＴ上の各スイッチにおけるエントリ消費を平滑化することに相当する。結果として、通信ネットワークＮＥＴ上のスイッチにおけるエントリあふれの発生が抑制される。それにより、通信ネットワークＮＥＴ上のあるスイッチのスループットが大幅に劣化することが防止される。また、本実施の形態によれば、エントリあふれの発生が抑制されるため、通信システム全体としてより多くのフロー（パス）を収容することが可能となる。
【００４０】
２．第２の実施の形態
本発明は、スタックドスイッチ内部におけるフロー経路の決定にも適用することが可能である。以下、図２を参照して、本発明の第２の実施の形態を説明する。尚、第１の実施の形態と重複する説明は、適宜省略される。
【００４１】
図２は、スタックドスイッチを含む通信システムを概略的に示している。図２に示される通信システムは、管理ホスト１、端末２、３、スイッチ４、及びスタックドスイッチ９を備えており、それらによって通信ネットワークＮＥＴが構成されている。管理ホスト１（管理計算機、制御計算機）は、通信ネットワークＮＥＴ上に配置されているスイッチ４及びスタックドスイッチ９と接続されており、それぞれのスイッチと双方向通信が可能である。この管理ホスト１の機能は、第１の実施の形態と同様である。すなわち、管理ホスト１は、スイッチ４及びスタックドスイッチ９の動作を制御することによって、通信ネットワークＮＥＴにおけるフロー通信を制御する。
【００４２】
スタックドスイッチ９は、内部に複数のスイッチを有するが、管理ホスト１からは１つの大きなスイッチとして見える。つまり、管理ホスト１は、２以上のスイッチを仮想的に１つのスタックドスイッチ９として扱う。図２の例では、スタックドスイッチ９は、内部に４個のスイッチ５〜８を有している。スイッチ５〜８の各々が２２個のポートＰ１〜Ｐ２２を有している場合、管理ホスト１からは、スタックドスイッチ９は８８個のポートＡＰ１〜ＡＰ８８を有する１つの大きなスイッチに見える。
【００４３】
図２の例において、端末２は、スイッチ４のポートＰ２と接続されており、スイッチ４と双方向通信可能である。端末３は、スタックドスイッチ９のポートＡＰ６９と接続されており、スタックドスイッチ９と双方向通信可能である。スイッチ４のポートＰ９とスタックドスイッチ９のポートＡＰ４とは互いに接続されており、スイッチ４とスタックドスイッチ９とは双方向に通信可能である。尚、第１の実施の形態と同様に、スイッチ４〜８の各々に関して、「使用エントリ数ＮＡ」、「閾値エントリ数ＮＭ」、「空きエントリ数ＮＢ」、及び「スイッチコストＳＣ」が定義される。
【００４４】
図３は、本実施の形態に係るスタックドスイッチ９の内部構成例を示している。図３に示されるように、スタックドスイッチ９は、複数のスイッチ（内部スイッチ）５〜８及びスタック管理部１０を備えており、それらによって内部ネットワークＩＮＴ−ＮＥＴが構成されている。内部ネットワークＩＮＴ−ＮＥＴは、スタックドスイッチ９内部の通信ネットワークである。その意味で、図２で示された通信ネットワークＮＥＴは、外部ネットワークである。
【００４５】
内部ネットワークＩＮＴ−ＮＥＴ上に配置されているスイッチ５〜８の各々は、通常のスイッチであり、例えば２２個のポート（実ポート）Ｐ１〜Ｐ２２を有する。各スイッチのポートＰ１〜Ｐ２２には、スタックドスイッチ９としてのポートが一意的に割り当てられる。例えば、スイッチ５のポートＰ１〜Ｐ２２にはポートＡＰ１〜ＡＰ２２が割り当てられ、スイッチ６のポートＰ１〜Ｐ２２にはポートＡＰ２３〜ＡＰ４４が割り当てられ、スイッチ７のポートＰ１〜Ｐ２２にはポートＡＰ４５〜ＡＰ６６が割り当てられ、スイッチ８のポートＰ１〜Ｐ２２にはポートＡＰ６７〜ＡＰ８８が割り当てられる。以下の説明において、ポートＰ１〜Ｐ２２は「実ポート」と参照され、ポートＡＰ１〜ＡＰ８８は「割当ポート」と参照される場合がある。
【００４６】
スイッチ５の実ポートＰ４（割当ポートＡＰ４）及びスイッチ８の実ポートＰ３（割当ポートＡＰ６９）は、外部ネットワークＮＥＴに接続された外部ポートである。内部ネットワークＩＮＴ−ＮＥＴは、それら外部ポート間の通信ネットワークであると言える。
【００４７】
より詳細には、図３の例で示される内部ネットワークＩＮＴ−ＮＥＴは、次のような構成（トポロジ）を有している。スイッチ５のポートＰ１６とスイッチ６のポートＰ１５とは互いに接続されており、スイッチ５とスイッチ６とは双方向に通信可能である。スイッチ５のポートＰ１７とスイッチ７のポートＰ１５とは互いに接続されており、スイッチ５とスイッチ７とは双方向に通信可能である。スイッチ８のポートＰ１６とスイッチ６のポートＰ１８とは互いに接続されており、スイッチ８とスイッチ６とは双方向に通信可能である。スイッチ８のポートＰ１７とスイッチ７のポートＰ１８とは互いに接続されており、スイッチ８とスイッチ７とは双方向に通信可能である。このようにして、内部ネットワークＩＮＴ−ＮＥＴが構成されている。
【００４８】
スタックドスイッチ９のスタック管理部１０は、管理ホスト１と接続されており、管理ホスト１と双方向通信が可能である。スタック管理部１０は、管理ホスト１に対して各種通知を送信し、また、管理ホスト１から各種命令を受け取る。また、スタック管理部１０は、内部ネットワークＩＮＴ−ＮＥＴ上に配置されている複数のスイッチ５〜８と接続されており、それぞれのスイッチ５〜８と双方向通信が可能である。スタック管理部１０は、スイッチ５〜８の動作を制御することによって、内部ネットワークＩＮＴ−ＮＥＴにおけるフロー通信を制御する。その制御方法は、第１の実施の形態における管理ホスト１による制御方法と同様である。すなわち、スタックドスイッチ９のスタック管理部１０は、第１の実施の形態において管理ホスト１が通信ネットワークＮＥＴに対して果たした役割と同様の役割を、内部ネットワークＩＮＴ−ＮＥＴに対して果たす。
【００４９】
より詳細には、図３に示されるように、スタック管理部１０は、制御部１１と記憶部１２を備えている。制御部１１は、内部ネットワークＩＮＴ−ＮＥＴにおけるフロー通信を制御する機能を有し、演算処理装置がコンピュータプログラムを実行することにより実現される。そのコンピュータプログラムは、コンピュータ読み取り可能な記録媒体に記録されていてもよい。記憶部１２は、ＲＡＭ等の記憶装置である。記憶部１２には、トポロジ情報ＴＰＬ及びエントリ状態情報ＥＮＴが格納される。トポロジ情報ＴＰＬは、内部ネットワークＩＮＴ−ＮＥＴに関する上述の構成を示す。つまり、トポロジ情報ＴＰＬは、内部ネットワークＩＮＴ−ＮＥＴにおけるスイッチ間の接続状況を示す。エントリ状態情報ＥＮＴは、スイッチ５〜８の各々のコストパラメータを示す。コストパラメータは、第１の実施の形態と同様である。
【００５０】
図２及び図３で示された例において、端末３（送信端末）からスタックドスイッチ９及びスイッチ４を経由して端末２（受信端末）へ、あるフロー通信が行われる場合を考える。このとき、スタックドスイッチ９は、スイッチ８のポートＰ３（外部入力ポート）から入力される当該フローの通信データを、スイッチ５のポートＰ４（外部出力ポート）から出力する必要がある。従って、スタック管理部１０は、内部ネットワークＩＮＴ−ＮＥＴにおける外部入力ポートから外部出力ポートへの当該フローの経路（内部経路）を決定する。ここで、第１の実施の形態と同様に、スタック管理部１０は、内部ネットワークＩＮＴ−ＮＥＴ上の各スイッチのエントリ状態を考慮し、“エントリあふれ”の発生が抑制されるようにフロー経路を決定する。
【００５１】
トポロジ情報ＴＰＬ及びエントリ状態情報ＥＮＴは、制御部１１によって記憶部１２に予め格納されており、また、制御部１１によって記憶部１２から読み出される。まず、制御部１１は、記憶部１２に格納されているトポロジ情報ＴＰＬを参照することによって、内部ネットワークＩＮＴ−ＮＥＴにおける外部入力ポート（スイッチ８のポートＰ３）から外部出力ポート（スイッチ５のポートＰ４）への経路候補を抽出する。図３で示される例では、「スイッチ８−スイッチ６−スイッチ５」と「スイッチ８−スイッチ７−スイッチ５」の２種類の経路候補が抽出される。あるいは、内部ネットワークＩＮＴ−ＮＥＴにおける外部入力ポートから外部出力ポートへの経路候補は、予め情報としてスタック管理部１０に与えられていてもよい。
【００５２】
続いて、制御部１１は、記憶部１２に格納されているエントリ状態情報ＥＮＴを参照することによって、各経路候補に属する各スイッチのスイッチコストＳＣを算出する。各スイッチのスイッチコストＳＣは、エントリ状態情報ＥＮＴで与えられるコストパラメータから算出可能である。第１の経路候補「スイッチ８−スイッチ６−スイッチ５」に関しては、スイッチ８、６及び５の各々のスイッチコストＳＣが算出される。第２の経路候補「スイッチ８−スイッチ７−スイッチ５」に関しては、スイッチ８、７及び５の各々のスイッチコストＳＣが算出される。
【００５３】
次に、制御部１１は、各経路候補に関して算出されたスイッチコストＳＣに基づいて、経路候補のうち１つを、内部ネットワークＩＮＴ−ＮＥＴにおける当該フローの経路として決定する。上述の通り、スイッチコストＳＣは、空きエントリ数ＮＢが多いほど（使用エントリ数ＮＡが少ないほど）、小さくなる量である。そして、“エントリあふれ”は、空きエントリ数ＮＢが多いほど発生しにくい。従って、制御部１１は、算出されたスイッチコストＳＣに基づいて、“エントリあふれ”の発生が抑制されるようにフロー経路を決定することができる。そのようなフロー経路の決定アルゴリズムは、第１の実施の形態と同様である。
【００５４】
以上に説明されたように、本実施の形態によれば、スタック管理部１０は、フロー経路の決定に際して、内部ネットワークＩＮＴ−ＮＥＴ上の各スイッチのエントリ状態を考慮する。そして、スタック管理部１０は、空きエントリ数ＮＢが極端に少なくなるスイッチの発生をなるべく回避するように、フロー経路を決定する。これは、内部ネットワークＩＮＴ−ＮＥＴ上の各スイッチにおけるエントリ消費を平滑化することに相当する。結果として、内部ネットワークＩＮＴ−ＮＥＴ上のスイッチにおけるエントリあふれの発生が抑制される。それにより、内部ネットワークＩＮＴ−ＮＥＴ上のあるスイッチのスループットが大幅に劣化することが防止される。また、本実施の形態によれば、エントリあふれの発生が抑制されるため、スタックドスイッチ９全体としてより多くのフロー（パス）を収容することが可能となる。
【００５５】
３．具体例
以下、具体例を挙げて、本発明の実施の形態を更に詳しく説明する。例として、図２及び図３で示された第２の実施の形態の場合を詳しく説明する。但し、第１の実施の形態の場合であっても同様の議論が適用され得ることは、当業者にとって容易に理解されよう。
【００５６】
以下に説明される通信システムは、Ｏｐｅｎｆｌｏｗ（http://www.openflowswitch.org/を参照）に基づいている。その場合、“Ｏｐｅｎｆｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ”が管理ホスト１となり、“Ｏｐｅｎｆｌｏｗ  Ｓｗｉｔｃｈ”が各スイッチ４〜８となる。
【００５７】
また、以下に説明される例において、各スイッチには識別子として「ＤＰＩＤ（Data Path ID）」が付与される。例えば、スイッチ４〜８のそれぞれのＤＰＩＤは、「００−００−４ｃ−００−４４−４４」、「００−００−４ｃ−００−５５−５５」、「００−００−４ｃ−００−６６−６６」、「００−００−４ｃ−００−７７−７７」、「００−００−４ｃ−００−８８−８８」である。また、スタックドスイッチ９のＤＰＩＤは、「００−００−４ｃ−００−９９−９９」である。
【００５８】
３−１．スイッチの構成
図４は、スイッチ４の構成例を示すブロック図である。スイッチ４は、Ｏｐｅｎｆｌｏｗスイッチであり、テーブル記憶部４０、転送処理部４１、ホスト通信部４３、及びテーブル設定部４４を備えている。テーブル記憶部４０は、ＲＡＭ（Random Access Memory）やＣＡＭ（Content  Addressable  Memory）等の記憶装置である。転送処理部４１、ホスト通信部４３、及びテーブル設定部４４は、演算処理装置がコンピュータプログラムを実行することにより実現される。
【００５９】
テーブル記憶部４０には、転送テーブル４２が格納される。転送テーブル４２は、フローの通信データ（パケット、フレーム等）の入力元と転送先との対応関係を示すテーブルであり、フロー毎にエントリを有する。
【００６０】
図５は、本実施の形態における転送テーブルの一例を示している。転送テーブルは複数のエントリを有しており、１つのエントリには１つのフローが割り当てられる。すなわち、使用エントリ数ＮＡは、転送テーブルに記録されているエントリの数である。スイッチに割り当てられるフローが１増加すると、その新たなフローに対応する新たなエントリが転送テーブルに追加され、使用エントリ数ＮＡが１増加し、空きエントリ数ＮＢが１減少する。逆に、スイッチに割り当てられるフローが１減少すると、そのフローに対応するエントリが転送テーブルから削除され、使用エントリ数ＮＡが１減少し、空きエントリ数ＮＢが１増加する。尚、使用エントリ数ＮＡの閾値である閾値エントリ数ＮＭは、スイッチ毎に予め決まっている。各スイッチの閾値エントリ数ＮＭは、任意に設定可能であるが、典型的には当該スイッチにおいて“エントリあふれ”が発生しない上限の使用エントリ数ＮＡに設定される。そのような使用エントリ数ＮＡの上限は、当該スイッチのテーブル記憶部の容量に依存する。
【００６１】
図５で示される例において、１つのエントリは複数のフィールド：「入力ポート」、「宛先ＭＡＣアドレス（ＭＡＣ−ＤＡ）」、「送信元ＭＡＣアドレス（ＭＡＣ−ＳＡ）」、「出力ポート」、及び「カウント」を含んでいる。ＭＡＣ−ＤＡ及びＭＡＣ−ＳＡは、自エントリに対応付けられているフローを特定するためのフィールドであり、対応するフローの通信データ（パケット、フレーム等）に含まれるＭＡＣ−ＤＡ及びＭＡＣ−ＳＡと同じに設定される。入力ポートは、該当フローの通信データが入力される入力元（いずれかのポートあるいは管理ホスト１）を示すフィールドである。出力ポートは、該当フローの通信データが転送される転送先（いずれかのポートあるいは管理ホスト１）を示すフィールドである。この出力ポートには、複数の転送先が記載されていてもよい。このように、１つのエントリは、ＭＡＣ−ＤＡ及びＭＡＣ−ＳＡにより特定されるフローに関して、入力元と転送先との対応関係を示している。すなわち、スイッチは、通信データの入力元とその通信データに含まれるＭＡＣ−ＤＡ及びＭＡＣ−ＳＡを検索キーとして用いることによって、その通信データの転送先を認識することができる。尚、「カウント」は、該当フローの通信データが転送される度にインクリメントされ、自エントリのエージングに利用される（詳細は後述される）。
【００６２】
再度図４を参照して、ホスト通信部４３は、管理ホスト１と双方向通信を行う機能を有する。スイッチ４は、ホスト通信部４３を通して、管理ホスト１と双方向通信を行うことができる。
【００６３】
転送処理部４１は、スイッチ４に入力された通信データを転送する機能を有する。具体的には、転送処理部４１は、ポート（実ポート）Ｐ１〜Ｐ２２を有しており、いずれかのポートあるいはホスト通信部４３から通信データを受け取る。そして、転送処理部４１は、テーブル記憶部４０に格納されている転送テーブル４２を参照することによって、その入力元（ポートあるいはホスト通信部４３）に対応する転送先を把握し、受け取った通信データをその転送先に転送（送信）する。図５で示された転送テーブルの場合、転送処理部４１は、通信データの入力元とその通信データに含まれるＭＡＣ−ＤＡ及びＭＡＣ−ＳＡを検索キーとして用い、その検索キーが記述されているエントリを転送テーブルの中から検索する。そして、転送処理部４１は、検索されたエントリ（ヒットエントリ）の出力ポートに記述されている転送先に、受け取った通信データを転送する。出力ポートに複数の転送先が記述されている場合、転送処理部４１は、受け取った通信データをコピーした上で、それぞれの転送先に通信データを転送する。また、転送処理部４１は、通信データを転送する度に、ヒットエントリ中の「カウント」を１ずつ増加させる。
【００６４】
テーブル設定部４４は、管理ホスト１からの指示に従って、テーブル記憶部４０に格納されている転送テーブル４２の内容を設定する機能を有する。より詳細には、テーブル設定部４４は、ホスト通信部４３を通して管理ホスト１から指示を受け取り、その指示に従って、転送テーブル４２中のエントリを作成、削除、あるいは変更する。また、テーブル設定部４４は、転送テーブル４２中の各エントリの「カウント」を監視し、「カウント」が所定の条件を満たすエントリを削除する機能も有する（詳細は後述される）。
【００６５】
３−２．スタックドスイッチの構成
図６は、スタックドスイッチ９の構成例を示すブロック図である。スタックドスイッチ９は、複数のスイッチ（内部スイッチ）５〜８及びスタック管理部１０を備えており、それらによって内部ネットワークＩＮＴ−ＮＥＴが構成されている。
【００６６】
内部ネットワークＩＮＴ−ＮＥＴ上のスイッチ５〜８の各々は、Ｏｐｅｎｆｌｏｗスイッチであり、図４で示された構成と同様の構成を有している。すなわち、スイッチ５は、テーブル記憶部５０、転送処理部５１、ホスト通信部５３、及びテーブル設定部５４を備えており、テーブル記憶部５０には転送テーブル５２が格納される。スイッチ６は、テーブル記憶部６０、転送処理部６１、ホスト通信部６３、及びテーブル設定部６４を備えており、テーブル記憶部６０には転送テーブル６２が格納される。スイッチ７は、テーブル記憶部７０、転送処理部７１、ホスト通信部７３、及びテーブル設定部７４を備えており、テーブル記憶部７０には転送テーブル７２が格納される。スイッチ８は、テーブル記憶部８０、転送処理部８１、ホスト通信部８３、及びテーブル設定部８４を備えており、テーブル記憶部８０には転送テーブル８２が格納される。但し、各スイッチのホスト通信部（５３、６３、７３、８３）の通信相手は、管理ホスト１ではなく、スタックドスイッチ９内のスタック管理部１０である。
【００６７】
各スイッチの転送処理部（５１、６１、７１、８１）は、ポートＰ１〜Ｐ２２を有している。図６の例では、スイッチ５のポートＰ１６とスイッチ６のポートＰ１５は互いに接続されており、スイッチ５とスイッチ６は双方向に通信可能である。また、スイッチ５のポートＰ１７とスイッチ７のポートＰ１５は互いに接続されており、スイッチ５とスイッチ７は双方向に通信可能である。また、スイッチ８のポートＰ１６とスイッチ６のポートＰ１８は互いに接続されており、スイッチ８とスイッチ６は双方向に通信可能である。また、スイッチ８のポートＰ１７とスイッチ７のポートＰ１８は互いに接続されており、スイッチ８とスイッチ７は双方向に通信可能である。尚、スイッチ５のポートＰ４及びスイッチ８のポートＰ３は、外部ネットワークＮＥＴに接続された外部ポートである。スタックドスイッチ９は、それら外部ポート及び外部ネットワークＮＥＴを通して、スイッチ４や端末３と通信可能である（図２参照）。
【００６８】
スタック管理部１０は、スイッチ５〜８と双方向に通信可能に接続されている。このスタック管理部１０は、制御部１１、記憶部１２、ノード通信部１３、及びホスト通信部１４を備えている。記憶部１２は、ＲＡＭ等の記憶装置である。制御部１１、ノード通信部１３及びホスト通信部１４は、演算処理装置がコンピュータプログラムを実行することにより実現される。
【００６９】
ノード通信部１３は、各スイッチ（５、６、７、８）のホスト通信部（５３、６３、７３、８３）と双方向通信を行う機能を有する。スタック管理部１０は、ノード通信部１３を通して、スイッチ５〜８の各々と双方向通信を行うことができる。ホスト通信部１４は、管理ホスト１と双方向通信を行う機能を有する。スタック管理部１０は、ホスト通信部１４を通して、管理ホスト１と双方向通信を行うことができる。
【００７０】
制御部１１は、内部ネットワークＩＮＴ−ＮＥＴにおけるフロー通信を制御する機能を有する。より詳細には、制御部１１は、メッセージ処理部１５とコマンド処理部１６を含んでいる。メッセージ処理部１５は、ノード通信部１３を通してスイッチから受け取る各種メッセージ（例：後述されるパケット到着通知ＭＰ及びエントリ消去通知ＭＥ）を処理する機能を有する。コマンド処理部１６は、ホスト通信部１４を通して管理ホスト１から受け取る各種命令（例：後述されるテーブル設定命令ＣＴ及びパケット送信命令ＣＰ）を処理する機能を有する。
【００７１】
記憶部１２には、ポート情報ＰＯＲ、トポロジ情報ＴＰＬ、及びエントリ状態情報ＥＮＴが格納される。
【００７２】
図７は、ポート情報ＰＯＲの一例を示している。上述の通り、スタックドスイッチ９に含まれる各スイッチの実ポートＰ１〜Ｐ２２には、スタックドスイッチ９としての割当ポートが一意的に割り当てられる。ポート情報ＰＯＲはその“割当関係”を示している。より詳細には、図７に示されるように、ポート情報ＰＯＲは複数のエントリを含んでおり、１つのエントリは、あるスイッチのＤＰＩＤ、そのスイッチの実ポート、及びその実ポートに割り当てられた割当ポートを示している。本例では、スイッチ５の実ポートＰ１〜Ｐ２２には割当ポートＡＰ１〜ＡＰ２２が割り当てられ、スイッチ６の実ポートＰ１〜Ｐ２２には割当ポートＡＰ２３〜ＡＰ４４が割り当てられ、スイッチ７の実ポートＰ１〜Ｐ２２には割当ポートＡＰ４５〜ＡＰ６６が割り当てられ、スイッチ８の実ポートＰ１〜Ｐ２２には割当ポートＡＰ６７〜ＡＰ８８が割り当てられている。尚、このような割当関係は、スタックドスイッチ９の構成時にあらかじめ決定されてもよい。
【００７３】
図８は、トポロジ情報ＴＰＬの一例を示している。トポロジ情報ＴＰＬは、図６で示された内部ネットワークＩＮＴ−ＮＥＴの構成を示す。より詳細には、図８に示されるように、トポロジ情報ＴＰＬは複数のエントリを含んでおり、１つのエントリは、一組のスイッチ間の接続状況を示す。一組のスイッチ間の接続状況は、起点スイッチのＤＰＩＤ、その起点スイッチの起点ポート、終点スイッチのＤＰＩＤ、及びその終点スイッチの終点ポートにより規定される。一組のスイッチ間で双方向通信が可能な場合、片方向毎にエントリが作成される。例えば、双方向通信が可能な一組のスイッチ５、７に関して、２つのエントリ：「起点スイッチ＝００−００−４ｃ−００−５５−５５、起点ポート＝Ｐ１７、終点スイッチ＝００−００−４ｃ−００−７７−７７、終点ポート＝Ｐ１５」及び「起点スイッチ＝００−００−４ｃ−００−７７−７７、起点ポート＝Ｐ１５、終点スイッチ＝００−００−４ｃ−００−５５−５５、終点ポート＝Ｐ１７」が作成されている。尚、このような接続状況は、スタックドスイッチ９の構成時にあらかじめ決定されてもよい。
【００７４】
図９は、エントリ状態情報ＥＮＴの一例を示している。上述の通り、エントリ状態情報ＥＮＴは、スイッチ５〜８の各々における空きエントリ数ＮＢに関連する「コストパラメータ」を示す。図９で示される例では、エントリ状態情報ＥＮＴは、スイッチ５〜８の各々に関して、ＤＰＩＤ、空きエントリ数ＮＢ、及びスイッチコストＳＣを示している。すなわち、空きエントリ数ＮＢ及びスイッチコストＳＣがコストパラメータとして示されている。尚、本例では、スイッチコストＳＣは、「空きエントリ数ＮＢの逆数の１００倍」で与えられるとする（ＳＣ＝１００／ＮＢ）。
【００７５】
３−３．動作
例として、図２で示された通信システムにおいて、端末３（送信端末）から端末２（受信端末）に向けてあるフロー通信が行われる場合を考える。端末３は、スタックドスイッチ９の外部入力ポートである割当ポートＡＰ６９（スイッチ８のポートＰ３）に接続されている。端末２は、スイッチ４のポートＰ２に接続されている。スイッチ４のポートＰ９は、スタックドスイッチ９の外部出力ポートである割当ポートＡＰ４（スイッチ５のポートＰ４）に接続されている。また、端末２のＭＡＣアドレスは「００−００−４ｃ−００−ａａ−００」であり、端末３のＭＡＣアドレスは「００−００−４ｃ−００−１２−３４」である。ポート情報ＰＯＲ、トポロジ情報ＴＰＬ及びエントリ状態情報ＥＮＴは、それぞれ図７、図８及び図９で示された通りである。また、スイッチ４〜８の各々の転送テーブル（４２、５２、６２、７２、８２）には、当該フローに対応するエントリは未だ記述されていないとする。
【００７６】
図１０は、送信端末３から受信端末２へのフローが確立するまでの処理を示すフローチャートである。
【００７７】
ステップＳ１０：
送信端末３は、スタックドスイッチ９へ最初のパケット（第１パケット）を送出する。図１１は、第１パケットの一例を示している。図１１に示されるように、第１パケットは、宛先ＭＡＣアドレス（ＭＡＣ−ＤＡ）、送信元ＭＡＣアドレス（ＭＡＣ−ＳＡ）、及びデータ本体（ＤＡＴＡ）を含んでいる。ＭＡＣ−ＤＡは、受信端末２のＭＡＣアドレス「００−００−４ｃ−００−ａａ−００」である。一方、ＭＡＣ−ＳＡは、送信端末３のＭＡＣアドレス「００−００−４ｃ−００−１２−３４」である。
【００７８】
ステップＳ２０：
スタックドスイッチ９のスイッチ８は、送信端末３に接続されているポートＰ３（外部入力ポート）から、第１パケットを受け取る。スイッチ８の転送処理部８１は、第１パケットを受け取ると、その入力元（ポートＰ３）及び第１パケットに含まれるＭＡＣ−ＤＡ及びＭＡＣ−ＳＡを検索キーとして用いることにより、テーブル記憶部８０に格納されている転送テーブル８２から該当エントリの検索を行う。しかしながら、現在、転送テーブル８２には該当エントリは存在していない。その場合、転送処理部８１は、ホスト通信部８３へ第１パケットを送る。ホスト通信部８３は、スイッチ８が新たなフローのパケットを受信したことを示す「パケット到着通知ＭＰａ」を生成し、そのパケット到着通知ＭＰａをスタック管理部１０に送信する。
【００７９】
図１２Ａは、パケット到着通知ＭＰａを示している。このパケット到着通知ＭＰａは、ヘッダ情報及び受信した第１パケットを含んでいる。ヘッダ情報は、自スイッチのＤＰＩＤ（００−００−４ｃ−００−８８−８８）、パケット到着通知を識別するための種別（ＯｐｅｎＦｌｏｗの場合は“ＰＡＣＫＥＴ＿ＩＮ”）、及び第１パケットが入力された入力ポート番号（Ｐ３）を含んでいる。
【００８０】
スタック管理部１０のノード通信部１３は、スイッチ８からパケット到着通知ＭＰａを受け取る。ノード通信部１３は、種別（ＰＡＣＫＥＴ＿ＩＮ）から、受け取った情報がパケット到着通知であることを認識する。その場合、ノード通信部１３は、受け取ったパケット到着通知ＭＰａをメッセージ処理部１５に送る。メッセージ処理部１５は、ノード通信部１３からパケット到着通知ＭＰａを受け取る。そして、メッセージ処理部１５は、種別（ＰＡＣＫＥＴ＿ＩＮ）から、受け取った情報がパケット到着通知であることを認識する。その場合、メッセージ処理部１５は、次の処理を行う。
【００８１】
メッセージ処理部１５は、パケット到着通知ＭＰａを、スタックドスイッチ９が新たなフローのパケットを受信したことを示すパケット到着通知ＭＰｂに書き換える。具体的には、メッセージ処理部１５は、パケット到着通知ＭＰａに含まれるスイッチ８のＤＰＩＤ（００−００−４ｃ−００−８８−８８）を、スタックドスイッチ９のＤＰＩＤ（００−００−４ｃ−００−９９−９９）に書き換える。更に、メッセージ処理部１５は、記憶部１２に格納されているポート情報ＰＯＲを参照することによって、パケット到着通知ＭＰａに含まれるスイッチ８の入力ポートＰ３を、スタックドスイッチ９としての割当ポートＡＰ６９に書き換える。図１２Ｂは、結果として得られるパケット到着通知ＭＰｂを示している。
【００８２】
そして、メッセージ処理部１５は、図１２Ｂで示されたパケット到着通知ＭＰｂをホスト通信部１４に送る。ホスト通信部１４は、種別（ＰＡＣＫＥＴ＿ＩＮ）から、受け取った情報がパケット到着通知であることを認識する。その場合、ホスト通信部１４は、受け取ったパケット到着通知ＭＰｂを管理ホスト１に送信する。
【００８３】
ステップＳ３０：
管理ホスト１は、スタックドスイッチ９からパケット到着通知ＭＰｂを受け取る。管理ホスト１は、パケット到着通知ＭＰｂに含まれる第１パケットのＭＡＣ−ＤＡ及びＭＡＣ−ＳＡ（図１１参照）から、端末３（送信元）から端末２（送信先）へのフロー通信が要求されていることを認識する。
【００８４】
次に、管理ホスト１は、通信ネットワークＮＥＴにおける端末３から端末２への当該フローの経路（パケットの伝達経路）を決定する。第１の実施の形態で説明されたように、管理ホスト１は、通信ネットワークＮＥＴの構成を示すトポロジ情報ＴＰＬを有している。従って、管理ホスト１は、そのトポロジ情報ＴＰＬを参照することによって、通信ネットワークＮＥＴにおける端末３から端末２へのフロー経路を決定することができる。本例では、そのフロー経路は、「端末３−スタックドスイッチ９のポートＡＰ６９−スタックドスイッチ９のポートＡＰ４−スイッチ４のポートＰ９−スイッチ４のポートＰ２−端末２」である。
【００８５】
次に、管理ホスト１は、決定されたフロー経路に属する各スイッチ４，９に対して、当該フローのパケットを決定されたフロー経路に沿って転送するように指示する。より詳細には、管理ホスト１は、決定されたフロー経路に属する各スイッチ４，９に対して、当該フローのパケットが決定されたフロー経路に沿って転送されるように各転送テーブルの内容を設定するよう指示を行う。そのために、管理ホスト１は、決定されたフロー経路上の各スイッチ４，９に対して、「テーブル設定命令ＣＴ」を送信する。テーブル設定命令ＣＴは、各スイッチが設定すべき転送テーブルの内容を示す。
【００８６】
図１３Ａは、スイッチ４に送信されるテーブル設定命令ＣＴ４を示している。このテーブル設定命令ＣＴ４は、ヘッダ情報及びエントリ記述内容を含んでいる。ヘッダ情報は、送信先であるスイッチ４のＤＰＩＤ（００−００−４ｃ−００−４４−４４）、及びテーブル設定命令を識別するための種別（ＯｐｅｎＦｌｏｗの場合は“ＭＯＤＩＦＹ＿ＳＴＡＴＥ”あるいは“ＭＯＤ＿ＳＴＡＴＥ”）を含んでいる。エントリ記述内容は、スイッチ４が転送テーブル４２に追加すべきエントリの内容を示している。具体的には、エントリ記述内容は、入力ポート、ＭＡＣ−ＤＡ、ＭＡＣ−ＳＡ、及び出力ポートを含んでいる。ＭＡＣ−ＤＡ及びＭＡＣ−ＳＡは、上記パケット到着通知ＭＰｂに含まれる第１パケットのＭＡＣ−ＤＡ及びＭＡＣ−ＳＡ（図１１参照）と同じである。入力ポート及び出力ポートは、上記決定されたフロー経路に応じて設定される。上記決定されたフロー経路によれば、スイッチ４は、ポートＰ９から入力されるパケットをポートＰ２から出力するように要求されている。従って、入力ポート及び出力ポートは、それぞれ“Ｐ９”及び“Ｐ２”に設定される。
【００８７】
図１３Ｂは、スタックドスイッチ９に送信されるテーブル設定命令ＣＴ９を示している。テーブル設定命令ＣＴ９の形式は、図１３Ａで示されたテーブル設定命令ＣＴ４と同様である。ヘッダ情報中のＤＰＩＤは、送信先であるスタックドスイッチ９のＤＰＩＤ（００−００−４ｃ−００−９９−９９）に設定される。また、上記決定されたフロー経路によれば、スタックドスイッチ９は、割当ポートＡＰ６９から入力されるパケットを割当ポートＡＰ４から出力するように要求されている。従って、エントリ記述内容中の入力ポート及び出力ポートは、それぞれ“ＡＰ６９”及び“ＡＰ４”に設定される。
【００８８】
ステップＳ４０：
次に、決定されたフロー経路上の各スイッチ（４、９）において、各転送テーブルの設定が行われる。
【００８９】
（スイッチ４）
スイッチ４のホスト通信部４３は、管理ホスト１から、図１３Ａで示されたテーブル設定命令ＣＴ４を受け取る。ホスト通信部４３は、種別（ＭＯＤＩＦＹ＿ＳＴＡＴＥ）から、受け取った情報がテーブル設定命令であることを認識する。その場合、ホスト通信部４３は、受け取ったテーブル設定命令ＣＴ４をテーブル設定部４４に送る。テーブル設定部４４は、受け取ったテーブル設定命令ＣＴ４からエントリ記述内容を読み出し、そのエントリ記述内容を新たなエントリとして転送テーブル４２に追加する。尚、追加エントリにおける「カウント」は、初期値（例：０）に設定される。図１４は、転送テーブル４２に新たに追加されたエントリを示している。図１４に示されるように、図１３Ａで示されたテーブル設定命令ＣＴ４の内容が転送テーブル４２に反映されている。このように、スイッチ４は、管理ホスト１からの指示に従って、当該フローのパケットが上記決定された経路に沿って転送されるように転送テーブル４２の内容を設定する。
【００９０】
（スタックドスイッチ９）
スタックドスイッチ９は、図１３Ｂで示されたテーブル設定命令ＣＴ９を管理ホスト１から受け取る。スタックドスイッチ９は、そのテーブル設定命令ＣＴ９に応答して、次の処理を行う。図１５は、スタックドスイッチ９における処理を示すフローチャートである。
【００９１】
ステップＳ４１：
まず、スタック管理部１０のホスト通信部１４は、管理ホスト１から、図１３Ｂで示されたテーブル設定命令ＣＴ９を受け取る。ホスト通信部１４は、種別（ＭＯＤＩＦＹ＿ＳＴＡＴＥ）から、受け取った情報がテーブル設定命令であることを認識する。その場合、ホスト通信部１４は、受け取ったテーブル設定命令ＣＴ９をコマンド処理部１６に送る。
【００９２】
コマンド処理部１６は、ホスト通信部１４からテーブル設定命令ＣＴ９を受け取る。コマンド処理部１６は、種別（ＭＯＤＩＦＹ＿ＳＴＡＴＥ）から、受け取った情報がテーブル設定命令であることを認識する。その場合、コマンド処理部１６は、記憶部１２に格納されているポート情報ＰＯＲを参照することによって、受け取ったテーブル設定命令ＣＴ９のエントリ記述内容に含まれる入力ポート（ＡＰ６９）及び出力ポート（ＡＰ４）を実ポートに変換する。本例では、入力ポートＡＰ６９はスイッチ８のポートＰ３に変換され、出力ポートＡＰ４はスイッチ５のポートＰ４に変換される。このようにして、コマンド処理部１６は、当該フローのパケットの入出力に用いられる外部入力ポート（スイッチ８のポートＰ３）及び外部出力ポート（スイッチ５のポートＰ４）を認識することができる。
【００９３】
ステップＳ４２：
次に、コマンド処理部１６は、内部ネットワークＩＮＴ−ＮＥＴにおける外部入力ポート（スイッチ８のポートＰ３）から外部出力ポート（スイッチ５のポートＰ４）への経路候補を抽出する。このとき、コマンド処理部１６は、記憶部１２に格納されているトポロジ情報ＴＰＬ（図８参照）を用いることによって、経路候補を抽出することができる。本例では、次の２種類の経路候補が抽出される。
【００９４】
第１の経路候補：スイッチ８のポートＰ３−スイッチ８のポートＰ１６−スイッチ６のポートＰ１８−スイッチ６のポートＰ１５−スイッチ５のポートＰ１６−スイッチ５のポートＰ４
第２の経路候補：スイッチ８のポートＰ３−スイッチ８のポートＰ１７−スイッチ７のポートＰ１８−スイッチ７のポートＰ１５−スイッチ５のポートＰ１７−スイッチ５のポートＰ４
【００９５】
ステップＳ４３：
次に、コマンド処理部１６は、記憶部１２に格納されているエントリ状態情報ＥＮＴを参照することによって、各経路候補に属する各スイッチのスイッチコストＳＣを算出する。各スイッチのスイッチコストＳＣは、エントリ状態情報ＥＮＴで与えられるコストパラメータから算出可能である。図９で示されたように、本例のエントリ状態情報ＥＮＴは、各スイッチのスイッチコストＳＣそのものをコストパラメータとして示している。従って、コマンド処理部１６は、各スイッチのスイッチコストＳＣを即座に取得することができる。第１の経路候補に関しては、スイッチ８、６及び５の各々のスイッチコストＳＣが得られる。第２の経路候補に関しては、スイッチ８、７及び５の各々のスイッチコストＳＣが得られる。
【００９６】
ステップＳ４４：
次に、コマンド処理部１６は、ステップＳ４３で得られたスイッチコストＳＣに基づいて、経路候補のうち１つを、内部ネットワークＩＮＴ−ＮＥＴにおける当該フローの経路として決定する。上述の通り、スイッチコストＳＣは、空きエントリ数ＮＢが多いほど小さくなる量である。そして、“エントリあふれ”は、空きエントリ数ＮＢが多いほど発生しにくい。従って、コマンド処理部１６は、スイッチコストＳＣに基づいて、“エントリあふれ”の発生が抑制されるようにフロー経路を決定することができる。
【００９７】
本例では、上述の第１のアルゴリズムに従ってフロー経路が決定される。すなわち、コマンド処理部１６は、経路候補毎に、スイッチコストＳＣの総和である「総コスト」を算出する。そして、コマンド処理部１６は、経路候補のうち総コストが最小である１つを、当該フローの経路として決定する。第１の経路候補の総コストは、スイッチ８、６、５のそれぞれのスイッチコストＳＣの総和であり、“７．３５９６（＝０．１１３８＋７．１４２９＋０．１０２９）”と算出される。一方、第２の経路候補の総コストは、スイッチ８、７、５のそれぞれのスイッチコストＳＣの総和であり、“０．３８６５（＝０．１１３８＋０．１６９８＋０．１０２９）”と算出される。従って、コマンド処理部１６は、第２の経路候補を、内部ネットワークＩＮＴ−ＮＥＴにおけるフロー経路（パケットの伝達経路）として決定する。
【００９８】
ステップＳ４５：
次に、コマンド処理部１６は、エントリ状態情報ＥＮＴを更新する。具体的には、コマンド処理部１６は、上記決定されたフロー経路に属する各スイッチ（５、７、８）に関して、空きエントリ数ＮＢを１ずつ減少させ、また、スイッチコストＳＣを再計算する。その結果、エントリ状態情報ＥＮＴは、図９で示されたものから、図１６に示されるものに変わる。
【００９９】
尚、本例のエントリ状態情報ＥＮＴでは、空きエントリ数ＮＢとスイッチコストＳＣがコストパラメータとして示されていたが、その他の場合でも同様である。例えば、空きエントリ数ＮＢだけがコストパラメータとして示される場合、コマンド処理部１６は、決定されたフロー経路に属する各スイッチの空きエントリ数ＮＢを１ずつ減少させる。また例えば、使用エントリ数ＮＡがコストパラメータとして示される場合、コマンド処理部１６は、決定されたフロー経路に属する各スイッチの使用エントリ数ＮＡを１ずつ増加させる。要するに、コマンド処理部１６は、空きエントリ数ＮＢが１減少することに相当する変更を、決定されたフロー経路に属する各スイッチに関するコストパラメータに加え、それによりエントリ状態情報ＥＮＴを更新する。
【０１００】
ステップＳ４６：
また、コマンド処理部１６は、決定されたフロー経路に属する各スイッチ（５、７、８）に対して、当該フローのパケットを決定されたフロー経路に沿って転送するように指示する。より詳細には、コマンド処理部１６は、決定されたフロー経路に属する各スイッチ（５、７、８）に対して、当該フローのパケットが決定されたフロー経路に沿って転送されるように各転送テーブル（５２、７２、８２）の内容を設定するよう指示を行う。そのために、コマンド処理部１６は、決定されたフロー経路上の各スイッチ（５、７、８）に対する「テーブル設定命令ＣＴ」を生成する。各テーブル設定命令ＣＴの形式は、既出の図１３Ａで示されたものと同様である。
【０１０１】
図１７Ａは、スイッチ５に送信されるテーブル設定命令ＣＴ５を示している。ヘッダ情報中のＤＰＩＤは、送信先であるスイッチ５のＤＰＩＤ（００−００−４ｃ−００−５５−５５）に設定される。エントリ記述内容中のＭＡＣ−ＤＡ及びＭＡＣ−ＳＡは、コマンド処理部１６が先に受け取ったテーブル設定命令ＣＴ９（図１３Ｂ参照）中のものと同じである。入力ポート及び出力ポートは、上記決定されたフロー経路に応じて設定される。上記決定されたフロー経路によれば、スイッチ５は、ポートＰ１７から入力されるパケットをポートＰ４から出力するように要求されている。従って、入力ポート及び出力ポートは、それぞれ“Ｐ１７”及び“Ｐ４”に設定される。
【０１０２】
図１７Ｂは、スイッチ７に送信されるテーブル設定命令ＣＴ７を示している。ヘッダ情報中のＤＰＩＤは、送信先であるスイッチ７のＤＰＩＤ（００−００−４ｃ−００−７７−７７）に設定される。また、上記決定されたフロー経路によれば、スイッチ７は、ポートＰ１８から入力されるパケットをポートＰ１５から出力するように要求されている。従って、入力ポート及び出力ポートは、それぞれ“Ｐ１８”及び“Ｐ１５”に設定される。
【０１０３】
図１７Ｃは、スイッチ８に送信されるテーブル設定命令ＣＴ８を示している。ヘッダ情報中のＤＰＩＤは、送信先であるスイッチ８のＤＰＩＤ（００−００−４ｃ−００−８８−８８）に設定される。また、上記決定されたフロー経路によれば、スイッチ８は、ポートＰ３から入力されるパケットをポートＰ１７から出力するように要求されている。従って、入力ポート及び出力ポートは、それぞれ“Ｐ３”及び“Ｐ１７”に設定される。
【０１０４】
コマンド処理部１６は、生成したテーブル設定命令ＣＴ５、ＣＴ７及びＣＴ８を、ノード通信部１３に送る。ノード通信部１３は、種別（ＭＯＤＩＦＹ＿ＳＴＡＴＥ）から、受け取った情報がテーブル設定命令であることを認識する。その場合、ノード通信部１３は、受け取ったテーブル設定命令のヘッダ情報中のＤＰＩＤを参照し、そのＤＰＩＤで指定されるスイッチにテーブル設定命令を送信する。すなわち、ノード通信部１３は、テーブル設定命令ＣＴ５、ＣＴ７及びＣＴ８を、それぞれスイッチ５、７及び８に送信する。
【０１０５】
ステップＳ４７：
次に、決定されたフロー経路上の各スイッチ（５、７、８）において、各転送テーブル（５２、７２、８２）の設定が行われる。
【０１０６】
スイッチ５のホスト通信部５３は、ノード通信部１３から、図１７Ａで示されたテーブル設定命令ＣＴ５を受け取る。ホスト通信部５３は、種別（ＭＯＤＩＦＹ＿ＳＴＡＴＥ）から、受け取った情報がテーブル設定命令であることを認識する。その場合、ホスト通信部５３は、受け取ったテーブル設定命令ＣＴ５をテーブル設定部５４に送る。テーブル設定部５４は、受け取ったテーブル設定命令ＣＴ５からエントリ記述内容を読み出し、そのエントリ記述内容を新たなエントリとして転送テーブル５２に追加する。尚、追加エントリにおける「カウント」は、初期値（例：０）に設定される。図１８Ａは、転送テーブル５２に新たに追加されたエントリを示している。図１８Ａに示されるように、図１７Ａで示されたテーブル設定命令ＣＴ５の内容が転送テーブル５２に反映されている。
【０１０７】
スイッチ７のホスト通信部７３は、ノード通信部１３から、図１７Ｂで示されたテーブル設定命令ＣＴ７を受け取る。ホスト通信部７３は、種別（ＭＯＤＩＦＹ＿ＳＴＡＴＥ）から、受け取った情報がテーブル設定命令であることを認識する。その場合、ホスト通信部７３は、受け取ったテーブル設定命令ＣＴ７をテーブル設定部７４に送る。テーブル設定部７４は、受け取ったテーブル設定命令ＣＴ７からエントリ記述内容を読み出し、そのエントリ記述内容を新たなエントリとして転送テーブル７２に追加する。尚、追加エントリにおける「カウント」は、初期値（例：０）に設定される。図１８Ｂは、転送テーブル７２に新たに追加されたエントリを示している。図１８Ｂに示されるように、図１７Ｂで示されたテーブル設定命令ＣＴ７の内容が転送テーブル７２に反映されている。
【０１０８】
スイッチ８のホスト通信部８３は、ノード通信部１３から、図１７Ｃで示されたテーブル設定命令ＣＴ８を受け取る。ホスト通信部８３は、種別（ＭＯＤＩＦＹ＿ＳＴＣＴＥ）から、受け取った情報がテーブル設定命令であることを認識する。その場合、ホスト通信部８３は、受け取ったテーブル設定命令ＣＴ８をテーブル設定部８４に送る。テーブル設定部８４は、受け取ったテーブル設定命令ＣＴ８からエントリ記述内容を読み出し、そのエントリ記述内容を新たなエントリとして転送テーブル８２に追加する。尚、追加エントリにおける「カウント」は、初期値（例：０）に設定される。図１８Ｃは、転送テーブル８２に新たに追加されたエントリを示している。図１８Ｃに示されるように、図１７Ｃで示されたテーブル設定命令ＣＴ８の内容が転送テーブル８２に反映されている。
【０１０９】
このように、スイッチ５、７、８の各々は、スタック管理部１０からの指示に従って、当該フローのパケットが上記決定された経路に沿って転送されるように各転送テーブルの内容を設定する。以上により、ステップＳ４０が完了する。
【０１１０】
ステップＳ５０：
各スイッチにおける転送テーブルの設定が完了した頃合に、管理ホスト１は、図１９Ａに示されるパケット送信命令ＣＰａを生成する。このパケット送信命令ＣＰａは、ヘッダ情報と第１パケットを含んでいる。ヘッダ情報は、パケット送信命令の送信先のスイッチを示すＤＰＩＤ（００−００−４ｃ−００−９９−９９）、パケット送信命令を識別するための種別（ＯｐｅｎＦｌｏｗの場合は“ＳＥＮＤ＿ＰＡＣＫＥＴ”）、及び第１パケットが出力される出力ポート番号（ＡＰ４）を含んでいる。
【０１１１】
送信先のスイッチは、既出のステップＳ３０で受け取ったパケット到着通知ＭＰｂ（図１２Ｂ）の送信元、すなわち、スタックドスイッチ９である。第１パケットが出力されるスタックドスイッチ９の出力ポートＡＰ４は、既出のステップＳ３０で決定された通信ネットワークＮＥＴにおけるフロー経路から認識可能である。また、パケット送信命令ＣＰａに格納される第１パケットは、既出のステップＳ３０で受け取ったパケット到着通知ＭＰｂ（図１２Ｂ）に格納されていたものと同じである。管理ホスト１は、ヘッダ情報中のＤＰＩＤを参照して、このパケット送信命令ＣＰａをスタックドスイッチ９に送信する。
【０１１２】
ステップＳ６０：
スタックドスイッチ９のスタック管理部１０のホスト通信部１４は、管理ホスト１から、図１９Ａで示されたパケット送信命令ＣＰａを受け取る。ホスト通信部１４は、種別（ＳＥＮＤ＿ＰＡＣＫＥＴ）から、受け取った情報がパケット送信命令であることを認識する。その場合、ホスト通信部１４は、受け取ったパケット送信命令ＣＰａをコマンド処理部１６に送る。そして、コマンド処理部１６は、種別（ＳＥＮＤ＿ＰＡＣＫＥＴ）から、受け取った情報がパケット送信命令であることを認識する。この場合、コマンド処理部１６は、次の処理を行う。
【０１１３】
コマンド処理部１６は、パケット送信命令ＣＰａを、スタックドスイッチ９内部用のパケット送信命令ＣＰｂに書き換える。具体的には、コマンド処理部１６は、記憶部１２に格納されているポート情報ＰＯＲを参照することによって、パケット送信命令ＣＰａで示される出力ポート（割当ポート）ＡＰ４に対応するスイッチ及び実ポートを調べる。本例では、割当ポートＡＰ４に対応するのは、スイッチ５の実ポートＰ４である。従って、コマンド処理部１６は、パケット送信命令ＣＰａに含まれるスタックドスイッチ９のＤＰＩＤ（００−００−４ｃ−００−９９−９９）及び出力ポート（ＡＰ４）を、それぞれ、スイッチ５のＤＰＩＤ（００−００−４ｃ−００−５５−５５）及び出力ポート（Ｐ４）に書き換える。図１９Ｂは、結果として得られるパケット送信命令ＣＰｂを示している。
【０１１４】
コマンド処理部１６は、図１９Ｂに示されるパケット送信命令ＣＰｂを、ノード通信部１３に送る。ノード通信部１３は、種別（ＳＥＮＤ＿ＰＡＣＫＥＴ）から、受け取った情報がパケット送信命令であることを認識する。その場合、ノード通信部１３は、パケット送信命令ＣＰｂのヘッダ情報中のＤＰＩＤを参照し、そのＤＰＩＤで指定されるスイッチ５にそのパケット送信命令ＣＰｂを送信する。
【０１１５】
スイッチ５のホスト通信部５３は、ノード通信部１３からパケット送信命令ＣＰｂを受け取る。ホスト通信部５３は、種別（ＳＥＮＤ＿ＰＡＣＫＥＴ）から、受け取った情報がパケット送信命令であることを認識する。その場合、ホスト通信部５３は、受け取ったパケット送信命令ＣＰｂから第１パケットを取り出し、その第１パケットを転送処理部５１に送る。更に、ホスト通信部５３は、転送処理部５１に対して、その第１パケットをパケット送信命令ＣＰｂで指定される出力ポートＰ４から出力するよう指示する。転送処理部５１は、第１パケットをポートＰ４から出力する。スイッチ５のポートＰ４は、スイッチ４に接続されており、第１パケットはスイッチ４に転送される。このようにして、第１パケットの転送が再開される。
【０１１６】
ステップＳ７０：
スイッチ４は、スタックドスイッチ９に接続されているポートＰ９から、第１パケットを受け取る。スイッチ４の転送処理部４１は、テーブル記憶部４０に格納されている転送テーブル４２を参照して、第１パケットの転送を行う。具体的には、転送処理部４１は、第１パケットを受け取ると、その入力元（ポートＰ９）及び第１パケットに含まれるＭＡＣ−ＤＡ及びＭＡＣ−ＳＡを検索キーとして用いることにより、転送テーブル４２から該当エントリの検索を行う。図１４に示されるように、現在、転送テーブル４２は、該当エントリを含んでいる。従って、転送テーブル４２は、該当エントリの出力ポートＰ２に、第１パケットを転送する。スイッチ４のポートＰ２は、端末２に接続されており、第１パケットは端末２に転送される。
【０１１７】
ステップＳ８０：
端末２は、スイッチ４から第１パケットを受信する。第１パケットに含まれるＭＡＣ−ＤＡ（００−００−４ｃ−００−ａａ−００）は自身のＭＡＣアドレスと一致するため、端末２は、受信した第１パケットに関して適切な処理を行う。例えば、端末２は、受信パケットをＯＳやアプリケーションに渡す。
【０１１８】
以上の処理により、送信端末３から受信端末２へのフローが確立する。送信端末３は、第１パケットに続いて、当該フローのパケットを順次送信する。そのパケットの形式は、図１１で示されたものと同じである。当該フローのパケットは、上記決定された経路に沿って、送信端末３から受信端末２へ伝送される。
【０１１９】
具体的には、送信端末３は、スタックドスイッチ９にパケットを送信する。スタックドスイッチ９のスイッチ８は、ポートＰ３からパケットを受け取る。スイッチ８の転送処理部８１は、図１８Ｃで示される転送テーブル８２を参照することにより、そのパケットを出力ポートＰ１７に転送する。この時、転送処理部８１は、転送テーブル８２中のヒットエントリに含まれる「カウント」を１だけインクリメントする。パケットは、スイッチ８のポートＰ１７から、スイッチ７へ転送される。
【０１２０】
スイッチ７は、ポートＰ１８からパケットを受け取る。スイッチ７の転送処理部７１は、図１８Ｂで示される転送テーブル７２を参照することにより、そのパケットを出力ポートＰ１５に転送する。この時、転送処理部７１は、転送テーブル７２中のヒットエントリに含まれる「カウント」を１だけインクリメントする。パケットは、スイッチ７のポートＰ１５から、スイッチ５へ転送される。
【０１２１】
スイッチ５は、ポートＰ１７からパケットを受け取る。スイッチ５の転送処理部５１は、図１８Ａで示される転送テーブル５２を参照することにより、そのパケットを出力ポートＰ４に転送する。この時、転送処理部５１は、転送テーブル５２中のヒットエントリに含まれる「カウント」を１だけインクリメントする。パケットは、スイッチ５のポートＰ４から、スイッチ４へ転送される。
【０１２２】
スイッチ４は、ポートＰ９からパケットを受け取る。スイッチ４の転送処理部４１は、図１８Ａで示される転送テーブル４２を参照することにより、そのパケットを出力ポートＰ２に転送する。この時、転送処理部４１は、転送テーブル４２中のヒットエントリに含まれる「カウント」を１だけインクリメントする。パケットは、スイッチ４のポートＰ２から、端末２へ転送される。このようにして、当該フローのパケットが、上記決定された経路に沿って、送信端末３から受信端末２へ伝送される。
【０１２３】
次に、転送テーブルからのエントリ消去に関連する動作を説明する。図２０は、エントリ消去動作を示すフローチャートである。
【０１２４】
ステップＳ１１０：
各スイッチにおいて、テーブル設定部は、転送テーブルに含まれる各エントリの「カウント」をモニタする。すなわち、各スイッチにおいて、テーブル設定部は、転送テーブル中の各エントリのヒット状況をモニタする。そして、テーブル設定部は、所定の期間毎に、カウントが前回から変化したか否かを調べる。
【０１２５】
ステップＳ１２０：
あるスイッチにおいて、あるエントリのカウントが所定の期間内に変化していなかったとする（ステップＳ１２０；無）。すなわち、当該スイッチにおいて、所定の期間中に当該エントリがヒットしなかったとする。これは、当該スイッチにおいて、当該エントリに対応したフローの通信が所定の期間途絶えたことを意味する。その場合、処理は、ステップＳ１３０へ進む。
【０１２６】
ステップＳ１３０：
例えば、スイッチ８のテーブル設定部８４が、図１８Ｃで示されるエントリのカウントが所定の期間変化しなかったことを検出したとする。その場合、テーブル設定部８４は、転送テーブル８２から当該エントリを消去（削除）する。更に、テーブル設定部８４は、スイッチ８から１つのエントリが消去されたことを示す「エントリ消去通知ＭＥ８」を生成する。
【０１２７】
図２１は、エントリ消去通知ＭＥ８を示している。このエントリ消去通知ＭＥ８は、ヘッダ情報及びエントリ記述内容を含んでいる。ヘッダ情報は、自スイッチのＤＰＩＤ（００−００−４ｃ−００−８８−８８）、及びエントリ消去通知を識別するための種別（ＯｐｅｎＦｌｏｗの場合は“ＦＬＯＷ＿ＥＸＰＩＲＡＴＩＯＮ”）を含んでいる。エントリ記述内容は、転送テーブル８２から消去されたエントリの内容（「カウント」を除く）を含んでいる。
【０１２８】
テーブル設定部８４は、生成したエントリ消去通知ＭＥ８をホスト通信部８３に送る。ホスト通信部８３は、種別（ＦＬＯＷ＿ＥＸＰＩＲＡＴＩＯＮ）から、受け取った情報がエントリ消去通知であることを認識する。その場合、ホスト通信部８３は、エントリ消去通知ＭＥ８をスタック管理部１０に送信する。
【０１２９】
ステップＳ１４０：
スタック管理部１０のノード通信部１３は、スイッチ８からエントリ消去通知ＭＥ８を受け取る。ノード通信部１３は、種別（ＦＬＯＷ＿ＥＸＰＩＲＡＴＩＯＮ）から、受け取った情報がエントリ消去通知であることを認識する。その場合、ノード通信部１３は、受け取ったエントリ消去通知ＭＥ８をメッセージ処理部１５へ送る。メッセージ処理部１５は、ノード通信部１３からエントリ消去通知ＭＥ８を受け取る。そして、メッセージ処理部１５は、種別（ＦＬＯＷ＿ＥＸＰＩＲＡＴＩＯＮ）から、受け取った情報がエントリ消去通知であることを認識する。その場合、メッセージ処理部１５は、次の処理を行う。
【０１３０】
メッセージ処理部１５は、エントリ消去通知ＭＥ８に応答して、エントリ状態情報ＥＮＴを更新する。具体的には、メッセージ処理部１５は、受け取ったエントリ消去通知ＭＥ８に含まれるＤＰＩＤを参照し、スイッチ８からエントリが消去されたことを認識する。そして、メッセージ処理部１５は、エントリ状態情報ＥＮＴ中のスイッチ８に関して、空きエントリ数ＮＢを１だけ増加させ、また、スイッチコストＳＣを再計算する。これにより、エントリ状態情報ＥＮＴが更新される。
【０１３１】
尚、本例のエントリ状態情報ＥＮＴでは、空きエントリ数ＮＢとスイッチコストＳＣがコストパラメータとして示されていたが、その他の場合でも同様である。例えば、空きエントリ数ＮＢだけがコストパラメータとして示される場合、メッセージ処理部１５は、該当スイッチの空きエントリ数ＮＢを１だけ増加させる。また例えば、使用エントリ数ＮＡがコストパラメータとして示される場合、メッセージ処理部１５は、該当スイッチの使用エントリ数ＮＡを１だけ減少させる。要するに、メッセージ処理部１５は、空きエントリ数ＮＢが１増加することに相当する変更を、該当スイッチに関するコストパラメータに加え、それによりエントリ状態情報ＥＮＴを更新する。
【０１３２】
ステップＳ１５０：
メッセージ処理部１５は、管理ホスト１にエントリ消去を報告するように要求されているか否かを確認する。管理ホスト１がエントリ消去の報告を要求していない場合（ステップＳ１５０；Ｎｏ）、処理は終了する。一方、管理ホスト１がエントリ消去の報告を要求している場合（ステップＳ１５０；Ｙｅｓ）、処理はステップＳ１６０に進む。
【０１３３】
ステップＳ１６０：
スタックドスイッチ９は管理ホスト１からは１つのスイッチとして見える。そのため、スタックドスイッチ９から管理ホスト１へのエントリ消去の通知は、１回だけ行われることが好ましい。そこで、ステップＳ１６０において、メッセージ処理部１５は、管理ホスト１へエントリ消去を通知するか否かを判定する。本例では、消去されたエントリが「外部入力ポート」に関連している場合にのみ、スタックドスイッチ９から管理ホスト１へエントリ消去通知ＭＥが送られるとする。
【０１３４】
今、メッセージ処理部１５は、図２１で示されたエントリ消去通知ＭＥ８を受け取っている。そのエントリ消去通知ＭＥ８からは、エントリが消去されたスイッチがスイッチ８（ＤＰＩＤ＝００−００−４ｃ−００−８８）であり、消去されたエントリの入力ポートがそのスイッチ８のポートＰ３であることが分かる。そこで、メッセージ処理部１５は、記憶部１２に格納されているトポロジ情報ＴＰＬを参照し、そのスイッチ８のポートＰ３が内部接続用ポートか外部接続用ポートかを判定する。具体的には、メッセージ処理部１５は、スイッチ８のポートＰ３がトポロジ情報ＴＰＬ（図８参照）に記述されているか否かを判定する。
【０１３５】
図８から明らかなように、スイッチ８のポートＰ３は、トポロジ情報ＴＰＬに記述されていない。従って、メッセージ処理部１５は、スイッチ８のポートＰ３は、内部接続用ポートではなく、外部接続用ポートであると判断する。すなわち、メッセージ処理部１５は、エントリ消去通知ＭＥ８で示される入力ポートＰ３は、外部入力ポートであると判断する。その場合、メッセージ処理部１５は、管理ホスト１に対してエントリ消去を通知することを決定する（ステップＳ１６０；Ｙｅｓ）。
【０１３６】
ステップＳ１７０：
メッセージ処理部１５は、エントリ消去通知ＭＥ８を、スタックドスイッチ９からエントリが消去されたことを示すエントリ消去通知ＭＥ９に書き換える。具体的には、メッセージ処理部１５は、エントリ消去通知ＭＥ８に含まれるスイッチ８のＤＰＩＤ（００−００−４ｃ−００−８８−８８）を、スタックドスイッチ９のＤＰＩＤ（００−００−４ｃ−００−９９−９９）に書き換える。更に、メッセージ処理部１５は、記憶部１２に格納されているポート情報ＰＯＲを参照することによって、エントリ消去通知ＭＥ８に含まれるスイッチ８の入力ポートＰ３を、スタックドスイッチ９としての割当ポートＡＰ６９（外部入力ポート）に書き換える。尚、エントリ消去通知ＭＥ８に含まれるスイッチ８の出力ポートＰ１７（内部接続用ポート）は、管理ホスト１によって認識されていない。従って、メッセージ処理部１５は、その出力ポートＰ１７を“特殊なポートＰ０（ポート不明を示す番号）”に書き換える。図２２は、結果として得られるエントリ消去通知ＭＥ９を示している。
【０１３７】
そして、メッセージ処理部１５は、図２２で示されたエントリ消去通知ＭＥ９をホスト通信部１４に送る。ホスト通信部１４は、種別（ＦＬＯＷ＿ＥＸＰＩＲＡＴＩＯＮ）から、受け取った情報がエントリ消去通知であることを認識する。その場合、ホスト通信部１４は、受け取ったエントリ消去通知ＭＥ９を管理ホスト１に送信する。
【０１３８】
ステップＳ１８０：
管理ホスト１は、スタックドスイッチ９からエントリ消去通知ＭＥ９を受け取る。このエントリ消去通知ＭＥ９に応答して、管理ホスト１は、所定の処理を行う。
【０１３９】
エントリ消去通知ＭＥは、スイッチ８だけでなく、その他のスイッチによっても生成され得る。図２３は、スイッチ７によって生成されるエントリ消去通知ＭＥ７を示している。また、図２４は、スイッチ５によって生成されるエントリ消去通知ＭＥ５を示している。それらの形式は、図２１で示されたものと同様である。
【０１４０】
スタック管理部１０のメッセージ処理部１５は、エントリ消去通知ＭＥ７、ＭＥ５のそれぞれに応答して、エントリ状態情報ＥＮＴ中のスイッチ７、５に関するコストパラメータを変更し、それによりエントリ状態情報ＥＮＴを更新する（ステップＳ１４０）。また、ステップＳ１６０において、メッセージ処理部１５は、管理ホスト１へエントリ消去を通知するか否かを判定する。図２３に示されるように、エントリ消去通知ＭＥ７で示される入力ポートは、スイッチ７のポートＰ１８である。また、図２４に示されるように、エントリ消去通知ＭＥ５で示される入力ポートは、スイッチ５のポートＰ１７である。図８から明らかなように、スイッチ７のポートＰ１８とスイッチ５のポートＰ１７は、トポロジ情報ＴＰＬに記述されている内部接続用ポートである。この場合、メッセージ処理部１５は、管理ホスト１に対してエントリ消去を通知しない（ステップＳ１６０；Ｎｏ）。
【０１４１】
上記例では、第２の実施の形態の場合が示されたが、図１で示された第１の実施の形態の場合も同様である。第１の実施の形態の場合、管理ホスト１が、スタックドスイッチ９のスタック管理部１０と同様の役割を果たす。但し、スタック管理部１０が行った、各種通知や各種命令の書き換えは不要である。
【０１４２】
３−４．変形例
スイッチコストＳＣは、空きエントリ数ＮＢが減少するにつれて増加する量であれば何でもよい。上述の通り、スイッチコストＳＣの例としては、様々考えられる。
（例１）スイッチコストＳＣ＝係数Ｃ１／空きエントリ数ＮＢ
（例２）スイッチコストＳＣ＝係数Ｃ２／空きエントリ率（＝ＮＢ／ＮＭ）
（例３）スイッチコストＳＣ＝係数Ｃ３×使用エントリ数ＮＡ
（例４）スイッチコストＳＣ＝係数Ｃ４×使用エントリ率（＝ＮＡ／ＮＭ）
【０１４３】
また、エントリ状態情報ＥＮＴによって与えられる「コストパラメータ」は、上記スイッチコストＳＣを算出できるものであれば何でもよい。図９で示された例では、コストパラメータは、空きエントリ数ＮＢとスイッチコストＳＣであったが、それに限られない。
【０１４４】
図２５は、エントリ状態情報ＥＮＴの変形例を示している。図２５では、エントリ状態情報ＥＮＴは、各スイッチの空きエントリ数ＮＢだけを示している。この場合、空きエントリ数ＮＢが変更されても、スイッチコストＳＣの再計算は行われない。フロー経路決定時に、空きエントリ数ＮＢに基づいて、各スイッチのスイッチコストＳＣが算出されればよい。
【０１４５】
図２６は、エントリ状態情報ＥＮＴの他の例を示している。図２６では、エントリ状態情報ＥＮＴは、各スイッチの閾値エントリ数ＮＭ及び使用エントリ数ＮＡを示している。この場合、空きエントリ数ＮＢを１減少（あるいは増加）させる操作は、使用エントリ数ＮＡを１増加（あるいは減少）させる操作で置き換えられる。いずれの操作も、空きエントリ数ＮＢを１減少（あるいは増加）させることに相当することに変わりはない。また、図２６の例の場合、閾値エントリ数ＮＭと使用エントリ数ＮＡから空きエントリ数ＮＢを算出し、更に、その空きエントリ数ＮＢを用いてスイッチコストＳＣを算出することができる。あるいは、使用エントリ数ＮＡを用いることによって、上記（例３）のようなスイッチコストＳＣを算出することも可能である。あるいは、閾値エントリ数ＮＭを併用することによって、上記（例２）、（例４）のようなスイッチコストＳＣを算出することもできる。
【０１４６】
図２７は、エントリ状態情報ＥＮＴの更に他の例を示している。図２７では、エントリ状態情報ＥＮＴは、各スイッチの使用エントリ数ＮＡだけを示している。この場合、使用エントリ数ＮＡが変更されても、スイッチコストＳＣの再計算は行われない。フロー経路決定時に、使用エントリ数ＮＡに基づいて、各スイッチのスイッチコストＳＣが算出されればよい。
【０１４７】
図２８は、エントリ状態情報ＥＮＴの更に他の例を示している。図２８では、エントリ状態情報ＥＮＴは、各スイッチの使用エントリ数ＮＡ及びスイッチコストＳＣを示している。スイッチコストＳＣは、ＳＣ＝０．１×ＮＡで算出されている。この場合、エントリ数ＮＡが変更されると、それに伴ってスイッチコストＳＣも再計算される。
【０１４８】
尚、上記説明ではＯｐｅｎｆｌｏｗが例示されたが、本発明はそれに限られない。本発明は、ＧＭＰＬＳ（Generalized  Multi-Protocol  Label  Switching）にも適用可能である。その場合、管理ホスト１が、ＧＭＰＬＳスイッチに対して転送テーブルの設定を指示する。また、本発明は、ＶＬＡＮ（Virtual LAN）にも適用可能である。その場合、管理ホスト１は、ＭＩＢ（Management  Information  Base）インターフェイスを用いることによって、各スイッチのＶＬＡＮ設定を操作することができる。
【０１４９】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【符号の説明】
【０１５０】
１    管理ホスト
２、３    端末
４    スイッチ
５〜８  スイッチ
９    スタックドスイッチ
１０    スタック管理部
１１、１０１    制御部
１２、１０２    記憶部
１３    ノード通信部
１４    ホスト通信部
１５    メッセージ処理部
１６    コマンド処理部
４０，５０，６０，７０，８０    テーブル記憶部
４１，５１，６１，７１，８１    転送処理部
４２，５２，６２，７２，８２    転送テーブル
４３，５３，６３，７３，８３    ホスト通信部
４４，５４，６４，７４，８４    テーブル設定部
ＣＰ    パケット送信命令
ＣＴ    テーブル設定命令
ＭＥ    エントリ消去通知
ＭＰ    パケット到着通知
ＮＡ    使用エントリ数
ＮＢ    空きエントリ数
ＮＭ    閾値エントリ数
ＳＣ    スイッチコスト
ＰＯＲ    ポート情報
ＴＰＬ    トポロジ情報
ＥＮＴ    エントリ状態情報
ＮＥＴ    通信ネットワーク
ＩＮＴ−ＮＥＴ  内部ネットワーク
【図１】
2010161473.tif 000003
【図２】
2010161473.tif 000004
【図３】
2010161473.tif 000005
【図４】
2010161473.tif 000006
【図５】
2010161473.tif 000007
【図６】
2010161473.tif 000008
【図７】
2010161473.tif 000009
【図８】
2010161473.tif 000010
【図９】
2010161473.tif 000011
【図１０】
2010161473.tif 000012
【図１１】
2010161473.tif 000013
【図１２Ａ】
2010161473.tif 000014
【図１２Ｂ】
2010161473.tif 000015
【図１３Ａ】
2010161473.tif 000016
【図１３Ｂ】
2010161473.tif 000017
【図１４】
2010161473.tif 000018
【図１５】
2010161473.tif 000019
【図１６】
2010161473.tif 000020
【図１７Ａ】
2010161473.tif 000021
【図１７Ｂ】
2010161473.tif 000022
【図１７Ｃ】
2010161473.tif 000023
【図１８Ａ】
2010161473.tif 000024
【図１８Ｂ】
2010161473.tif 000025
【図１８Ｃ】
2010161473.tif 000026
【図１９Ａ】
2010161473.tif 000027
【図１９Ｂ】
2010161473.tif 000028
【図２０】
2010161473.tif 000029
【図２１】
2010161473.tif 000030
【図２２】
2010161473.tif 000031
【図２３】
2010161473.tif 000032
【図２４】
2010161473.tif 000033
【図２５】
2010161473.tif 000034
【図２６】
2010161473.tif 000035
【図２７】
2010161473.tif 000036
【図２８】
2010161473.tif 000037