(57)【要約】【課題】  ユーザが意識しなくてもオープンフローネットワークのスループットを安定化できるオープンフローネットワークシステムを提供する。【解決手段】  オープンフロースイッチは、１又は複数種類のＷＡＮ最適化を適用可能としておく。オープンフローコントローラは、新規フローについての通信経路を算出したときには、その通信経路での伝搬遅延時間を得て、その伝搬遅延時間に応じて、そのフローのパケットにＷＡＮ最適化を適用するか否か、適用する場合の種類を決定し、通信経路上の所定のオープンフロースイッチにそのことを通知する。【選択図】      図１
2013255185.tif 000002
【特許請求の範囲】
【請求項１】
新規フローについて、送信元端末を収容した第１のオープンフロースイッチから宛先端末を収容した第２のオープンフロースイッチまでの通信経路を算出し、上記通信経路に介在する、上記第１及び第２のオープンフロースイッチを含めた全てのオープンフロースイッチに対して、上記新規フローについての経路情報を設定させるオープンフローコントローラにおいて、
上記新規フローについて算出された上記通信経路の伝搬遅延時間を取得する遅延取得制御手段と、
取得された伝搬遅延時間に基づき、ネットワーク高速化処理の適用有無を判別し、ネットワーク高速化処理の適用が必要なときに、少なくとも上記第１のオープンフロースイッチに、上記新規フローに対してネットワークの高速化処理を適用することを指示するネットワーク高速化制御手段と
を有することを特徴とするオープンフローコントローラ。
【請求項２】
上記遅延取得制御手段は、伝搬遅延時間の測定を実行させることにより、上記通信経路の伝搬遅延時間を取得することを特徴とする請求項１に記載のオープンフローコントローラ。
【請求項３】
上記遅延取得制御手段は、上記第１のオープンフロースイッチが記述できる送信時刻の欄と上記第２のオープンフロースイッチが記述できる受信時刻の欄を有する測定確認パケットを、上記第１のオープンフロースイッチに与え、上記通信経路を経由して、上記第２のオープンフロースイッチに到着した上記測定確認用パケットを取込んで上記伝搬遅延時間を得ることを特徴とする請求項２に記載のオープンフローコントローラ。
【請求項４】
上記遅延取得制御手段は、送信元端末を収容した第１のオープンフロースイッチから宛先端末を収容した第２のオープンフロースイッチまでの通信経路に介在して中継するオープンフロースイッチの数が所定数以上のときには、伝搬遅延時間を、所定時間以上とみなして処理することを特徴とする請求項１〜３のいずれかに記載のオープンフローコントローラ。
【請求項５】
上記各オープンフロースイッチが対応可能なネットワーク高速化処理の種類が複数種類であり、
上記ネットワーク高速化制御手段は、取得された伝搬遅延時間に基づき、適用するネットワーク高速化処理の種類も決定し、決定した種類を、少なくとも上記第１のオープンフロースイッチに通知する
ことを特徴とする請求項１又は２に記載のオープンフローコントローラ。
【請求項６】
オープンフローコントローラが算出した新規フローについての、送信元端末を収容した第１のオープンフロースイッチから宛先端末を収容した第２のオープンフロースイッチまでの通信経路に介在する場合に、上記通信経路に係る経路情報の設定を受けるオープンフロースイッチにおいて、
当該オープンフロースイッチが上記通信経路の端部に位置する第１のオープンフロースイッチであるために、上記オープンフローコントローラから、上記新規フローに対するネットワーク高速化処理の適用が指示されたときに、その新規フローに係るパケットに対してネットワーク高速化処理を実行し、当該オープンフロースイッチが上記通信経路の端部に位置する第２のオープンフロースイッチであるときに、ネットワーク高速化処理が施されたパケットを受信したときに、ネットワーク高速化処理が施される前の状態にパケットを戻すネットワーク高速化手段と
を有することを特徴とするオープンフロースイッチ。
【請求項７】
当該オープンフロースイッチが上記通信経路の端部に位置する第１又は第２のオープンフロースイッチであるときに、上記オープンフローコントローラと協働して、上記通信経路の伝搬遅延時間を測定させる遅延測定手段を有することを特徴とする請求項６に記載のオープンフロースイッチ。
【請求項８】
上記遅延測定手段は、当該オープンフロースイッチが第１のオープンフロースイッチであるときには、上記オープンフローコントローラから到来した測定確認パケットにおける送信時刻の欄に送信時刻を記述して、上記通信経路上の次のオープンフロースイッチに転送し、当該オープンフロースイッチが第２のオープンフロースイッチであるときには、到来した測定確認パケットにおける受信時刻の欄に受信時刻を記述して、上記オープンフローコントローラに返信するものであること特徴とする請求項７に記載のオープンフロースイッチ。
【請求項９】
上記ネットワーク高速化手段は、対応可能なネットワーク高速化処理の種類が複数種類であり、受信したパケットのフローについて、当該オープンフロースイッチが第１のオープンフロースイッチであるときに、上記オープンフローコントローラから既に与えられている指示に従い、指示された種類のネットワーク高速化処理を実行することを特徴とする請求項７又は８に記載のオープンフロースイッチ。
【請求項１０】
上記ネットワーク高速化手段は、ネットワーク高速化処理の実行後のパケットに、実行したネットワーク高速化処理の種類情報を盛り込んで次段に転送させ、また、当該オープンフロースイッチが第２のオープンフロースイッチであるフローについて到来したパケットに、ネットワーク高速化処理の種類情報が盛り込まれていたときに、盛り込まれていた種類のネットワーク高速化処理が施される前の状態にパケットを戻すことを特徴とする請求項９に記載のオープンフロースイッチ。
【請求項１１】
請求項１に記載のオープンフローコントローラと、請求項６に記載の複数のオープンフロースイッチとを構成要素として有することを特徴とするオープンフローネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オープンフロースイッチ、オープンフローコントローラ及びオープンフローネットワークシステムに関し、例えば、通信経路毎にワイドエリアネットワーク（ＷＡＮ）の最適化（高速化）を実行しようとしたものに適用し得る。
【背景技術】
【０００２】
一般に、従来のネットワークのトランスポート層やアプリケーション層のプロトコルは、応答が速いローカルエリアネットワーク（ＬＡＮ）を想定しており、対向側からの応答に応じてデータを送出するため、ワイドエリアネットワーク（ＷＡＮ）を利用した場合、ノードのホップ数や伝送路の距離遅延などにより対向からの応答が遅いと、スループットが落ちてしまうという課題があった。
【０００３】
また、スタンフォード大学を中心とした「オープンフロースイッチングコンソーシアム」が２００８年から提唱している次世代ネットワーク制御技術のオープンフロースイッチング技術（非特許文献１参照）は、「オープンフロースイッチ」、「オープンフローコントローラ」、「オープンフロープロトコル」から構成されている。そして、オープンフロースイッチで構成されるネットワークの全ての経路制御をオープンフローコントローラが一元的に行い、フローを接続する毎に、オープンフローコントローラが最適な通信経路を算出し、通信経路上の各オープンフロースイッチのフローテーブルの要素を生成してフローエントリーを行う。従来のネットワーク制御方式において、主に、ＩＰアドレスのルーティングによって行われてきた経路制御に対して、オープンフロースイッチング技術では、送信元側及び宛先側のＭＡＣアドレスやＩＰアドレス、ポート番号などの組み合わせによって決定される一連の通信を「フロー」として定義し、フロー単位での経路制御を実現している。これによって、品質の確保やネットワークの利用率向上などが期待されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−００９９６６号公報
【特許文献２】特表２０１０−５４１４７３号公報
【非特許文献】
【０００５】
【非特許文献１】ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｆｌｏｗ．ｏｒｇ／
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、従来のソフトウエアで処理していたスイッチに比較して約１００倍の処理機能、従来のハードウエアで処理しているスイッチにも引けを取らない処理機能をもつオープンフロースイッチング技術を用いても、ノードのホップ数に対する遅延対策にはなるが、伝搬路の距離に応じた大きな伝搬遅延時間の対策にはなっていない。以下、この課題を、図６を用いて説明する。
【０００７】
図６の例は、複数（６個の）のオープンフロースイッチ（ＯＦＳ）１−１〜１−６がリング状に配列され、オープンフロースイッチ１−１に収容されている端末２−１と、オープンフロースイッチ１−５に収容されている端末（端末はエンドの通信装置を意味しており、ファイルサーバなども、エンドの通信装置として用いられている場合には「端末」に該当する）２−２との経路を設定する場合を示している。この場合、オープンフロースイッチ１−６を経由する経路Ｒ１と、オープンフロースイッチ１−２〜１−４を経由する経路Ｒ２とがあり、経路Ｒ１の方が経路Ｒ２より、遅延測定結果では、遅延量もスループットも良好となる。しかしながら、オープンフローコントローラ（ＯＦＣ）３が最適な経路を計算し、オープンフロースイッチ１−１〜１−６に経路設定するオープンフローネットワークにおいては、環境の状況（輻輳、ノード故障等）によって、遅延の少ない経路Ｒ１が選択不可能で遅延の多い経路Ｒ２を選択せざるを得ない場合がある。
【０００８】
経路Ｒ２が選択された場合には端末２−１及び２−２のスループットが落ちてしまう。このような不都合を回避するため、エンドユーザの判断で高価なＷＡＮ最適化装置３−１、３−２を導入し、フロー毎に、経路を固定することも考えられる。ＷＡＮ最適化装置３−１、３−２は、ＷＡＮでの転送効率を高めるような処理（ＷＡＮ最適化（ＷＡＮ高速化））を行うものである（特許文献１、特許文献２参照）。
【０００９】
ここで、フロー毎に経路の変動が多い場合には、ユーザは、高価なＷＡＮ最適化装置を導入すべきかどうか判断することが難しい。また、導入したとしても、どのような経路をＷＡＮ最適化装置に設定すべきかをユーザは容易に判断できない。また、両端末共に、同一のユーザに関連する端末でない場合には、一方だけに、ＷＡＮ最適化装置が導入され、ＷＡＮ最適化装置が有効に機能し得ない場合も存在する。
【００１０】
上述した課題を整理すると以下の通りである。オープンフロースイッチング技術をそのまま適用した場合には、オープンフローにおける経路選択はフローを接続するときの環境に応じて最適経路を選択するため、スループットが接続のたびに変動してしまい、スループットが低下することもあり得る。これを回避しようとして、ＷＡＮ最適化装置を導入してもユーザ手動で経路を設定するため、十分な効果を期待し難い。
【００１１】
そのため、ユーザが高度な技術的知識を持たなくてもスループットを安定させることができるオープンフロースイッチ、オープンフローコントローラ及びオープンフローネットワークシステムが望まれている。
【課題を解決するための手段】
【００１２】
第１の本発明は、新規フローについて、送信元端末を収容した第１のオープンフロースイッチから宛先端末を収容した第２のオープンフロースイッチまでの通信経路を算出し、上記通信経路に介在する、上記第１及び第２のオープンフロースイッチを含めた全てのオープンフロースイッチに対して、上記新規フローについての経路情報を設定させるオープンフローコントローラにおいて、（１）上記新規フローについて算出された上記通信経路の伝搬遅延時間を取得する遅延取得制御手段と、（２）取得された伝搬遅延時間に基づき、ネットワーク高速化処理の適用有無を判別し、ネットワーク高速化処理の適用が必要なときに、少なくとも上記第１のオープンフロースイッチに、上記新規フローに対してネットワークの高速化処理を適用することを指示するネットワーク高速化制御手段とを有することを特徴とする。
【００１３】
第２の本発明は、オープンフローコントローラが算出した新規フローについての、送信元端末を収容した第１のオープンフロースイッチから宛先端末を収容した第２のオープンフロースイッチまでの通信経路に介在する場合に、上記通信経路に係る経路情報の設定を受けるオープンフロースイッチにおいて、当該オープンフロースイッチが上記通信経路の端部に位置する第１のオープンフロースイッチであるために、上記オープンフローコントローラから、上記新規フローに対するネットワーク高速化処理の適用が指示されたときに、その新規フローに係るパケットに対してネットワーク高速化処理を実行し、当該オープンフロースイッチが上記通信経路の端部に位置する第２のオープンフロースイッチであるときに、ネットワーク高速化処理が施されたパケットを受信したときに、ネットワーク高速化処理が施される前の状態にパケットを戻すネットワーク高速化手段とを有することを特徴とする。
【００１４】
第３の本発明のオープンフローネットワークシステムは、第１の本発明のオープンフローコントローラと、第２の本発明の複数のオープンフロースイッチとを構成要素として有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、ユーザが高度な技術的知識を持たなくてもオープンフローネットワークのスループットを安定させることができるようになる。
【図面の簡単な説明】
【００１６】
【図１】実施形態のオープンフローコントローラの詳細構成を示すブロック図である。
【図２】実施形態のオープンフロースイッチの詳細構成を示すブロック図である。
【図３】実施形態のオープンフロースイッチが実行するＷＡＮ最適化の種類と測定された伝搬遅延時間との関係を示す説明図である。
【図４】実施形態のオープンフロースイッチにおけるＷＡＮ最適化部の機能的な詳細構成を示す説明図である。
【図５】実施形態のオープンフローネットワークシステムの各部のシーケンス図である。
【図６】従来のオープンフローネットワークシステムの課題の説明図である。
【発明を実施するための形態】
【００１７】
（Ａ）主たる実施形態
以下、本発明によるオープンフロースイッチ、オープンフローコントローラ及びオープンフローネットワークシステムの一実施形態を、図面を参照しながら詳述する。
【００１８】
（Ａ−１）実施形態の構成
実施形態のオープンフローネットワークシステムは、図１に詳細構成を示す実施形態のオープンフローコントローラ１０と、図２に詳細構成を示す複数の実施形態のオープンフロースイッチ２０とを有している（上述した図６参照）。
【００１９】
ここで、オープンフローコントローラ１０は、ＣＰＵと、ＣＰＵが実行するプログラムとで内部構成の大半を形成することもできるが、このような場合であっても、機能的には図１で表すことができる。同様に、オープンフロースイッチ２０も、ＣＰＵと、ＣＰＵが実行するプログラムとで内部構成の大半を形成することもできるが、このような場合であっても、機能的には図２で表すことができる。
【００２０】
図１において、オープンフローコントローラ１０は、経路算出・設定部１１、遅延測定制御部１２及びＷＡＮ最適化制御部１３を有する。
【００２１】
経路算出・設定部１１は、いずれかのオープンフロースイッチ２０−ｉから、送信元側及び宛先側の端末に係るＭＡＣアドレスやＩＰアドレス、ポート番号などの組み合わせ情報を含む、新規なフローが検出された旨の情報が与えられたとき、新規なフローに適用する通信経路を算出し、その通信経路上のそれぞれのオープンフロースイッチにおける経路情報部２２（図２参照）のフローテーブル２２Ｔに、その通信経路を実現させるためにフローエントリーを設定させるものである。フローエントリーは、例えば、ルールとアクションとでなり、ルールにフローを特定する情報（全てのフローという特定情報のこともあり得る）を記述し、アクションに転送先（多くの場合、通信経路上における次のオープンフロースイッチ）の情報を記述したものである。なお、この実施形態において、経路算出・設定部１１は、例えば、上述したオープンフロースイッチング技術（非特許文献１参照）に従った処理を実行するものであって、新規な処理を実行するものではない。
【００２２】
遅延測定制御部１２は、算出された通信経路の両端のオープンフロースイッチ２０−ｉ及び２０−ｊ間の伝搬遅延時間の測定を制御するものである。遅延測定制御部１２は、例えば、新規フローを検出した端部のオープンフロースイッチ２０−ｉから、遅延確認用パケットを算出された通信経路に送出させ、この通信経路を介して、遅延確認用パケットを他方の端部のオープンフロースイッチ２０−ｊに到達させ、オープンフロースイッチ２０−ｉからオープンフロースイッチ２０−ｊへの伝搬遅延時間を得るものである。
【００２３】
ＷＡＮ最適化制御部１３は、遅延測定制御部１２によって測定された通信経路上で両端のオープンフロースイッチ２０−ｉ及び２０−ｊ間の伝搬遅延時間に基づいて、ＷＡＮ最適化が必要か否か、ＷＡＮ最適化が必要な場合においてどの種類のＷＡＮ最適化を実行するかを決定するものである。ＷＡＮ最適化制御部１３は、いずれか１種類以上のＷＡＮ最適化を行うと決定したときには、オープンフロースイッチ２０−ｉ内のＷＡＮ最適化部２４に、フローの特定情報と共に、その旨を通知し、決定した種類のＷＡＮ最適化が実行させるようにするものである。
【００２４】
ここで、ＷＡＮ最適化の種類によっては、オープンフロースイッチ２０−ｉに対向するオープンフロースイッチ２０−ｊにおいて、オープンフロースイッチ２０−ｉが行ったＷＡＮ最適化の逆処理（ＷＡＮ最適化される以前の状態に戻す処理を、ここでは逆処理と呼んでいる）を行う必要がある。このような逆処理を実行可能とするための方法として、第１に、ＷＡＮ最適化制御部１３が、オープンフロースイッチ２０−ｊ内のＷＡＮ最適化部２４に、フローの特定情報と共に、その旨を通知し、決定した種類のＷＡＮ最適化の逆処理が実行させるようにする設定を行う方法、第２に、オープンフロースイッチ２０−ｉがＷＡＮ最適化を行って送信したパケットにＷＡＮ最適化を行った旨の情報を盛り込み、オープンフロースイッチ２０−ｊがパケットに盛り込まれた情報に基づいてＷＡＮ最適化の逆処理を行う方法とを挙げることができる。後述する動作の説明は、第２の方法が適用されている場合で説明している。
【００２５】
図２において、オープンフロースイッチ２０は、フロー検出部２１、経路情報部２２、遅延測定部２３及びＷＡＮ最適化部２４を有する。
【００２６】
フロー検出部２１は、収容する端末から与えられたパケットに係るフローが既存フローか新規フローかを、経路情報部２２のフローテーブル２２Ｔに記述されているか否かに基づいて判別するものである。なお、フロー検出部２１は、他のオープンフロースイッチからパケットが与えられた場合には、そのパケットに係るフローは既存フローであるとして処理するものである。フロー検出部２１は、新規フローを検出したときには、オープンフローコントローラ１０にその旨を通知する。
【００２７】
経路情報部２２は、上述したように、１又は複数のフローエントリーが記述されているフローテーブル２２Ｔを内蔵している。経路情報部２２は、オープンフローコントローラ１０の制御下で、フローテーブル２２Ｔの編集（追加、削除、更新など）を実行するものである。経路情報部２２は、パケット（既存フローのパケット）を受信したときには、フローテーブル２２Ｔから、受信パケットに係るフローについてルール部が該当しているフローエントリーを検索し、検索されたフローエントリーのアクションに記述されている転送先に、受信したパケットを転送するものである。ここで、アクションには、後述するように、ＷＡＮ最適化を作動させるか否かが記述されていることもあり、ＷＡＮ最適化を作動させる場合には、ＷＡＮ最適化部２４内のＷＡＮ最適化テーブル３０Ｕ、３０Ｄ（図４参照）を参照させ、そこに記述されている種類のＷＡＮ最適化をＷＡＮ最適化部２４によって実行させるものである。なお、経路情報部２２は、新規フローに係るパケットを受信したときには、内蔵するフローテーブル２２Ｔに対するフローエントリーの追加処理や、ＷＡＮ最適化の処理後に、転送処理を実行する。
【００２８】
遅延測定部２３は、オープンフローコントローラ１０（の遅延測定制御部１２）の制御下で、伝搬遅延時間の測定動作を行うものである。上述したように、新規フローについて設定された直後の通信経路の両端のオープンフロースイッチ２０−ｉ及び２０−ｊ間で伝搬遅延時間が測定される。新規フローを検出した側のオープンフロースイッチ２０−ｉの遅延測定部２３は、オープンフローコントローラ１０から与えられた遅延確認用のパケットに送信時刻を挿入して設定されたばかりの通信経路に送出させる。他方の端部のオープンフロースイッチ２０−ｊの遅延測定部２３は、遅延確認用のパケットが到来したときには、その到着時刻を遅延確認用のパケットに挿入した後、オープンフローコントローラ１０に転送させる。
【００２９】
ＷＡＮ最適化部２４は、オープンフローコントローラ１０から、新規フローについて、ＷＡＮ最適化の適用有無や適用するＷＡＮ最適化の種類が通知された際には、例えば、フローテーブル２２Ｔにおける該当フローに係るフローエントリーのアクションにＷＡＮ最適化の適用有無を記述し、ＷＡＮ最適化を実行する場合であればＷＡＮ最適化テーブルにＷＡＮ最適化の種類（種類の組み合わせで定まるパターンの情報であっても良い）を記述する。なお、他の記憶方法や記憶部を適用し、フローと実行するＷＡＮ最適化の種類との対情報を記憶するようにしても良い。
【００３０】
また、ＷＡＮ最適化部２４は、経路情報部２２と協働し、受信したパケットに係るフローについて、ＷＡＮ最適化を実行しなければならない場合に、ＷＡＮ最適化若しくはその逆処理を実行する。いま対象となっているフローの、端末を収容している両端のオープンフロースイッチ２０−ｉ及び２０−ｊのうち、パケットの送信側のオープンフロースイッチ２０−ｉのＷＡＮ最適化部２４はＷＡＮ最適化を行い、他方のオープンフロースイッチ２０−ｊのＷＡＮ最適化部２４はＷＡＮ最適化の逆処理を行う。
【００３１】
図３は、伝搬遅延時間の測定値（遅延測定値）と、作動されるＷＡＮ最適化の種類との関係を示す説明図である。
【００３２】
この実施形態の場合、ＷＡＮ最適化の種類として、「ＴＣＰ代理確認応答」（図３では「ＴＣＰ」と表記）、「アプリケーション代理確認応答」（図３では「アプリ」と表記）、「圧縮（データ圧縮）」、「キャッシュ」の４種類が用意されている。「圧縮」及び「キャッシュ」は周知技術であって具体的な説明は不要であるので、以下では、「ＴＣＰ代理確認応答」及び「アプリケーション代理確認応答」について説明する。
【００３３】
ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）は、上位レイヤ（アプリケーションレイヤ）から渡されたデータを伝送するレイヤ４の通信プロトコルであり、６４ｋｂｙｔｅ単位のウインドウを持っており、デフォルトで６４ｋｂｙｔｅのサイズが設定される。オープンフロースイッチ２０に収容されているＴＣＰに従っている端末は、上位アプリケーションから渡されるデータを６４ｋｂｙｔｅ単位に区切って対向に送信し、対向先からのＡＣＫ（確認応答）を待って次の６４ｋｂｙｔｅを送信する。通信経路の伝搬遅延が大きいとＡＣＫを受信するまでに時間がかかり、大きなデータを送信する場合、このやり取りが多いためデータを全て送信するまで多くの時間がかかってしまう。端末は、６４ｋｂｙｔｅ単位でＡＣＫを要求するので、オープンフロースイッチ２０が代理でＡＣＫを端末に返答しておき、オープンフロースイッチ２０が、６４ｋｂｙｔｅ×ｎ（ｎは２以上の整数）分だけ貯めてから対向にデータを送信すれば通信経路を通るデータとＡＣＫの回数が減る分、遅延の影響を少なくすることが可能になる。「ＴＣＰ代理確認応答」というＷＡＮ最適化は、このような代理確認応答を利用した単位量の整数倍の送信処理機能である。
【００３４】
アプリケーションの中にも、ＡＣＫ（確認応答）を待って次のデータを送信する、ＴＣＰの場合と同様な通信経路の伝搬遅延の影響を受け易いアプリケーションがある。Ｗｉｎｄｏｗｓ（登録商標）のファイル共有プロトコル（ＣＩＦＳ；Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）はそのようなアプリケーションである。ＣＩＦＳは、Ｗｉｎｄｏｗｓサーバ上の共有ファイルをＯＳがＷｉｎｄｏｗｓＸＰ（登録商標）やＷｉｎｄｏｗｓ７（登録商標）の端末で、マイクロソフト社のｏｆｆｉｃｅ（登録商標）等のファイルをコピー、オープン、セーブする場合などに遅延の影響を受け易い。ＣＩＦＳでは、データ送受のウィンドウズがＴＣＰより小さく、基本は６１ｋｂｙｔｅであるが、これより小さいサイズの送受が多く、ＡＣＫを待って次のデータを送信すると、伝搬遅延の影響を非常に受け易い。そのため、ＴＣＰの場合と同様に、オープンフロースイッチ２０で通信に供していることが判別可能なアプリケーションについては、代理確認応答を利用して複数回のデータをまとめて送信することが可能である。「アプリケーション代理確認応答」とは、このような代理確認応答を利用した複数回のデータをまとめて送信する処理機能である。「アプリケーション代理確認応答」を適用可能なＣＩＦＳ以外のアプリケーションとしては、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）やＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）／ｈｔｔｐｓを挙げることができる。
【００３５】
図３において、遅延測定値が０ｍｓ〜５ｍｓ未満の場合にいずれのＷＡＮ最適化も作動させず、遅延測定値が５ｍｓ以上〜１０ｍｓ未満の場合に「ＴＣＰ代理確認応答」を作動させ、遅延測定値が１０ｍｓ以上〜１５ｍｓ未満の場合に「ＴＣＰ代理確認応答」及び「アプリケーション代理確認応答」を作動させ、遅延測定値が１５ｍｓ以上〜２０ｍｓ未満の場合に「ＴＣＰ代理確認応答」、「アプリケーション代理確認応答」及び「圧縮」を作動させ、遅延測定値が２０ｍｓ以上の場合に「ＴＣＰ代理確認応答」、「アプリケーション代理確認応答」、「圧縮」及び「キャッシュ」の全てを作動させる。
【００３６】
以上では、遅延測定値の幅が５ｍｓ毎の等分であるものを示したが、作動させるＷＡＮ最適化種類を切り替える遅延測定幅は５ｍｓに限定されず、等分である必要もない。また、図３では、遅延測定値が大きくなるに従って作動させるＷＡＮ最適化種類の数を増やしていくものを示したが、種類数は同じであるが、種類の組み合わせが異なるものに置き換える処理パターンがあっても良い。例えば、「ＴＣＰ代理確認応答」、「アプリケーション代理確認応答」及び「圧縮」を作動させる遅延測定値の範囲の次の範囲では「ＴＣＰ代理確認応答」、「アプリケーション代理確認応答」及び「キャッシュ」を作動させ、さらに、その次の範囲で「ＴＣＰ代理確認応答」、「アプリケーション代理確認応答」、「圧縮」及び「キャッシュ」の全てを作動させるようにしても良い。作動可能なＷＡＮ最適化の種類数は４種類に限定されず、これより多くても少なくても良い。例えば、「アプリケーション代理確認応答」をＷＡＮ最適化の種類から除外するようにしても良い。また例えば、圧縮率が異なる「第１の圧縮」及び「第２の圧縮」を共にＷＡＮ最適化の異なる種類として取り扱うようにしても良い。この場合には、「第１の圧縮」及び「第２の圧縮」は選択的な作動となる。また、パケットのトンネリング技術を、ＷＡＮ最適化の１種類として適用するようにしても良い。
【００３７】
図４は、オープンフロースイッチ２０のＷＡＮ最適化部２４の機能的な詳細構成を示す説明図であり、経路情報部２２の要素であるフローテーブル２２Ｔ（２２ＴＵ、２２ＴＤ）も書き出している。
【００３８】
図４において、上側要素は、当該オープンフロースイッチ２０が収容している端末からのデータパケットを処理する構成部分を示しており、下側要素は、当該オープンフロースイッチ２０が収容している端末へのデータパケットを処理する構成部分を示している。言い換えると、ＷＡＮ最適化を実行する場合であれば、上側要素がＷＡＮ最適化を行う方であり、下側要素がＷＡＮ最適化の逆処理を行う方である。
【００３９】
当該オープンフロースイッチ２０が収容している端末からのデータパケットに係るフロー（このフローを下流に向かうフローと呼び、逆方向のフローを上流に向かうフローと呼ぶこととする）は、フローテーブル２２ＴＵの記述に従い、そのままパケットが送出されるフローと、ＷＡＮ最適化テーブル３０Ｕの検索を実行するフローとに分けられる。ＷＡＮ最適化テーブル３０Ｕの検索により、フローは、さらに図３に示した処理パターン２〜５のＷＡＮ最適化を行うフローに分けられる。処理パターン２〜５のいずれかの処理パターンのＷＡＮ最適化を行うフローも、ＴＣＰ代理確認応答処理部（図４では「ＴＣＰ」と表記してる）３１Ｕの処理がなされるように振り分けられる。処理パターン３〜５のいずれかの処理パターンのＷＡＮ最適化を行うフローは、アプリケーション代理確認応答処理部（図４では「アプリ」と表記してる）３２Ｕの処理がなされるように振り分けられる。処理パターン４又は５のＷＡＮ最適化を行うフローは、圧縮処理部（図４では「圧縮」と表記してる）３３Ｕの処理がなされるように振り分けられる。ＷＡＮ最適化テーブル３０Ｕ及び３０Ｄに関連してはキャッシュ部３４が設けられており、処理パターン５のＷＡＮ最適化を行うフローは、キャッシュ部３４内のメモリにデータを格納したり、問合せを行ってデータを取り出すことができるようになされている。このような取り出されたデータが、適宜、ＴＣＰ代理確認応答処理部３１Ｕ、アプリケーション代理確認応答処理部３２Ｕ、圧縮処理部３３Ｕなどで適宜処理される。
【００４０】
また、上流に向かうフローに係るデータパケットを処理できるように、フローテーブル２２ＴＤ、ＷＡＮ最適化テーブル３０Ｄ、ＴＣＰ代理確認応答処理部３１Ｄ、アプリケーション代理確認応答処理部３２Ｄ、圧縮処理部３３Ｄなどが設けられている。ＴＣＰ代理確認応答処理部３１Ｄ、アプリケーション代理確認応答処理部３２Ｄ及び圧縮処理部３３Ｄはそれぞれ、対応するＴＣＰ代理確認応答処理部３１Ｕ、アプリケーション代理確認応答処理部３２Ｕ、圧縮処理部３３Ｕの逆処理を実行するものである。なお、「キャッシュ」のＷＡＮ最適化に対する逆処理は存在しない。ＷＡＮ最適化テーブル３０Ｕはフローの特定情報をキーとして検索されるものであるが、ＷＡＮ最適化テーブル３０Ｄは、後述するようにデータパケットの宛先ポート番号をキーとして検索されるものである。
【００４１】
代理ＡＣＫ部３５は、「ＴＣＰ代理確認応答」や「アプリケーション代理確認応答」などで必要となる代理の確認応答（ＡＣＫ）の送出処理を行うものである。また、代理の確認応答の送出を行ったために、本来の確認応答が到来したときには、代理ＡＣＫ部３５は、その本来の確認応答の破棄などを行うものである。
【００４２】
（Ａ−２）実施形態の動作
次に、実施形態のオープンフローネットワークシステムの動作を、図面を参照しながら説明する。
【００４３】
ここで、図５が、オープンフローネットワークシステムの各部のシーケンス図である。図５は、オープンフロースイッチ２０−１に収容されている端末４０−１が、オープンフロースイッチ２０−３に収容されている端末４０−２に宛てた、新規フローに係るデータパケットを送信した場合の動作を示している。
【００４４】
端末４０−１が、今まで宛先としたことがないデータパケットＰＡ１を送出してオープンフロースイッチ２０−１に到着すると（Ｓ１００）、オープンフロースイッチ２０−１のフロー検出部２１が新規フローと検出し（Ｓ１０１）、オープンフローコントローラ１０に対して新規フローを検出した旨を通知する（Ｓ１０２）。これにより、オープンフローコントローラ１０の経路算出・設定部１１がこの新規フローについての通信経路を算出する（Ｓ１０３）。
【００４５】
ここで算出される通信経路は、端末４０−１から端末４０−２への通信経路であるが、経路算出・設定部１１は、その通信経路に介在するオープンフロースイッチ２０−１〜２０−３に対して、当該オープンフローコントローラ３０が送信した遅延確認用パケットがオープンフロースイッチ２０−１〜２０−３を介して当該オープンフローコントローラ１０に戻ってくるような経路を実現させる経路情報を設定させる（Ｓ１０４）。なお、通信に供する端末４０−１及び３０−２を収容しているオープンフロースイッチ２０−１及び２０−３の他の、中継動作するオープンフロースイッチがオープンフロースイッチ２０−２の１つだけの場合を図５では示しているが、中継動作するオープンフロースイッチの数は一定ではなく、フロー毎に変化するものである。
【００４６】
その後、そのような経路設定が終了したことが通知された遅延測定制御部１２は、遅延確認用パケットを生成し（Ｓ１０５）、最も上流側のオープンフロースイッチ２０−１に対して生成した遅延確認用パケットを送信する（Ｓ１０６）。
【００４７】
非特許文献１では複数種類のパケットのフォーマットを規定しており（例えば、最新バージョンでは１５種類）、その中には、ヘッダフィールドのレイヤ４における送信元ポート番号に続いて送信時刻（Ｔｒａｎｓ  ＴｉｍｅＳｔａｍｐ）を記述し、宛先ポート番号に続いて受信時刻（Ｒｅｃｅｉｖｅ  ＴｉｍｅＳｔａｍｐ）を記述することができるフォーマットのパケットがあり、例えば、このようなフォーマットのパケットを遅延確認用パケットに用いる。
【００４８】
オープンフロースイッチ２０−１の経路情報部２２は、ステップＳ１０４で設定された経路情報に係るフローのパケットであることより遅延確認用パケットであることを認識して遅延測定部２３に渡し、遅延測定部２３は受信した遅延確認用パケットの送信時刻（Ｔｒａｎｓ  ＴｉｍｅＳｔａｍｐ）のフィールドに現在時刻ｔ１を挿入して経路情報部２２に戻し、経路情報部２２はステップＳ１０４で設定された経路情報に基づいて遅延確認用パケットを送信する（Ｓ１０７）。このような遅延確認用パケットは中継段のオープンフロースイッチ２０−２を経由し、最も下流側のオープンフロースイッチ２０−３に到達する（Ｓ１０８）。オープンフロースイッチ２０−３の経路情報部２２は、ステップＳ１０４で設定された経路情報に係るフローのパケットであることより遅延確認用パケットであることを認識して遅延測定部２３に渡し、遅延測定部２３は受信した遅延確認用パケットの受信時刻（Ｒｅｃｅｉｖｅ  ＴｉｍｅＳｔａｍｐ）のフィールドに現在時刻ｔ２を挿入して経路情報部２２に戻し、経路情報部２２はステップＳ１０４で設定された経路情報に基づいて遅延確認用パケットをオープンフローコントローラ１０に送信する（Ｓ１０９、Ｓ１１０）。
【００４９】
オープンフローコントローラ１０の遅延測定制御部１２は、遅延確認用パケットが返信されてくると、送信時刻及び受信時刻のフィールドに挿入されている２つの時刻ｔ１及びｔ２から伝搬遅延時間を得（Ｓ１１１）、その伝搬遅延時間に基づいて、ＷＡＮ最適化を適用するか否かや、適用する場合には適用するＷＡＮ最適化の種類を決定する（Ｓ１１２；図３参照）。
【００５０】
オープンフローコントローラ１０の経路算出・設定部１１及び遅延測定制御部１２は、ステップＳ１０３で算出された、端末４０−１から端末４０−２への通信経路を実現させる経路情報を、その通信経路上のオープンフロースイッチ２０−１〜２０−３に設定させると共に、最も上流側のオープンフロースイッチ２０−１に対して、ＷＡＮ最適化を適用するか否かや、適用する場合には適用するＷＡＮ最適化の種類を設定させる（Ｓ１１３）。
【００５１】
オープンフローコントローラ１０からオープンフロースイッチ２０−１〜２０−３への経路情報の設定も、制御用パケットの授受に基づいて実行される。このような制御用パケットに対するＷＡＮ最適化情報の挿入方法は任意であるが、例えば、ヘッダフィールドのレイヤ４における送信元ポート番号をいじることなく宛先ポート番号だけをＷＡＮ最適化用ポート番号に置換することでＷＡＮ最適化情報を盛り込むようにしても良い。例えば、ＷＡＮ最適化を実行しない場合には宛先ポート番号を書き換えることを実行せず、「ＴＣＰ代理確認応答」だけを作動させる場合には宛先ポート番号を「１０００」に書換え、「ＴＣＰ代理確認応答」と「アプリケーション代理確認応答」とを作動させる場合には宛先ポート番号を「２０００」に書換え、「ＴＣＰ代理確認応答」と「アプリケーション代理確認応答」と「圧縮」とを作動させる場合には宛先ポート番号を「３０００」に書換え、「ＴＣＰ代理確認応答」と「アプリケーション代理確認応答」と「圧縮」と「キャッシュ」とを作動させる場合には宛先ポート番号を「４０００」に書換える。
【００５２】
ここで、最も下流側のオープンフロースイッチ２０−３に対しても、ＷＡＮ最適化を適用するか否かや、適用する場合に適用するＷＡＮ最適化の種類を設定させるようにしても良いが、ここでは、後述するように、最も上流側のオープンフロースイッチ２０−１が、ＷＡＮ最適化を適用した場合に、データパケットの所定フィールドにその旨を書き込んで、最も下流側のオープンフロースイッチ２０−３に通知する方法を適用しているとする。このようにすると、上流側だけでＷＡＮ最適化に関する情報を管理するので、各オープンフロースイッチで管理しているＷＡＮ最適化の情報量を抑えることができる。
【００５３】
ＷＡＮ最適化情報を伴う経路情報の設定がなされた、端末４０−１を収容している最も上流側のオープンフロースイッチ２０−１の経路情報部２２及びＷＡＮ最適化部２４は、ＷＡＮ最適化を実行しない場合であれば、直ちに、設定された経路情報に従って、ステップＳ１００で受信したデータパケットＰＡ１を送信し（Ｓ１１５）、ＷＡＮ最適化を実行する場合であればステップＳ１００で受信したデータパケットＰＡ１に対して指示された種類のＷＡＮ最適化を実行した後（Ｓ１１４）、設定された経路情報に従ってそのデータパケットＰＡ１を送信する（Ｓ１１５）。なお、ＷＡＮ最適化の種類によっては、他のデータパケットを待ち受け、統合してから送信することもある。図５は処理の流れの概要を示しており、他のデータパケットを待ち受けるような場合を正確には記述できていない。また、最も上流側のオープンフロースイッチ２０−１が送信するデータパケットの宛先ポート番号のフィールドには、上述したような作動しているＷＡＮ最適化の種類を特定できるポート番号が挿入される。
【００５４】
送信されたデータパケットＰＡ１は、中継段のオープンフロースイッチ２０−２を経由して、宛先端末４０−２を収容している最も下流側のオープンフロースイッチ２０−３に到達する。
【００５５】
オープンフロースイッチ２０−３のＷＡＮ最適化部２４は、受信したデータパケットＰＡ１の宛先ポート番号フィールドに挿入されているポート番号に基づき、上流側のオープンフロースイッチ２０−１でＷＡＮ最適化が実行されているか否か、実行されている場合にはどのようなＷＡＮ最適化がなされているかを認識し、上流側のオープンフロースイッチ２０−１でＷＡＮ最適化が実行されていない場合には、受信したデータパケットＰＡ１をそのまま宛先端末３０−２に送信し（Ｓ１１７）、上流側のオープンフロースイッチ２０−１でＷＡＮ最適化が実行されている場合にはその逆処理を行って、ＷＡＮ最適化がなされていない元のデータパケットに戻した後（Ｓ１１６）、データパケットＰＡ１を宛先端末４０−２に送信する（Ｓ１１７）。
【００５６】
上述したように、ＷＡＮ最適化の種類として、「ＴＣＰ代理確認応答」や「アプリケーション代理確認応答」があり、上述したステップＳ１１４で、「ＴＣＰ代理確認応答」や「アプリケーション代理確認応答」が実行された場合には、図５では明記していないが、端末４０−１に対して、オープンフロースイッチ２０−１が確認応答（ＡＣＫ）の代理送信を行う。そのため、宛先端末４０−２がデータパケットの受信に応じて返信する確認応答は不要なものである。図５では明記していないが、宛先端末４０−２が返信した確認応答を破棄する必要があり、この破棄は、宛先端末４０−２を収容しているオープンフロースイッチ２０−３が行なうようにしても良く、また、送信元端末４０−１を収容しているオープンフロースイッチ２０−１が行なうようにしても良い。
【００５７】
次に、端末４０−１が、同一の宛先端末４０−２に対して新たなデータパケットＰＡ２を送出してオープンフロースイッチ２０−１に到着したとする（Ｓ１１８）。このとき、オープンフロースイッチ２０−１のフロー検出部２１はフローテーブル２２Ｔの記述に基づいて既存フローと検出し、そのフローについてＷＡＮ最適化テーブル（図４の３０Ｕ参照）が検索され、ＷＡＮ最適化テーブルに記述があれば、該当するＷＡＮ最適化が実行された後（Ｓ１１９）、データパケットＰＡ２がオープンフロースイッチ２０−１から送出される（Ｓ１２０）。このデータパケットＰＡ２は中継段のオープンフロースイッチ２０−２を経由して、宛先端末４０−２を収容しているオープンフロースイッチ２０−３に到達する。
【００５８】
オープンフロースイッチ２０−３のＷＡＮ最適化部２４は、このデータパケットＰＡ２に対しても、上述したデータパケットＰＡ１の受信時と同様な処理を行い、当初のものに戻されたデータパケットＰＡ２を宛先端末４０−２に送信する（Ｓ１２１、Ｓ１２２）。
【００５９】
（Ａ−３）実施形態の効果
上記実施形態によれば、オープンフローコントローラの経路算出時に、送信元端末を収容しているオープンフロースイッチと宛先端末を収容しているオープンフロースイッチとの間の伝搬遅延時間を測定し、その測定結果に応じて、オープンフロースイッチが搭載しているＷＡＮ最適化部が適宜ＷＡＮ最適化を実行するようにしたので、経路が変動しても、経路算出時の状況に応じて、ユーザが意識することなく自動的にＷＡＮ最適化が実行され、スループットの低下を防止することができる。
【００６０】
ここで、伝搬遅延時間の測定にｐｉｎｇを用いた場合には（これも、本発明の他の実施形態となる）、往復の時間測定となるのでＷＡＮ最適化機能を実行するまで時間がかかるが、上記実施形態では、片方向の通信で伝搬遅延時間を測定することができ、測定時間を短時間にすることができる。
【００６１】
また、ＷＡＮ最適化装置を端末とオープンフロースイッチとの間に介在する場合と、実施形態のようにオープンフロースイッチにＷＡＮ最適化部を搭載した場合とを比較すると、前者の場合には、ユーザが意識したフローに対してしかＷＡＮ最適化を作動させることができないが、後者の場合（実施形態の）には、伝搬遅延時間が長い通信経路に係るフローについては全てＷＡＮ最適化を作動させることができる。
【００６２】
宛先端末を収容したオープンフロースイッチについては、データパケットの宛先ポート番号フィールドに所定のポート番号を挿入して、その都度、ＷＡＮ最適化の種類を特定できるため、フローとＷＡＮ最適化の種類情報との対応を記憶しておく必要はなく、上述のように多くのフローにＷＡＮ最適化を作動させる場合であっても、管理する情報を少なく抑えることができる。
【００６３】
（Ｂ）他の実施形態
上記実施形態の説明においても種々変形実施形態に言及したが、さらに、以下の例示するような変形実施形態を挙げることができる。
【００６４】
上記実施形態では、オープンフローコントローラが１つのように説明したが、地域毎など、オープンフローコントローラが複数あって、複数のオープンフローコントローラが協働して通信経路を決定する場合にも本発明を適用することができる。この場合、複数のオープンフローコントローラの中の一つ（例えば、送信元端末を収容したオープンフロースイッチを管轄下においているオープンフローコントローラ）が主導権をとって、伝搬遅延時間の測定、測定時間に基づいたＷＡＮ最適化の適用有無や種類の決定などを行うようにすれば良い。特許請求の範囲における「オープンフローコントローラ」の表現は、１つの場合だけでなく、このような複数のオープンフローコントローラが協働する場合を含むものとする。
【００６５】
上記実施形態の説明では、２端末間の２つの通信方向に同じ通信経路（可逆的な通信経路）が設定されるか否か明示しなかったが、同じ通信経路を設定するようにしても良く、また、同じでない通信経路の設定を認めるようにしても良い。通信方向によって、必ずしも最適な通信経路が一致すると限らないので、同じでない通信経路の設定を認めるようにしても良い。
【００６６】
上記実施形態では、新規フローを検出したときに、ＷＡＮ最適化の適用有無や適用種類などを決定するものを示したが、既存フローであっても、前回のＷＡＮ最適化の適用有無や適用種類などの決定時点から、所定時間以上経過したフローに対しては、ＷＡＮ最適化の適用有無や適用種類などの決定を改めて行うようにしても良い。例えば、フローテーブルに、そのフローの前回の決定時刻を記述しておき、そのフローのデータパケットを受信したときが、その決定時刻から所定時間を超えていた場合には新規フローとみなして、上記実施形態と同様な処理を行うようにしすれば良い。
【００６７】
上記実施形態では、新規フローについて通信経路を決定したときには常に伝搬遅延時間の測定に移行するものを示したが、伝搬遅延時間の測定へ移行する条件を定め、条件を満たさない場合には、伝搬遅延時間の測定（従って、ＷＡＮ最適化の適用有無や適用種類などの決定）を行わないようにしても良い。例えば、中継するオープンフロースイッチ（図５のオープンフロースイッチ２０−２参照）の数が所定数（例えば１）以上であることを伝搬遅延時間の測定への移行条件とするようにしても良い。
【００６８】
また、新規フローについて決定された通信経路の伝搬遅延時間を測定することなく、ＷＡＮ最適化の適用有無や適用種類などを決定することがあっても良い。例えば、中継するオープンフロースイッチ（図５のオープンフロースイッチ２０−２参照）の数が所定数（例えば１００）以上であれば、伝搬遅延時間を測定することなく、全ての種類のＷＡＮ最適化を作動させることに決定するようにしても良い。また、オープンフローコントローラ１０が、通信経路毎の伝搬遅延時間の測定値を記憶しておき、同じ通信経路についての過去の測定値が直前所定期間（例えば１週間）の間に所定数（例えば５０）以上ある場合には、それを統計処理して得た値（例えば、最小の伝搬遅延時間、平均伝搬遅延時間など）に基づいて、今回の新規フローについてのＷＡＮ最適化の適用有無や適用種類などを決定するようにしても良い。同様に、オープンフローコントローラ１０が、リンクコスト（静的なリンクの遅延情報）を記憶しておき、当該情報に基づきＷＡＮ最適化の適用有無や適用種類などを決定するようにしても良い。
【００６９】
本発明のオープンフローネットワークシステムは、オープンフロースイッチング技術を適用しているものであれば良く、ネットワークの規模は限定されるものではない。
【符号の説明】
【００７０】
１０…オープンフローコントローラ、１１…経路算出・設定部、１２…遅延測定制御部、１３…ＷＡＮ最適化制御部、２０、２０−１〜２０−３…オープンフロースイッチ、２１…フロー検出部、２２…経路情報部、２３…遅延測定部、２４…ＷＡＮ最適化部、４０−１、４０−２…端末。
【図１】
2013255185.tif 000003
【図２】
2013255185.tif 000004
【図３】
2013255185.tif 000005
【図４】
2013255185.tif 000006
【図５】
2013255185.tif 000007
【図６】
2013255185.tif 000008