はじめに本発明の一実施形態の概要について図面を参照して説明する。本発明は、図1に示すように、通信端末30と、サーバ(Server)40間の通信を実現するパケット転送ノード10と、これらパケット転送ノード10を制御する制御装置20と、を含む構成にて実現できる。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。なお、上述した通信装置は、パケット転送ノードに相当する。
図2は、図1のパケット転送ノード10が保持する処理規則100の構成例を示す図である。図2は例示であり、処理規則の構成は、図2の構成例に限定されない。制御装置20が、パケット転送ノード10に処理規則100を設定する。図16に示した非特許文献2のオープンフロースイッチが保持するフローエントリとの相違点は、タイムアウト値(Timeout Value)の代わりに、処理規則100の失効条件101が設定されている点である。なお、制御装置20は、パケット転送ノード10に対して処理規則100を設定する。パケット転送ノード10は、処理規則100のマッチフィールド(Match Field)を参照して受信パケットに適合する処理規則100を検索し、検索された処理規則100のインストラクション(Instructions)に従ってパケットを処理する。処理規則100の統計情報(Counters)は、パケットの処理に応じて更新される。パケット転送ノード10は、受信パケットに対応する処理規則100が存在しない場合、制御装置20に対して処理規則の設定を要求する。
この処理規則の失効条件としては、例えば、当該処理規則により処理可能な統計値を示すしきい値が設定される。もちろん、非特許文献2のように、処理規則の設定後の一定期間の経過、一定期間の該当パケットの不受信を判定するためのタイムアウト値を設定してもよい。
パケット転送ノード10は、受信パケットに適合する処理規則を用いてパケットを処理するパケット処理部と、パケットの処理に応じて更新される処理規則の統計情報(Counters)に基づいて統計値を計測する統計値計測部とを備える。つまり、統計値計測部は、所定の処理規則によるパケット処理に対応する統計値を計測する。統計値は、例えば、所定の処理規則により処理されたパケットの数又はバイト数、所定の処理規則により処理されたパケットに対応する通信量である。統計値計測部は、各処理規則それぞれについて統計値を計測してもよい。また、統計値計測部は、複数の処理規則の各々によるパケットの処理量から求められる統計値を計測してもよい。統計値計測部は、パケット転送ノード10が保持している複数の処理規則のうち、所定の条件に合致する処理規則によるパケットの処理量から求められる統計値を計測してもよい。統計値計測部は、複数の処理規則の各々によるパケットの処理量から求められる統計値を計測することにより、通信装置の通信量を計測することができる。なお、前記パケット処理部は、例えば、非特許文献1、2のオープンフロースイッチと同様の仕組みを用いて実現してもよい。
さらに、本発明のパケット転送ノード10は、失効条件に基づいて処理規則を削除又は失効させる。パケット転送ノード10は、例えば、統計情報(Counters)に示される統計値が前記処理規則の失効条件に設定されたしきい値を超える場合に当該処理規則を無効にする(例えば、処理規則を削除又は失効させる)処理規則管理部を備える。なお、処理規則管理部は、複数の処理規則の各々によるパケットの処理量から求められた統計値と、各処理規則に対応するそれぞれの失効条件とを比較し、ある失効条件に統計値が合致した場合、その失効条件に対応する処理規則を無効にする(例えば、処理規則を削除又は失効させる)。また、処理規則管理部は、統計値が失効条件に合致した場合、その失効条件に対応する処理規則が規定するパケット処理を、パケットを廃棄する処理に書き換えてもよい。つまり、処理規則管理部は、統計値に基づいて、各処理規則が有効か否かを決定する。
以上のような構成によれば、処理規則の設定により通信端末30と、サーバ(Server)40間の通信を許可した後、所定のデータ量の超過を契機に、当該処理規則が削除される。この結果、通信端末30からサーバ(Server)40宛の後続パケットは、パケット転送ノード10で廃棄、または、制御装置20に転送されて処理規則の設定要求が行われる。つまり、データ量に基づいて処理規則を削除等することにより、通信端末30から送信された後続パケットの通信を遮断したり、制御装置20が通信端末30からの後続パケットが狭帯域の通信経路を経由するような処理規則を設定する、という制御が可能になる。このように、本発明によれば、通信量に基づく柔軟なフロー制御を行うことが可能となる。
なお、各処理規則の失効条件フィールドに設定するしきい値は、予め決められた値でもよいし、制御装置20が、処理規則の設定時に、決定するものとしてもよい。また、制御装置20は、マッチフィールド(Match Fields)にて、通信量を計測する対象のパケットを指定し、該対象のパケットの通信量に基づいて処理規則を削除し、又は、失効させてもよい。
パケット転送ノード10が通信量に基づいて処理規則を削除又は失効させる例を示したが、通信端末30が通信量に基づいて処理規則を削除又は失効させてもよい。これは、以下で説明する実施形態でも同様である。なお、通信端末30は、例えば、携帯電話、パーソナルコンピュータ、モバイルルータ等である。本発明は、パケット転送ノード10や通信端末30等の通信装置に適用できる。
通信端末30は、制御装置20から設定される処理規則100を保持し、当該処理規則100に基づいてパケットを処理する。通信端末30は、失効条件101を含む処理規則100を保持し、該失効条件101に基づいて処理規則を削除又は失効させる。なお、失効条件が処理規則に含まれている構成例を示したが、失効条件が、処理規則とは別に、パケット転送ノードに設定されていてもよい。
[第1の実施形態]
本発明の第1の実施形態について図面を参照して説明する。図3は、本発明の第1の実施形態に係る通信システムの構成例を表した図である。図3を参照すると、通信端末30と、サーバ(Server)40間の通信を実現するパケット転送ノード10−1〜10−3と、これらパケット転送ノード10−1〜10−3を制御する制御装置20Aと、を含む構成が示されている。
図4は、パケット転送ノード10(以下、パケット転送ノード10−1〜10−3を特に区別する必要のないときは「パケット転送ノード10」と表記する。)の詳細構成を表したブロック図である。図4を参照すると、通信部11と、テーブル管理部12と、テーブルデータベース(テーブルDB)13と、転送処理部14とを含む構成が示されている。
通信部11は、パケット転送ノード10に処理規則を設定する制御装置20Aとの通信を実現する手段である。本実施形態では、通信部11は、非特許文献2のオープンフロープロトコルを用いて制御装置20Aと通信するものとする。但し、通信部11と制御装置20Aとの通信プロトコルは、オープンフロープロトコルに限定されるものではない。
テーブル管理部12は、テーブルデータベース(テーブルDB)13に保持されているテーブルを管理する手段である。本実施形態では、テーブル管理部12が、上述した処理規則管理部として機能する。具体的には、テーブル管理部12は、制御装置20Aから指示された処理規則をテーブルDB13に登録し、転送処理部14から新規パケットを受信したことを通知されると、制御装置20Aに対し、処理規則の設定を要求する。また、テーブル管理部12は、各テーブルに格納された処理規則の失効条件と統計情報(Counters)とを参照し、統計情報(Counters)に示された統計値が前記処理規則の失効条件に設定されたしきい値を超える場合に当該処理規則を削除又は失効させる処理を行う。また、テーブル管理部12は、統計値が失効条件に合致した場合、その失効条件に対応する処理規則が規定するパケット処理を、パケットを廃棄する処理に書き換えてもよい。また、テーブル管理部12は、統計値が失効条件に合致した場合、その失効条件に対応する処理規則が規定するパケット処理に対してトラフィックシェーピングを開始しても良い。トラフィックシェーピングとは、例えば、統計値がしきい値を超過した処理規則に対応するパケットフローの転送レートを制御することを意味する。転送レートの制御とは、例えば、パケットフローを遅延させる処理や転送レートが所定の値を超えないように制御する処理を意味する。但し、転送レートの制御は、パケットフローを遅延させる処理や転送レートが所定の値を超えないように制御する処理に限定されない。
テーブルデータベース(テーブルDB)13は、転送処理部14が受信パケットの処理を行う際に参照するテーブルを一つ以上格納可能なデータベースによって構成される。
転送処理部14は、テーブルDB13に格納されたテーブルから、受信パケットに適合するマッチフィールドを持つ処理規則を検索するテーブル検索部141と、テーブル検索部141にて検索された処理規則のインストラクションフィールドに示す処理内容に従ってパケット処理を行うアクション実行部142とを備えて構成される。また、転送処理部14は、受信パケットに適合するマッチフィールドを持つ処理規則が見つからなかった場合は、その旨をテーブル管理部12に通知する。さらに、転送処理部14は、パケット処理に応じて、テーブルDBに登録されている統計情報(Counters)を更新する。転送処理部14は、複数の処理規則の各々に対応する統計情報(Counters)から統計値を求めてもよい。例えば、転送処理部14は、複数の処理規則の各々に対応する統計情報を合算して統計値を算出し、テーブル管理部12はこの統計値と各処理規則の失効条件とを比較して各処理規則が有効か否かを判断する。また、例えば、転送処理部14は、テーブルDBに格納された処理規則のうち、所定の条件に対応する処理規則に対応する統計情報から統計値を算出する。例えば、転送処理部14は、所定のポートから入力されたパケットを処理するための処理規則や、所定のポートへパケットを出力するための処理規則に対応する統計情報から統計値を算出する。すなわち、本実施形態では、転送処理部14が、上述したパケット処理部と統計値計測部として機能する。
図5は、パケット転送ノード10−1のテーブルDB13に設定されているテーブルの例である。図5の例では、図3の通信端末30と、サーバ(Server)40間の通信を実現する処理規則が設定されている。例えば、通信端末30からサーバ(Server)40に宛てられたパケットのヘッダフィールドには、送信元IPアドレスとして通信端末30のIPアドレスが設定され、宛先IPアドレスとしてサーバ(Server)40のIPアドレスが設定されている。このため、通信端末30からサーバ(Server)40に宛てられたパケットを受信すると、パケット転送ノード10−1のテーブル検索部141は、図5のテーブルの上から2番目の処理規則を、受信パケットに適合する処理規則として探し出す。そして、パケット転送ノード10−1のアクション実行部142は、そのインストラクションフィールドに示された内容に従って、パケット転送ノード10−2と接続されたポートから当該受信パケットを転送する。なお、パケット転送ノード10−1は、受信パケットに対応する処理規則が存在しない場合、制御装置20Aに対して処理規則の設定を要求する。
同様に、例えば、サーバ(Server)40から通信端末30に宛てられたパケットのヘッダフィールドには、送信元IPアドレスとしてサーバ(Server)40のIPアドレスが設定され、宛先IPアドレスとして通信端末30のIPアドレスが設定されている。このため、サーバ(Server)40から通信端末30に宛てられたパケットを受信すると、パケット転送ノード10−1のテーブル検索部141は、図5のテーブルの上から1番目の処理規則を、受信パケットに適合する処理規則として探し出す。そして、パケット転送ノード10−1のアクション実行部142は、そのインストラクションフィールドに示された内容に従って、通信端末30と接続されたポートから当該受信パケットを転送する。なお、パケット転送ノード10−1は、受信パケットに対応する処理規則が存在しない場合、制御装置20Aに対して処理規則の設定を要求する。
また、図5の例では、各処理規則の失効条件として、100Mbyte、10Mbyteといった値(しきい値)が設定されている。この場合、テーブル管理部12は、図5の上から1番目の処理規則の統計情報(Counters)が100Mバイトを超えた場合に、当該処理規則を削除する動作を行う。なお、処理規則の統計情報は、その処理規則によるパケット処理に応じて更新される。
また、テーブル管理部12は、図5の上から2番目の処理規則の統計情報(Counters)が10Mバイトを超えた場合に、当該処理規則を削除する動作を行う。なお、処理規則の統計情報は、その処理規則によるパケット処理に応じて更新される。テーブル管理部12は、図5に例示されたテーブルの1番目と2番目の処理規則の統計情報から統計値を求め、その統計値と各々の処理規則の失効条件とをそれぞれ比較してもよい。統計値は、例えば、各処理規則の統計情報を合算することで求められる。例えば、求めた統計値が10Mbyteだった場合、統計値は、図5に例示されたテーブルの2番目の処理規則の失効条件に合致する。この場合、テーブルの2番目の処理規則は削除される。
なお、図5の例では、処理規則を削除するしきい値となる統計値の単位をバイトで規定しているが、パケット数を用いることも可能である。また、統計情報(Counters)において、ビット等その他の単位で統計情報を管理している場合には、前記ビット等のその他の単位を用いることもできる。
以上のような処理規則は、パケット転送ノード10−2、パケット転送ノード10−3にも同様に設定される。
なお、上記したパケット転送ノード10は、非特許文献2のオープンフロースイッチに、上述した統計値による処理規則の削除機能を追加することで実現することも可能である。
図6は、制御装置20Aの構成例を表したブロック図である。図6を参照すると、失効条件管理部21と、通信端末位置管理部22と、トポロジ管理部23と、経路・アクション計算部24と、パケット転送ノード管理部25と、処理規則データベース(処理規則DB)26と、処理規則管理部27と、制御メッセージ処理部28と、パケット転送ノード10との通信を行うノード通信部29とを含む構成例が示されている。
失効条件管理部21は、例えば、処理規則毎あるいは送信元と宛先(それぞれMACアドレス等にて管理)との組み合わせ毎に、統計値の上限値(しきい値)を含む失効条件を管理する。なお、送信元と宛先の組み合わせで管理する場合、送信元と宛先のいずれか一方をワイルドカード、すなわち不定としてもよい。失効条件としては、上述した統計値のほか、各種タイムアウト値などを設定できるようにしてもよい。例えば、統計値とは別に、タイムアウト値(ハードタイムアウト値、アイドルタイムアウト値)を設定しておけば、統計値が所定のしきい値を超えなくとも、一定時間経過した処理規則を削除させることができる。
通信端末位置管理部22は、通信システムに接続している通信端末の位置を特定するための情報を管理する。各通信端末の位置は、例えば、各通信端末が接続しているパケット転送ノード10を識別する情報とそのポートの情報によって管理できる。
トポロジ管理部23は、ノード通信部29を介して収集されたパケット転送ノード10の接続関係に基づいてネットワークトポロジ情報を構築する。また、トポロジ情報が変化した場合、トポロジ管理部23が経路・アクション計算部24にトポロジ情報の変化を通知し、経路・アクション計算部24に既存の処理規則の再設定等を行わせるようにしてもよい。
制御メッセージ処理部28は、パケット転送ノード10から受信した制御メッセージを解析して、制御装置20A内の該当する処理手段に制御メッセージ情報を引き渡す。
経路・アクション計算部24は、通信端末位置管理部22にて管理されている通信端末の位置情報とトポロジ管理部23にて管理されているトポロジ情報とに基づいてパケットの転送経路を計算する手段と、パケット転送ノード管理部25にて管理されている各パケット転送ノードの能力情報を参照して各パケット転送ノード10に実行させる処理内容(アクション)を求める手段として機能する。さらに、経路・アクション計算部24は、失効条件管理部21にて管理されている処理規則毎の失効条件を参照して、各処理規則の失効条件フィールドに設定する値を決定する手段としても機能する。
パケット転送ノード管理部25は、管理対象のパケット転送ノード10−1〜10−3の能力(例えば、ポートの数や種類、サポートするアクションの種類など)を管理する。
処理規則管理部27は、パケット転送ノード10に設定されている処理規則を管理する。具体的には、経路・アクション計算部24にて計算された結果を処理規則として処理規則DB26に記憶するとともに、パケット転送ノード10からの処理規則削除通知などにより、パケット転送ノード10に設定された処理規則に変更が生じた場合にも対応して処理規則DB26の内容を更新する。
上記のような制御装置20Aは、例えば、非特許文献2のオープンフローコントローラに、失効条件管理部21を追加し、経路・アクション計算部24を失効条件付きの処理規則を生成するよう変更した構成にて実現することも可能である。
なお、図4、図6に示したパケット転送ノード10および制御装置20Aの各部(処理手段)は、これらの装置を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
続いて、本実施形態の動作例について図面を参照して説明する。なお、図7は例示であり、本発明の動作は図7のシーケンスに限定されない。図7は、本発明の第1の実施形態に係る通信システムの動作を説明するためのシーケンス図である。また、以下の説明では、パケット転送ノード10−1〜10−3には、初期状態において、通信端末30とサーバ(Server)40間の通信を実現する処理規則が設定されていないものとする。
図7を参照すると、まず、通信端末30がサーバ(Server)40宛てのユーザパケットを、送信すると(図7のS001)、これを受信したパケット転送ノード10−1は、テーブルから受信パケットに適合するマッチフィールドを持つ処理規則を検索するが、見つからないため、制御装置20Aに対し、受信パケットを添えて、処理規則の設定を要求する(図7のS002;Packet−In)。
前記処理規則の設定要求を受けた制御装置20Aは、経路・アクション計算部24にて、図5に示すような失効条件付きの処理規則(両方向)を作成し、各パケット転送ノード10に設定する(図7のS003;FlowMod)。また、制御装置20Aは、パケット転送ノード10−1に対し、S002で受信したパケットを戻し、パケット転送ノード10−2に転送するよう指示する(図7のS004;Packet−Out)。
前記指示に基づいて、パケット転送ノード10−1が、パケット転送ノード10−2にパケットを転送すると、パケット転送ノード10−2、10−3は、それぞれ設定された処理規則に従って、パケットをサーバ(Server)40に転送する(図7のS005)。
その後、パケット転送ノード10−1〜10−3は、それぞれ設定された処理規則に従って、通信端末30とサーバ(Server)40間で送受信されるユーザパケットを転送する(図7のS006、S007)。
その後、サーバ(Server)40から通信端末30に宛てられたパケットを処理する処理規則の統計情報(Counters)に示された統計値が、当該処理規則の失効条件に設定されたしきい値を超えると、パケット転送ノード10−1〜10−3は、当該処理規則(図5の上から1番目の処理規則)を削除する。
パケット転送ノード10−1〜10−3は、前記処理規則の削除を制御装置20Aに通知する(図7のS008;FlowRemoved)。制御装置20Aは、前記通知に基づいて処理規則DB26を更新する。
その後、通信端末30からサーバ(Server)40に宛てられたパケットの転送により(図7のS009)、前記パケットを処理する処理規則の統計情報(Counters)に示された統計値も、当該処理規則の失効条件に設定されたしきい値を超えると、パケット転送ノード10−1〜10−3は、当該処理規則(図5の上から2番目の処理規則)を削除する。
パケット転送ノード10−1〜10−3は、前記処理規則の削除を制御装置20Aに通知する(図7のS010;FlowRemoved)。制御装置20Aは、前記通知に基づいて処理規則DB26を更新する。
なお、制御装置20Aは、処理規則を削除後、パケット転送ノード10−1〜10−3に、削除した処理規則に対応する後続のパケットを廃棄する新たな処理規則を設定してもよい。これにより、統計値が所定のしきい値を超えたパケットのトラフィックを制限することができる。
また、制御装置20Aは、処理規則の削除後、パケット転送ノード10−1〜10−3に、削除した処理規則に対応する後続のパケットの転送方法を規定した新たな処理規則を設定し、更に、パケット転送ノード10−1〜10−3のうちの所定のノードに対してトラフィックシェーピングの指示をしてもよい。トラフィックシェーピングとは、例えば、統計値がしきい値を超過した処理規則に対応するパケットフローの転送レートを制御することを意味する。転送レートの制御とは、例えば、パケットフローを遅延させる処理や転送レートが所定の値を超えないように制御する処理を意味する。但し、転送レートの制御は、パケットフローを遅延させる処理や転送レートが所定の値を超えないように制御する処理に限定されない。
制御装置20Aは、統計値がしきい値を超過した処理規則に対応するパケットフローだけでなく、そのパケットフローに対応する別のパケットフローに対しても転送レートを制御することを所定のノードに指示してもよい。例えば、統計値がしきい値を超過した処理規則に対応するパケットフローが、通信端末30からサーバ40に送信されるフローであり、そのパケットフローに対応する別のパケットフローが、サーバ40から通信端末30に送信されるフローである。
以上のように、本実施形態によれば、通信量に基づく柔軟なフロー制御を行うことが可能となる。
[第2の実施形態]
通信端末30に上記したパケット転送ノードの機能を追加した本発明の第2の実施形態について図面を参照して説明する。なお、通信端末30も、上述した通信装置に相当する。例えば、通信端末は、携帯電話、パーソナルコンピュータ、モバイルルータ等の通信機能を有する装置である。図8は、本発明の第2の実施形態に係る通信システムの構成例を表した図である。図3に表した第1の実施形態との相違点は、通信端末30Aの構成のみである。その他は、第1の実施形態と同等であるため、以下その相違点を中心に説明する。
図9は、通信端末30Aの構成例を表したブロック図である。図9を参照すると、複数のアプリケーション部311〜31nと、これらアプリケーション部311〜31nに任意のプロトコルによる通信機能を提供するプロトコルスタック部32と、プロトコルスタック部32と接続され、上述した第1の実施形態のパケット転送ノード10と同等のパケット処理を行うパケット転送機能部33とを備えた構成が示されている。
パケット転送機能部33は、第1の実施形態のパケット転送ノード10と同様に、制御装置20Aから設定された失効条件付きの処理規則に基づいたパケット処理を行う。具体的には、パケット転送機能部33は、第1の実施形態のパケット転送ノード10と同様に、通信部11、テーブル管理部12、テーブルDB13および転送処理部14を備え、プロトコルスタック部32から出力されたパケットの処理およびパケット転送ノード10−1から転送されたユーザトラフィックの処理を行う。なお、このパケット転送機能部33は、通信端末30Aを構成するコンピュータのハードウェア(メモリ、通信手段)を用いて、上述したパケット処理を行うコンピュータプログラムにて実現することもできる。また、このコンピュータプログラムは、通信端末30Aにプレインストールされていてもよいし、図示省略するアプリケーションサーバ等から、ダウンロードしてインストールできるようにしてもよい。また、各処理規則の失効条件に設定するしきい値は、このダウンロード時に支払われた金額や、コンピュータプログラムの代金に含まれる金額によって変更するようにしてもよい。
図10は、パケット転送機能部33内部のテーブルDBに設定されているテーブルの具体例である。図10の例では、図9の通信端末30A内のプロトコルスタック部32と、サーバ(Server)40間の通信を実現する処理規則が設定されている。例えば、通信端末30A内のプロトコルスタック部32からサーバ(Server)40に宛てられたパケットのヘッダフィールドには、送信元IPアドレスとして通信端末30AのIPアドレスが設定され、宛先IPアドレスとしてサーバ(Server)40のIPアドレスが設定されている。このため、通信端末30A内のプロトコルスタック部32からサーバ(Server)40に宛てられたパケットを受信すると、パケット転送機能部33内部のテーブル検索部は、図10のテーブルの上から2番目の処理規則を、受信パケットに適合する処理規則として探し出す。そして、パケット転送機能部33内部のアクション実行部は、そのインストラクションフィールドに示された内容に従って、パケット転送ノード10−1と接続されたポートから当該受信パケットを転送する。なお、通信端末30Aは、受信パケットに対応する処理規則が存在しない場合、制御装置に対して処理規則の設定を要求する。
同様に、例えば、サーバ(Server)40から通信端末30Aに宛てられたパケットのヘッダフィールドには、送信元IPアドレスとしてサーバ(Server)40のIPアドレスが設定され、宛先IPアドレスとして通信端末30AのIPアドレスが設定されている。このため、サーバ(Server)40から通信端末30Aに宛てられたパケットを受信すると、パケット転送機能部33内部のテーブル検索部は、図10のテーブルの上から1番目の処理規則を、受信パケットに適合する処理規則として探し出す。そして、パケット転送機能部33内部のアクション実行部は、そのインストラクションフィールドに示された内容に従って、通信端末30Aのプロトコルスタック部32と接続されたポートから当該受信パケットを転送する。なお、通信端末30Aは、受信パケットに対応する処理規則が存在しない場合、制御装置に対して処理規則の設定を要求する。
また、図10の例では、第1の実施形態と同様に、各処理規則の失効条件として、100Mbyte、10Mbyteといった値(しきい値)が設定されている。この場合、パケット転送機能部33内部のテーブル管理部は、図10の上から1番目の処理規則の統計情報(Counters)が100Mbyteを超えた場合に、当該処理規則を削除する動作を行う。また、パケット転送機能部33内部のテーブル管理部は、図10の上から2番目の処理規則の統計情報(Counters)が10Mbyteを超えた場合に、当該処理規則を削除する動作を行う。
また、パケット転送機能部33は、図10のテーブルの1番目と2番目の処理規則の統計情報(Counters)から統計値を求め、その統計値と各々の処理規則の失効条件とをそれぞれ比較してもよい。統計値は、例えば、各処理規則の統計情報を合算することで求められる。例えば、求めた統計値が10Mbyteだった場合、統計値は、図10に例示されたテーブルの2番目の処理規則の失効条件に合致する。この場合、テーブルの2番目の処理規則は削除される。
また、例えば、パケット転送機能部33は、テーブルDBに格納された処理規則のうち、所定の条件に対応する処理規則に対応する統計情報から統計値を算出する。例えば、転送処理部14は、所定のポートから入力されたパケットを処理するための処理規則や、所定のポートへパケットを出力するための処理規則に対応する統計情報(Counters)から統計値を算出する。通信端末30が、複数の通信ポート(例えば、3G通信用ポート、WiFi通信用ポート、WiMAX通信用ポート等)を備えている場合、複数の通信ポートのうちの所定の通信ポート(例えば3G通信用ポート)を介してパケットの送受信するための処理規則に対応する統計情報(Counters)から統計値を算出する。
以上のような処理規則は、パケット転送ノード10−1〜10−3にも同様に設定されてもよい。
続いて、本実施形態の動作について図面を参照して詳細に説明する。図11は、本発明の第2の実施形態に係る通信システムの動作を説明するためのシーケンス図である。また、以下の説明では、通信端末30Aのパケット転送機能部33およびパケット転送ノード10−1〜10−3には、初期状態において、通信端末30Aとサーバ(Server)40間の通信を実現する処理規則が設定されていないものとする。
図11を参照すると、まず、通信端末30Aのパケット転送機能部33が、プロトコルスタック部32からサーバ(Server)40宛てのユーザパケットを受信すると、パケット転送機能部33は、テーブルから受信パケットに適合するマッチフィールドを持つ処理規則を検索するが、見つからないため、制御装置20Aに対し、受信パケットを添えて、処理規則の設定を要求する(図11のS101;Packet−In)。
前記処理規則の設定要求を受けた制御装置20Aは、経路・アクション計算部24にて、図10に示すような失効条件付きの処理規則(両方向)を作成し、通信端末30Aのパケット転送機能部33および各パケット転送ノード10に設定する(図11のS102;FlowMod)。また、制御装置20Aは、通信端末30Aのパケット転送機能部33に対し、S002で受信したパケットを戻し、パケット転送ノード10−1に転送するよう指示する(図11のS103;Packet−Out)。
前記指示に基づいて、通信端末30Aのパケット転送機能部33が、パケット転送ノード10−1にパケットを転送すると、パケット転送ノード10−1〜10−3は、それぞれ設定された処理規則に従って、パケットをサーバ(Server)40に転送する(図11のS104)。
その後、通信端末30Aのパケット転送機能部33およびパケット転送ノード10−1〜10−3は、それぞれ設定された処理規則に従って、通信端末30Aとサーバ(Server)40間で送受信されるユーザパケットを転送する(図11のS105、S106)。
その後、サーバ(Server)40から通信端末30Aに宛てられたパケットを処理する処理規則の統計情報(Counters)に示された統計値が、当該処理規則の失効条件に設定されたしきい値を超えると、通信端末30Aのパケット転送機能部33およびパケット転送ノード10−1〜10−3は、当該処理規則(図10の上から1番目の処理規則)を削除する。
通信端末30Aのパケット転送機能部33およびパケット転送ノード10−1〜10−3は、前記処理規則の削除を制御装置20Aに通知する(図11のS107;FlowRemoved)。制御装置20Aは、前記通知に基づいて処理規則DB26を更新する。
その後、通信端末30からサーバ(Server)40に宛てられたパケットの転送により(図11のS108)、前記パケットを処理する処理規則の統計情報(Counters)に示された統計値も、当該処理規則の失効条件に設定されたしきい値を超えると、通信端末30Aのパケット転送機能部33およびパケット転送ノード10−1〜10−3は、当該処理規則(図5の上から2番目の処理規則)を削除する。
通信端末30Aのパケット転送機能部33およびパケット転送ノード10−1〜10−3は、前記処理規則の削除を制御装置20Aに通知する(図11のS109;FlowRemoved)。制御装置20Aは、前記通知に基づいて処理規則DB26を更新する。
なお、制御装置20Aは、処理規則を削除後、通信端末30Aのパケット転送機能部33及びパケット転送ノード10−1〜10−3に、削除した処理規則に対応する後続のパケットを廃棄する新たな処理規則を設定してもよい。これにより、統計値が所定のしきい値を超えたパケットのトラフィックを制限することができる。
また、制御装置20Aは、処理規則の削除後、パケット転送機能部33およびパケット転送ノード10−1〜10−3に、削除した処理規則に対応する後続のパケットの転送方法を規定した新たな処理規則を設定し、更に、パケット転送機能部33とパケット転送ノード10−1〜10−3のうちの所定のノードに対してトラフィックシェーピングの指示をしてもよい。トラフィックシェーピングとは、例えば、統計値がしきい値を超過した処理規則に対応するパケットフローの転送レートを制御することを意味する。転送レートの制御とは、例えば、パケットフローを遅延させる処理や転送レートが所定の値を超えないように制御する処理を意味する。但し、転送レートの制御は、パケットフローを遅延させる処理や転送レートが所定の値を超えないように制御する処理に限定されない。
制御装置20Aは、統計値がしきい値を超過した処理規則に対応するパケットフローだけでなく、そのパケットフローに対応する別のパケットフローに対しても転送レートを制御することを所定のノードに指示してもよい。例えば、統計値がしきい値を超過した処理規則に対応するパケットフローが、通信端末30Aからサーバ40に送信されるフローであり、そのパケットフローに対応する別のパケットフローが、サーバ40から通信端末30Aに送信されるフローである。
以上のように、本発明は、通信端末側に、パケット転送機能部33を内蔵させた構成例でも実現できる。また、本実施形態は、上記した第1の実施形態に比べ、通信端末内部で、パケット廃棄等のフロー制御を行うことが可能となるため、パケット転送ノード10に流れるトラフィックを減らし、パケット転送ノード10および制御装置20Aの負荷を低減させることができるという効果を奏する。なお、失効条件が処理規則に含まれている構成例を示したが、失効条件が、処理規則とは別に、通信端末に設定されていてもよい。
[第3の実施形態]
続いて、制御装置の構成例に変更を加えた本発明の第3の実施形態について図面を参照して説明する。図12は、本発明の第3の実施形態に係る制御装置20Bの構成例を表した図である。第1の実施形態及び第2の実施形態の制御装置との相違点は、失効条件管理部21が契約情報管理部21Aに置き換えられている点である。その他は、第1の実施形態及び第2の実施形態と同等であるため、以下その相違点を中心に説明する。
本実施形態の契約情報管理部21Aは、通信端末30のユーザの契約情報を管理し、経路・アクション計算部24からの要求に応じて、該契約情報を参照して失効条件を生成する機能を備えている。また、この契約情報を経路・アクション計算部24に提供し、経路・アクション計算部24が経路計算に契約情報を用いることとしてもよい。例えば、通信端末30のユーザが、10Mバイトを上限としてサーバ(Server)40と通信できるという契約を結んでいる場合、契約情報管理部21Aは、経路・アクション計算部24に、失効条件として10Mバイトを設定した処理規則を作成するよう通知する。なお、この場合、計客情報管理部21Aは、失効条件として10Mバイトを設定した複数の処理規則を作成するように通知してもよい。
また、前記失効条件による処理規則の削除が行われることがなく、タイムアウトや通信端末30からの通信終了通知やログアウト動作等により通信が終了した場合、制御装置20Aが、該当する処理規則の統計情報(Counters)を収集し、契約情報管理部21Aに、通信端末30のユーザの残りの通信可能な統計値を記録するようにしてもよい。
以下、本実施形態の動作は、第1、第2の実施形態と同様であるので説明を省略する。
以上のように、本実施形態によれば、契約情報に基づいて失効条件を柔軟に設定することが可能となる。
また、上述したように、パケット転送ノード10からの処理規則の削除通知に、その原因(統計値の超過であるのか、タイムアウトの成立であるのか等)を含めることで、制御装置20Aの契約情報管理部21Aにおける契約情報の更新要否等に役立てることができる。
[第4の実施形態]
続いて、第4の実施形態を説明する。第4の実施形態では、統計値が失効条件に規定されたしきい値を超過した場合、通信端末30が課金サーバ50との間で新たなしきい値を設定する。通信端末30のユーザは、例えば、元々の契約で決められた統計値を越えた後に、追加の料金を支払うことにより契約情報を更新し、契約情報の更新によって失効条件のしきい値も新たに設定される。新たなしきい値が設定されて、かつ統計値がリセットされることにより、通信端末30はデータ通信を継続することができる。
パケット転送ノード10、通信端末30は、第1の実施形態、第2の実施形態又は第3の実施形態のいずれかと同様なので、詳細な説明は省略する。また、制御装置の構成は、第3の実施形態の制御装置20Bと同様なので、詳細な説明は省略する。
図13、図14を参照し、第4の実施形態の動作について説明する。通信端末30のパケット転送機能部33が、プロトコルスタック部32からサーバ(Server)40宛てのユーザパケットを受信すると、パケット転送機能部33は、テーブルから受信パケットに適合するマッチフィールドを持つ処理規則を検索するが、見つからないため、制御装置20Bに対し、受信パケットを添えて、処理規則の設定を要求する(図13のS201;Packet−In)。
前記処理規則の設定要求を受けた制御装置20Bは、経路・アクション計算部24にて、図10に示すような失効条件付きの処理規則(両方向)を作成し、パケット転送機能部33および各パケット転送ノード10に設定する(図13のS202;FlowMod)。また、制御装置20Bは、S201で受信したパケットを通信端末30に戻し、そのパケット転送機能部33に対し、パケット転送ノード10−1に前記パケットを転送するよう指示する(図13のS203;Packet−Out)。
前記指示に基づいて、パケット転送機能部33が、パケット転送ノード10−1にパケットを転送すると、パケット転送ノード10−1〜10−3は、それぞれ設定された処理規則に従って、パケットをサーバ(Server)40に転送する(図13のS204)。
その後、パケット転送機能部33およびパケット転送ノード10−1〜10−3は、それぞれ設定された処理規則に従って、通信端末30とサーバ(Server)40間で送受信されるユーザパケットを転送する(図13のS205、S206)。
その後、サーバ(Server)40から通信端末30に宛てられたパケットを処理する処理規則の統計情報(Counters)に示された統計値が、当該処理規則の失効条件に設定されたしきい値を超えると、パケット転送機能部33およびパケット転送ノード10−1〜10−3は、当該処理規則(例えば、図10の上から1番目の処理規則)を削除する。
パケット転送機能部33およびパケット転送ノード10−1〜10−3は、前記処理規則の削除を制御装置20Bに通知する(図13のS207;FlowRemoved)。制御装置20Bは、前記通知に基づいて処理規則DB26を更新する。
なお、図10等の失効条件に設定されたしきい値は、例えば、第3の実施形態で説明したように、通信端末30のユーザの契約情報に基づいて設定されたものである。よって、制御装置20Bは、通信端末30の通信量が失効条件に規定されたしきい値を超過した場合、課金サーバ50に対して、通信端末30の通信量が契約した通信量を超過したことを通知してもよい(図13の契約切れ通知)。
図14を参照して、図13以降の動作を説明する。図13のS207で、統計値がしきい値を超過したことにより処理規則が削除された後、通信端末30のパケット転送機能部33が、プロトコルスタック部32からサーバ(Server)40宛てのユーザパケットを受信すると、パケット転送機能部33は、テーブルから受信パケットに適合するマッチフィールドを持つ処理規則を検索するが、処理規則が削除されているため、制御装置20Bに対し、受信パケットを添えて、処理規則の設定を要求する(図14のS208;Packet−In)。
制御装置20Bは、通信端末30は契約した通信量を超過しているので(図14の契約情報チェック)、通信端末30がサーバ40宛に送信したパケットを課金サーバ50に転送することを規定した処理規則(リダイレクト用処理規則)を、通信端末30のパケット転送機能部33、パケット転送ノード10−1〜10−3にそれぞれ設定する(図14のS209)。
課金サーバ50は、リダイレクト用処理規則に従って通信端末30から転送されたパケットを受信すると、通信端末30に対してリダイレクトメッセージを送信する(図14のS210)。リダイレクトメッセージの受信により、通信端末30は、サーバ40との通信セッションを、課金サーバ50との通信セッションに切り替える。
通信端末30は、課金サーバ50との間で通信を行い(図14のS213)、契約情報を更新し、失効条件のしきい値も新たに設定する。例えば、通信端末30のユーザは、追加の料金を支払う処理を課金サーバ50との間で実行することで、契約情報を更新する。
課金サーバ50は、契約情報の更新完了後、制御装置20Bに対して、契約情報の更新が完了したことを通知する(図14のS214)。制御装置20Bは、契約情報管理部21Aに格納された通信端末30の契約情報を更新し、処理規則に設定される失効条件のしきい値を更新する。
以上の動作により、通信端末30のデータ通信量が契約した許容量を超過した場合に、通信端末30に対して追加料金の支払い等の勧誘を行うことができる。
[第5の実施形態]
続いて、本発明の第5の実施形態について図面を参照して説明する。上記した第1〜第4の実施形態との相違点は、テーブルが、パケットを処理するために処理規則を格納する第1のテーブルと、その第1のテーブルを参照するために所定の条件を管理する第2のテーブルに分けられている点である。その他は、第1〜第4の実施形態と同等であるため、以下その相違点を中心に説明する。
通信端末30Aのパケット転送機能部33やパケット転送ノード10の転送処理部14は、第2のテーブルが管理する所定の条件に基づいて、パケットを処理するための処理規則を格納する第1のテーブルを参照できるか否かを判定する。所定の条件は、例えば、通信量や第1のテーブルに処理規則が設定されてから経過した時間等に基づいて定められる。但し、所定の条件は、通信量や経過時間に限定されない。
図15は、図8に示すような通信端末30A内にパケット転送機能部33が備えられている構成において、パケット転送機能部33に設定されるテーブルの一例を示す図である。図15の上段のテーブル(Table0)は、所定の条件(例えば、Table0の失効条件)として、下段のテーブル(Table1)に格納された所定の処理規則によるパケットの処理量を管理する。図15では、所定の条件の一例である失効条件として、“100Mbyte”の処理量が規定されている。例えば、パケット転送機能部33は、Server40から通信端末30Aに対して送信されるパケットフローに対応する処理規則(Table1の1番目のエントリ)と、通信端末30AからServer40に送信されるパケットフローに対応する処理規則(Table1の2番目のエントリ)によるパケットの処理量を、統計値(Table0のCounters)として計測する。なお、統計値の管理対象となる処理規則の選択方法は任意であり、上述のようにパケットフローの宛先・送信元に基づいて選択する方法に限定されない。
図15の例では、テーブル(Table0)は、統計値が100Mバイトを超えるまで、図15の下段のテーブル(Table1)による処理を許容する処理内容(Goto Table1)が定められた処理規則が設定されている。
なお、図15の上段のテーブル(Table0)は、所定の条件として、所定の処理規則が下段のテーブル(Table1)に設定されてから経過した時間を、統計値として計測してもよい。
図15の例において、上段のテーブル(Table0)は、1つのエントリしか設定されていないが、複数のエントリが設定されてもよい。例えば、パケット転送ノード10が複数の通信端末30Aが送受信するパケットの転送を行う場合、パケット転送ノード10のTable0は、複数の通信端末30Aのそれぞれに対応した複数のエントリを保持してもよい。この場合、各エントリの失効条件には、そのエントリに対応する通信端末30A用の条件が設定されている。また、各エントリの統計値(Counters)には、そのエントリに対応する通信端末30A用の統計値が格納される。パケット転送機能部33は、例えば、パケットフローの送信元アドレスを参照して通信端末30Aを識別して、Table0の対応するエントリに統計値を格納する。
一方、図15の下段のテーブル(Table1)には、一例として、通信端末30A内のプロトコルスタック部32と、サーバ(Server)40間の通信を実現する処理規則が設定されている。なお、図15の下段のテーブル(Table1)には、失効条件は設定されていない。
通信端末30Aのパケット転送機能部33やパケット転送ノード10のテーブル管理部12は、統計値が所定の条件を満たした場合(例えば、処理量が所定のしきい値を超過した場合)、Table1に格納されている処理規則に対して所定の処理を実行する。例えば、パケット転送機能部33やテーブル管理部12は、Table1の処理規則を削除する処理、処理規則に規定されたパケットの処理方法をパケットの廃棄に書き換える処理等を実行する。
以上のような2つのテーブルを持つ本実施形態によれば、失効条件が成立した場合であっても、図15の上段のフロー制御用のテーブルから処理規則を削除すればよく、図15の下段のパケット処理用のテーブルを更新する必要がないという利点がある。これにより、通信端末30A、パケット転送ノード10および制御装置20それぞれの処理規則の管理負荷を低減させることが可能になる。
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した各実施形態で示したパケット転送ノード、制御装置、通信端末およびサーバ(Server)40の数や接続構成は、本発明を簡単に説明するために示したものであり、これらの数や接続構成は、適宜変更することが可能である。各実施形態は関連技術であるオープンフローを参照しているが、本発明はオープンフローを用いることに限定されない。例えば、オープンフローに限らず、パケットの転送経路を制御装置が集中制御する通信アーキテクチャは、本発明に適用できる。
また、上記した実施形態では、処理規則を用いたパケットの転送後に、処理規則の失効条件を用いた処理規則の削除判定を行うものとして説明したが、テーブル管理部が所定の時間間隔で、処理規則の削除判定を行うようにしてもよい。
また、上記した実施形態では、処理規則の失効条件を用いて処理規則を削除するものとして説明したが、処理規則の処理内容をパケット廃棄(Drop)などに書き換えるようにしてもよい。