JP2013255185A - オープンフロースイッチ、オープンフローコントローラ及びオープンフローネットワークシステム - Google Patents
オープンフロースイッチ、オープンフローコントローラ及びオープンフローネットワークシステム Download PDFInfo
- Publication number
- JP2013255185A JP2013255185A JP2012131039A JP2012131039A JP2013255185A JP 2013255185 A JP2013255185 A JP 2013255185A JP 2012131039 A JP2012131039 A JP 2012131039A JP 2012131039 A JP2012131039 A JP 2012131039A JP 2013255185 A JP2013255185 A JP 2013255185A
- Authority
- JP
- Japan
- Prior art keywords
- openflow
- switch
- flow
- open flow
- openflow switch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】 ユーザが意識しなくてもオープンフローネットワークのスループットを安定化できるオープンフローネットワークシステムを提供する。
【解決手段】 オープンフロースイッチは、1又は複数種類のWAN最適化を適用可能としておく。オープンフローコントローラは、新規フローについての通信経路を算出したときには、その通信経路での伝搬遅延時間を得て、その伝搬遅延時間に応じて、そのフローのパケットにWAN最適化を適用するか否か、適用する場合の種類を決定し、通信経路上の所定のオープンフロースイッチにそのことを通知する。
【選択図】 図1
【解決手段】 オープンフロースイッチは、1又は複数種類のWAN最適化を適用可能としておく。オープンフローコントローラは、新規フローについての通信経路を算出したときには、その通信経路での伝搬遅延時間を得て、その伝搬遅延時間に応じて、そのフローのパケットにWAN最適化を適用するか否か、適用する場合の種類を決定し、通信経路上の所定のオープンフロースイッチにそのことを通知する。
【選択図】 図1
Description
本発明は、オープンフロースイッチ、オープンフローコントローラ及びオープンフローネットワークシステムに関し、例えば、通信経路毎にワイドエリアネットワーク(WAN)の最適化(高速化)を実行しようとしたものに適用し得る。
一般に、従来のネットワークのトランスポート層やアプリケーション層のプロトコルは、応答が速いローカルエリアネットワーク(LAN)を想定しており、対向側からの応答に応じてデータを送出するため、ワイドエリアネットワーク(WAN)を利用した場合、ノードのホップ数や伝送路の距離遅延などにより対向からの応答が遅いと、スループットが落ちてしまうという課題があった。
また、スタンフォード大学を中心とした「オープンフロースイッチングコンソーシアム」が2008年から提唱している次世代ネットワーク制御技術のオープンフロースイッチング技術(非特許文献1参照)は、「オープンフロースイッチ」、「オープンフローコントローラ」、「オープンフロープロトコル」から構成されている。そして、オープンフロースイッチで構成されるネットワークの全ての経路制御をオープンフローコントローラが一元的に行い、フローを接続する毎に、オープンフローコントローラが最適な通信経路を算出し、通信経路上の各オープンフロースイッチのフローテーブルの要素を生成してフローエントリーを行う。従来のネットワーク制御方式において、主に、IPアドレスのルーティングによって行われてきた経路制御に対して、オープンフロースイッチング技術では、送信元側及び宛先側のMACアドレスやIPアドレス、ポート番号などの組み合わせによって決定される一連の通信を「フロー」として定義し、フロー単位での経路制御を実現している。これによって、品質の確保やネットワークの利用率向上などが期待されている。
http://www.openflow.org/
しかし、従来のソフトウエアで処理していたスイッチに比較して約100倍の処理機能、従来のハードウエアで処理しているスイッチにも引けを取らない処理機能をもつオープンフロースイッチング技術を用いても、ノードのホップ数に対する遅延対策にはなるが、伝搬路の距離に応じた大きな伝搬遅延時間の対策にはなっていない。以下、この課題を、図6を用いて説明する。
図6の例は、複数(6個の)のオープンフロースイッチ(OFS)1−1〜1−6がリング状に配列され、オープンフロースイッチ1−1に収容されている端末2−1と、オープンフロースイッチ1−5に収容されている端末(端末はエンドの通信装置を意味しており、ファイルサーバなども、エンドの通信装置として用いられている場合には「端末」に該当する)2−2との経路を設定する場合を示している。この場合、オープンフロースイッチ1−6を経由する経路R1と、オープンフロースイッチ1−2〜1−4を経由する経路R2とがあり、経路R1の方が経路R2より、遅延測定結果では、遅延量もスループットも良好となる。しかしながら、オープンフローコントローラ(OFC)3が最適な経路を計算し、オープンフロースイッチ1−1〜1−6に経路設定するオープンフローネットワークにおいては、環境の状況(輻輳、ノード故障等)によって、遅延の少ない経路R1が選択不可能で遅延の多い経路R2を選択せざるを得ない場合がある。
経路R2が選択された場合には端末2−1及び2−2のスループットが落ちてしまう。このような不都合を回避するため、エンドユーザの判断で高価なWAN最適化装置3−1、3−2を導入し、フロー毎に、経路を固定することも考えられる。WAN最適化装置3−1、3−2は、WANでの転送効率を高めるような処理(WAN最適化(WAN高速化))を行うものである(特許文献1、特許文献2参照)。
ここで、フロー毎に経路の変動が多い場合には、ユーザは、高価なWAN最適化装置を導入すべきかどうか判断することが難しい。また、導入したとしても、どのような経路をWAN最適化装置に設定すべきかをユーザは容易に判断できない。また、両端末共に、同一のユーザに関連する端末でない場合には、一方だけに、WAN最適化装置が導入され、WAN最適化装置が有効に機能し得ない場合も存在する。
上述した課題を整理すると以下の通りである。オープンフロースイッチング技術をそのまま適用した場合には、オープンフローにおける経路選択はフローを接続するときの環境に応じて最適経路を選択するため、スループットが接続のたびに変動してしまい、スループットが低下することもあり得る。これを回避しようとして、WAN最適化装置を導入してもユーザ手動で経路を設定するため、十分な効果を期待し難い。
そのため、ユーザが高度な技術的知識を持たなくてもスループットを安定させることができるオープンフロースイッチ、オープンフローコントローラ及びオープンフローネットワークシステムが望まれている。
第1の本発明は、新規フローについて、送信元端末を収容した第1のオープンフロースイッチから宛先端末を収容した第2のオープンフロースイッチまでの通信経路を算出し、上記通信経路に介在する、上記第1及び第2のオープンフロースイッチを含めた全てのオープンフロースイッチに対して、上記新規フローについての経路情報を設定させるオープンフローコントローラにおいて、(1)上記新規フローについて算出された上記通信経路の伝搬遅延時間を取得する遅延取得制御手段と、(2)取得された伝搬遅延時間に基づき、ネットワーク高速化処理の適用有無を判別し、ネットワーク高速化処理の適用が必要なときに、少なくとも上記第1のオープンフロースイッチに、上記新規フローに対してネットワークの高速化処理を適用することを指示するネットワーク高速化制御手段とを有することを特徴とする。
第2の本発明は、オープンフローコントローラが算出した新規フローについての、送信元端末を収容した第1のオープンフロースイッチから宛先端末を収容した第2のオープンフロースイッチまでの通信経路に介在する場合に、上記通信経路に係る経路情報の設定を受けるオープンフロースイッチにおいて、当該オープンフロースイッチが上記通信経路の端部に位置する第1のオープンフロースイッチであるために、上記オープンフローコントローラから、上記新規フローに対するネットワーク高速化処理の適用が指示されたときに、その新規フローに係るパケットに対してネットワーク高速化処理を実行し、当該オープンフロースイッチが上記通信経路の端部に位置する第2のオープンフロースイッチであるときに、ネットワーク高速化処理が施されたパケットを受信したときに、ネットワーク高速化処理が施される前の状態にパケットを戻すネットワーク高速化手段とを有することを特徴とする。
第3の本発明のオープンフローネットワークシステムは、第1の本発明のオープンフローコントローラと、第2の本発明の複数のオープンフロースイッチとを構成要素として有することを特徴とする。
本発明によれば、ユーザが高度な技術的知識を持たなくてもオープンフローネットワークのスループットを安定させることができるようになる。
(A)主たる実施形態
以下、本発明によるオープンフロースイッチ、オープンフローコントローラ及びオープンフローネットワークシステムの一実施形態を、図面を参照しながら詳述する。
以下、本発明によるオープンフロースイッチ、オープンフローコントローラ及びオープンフローネットワークシステムの一実施形態を、図面を参照しながら詳述する。
(A−1)実施形態の構成
実施形態のオープンフローネットワークシステムは、図1に詳細構成を示す実施形態のオープンフローコントローラ10と、図2に詳細構成を示す複数の実施形態のオープンフロースイッチ20とを有している(上述した図6参照)。
実施形態のオープンフローネットワークシステムは、図1に詳細構成を示す実施形態のオープンフローコントローラ10と、図2に詳細構成を示す複数の実施形態のオープンフロースイッチ20とを有している(上述した図6参照)。
ここで、オープンフローコントローラ10は、CPUと、CPUが実行するプログラムとで内部構成の大半を形成することもできるが、このような場合であっても、機能的には図1で表すことができる。同様に、オープンフロースイッチ20も、CPUと、CPUが実行するプログラムとで内部構成の大半を形成することもできるが、このような場合であっても、機能的には図2で表すことができる。
図1において、オープンフローコントローラ10は、経路算出・設定部11、遅延測定制御部12及びWAN最適化制御部13を有する。
経路算出・設定部11は、いずれかのオープンフロースイッチ20−iから、送信元側及び宛先側の端末に係るMACアドレスやIPアドレス、ポート番号などの組み合わせ情報を含む、新規なフローが検出された旨の情報が与えられたとき、新規なフローに適用する通信経路を算出し、その通信経路上のそれぞれのオープンフロースイッチにおける経路情報部22(図2参照)のフローテーブル22Tに、その通信経路を実現させるためにフローエントリーを設定させるものである。フローエントリーは、例えば、ルールとアクションとでなり、ルールにフローを特定する情報(全てのフローという特定情報のこともあり得る)を記述し、アクションに転送先(多くの場合、通信経路上における次のオープンフロースイッチ)の情報を記述したものである。なお、この実施形態において、経路算出・設定部11は、例えば、上述したオープンフロースイッチング技術(非特許文献1参照)に従った処理を実行するものであって、新規な処理を実行するものではない。
遅延測定制御部12は、算出された通信経路の両端のオープンフロースイッチ20−i及び20−j間の伝搬遅延時間の測定を制御するものである。遅延測定制御部12は、例えば、新規フローを検出した端部のオープンフロースイッチ20−iから、遅延確認用パケットを算出された通信経路に送出させ、この通信経路を介して、遅延確認用パケットを他方の端部のオープンフロースイッチ20−jに到達させ、オープンフロースイッチ20−iからオープンフロースイッチ20−jへの伝搬遅延時間を得るものである。
WAN最適化制御部13は、遅延測定制御部12によって測定された通信経路上で両端のオープンフロースイッチ20−i及び20−j間の伝搬遅延時間に基づいて、WAN最適化が必要か否か、WAN最適化が必要な場合においてどの種類のWAN最適化を実行するかを決定するものである。WAN最適化制御部13は、いずれか1種類以上のWAN最適化を行うと決定したときには、オープンフロースイッチ20−i内のWAN最適化部24に、フローの特定情報と共に、その旨を通知し、決定した種類のWAN最適化が実行させるようにするものである。
ここで、WAN最適化の種類によっては、オープンフロースイッチ20−iに対向するオープンフロースイッチ20−jにおいて、オープンフロースイッチ20−iが行ったWAN最適化の逆処理(WAN最適化される以前の状態に戻す処理を、ここでは逆処理と呼んでいる)を行う必要がある。このような逆処理を実行可能とするための方法として、第1に、WAN最適化制御部13が、オープンフロースイッチ20−j内のWAN最適化部24に、フローの特定情報と共に、その旨を通知し、決定した種類のWAN最適化の逆処理が実行させるようにする設定を行う方法、第2に、オープンフロースイッチ20−iがWAN最適化を行って送信したパケットにWAN最適化を行った旨の情報を盛り込み、オープンフロースイッチ20−jがパケットに盛り込まれた情報に基づいてWAN最適化の逆処理を行う方法とを挙げることができる。後述する動作の説明は、第2の方法が適用されている場合で説明している。
図2において、オープンフロースイッチ20は、フロー検出部21、経路情報部22、遅延測定部23及びWAN最適化部24を有する。
フロー検出部21は、収容する端末から与えられたパケットに係るフローが既存フローか新規フローかを、経路情報部22のフローテーブル22Tに記述されているか否かに基づいて判別するものである。なお、フロー検出部21は、他のオープンフロースイッチからパケットが与えられた場合には、そのパケットに係るフローは既存フローであるとして処理するものである。フロー検出部21は、新規フローを検出したときには、オープンフローコントローラ10にその旨を通知する。
経路情報部22は、上述したように、1又は複数のフローエントリーが記述されているフローテーブル22Tを内蔵している。経路情報部22は、オープンフローコントローラ10の制御下で、フローテーブル22Tの編集(追加、削除、更新など)を実行するものである。経路情報部22は、パケット(既存フローのパケット)を受信したときには、フローテーブル22Tから、受信パケットに係るフローについてルール部が該当しているフローエントリーを検索し、検索されたフローエントリーのアクションに記述されている転送先に、受信したパケットを転送するものである。ここで、アクションには、後述するように、WAN最適化を作動させるか否かが記述されていることもあり、WAN最適化を作動させる場合には、WAN最適化部24内のWAN最適化テーブル30U、30D(図4参照)を参照させ、そこに記述されている種類のWAN最適化をWAN最適化部24によって実行させるものである。なお、経路情報部22は、新規フローに係るパケットを受信したときには、内蔵するフローテーブル22Tに対するフローエントリーの追加処理や、WAN最適化の処理後に、転送処理を実行する。
遅延測定部23は、オープンフローコントローラ10(の遅延測定制御部12)の制御下で、伝搬遅延時間の測定動作を行うものである。上述したように、新規フローについて設定された直後の通信経路の両端のオープンフロースイッチ20−i及び20−j間で伝搬遅延時間が測定される。新規フローを検出した側のオープンフロースイッチ20−iの遅延測定部23は、オープンフローコントローラ10から与えられた遅延確認用のパケットに送信時刻を挿入して設定されたばかりの通信経路に送出させる。他方の端部のオープンフロースイッチ20−jの遅延測定部23は、遅延確認用のパケットが到来したときには、その到着時刻を遅延確認用のパケットに挿入した後、オープンフローコントローラ10に転送させる。
WAN最適化部24は、オープンフローコントローラ10から、新規フローについて、WAN最適化の適用有無や適用するWAN最適化の種類が通知された際には、例えば、フローテーブル22Tにおける該当フローに係るフローエントリーのアクションにWAN最適化の適用有無を記述し、WAN最適化を実行する場合であればWAN最適化テーブルにWAN最適化の種類(種類の組み合わせで定まるパターンの情報であっても良い)を記述する。なお、他の記憶方法や記憶部を適用し、フローと実行するWAN最適化の種類との対情報を記憶するようにしても良い。
また、WAN最適化部24は、経路情報部22と協働し、受信したパケットに係るフローについて、WAN最適化を実行しなければならない場合に、WAN最適化若しくはその逆処理を実行する。いま対象となっているフローの、端末を収容している両端のオープンフロースイッチ20−i及び20−jのうち、パケットの送信側のオープンフロースイッチ20−iのWAN最適化部24はWAN最適化を行い、他方のオープンフロースイッチ20−jのWAN最適化部24はWAN最適化の逆処理を行う。
図3は、伝搬遅延時間の測定値(遅延測定値)と、作動されるWAN最適化の種類との関係を示す説明図である。
この実施形態の場合、WAN最適化の種類として、「TCP代理確認応答」(図3では「TCP」と表記)、「アプリケーション代理確認応答」(図3では「アプリ」と表記)、「圧縮(データ圧縮)」、「キャッシュ」の4種類が用意されている。「圧縮」及び「キャッシュ」は周知技術であって具体的な説明は不要であるので、以下では、「TCP代理確認応答」及び「アプリケーション代理確認応答」について説明する。
TCP(Transmission Control Protocol)は、上位レイヤ(アプリケーションレイヤ)から渡されたデータを伝送するレイヤ4の通信プロトコルであり、64kbyte単位のウインドウを持っており、デフォルトで64kbyteのサイズが設定される。オープンフロースイッチ20に収容されているTCPに従っている端末は、上位アプリケーションから渡されるデータを64kbyte単位に区切って対向に送信し、対向先からのACK(確認応答)を待って次の64kbyteを送信する。通信経路の伝搬遅延が大きいとACKを受信するまでに時間がかかり、大きなデータを送信する場合、このやり取りが多いためデータを全て送信するまで多くの時間がかかってしまう。端末は、64kbyte単位でACKを要求するので、オープンフロースイッチ20が代理でACKを端末に返答しておき、オープンフロースイッチ20が、64kbyte×n(nは2以上の整数)分だけ貯めてから対向にデータを送信すれば通信経路を通るデータとACKの回数が減る分、遅延の影響を少なくすることが可能になる。「TCP代理確認応答」というWAN最適化は、このような代理確認応答を利用した単位量の整数倍の送信処理機能である。
アプリケーションの中にも、ACK(確認応答)を待って次のデータを送信する、TCPの場合と同様な通信経路の伝搬遅延の影響を受け易いアプリケーションがある。Windows(登録商標)のファイル共有プロトコル(CIFS;Common Internet File System)はそのようなアプリケーションである。CIFSは、Windowsサーバ上の共有ファイルをOSがWindowsXP(登録商標)やWindows7(登録商標)の端末で、マイクロソフト社のoffice(登録商標)等のファイルをコピー、オープン、セーブする場合などに遅延の影響を受け易い。CIFSでは、データ送受のウィンドウズがTCPより小さく、基本は61kbyteであるが、これより小さいサイズの送受が多く、ACKを待って次のデータを送信すると、伝搬遅延の影響を非常に受け易い。そのため、TCPの場合と同様に、オープンフロースイッチ20で通信に供していることが判別可能なアプリケーションについては、代理確認応答を利用して複数回のデータをまとめて送信することが可能である。「アプリケーション代理確認応答」とは、このような代理確認応答を利用した複数回のデータをまとめて送信する処理機能である。「アプリケーション代理確認応答」を適用可能なCIFS以外のアプリケーションとしては、SMTP(Simple Mail Transfer Protocol)やHTTP(Hyper Text Transfer Protocol)/httpsを挙げることができる。
図3において、遅延測定値が0ms〜5ms未満の場合にいずれのWAN最適化も作動させず、遅延測定値が5ms以上〜10ms未満の場合に「TCP代理確認応答」を作動させ、遅延測定値が10ms以上〜15ms未満の場合に「TCP代理確認応答」及び「アプリケーション代理確認応答」を作動させ、遅延測定値が15ms以上〜20ms未満の場合に「TCP代理確認応答」、「アプリケーション代理確認応答」及び「圧縮」を作動させ、遅延測定値が20ms以上の場合に「TCP代理確認応答」、「アプリケーション代理確認応答」、「圧縮」及び「キャッシュ」の全てを作動させる。
以上では、遅延測定値の幅が5ms毎の等分であるものを示したが、作動させるWAN最適化種類を切り替える遅延測定幅は5msに限定されず、等分である必要もない。また、図3では、遅延測定値が大きくなるに従って作動させるWAN最適化種類の数を増やしていくものを示したが、種類数は同じであるが、種類の組み合わせが異なるものに置き換える処理パターンがあっても良い。例えば、「TCP代理確認応答」、「アプリケーション代理確認応答」及び「圧縮」を作動させる遅延測定値の範囲の次の範囲では「TCP代理確認応答」、「アプリケーション代理確認応答」及び「キャッシュ」を作動させ、さらに、その次の範囲で「TCP代理確認応答」、「アプリケーション代理確認応答」、「圧縮」及び「キャッシュ」の全てを作動させるようにしても良い。作動可能なWAN最適化の種類数は4種類に限定されず、これより多くても少なくても良い。例えば、「アプリケーション代理確認応答」をWAN最適化の種類から除外するようにしても良い。また例えば、圧縮率が異なる「第1の圧縮」及び「第2の圧縮」を共にWAN最適化の異なる種類として取り扱うようにしても良い。この場合には、「第1の圧縮」及び「第2の圧縮」は選択的な作動となる。また、パケットのトンネリング技術を、WAN最適化の1種類として適用するようにしても良い。
図4は、オープンフロースイッチ20のWAN最適化部24の機能的な詳細構成を示す説明図であり、経路情報部22の要素であるフローテーブル22T(22TU、22TD)も書き出している。
図4において、上側要素は、当該オープンフロースイッチ20が収容している端末からのデータパケットを処理する構成部分を示しており、下側要素は、当該オープンフロースイッチ20が収容している端末へのデータパケットを処理する構成部分を示している。言い換えると、WAN最適化を実行する場合であれば、上側要素がWAN最適化を行う方であり、下側要素がWAN最適化の逆処理を行う方である。
当該オープンフロースイッチ20が収容している端末からのデータパケットに係るフロー(このフローを下流に向かうフローと呼び、逆方向のフローを上流に向かうフローと呼ぶこととする)は、フローテーブル22TUの記述に従い、そのままパケットが送出されるフローと、WAN最適化テーブル30Uの検索を実行するフローとに分けられる。WAN最適化テーブル30Uの検索により、フローは、さらに図3に示した処理パターン2〜5のWAN最適化を行うフローに分けられる。処理パターン2〜5のいずれかの処理パターンのWAN最適化を行うフローも、TCP代理確認応答処理部(図4では「TCP」と表記してる)31Uの処理がなされるように振り分けられる。処理パターン3〜5のいずれかの処理パターンのWAN最適化を行うフローは、アプリケーション代理確認応答処理部(図4では「アプリ」と表記してる)32Uの処理がなされるように振り分けられる。処理パターン4又は5のWAN最適化を行うフローは、圧縮処理部(図4では「圧縮」と表記してる)33Uの処理がなされるように振り分けられる。WAN最適化テーブル30U及び30Dに関連してはキャッシュ部34が設けられており、処理パターン5のWAN最適化を行うフローは、キャッシュ部34内のメモリにデータを格納したり、問合せを行ってデータを取り出すことができるようになされている。このような取り出されたデータが、適宜、TCP代理確認応答処理部31U、アプリケーション代理確認応答処理部32U、圧縮処理部33Uなどで適宜処理される。
また、上流に向かうフローに係るデータパケットを処理できるように、フローテーブル22TD、WAN最適化テーブル30D、TCP代理確認応答処理部31D、アプリケーション代理確認応答処理部32D、圧縮処理部33Dなどが設けられている。TCP代理確認応答処理部31D、アプリケーション代理確認応答処理部32D及び圧縮処理部33Dはそれぞれ、対応するTCP代理確認応答処理部31U、アプリケーション代理確認応答処理部32U、圧縮処理部33Uの逆処理を実行するものである。なお、「キャッシュ」のWAN最適化に対する逆処理は存在しない。WAN最適化テーブル30Uはフローの特定情報をキーとして検索されるものであるが、WAN最適化テーブル30Dは、後述するようにデータパケットの宛先ポート番号をキーとして検索されるものである。
代理ACK部35は、「TCP代理確認応答」や「アプリケーション代理確認応答」などで必要となる代理の確認応答(ACK)の送出処理を行うものである。また、代理の確認応答の送出を行ったために、本来の確認応答が到来したときには、代理ACK部35は、その本来の確認応答の破棄などを行うものである。
(A−2)実施形態の動作
次に、実施形態のオープンフローネットワークシステムの動作を、図面を参照しながら説明する。
次に、実施形態のオープンフローネットワークシステムの動作を、図面を参照しながら説明する。
ここで、図5が、オープンフローネットワークシステムの各部のシーケンス図である。図5は、オープンフロースイッチ20−1に収容されている端末40−1が、オープンフロースイッチ20−3に収容されている端末40−2に宛てた、新規フローに係るデータパケットを送信した場合の動作を示している。
端末40−1が、今まで宛先としたことがないデータパケットPA1を送出してオープンフロースイッチ20−1に到着すると(S100)、オープンフロースイッチ20−1のフロー検出部21が新規フローと検出し(S101)、オープンフローコントローラ10に対して新規フローを検出した旨を通知する(S102)。これにより、オープンフローコントローラ10の経路算出・設定部11がこの新規フローについての通信経路を算出する(S103)。
ここで算出される通信経路は、端末40−1から端末40−2への通信経路であるが、経路算出・設定部11は、その通信経路に介在するオープンフロースイッチ20−1〜20−3に対して、当該オープンフローコントローラ30が送信した遅延確認用パケットがオープンフロースイッチ20−1〜20−3を介して当該オープンフローコントローラ10に戻ってくるような経路を実現させる経路情報を設定させる(S104)。なお、通信に供する端末40−1及び30−2を収容しているオープンフロースイッチ20−1及び20−3の他の、中継動作するオープンフロースイッチがオープンフロースイッチ20−2の1つだけの場合を図5では示しているが、中継動作するオープンフロースイッチの数は一定ではなく、フロー毎に変化するものである。
その後、そのような経路設定が終了したことが通知された遅延測定制御部12は、遅延確認用パケットを生成し(S105)、最も上流側のオープンフロースイッチ20−1に対して生成した遅延確認用パケットを送信する(S106)。
非特許文献1では複数種類のパケットのフォーマットを規定しており(例えば、最新バージョンでは15種類)、その中には、ヘッダフィールドのレイヤ4における送信元ポート番号に続いて送信時刻(Trans TimeStamp)を記述し、宛先ポート番号に続いて受信時刻(Receive TimeStamp)を記述することができるフォーマットのパケットがあり、例えば、このようなフォーマットのパケットを遅延確認用パケットに用いる。
オープンフロースイッチ20−1の経路情報部22は、ステップS104で設定された経路情報に係るフローのパケットであることより遅延確認用パケットであることを認識して遅延測定部23に渡し、遅延測定部23は受信した遅延確認用パケットの送信時刻(Trans TimeStamp)のフィールドに現在時刻t1を挿入して経路情報部22に戻し、経路情報部22はステップS104で設定された経路情報に基づいて遅延確認用パケットを送信する(S107)。このような遅延確認用パケットは中継段のオープンフロースイッチ20−2を経由し、最も下流側のオープンフロースイッチ20−3に到達する(S108)。オープンフロースイッチ20−3の経路情報部22は、ステップS104で設定された経路情報に係るフローのパケットであることより遅延確認用パケットであることを認識して遅延測定部23に渡し、遅延測定部23は受信した遅延確認用パケットの受信時刻(Receive TimeStamp)のフィールドに現在時刻t2を挿入して経路情報部22に戻し、経路情報部22はステップS104で設定された経路情報に基づいて遅延確認用パケットをオープンフローコントローラ10に送信する(S109、S110)。
オープンフローコントローラ10の遅延測定制御部12は、遅延確認用パケットが返信されてくると、送信時刻及び受信時刻のフィールドに挿入されている2つの時刻t1及びt2から伝搬遅延時間を得(S111)、その伝搬遅延時間に基づいて、WAN最適化を適用するか否かや、適用する場合には適用するWAN最適化の種類を決定する(S112;図3参照)。
オープンフローコントローラ10の経路算出・設定部11及び遅延測定制御部12は、ステップS103で算出された、端末40−1から端末40−2への通信経路を実現させる経路情報を、その通信経路上のオープンフロースイッチ20−1〜20−3に設定させると共に、最も上流側のオープンフロースイッチ20−1に対して、WAN最適化を適用するか否かや、適用する場合には適用するWAN最適化の種類を設定させる(S113)。
オープンフローコントローラ10からオープンフロースイッチ20−1〜20−3への経路情報の設定も、制御用パケットの授受に基づいて実行される。このような制御用パケットに対するWAN最適化情報の挿入方法は任意であるが、例えば、ヘッダフィールドのレイヤ4における送信元ポート番号をいじることなく宛先ポート番号だけをWAN最適化用ポート番号に置換することでWAN最適化情報を盛り込むようにしても良い。例えば、WAN最適化を実行しない場合には宛先ポート番号を書き換えることを実行せず、「TCP代理確認応答」だけを作動させる場合には宛先ポート番号を「1000」に書換え、「TCP代理確認応答」と「アプリケーション代理確認応答」とを作動させる場合には宛先ポート番号を「2000」に書換え、「TCP代理確認応答」と「アプリケーション代理確認応答」と「圧縮」とを作動させる場合には宛先ポート番号を「3000」に書換え、「TCP代理確認応答」と「アプリケーション代理確認応答」と「圧縮」と「キャッシュ」とを作動させる場合には宛先ポート番号を「4000」に書換える。
ここで、最も下流側のオープンフロースイッチ20−3に対しても、WAN最適化を適用するか否かや、適用する場合に適用するWAN最適化の種類を設定させるようにしても良いが、ここでは、後述するように、最も上流側のオープンフロースイッチ20−1が、WAN最適化を適用した場合に、データパケットの所定フィールドにその旨を書き込んで、最も下流側のオープンフロースイッチ20−3に通知する方法を適用しているとする。このようにすると、上流側だけでWAN最適化に関する情報を管理するので、各オープンフロースイッチで管理しているWAN最適化の情報量を抑えることができる。
WAN最適化情報を伴う経路情報の設定がなされた、端末40−1を収容している最も上流側のオープンフロースイッチ20−1の経路情報部22及びWAN最適化部24は、WAN最適化を実行しない場合であれば、直ちに、設定された経路情報に従って、ステップS100で受信したデータパケットPA1を送信し(S115)、WAN最適化を実行する場合であればステップS100で受信したデータパケットPA1に対して指示された種類のWAN最適化を実行した後(S114)、設定された経路情報に従ってそのデータパケットPA1を送信する(S115)。なお、WAN最適化の種類によっては、他のデータパケットを待ち受け、統合してから送信することもある。図5は処理の流れの概要を示しており、他のデータパケットを待ち受けるような場合を正確には記述できていない。また、最も上流側のオープンフロースイッチ20−1が送信するデータパケットの宛先ポート番号のフィールドには、上述したような作動しているWAN最適化の種類を特定できるポート番号が挿入される。
送信されたデータパケットPA1は、中継段のオープンフロースイッチ20−2を経由して、宛先端末40−2を収容している最も下流側のオープンフロースイッチ20−3に到達する。
オープンフロースイッチ20−3のWAN最適化部24は、受信したデータパケットPA1の宛先ポート番号フィールドに挿入されているポート番号に基づき、上流側のオープンフロースイッチ20−1でWAN最適化が実行されているか否か、実行されている場合にはどのようなWAN最適化がなされているかを認識し、上流側のオープンフロースイッチ20−1でWAN最適化が実行されていない場合には、受信したデータパケットPA1をそのまま宛先端末30−2に送信し(S117)、上流側のオープンフロースイッチ20−1でWAN最適化が実行されている場合にはその逆処理を行って、WAN最適化がなされていない元のデータパケットに戻した後(S116)、データパケットPA1を宛先端末40−2に送信する(S117)。
上述したように、WAN最適化の種類として、「TCP代理確認応答」や「アプリケーション代理確認応答」があり、上述したステップS114で、「TCP代理確認応答」や「アプリケーション代理確認応答」が実行された場合には、図5では明記していないが、端末40−1に対して、オープンフロースイッチ20−1が確認応答(ACK)の代理送信を行う。そのため、宛先端末40−2がデータパケットの受信に応じて返信する確認応答は不要なものである。図5では明記していないが、宛先端末40−2が返信した確認応答を破棄する必要があり、この破棄は、宛先端末40−2を収容しているオープンフロースイッチ20−3が行なうようにしても良く、また、送信元端末40−1を収容しているオープンフロースイッチ20−1が行なうようにしても良い。
次に、端末40−1が、同一の宛先端末40−2に対して新たなデータパケットPA2を送出してオープンフロースイッチ20−1に到着したとする(S118)。このとき、オープンフロースイッチ20−1のフロー検出部21はフローテーブル22Tの記述に基づいて既存フローと検出し、そのフローについてWAN最適化テーブル(図4の30U参照)が検索され、WAN最適化テーブルに記述があれば、該当するWAN最適化が実行された後(S119)、データパケットPA2がオープンフロースイッチ20−1から送出される(S120)。このデータパケットPA2は中継段のオープンフロースイッチ20−2を経由して、宛先端末40−2を収容しているオープンフロースイッチ20−3に到達する。
オープンフロースイッチ20−3のWAN最適化部24は、このデータパケットPA2に対しても、上述したデータパケットPA1の受信時と同様な処理を行い、当初のものに戻されたデータパケットPA2を宛先端末40−2に送信する(S121、S122)。
(A−3)実施形態の効果
上記実施形態によれば、オープンフローコントローラの経路算出時に、送信元端末を収容しているオープンフロースイッチと宛先端末を収容しているオープンフロースイッチとの間の伝搬遅延時間を測定し、その測定結果に応じて、オープンフロースイッチが搭載しているWAN最適化部が適宜WAN最適化を実行するようにしたので、経路が変動しても、経路算出時の状況に応じて、ユーザが意識することなく自動的にWAN最適化が実行され、スループットの低下を防止することができる。
上記実施形態によれば、オープンフローコントローラの経路算出時に、送信元端末を収容しているオープンフロースイッチと宛先端末を収容しているオープンフロースイッチとの間の伝搬遅延時間を測定し、その測定結果に応じて、オープンフロースイッチが搭載しているWAN最適化部が適宜WAN最適化を実行するようにしたので、経路が変動しても、経路算出時の状況に応じて、ユーザが意識することなく自動的にWAN最適化が実行され、スループットの低下を防止することができる。
ここで、伝搬遅延時間の測定にpingを用いた場合には(これも、本発明の他の実施形態となる)、往復の時間測定となるのでWAN最適化機能を実行するまで時間がかかるが、上記実施形態では、片方向の通信で伝搬遅延時間を測定することができ、測定時間を短時間にすることができる。
また、WAN最適化装置を端末とオープンフロースイッチとの間に介在する場合と、実施形態のようにオープンフロースイッチにWAN最適化部を搭載した場合とを比較すると、前者の場合には、ユーザが意識したフローに対してしかWAN最適化を作動させることができないが、後者の場合(実施形態の)には、伝搬遅延時間が長い通信経路に係るフローについては全てWAN最適化を作動させることができる。
宛先端末を収容したオープンフロースイッチについては、データパケットの宛先ポート番号フィールドに所定のポート番号を挿入して、その都度、WAN最適化の種類を特定できるため、フローとWAN最適化の種類情報との対応を記憶しておく必要はなく、上述のように多くのフローにWAN最適化を作動させる場合であっても、管理する情報を少なく抑えることができる。
(B)他の実施形態
上記実施形態の説明においても種々変形実施形態に言及したが、さらに、以下の例示するような変形実施形態を挙げることができる。
上記実施形態の説明においても種々変形実施形態に言及したが、さらに、以下の例示するような変形実施形態を挙げることができる。
上記実施形態では、オープンフローコントローラが1つのように説明したが、地域毎など、オープンフローコントローラが複数あって、複数のオープンフローコントローラが協働して通信経路を決定する場合にも本発明を適用することができる。この場合、複数のオープンフローコントローラの中の一つ(例えば、送信元端末を収容したオープンフロースイッチを管轄下においているオープンフローコントローラ)が主導権をとって、伝搬遅延時間の測定、測定時間に基づいたWAN最適化の適用有無や種類の決定などを行うようにすれば良い。特許請求の範囲における「オープンフローコントローラ」の表現は、1つの場合だけでなく、このような複数のオープンフローコントローラが協働する場合を含むものとする。
上記実施形態の説明では、2端末間の2つの通信方向に同じ通信経路(可逆的な通信経路)が設定されるか否か明示しなかったが、同じ通信経路を設定するようにしても良く、また、同じでない通信経路の設定を認めるようにしても良い。通信方向によって、必ずしも最適な通信経路が一致すると限らないので、同じでない通信経路の設定を認めるようにしても良い。
上記実施形態では、新規フローを検出したときに、WAN最適化の適用有無や適用種類などを決定するものを示したが、既存フローであっても、前回のWAN最適化の適用有無や適用種類などの決定時点から、所定時間以上経過したフローに対しては、WAN最適化の適用有無や適用種類などの決定を改めて行うようにしても良い。例えば、フローテーブルに、そのフローの前回の決定時刻を記述しておき、そのフローのデータパケットを受信したときが、その決定時刻から所定時間を超えていた場合には新規フローとみなして、上記実施形態と同様な処理を行うようにしすれば良い。
上記実施形態では、新規フローについて通信経路を決定したときには常に伝搬遅延時間の測定に移行するものを示したが、伝搬遅延時間の測定へ移行する条件を定め、条件を満たさない場合には、伝搬遅延時間の測定(従って、WAN最適化の適用有無や適用種類などの決定)を行わないようにしても良い。例えば、中継するオープンフロースイッチ(図5のオープンフロースイッチ20−2参照)の数が所定数(例えば1)以上であることを伝搬遅延時間の測定への移行条件とするようにしても良い。
また、新規フローについて決定された通信経路の伝搬遅延時間を測定することなく、WAN最適化の適用有無や適用種類などを決定することがあっても良い。例えば、中継するオープンフロースイッチ(図5のオープンフロースイッチ20−2参照)の数が所定数(例えば100)以上であれば、伝搬遅延時間を測定することなく、全ての種類のWAN最適化を作動させることに決定するようにしても良い。また、オープンフローコントローラ10が、通信経路毎の伝搬遅延時間の測定値を記憶しておき、同じ通信経路についての過去の測定値が直前所定期間(例えば1週間)の間に所定数(例えば50)以上ある場合には、それを統計処理して得た値(例えば、最小の伝搬遅延時間、平均伝搬遅延時間など)に基づいて、今回の新規フローについてのWAN最適化の適用有無や適用種類などを決定するようにしても良い。同様に、オープンフローコントローラ10が、リンクコスト(静的なリンクの遅延情報)を記憶しておき、当該情報に基づきWAN最適化の適用有無や適用種類などを決定するようにしても良い。
本発明のオープンフローネットワークシステムは、オープンフロースイッチング技術を適用しているものであれば良く、ネットワークの規模は限定されるものではない。
10…オープンフローコントローラ、11…経路算出・設定部、12…遅延測定制御部、13…WAN最適化制御部、20、20−1〜20−3…オープンフロースイッチ、21…フロー検出部、22…経路情報部、23…遅延測定部、24…WAN最適化部、40−1、40−2…端末。
Claims (11)
- 新規フローについて、送信元端末を収容した第1のオープンフロースイッチから宛先端末を収容した第2のオープンフロースイッチまでの通信経路を算出し、上記通信経路に介在する、上記第1及び第2のオープンフロースイッチを含めた全てのオープンフロースイッチに対して、上記新規フローについての経路情報を設定させるオープンフローコントローラにおいて、
上記新規フローについて算出された上記通信経路の伝搬遅延時間を取得する遅延取得制御手段と、
取得された伝搬遅延時間に基づき、ネットワーク高速化処理の適用有無を判別し、ネットワーク高速化処理の適用が必要なときに、少なくとも上記第1のオープンフロースイッチに、上記新規フローに対してネットワークの高速化処理を適用することを指示するネットワーク高速化制御手段と
を有することを特徴とするオープンフローコントローラ。 - 上記遅延取得制御手段は、伝搬遅延時間の測定を実行させることにより、上記通信経路の伝搬遅延時間を取得することを特徴とする請求項1に記載のオープンフローコントローラ。
- 上記遅延取得制御手段は、上記第1のオープンフロースイッチが記述できる送信時刻の欄と上記第2のオープンフロースイッチが記述できる受信時刻の欄を有する測定確認パケットを、上記第1のオープンフロースイッチに与え、上記通信経路を経由して、上記第2のオープンフロースイッチに到着した上記測定確認用パケットを取込んで上記伝搬遅延時間を得ることを特徴とする請求項2に記載のオープンフローコントローラ。
- 上記遅延取得制御手段は、送信元端末を収容した第1のオープンフロースイッチから宛先端末を収容した第2のオープンフロースイッチまでの通信経路に介在して中継するオープンフロースイッチの数が所定数以上のときには、伝搬遅延時間を、所定時間以上とみなして処理することを特徴とする請求項1〜3のいずれかに記載のオープンフローコントローラ。
- 上記各オープンフロースイッチが対応可能なネットワーク高速化処理の種類が複数種類であり、
上記ネットワーク高速化制御手段は、取得された伝搬遅延時間に基づき、適用するネットワーク高速化処理の種類も決定し、決定した種類を、少なくとも上記第1のオープンフロースイッチに通知する
ことを特徴とする請求項1又は2に記載のオープンフローコントローラ。 - オープンフローコントローラが算出した新規フローについての、送信元端末を収容した第1のオープンフロースイッチから宛先端末を収容した第2のオープンフロースイッチまでの通信経路に介在する場合に、上記通信経路に係る経路情報の設定を受けるオープンフロースイッチにおいて、
当該オープンフロースイッチが上記通信経路の端部に位置する第1のオープンフロースイッチであるために、上記オープンフローコントローラから、上記新規フローに対するネットワーク高速化処理の適用が指示されたときに、その新規フローに係るパケットに対してネットワーク高速化処理を実行し、当該オープンフロースイッチが上記通信経路の端部に位置する第2のオープンフロースイッチであるときに、ネットワーク高速化処理が施されたパケットを受信したときに、ネットワーク高速化処理が施される前の状態にパケットを戻すネットワーク高速化手段と
を有することを特徴とするオープンフロースイッチ。 - 当該オープンフロースイッチが上記通信経路の端部に位置する第1又は第2のオープンフロースイッチであるときに、上記オープンフローコントローラと協働して、上記通信経路の伝搬遅延時間を測定させる遅延測定手段を有することを特徴とする請求項6に記載のオープンフロースイッチ。
- 上記遅延測定手段は、当該オープンフロースイッチが第1のオープンフロースイッチであるときには、上記オープンフローコントローラから到来した測定確認パケットにおける送信時刻の欄に送信時刻を記述して、上記通信経路上の次のオープンフロースイッチに転送し、当該オープンフロースイッチが第2のオープンフロースイッチであるときには、到来した測定確認パケットにおける受信時刻の欄に受信時刻を記述して、上記オープンフローコントローラに返信するものであること特徴とする請求項7に記載のオープンフロースイッチ。
- 上記ネットワーク高速化手段は、対応可能なネットワーク高速化処理の種類が複数種類であり、受信したパケットのフローについて、当該オープンフロースイッチが第1のオープンフロースイッチであるときに、上記オープンフローコントローラから既に与えられている指示に従い、指示された種類のネットワーク高速化処理を実行することを特徴とする請求項7又は8に記載のオープンフロースイッチ。
- 上記ネットワーク高速化手段は、ネットワーク高速化処理の実行後のパケットに、実行したネットワーク高速化処理の種類情報を盛り込んで次段に転送させ、また、当該オープンフロースイッチが第2のオープンフロースイッチであるフローについて到来したパケットに、ネットワーク高速化処理の種類情報が盛り込まれていたときに、盛り込まれていた種類のネットワーク高速化処理が施される前の状態にパケットを戻すことを特徴とする請求項9に記載のオープンフロースイッチ。
- 請求項1に記載のオープンフローコントローラと、請求項6に記載の複数のオープンフロースイッチとを構成要素として有することを特徴とするオープンフローネットワークシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012131039A JP2013255185A (ja) | 2012-06-08 | 2012-06-08 | オープンフロースイッチ、オープンフローコントローラ及びオープンフローネットワークシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012131039A JP2013255185A (ja) | 2012-06-08 | 2012-06-08 | オープンフロースイッチ、オープンフローコントローラ及びオープンフローネットワークシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013255185A true JP2013255185A (ja) | 2013-12-19 |
Family
ID=49952335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012131039A Pending JP2013255185A (ja) | 2012-06-08 | 2012-06-08 | オープンフロースイッチ、オープンフローコントローラ及びオープンフローネットワークシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013255185A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015159881A1 (ja) * | 2014-04-15 | 2015-10-22 | 日本電気株式会社 | 通信装置、制御装置、通信システム、通信方法、通信装置の制御方法及びプログラム |
JP7183234B2 (ja) | 2020-06-15 | 2022-12-05 | 四零四科技股▲ふん▼有限公司 | バーチャルローカルエリアネットワーク(vlan)タグ交換により、時間依存ネットワーキング(tsn)ネットワークにパケットをルーティングする装置、および、方法 |
WO2022259452A1 (ja) * | 2021-06-10 | 2022-12-15 | 日本電信電話株式会社 | 中間装置、通信方法、およびプログラム |
-
2012
- 2012-06-08 JP JP2012131039A patent/JP2013255185A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015159881A1 (ja) * | 2014-04-15 | 2015-10-22 | 日本電気株式会社 | 通信装置、制御装置、通信システム、通信方法、通信装置の制御方法及びプログラム |
JP7183234B2 (ja) | 2020-06-15 | 2022-12-05 | 四零四科技股▲ふん▼有限公司 | バーチャルローカルエリアネットワーク(vlan)タグ交換により、時間依存ネットワーキング(tsn)ネットワークにパケットをルーティングする装置、および、方法 |
WO2022259452A1 (ja) * | 2021-06-10 | 2022-12-15 | 日本電信電話株式会社 | 中間装置、通信方法、およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9537741B2 (en) | Data path performance measurement using test messages in a software defined network | |
JP6781266B2 (ja) | 輻輳を考慮したロードバランシングのための仮想トンネルエンドポイント | |
Liu et al. | Ensuring connectivity via data plane mechanisms | |
US9503344B2 (en) | Data path performance measurement using network traffic in a software defined network | |
CN108400934B (zh) | 软件定义网络控制器、服务功能链系统及路径追踪方法 | |
Hafeez et al. | Detection and mitigation of congestion in SDN enabled data center networks: A survey | |
EP3172873B1 (en) | Order-sensitive communications in packet reordering networks | |
US20130282867A1 (en) | Information system, control apparatus, method of providing virtual network, and program | |
EP1561311B1 (en) | Dynamic load distribution using local state information | |
US8885501B2 (en) | Reachability rate computation without link layer acknowledgments | |
JP6355150B2 (ja) | 通信システム、通信ノード、通信経路切替方法及びプログラム | |
JP2003258842A (ja) | パケット通信システム及び転送装置 | |
US20160065483A1 (en) | Communication system, control apparatus, and storage medium | |
Chen et al. | SDATP: An SDN-based traffic-adaptive and service-oriented transmission protocol | |
JP6064989B2 (ja) | 制御装置、通信システム、ノード制御方法及びプログラム | |
JP2013255185A (ja) | オープンフロースイッチ、オープンフローコントローラ及びオープンフローネットワークシステム | |
US10778568B2 (en) | Switch-enhanced short loop congestion notification for TCP | |
US20170005912A1 (en) | Method, apparatus and system for transmitting information | |
US11218910B2 (en) | First node and a second node and methods of operating the same | |
JP6468566B2 (ja) | データ伝送制御システム及び方法、並びに、データ伝送制御プログラム | |
CN111147386B (zh) | 用于处理数据传输拥塞的方法、电子设备和计算机可读介质 | |
US10367708B2 (en) | Network coding aware nodes in a distributed network | |
JPWO2015045275A1 (ja) | 制御装置、ネットワークシステム、パケット転送制御方法、制御装置用プログラム | |
JP6263452B2 (ja) | 帯域制御システム、帯域制御方法、及びプログラム | |
JP6206105B2 (ja) | 通信システム、通信方法および通信プログラム |