入力リンクより通信データを入力した際に、内部のフローテーブルに登録されたフローエントリのいずれかに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送し、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、スイッチ間リンクを介して接続されたスイッチに前記通信データを転送する第1のスイッチと、前記第1のスイッチと同じスイッチグループに属し、前記第1のスイッチからスイッチ間リンクを介して前記通信データを受信した際に、内部のフローテーブルに登録されたフローエントリのいずれかに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送する第2のスイッチと、前記第1のスイッチのフローテーブルにフローエントリを登録し、前記第1のスイッチのフローテーブルにフローエントリすることができなくなった場合、前記第2のスイッチのフローテーブルに、前記第1のスイッチのフローテーブルに登録すべきフローエントリを登録する制御サーバとを含むスイッチシステム。請求項1に記載のスイッチシステムであって、前記第2のスイッチは、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行い、前記制御サーバは、前記通信データの転送方式の問い合わせに応じて、前記第1のスイッチ及び前記第2のスイッチのいずれかのフローテーブルに、前記通信データの転送方式を定義したフローエントリを登録するスイッチシステム。請求項1に記載のスイッチシステムであって、前記第1のスイッチ及び前記第2のスイッチと同じスイッチグループに属し、前記第2のスイッチからスイッチ間リンクを介して前記通信データを受信した際に、内部のフローテーブルに登録されたフローエントリのいずれかに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送する第3のスイッチを更に含み、前記第2のスイッチは、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、スイッチ間リンクを介して前記第3のスイッチに前記通信データを転送し、前記第3のスイッチは、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行い、前記制御サーバは、前記通信データの転送方式の問い合わせに応じて、前記第1のスイッチ、前記第2のスイッチ、及び前記第3のスイッチのいずれかのフローテーブルに、前記通信データの転送方式を定義したフローエントリを登録するスイッチシステム。スイッチグループを形成するスイッチであって、所定のマッチ条件に適合する通信データの転送方式を定義したフローエントリが登録されるフローテーブルと、通信データを取得した際に、前記フローテーブルに登録されたフローエントリのいずれかに前記通信データが適合するか確認し、いずれかのフローエントリに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送し、いずれのフローエントリにも前記通信データが適合しない場合、スイッチ間リンクを介して、前記スイッチグループに属するフローテーブル未検索のスイッチに前記通信データを転送する転送処理部と、前記スイッチグループに属するフローテーブル未検索のスイッチが存在しない場合、制御サーバに対して、前記通信データの転送方式の問い合わせを行い、前記制御サーバからの制御により、前記フローテーブルに、前記通信データの転送方式を定義したフローエントリを登録する制御メッセージ処理部とを具備するスイッチ。制御サーバにおいて、第1のスイッチのフローテーブルにフローエントリを登録することと、前記制御サーバにおいて、前記第1のスイッチのフローテーブルにフローエントリすることができなくなった場合、前記第1のスイッチと同じスイッチグループに属する第2のスイッチのフローテーブルに、前記第1のスイッチのフローテーブルに登録すべきフローエントリを登録することと、前記第1のスイッチにおいて、入力リンクより通信データを入力した際に、内部のフローテーブルに登録されたフローエントリのいずれかに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送することと、前記第1のスイッチにおいて、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、スイッチ間リンクを介して、前記第2のスイッチに前記通信データを転送することと、前記第2のスイッチにおいて、前記第1のスイッチからスイッチ間リンクを介して前記通信データを受信した際に、内部のフローテーブルに登録されたフローエントリのいずれかに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送することとを含むデータ転送方法。請求項5に記載のデータ転送方法であって、前記第2のスイッチにおいて、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行うことと、前記制御サーバにおいて、前記通信データの転送方式の問い合わせに応じて、前記第1のスイッチ及び前記第2のスイッチのいずれかのフローテーブルに、前記通信データの転送方式を定義したフローエントリを登録するうこととを更に含むデータ転送方法。請求項5に記載のデータ転送方法であって、前記第2のスイッチにおいて、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、スイッチ間リンクを介して、前記第1のスイッチ及び前記第2のスイッチと同じスイッチグループに属する第3のスイッチに、前記通信データを転送することと、前記第3のスイッチにおいて、前記第2のスイッチからスイッチ間リンクを介して前記通信データを受信した際に、内部のフローテーブルに登録されたフローエントリのいずれかに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送することと、前記第3のスイッチにおいて、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行うことと、前記制御サーバにおいて、前記通信データの転送方式の問い合わせに応じて、前記第1のスイッチ、前記第2のスイッチ、及び前記第3のスイッチのいずれかのフローテーブルに、前記通信データの転送方式を定義したフローエントリを登録することとを更に含むデータ転送方法。スイッチグループを形成するスイッチにより実行されるプログラムを格納した記憶媒体であって、制御サーバからの制御により、スイッチの内部のフローテーブルに、所定のマッチ条件に適合する通信データの転送方式を定義したフローエントリを登録するステップと、通信データを取得した際に、前記フローテーブルに登録されたフローエントリのいずれかに前記通信データが適合するか確認するステップと、いずれかのフローエントリに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送するステップと、いずれのフローエントリにも前記通信データが適合しない場合、スイッチ間リンクを介して、前記スイッチグループに属するフローテーブル未検索のスイッチに前記通信データを転送するステップと、前記スイッチグループに属するフローテーブル未検索のスイッチが存在しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行うステップとをスイッチに実行させるためのプログラムを格納した記憶媒体。<第1実施形態>以下に、本発明の第1実施形態について添付図面を参照して説明する。[スイッチシステムの構成]図1に示すように、本発明の第1実施形態におけるスイッチシステムでは、スイッチ1010-i、i=1~n:nはスイッチの台数と、制御サーバ20を含む。スイッチ1010-i、i=1~nの各々は、自身が保持するフローテーブル内のフローエントリの情報に従って、通信データを転送する。各スイッチ1010-i、i=1~nは、オープンフロー技術に従い、同一共通の制御サーバ20による経路制御を受けており、スイッチグループを形成する。ここでは、各スイッチ1010-i、i=1~nは、同一共通の制御サーバ20による経路制御を受け、1つのスイッチグループを形成するものとしている。しかし、実際には、所定の条件を設定して、更にスイッチグループを細分化しても良い。図1には、本発明の第1実施形態におけるスイッチシステムの最小構成の例として、スイッチ10-1とスイッチ10-2が示されており、この2台によってスイッチグループが形成されている。また、各スイッチ1010-i、i=1~nは、制御リンク100100-i、i=1~nと、スイッチ間リンク200200-i、i=1~m:mは任意と、入力リンク300300-i、i=1~nと、出力リンク400400-i、i=1~nとに接続されている。すなわち、各スイッチ1010-i、i=1~nは、各リンクに接続するための端子ポートを備える。制御リンク100は、スイッチ10と制御サーバ20とを接続する通信回線である。スイッチ間リンク200は、同じスイッチグループに属するスイッチ10同士を接続する通信回線である。入力リンク300は、スイッチ10に通信データを入力するための通信回線である。出力リンク400は、スイッチ10から通信データを出力するための通信回線である。制御リンク100、入力リンク300、及び出力リンク400は、スイッチ10毎に存在している。スイッチ間リンク200は、スイッチ10とスイッチ間リンクにより直接接続しているスイッチの数だけ存在している。制御サーバ20は、各スイッチ1010-i、i=1~nに対して、通信データのマッチ条件ルールと所定の処理アクションとを定義したフローエントリの登録要求を送信する。フローエントリの登録の内容には、フローエントリの新規登録、変更、削除を含むものとする。制御サーバ20は、オープンフロー技術において、コントローラーとも呼ばれる。各スイッチ1010-i、i=1~nは、制御メッセージ処理部1111-i、i=1~nと、フローテーブル1212-i、i=1~nと、転送処理部1313-i、i=1~nを備える。ここでは、スイッチ10-1は、制御メッセージ処理部11-1と、フローテーブル12-1を備える。また、スイッチ10-2は、制御メッセージ処理部11-2と、フローテーブル12-2を備える。制御メッセージ処理部11は、制御サーバ20からフローエントリの登録要求を受信すると、フローテーブル12に当該フローエントリを登録する。制御サーバ20と制御メッセージ処理部11とは、制御リンク100を介して接続されている。ここでは、制御サーバ20とスイッチ10-1の内部の制御メッセージ処理部11-1とは、制御リンク100-1を介して接続されている。また、制御サーバ20とスイッチ10-2の内部の制御メッセージ処理部11-2とは、制御リンク100-2を介して接続されている。各スイッチ1010-i、i=1~nは、互いにスイッチ間リンク200により接続されている。ここでは、スイッチ10-1とスイッチ10-2とは、スイッチ間リンク200-1により接続されている。例えば、転送処理部13-1と転送処理部13-2とが、スイッチ間リンク200-1により接続されている。フローテーブル12は、所定のマッチ条件ルールに適合する通信データに対して行うべき所定の処理アクションを定義したフローエントリが登録されたテーブルである。ここでは、フローエントリに、所定の処理アクションとして通信データの転送方式が定義されているものとする。転送方式の例として、転送先次段のノードに接続された出力リンクの指定等が考えられる。フローテーブル12用のメモリ容量は、それぞれ最大N個のフローエントリを登録できる容量があるものとする。なお、実際には、各フローテーブル12用のメモリ容量は、少なくともN個のフローエントリを登録できる容量があれば良い。転送処理部13は、入力リンク300から通信データを入力し、当該通信データについて、フローテーブル12を検索し、いずれかのフローエントリのマッチ条件に適合Hitした場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400から出力する。ここでは、スイッチ10-1の内部の転送処理部13-1は、入力リンク300-1から通信データを入力し、当該通信データについて、フローテーブル12-1を検索し、いずれかのフローエントリのマッチ条件に適合Hitした場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400-1から出力する。[ハードウェアの例示]スイッチ1010-i、i=1~nの例として、オープンフロースイッチを想定している。オープンフロースイッチの例として、ネットワークスイッチnetworkswitch、マルチレイヤスイッチmulti-layerswitch等が考えられる。マルチレイヤスイッチは、サポートするOSI参照モデルの層毎に、更に細かく分類されている。主な種別としては、ネットワーク層第3層のデータを読むレイヤ3スイッチ、トランスポート層第4層のデータを読むレイヤ4スイッチ、アプリケーション層第7層のデータを読むレイヤ7スイッチアプリケーションスイッチがある。なお、オープンフローネットワークでは、一般的なルータやスイッチングハブ等の中継装置をオープンフロースイッチとして使用することもできる。また、スイッチ1010-i、i=1~nは、物理マシン上に構築された仮想スイッチでも良い。また、スイッチ1010-i、i=1~nの代替例として、ルータrouter、プロキシproxy、ゲートウェイgateway、ファイアウォールfirewall、ロードバランサloadbalancer:負荷分散装置、帯域制御装置packetshaper、セキュリティ監視制御装置SCADA:SupervisoryControlAndDataAcquisition、ゲートキーパーgatekeeper、基地局basestation、アクセスポイントAP:AccessPoint、通信衛星CS:CommunicationSatellite、或いは、複数の通信ポートを有する計算機等も考えられる。制御サーバ20の例として、PCパソコン、アプライアンスappliance、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。また、制御サーバ20は、物理マシン上に構築された仮想マシンVM:VirtualMachineでも良い。スイッチ1010-i、i=1~nの各々、及び制御サーバ20を接続するネットワークの例として、LANLocalAreaNetworkを想定している。他の例として、インターネット、無線LANWirelessLAN、WANWideAreaNetwork、バックボーンBackbone、ケーブルテレビCATV回線、固定電話網、携帯電話網、WiMAXIEEE802.16a、3G3rdGeneration、専用線leaseline、IrDAInfraredDataAssociation、Bluetooth登録商標、シリアル通信回線、データバス等も考えられる。図示しないが、スイッチ1010-i、i=1~nの各々、及び制御サーバ20は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、当該プログラムや各種データを記憶するメモリと、通信用インターフェースI/F:interfaceとによって実現される。上記のプロセッサの例として、CPUCentralProcessingUnit、マイクロプロセッサmicroprocessor、マイクロコントローラー、或いは、専用の機能を有する半導体集積回路IntegratedCircuitIC等が考えられる。上記のメモリの例として、RAMRandomAccessMemory、ROMReadOnlyMemory、EEPROMElectricallyErasableandProgrammableReadOnlyMemoryやフラッシュメモリ等の半導体記憶装置、HDDHardDiskDriveやSSDSolidStateDrive等の補助記憶装置、又は、DVDDigitalVersatileDisk等のリムーバブルディスクや、SDメモリカードSecureDigitalmemorycard等の記憶媒体メディア等が考えられる。或いは、DASDirectAttachedStorage、FC-SANFibreChannel-StorageAreaNetwork、NASNetworkAttachedStorage、IP-SANIP-StorageAreaNetwork等を用いたストレージ装置でも良い。上記の通信用インターフェースの例として、ネットワーク通信に対応した基板マザーボード、I/Oボードやチップ等の半導体集積回路、NICNetworkInterfaceCard等のネットワークアダプタや同様の拡張カード、アンテナ等の通信装置、接続口コネクタ等の通信ポート等が考えられる。但し、実際には、これらの例に限定されない。[既存のオープンフロー技術におけるスイッチシステムの動作]既存のオープンフロー技術におけるスイッチシステムでは、スイッチ10-1とスイッチ10-2とは、スイッチ間リンク200-1により接続されておらず、互いに連携していないことが多い。すなわち、スイッチ10-1とスイッチ10-2とは、完全に独立して稼働している。制御サーバ20は、スイッチ10-1に対して制御リンク100-1及び制御メッセージ処理部11-1を介してフローエントリを登録していく。登録エントリ数がN個に達した際、スイッチ10-1の内部の制御メッセージ処理部11-1は、これ以上エントリ登録できない旨を示すエントリ不可のメッセージを、制御リンク100-1を介して制御サーバ20へ伝える。制御サーバ20は、スイッチ10-1からのエントリ不可のメッセージを受けると、N1番目以降のフローエントリN1を、スイッチ10-1へ登録できなくなる。スイッチ10-1の内部の転送処理部13-1は、入力リンク300-1より入力された通信データについて、フローテーブル12-1内のフローエントリを1番目のフローエントリ1からN番目のフローエントリNまで検索し、いずれにも該当しない場合には、当該通信データを転送できない状態となる。[既存のオープンフロー技術におけるスイッチシステムの動作の詳細]図2を参照して、既存のオープンフロー技術におけるスイッチシステムの動作の詳細について説明する。1ステップS1スイッチ10-1の内部の転送処理部13-1は、入力リンク300-1より入力された通信データを取得する。2ステップS2転送処理部13-1は、通信データについて、フローテーブル12-1内のフローエントリを1番目のフローエントリ1からN番目のフローエントリNまで検索し、いずれかのフローエントリに一致するか確認する。例えば、転送処理部13-1は、通信データが、いずれかのフローエントリのマッチ条件に適合Hitした場合、フローエントリに一致したと判断する。3ステップS3転送処理部13-1は、通信データが、フローテーブル12-1内のいずれかのフローエントリに一致した場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400-1から出力する。4ステップS4反対に、転送処理部13-1は、通信データが、フローテーブル12-1内のいずれのフローエントリにも一致しない場合、フローテーブル12-1へのフローエントリ登録が不可であるか確認する。例えば、転送処理部13-1は、フローテーブル12-1用のメモリ容量を確認し、容量に空き余裕がなければ、フローエントリ登録が不可であると判断する。5ステップS5転送処理部13-1は、フローテーブル12-1へのフローエントリ登録が不可でなければ、当該通信データに対する転送方式を制御サーバ20に問い合わせる。その理由は、通信データが、フローテーブル12-1内のいずれのフローエントリにも一致しない場合、当該通信データが、初めて受信した種類のパケットであるためにフローエントリが未登録の最初のパケットfirstpacketである可能性が高いためである。6ステップS6制御サーバ20は、スイッチ10-1からの問い合わせに対して、当該通信データに対する転送方式があるか確認する。7ステップS7制御サーバ20は、当該通信データに対する転送方式がある場合、当該通信データのマッチ条件と転送方式とを定義したフローエントリの登録要求を送信する。スイッチ10-1の内部の制御メッセージ処理部11-1は、制御サーバ20からフローエントリの登録要求を受信すると、フローテーブル12-1に当該フローエントリを登録する。これにより、転送処理部13-1は、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400-1から出力する。8ステップS8転送処理部13-1は、フローテーブル12-1へのフローエントリ登録が不可の場合や、制御サーバ20に問い合わせた結果、当該通信データに対する転送方式がない場合、当該通信データに対して何もしない、或いはドロップ廃棄する。すなわち、転送処理部13-1は、当該通信データを転送できない。[本発明の第1実施形態スイッチシステムの動作]本発明の第1実施形態スイッチシステムでは、スイッチ10-1とスイッチ10-2とは、スイッチ間リンク200-1により接続されており、互いに連携している。制御サーバ20は、スイッチ10-1に対して、制御リンク100-1及び制御メッセージ処理部11-1を介してフローエントリを登録していく。登録エントリ数がN個に達した際、スイッチ10-1の内部の制御メッセージ処理部11-1は、これ以上エントリ登録できない旨を示すエントリ不可のメッセージを、制御リンク100-1を介して制御サーバ20へ伝える。制御サーバ20は、スイッチ10-1からのエントリ不可のメッセージを受けると、N1番目以降のフローエントリN1を、スイッチ10-1と同じスイッチグループに属するスイッチ10-2に対して制御リンク100-2を介して登録していく。その後、スイッチ10-1の内部の転送処理部13-1は、入力リンク300-1より入力された通信データについて、フローテーブル30内のフローエントリを1番目のフローエントリ1からN番目のフローエントリNまで検索し、いずれにも該当しない場合には、当該通信データを、スイッチ間リンク200-1を経由してスイッチ10-2へ転送する。このとき、転送処理部13-1は、当該通信データについて制御サーバ20に問い合わせ、制御サーバ20からの指示を受けて、当該通信データを、スイッチ間リンク200-1を経由してスイッチ10-2へ転送するようにしても良い。或いは、転送処理部13-1は、通信データがいずれにも該当しない場合には、当該通信データを、スイッチ間リンク200-1を経由してスイッチ10-2へ転送する旨の転送方式を定義したスイッチ間転送用エントリを、事前にフローテーブル12-1に登録しておくようにしても良い。なお、このスイッチ間転送用エントリについては、制御サーバ20が、スイッチ10-1の起動時等に、自動的に制御リンク100-1及び制御メッセージ処理部11-1を介してフローテーブル12-1に登録するようにしても良い。スイッチ10-2は、通信データについて、フローテーブル12-2に登録されているフローエントリN1から検索を継続し、いずれかのフローエントリのマッチ条件に適合Hitした場合は、そのフローエントリに定義された所定の処理アクションの内容に従って、通信データの転送を行う。[本実施形態におけるスイッチシステムの動作の詳細]図3A、図3Bを参照して、本発明の第1実施形態におけるスイッチシステムの動作の詳細について説明する。1ステップS101スイッチ10-1の内部の転送処理部13-1は、入力リンク300-1より入力された通信データを取得する。2ステップS102転送処理部13-1は、通信データについて、フローテーブル12-1内のフローエントリを1番目のフローエントリ1からN番目のフローエントリNまで検索し、いずれかのフローエントリに一致するか確認する。例えば、転送処理部13-1は、通信データが、いずれかのフローエントリのマッチ条件に適合Hitした場合、フローエントリに一致したと判断する。3ステップS103転送処理部13-1は、通信データが、フローテーブル12-1内のいずれかのフローエントリに一致した場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400-1から出力する。4ステップS104反対に、転送処理部13-1は、通信データが、フローテーブル12-1内のいずれのフローエントリにも一致しない場合、スイッチ間リンク200-1を介して、当該通信データをスイッチ10-2に転送する。すなわち、転送処理部13-1は、制御サーバ20の代わりに、又は制御サーバ20よりも優先的に、当該通信データを、同一スイッチグループに属するスイッチ10-2に転送するようにする。なお、実際には、転送処理部13-1は、当該通信データを保持したまま、スイッチ10-2に対して、当該通信データに一致するフローエントリを問い合わせるようにしても良い。5ステップS105スイッチ10-2の内部の転送処理部13-2は、スイッチ10-1から転送された通信データについて、フローテーブル12-2内のフローエントリをN1番目のフローエントリN1から2N番目のフローエントリ2Nまで検索し、いずれかのフローエントリに一致するか確認する。例えば、転送処理部13-2は、通信データが、いずれかのフローエントリのマッチ条件に適合Hitした場合、フローエントリに一致したと判断する。6ステップS106転送処理部13-2は、通信データが、フローテーブル12-2内のいずれかのフローエントリに一致した場合、当該フローエントリに定義された転送方式を参照し、当該通信データを転送元のスイッチ10-1から出力する必要があるか確認する。すなわち、転送処理部13-2は、当該フローエントリに定義された転送方式において、転送元のスイッチ10-1から出力する旨が定義されているか確認する。例えば、スイッチ10-1の配下のノードに転送する場合や、送信元アドレスをスイッチ10-1のアドレスにする必要がある場合等が考えられる。7ステップS107転送処理部13-2は、通信データを転送元のスイッチ10-1から出力する必要がある場合、当該フローエントリに定義された転送方式に従って、スイッチ間リンク200-1を介して、当該通信データを転送元のスイッチ10-1に転送する。スイッチ10-1の内部の転送処理部13-1は、当該通信データを出力リンク400-1から出力する。なお、実際には、転送処理部13-1は、当該通信データを保持したまま、スイッチ10-2から、当該通信データに一致するフローエントリに関する応答を受信し、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400-1から出力するようにしても良い。8ステップS108反対に、転送処理部13-2は、通信データを転送元のスイッチ10-1から出力する必要がない場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400-2から出力する。9ステップS109また、転送処理部13-2は、通信データが、フローテーブル12-2内のいずれのフローエントリにも一致しない場合、フローテーブル12-2へのフローエントリ登録が不可であるか確認する。例えば、転送処理部13-2は、フローテーブル12-2用のメモリ容量を確認し、容量に空き余裕がなければ、フローエントリ登録が不可であると判断する。或いは、転送処理部13-2は、制御サーバ20へのエントリ不可のメッセージの送信記録ログの有無により、フローテーブル12-2へのフローエントリ登録が不可であるか確認するようにしても良い。このとき、転送処理部13-2は、スイッチ10-1に対しても、フローテーブル12-1へのフローエントリ登録が不可であるか問い合わせて、フローテーブル12-1へのフローエントリ登録が不可であるか確認するようにしても良い。10ステップS110転送処理部13-2は、フローテーブル12-2へのフローエントリ登録が不可でなければ、当該通信データに対する転送方式を制御サーバ20に問い合わせる。その理由は、通信データが、フローテーブル12-2内のいずれのフローエントリにも一致しない場合、当該通信データが、初めて受信した種類のパケットであるためにフローエントリが未登録の最初のパケットfirstpacketである可能性が高いためである。11ステップS111制御サーバ20は、スイッチ10-2からの問い合わせに対して、当該通信データに対する転送方式があるか確認する。12ステップS112制御サーバ20は、当該通信データに対する転送方式がある場合、該当するスイッチ10ここでは、スイッチ10-1又はスイッチ10-2のいずれかに対して、当該通信データのマッチ条件と転送方式とを定義したフローエントリの登録要求を送信する。なお、制御サーバ20は、スイッチ10-1からエントリ不可のメッセージを受信していれば、当然にスイッチ10-2に対して、当該通信データのマッチ条件と転送方式とを定義したフローエントリの登録要求を送信することになる。該当するスイッチ10の内部の制御メッセージ処理部11は、制御サーバ20からフローエントリの登録要求を受信すると、フローテーブル12に当該フローエントリを登録する。これにより、該当するスイッチ10の内部の転送処理部13は、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400から出力する。13ステップS113転送処理部13-2は、フローテーブル12-2へのフローエントリ登録が不可の場合や、制御サーバ20に問い合わせた結果、当該通信データに対する転送方式がない場合、当該通信データに対して何もしない、或いはドロップ廃棄する。[本実施形態の効果]既存のオープンフロー技術におけるスイッチシステムと比較して、以下のような効果が得られる。本実施形態では、スイッチに内蔵されるフローテーブル用のメモリ容量を超える分を他のスイッチのフローテーブル用メモリを使用することとなり、1台のスイッチのフローテーブルには収まりきらないエントリ数の登録が必要となった場合でも複数のスイッチを用いてフローエントリの登録が可能となる。なお、スイッチグループを形成するスイッチは2台でなく、3台以上を組合せて同等の方法でフローテーブルの登録を行うことも可能である。<第2実施形態>以下に、本発明の第2実施形態について説明する。本実施形態では、3台以上のスイッチを組み合せてスイッチグループを形成する。[スイッチシステムの構成]図4に示すように、本発明の第2実施形態におけるスイッチシステムでは、スイッチ1010-i、i=1~n:nはスイッチの数と、制御サーバ20を含む。スイッチ1010-i、i=1~n及び制御サーバ20については、基本的に第1実施形態と同様である。スイッチ1010-i、i=1~nの各々は、自身が保持するフローテーブル内のフローエントリの情報に従って、通信データを転送する。各スイッチ1010-i、i=1~nは、オープンフロー技術に従い、同一共通の制御サーバ20による経路制御を受けており、スイッチグループを形成する。また、各スイッチ1010-i、i=1~nは、制御リンク100100-i、i=1~nと、スイッチ間リンク200200-i、i=1~m:mはn-1以上と、入力リンク300300-i、i=1~nと、出力リンク400400-i、i=1~nとに接続されている。すなわち、各スイッチ1010-i、i=1~nは、各リンクに接続するための端子ポートを備える。制御リンク100は、スイッチ10と制御サーバ20とを接続する通信回線である。スイッチ間リンク200は、同じスイッチグループに属するスイッチ10同士を接続する通信回線である。入力リンク300は、スイッチ10に通信データを入力するための通信回線である。出力リンク400は、スイッチ10から通信データを出力するための通信回線である。制御リンク100、入力リンク300、及び出力リンク400は、スイッチ10毎に存在している。スイッチ間リンク200は、スイッチ10とスイッチ間リンクにより直接接続しているスイッチの数だけ存在している。制御サーバ20は、各スイッチ1010-i、i=1~nに対して、通信データのマッチ条件ルールと所定の処理アクションとを定義したフローエントリの登録要求を送信する。フローエントリの登録の内容には、フローエントリの新規登録、変更、削除を含むものとする。制御サーバ20は、オープンフロー技術において、コントローラーとも呼ばれる。各スイッチ1010-i、i=1~nは、制御メッセージ処理部1111-i、i=1~nと、フローテーブル1212-i、i=1~nと、転送処理部1313-i、i=1~nを備える。制御メッセージ処理部11は、制御サーバ20からフローエントリの登録要求を受信すると、フローテーブル12に当該フローエントリを登録する。制御サーバ20と制御メッセージ処理部11とは、制御リンク100を介して接続されている。フローテーブル12は、所定のマッチ条件ルールに適合する通信データに対して行うべき所定の処理アクションを定義したフローエントリが登録されたテーブルである。転送処理部13は、入力リンク300から通信データを入力し、当該通信データについて、フローテーブル12を検索し、いずれかのフローエントリのマッチ条件に適合Hitした場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400から出力する。各スイッチ1010-i、i=1~nは、互いにスイッチ間リンク200により接続されている。例えば、各スイッチ1010-i、i=1~nの内部の転送処理部1313-i、i=1~nが、互いにスイッチ間リンク200により接続されている。各スイッチ1010-i、i=1~nは、スイッチ間リンク200を介して、複数のスイッチ10と接続されていても良い。例えば、スイッチ10-1は、スイッチ10-2及びスイッチ10-3の両方と、それぞれ個別のスイッチ間リンク200により接続されていても良い。ここでは、スイッチ10-1は、実際に通信データを入力した最初のスイッチである。スイッチ10-2以降のスイッチは、スイッチ10-1と同様の機能を有するスイッチである。便宜上、スイッチ10-2以降のスイッチを、代替スイッチと呼ぶ。[本実施形態におけるスイッチシステムの動作の詳細]図5A、図5Bを参照して、本発明の第2実施形態におけるスイッチシステムの動作の詳細について説明する。1ステップS201スイッチ10-1の内部の転送処理部13-1は、入力リンク300-1より入力された通信データを取得する。2ステップS202転送処理部13-1は、通信データについて、フローテーブル12-1内のフローエントリを1番目のフローエントリ1からN番目のフローエントリNまで検索し、いずれかのフローエントリに一致するか確認する。例えば、転送処理部13-1は、通信データが、いずれかのフローエントリのマッチ条件に適合Hitした場合、フローエントリに一致したと判断する。3ステップS203転送処理部13-1は、通信データが、フローテーブル12-1内のいずれかのフローエントリに一致した場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400-1から出力する。4ステップS204反対に、転送処理部13-1は、通信データが、フローテーブル12-1内のいずれのフローエントリにも一致しない場合、スイッチ間リンク200により接続されている代替のスイッチ10-x2≦x≦nが存在するか確認する。5ステップS205転送処理部13-1は、スイッチ10-xが存在する場合、スイッチ間リンク200を介して、当該通信データをスイッチ10-xに転送する。すなわち、転送処理部13-1は、制御サーバ20の代わりに、又は制御サーバ20よりも優先的に、当該通信データを、同一スイッチグループに属するスイッチ10-xに転送するようにする。このとき、転送処理部13-1は、スイッチ10-1の内部のフローテーブル12-1が検索済みであることを示すために、スイッチ10-1の識別情報を、当該通信データと共に送信するようにしても良い。なお、実際には、転送処理部13-1は、当該通信データを保持したまま、スイッチ10-xに対して、当該通信データに一致するフローエントリを問い合わせるようにしても良い。6ステップS206スイッチ10-xの内部の転送処理部13-xは、スイッチ10-1から転送された通信データについて、フローテーブル12-x内のフローエントリをx-1N1番目のフローエントリx-1N1からxN番目のフローエントリxNまで検索し、いずれかのフローエントリに一致するか確認する。例えば、転送処理部13-xは、通信データが、いずれかのフローエントリのマッチ条件に適合Hitした場合、フローエントリに一致したと判断する。反対に、転送処理部13-xは、通信データが、フローテーブル12-x内のいずれのフローエントリにも一致しない場合、スイッチ間リンク200により接続されている代替スイッチ10-x1が存在するか確認する。すなわち、転送処理部13-xは、通信データが、いずれかのフローエントリのマッチ条件に適合Hitするか、同一スイッチグループに属する新規のスイッチ10がなくなるまで最後のスイッチ10-nに到達するまで、同様の処理を繰り返す。7ステップS207転送処理部13-xは、通信データが、フローテーブル12-x内のいずれかのフローエントリに一致した場合、当該フローエントリに定義された転送方式を参照し、当該通信データを転送元のスイッチ10-y1≦y<xから出力する必要があるか確認する。転送元のスイッチ10-yは、スイッチ10-1でも良い。すなわち、転送処理部13-xは、当該フローエントリに定義された転送方式において、転送元のスイッチ10-yから出力する旨が定義されているか確認する。例えば、スイッチ10-yの配下のノードに転送する場合や、送信元アドレスをスイッチ10-yのアドレスにする必要がある場合等が考えられる。8ステップS208転送処理部13-xは、通信データを転送元のスイッチ10-yから出力する必要がある場合、当該フローエントリに定義された転送方式に従って、スイッチ間リンク200を介して、当該通信データを転送元のスイッチ10-yに転送する。スイッチ10-yの内部の転送処理部13-yは、当該通信データを出力リンク400-yから出力する。なお、実際には、転送処理部13-yは、当該通信データを保持したまま、スイッチ10-xから、当該通信データに一致するフローエントリに関する応答を受信し、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400-yから出力するようにしても良い。9ステップS209反対に、転送処理部13-xは、通信データを転送元のスイッチ10-yから出力する必要がない場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400-xから出力する。10ステップS210通信データが、いずれのフローエントリのマッチ条件にも適合Hitせず、同一スイッチグループに属する最後のスイッチ10-nに到達した場合、スイッチ10-nの内部の転送処理部13-nは、フローテーブル12-nへのフローエントリ登録が不可であるか確認する。例えば、転送処理部13-nは、フローテーブル12-n用のメモリ容量を確認し、容量に空き余裕がなければ、フローエントリ登録が不可であると判断する。或いは、転送処理部13-nは、制御サーバ20へのエントリ不可のメッセージの送信記録ログの有無により、フローテーブル12-nへのフローエントリ登録が不可であるか確認するようにしても良い。このとき、転送処理部13-nは、スイッチ10-n以外の全てのスイッチ10に対しても、そのスイッチ10の内部のフローテーブル12へのフローエントリ登録が不可であるか問い合わせて、そのフローテーブル12へのフローエントリ登録が不可であるか確認するようにしても良い。11ステップS211転送処理部13-nは、フローテーブル12-nへのフローエントリ登録が不可でなければ、当該通信データに対する転送方式を制御サーバ20に問い合わせる。その理由は、通信データが、フローテーブル12-n内のいずれのフローエントリにも一致しない場合、当該通信データが、初めて受信した種類のパケットであるためにフローエントリが未登録の最初のパケットfirstpacketである可能性が高いためである。12ステップS212制御サーバ20は、スイッチ10-nからの問い合わせに対して、当該通信データに対する転送方式があるか確認する。13ステップS213制御サーバ20は、当該通信データに対する転送方式がある場合、該当するスイッチ10ここでは、スイッチ10-1~スイッチ10-nのいずれかに対して、当該通信データのマッチ条件と転送方式とを定義したフローエントリの登録要求を送信する。なお、制御サーバ20は、スイッチ10-n以外の全てのスイッチ10からエントリ不可のメッセージを受信していれば、当然にスイッチ10-nに対して、当該通信データのマッチ条件と転送方式とを定義したフローエントリの登録要求を送信することになる。該当するスイッチ10の内部の制御メッセージ処理部11は、制御サーバ20からフローエントリの登録要求を受信すると、フローテーブル12に当該フローエントリを登録する。これにより、該当するスイッチ10の内部の転送処理部13は、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400から出力する。14ステップS214転送処理部13-nは、フローテーブル12-nへのフローエントリ登録が不可の場合や、制御サーバ20に問い合わせた結果、当該通信データに対する転送方式がない場合、当該通信データに対して何もしない、或いはドロップ廃棄する。<本発明の特徴>以上のように、本発明は、スイッチシステムにおける通信データの転送装置、及び転送方式に関する。本発明では、制御サーバからスイッチ内のフローテーブルにフローエントリを登録する際に、スイッチからフローテーブルに空きがないことを示すエラーメッセージが戻ってきた場合、制御サーバはスイッチグループ内の別のスイッチに該当フローエントリを登録する。すなわち、本発明は、制御サーバ及びスイッチによって構成されるスイッチシステムにおいて、制御サーバからスイッチの内部のフローテーブルに通信データの転送方式を定義するフローエントリを登録する際、そのスイッチのフローテーブルにフローエントリを登録するための空き容量がないことが判明した場合、制御サーバが他のスイッチのフローテーブルへフローエントリを登録することを特徴とする。また、本発明では、複数のスイッチを1つのスイッチグループとして組合せ、1台のスイッチのフローテーブルに登録しきれないフローエントリ数が存在する場合、スイッチグループ内の他のスイッチの内部のフローテーブルにフローエントリを登録しておき、通信データの転送方式があるスイッチでフローエントリを検索した結果で決定できなかった場合はスイッチグループ内の他のスイッチに通信データを転送することで、フローエントリの検索を継続する運用が可能となる。すなわち、本発明では、通信データをスイッチが転送する際、そのスイッチのフローテーブル内の全てのフローエントリを検索した後、転送方式が決定しなかった場合は、その通信データをスイッチグループ内の別のスイッチへ転送し、そのスイッチで再びフローテーブル内のフローエントリの検索を続ける。これにより、1つの通信データに対して、複数のスイッチでフローエントリの検索を行えるため、1つの通信データに対して検索をかけるフローエントリ数の上限を増やすことが可能となる。<付記>上記の実施形態の一部又は全部は、以下の付記のように記載することも可能である。但し、実際には、以下の記載例に限定されない。付記1入力リンクより通信データを入力した際に、前記フローテーブルに登録されたフローエントリのいずれかに前記通信データが適合するか確認し、いずれかのフローエントリに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送し、いずれのフローエントリにも前記通信データが適合しない場合、スイッチ間リンクを介して接続されたスイッチに前記通信データを転送する第1のスイッチと、前記第1のスイッチと同じスイッチグループに属し、前記第1のスイッチからスイッチ間リンクを介して前記通信データを受信した際に、前記フローテーブルに登録されたフローエントリのいずれかに前記通信データが適合するか確認し、いずれかのフローエントリに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送する第2のスイッチと、前記第1のスイッチのフローテーブルにフローエントリを登録し、前記第1のスイッチのフローテーブルにフローエントリすることができなくなった場合、前記第2のスイッチのフローテーブルに、前記第1のスイッチのフローテーブルに登録すべきフローエントリを登録する制御サーバとを含むスイッチシステム。付記2付記1に記載のスイッチシステムであって、前記第2のスイッチは、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行い、前記制御サーバは、前記通信データの転送方式の問い合わせに応じて、前記スイッチグループに属するいずれかのスイッチのフローテーブルに、前記通信データの転送方式を定義したフローエントリを登録するスイッチシステム。付記3付記1に記載のスイッチシステムであって、前記第1のスイッチ及び前記第2のスイッチと同じスイッチグループに属し、前記第2のスイッチからスイッチ間リンクを介して前記通信データを受信した際に、内部のフローテーブルに登録されたフローエントリのいずれかに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送する第3のスイッチを更に含み、前記第2のスイッチは、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、スイッチ間リンクを介して前記第3のスイッチに前記通信データを転送し、前記第3のスイッチは、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行い、前記制御サーバは、前記通信データの転送方式の問い合わせに応じて、前記スイッチグループに属するいずれかのスイッチのフローテーブルに、前記通信データの転送方式を定義したフローエントリを登録するスイッチシステム。付記4付記1乃至3のいずれかに記載のスイッチシステムであって、前記スイッチグループに属するスイッチは、所定のマッチ条件に適合する通信データの転送方式を定義したフローエントリが登録されるフローテーブルと、入力リンクより通信データを入力した際に、前記フローテーブルに登録されたフローエントリのいずれかに前記通信データが適合するか確認し、いずれかのフローエントリに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送し、いずれのフローエントリにも前記通信データが適合しない場合、スイッチ間リンクを介して、前記スイッチグループに属するフローテーブル未検索のスイッチに前記通信データを転送する転送処理部と、前記スイッチグループに属するフローテーブル未検索のスイッチが存在しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行い、前記制御サーバからの制御により、前記フローテーブルに、前記通信データの転送方式を定義したフローエントリを登録する制御メッセージ処理部とを具備するスイッチシステム。なお、上記において、第2のスイッチ及び第3のスイッチは、それぞれ複数でも良い。付記5スイッチグループを形成し、入力リンクより通信データを入力した際に、前記フローテーブルに登録されたフローエントリのいずれかに前記通信データが適合するか確認し、いずれかのフローエントリに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送し、いずれのフローエントリにも前記通信データが適合しない場合、スイッチ間リンクを介して接続された代替スイッチがあれば、前記代替スイッチに前記通信データを転送し、スイッチ間リンクを介して接続された代替スイッチがなければ、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行う複数のスイッチと、前記複数のスイッチのいずれかのフローテーブルにフローエントリを登録し、当該スイッチのフローテーブルにフローエントリすることができなくなった場合、前記スイッチグループを形成する他のスイッチのフローテーブルに、前記スイッチのフローテーブルに登録すべきフローエントリを登録する制御サーバとを含むスイッチシステム。以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。なお、本出願は、日本出願番号2010-232597に基づく優先権を主張するものであり、日本出願番号2010-232597における開示内容は引用により本出願に組み込まれる。