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