(57)【特許請求の範囲】
【請求項１】
下位レイヤのヘッダ情報を含むマッチ条件と、処理内容とを対応付けた制御情報を保持し、受信パケットに適合するマッチ条件に対応する処理内容に基づき受信パケットを処理する下位レイヤスイッチを含んだコアネットワークと、
前記コアネットワークの端部に配置され、パケットの下位レイヤのヘッダの所定領域を、上位レイヤの通信内容に対応付けられた内容に書き換える第１の上位レイヤスイッチと、
前記第１の上位レイヤスイッチに対し前記下位レイヤのヘッダ領域の書き換えを指示するとともに、前記下位レイヤスイッチに前記書き換え後のヘッダ情報をマッチ条件に含む制御情報を設定する制御装置と、
前記第１の上位レイヤスイッチとは異なる前記コアネットワークの端部に配置され、前記第１の上位レイヤスイッチにより書き換えられた前記下位レイヤのヘッダ領域を、送信元を示す内容に書き換える第２の上位レイヤスイッチと、
を含む通信システム。
【請求項２】
前記第２の上位レイヤスイッチは、前記制御装置からの指示に基づいて逆方向から受信したパケットに対し、前記パケットの下位レイヤのヘッダの所定領域を、前記上位レイヤの通信内容に対応付けられた内容に書き換える動作を行い、
前記第１の上位レイヤスイッチは、前記第２の上位レイヤスイッチにより書き換えられた前記下位レイヤのヘッダ領域を復元する請求項１の通信システム。
【請求項３】
前記第１の上位レイヤスイッチは、外部ノード間で特定の通信の発生を検出すると、前記下位レイヤスイッチに代理接続し、
前記制御装置は、前記下位レイヤスイッチに、前記代理接続した前記第１の上位レイヤスイッチからのパケットを識別するマッチ条件を持つ制御情報を設定する請求項１又は２の通信システム。
【請求項４】
前記第１の上位レイヤスイッチまたは前記第２の上位レイヤスイッチは、前記制御装置から設定されたヘッダ書き換えテーブルに基づいて、下位レイヤのヘッダの書き換えを行う請求項１から３いずれか一の通信システム。
【請求項５】
前記第１、第２の上位レイヤスイッチは、アプリケーションを識別するレイヤ７スイッチであり、
前記制御装置は、アプリケーション種別に応じた経路制御を行う請求項１から４いずれか一の通信システム。
【請求項６】
前記第１、第２の上位レイヤスイッチは、アプリケーションを識別するレイヤ７スイッチであり、
前記制御装置は、前記第１の上位レイヤスイッチまたは前記第２の上位レイヤスイッチに対して、受信パケットのレイヤ４ポート番号を、アプリケーション種別に対応付けた番号範囲に変換するよう指示する請求項１から５いずれか一の通信システム。
【請求項７】
前記下位レイヤスイッチは、オープンフロースイッチであり、
前記制御装置は、前記制御情報として、レイヤ４ポート番号範囲をマッチ条件に含むフローエントリを設定するオープンフローコントローラである請求項１から６いずれか一の通信システム。
【請求項８】
下位レイヤのヘッダ情報を含むマッチ条件と、処理内容とを対応付けた制御情報を保持し、受信パケットに適合するマッチ条件に対応する処理内容に基づき受信パケットを処理する下位レイヤスイッチを含んだコアネットワークと、
前記コアネットワークの端部に配置され、パケットの下位レイヤのヘッダの所定領域を、上位レイヤの通信内容に対応付けられた内容に書き換える第１の上位レイヤスイッチと、前記第１の上位レイヤスイッチとは異なる前記コアネットワークの端部に配置された第２の上位レイヤスイッチと、に接続され、
前記第１の上位レイヤスイッチに対し前記下位レイヤのヘッダ領域の書き換えを指示するとともに、前記下位レイヤスイッチに前記書き換え後のヘッダ情報をマッチ条件に含む制御情報を設定し、
前記第２の上位レイヤスイッチに対し、前記第１の上位レイヤスイッチにより書き換えられた前記下位レイヤのヘッダ領域の、送信元を示す内容への書き換えを指示する制御装置。
【請求項９】
下位レイヤのヘッダ情報を含むマッチ条件と、処理内容とを対応付けた制御情報を保持し、受信パケットに適合するマッチ条件に対応する処理内容に基づき受信パケットを処理する下位レイヤスイッチを含んだコアネットワークと、
前記コアネットワークの端部に配置され、パケットの下位レイヤのヘッダの所定領域を、上位レイヤの通信内容に対応付けられた内容に書き換える第１の上位レイヤスイッチと、前記第１の上位レイヤスイッチとは異なる前記コアネットワークの端部に配置された第２の上位レイヤスイッチと、を含むネットワークにおいて、
前記第１の上位レイヤスイッチに対し前記下位レイヤのヘッダ領域の書き換えを指示するステップと、
前記下位レイヤスイッチに、前記書き換え後のヘッダ情報をマッチ条件に含む制御情報を設定するステップと、
前記第２の上位レイヤスイッチに対し、前記第１の上位レイヤスイッチにより書き換えられた前記下位レイヤのヘッダ領域の、送信元を示す内容への書き換えを指示するステップと、
を含むスイッチ制御方法。
【請求項１０】
下位レイヤのヘッダ情報を含むマッチ条件と、処理内容とを対応付けた制御情報を保持し、受信パケットに適合するマッチ条件に対応する処理内容に基づき受信パケットを処理する下位レイヤスイッチを含んだコアネットワークと、
前記コアネットワークの端部に配置され、パケットの下位レイヤのヘッダの所定領域を、上位レイヤの通信内容に対応付けられた内容に書き換える第１の上位レイヤスイッチと、前記第１の上位レイヤスイッチとは異なる前記コアネットワークの端部に配置された第２の上位レイヤスイッチと、を含むネットワークに接続されたコンピュータに、
前記第１の上位レイヤスイッチに対し前記下位レイヤのヘッダ領域の書き換えを指示する処理と、
前記下位レイヤスイッチに、前記書き換え後のヘッダ情報をマッチ条件に含む制御情報を設定する処理と、
前記第２の上位レイヤスイッチに対し、前記第１の上位レイヤスイッチにより書き換えられた前記下位レイヤのヘッダ領域を、送信元を示す内容への書き換えを指示する処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１２−０７４６５４号（２０１２年３月２８日出願）に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、通信システム、上位レイヤスイッチ、制御装置、スイッチ制御方法及びプログラムに関し、特に、制御装置から設定された制御情報に従って動作するスイッチを含む通信システム、上位レイヤスイッチ、制御装置、スイッチ制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている（特許文献１、非特許文献１、２参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。中継装置として機能するオープンフロースイッチは、制御装置と位置付けられるオープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチングルール（ヘッダフィールド）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、マッチングルール（ヘッダフィールド）に適合するパケットに適用する処理内容を定義したインストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）と、の組が定義される（非特許文献２の「４．１  Ｆｌｏｗ  Ｔａｂｌｅ」以下参照）。【０００３】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチングルールを持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報（カウンタ）を更新するとともに、受信パケットに対して、当該エントリのアクションフィールドに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。一方、前記検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対して受信パケットを転送し、受信パケットの送信元・送信先に基づいたパケットの経路の決定を依頼し、これを実現するフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを処理規則として用いてパケット転送を行っている。【０００４】
また、特許文献２には、ネットワークの入り口でコンテンツを解析してパケットにラベルを付与し、以降はラベルベースで経路を選択する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００８／０９５０１０号
【特許文献２】特開２００６−２０３９０４号公報
【非特許文献】
【０００６】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年２月１４日検索］、インターネット〈URL: http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年２月１４日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以下の分析は、本発明によって与えられたものである。上記非特許文献１、２のオープンフローでは、イーサネット（登録商標）、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）／ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークにおけるＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス、ＩＰアドレス・ポート番号といったレイヤ４（以下、「Ｌ４」と記す。）以下のレイヤ情報を元にフローを制御することを行っている。なお、本明細書では、Ｌ４以下を「下位レイヤ」と呼び、Ｌ５以上を「上位レイヤ」と呼ぶ。また、オープンフロースイッチに代表されるフロー制御時にＬ４以下の情報を参照して動作するスイッチを「下位レイヤスイッチ」と呼び、「上位レイヤ」を参照して動作するスイッチを「上位レイヤスイッチ」と呼ぶ。【０００８】
しかしながら、同一のＩＰアドレス・ポート番号の上で様々なアプリケーションが動作するシステムでは、Ｌ４以下のフロー制御では、上位レイヤの情報、例えば、アプリケーションの種類に応じたフロー制御ができないという問題点がある（非特許文献２のオープンフロープロトコル参照）。【０００９】
他方、ファイアウォール、プロキシサーバなどのアプリケーションを認識し、パケットヘッダを書き換えたり、代理応答する機器が知られているが、これらの機器は、ネットワークの経路を制御することはできない。【００１０】
また、特許文献２の方法も、ＴＣＰ／ＩＰ以外のパケットフォーマットを導入することになるため、ネットワークを構成する機器の種類が制限されることになる。【００１１】
本発明は、下位レイヤスイッチに、上位レイヤの情報を加味したきめ細かな転送制御の実現に貢献できる通信システム、上位レイヤスイッチ、制御装置、スイッチ制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
第１の視点によれば、下位レイヤのヘッダ情報を含むマッチ条件と、処理内容とを対応付けた制御情報を保持し、受信パケットに適合するマッチ条件に対応する処理内容に基づき受信パケットを処理する下位レイヤスイッチを含んだコアネットワークと、前記コアネットワークの端部に配置され、パケットの下位レイヤのヘッダの所定領域を、上位レイヤの通信内容に対応付けられた内容に書き換える第１の上位レイヤスイッチと、前記第１の上位レイヤスイッチに対し前記下位レイヤのヘッダ領域の書き換えを指示するとともに、前記下位レイヤスイッチに前記書き換え後のヘッダ情報をマッチ条件に含む制御情報を設定する制御装置と、前記第１の上位レイヤスイッチとは異なる前記コアネットワークの端部に配置され、前記第１の上位レイヤスイッチにより書き換えられた前記下位レイヤのヘッダ領域を、送信元を示す内容に書き換える第２の上位レイヤスイッチと、を含む通信システムが提供される。
【００１３】
第２の視点によれば、下位レイヤのヘッダ情報を含むマッチ条件と、処理内容とを対応付けた制御情報を保持し、受信パケットに適合するマッチ条件を持つ制御情報を用いて受信パケットを処理する下位レイヤスイッチを含んだコアネットワークの端部に配置され、所定の制御装置からの指示に基づいて、上位レイヤのヘッダ情報に基づいて、パケットの下位レイヤのヘッダの所定領域を、上位レイヤの通信内容に対応付けられた内容に書き換える上位レイヤスイッチが提供される。【００１４】
第３の視点によれば、下位レイヤのヘッダ情報を含むマッチ条件と、処理内容とを対応付けた制御情報を保持し、受信パケットに適合するマッチ条件に対応する処理内容に基づき受信パケットを処理する下位レイヤスイッチを含んだコアネットワークと、前記コアネットワークの端部に配置され、パケットの下位レイヤのヘッダの所定領域を、上位レイヤの通信内容に対応付けられた内容に書き換える第１の上位レイヤスイッチと、前記第１の上位レイヤスイッチとは異なる前記コアネットワークの端部に配置された第２の上位レイヤスイッチと、に接続され、前記第１の上位レイヤスイッチに対し前記下位レイヤのヘッダ領域の書き換えを指示するとともに、前記下位レイヤスイッチに前記書き換え後のヘッダ情報をマッチ条件に含む制御情報を設定し、前記第２の上位レイヤスイッチに対し、前記第１の上位レイヤスイッチにより書き換えられた前記下位レイヤのヘッダ領域の、送信元を示す内容への書き換えを指示する制御装置が提供される。
【００１５】
第４の視点によれば、下位レイヤのヘッダ情報を含むマッチ条件と、処理内容とを対応付けた制御情報を保持し、受信パケットに適合するマッチ条件に対応する処理内容に基づき受信パケットを処理する下位レイヤスイッチを含んだコアネットワークと、前記コアネットワークの端部に配置され、パケットの下位レイヤのヘッダの所定領域を、上位レイヤの通信内容に対応付けられた内容に書き換える第１の上位レイヤスイッチと、前記第１の上位レイヤスイッチとは異なる前記コアネットワークの端部に配置された第２の上位レイヤスイッチと、を含むネットワークにおいて、前記第１の上位レイヤスイッチに対し前記下位レイヤのヘッダ領域の書き換えを指示するステップと、前記下位レイヤスイッチに、前記書き換え後のヘッダ情報をマッチ条件に含む制御情報を設定するステップと、前記第２の上位レイヤスイッチに対し、前記第１の上位レイヤスイッチにより書き換えられた前記下位レイヤのヘッダ領域の、送信元を示す内容への書き換えを指示するステップと、を含むスイッチ制御方法が提供される。本方法は、上記した上位レイヤスイッチ及び下位レイヤスイッチを制御する装置という、特定の機械に結びつけられている。
【００１６】
第５の視点によれば、下位レイヤのヘッダ情報を含むマッチ条件と、処理内容とを対応付けた制御情報を保持し、受信パケットに適合するマッチ条件に対応する処理内容に基づき受信パケットを処理する下位レイヤスイッチを含んだコアネットワークと、前記コアネットワークの端部に配置され、パケットの下位レイヤのヘッダの所定領域を、上位レイヤの通信内容に対応付けられた内容に書き換える第１の上位レイヤスイッチと、前記第１の上位レイヤスイッチとは異なる前記コアネットワークの端部に配置された第２の上位レイヤスイッチと、を含むネットワークに接続されたコンピュータに、前記第１の上位レイヤスイッチに対し前記下位レイヤのヘッダ領域の書き換えを指示する処理と、前記下位レイヤスイッチに、前記書き換え後のヘッダ情報をマッチ条件に含む制御情報を設定する処理と、前記第２の上位レイヤスイッチに対し、前記第１の上位レイヤスイッチにより書き換えられた前記下位レイヤのヘッダ領域を、送信元を示す内容への書き換えを指示する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な（非トランジエントな）記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１７】
本発明によれば、下位レイヤスイッチによる、上位レイヤの情報を加味したきめ細かな転送制御の実現に貢献することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態の構成を示す図である。
【図２】本発明の第１の実施形態の通信システムの構成を示す図である。
【図３】本発明の第１の実施形態のコントローラが決定した経路の例である。
【図４】本発明の第１の実施形態のコントローラが保持する経路管理テーブルの例である。
【図５】本発明の第１の実施形態のＬ７ＳＷ４１が保持するヘッダ変換テーブル（アプリケーションＡ実行中）の例である。
【図６】本発明の第１の実施形態のＬ７ＳＷ４２が保持するヘッダ変換テーブル（アプリケーションＡ実行中）の例である。
【図７】本発明の第１の実施形態のＬ７ＳＷ４１が保持するヘッダ変換テーブル（アプリケーションＢ実行中）の例である。
【図８】本発明の第１の実施形態のＬ７ＳＷ４２が保持するヘッダ変換テーブル（アプリケーションＢ実行中）の例である。
【図９】本発明の第１の実施形態のＬ４ＳＷに設定されるフローエントリの例である。
【図１０】本発明の第２の実施形態の通信システムの構成を示す図である。
【図１１】本発明の第２の実施形態の通信システムの変形構成を示す図である。
【図１２】本発明の第３の実施形態の通信システムの構成を示す図である。
【図１３】本発明の第３の実施形態のコントローラが決定した経路の例である。
【図１４】本発明の第３の実施形態のＬ７ＳＷ４３が保持するヘッダ変換テーブルの例である。
【発明を実施するための形態】
【００１９】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００２０】
本発明は、その一実施形態において、図１に示すように、下位レイヤの情報に基づいてパケット転送を行う下位レイヤスイッチ（図１のＬＬＳＷ２１Ａ〜２４Ａ）を含むコアネットワークと、前記コアネットワークの端部に配置した上位レイヤスイッチ（図１のＵＬＳＷ４１Ａ、４２Ａ）と、下位レイヤスイッチ（図１のＬＬＳＷ２１Ａ〜２４Ａ）及び上位レイヤスイッチ（図１のＵＬＳＷ４１Ａ、４２Ａ）を制御する制御装置（図１の３１Ａ）とを含む構成にて実現できる。
【００２１】
より具体的には、下位レイヤスイッチ（図１のＬＬＳＷ２１Ａ〜２４Ａ）は、下位レイヤのヘッダ情報を含むマッチ条件と、処理内容とを対応付けた制御情報を保持し、受信パケットに適合するマッチ条件を持つ制御情報を用いて受信パケットの転送を行う。上位レイヤスイッチ（図１のＵＬＳＷ４１Ａ、４２Ａ）は、上位レイヤのヘッダ情報に基づいて、パケットの下位レイヤのヘッダの所定領域を、上位レイヤの通信内容に対応付けられた内容に書き換える。制御装置（図１の３１Ａ）は、前記上位レイヤスイッチに対し前記下位レイヤのヘッダ領域の書き換えを指示するとともに、前記下位レイヤスイッチに前記書き換え後のヘッダ情報をマッチ条件に含む制御情報を設定する。
【００２２】
例えば、制御装置（図１の３１Ａ）は、上位レイヤスイッチ（図１のＵＬＳＷ４１Ａ、４２Ａ）に対し、上位レイヤのヘッダ情報から把握されるアプリケーション種別に基づいて、パケットの下位レイヤのヘッダの所定領域に前記アプリケーション種別を示す識別子の埋め込みを指示する。また、制御装置（図１の３１Ａ）は、下位レイヤスイッチ（図１のＬＬＳＷ２１Ａ〜２４Ａ）に対し、前記識別子をマッチ条件に含む制御情報を設定することで、アプリケーション種別に応じた経路制御が実現される。
【００２３】
なお、図１の例では、外部ノード（図１のノード１１Ａ、１２Ａ）に、直接上位レイヤスイッチ（図１のＵＬＳＷ４１Ａ、４２Ａ）が接続されているが、外部ノード（図１のノード１１Ａ、１２Ａ）と上位レイヤスイッチ（図１のＵＬＳＷ４１Ａ、４２Ａ）との間に、下位レイヤスイッチ等が配置されていてもよい。また、図１の例では、２つの上位レイヤスイッチ（図１のＵＬＳＷ４１Ａ、４２Ａ）を配置しているが、上位レイヤスイッチ（図１のＵＬＳＷ４１Ａ、４２Ａ）は後記第２、３実施形態で説明するように、１台でもよいし、３台以上配置されていてもよい。
【００２４】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図２は、本発明の第１の実施形態の通信システムの構成を示す図である。図２を参照すると、コントローラ３１から設定されるフローエントリに従ってパケットを処理するレイヤ４スイッチ（以下、「Ｌ４ＳＷ」と記す。）２１〜２４と、Ｌ４ＳＷ２１〜２４の両端（入口と出口）に配置されるレイヤ７スイッチ（以下、「Ｌ７ＳＷ」と記す。）４１、４２と、これらＬ４ＳＷおよびＬ７ＳＷを制御するコントローラ３１とを含む構成が示されている。なお、図２において、実線は、ノード１１、１２間のデータを伝送するネットワークの接続関係を示し、破線は、コントローラ３１とＬ４ＳＷおよびＬ７ＳＷ間の制御用のチャネルを表している。
【００２５】
ノード１１、１２は、上記した通信システムを介して通信するユーザの端末やサーバ等である。
【００２６】
コントローラ３１は、非特許文献１、２のオープンフローコントローラ相当の機能を持ち、Ｌ４ＳＷ２１〜２４に対し、制御情報として、フローエントリ（図９参照）を登録する。また、コントローラ３１は、Ｌ７ＳＷ４１、４２に対して、図５〜図８に示すヘッダ変換テーブルを設定し、その動作を制御する。
【００２７】
Ｌ４ＳＷ２１〜２４は、非特許文献１、２のオープンフロースイッチ相当の機能を持ち、図９に示すフローエントリのマッチ条件と、受信パケットのヘッダ情報を照合し、受信パケットのヘッダ情報に適合するマッチ条件を持つフローエントリを検索する。前記検索の結果、受信パケットのヘッダ情報に適合するマッチ条件を持つフローエントリが見つかった場合、Ｌ４ＳＷ２１〜２４は、受信パケットに対し、当該フローエントリのアクションフィールドの処理内容を適用する。例えば、ノード１１からのＬ４ポート番号＝６１のパケットを受信した場合、Ｌ４ＳＷ２１は、図９の一番上のフローエントリに従って、Ｌ４ＳＷ２２に転送する動作を行う。
【００２８】
一方、前記検索の結果、受信パケットのヘッダ情報に適合するマッチ条件を持つフローエントリが見つからなかった場合、Ｌ４ＳＷ２１〜２４は、コントローラ３１に対して、フローエントリの設定を要求するメッセージ（Ｐａｃｋｅｔ−Ｉｎ）を送出する。
【００２９】
Ｌ７ＳＷ４１、４２は、受信パケットのレイヤ７ヘッダ等から、接続中のノードにおいて実行中のアプリケーションを特定し、図５〜図８に示すヘッダ変換テーブルを参照して、Ｌ４ヘッダを書き換える動作を行う。例えば、Ｌ７ＳＷ４１は、ノード１１からアプリケーションＡのパケットを受信すると、図５に示すヘッダ変換テーブルを参照し、ノード１１のＬ４ポート番号（６０−１）を６１−１に書き換える動作を行う。このようなＬ７ＳＷ４１、４２は、プロキシサーバ、リバースプロキシサーバといったノードの通信を中継する機能を持ったサーバによって実現できる。Ｌ７ＳＷ４１、４２の具体的な機能については、後にその動作とともに説明する。
【００３０】
なお、上記したＬ７ＳＷ４１、４２及びコントローラ３１の機能は、これらの装置を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００３１】
続いて、本発明の第１の実施形態の動作について図面を参照して詳細に説明する。以下の説明では、図２のノード１１とノード１２の間で、ノード１１から始まるアプリケーションＡとアプリケーションＢのトラヒックが流れるものとする。アプリケーションＡとアプリケーションＢは、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）１．１のＫｅｅｐＡｌｉｖｅのように、同じＬ４ポート番号（ここでは、ポート番号＝６０とする。）を共有して使用される可能性がある。このうちアプリケーションＡの通信は、Ｌ４スイッチ２２を通る図３の経路５１を使用し、アプリケーションＢの通信はＬ４ＳＷ２３を通る図３の経路５２を使用することを考える。ユーザは、この経路選択ポリシをコントローラ３１へ登録する。なお、ユーザが上記経路５１、５２を登録するのではなく、コントローラ３１がネットワークトポロジや負荷分散ポリシ等に基づいて上記経路５１、５２を計算するものとしてもよい。
【００３２】
ユーザから経路選択ポリシの登録を受けたコントローラ３１は、次のようにＬ７ＳＷ４１、４２を制御する。まず、コントローラ３１はノード１１、１２が送受信するパケットの中に経路情報を埋め込む方法を決定する。経路情報を埋め込む方法は、Ｌ２ＳＷ２１〜２４が参照するＬ４ヘッダ以下のいずれかのフィールドである。本実施形態では、ノード１１側のＬ４ポート番号に経路情報を埋め込む。つまり、ノード１１発ノード１２宛のパケットはソースＬ４ポート番号に、ノード１２発ノード１１宛てのフレームは宛先Ｌ４ポート番号に経路情報を埋め込む。
【００３３】
次に、コントローラ３１は、上記経路に対応付けるＬ４ポート番号を決定する。本実施形態では、経路５１を流れるパケットのノード１１側Ｌ４ポート番号をＬ４ポート番号６１とし、経路５２を流れるフレームのノード１１側Ｌ４ポート番号をＬ４ポート番号６２とするマッピングが決定されたものとする。このマッピングされたポート番号は、経路選択キーとして、Ｌ４ＳＷ２１〜２４におけるフローエントリのマッチ条件に含められる。また、経路５１、５２にマッピングされたＬ４ポート番号６１、６２は、Ｌ７ＳＷ４２にてＬ４ポート番号６０に書き換え、ノード１２からはＬ４ポート番号６０に見せることとする。
【００３４】
ここで、例えばアプリケーションＡ、ＢがＴＣＰを利用しており、同時に複数のＴＣＰセッションを生成して並列実行が可能だとする。その場合は、ＴＣＰセッションを識別するためにＬ４ポート番号６１、６２には複数のＬ４ポート番号をマッピングする必要がある。そこで、以降は、Ｌ４ポート番号範囲６０、６１、６２と呼ぶこととする。
【００３５】
Ｌ４ポート番号範囲６１と６２は重なっていてはならない。Ｌ４ポート番号範囲６０はＬ４ポート番号範囲６１か６２と同じでも良い。Ｌ４ポート番号範囲６０、６１、６２は同じ広さで、それぞれのポート番号が対応付けられている。各Ｌ４ポート番号範囲のうち、Ｌ４ポート番号６０−１、６１−１、６２−１が対応付けられているとする。
【００３６】
以上のアプリケーションが使用する経路と、経路選択のキーのマッピングは図３の通りとなり、コントローラ３１に経路管理テーブルとして保持される。
【００３７】
次にコントローラ３１は、Ｌ７ＳＷ４１に対し、パケットの内容からアプリケーションＡの通信の開始とアプリケーションＢの通信の開始を識別する方法を通知する。通信の開始を識別する方法とは、たとえばＨＴＴＰプロトコルのＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）や、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）コンテンツのタグで示された情報に基づくものなどである。特に、通信シーケンスの初期段階の通信内容から識別できる方法が選択される。
【００３８】
次に、コントローラ３１は、Ｌ７ＳＷ４１に対し、アプリケーションＡの通信とノード１１側Ｌ４ポート番号範囲６１の対応付けと、アプリケーションＢの通信とノード１１側Ｌ４ポート番号範囲６２の対応付けた図４に示すヘッダ変換テーブルを登録する。ヘッダ変換テーブルの登録は、アプリケーションＡ、Ｂ以外の通信で、ノード１１側Ｌ４ポート番号に、Ｌ４ポート番号範囲６１、６２を使ってはならないことの通知も兼ねている。もし、Ｌ４ポート番号範囲６１、６２がノード１１によって使われる可能性がある場合は、Ｌ７ＳＷ４１が他のポート番号に変換するようにアクションを登録するようにしてもよい。また、ヘッダ変換テーブルはノード１１とノード１２間の通信に限定して適用されるものであってもよい。
【００３９】
次にコントローラ３１は、Ｌ７ＳＷ４２へ、Ｌ７ＳＷ４１と同様にパケットからアプリケーションを識別する方法を登録する。また、コントローラ３１はＬ７ＳＷ４２に対し、Ｌ４ポート番号範囲６１、６２とＬ４ポート番号範囲６０とを対応付けた図６に示すヘッダ変換テーブルを登録する。つまり、Ｌ７ＳＷ４１によって変換されたノード１１側のＬ４ポート番号範囲６１、６２は、ノード１２からはＬ４ポート番号範囲６０を使用しているように見せるような変換が行われる。
【００４０】
次に、ノード１１がＬ４ポート番号Ｘを使用してノード１２のＬ４ポート番号Ｙ宛てにアプリケーションＡの通信を開始したとする。
【００４１】
ノード１１によるアプリケーションＡのパケットは最初にＬ７ＳＷ４１に届くことになる。
【００４２】
ここで、アプリケーションＡがＴＣＰを使用する場合、スリーウェイハンドシェイクを完了し、Ｌ７のデータが届くまで、Ｌ７ＳＷ４１がアプリケーションを識別することができないため、Ｌ７ＳＷ４１はノード１２に代わりノード１１へ代理応答（ＳＹＮ−ＡＣＫパケット）を返すことが望ましい。ただし、ＴＣＰセッション確立後にノード１２側から通信が開始されるようなアプリケーションの場合は、スリーウェイハンドシェイク自体をアプリケーションＡ、Ｂのいずれかとして扱い、ノード１２へ配送するようにしてもよい。
【００４３】
Ｌ７ＳＷ４１は、アプリケーションＡの通信が開始されたことを認識すると、図５の示すヘッダ書換えテーブルを参照し、ノード１１側のＬ４ポート番号を、Ｌ４ポート番号範囲６１から選択したポート番号６１−１に付け替えて中継する。
【００４４】
Ｌ７ＳＷ４１からノード１２宛てに中継されたパケットは次にＬ４ＳＷ２１へ届くことになる。Ｌ４ＳＷ２１はそのパケットに対応するマッチ条件を持つフローエントリを検索する。この時点では、当該パケットに適合するマッチ条件を持つフローエントリは設定されていないため、Ｌ４ＳＷ２１は、コントローラ３１に対し、前記パケットを添付してフローエントリの設定を要求するメッセージ（Ｐａｃｋｅｔ−Ｉｎ）を送出する。
【００４５】
コントローラ３１は、前記メッセージ（Ｐａｃｋｅｔ−Ｉｎ）に含まれるヘッダ情報のうちノード１１側のソースＬ４ポート番号がＬ４ポート番号範囲６１の範囲内であることから、アプリケーションＡの通信であることを認識する。この認識結果から、該当するパケットが経路５１を流れるよう、経路５１上のＬ４ＳＷ２１、２２、２４に対し、フローエントリを設定する。このとき、経路の分岐点となるＬ４ＳＷ２１に設定されるフローエントリのマッチ条件には、Ｌ４ソースポート番号として、Ｌ４ポート番号範囲６１が設定されている。
【００４６】
図９は、Ｌ４ＳＷ２１へ設定されるフローエントリの例である。この時点では、図９のエントリ７１１が設定されることになる。なお、上記の説明では、Ｌ４ＳＷ２１からのメッセージ（Ｐａｃｋｅｔ−Ｉｎ）を待ってフローエントリを設定するものとして説明したが、Ｌ７ＳＷ４１、４２へのヘッダ書換テーブルの設定時等に、予めＬ４ＳＷ２１〜２４にもフローエントリを設定しておいてもよい。
【００４７】
次に、コントローラ３１はＬ４ＳＷ２１から受信したパケットをＬ４ＳＷ２４に送信し、Ｌ７ＳＷ４２方向へ送信するよう指示する（Ｐａｃｋｅｔ−Ｏｕｔメッセージ）。
【００４８】
Ｌ７ＳＷ４２は、図６に示すヘッダ書換テーブルを参照し、Ｌ４ＳＷ２４から転送されたパケットのソースＬ４ポート番号がＬ４ポート番号６１−１であり、Ｌ４ポート番号範囲６１の範囲内であることからアプリケーションＡの通信のパケットであることを認識する。そして、Ｌ７ＳＷ４２は、図６に示すヘッダ書換テーブルを参照し、ソースＬ４ポート番号をＬ４ポート番号範囲６０の対応する番号であるＬ４ポート番号６０−１に変換してノード１２へ中継する。
【００４９】
最終的にノード１２へ届くパケットは、ノード１１のＬ４ポート番号範囲６０のポート番号から届いたように見えることになる。
【００５０】
次にノード１２がノード１１に対し、アプリケーションＡのパケットを返したとする。Ｌ７ＳＷ４２に届くノード１２発ノード１１宛のアプリケーションＡのパケットは、宛先ポート番号がＬ４ポート番号６０−１であり、Ｌ４ポート番号範囲６０の範囲内である。Ｌ７ＳＷ４２は、このパケットがアプリケーションＡ、Ｂいずれのものかを、コントローラ３１から登録された方法に従って確認する。アプリケーションを識別できない場合は、前回中継したときに記憶したアプリケーションがまだ実行されているものと判断する。
【００５１】
Ｌ７ＳＷ４２は図５から前回の中継時はアプリケーションＡが実行されていたことを記憶しており、まだアプリケーションＡの通信が続いていると判断し、その宛先Ｌ４ポート番号を対応するＬ４ポート番号６１−１に書換え、Ｌ４ＳＷ２４方向へ中継する。
【００５２】
Ｌ４ＳＷ２４へ届いた後は、ノード１１からノード１２方向のパケット転送と同様にして、Ｌ４ＳＷ２４からのメッセージ（Ｐａｃｋｅｔ−Ｉｎ）に基づき、コントローラ３１は、経路５１に沿ったパケット転送を行わせるフローエントリを作成し、経路５１上のＬ４ＳＷ２４、２２、２１に設定する。また、コントローラ３１は、Ｌ４ＳＷ２１に対して、Ｌ７ＳＷ４１の方向へのパケットの転送を指示する。
【００５３】
Ｌ７ＳＷ４１は、受信したパケットの宛先ポート番号がＬ４ポート番号６１−１であることからアプリケーションＡの通信が続いていると認識する。また、Ｌ７ＳＷ４１は、図５に示すヘッダ書換テーブルを参照し、宛先Ｌ４ポート番号を、ノード１１が実際に使用しているポート番号（Ｘ）へ書き換えてノード１１へ中継する。
【００５４】
次に、ノード１１が同じポート番号（Ｘ）でアプリケーションＢの通信を開始したとする。Ｌ７ＳＷ４１はノード１１からアプリケーションＢのパケットを中継するときに、アプリケーションＢの通信であることを認識する。
【００５５】
アプリケーションＡのために使われていたＬ４ポートがアプリケーションＢに使われていることを認識したＬ７ＳＷ４１は、図５のヘッダ書換えテーブルの実行中アプリケーションフィールドを図７に示すように、「アプリケーションＢ」に更新する。
【００５６】
また、Ｌ７ＳＷ４１は、図７のヘッダ書換えテーブルを参照して、アプリケーションＢのパケットのＬ４ソースポート番号を、Ｌ４ポート番号範囲６２のポート番号６２−１に変換し、Ｌ４ＳＷ２１方向へ中継する。このとき、ＴＣＰを使用している場合、ＴＣＰのセッションを張りなおすのではなく、ポート番号を変更するのみで、ＴＣＰヘッダのシーケンスナンバーは前のパケットに続く番号を振る必要がある。
【００５７】
前記パケットを受信したＬ４ＳＷ２１は、アプリケーションＡのときと同様に、コントローラ３１に対し、前記パケットを添付してフローエントリの設定を要求するメッセージ（Ｐａｃｋｅｔ−Ｉｎ）を送出する。コントローラ３１は、経路５２上のＬ４ＳＷ２１、２３、２４に、アプリケーションＢ用のフローエントリを設定する。さらに、コントローラ３１はＬ４ＳＷ２１から受信したパケットをＬ４ＳＷ２４に送信し、Ｌ７ＳＷ４２方向へ送信するよう指示する（Ｐａｃｋｅｔ−Ｏｕｔメッセージ）。
【００５８】
Ｌ７ＳＷ４２は、アプリケーションＡのときと同様に、ソースＬ４ポート番号からアプリケーションＢを認識し、図６のヘッダ書換えテーブルの実行中アプリケーションフィールドを図８に示すように、「アプリケーションＢ」に更新する。また、Ｌ７ＳＷ４２は、図８のヘッダ書換えテーブルを参照して、アプリケーションＢのパケットのＬ４ソースポート番号を、ポート番号６０−１に変換し、ノード１２へ中継する。ここで、ノード１２は、変換後のソースＬ４ポート番号がアプリケーションＡで使用していたポート番号と同じポート番号６０−１であるため、同じＴＣＰセッション上の通信として認識することができる。
【００５９】
アプリケーションＢのパケットに対し、ノード１２から応答パケットが送信された場合も、アプリケーションＡのときと同様に、ヘッダの書換えが行われたノード１１に転送される。
【００６０】
以上のように、本実施形態によれば、アプリケーションに応じたきめ細かな経路制御が可能になる。一方で、アプリケーションを識別する機能はネットワークのエッジに当たるＬ７ＳＷのみに設置すればよいため、コアネットワークを構成する機器は転送に専念することができる。つまり、コアネットワークを構成するスイッチのフローエントリ検索機能は、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）により構成することができ、高速化を期待できる。
【００６１】
また、上記した実施形態ではＴＣＰ／ＩＰのパケットを扱うため、経路選択の分岐点以外のスイッチはオープンフロースイッチではなくてもよい。たとえばＬ４ＳＷ２２、２３はＭＡＣアドレスを学習してパケットを転送するＬ２スイッチに置き換えることができる。
【００６２】
また、アプリケーションに応じた経路制御の必要がないノードはネットワークへ接続するときにＬ７ＳＷを挟む必要がない。アプリケーションに応じた経路制御を適用するノードと、その必要のないノードとを同じネットワークに接続させることが可能である。
【００６３】
本実施形態では、アプリケーション毎にフローエントリを設定している。このため、オープンフロースイッチのフロー統計機能を利用し、フローエントリにヒットしたパケットをカウントすることにより、アプリケーションの通信量を測定するといった用途にも適用できる。
【００６４】
［第２の実施形態］
続いて、コアネットワークの両端ではなく、その一端にＬ７ＳＷを配置するようにした本発明の第２の実施形態について図面を参照して詳細に説明する。図１０、図１１は、本発明の第２の実施形態に係る通信システムの構成を表した図である。以下、第１の実施形態との相違点を中心に説明する。
【００６５】
本実施形態は、アプリケーションの片方向のフローだけを制御するに好ましく採用できる。図１０は、本発明の第２の実施形態の構成を表した図である。図１０は、図２の第１の実施形態の構成からＬ７ＳＷ４２を取り除き、ノード１２をＬ４ＳＷ２４へ接続した構成である。図１１は、図２の第１の実施形態の構成からＬ７ＳＷ４１を取り除き、ノード１１をＬ４ＳＷ２１へ接続した構成である。
【００６６】
図１０の構成によれば、ノード１１発ノード１２宛のパケットについて、アプリケーションに応じた経路制御が可能である。一方、図１１の構成によれば、ノード１２発ノード１１宛のパケットについて、アプリケーションに応じた経路制御が可能である。
【００６７】
以下、図１０のノード１１発ノード１２宛のパケットと、図１１のノード１２発ノード１１宛のパケットに加えられる処理について説明する。
【００６８】
図１０、図１１どちらの構成においても、Ｌ７ＳＷがノードから届いたフレームのアプリケーションに応じてＬ４ポート番号を変換してＬ４ＳＷへ送り出す動作は同じである。第１の実施形態では、経路選択のためにＬ７ＳＷで変換されたソースＬ４ポート番号を対向のＬ７ＳＷで変換して１つのＬ４ポート番号に見せていたが、本実施形態では、出口側にＬ７ＳＷが配置されていないため、これをネットワークの出口のＬ４スイッチで実行する必要がある。この動作は、Ｌ４ＳＷにヘッダ書換えを行わせるフローエントリを設定することが実現できる。具体的には、図１０の構成では、Ｌ４ＳＷ２４に、Ｌ７ＳＷ４１で書き換えられたパケットのＬ４ポート番号をさらに書き換えさせるフローエントリを設定することになる。同様に、図１１の構成では、Ｌ４ＳＷ２１に同様のフローエントリを設定することになる。
【００６９】
続いて、図１０におけるノード１２発ノード１１宛のパケットと、図１１のノード１１発ノード１２宛のフレームについて説明する。本実施形態ではこの方向のパケットをアプリケーションに応じて経路制御することはできない。この方向のフレームの経路はコントローラ３１で決定し、Ｌ７ＳＷまで配送するためのフローエントリを各Ｌ４ＳＷへ登録する必要がある。
【００７０】
また、第１の実施形態では、Ｌ４ＳＷからＬ７ＳＷへパケットが届いたときに、Ｌ７ＳＷはＬ４ポート番号を参照して、対向ノードでアプリケーションの切り替わりがあったことを検出していたが、本実施形態ではこの動作は行われないことになる。
【００７１】
なお、一般的にリクエストの内容からアプリケーションを識別することは可能だが、リプライからアプリケーションを識別することは困難な場合が多い。例えば、図１１の構成において、ノード１１がノード１２へリクエストを送信し、ノード１２がノード１１へリプライを返す形式のアプリケーションだとする。ノード１２からＬ７ＳＷ４２へ届くパケットの内容はリプライであり、その内容からＬ７ＳＷ４２がアプリケーションを識別するのは困難だとする。そのようなアプリケーションでは、Ｌ７ＳＷ４２は、ノード１１発ノード１２宛のパケットの内容からアプリケーションを識別し、その結果をノード１２発ノード１１宛パケットの経路制御に適用する方式が有効である。
【００７２】
以上のように、コアネットワークの両端に、Ｌ７ＳＷを配置しない構成においても、その少なくとも一方向の通信についてアプリケーションに応じた経路制御を行うことが可能となる。
【００７３】
［第３の実施形態］
図１０に示した第２の実施形態と同様の構成でも特定のアプリケーションについては両方向の通信についてアプリケーションに応じた経路制御ができる。このような特定のアプリケーションによる通信がおこなわれることを前提した本発明の第３の実施形態について説明する。
【００７４】
図１２は、本発明の第３の実施形態に係る通信システムの構成を表した図である。図１２の構成は図１０と似ているが、Ｌ７ＳＷ４３の動作が異なる。以下、ノード１３がＨＴＴＰクライアント、ノード１４がＨＴＴＰサーバであるものとして、その動作を説明する。
【００７５】
図１２のネットワークでノード１３とノード１４の間でＨＴＴＰアプリケーションＣとＨＴＴＰアプリケーションＤのトラヒックが流れるとする。このうちアプリケーションＣの通信は、Ｌ４ＳＷ２６を通る図１３の経路５３を使用し、アプリケーションＤの通信は、Ｌ４スイッチ２７を通る図１３の経路５４を使用することを考える。ユーザはこの経路選択ポリシをコントローラ３２へ登録する。
【００７６】
ユーザから経路選択ポリシの登録を受けたコントローラ３２は、次のようにＬ７ＳＷ４３を制御する。まず、コントローラ３２は、Ｌ７ＳＷ４３へパケットの内容からアプリケーションＣの通信の開始と、アプリケーションＤの通信の開始を識別する方法を登録する。ＨＴＴＰの場合、ＵＲＬなどのリクエストの内容からアプリケーションを識別することができる。
【００７７】
また、コントローラ３２は、Ｌ７ＳＷ４３に、アプリケーションＣかアプリケーションＤの通信の開始を検出したときのアクションとして、特定の範囲のソースＬ４ポート番号で代理接続するアクション付きのヘッダ変換テーブルを登録する。
【００７８】
図１４は、Ｌ７ＳＷ４３に登録するヘッダ変換テーブルの例である。図１４の例では、アプリケーションＣの代理接続時のソースＬ４ポート番号の範囲をＬ４ポート番号範囲６３、アプリケーションＤの代理接続時のソースＬ４ポート番号の範囲をＬ４ポート番号範囲６４としている。このヘッダ変換テーブルの登録は、Ｌ７ＳＷ４３に対するソースＬ４ポート番号としてＬ４ポート番号範囲６３と、Ｌ４ポート番号範囲６４をアプリケーションＣとアプリケーションＤ以外の通信で使用してはならないという指示を兼ねている。
【００７９】
次に、ノード１３からノード１４へアプリケーションＣの通信が発生したとする。ノード１３が送信したパケットは最初にＬ７ＳＷ４３へ到達する。Ｌ７ＳＷ４３はこのパケットを解析し、ノード１３がアプリケーションＣの通信を開始したことを認識し、図１４のエントリ７２１に従い、ソースＬ４ポートをＬ４ポート範囲６３から選択したＬ４ポート６３−１としてノード１４宛に代理接続する。
【００８０】
コントローラ３２は、経路５３上のＬ４ＳＷ２５、２６、２８に、ノード１４への代理接続したＬ７ＳＷ４３が送信したパケットを経路５３に沿って転送させるフローエントリを設定する。このフローエントリには、マッチ条件として、Ｌ７ＳＷ４３側のＬ４ポートがＬ４ポート範囲６３の範囲内という条件が設定されている。
【００８１】
以上により、ノード１４への代理接続したＬ７ＳＷ４３が送信したアプリケーションＣのパケットは、ノード１４に転送される。ノード１４は、ソースＬ４ポート６３−１からの接続として認識することになる。
【００８２】
次にノード１３からアプリケーションＤの通信が発生したとする。同様にＬ７ＳＷ４３はアプリケーションＤの通信を認識すると、図１４のエントリ７２２に従い、ソースＬ４ポート番号をＬ４ポート範囲６４から選択したＬ４ポート６４−２としてノード１４宛てに代理接続する。この接続は、アプリケーションＣの通信とは別のセッションとして接続する。
【００８３】
コントローラ３２は、経路５４上のＬ４ＳＷ２５、２７、２８に、ノード１４への代理接続したＬ７ＳＷ４３が送信したパケットを経路５４に沿って転送させるフローエントリを設定する。このフローエントリには、マッチ条件として、Ｌ７ＳＷ４３側のＬ４ポートがＬ４ポート範囲６４の範囲内という条件が設定されている。
【００８４】
以上により、ノード１４への代理接続したＬ７ＳＷ４３が送信したアプリケーションＤのパケットは、ノード１４に転送される。ノード１４は、ソースＬ４ポート６４−２からの接続として認識することになる。
【００８５】
以上、本発明の実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した各実施形態に示したネットワーク構成は、本発明の理解を助けるための一構成例に過ぎず、図示した形態に限られるものではない。
【００８６】
また、上記した実施形態では、下位レイヤスイッチとして、Ｌ４ＳＷを用いるものとして説明したが、その他オープンフロースイッチとして動作可能な機器であればよい。
【００８７】
また、上記した実施形態では、Ｌ４ポート番号を書き換える例を挙げて説明したが、ＭＡＣアドレス、ＩＰアドレス等を書き換える動作を行うこととしてもよい。また、パケットヘッダの適当な領域にフローを識別できる識別子を付与する方法も採用可能である。
【００８８】
最後に、本発明の好ましい形態を要約する。
［第１の形態］
（上記第１の視点による通信システム参照）
［第２の形態］
第１の形態の通信システムにおいて、さらに、
前記コアネットワークの別の一端に配置され、前記上位レイヤスイッチにより書き換えられた前記下位レイヤのヘッダ領域を、送信元を示す所定の内容に書き換える第２の上位レイヤスイッチを含む通信システム。
［第３の形態］
第２の形態の通信システムにおいて、
前記第２の上位レイヤスイッチは、前記制御装置からの指示に基づいて逆方向から受信したパケットに対し、前記パケットの下位レイヤのヘッダの所定領域を、前記上位レイヤの通信内容に対応付けられた内容に書き換える動作を行い、
前記上位レイヤスイッチは、前記第２の上位レイヤスイッチにより書き換えられた前記下位レイヤのヘッダ領域を復元する通信システム。
［第４の形態］
第１から第３いずれか一の形態の通信システムにおいて、
前記上位レイヤスイッチは、外部ノード間で特定の通信の発生を検出すると、前記下位レイヤスイッチに代理接続し、
前記制御装置は、前記下位レイヤスイッチに、前記代理接続した前記上位レイヤスイッチからのパケットを識別するマッチ条件を持つ制御情報を設定する通信システム。
［第５の形態］
第１から第４いずれか一の形態の通信システムにおいて、
前記上位レイヤスイッチまたは前記第２の上位レイヤスイッチは、前記制御装置から設定されたヘッダ書き換えテーブルに基づいて、下位レイヤのヘッダの書き換えを行う通信システム。
［第６の形態］
第１から第５いずれか一の形態の通信システムにおいて、
前記上位レイヤスイッチは、アプリケーションを識別するレイヤ７スイッチであり、
前記制御装置は、アプリケーション種別に応じた経路制御を行う通信システム。
［第７の形態］
第１から第６いずれか一の形態の通信システムにおいて、
前記上位レイヤスイッチは、アプリケーションを識別するレイヤ７スイッチであり、
前記制御装置は、前記上位レイヤスイッチまたは前記第２の上位レイヤスイッチに対して、受信パケットのレイヤ４ポート番号を、アプリケーション種別に対応付けた番号範囲に変換するよう指示する通信システム。
［第８の形態］
第１から第７いずれか一の形態の通信システムにおいて、
前記下位レイヤスイッチは、オープンフロースイッチであり、
前記制御装置は、前記制御情報として、レイヤ４ポート番号範囲をマッチ条件に含むフローエントリを設定するオープンフローコントローラである通信システム。
［第９の形態］
（上記第２の視点による上位レイヤスイッチ参照）
［第１０の形態］
（上記第３の視点による制御装置参照）
［第１１の形態］
（上記第４の視点によるスイッチ制御方法参照）
［第１２の形態］
（上記第５の視点によるプログラム参照）
なお、上記第９〜第１２の形態は、第１の形態と同様に、第２〜第８の形態に展開することが可能である。
【００８９】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。なお本書において、単数形で記載された用語は、当然に複数をも代表するものとする。日本語は単複同形であることに留意されたい。
【符号の説明】
【００９０】
１１〜１４、１１Ａ、１２Ａ  ノード
２１〜２８  レイヤ４スイッチ（Ｌ４ＳＷ）
２１Ａ〜２４Ａ  下位レイヤスイッチ（ＬＬＳＷ）
３１、３２  コントローラ
３１Ａ  制御装置
４１〜４３  レイヤ７スイッチ（Ｌ７ＳＷ）
４１Ａ、４２Ａ  上位レイヤスイッチ（ＵＬＳＷ）
５１〜５４  経路
７１１〜７１４  フローエントリ
７２１、７２２  エントリ
【図１】
0005858147.tif 000002
【図２】
0005858147.tif 000003
【図３】
0005858147.tif 000004
【図４】
0005858147.tif 000005
【図５】
0005858147.tif 000006
【図６】
0005858147.tif 000007
【図７】
0005858147.tif 000008
【図８】
0005858147.tif 000009
【図９】
0005858147.tif 000010
【図１０】
0005858147.tif 000011
【図１１】
0005858147.tif 000012
【図１２】
0005858147.tif 000013
【図１３】
0005858147.tif 000014
【図１４】
0005858147.tif 000015