(57)【要約】  通信ノードが保持している制御情報エントリが特定の通信のものに偏らないようにする。通信ノードは、受信パケットに適用する処理を定めた制御情報エントリを利用者情報と対応付けて所定数保持可能なエントリ記憶部と、前記エントリ記憶部を参照して、受信パケットを処理するパケット処理部と、予め定められた基準に基づいて、エントリ記憶部に保持されている一の利用者のための制御情報エントリの数が、前記エントリ記憶部の保持可能な制御情報エントリの数に対する所定の割合を超えないよう制御するエントリ管理部と、を備える。
2014098117.tif 000002
【特許請求の範囲】
【請求項１】
受信パケットに適用する処理を定めた制御情報エントリを利用者情報と対応付けて所定数保持可能なエントリ記憶部と、
前記エントリ記憶部を参照して、受信パケットを処理するパケット処理部と、
予め定められた基準に基づいて、エントリ記憶部に保持されている一の利用者のための制御情報エントリの数が、前記エントリ記憶部の保持可能な制御情報エントリの数に対する所定の割合を超えないよう制御するエントリ管理部と、
を備えた通信ノード。
【請求項２】
前記エントリ管理部は、少なくとも前記エントリ記憶部が保持可能なエントリ数と、利用者のためのエントリ数とを用いて所定の方法で算出した利用者のエントリ使用率が、前記利用者毎に設定されたしきい値を超えないよう制御する請求項１の通信ノード。
【請求項３】
前記エントリ管理部は、
前記エントリ記憶部の空き領域が所定数の制御情報エントリ分ある間は、前記しきい値による制御情報エントリの削除を行わず、
前記エントリ記憶部の空き領域が所定数の制御情報エントリを格納できなくなってから、前記しきい値によるエントリ制御を開始する請求項２の通信ノード。
【請求項４】
前記しきい値が、各ユーザのネットワーク利用料金に基づいて設定される請求項２又は３の通信ノード。
【請求項５】
前記エントリ記憶部に、制御情報エントリを格納するテーブルが利用者毎に用意され、
前記エントリ管理部は、前記しきい値によるエントリ制御に代えて、前記テーブルを用いて各利用者の制御情報エントリの数を制御する請求項１の通信ノード。
【請求項６】
前記各テーブルの格納可能な制御情報エントリの数が、各ユーザのネットワーク利用料金に基づいて設定される請求項５の通信ノード。
【請求項７】
利用者が異なる装置と接続されたポートにＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）情報が設定されており、
前記フローエントリの設定の契機となったパケットを受信したポートに設定されたＶＬＡＮ情報に基づいて、利用者を判別する請求項１から６いずれか一の通信ノード。
【請求項８】
受信パケットに適用する処理を定めた制御情報エントリを所定数保持可能な通信ノードからの要求に応じて前記制御情報エントリを設定するエントリ設定部と、
利用者毎に前記設定した制御情報エントリを管理するエントリ管理部と、
予め定められた基準に基づいて、前記スイッチのエントリ記憶部に保持されている一の利用者のための制御情報エントリの数が、前記エントリ記憶部の保持可能な制御情報エントリの数に対する所定の割合を超えないよう前記エントリ設定部を制御する制御部と、
を備えた制御装置。
【請求項９】
前記エントリ管理部は、少なくとも前記エントリ記憶部が保持可能なエントリ数と、利用者のためのエントリ数とを用いて所定の方法で算出した利用者のエントリ使用率が、前記利用者に設定されたしきい値を超えないよう制御する請求項８の制御装置。
【請求項１０】
通信ノードのエントリ記憶部に保持されている制御情報エントリのうち、一の利用者のための制御情報エントリが所定の割合を超えているか否かを検査するステップと、
前記一の利用者のための制御情報エントリが所定の割合を超えている場合、前記エントリ記憶部から、前記一の利用者のためのエントリを削除するステップと、
を含むフローエントリの管理方法。
【請求項１１】
通信ノードに搭載されたコンピュータに、
前記通信ノードのエントリ記憶部に保持されている制御情報エントリのうち、一の利用者のための制御情報エントリが所定の割合を超えているか否かを検査する処理と、
前記一の利用者のための制御情報エントリが所定の割合を超えている場合、前記エントリ記憶部から、前記一の利用者のための制御情報エントリを削除する処理と、
を実行させるプログラム。
【請求項１２】
通信ノードを制御する制御装置に搭載されたコンピュータに、
前記通信ノードのエントリ記憶部に保持されている制御情報エントリを管理する自装置側のエントリ記憶部を参照して、一の利用者のための制御情報エントリが所定の割合を超えているか否かを検査する処理と、
前記一の利用者のための制御情報エントリが所定の割合を超えている場合、前記通信ノードに対し、前記通信ノードのエントリ記憶部から、前記一の利用者のための制御情報エントリの削除を指示する処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１２−２７６９１９号（２０１２年１２月１９日出願）に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、通信ノード、制御装置、フローエントリの管理方法及びプログラムに関し、特に、制御装置から設定されたエントリを参照して受信パケットを処理する通信ノード、制御装置、制御情報エントリの管理方法及びプログラムに関する。
【背景技術】
【０００２】
非特許文献１、２に、オープンフローという技術が提案されている。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献２に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、処理内容を定義したインストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）と、の組が定義される（非特許文献２の「５．２  Ｆｌｏｗ  Ｔａｂｌｅ」の項参照）。【０００３】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチ条件（非特許文献２の「５．３  Ｍａｔｃｈｉｎｇ」参照）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報（カウンタ）を更新するとともに、受信パケットに対して、当該エントリのインストラクションフィールドに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求、即ち、受信パケットを処理するための制御情報の送信要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を送信する。オープンフロースイッチは、処理内容が定められたフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを制御情報として用いてパケット転送を行う。【０００４】
特許文献１には、光ネットワークシステムにおいて、使用されていない余剰パスを貸し出す方法が開示されている。具体的には、光ネットワークシステムの設定制御装置が、ユーザから応募を募り、その応募数に応じて貸し出し料金や貸し出す資源量を決定することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２２６７０６号公報
【非特許文献】
【０００６】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年１１月２４日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年１１月２４日検索］、インターネット〈URL: https://www.opennetworking.org/images/stories/downloads/specification/openflow-spec-v1.2.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以下の分析は、本発明によって与えられたものである。上記オープンフローに代表される集中制御型のネットワークの１つの通信ノード（例：オープンフロースイッチ）が保持可能なフローエントリの数は有限であるため、不要となったフローエントリを掃き出す仕組みが考案されている。例えば、非特許文献２のオープンフローの仕様書によれば、一定期間マッチ条件に適合するパケットを受信しなかったフローエントリを削除する方法（アイドルタイムアウト）、設定時から所定時間が経過したフローエントリを削除する方法（ハードタイムアウト）を利用することが可能となっている。さらには、１つの通信ノードが保持可能なフローエントリの数の上限値に達してしまった場合には、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）等のルールによって選択したフローエントリを削除する方法も使用される。【０００８】
ここで、複数のサーバ（仮想マシンでもよい）がそれぞれネットワークに接続され、ホストにサービスを提供する構成を考える（例えば、図９参照）。これらのサーバとそれぞれホストとの通信経路が重複する場合、重複する区間の通信ノードに、それぞれのサーバ−ホスト間の通信を実現するフローエントリが設定されることになる。上記構成にて、前記複数のサーバのうちの１つのサーバ（例えば、図９のサーバ３０Ａ）に他のサーバ（例えば、図９のサーバ３０Ｂ）に比べて頻繁にホストと通信を行うようなアプリケーションが動作している場合、前記重複する区間の通信ノードのフローエントリ格納領域が、前記頻繁にホストと通信する方のサーバ−ホスト間の通信を実現するフローエントリによって占められてしまうことになる。このため、他のサーバ−ホスト間の通信発生時に、必要なフローエントリがすでに掃き出されていたり、新たにフローエントリを設定するとしても必要な領域が不足してしまうといった事態が起こりうる。最終的には、２つのサーバの平均ＴＡＴ（Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ）にも差が生じてしまう。【０００９】
本発明は、集中制御型ネットワークの通信ノードが保持している制御情報エントリが特定の通信のものに偏らないようにすることのできる通信システム、通信装置、制御装置、通信装置の制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の視点によれば、受信パケットに適用する処理を定めた制御情報エントリを利用者情報と対応付けて所定数保持可能なエントリ記憶部と、前記エントリ記憶部を参照して、受信パケットを処理するパケット処理部と、予め定められた基準に基づいて、エントリ記憶部に保持されている一の利用者のための制御情報エントリの数が、前記エントリ記憶部の保持可能な制御情報エントリの数に対する所定の割合を超えないよう制御するエントリ管理部と、を備えた通信ノードが提供される。【００１１】
第２の視点によれば、受信パケットに適用する処理を定めた制御情報エントリを所定数保持可能な通信ノードからの要求に応じて前記制御情報エントリを設定するエントリ設定部と、利用者毎に前記設定した制御情報エントリを管理するエントリ管理部と、予め定められた基準に基づいて、前記スイッチのエントリ記憶部に保持されている一の利用者のための制御情報エントリの数が、前記エントリ記憶部の保持可能な制御情報エントリの数に対する所定の割合を超えないよう前記エントリ設定部を制御する制御部と、を備えた制御装置が提供される。【００１２】
第３の視点によれば、通信ノードのエントリ記憶部に保持されている制御情報エントリのうち、一の利用者のための制御情報エントリが所定の割合を超えているか否かを検査するステップと、前記一の利用者のための制御情報エントリが所定の割合を超えている場合、前記エントリ記憶部から、前記一の利用者のための制御情報エントリを削除するステップと、を含む制御情報エントリの管理方法が提供される。本方法は、通信ノードのエントリ記憶部に保持されている制御情報エントリを管理する装置（通信ノード又は制御装置）という、特定の機械に結びつけられている。【００１３】
第４の視点によれば、上記した通信ノード又は制御装置の機能を実現するためのプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な（非トランジエントな）記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１４】
本発明によれば、通信ノードが保持している制御情報エントリが特定の通信のものに偏らないようにすることが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態の構成を示す図である。
【図２】本発明の第１の実施形態の通信ノードに保持されるフローエントリの構成を示す図である。
【図３】本発明の第１の実施形態におけるエントリ使用率を説明するための図である。
【図４】本発明の第１の実施形態の通信ノードのエントリ管理部に設定されているエントリ配分率の一例を示す図である。
【図５】本発明の第１の実施形態の通信ノードの動作を示すフローチャートである。
【図６】本発明の第２の実施形態の通信ノードのエントリ記憶部に保持されるテーブルを説明するための図である。
【図７】本発明の第２の実施形態の通信ノードのエントリ記憶部に保持されるテーブルを説明するための図である。
【図８】本発明の第３の実施形態の構成を示す図である。
【図９】サーバ−ホスト間の通信と、フローエントリとの関係を説明するための図である。
【発明を実施するための形態】
【００１６】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００１７】
本発明は、その一実施形態において、受信パケットに適用する処理を定めたフローエントリを利用者情報と対応付けて所定数保持可能なエントリ記憶部（図１の２０１）と、エントリ記憶部（図１の２０１）を参照して、受信パケットを処理するパケット処理部（図１の２０２）と、予め定められた基準に基づいて、エントリ記憶部（図１の２０１）に保持されている一の利用者のためのフローエントリの数が、前記エントリ記憶部の保持可能なフローエントリの数に対する所定の割合を超えないよう制御するエントリ管理部（図１の２０３）と、を備えた通信ノードにて実現できる。利用者情報としては、例えば、ネットワーク上のサーバや仮想マシンを利用したサービスの提供者や、これらサービスを受ける一般ユーザといった通信主体の情報が挙げられる。
【００１８】
上記構成を採ることにより、特定の利用者のためのフローエントリが制約無く増えてしまう事態を回避することができる。
【００１９】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図１は、本発明の第１の実施形態の構成を示す図である。図１を参照すると、制御装置１０と、通信ノード２０と、通信ノード２０を介して通信するサーバ３０Ａ、３０Ｂ及びホスト４０を含む構成が示されている。
【００２０】
制御装置１０は、通信ノード２０のエントリ記憶部２０１にフローエントリを設定することにより、通信ノード２０を制御する。このような制御装置１０としては、非特許文献１、２のオープンフローコントローラやＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）コントローラと呼ばれる製品を用いることができる。
【００２１】
通信ノード２０は、制御装置１０から設定されるフローエントリを記憶するエントリ記憶部２０１と、エントリ記憶部２０１から受信パケットに適合するマッチ条件を持つエントリに従いパケットを処理するパケット処理部２０２と、エントリ記憶部２０１に記憶されているエントリを管理するエントリ管理部２０３とを備えている。
【００２２】
図２は、通信ノード２０のエントリ記憶部２０１に記憶されるフローエントリの構成を示す図である。図２を参照すると、本実施形態のフローエントリは、パケットの受信ポートやヘッダ情報と照合するマッチ条件と、このマッチ条件に適合したパケット等の統計情報を記録するフロー統計情報と、前記マッチ条件に適合したパケットに適用する処理を格納するインストラクションと、前記マッチ条件に適合するパケットの利用者を示す利用者情報とを対応付けて構成されている。なお、図２に示したフローエントリは、非特許文献２の「５．２  Ｆｌｏｗ  Ｔａｂｌｅ」に記載されているフローエントリに、利用者情報フィールドを追加した構成にて実現できる。
【００２３】
同一のネットワークを複数ユーザで共用する場合、ユーザ毎に異なるＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）  ＩＤを割り当てて運用することが一般的である。そこで、本実施形態では、利用者情報として、ＶＬＡＮ  ＩＤを用いることとする。利用者情報としては、上記ＶＬＡＮ  ＩＤに限られず、パケットの送信元や宛先の装置の管理者を示す情報といった粒度の細かい情報を用いることもできる。
【００２４】
以下、本実施形態では、ユーザＡ（テナントＡ）はサーバ３０Ａをレンタルして使用し、ユーザＢ（テナントＢ）はサーバ３０Ｂをレンタルして使用する。同一ネットワークを複数ユーザで共用するために、ユーザＡに割り当てられたＶＬＡＮ  ＩＤを「α」とし、ユーザＢに割り当てられたＶＬＡＮ  ＩＤを「β」とする。
【００２５】
また、通信ノード２０は、ポート２０４、２０５を備えており、それぞれＶＬＡＮ  ＩＤが設定可能となっている。本実施形態では、通信ノード２０のサーバ３０Ａと接続されるポート２０４にはＶＬＡＮ  ＩＤ「α」が設定され、通信ノード２０のサーバ３０Ｂと接続されるポート２０５には  ＩＤ「β」が設定されているものとする。これら各ポートに設定されたＶＬＡＮ  ＩＤは、エントリ記憶部２０１の利用者情報フィールドにＶＬＡＮ  ＩＤを記録する際に使用される。
【００２６】
パケット処理部２０２は、パケットを受信すると、エントリ記憶部２０１から受信パケットに適合するマッチ条件を持つフローエントリを検索する。前記検索の結果、受信パケットに適合するマッチ条件を持つフローエントリが見つかった場合、パケット処理部２０２は、受信パケットに、当該フローエントリのインストラクションフィールドに規定された処理内容（指定ポートから転送、ヘッダ書換え等）を適用する。併せて、パケット処理部２０２は、当該フローエントリのフロー統計情報フィールドを更新するとともに、利用者情報フィールドに、パケットの受信ポートに設定されたＶＬＡＮ  ＩＤを記録する。
【００２７】
なお、前記エントリ記憶部２０１の検索の結果、受信パケットに適合するマッチ条件を持つフローエントリが見つからなかった場合、パケット処理部２０２は、制御装置１０に対して、受信パケット又は受信パケットから抽出した情報を送信し、フローエントリの設定を要求する。
【００２８】
パケット処理部２０２は、制御装置１０に対してフローエントリの設定を要求した際に、前記エントリ記憶部２０１に空きが無い場合、エントリ管理部２０３に対し、パケットの受信ポートに設定されたＶＬＡＮ  ＩＤを指定してエントリの削除を依頼する。
【００２９】
エントリ管理部２０３は、パケット処理部２０２からエントリの削除依頼を受けると、エントリ記憶部２０１に保持されているフローエントリの利用者情報を元に、エントリ記憶部２０１の保持可能なフローエントリの数に対する当該利用者（ＶＬＡＮ  ＩＤ）を設定されたフローエントリの割合（使用率）が、その利用者（ＶＬＡＮ  ＩＤ）に設定された負担率（しきい値）を超えているか否かを確認する。前記検索の結果、該当する利用者のフローエントリの割合（使用率）が負担率（しきい値）を超えている場合、エントリ管理部２０３は、その利用者情報が対応付けられたフローエントリの中からＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔ  Ｕｓｅｄ）等のアルゴリズムを用いて選択したフローエントリを削除して、エントリ記憶部２０１に空き領域を作成する。
【００３０】
前記検索の結果、該当する利用者のフローエントリの割合（使用率）が前記各ユーザ毎に設定された負担率（しきい値）を超えていない場合、エントリ管理部２０３は、その利用者以外の利用者情報が対応付けられたフローエントリの中からＬＲＵ等のアルゴリズムを用いて選択したフローエントリを削除して、エントリ記憶部２０１に空き領域を作成する。
【００３１】
ここで、上記した利用者のフローエントリの割合（使用率）と、負担率（しきい値）について説明する。図３は、ある時点におけるエントリ記憶部２０１に記憶されているフローエントリを示す図である。利用者情報フィールドに「α」が記録されているフローエントリは、サーバ３０ＡをレンタルしているユーザＡのためのフローエントリである。同様に、利用者情報フィールドに「β」が記録されているフローエントリは、サーバ３０ＢをレンタルしているユーザＢのためのフローエントリである。利用者情報フィールドに「α、β」が記録されているフローエントリは、ポート２０４から到着したパケット、および、ポート２０５から到着したパケットの両方がマッチしたことがあるフローエントリであり、ユーザＡ、Ｂが共用しているフローエントリということができる。
【００３２】
図３のＥｔはエントリ記憶部２０１が保持可能なフローエントリの総数を表している。また、Ｅｓは、ユーザＡとユーザＢで共有しているフローエントリの数を表している。Ｅａは、ユーザＡのみが使用しているフローエントリの数を表し、Ｅｂは、ユーザＢのみが使用しているフローエントリの数を表している。また、Ｅｅは、使用されていない領域（空き領域）に格納可能なフローエントリの数を表している。
【００３３】
本実施形態では、まず、上記した数値を用いて、各ユーザのフローエントリの使用尺度Ｍａ、Ｍｂを算出する。Ｍａは、ユーザＡのフローエントリの使用尺度、Ｍｂは、ユーザＢのフローエントリの使用尺度を示している。例えば、４００個のフローエントリを保持可能で空き領域が無い場合において（Ｅｔ＝４００、Ｅｅ＝０）、ユーザＡのＶＬＡＮ  ＩＤが記録されているフローエントリが２００個（Ｅｓ＝１００、Ｅａ＝１００）ある場合、Ｍａは０．５と算出される。同様に、ユーザＢのＶＬＡＮ  ＩＤが記録されているフローエントリが３００個（Ｅｓ＝１００、Ｅｂ＝２００）ある場合、Ｍｂは０．７５と算出される。
Ｍａ  ＝  （Ｅｓ  ＋  Ｅａ）／（Ｅｔ  −  Ｅｅ）
Ｍｂ  ＝  （Ｅｓ  ＋  Ｅｂ）／（Ｅｔ  −  Ｅｅ）
【００３４】
また、ユーザ毎のフローエントリ使用率は以下のように表せる。ユーザＡのフローエントリ使用率をＵａ、ユーザＢのフローエントリ使用率をＵｂとする。
Ｕａ  ＝  Ｍａ／（Ｍａ  ＋  Ｍｂ）
Ｕｂ  ＝  Ｍｂ／（Ｍａ  ＋  Ｍｂ）
【００３５】
例えば、Ｍａ＝０．５、Ｍｂ＝０．７５とすると、ユーザＡのフローエントリ使用率Ｕａは、０．４＝４０％と算出される。同様に、ユーザＢのフローエントリ使用率Ｕｂは、０．６＝６０％と算出される。
【００３６】
図４は、各ユーザ毎に設定された負担率（しきい値）の例であり、ネットワーク管理者等により、エントリ管理部２０３等に設定される。図４の例では、新規フローエントリを格納する空き領域が無い場合に、ユーザＡは、フローエントリ使用率Ｕａが４１％を超えると、自身のフローエントリが削除対象となる。同様にユーザＢは、フローエントリ使用率Ｕｂが５９％を超えると、自身のフローエントリが削除対象となる。前述の例では、ユーザＡのフローエントリ使用率Ｕａは４０％であるので、新規フローエントリを格納する空き領域が無い場合、ユーザＡのフローエントリは削除対象とならずに、ユーザＢのフローエントリが削除対象となる。一方、ユーザＢのフローエントリ使用率Ｕｂは６０％であるので、新規フローエントリを格納する空き領域が無い場合、ユーザＢのフローエントリが削除対象となる。この結果、次の判定時には、フローエントリ使用率Ｕｂが減少することになる。
【００３７】
本実施形態では、各ユーザがネットワークインフラをレンタルするに当たって負担した料金を元に上記した負担率（しきい値）を計算している。例えば、ユーザＡが支払った金額をＣａ、ユーザＢが支払った金額をＣｂとすれば、ユーザＡの負担率（しきい値）Ｐａ及びユーザＢの負担率（しきい値）Ｐｂは以下のように求めることができる。このようにすることで、ネットワークインフラをレンタルするに当たって負担した料金に応じ、フローエントリの設定数の上限を定めることができる。
Ｐａ  ＝  Ｃａ／（Ｃａ  ＋  Ｃｂ）
Ｐｂ  ＝  Ｃｂ／（Ｃａ  ＋  Ｃｂ）
【００３８】
即ち、本実施形態によるフローエントリの数の制御は、各ユーザの負担率に応じて、使用できるフローテーブル領域（フローエントリ使用率Ｕ）を保証するものということもできる。
【００３９】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図５は、本発明の第１の実施形態の通信ノードの動作を示すフローチャートである。図５を参照すると、まず、通信ノード２０は、パケットを受信すると、当該パケットを受信したポートのＶＬＡＮ  ＩＤを識別しておく（ステップＡ０１）。
【００４０】
次に、通信ノード２０は、当該パケットのヘッダ情報を読み取り、エントリ記憶部２０１から、前記ヘッダ情報に適合するマッチ条件を持つフローエントリを検索する（ステップＡ０２）。
【００４１】
前記検索の結果、パケットのヘッダ情報に適合するマッチ条件を持つフローエントリが存在した場合、通信ノード２０は、当該フローエントリの利用者情報フィールドにステップＡ０１で識別したＶＬＡＮ  ＩＤと同一のＶＬＡＮ  ＩＤが記録済みであるかどうかを確認する（ステップＡ０３）。
【００４２】
前記確認の結果、該当するＶＬＡＮ  ＩＤが既に記録されていた場合、当該フローエントリは、受信パケットの利用者として設定済みである。通信ノード２０は、そのインストラクションフィールドに設定された処理を実行する（ステップＡ０４）。
【００４３】
一方、ステップＡ０３の確認の結果、該当するＶＬＡＮ  ＩＤが既に記録されていない場合、当該フローエントリは、受信パケットの利用者として設定されていないので、通信ノード２０は、当該フローエントリの利用者情報フィールドにステップＡ０１で識別したＶＬＡＮ  ＩＤを追記する（ステップＡ０６）。これにより、以後、当該フローエントリは、図３に示した共有フローエントリとしてカウントされることになる。ステップＡ０６の後は、同様に、通信ノード２０は、ステップＡ０４以降の処理を実行する。
【００４４】
一方、ステップＡ０２の検索の結果、パケットのヘッダ情報に適合するマッチ条件を持つフローエントリが存在しなかった場合、通信ノード２０は、制御装置１０に対しフローエントリの設定を要求することになる。制御装置１０に対しフローエントリの設定を要求する前に、通信ノード２０は、エントリ記憶部２０１に空き領域があるかないかを確認する（ステップＡ０７）。
【００４５】
前記確認の結果、エントリ記憶部２０１に空き領域が存在した場合、この空き領域に新規フローエントリを設定することになる。通信ノード２０は、制御装置１０に対しフローエントリの設定を要求し、制御装置１０から送られたフローエントリをエントリ記憶部２０１に登録する（ステップＡ０８）。以降は、先のフローエントリが見つかった場合と同様に、ＶＬＡＮ  ＩＤの追記（ステップＡ０６）、フローエントリに従ったパケット処理（ステップＡ０４）が実行される。
【００４６】
一方、ステップＡ０７の確認の結果、エントリ記憶部２０１に空き領域が存在しない場合、エントリ記憶部２０１に記憶されているフローエントリを一つ削除し、空き領域を確保する必要がある。
【００４７】
そこで、パケット処理部２０２は、エントリ管理部２０３に対し、ステップＡ０１で識別したＶＬＡＮ  ＩＤを指定してエントリの削除を依頼する。
【００４８】
前記依頼を受けたエントリ管理部２０３は、上記説明した数式等を用いて、ステップＡ０１で識別したＶＬＡＮ  ＩＤに対応するユーザのフローエントリ使用率Ｕを計算し、各ユーザの負担率（しきい値）Ｐとを比較する（ステップＡ０９）。
【００４９】
前記比較の結果、パケット受信したポートＶＬＡＮ  ＩＤが割り当てられたユーザのフローエントリ使用率Ｕが、各ユーザの負担率（しきい値）Ｐを超えている場合、エントリ管理部２０３は、このユーザが使用するフローエントリの中からＬＲＵ等を用いて選択したエントリを削除する（ステップＡ１０）。つまり、料金の負担分以上にエントリ記憶部２０１の領域を使いすぎている状況である場合、そのユーザが利用者として記録されているフローエントリが削除の対象となる。以降は、先に説明したとおり、制御装置１０へのフローエントリの設定要求とエントリ記憶部２０１への登録（ステップＡ０８）、ＶＬＡＮ  ＩＤの追記（ステップＡ０６）、フローエントリに従ったパケット処理（ステップＡ０４）が実行される。
【００５０】
一方、前記比較の結果、パケット受信したポートＶＬＡＮ  ＩＤが割り当てられたユーザのフローエントリ使用率Ｕが、各ユーザの負担率（しきい値）Ｐ以下である場合、エントリ管理部２０３は、他のユーザが使用するフローエントリの中からＬＲＵ等を用いて選択したエントリを削除する（ステップＡ１１）。以降は、先に説明したとおり、制御装置１０へのフローエントリの設定要求とエントリ記憶部２０１への登録（ステップＡ０８）、ＶＬＡＮ  ＩＤの追記（ステップＡ０６）、フローエントリに従ったパケット処理（ステップＡ０４）が実行される。
【００５１】
なお、ステップＡ１１において、他のユーザが複数いる場合、各ユーザについて、フローエントリ使用率Ｕを計算し、負担率（しきい値）Ｐとの乖離が大きいユーザのフローエントリを削除するようにしてもよい。
【００５２】
以上のように、本実施形態によれば、通信ノード２０のエントリ記憶部２０１に保持されているフローエントリが特定ユーザのフローエントリに偏らないように管理される。この結果、図１のサーバ３０Ａ、３０Ｂの通信頻度によってフローエントリの数に不均衡が生じ、一方のサーバのＴＡＴが落ちてしまうといった事態も防ぐことが可能となる。
【００５３】
また、本実施形態によれば、各ユーザが、ネットワークインフラを使用するにあたって支払った料金の割合に応じて、設定可能なフローエントリの数を制御でき、ユーザ間の公平性を担保することができる。またこれにより、データセンタ事業者などが、ネットワークインフラを貸し出す際に、フローエントリ使用率Ｕに応じた課金体系を構築することが可能となる。
【００５４】
なお、上記した実施形態では、エントリ記憶部２０１に空き領域が無くなってから、フローエントリの削除を行うこととしているが、例えば、新規のユーザからのパケットや制御用のパケットを処理するフローエントリを設定する領域を確保する必要がある場合には、エントリ記憶部２０１に空き領域が無くなる前に、既存ユーザのフローエントリの削除制御を行ってもよい。この場合、例えば、図５のステップＡ０７において、エントリ記憶部２０１の空き領域が所定フローエントリ分乃至所定割合あるか否かを判定し、その結果に応じてフローエントリを削除するか否かを決定することになる。
【００５５】
［第２の実施形態］
続いて、上記した第１の実施形態をより簡単化した第２の実施形態について図面を参照して説明する。本実施形態は、ユーザ（ＶＬＡＮ  ＩＤ）毎に専用のテーブルを割り当てる方式であり、その他は第１の実施形態と同様であるので、その相違点を中心に説明する。
【００５６】
図６、図７は、本実施形態の通信ノード２０のエントリ記憶部に設定されるテーブルの例である。図６は、ユーザＡに割り当てられたテーブルを示している。図６のユーザＡのテーブルに格納可能なフローエントリの総数Ｅｔａは、通信ノード２０のエントリ記憶部が保持可能なフローエントリの総数Ｅｔと、前述の負担率Ｐａとから、Ｅｔａ＝Ｅｔ×Ｐａにより算出できる。同様に、図７は、ユーザＢに割り当てられたテーブルを示している。
【００５７】
以上のように、本実施形態によれば、フローエントリの使用率の計算をしなくとも、負担率に応じた数のフローエントリを割り当てることができる。
【００５８】
［第３の実施形態］
続いて、上記した利用者毎のフローエントリの数の制御を制御装置側で実行するようにして第３の実施形態について図面を参照して説明する。図８を参照すると、制御装置１０Ａと、通信ノード２０Ａと、通信ノード２０Ａを介して通信するサーバ３０Ａ、３０Ｂ及びホスト４０を含む構成が示されている。
【００５９】
制御装置１０Ａは、各通信ノード２０Ａに設定したフローエントリを記憶するエントリ記憶部１０１と、通信ノード２０Ａからのフローエントリの設定要求に応じて、通信ノード２０Ａのエントリ記憶部２０１にフローエントリを設定するエントリ設定部１０２と、第１の実施形態のエントリ管理部２０３と同様に、利用者毎にフローエントリの数を制御するエントリ管理部１０３とを備えている。
【００６０】
本実施形態では、制御装置１０Ａは、通信ノード２０Ａからのフローエントリの設定要求を受けると、エントリ記憶部１０１を参照して、通信ノード２０Ａのエントリ記憶部２０１に空きがあるか否かを確認し、空きが無い場合、上記した第１の実施形態と同様に、通信ノード２０Ａのエントリ記憶部２０１が保持可能なフローエントリの総数に対するフローエントリの割合（使用率）が、その利用者（ＶＬＡＮ  ＩＤ）に設定された負担率（しきい値）を超えているユーザのフローエントリを優先して削除する。そして、制御装置１０Ａは、前記削除によりできた空き領域に、通信ノード２０Ａからのフローエントリの設定要求を受けて作成したフローエントリを設定する。
【００６１】
以上のように、本発明は、通信ノード側の制御ではなく、制御装置側の制御により実施する形態にも変形できる。また、上記した第２の実施形態と同様に、通信ノードが複数のテーブルを備えている場合においても同様に、制御装置１０Ａが、各テーブルを参照して、利用者毎のフローエントリの数を制限する形態にも変形できる。
【００６２】
なお、図１、８に示した各装置のエントリ管理部１０３、２０３は、これらの装置に搭載されたコンピュータに、そのハードウェアを用いて、上記したエントリ管理部１０３、２０３の機能を実現する処理を実行させるコンピュータプログラムにより実現することもできる。
【００６３】
以上、本発明の実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した実施形態で用いたネットワーク構成や、要素の数に制約は無い。
【００６４】
例えば、上記した各実施形態では、通信ノード２０、２０Ａが一つである構成を用いて説明したが、通信ノード２０、２０Ａが複数あってもよい。また、上記した各実施形態では、ユーザＡ、ユーザＢがネットワークを共有する例を挙げて説明したが、３人以上のユーザがネットワークを共有する場合にも同様に適用可能である。
【００６５】
例えば、上記した各実施形態で例示したフローエントリの割合（使用率）や負担率（しきい値）は、種々の変形を加えることができる。例えば、例えば、共有のフローエントリは、制御用のフローエントリ等である場合が多いことを考慮して、フローエントリの割合（使用率）の算出根拠に用いないようにしてもよい。同様の観点で、共有のフローエントリは、削除の対象外としてもよい。
【００６６】
最後に、本発明の好ましい形態を要約する。
［第１の形態］
（上記第１の視点による通信ノード参照）
［第２の形態］
第１の形態において、
前記エントリ管理部は、少なくとも前記エントリ記憶部が保持可能なエントリ数と、利用者のためのエントリ数とを用いて所定の方法で算出した利用者のエントリ使用率が、前記利用者毎に設定されたしきい値を超えないよう制御する通信ノード。
［第３の形態］
第２の形態において、
前記エントリ管理部は、
前記エントリ記憶部の空き領域が所定数の制御情報エントリ分ある間は、前記しきい値による制御情報エントリの削除を行わず、
前記エントリ記憶部の空き領域が所定数の制御情報エントリを格納できなくなってから、前記しきい値によるエントリ制御を開始する通信ノード。
［第４の形態］
第２又は第３の形態において、
前記しきい値が、各ユーザのネットワーク利用料金に基づいて設定される通信ノード。
［第５の形態］
第１の形態において、
前記エントリ記憶部に、制御情報エントリを格納するテーブルが利用者毎に用意され、
前記エントリ管理部は、前記しきい値によるエントリ制御に代えて、前記テーブルを用いて各利用者の制御情報エントリの数を制御する通信ノード。
［第６の形態］
第５の形態において、
前記各テーブルの格納可能な制御情報エントリの数が、各ユーザのネットワーク利用料金に基づいて設定される通信ノード。
［第７の形態］
第１〜第６いずれか一の形態において、
利用者が異なる装置と接続されたポートにＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）情報が設定されており、
前記制御情報エントリの設定の契機となったパケットを受信したポートに設定されたＶＬＡＮ情報に基づいて、利用者を判別する通信ノード。
［第８の形態］
（上記第２の視点による制御装置参照）
［第９の形態］
（上記第３の視点による制御情報エントリの管理方法参照）
［第１０の形態］
（上記第４の視点によるプログラム参照）
なお、上記第８〜第１０の形態は、第１の形態と同様に、第２〜第７の形態に展開することが可能である。
【００６７】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００６８】
１０、１０Ａ  制御装置
２０、２０Ａ  通信ノード
３０Ａ、３０Ｂ  サーバ
４０  ホスト
１０１、２０１  エントリ記憶部
１０２  エントリ設定部
１０３、２０３  エントリ管理部
２０２  パケット処理部
２０４、２０５  ポート
【図１】
2014098117.tif 000003
【図２】
2014098117.tif 000004
【図３】
2014098117.tif 000005
【図４】
2014098117.tif 000006
【図５】
2014098117.tif 000007
【図６】
2014098117.tif 000008
【図７】
2014098117.tif 000009
【図８】
2014098117.tif 000010
【図９】
2014098117.tif 000011
【国際調査報告】
2014098117.tif 000012
2014098117.tif 000013
2014098117.tif 000014