(57)【要約】【課題】テーブル検索処理に起因する処理負荷を低減する。【解決手段】制御装置は、転送装置を制御する制御装置であって、評価部、生成部、送信部を備える。評価部は、転送装置でのパケットの処理に使用される複数の処理ルールの各々について、処理ルールを適用するパケットを特定する適用条件の種類に基づいて、処理ルールに合致するパケットを特定する際に発生する処理負荷を評価する。生成部は、転送装置に使用させるテーブルとして、処理負荷が軽い順に複数の処理ルールを格納したルールテーブルを生成する。送信部は、ルールテーブルの設定を要求する制御パケットを転送装置に送信する。【選択図】図１
2018125577.tif 000002
【特許請求の範囲】
【請求項１】
転送装置を制御する制御装置であって、
前記転送装置でのパケットの処理に使用される複数の処理ルールの各々について、当該処理ルールを適用するパケットを特定する適用条件の種類に基づいて、当該処理ルールに合致するパケットを特定する際に発生する処理負荷を評価する評価部と、
前記転送装置に使用させるテーブルとして、前記処理負荷が軽い順に前記複数の処理ルールを格納したルールテーブルを生成する生成部と、
前記ルールテーブルの設定を要求する制御パケットを前記転送装置に送信する送信部
を備えることを特徴とする制御装置。
【請求項２】
前記転送装置から、前記転送装置が所定期間中に処理したパケットの量を前記複数の処理ルールの各々について求めたトラフィック情報を取得する取得部と、
前記複数の処理ルールの順序を前記ルールテーブルと異なる順序に設定する場合に使用可能な順序の候補を求める候補特定部と、
前記候補の各々について、前記複数の処理ルールを前記所定期間中に適用するパケット量が前記トラフィック情報と同じ場合に発生する処理負荷の指標値を計算する計算部
を備え、
前記生成部は、前記転送装置に設定するルールテーブル中の前記複数の処理ルールの順序を、前記指標値が相対的に小さい候補で指定された順序に更新する
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記候補特定部は、
前記複数の処理ルールに、順序を入れ替えることにより前記転送装置でのパケットの処理が変更される処理ルールの組み合わせが含まれているかを判定し、
前記組み合わせが前記複数の処理ルールに含まれている場合、前記複数の処理ルールの順序を前記ルールテーブルと異なる順序に設定する場合に使用可能な順序の候補のうち、前記組み合わせに含まれる処理ルールの順序が前記ルールテーブルと同じ候補を選択し、
前記計算部は、前記候補特定部が選択した候補の各々について、前記指標値を計算する
ことを特徴とする請求項２に記載の制御装置。
【請求項４】
前記指標値は、前記複数の処理ルールの各々についての、当該処理ルールを処理対象のパケットに適用することを決定するまでにかかる時間と、当該処理ルールを適用可能なパケットを前記転送装置が所定期間内に処理する量との積の関数である
ことを特徴とする請求項２または３に記載の制御装置。
【請求項５】
制御装置から通知された処理ルールを用いてパケットを処理する転送装置であって、
パケットの送受信を行う通信部と、
前記制御装置から通知された処理ルールの各々について、当該処理ルールを適用するパケットを特定する適用条件の種類に基づいて、当該処理ルールに合致するパケットを特定する際に発生する処理負荷を評価する評価部と、
前記処理負荷が軽い順に前記複数の処理ルールを格納したルールテーブルを生成する生成部と、
前記通信部が受信したパケットを前記ルールテーブルに従って処理する処理部
を備えることを特徴とする転送装置。
【請求項６】
転送装置を制御する制御装置が、
前記転送装置でのパケットの処理に使用される複数の処理ルールの各々について、当該処理ルールを適用するパケットを特定する適用条件の種類に基づいて、当該処理ルールに合致するパケットを特定する際に発生する処理負荷を評価し、
前記転送装置に使用させるテーブルとして、前記処理負荷が軽い順に前記複数の処理ルールを格納したルールテーブルを生成し、
前記ルールテーブルの設定を要求する制御パケットを前記転送装置に送信する
処理を行うことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、転送装置、および、制御方法に関する。
【背景技術】
【０００２】
近年、ネットワーク機能を仮想化するＮＦＶ（Network Functions Virtualization）が注目されている。ＮＦＶによると、ネットワーク機能は汎用サーバ上で動作するアプリケーションによって実現される。従って、ＮＦＶを用いたシステムでは、個々のネットワーク機能を専用の装置で実現するシステムに比べて、ネットワーク機器のコストを削減できる。また、ＮＦＶにより、ネットワークサービスの柔軟性の向上および高機能化が実現され得る。
【０００３】
しかし、ネットワーク機能が仮想化された場合、ネットワーク機能の処理性能は、仮想化環境やネットワーク機能の実現に使用される設定の内容に応じて変動しうる。例えば、ファイアウォールやルータ等のテーブル検索処理を行うネットワーク機能の最大スループットは、パケットの処理の際に行われるテーブルの検索回数に依存する。例えば、ファイアウォールとして動作する際に、汎用サーバは、受信パケットのヘッダに含まれている情報を、ルールテーブル中のマッチ条件と比較する処理を、受信パケットに適用可能なマッチ条件を特定するまで繰り返す。受信パケットにマッチ条件が適用可能であるかの判定処理回数が増えるほど、ファイアウォールとして動作しているサーバの処理負荷は高くなり、パケットの転送遅延も大きくなってしまう。そこで、テーブル中のマッチ条件を、受信データパケットに頻繁にマッチする条件ほど順序の前方に移動し、受信データパケットに頻繁にマッチしない条件ほど順序の後方に移動するパケットフィルタが提案されている（例えば、特許文献１など）。
【０００４】
関連する技術として、複数のルールを所定の順序で評価してパケットに適用するルールを決定し、ルールの適用回数と最後に評価された第１のルールの特徴情報に基づいて第２のルールを生成するルール制御装置が提案されている（例えば、特許文献２など）。このルール制御装置では、第２のルールは第１のルールより前に評価されるように設定される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−１７４８０８号公報
【特許文献２】特開２００９−７７０３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
パケットの処理に使用される複数のルールの間で、そのルールが適用可能であるかを判定するために行われる処理にかかる負荷が同じであるとは限らない。しかし、サーバでの処理負荷の低減を行うために、複数のルールの各々の間で適用の可否を判定するための処理負荷の差まで考慮した検討はなされていない。ルールテーブルの始めの方に設定されている処理ルールは、その処理ルールより後ろに登録されている処理ルールが適用されるパケットに対する処理の検索の際にも、検索対象になる。このため、受信データパケットに頻繁にマッチする条件ほど順序の前方に移動したとしても、ルールテーブルの始めの方に設定されている処理ルールの判定にかかる負荷が高い場合、テーブル検索処理に起因する処理負荷が低減されない可能性がある。
【０００７】
本発明は、テーブル検索処理に起因する処理負荷を低減することを目的とする。
【課題を解決するための手段】
【０００８】
ある１つの態様にかかる制御装置は、転送装置を制御する制御装置であって、評価部、生成部、送信部を備える。評価部は、前記転送装置でのパケットの処理に使用される複数の処理ルールの各々について、当該処理ルールを適用するパケットを特定する適用条件の種類に基づいて、当該処理ルールに合致するパケットを特定する際に発生する処理負荷を評価する。生成部は、前記転送装置に使用させるテーブルとして、前記処理負荷が軽い順に前記複数の処理ルールを格納したルールテーブルを生成する。送信部は、前記ルールテーブルの設定を要求する制御パケットを前記転送装置に送信する。
【発明の効果】
【０００９】
テーブル検索処理に起因する処理負荷を低減できる。
【図面の簡単な説明】
【００１０】
【図１】実施形態にかかるルールテーブルの設定方法の例を説明する図である。
【図２】制御装置の構成の例を説明する図である。
【図３】制御装置のハードウェア構成の例を説明する図である。
【図４】ネットワークの例を説明する図である。
【図５】最大スループットの測定処理の例を説明する図である。
【図６】性能プロファイルの計算方法の例を説明する図である。
【図７】性能プロファイルテーブルの例を説明する図である。
【図８】性能プロファイルの求め方の例を説明するフローチャートである。
【図９】パケット処理時間の算出例を説明する図である。
【図１０】ルールテーブルの設定方法の例を説明するフローチャートである。
【図１１】ルールテーブルの例を説明する図である。
【図１２】ルールテーブルの設定と最大スループットの関係を説明する図である。
【図１３】第２の実施形態にかかる制御装置の構成の例を説明する図である。
【図１４】ルールテーブルとトラフィック情報の例を説明する図である。
【図１５】第２の実施形態にかかるルールテーブルの設定方法の例を説明するフローチャートである。
【図１６】ルールテーブルの設定と処理負荷のシミュレーション結果を説明する図である。
【図１７】競合判定が行われる場合の例を説明する図である。
【図１８】第３の実施形態にかかる処理ルールの設定方法の例を説明するフローチャートである。
【図１９】転送装置の構成の例を示す図である。
【発明を実施するための形態】
【００１１】
図１は、実施形態にかかるルールテーブルの設定方法の例を説明する図である。パケットの処理に使用されるルールを適用するかの判定にかかる負荷は、その処理ルールを適用するかを判定する際に使用される条件（適用条件）の種類に応じて変動しうる。
【００１２】
ケースＣ１は、パケットの処理に適用可能な複数のルールの例を示す。ケースＣ１の例ではルールＡ〜ルールＣの３つを示している。ルールＡの適用条件としてパケットの宛先ＩＰ（Internet Protocol）アドレスの値が指定されており、ルールＢとルールＣでは、ルールの適用条件としてパケットの宛先ポート番号の値が指定されているとする。この場合、処理対象のパケットにルールＡを適用するかを判定する際にかかる処理負荷は、パケットのＩＰヘッダからの宛先ＩＰアドレスの読み込みにかかる処理負荷と、読み込んだ宛先ＩＰアドレスと適用条件との比較処理にかかる処理負荷の和である。一方、処理対象のパケットにルールＢかルールＣを適用するかを判定する際にかかる処理負荷は、パケットのペイロードからの宛先ポート番号の読み込みにかかる処理負荷と、得られたポート番号と適用条件との比較にかかる処理負荷の和である。
【００１３】
ここで、宛先ＩＰアドレスなどＩＰヘッダ中の情報に対するアクセスにかかる処理負荷は、ポート番号などペイロード中に含まれている情報に対するアクセスにかかる処理負荷よりも小さいことが多い。すると、処理対象のパケットにルールＡを適用するかを判定するためにかかる処理負荷は、処理対象のパケットにルールＢやルールＣを適用するかを判定するためにかかる処理負荷よりも軽いといえる。また、処理負荷が軽いほど、処理にかかる時間も短くなるので、処理対象のパケットにルールＡを適用するかを判定するためにかかる時間は、処理対象のパケットにルールＢやルールＣを適用するかを判定するためにかかる時間よりも短くなることが予測される。パケットに適用する処理ルールを特定するためにかかる時間は、パケットへの適用が可能かを判定した個々の処理ルールに対する判定処理にかかる時間の総和であるため、ルールテーブル中の処理ルールの格納順により変動する。
【００１４】
例えば、テーブルＴ１に示すルールテーブルを用いる装置では、ルールＡ、ルールＣ、ルールＢの順にパケットへの適用が可能であるかの判定が行われる。一方、テーブルＴ２に示すルールテーブルを用いる装置では、ルールＢ、ルールＣ、ルールＡの順にパケットへの適用が可能であるかの判定が行われる。ここで、ルールＣが適用されるパケットが処理対象になったとする。すると、テーブルＴ１を用いる装置では、ルールＡの適用の判定の後にルールＣの適用判定が行われることにより、処理対象のパケットにルールＣを適用することが決定される。このため、ルールＣで処理されるパケットに適用するルールの決定には、ルールＡに対する判定時間とルールＣに対する判定時間を合わせた時間がかかる。一方、テーブルＴ２を用いる装置では、ルールＢの適用の判定の後にルールＣの適用判定が行われるため、ルールＣで処理されるパケットに適用するルールの決定には、ルールＢに対する判定時間とルールＣに対する判定時間を合わせた時間がかかる。ここで、ルールＡの判定処理にかかる時間はルールＢの判定処理にかかる時間より短いので、テーブルＴ１を用いた装置では、テーブルＴ２を用いる装置よりも、ルールＣを適用するパケットを早く処理できることになる。そこで、実施形態にかかる装置は、ルールテーブル中の処理ルールを、処理負荷の軽い順に並べ替える。
【００１５】
実施形態にかかる処理装置は、ルールテーブルに含められる処理ルールの各々について、ルール種別の情報を取得する（ステップＳ１０１）。ここで、「ルール種別」は、処理ルールに対する適用条件の指定に使用されているパラメータの種類である。なお、宛先ＩＰアドレスと宛先ポート番号の組み合わせのように複数の情報の組合せで適用条件が指定されている処理ルールでは、適用条件の指定に用いられる情報要素の組み合わせがルール種別として取得される。その後、処理装置は、ルール種別ごとの処理負荷を求める（ステップＳ１０２）。さらに、処理装置は、ルールテーブル中の処理ルールを処理負荷の低い順に並べ替える（ステップＳ１０３）。
【００１６】
このように、処理装置では、ルールテーブル中の処理ルールが処理負荷の低い順に並べ替えられる。このため、適用の可否の判定対象となる処理ルールの数が同じであって、処理ルールが処理負荷の低い順に設定されていないテーブルが用いられるときに比べて、処理装置での適用対象の処理ルールの検索に起因する処理負荷は小さくなっている。なお、実施形態にかかる処理装置は、ネットワーク中の転送装置にルールテーブルを設定する制御装置であっても良く、また、制御装置から取得した複数の処理ルールをルールテーブルに設定可能な転送装置であっても良い。
【００１７】
＜第１の実施形態＞
第１の実施形態では、ネットワーク中の転送装置にルールテーブルを設定する制御装置がルールテーブル中の処理ルールの順序を設定する場合を例として説明する。
【００１８】
図２は、制御装置１０の構成の例を説明する図である。制御装置１０は、通信部１１、制御部２０、記憶部３０を備える。通信部１１は、送信部１２と受信部１３を有する。送信部１２は、他の装置に対してパケットを送信する。例えば、送信部１２は、制御対象の転送装置に対して、その転送装置が使用する処理ルールを含むパケットなどの制御パケットを送信する。受信部１３は、他の装置からパケットを受信する。例えば、受信部１３は、制御対象の転送装置からその転送装置の稼動状況などの情報を含むパケットを受信できる。
【００１９】
記憶部３０は、性能プロファイルテーブル３１とルールテーブル３２を格納する。ルールテーブル３２には、制御装置１０の制御対象となる転送装置に対応付けて、各転送装置に設定するルールテーブルの情報が記録される。性能プロファイルテーブル３１やルールテーブル３２の例は後述する。
【００２０】
制御部２０は、評価部２１、生成部２２、パケット処理部２３を有する。評価部２１は、ルールテーブル３２から処理ルールを取得すると、処理ルールの適用条件の設定に用いられるルール種別ごとに、性能プロファイルテーブル３１を用いて処理負荷を求める。性能プロファイルテーブル３１は、ルールテーブル３２に設定される処理ルールの適用条件の設定に用いられるルール種別ごとに、処理負荷を対応付けた情報である。生成部２２は、適用条件にパケットが合致しているかを判定する処理の負荷が小さい順に処理ルールの順序を並べ替えることにより、ルールテーブル３２を生成する。パケット処理部２３は、受信パケットの処理や送信パケットの生成を行う。例えば、パケット処理部２３は、ルールテーブル３２中の情報などを、そのルールテーブル３２を設定する対象となる転送装置に通知するための制御パケットを生成する。
【００２１】
図３は、制御装置１０のハードウェア構成の例を説明する図である。制御装置１０は、プロセッサ１０１、メモリ１０２、バス１０３、ネットワーク接続装置１０４を有する。プロセッサ１０１は、任意の処理回路であり、例えば、ＣＰＵ（Central Processing Unit）とすることができる。プロセッサ１０１は、メモリ１０２をワーキングメモリとして使用して、プログラムを実行することにより、様々な処理を実行する。メモリ１０２には、ＲＡＭ（Random Access Memory）が含まれ、さらに、ＲＯＭ（Read Only Memory）等の不揮発性のメモリも含まれる。メモリ１０２は、プログラムやプロセッサ１０１での処理に使用されるデータの格納に使用される。ネットワーク接続装置１０４は、ネットワークを介した他の装置との通信に使用される。バス１０３は、プロセッサ１０１、メモリ１０２、ネットワーク接続装置１０４を、互いにデータの入出力が可能になるように接続する。
【００２２】
制御装置１０において、プロセッサ１０１は制御部２０として動作し、メモリ１０２は記憶部３０として動作する。さらに、ネットワーク接続装置１０４は、通信部１１として動作する。
【００２３】
図４は、ネットワークの例を説明する図である。ネットワーク中には、１つ以上の転送装置５（５ａ、５ｂ）と制御装置１０が含まれている。例えば、制御装置１０はＳＤＮ（Software Defined Networking）コントローラであっても良い。この場合、転送装置５は、ＳＤＮスイッチとして動作する。各転送装置５は、その転送装置５を介して通信している端末（図示せず）や他の転送装置５からパケットを受信すると、自装置が保持しているルールテーブルを用いてパケットの処理を決定する。制御装置１０は、各転送装置５へのルールテーブルの設定や変更などを行う。なお、図４は一例であり、制御装置１０が制御する転送装置５の数は実装に応じて任意に変更され得る。
【００２４】
以下、第１の実施形態を、性能プロファイルテーブル３１の取得、パケット処理時間の算出例、処理ルールの設定に分けて説明する。なお、性能プロファイルは、あるルール種別の適用条件が設定されている処理ルールの１つに対して、その処理ルールを適用するかの判定にかかる時間を表す。
【００２５】
（１）性能プロファイルテーブル３１の取得
図５は、性能プロファイルテーブルの生成を行うために行われる最大スループットの測定処理の例を説明する図である。以下、データの転送速度のことを「スループット」と記載することがある。性能プロファイルテーブルは、適用条件の設定に用いられるルール種別が同じ複数の処理ルールを設定したルールテーブル６を転送装置５に読み込ませた上で、転送装置５でのパケットの処理速度を測定器７０で測定することにより得られる。
【００２６】
図５のネットワークＮ１は、宛先ＩＰアドレスを用いて適用条件が設定されている処理ルールを含むルールテーブル６を転送装置５に設定したネットワークを示す。測定器７０は、転送装置５に接続されており、ルールテーブル６のうちのいずれかの処理ルールを適用可能なパケットを転送装置５に送信する（矢印Ａ１）。さらに、測定器７０は、転送装置５が処理するパケットを受信する（矢印Ａ２）。このため、測定器７０は、転送装置５を介したパケットの転送速度（スループット）も測定できる。
【００２７】
ここで、測定器７０は、予めルールテーブル６を保持しており、転送装置５への送信パケットの生成の際に、生成した送信パケットがルールテーブル６中の何番目に格納された処理ルールが適用されるパケットであるかを認識している。図５に示すルールテーブル６では、個々の処理ルールが括弧書きされており、処理ルールの前に転送装置５での処理対象となる順序を表わす数字が記載されている。以下、各処理ルールが処理対象のパケットに適用可能であるかの判定が何番目に行われるかを「設定順序」と記載することがある。例えば、図５中のルールテーブル６では、設定順序＝１の処理ルールは、宛先ＩＰアドレス＝ａのパケットを転送することを表わすルールである。同様に、設定順序＝２の処理ルールは、宛先ＩＰアドレス＝ｂのパケットを転送することを表わすルールであり、設定順序＝２００の処理ルールは、宛先ＩＰアドレス＝ｘのパケットを転送することを表わすルールである。
【００２８】
測定器７０は、設定順序別に、その設定順序に設定されている処理ルールが適用される複数のパケットを所定期間にわたって送信し、転送装置５から受信するパケットを解析することにより、設定順序ごとのパケットの最大スループットを求める。例えば、測定器７０が、所定期間にわたって、宛先ＩＰアドレス＝ａのパケットを転送装置５に複数送信したとする。転送装置５は、ルールテーブル６を参照することにより、受信したパケットに設定順序＝１の処理ルールを適用することを決定すると、設定順序＝１の処理ルールに従って転送処理を行う（矢印Ａ３）。すると、測定器７０は、転送装置５から転送されたパケットを矢印Ａ２に示す経路で受信することにより、設定順序＝１の処理ルールを適用するパケットの最大スループットを求める。
【００２９】
同様に、測定器７０は、所定期間にわたって、宛先ＩＰアドレス＝ｘのパケットを転送装置５に送信したとする。転送装置５は、ルールテーブル６を参照することにより、設定順序の順に各処理ルールを受信したパケットに適用できるかを判定していく。その結果、宛先ＩＰアドレス＝ｘのパケットに設定順序＝２００の処理ルールを適用することを決定すると、設定順序＝２００の処理ルールに従って転送処理を行う（矢印Ａ４）。この場合も、測定器７０は、転送装置５から転送されたパケットを矢印Ａ２に示す経路で受信することにより、設定順序＝２００の処理ルールを適用するパケットの最大スループットを求める。その他の設定順序の処理ルールが適用されるパケットについても、同様に、測定器７０は、転送装置５を介した転送処理を行った場合のスループットを求める。
【００３０】
図５のグラフＧ１中のαは、宛先ＩＰアドレスによって適用条件が設定されている処理ルールだけを含めたルールテーブル６を保持している転送装置５への転送処理の際に得られるスループットを示す。グラフＧ１中のα〜δの各々では、測定器７０が計算したスループットが、そのスループットの計算に用いられたパケットに適用される処理ルールの設定順序に対応付けて示されている。
【００３１】
グラフＧ１中のβは、送信元ＩＰアドレスによって適用条件が設定されている処理ルールだけを含めたルールテーブル６を保持している転送装置５への転送処理の際に得られるスループットを示す。スループットの測定に際して行われる処理は、ネットワークＮ１を参照しながら説明した処理と同様であるが、βの計算に用いられる転送装置５が保持するルールテーブル６には、送信元ＩＰアドレスを適用条件とする複数の処理ルールが記録されている。さらに、αやβのグラフの生成と同様の処理により、宛先ポート番号によって適用条件が設定された場合と、送信元ポート番号によって適用条件が設定された場合についても、スループットと処理ルールの設定順序の関係が求められる。γは、宛先ポート番号によって適用条件が設定された場合に得られるグラフであり、δは送信元ポート番号によって適用条件が設定された場合に得られるグラフである。
【００３２】
図６は、性能プロファイルの計算方法の例を説明する図である。モデルＭ１は、パケットの転送処理モデルの例である。転送処理が行われる過程を、転送装置５がパケットを受信する過程（矢印Ａ１１）、処理対象のパケットに対して適用する処理ルールを検索する過程（矢印Ａ１２）、転送装置５がパケットを転送先に向けて送信する過程（矢印Ａ１３）の３つに分けたとする。転送装置５が１つのパケットを受信する過程にかかる時間と転送装置５が１つのパケットを転送先に向けて送信する過程にかかる時間の合計は、パケットの種類やパケットに適用される処理ルールの種類によらずほぼ一定と考えられる。そこで、１つのパケットの受信処理と送信処理にかかる時間の合計を定数ａとする。一方、処理対象のパケットに対して適用する処理ルールを検索する過程は、矢印Ａ１２に示すように、処理対象のパケットに適用可能な処理ルールが検出されるまで繰り返される。処理対象のパケットに適用可能な処理ルールが検出されるまでに、処理ルールを適用するかの判定処理が行われる回数をｎ回とする。また、１つの処理ルールに対しての判定処理を行うためにかかる時間をｂとする。ここで、ｂは、処理ルールに設定されている適用条件のルール種別によって異なる。以下の説明では、適用条件が宛先ポート番号で設定されている場合に１つの処理ルールを適用するかを判定するためにかかる時間をｂｄｐとする。また、適用条件が送信元ポート番号で設定されている場合に１つの処理ルールを適用するかを判定するためにかかる時間をｂｓｐとする。適用条件が宛先ＩＰアドレスで設定されている場合に１つの処理ルールを適用するかを判定するためにかかる時間をｂｄｉｐとする。同様に、適用条件が送信元ＩＰアドレスで設定されている場合に１つの処理ルールを適用するかを判定するためにかかる時間をｂｓｉｐとする。すなわち、モデルＭ１でｂと表記している値は、適用条件の指定に使用される情報の種類に応じて、ｂｄｉｐ、ｂｓｉｐ、ｂｄｐ、ｂｓｐのいずれかとなる。
【００３３】
モデルＭ２では、同じルール種別の処理ルールに対してｎ回の判定を行うことによって適用する処理ルールが決定される場合について、パケットの処理時間Ｐｎを数式で表している。図５で説明したように、特定のルール種別の処理ルールを格納したルールテーブルが使用される場合、パケットの処理時間は、送受信にかかる時間ａと、ｎ回の判定処理にかかる時間であるｎ×ｂの和であるので、モデルＭ２に示すように表される。
【００３４】
モデルＭ３は、パケットの処理時間がモデルＭ２に表わされる場合に得られる最大スループットＴｎを数式で表している。最大スループットは、モデルＭ２で表される時間をかけて処理するパケットを転送装置５が１秒あたりに処理できる数で表される。このため、最大スループットは、Ｔｎ＝１／（ａ＋ｂ×ｎ）となる。ただし、モデルＭ２、Ｍ３のいずれにおいても、ｂは、適用条件の指定に使用される情報の種類に応じて、ｂｄｉｐ、ｂｓｉｐ、ｂｄｐ、ｂｓｐのいずれかである。
【００３５】
測定器７０は、図５のグラフＧ１に示す計測結果を、図６のモデルＭ３に示す式を用いてフィッティングすることにより、ａ、ｂｄｉｐ、ｂｓｉｐ、ｂｄｐ、ｂｓｐの値を求める。すなわち、測定器７０は、αのグラフをＴｎ＝１／（ａ＋ｂｄｉｐ×ｎ）、βのグラフをＴｎ＝１／（ａ＋ｂｓｉｐ×ｎ）、γのグラフをＴｎ＝１／（ａ＋ｂｄｐ×ｎ）、δのグラフをＴｎ＝１／（ａ＋ｂｓｐ×ｎ）でフィッティングする。フィッティングの際の計算方法は、例えば、最小二乗法などの任意の既知の計算方法を用いることができる。
【００３６】
図７は、図５のグラフＧ１に対して測定器７０がフィッティング処理を行うことによって得られた性能プロファイルテーブルの値の例である。図７の例では、ｂｄｉｐ＝３．６９×１０−９、ｂｓｉｐ＝３．４９×１０−９、ｂｄｐ＝１．４４×１０−８、ｂｓｐ＝１．３２×１０−８である。測定器７０は、得られた情報を、図７に示すように、性能プロファイルテーブルとして格納する。測定器７０は、得られた性能プロファイルテーブルを制御装置１０に出力する。すると、制御装置１０は、測定器７０から取得した情報を性能プロファイルテーブル３１として記憶し、以後の処理に使用する。
【００３７】
図８は、性能プロファイルの求め方の例を説明するフローチャートである。図８の例では、定数Ｎと変数ｎが使用される。定数Ｎは、処理ルールに適用条件として含まれるパラメータの組み合わせの種類（ルール種別）の数である。変数ｎは、処理対象としたルール種別を計数するために使用される。
【００３８】
測定器７０は、制御装置１０が設定しようとするルールテーブル３２を読み込み、ルールテーブル３２中の処理ルールに適用条件として含まれるパラメータの組み合わせの種類の数（Ｎ）を決定する（ステップＳ１）。例えば、図５のα〜δのグラフの生成に用いられた全ての処理ルールがルールテーブル３２に含まれるとする。すると、ルールテーブル３２には、宛先ＩＰアドレスで適用条件が決定される場合、送信元ＩＰアドレスで適用条件が決定される場合、宛先ポート番号で適用条件が決定される場合、送信元ポート番号で適用条件が決定される場合の４つのケースが含まれる。このため、ルール種別の数Ｎは４である。次に、測定器７０は、変数ｎを１に設定する（ステップＳ２）。測定器７０は、ｎ番目のルール種別について、マッチ処理の対象とするルール数に応じた最大スループットの変化を測定する（ステップＳ３）。ステップＳ３の処理によって得られる測定結果の例が図５のグラフＧ１である。測定器７０は、変数ｎが定数Ｎ未満であるかを判定する（ステップＳ４）。変数ｎが定数Ｎ未満である場合、変数ｎを１つインクリメントしてステップＳ３に戻る（ステップＳ４でＹｅｓ、ステップＳ５）。
【００３９】
一方、変数ｎが定数Ｎ以上である場合、測定器７０は、フィッティング処理により、性能プロファイルを求める（ステップＳ４でＮｏ、ステップＳ６）。すなわち、測定器７０は、各ルール種別について、１つの処理ルールの適用判定にかかる時間（性能プロファイル）ｂと、パケットの送受信にかかる時間ａを計算する。なお、ステップＳ６で求められる性能プロファイルは、測定結果が図５のグラフＧ１である場合、ｂｄｉｐ、ｂｓｉｐ、ｂｄｐ、ｂｓｐである。
【００４０】
（２）パケット処理時間の算出例
性能プロファイルテーブル３１とルールテーブル３２中の処理ルールの設定順序を用いると、パケットの処理にかかる時間を算出することができる。
【００４１】
図９は、パケット処理時間の算出例を説明する図である。図９では、図５〜図６の例とは異なり、複数のルール種別の適用条件が処理ルールとして含まれるルールテーブルが適用される場合の１つのパケットの処理時間の計算例を示している。この場合、１つのパケットの処理にかかる時間は、図９のモデルＭ１１に示すように表される。すなわち、ｎ個の処理ルールについての判定の末、適用可能な処理ルールが検出される場合に１つのパケットの処理にかかる時間Ｐｎは、パケットの送受信にかかる時間ａと、判定処理の対象となった全ての処理ルールの適用条件に対応付けられた性能プロファイル値の総和である。モデルＭ１１において、ｂｉは、ｉ番目の処理ルールに対応付けられた性能プロファイル値である。なお、性能プロファイルは、図９の凡例に記載しているように、そのルールの適用を行うかを判定するために処理時間である。
【００４２】
図９は、モデルＭ１１を適用する場合の処理時間の具体的な算出例も示している。転送装置５が使用するルールテーブル６に、６つの処理ルールが含まれているとする。また、宛先ポート番号（ＤＰ）で適用条件を指定したルールが１番目に設定され、宛先ＩＰアドレス（ＤＩＰ）で適用条件を指定したルールが２番目、４番目、５番目に設定されているとする。さらに、送信元ポート番号（ＳＰ）で適用条件を指定したルールが３番目に設定され、送信元ＩＰアドレス（ＳＩＰ）で適用条件を指定したルールが６番目に設定されているとする。さらに、宛先ポート番号（ＤＰ）で指定された適用条件の判定処理にかかる時間はｂｄｐ、送信元ポート番号（ＳＰ）で指定された適用条件の判定処理にかかる時間はｂｓｐであるとする。同様に、宛先ＩＰアドレス（ＤＩＰ）で指定された適用条件の判定処理にかかる時間はｂｄｉｐ、送信元ＩＰアドレス（ＳＩＰ）で指定された適用条件の判定処理にかかる時間はｂｓｉｐであるとする。
【００４３】
この場合、１つ目の処理ルールが適用されるパケットの処理時間Ｐ１は、送受信にかかる時間ａと、１つ目の処理ルールを適用するかの判定処理にかかる時間ｂｄｐの和である。２番目の処理ルールが適用されるパケットの処理時間Ｐ２は、送受信にかかる時間ａ、１つ目の処理ルールを適用するかの判定処理にかかる時間ｂｄｐ、および、２つ目の処理ルールを適用するかの判定処理にかかる時間ｂｄｉｐの和である。同様に、３番目の処理ルールが適用されるパケットの処理時間Ｐ３は、Ｐ３＝ａ＋ｂｄｐ＋ｂｄｉｐ＋ｂｓｐと表せる。また、４番目の処理ルールが適用されるパケットの処理時間Ｐ４は、Ｐ４＝ａ＋ｂｄｐ＋ｂｄｉｐ＋ｂｓｐ＋ｂｄｉｐ、５番目の処理ルールが適用されるパケットの処理時間Ｐ５は、Ｐ５＝ａ＋ｂｄｐ＋ｂｄｉｐ＋ｂｓｐ＋ｂｄｉｐ＋ｂｄｉｐとなる。さらに、６番目の処理ルールが適用されるパケットの処理時間Ｐ６は、Ｐ６＝ａ＋ｂｄｐ＋ｂｄｉｐ＋ｂｓｐ＋ｂｄｉｐ＋ｂｄｉｐ＋ｂｓｉｐとなる。
【００４４】
（３）処理ルールの設定
図９を参照しながら説明したように、各パケットの処理時間は、適用される処理ルールが特定される前に行われた処理ルールの適用可否の判定処理にかかる時間と、パケットの送受信処理にかかる時間の総和となる。このため、ルールテーブル３２の先頭に近い領域には、パケットの適用の可否にかかる判定処理の時間の短い処理ルールを設定する方が、転送装置５での処理負荷が低くなる可能性がある。以下、制御装置１０が性能プロファイルテーブル３１を用いて、ルールテーブル３２中の処理ルールの設定順序を決定する方法について説明する。
【００４５】
図１０は、ルールテーブルの設定方法の例を説明するフローチャートである。図１０の例では、定数Ｎと変数ｍが使用される。定数Ｎは、処理ルールに適用条件として含まれるパラメータの組み合わせ（ルール種別）の種類の数である。変数ｍは、処理対象としたルール種別を計数するために使用される。
【００４６】
測定器７０によって、制御装置１０に性能プロファイルテーブル３１が設定されると、評価部２１は、ルールテーブル３２に設定する処理ルールを特定する（ステップＳ１１）。評価部２１は、変数ｍを１に設定する（ステップＳ１２）。その後、評価部２１は、個々の処理ルールについての処理負荷を、処理ルールの適用条件に含まれるパラメータの組み合わせの種類（ルール種別）ごとに決定する。生成部２２は、ｍ番目に小さい処理負荷が得られたルール種別の処理ルールを、ルールテーブル３２に設定する（ステップＳ１３）。このとき、ｍ番目に処理負荷の小さい処理ルールは複数であってもよい。ｍ番目に処理負荷の小さい処理ルールが複数ある場合、ｍ番目に処理負荷の小さい全ての処理ルールがステップＳ１３で設定される。その後、生成部２２は、変数ｍが定数Ｎ未満であるかを判定する（ステップＳ１４）。変数ｍが定数Ｎ未満である場合、生成部２２は変数ｍを１つインクリメントしてステップＳ１３に戻る（ステップＳ１４でＹｅｓ、ステップＳ１５）。一方、変数ｍが定数Ｎ以上である場合、全てのルールに対しての設定が終了しているので、生成部２２は処理を終了する（ステップＳ１４でＮｏ）。
【００４７】
図１１は、ルールテーブルの例を説明する図である。図１１を参照しながら、ある転送装置５に設定する処理ルールとして、Ｒ１に示す５つのルールが指定されている場合について、評価部２１と生成部２２の処理の例を説明する。
【００４８】
評価部２１は、Ｒ１に含まれている各ルールからルール種別を取得するとともに、ルール種別ごとに処理負荷を評価する。ここで、ルールの設定処理をわかりやすくするために、Ｒ１に列挙された順序を、その処理ルールのルール番号として用いる。例えば、ルール番号＝１のルールは、宛先ポート番号ａのパケットを廃棄することを指定する処理ルールであり、ルール番号＝３のルールは、宛先ＩＰアドレスｃのパケットを転送することを指定する処理ルールである。
【００４９】
図１１の例では、ルール番号＝１のルールとルール番号＝５のルールは宛先ポート番号を用いて適用条件が設定されているので、評価部２１は、これらのルールの１つあたりの処理負荷はｂｄｐと見積もる。ルール番号＝２とルール番号＝４の処理ルールは、送信元ＩＰアドレスを用いて適用条件が設定されているので、評価部２１は、このルールの１つあたりの処理負荷はｂｓｉｐと見積もる。同様に、ルール番号＝３のルールは宛先アドレスを用いて適用条件が設定されているので、このルールの１つあたりの処理負荷はｂｄｉｐと見積もられる。
【００５０】
生成部２２は、ｂｄｐ、ｂｓｉｐ、ｂｄｉｐの大きさの順序を、性能プロファイルテーブル３１（図７）を用いて特定する。生成部２２は、ｂｄｐ＞ｂｄｉｐ＞ｂｓｉｐの順に処理負荷が小さくなると判定する。そこで、生成部２２は、転送装置５に設定する処理ルールとして、ルールテーブル３２の先頭に、送信元ＩＰアドレスを用いて適用条件が設定されている処理ルール（ルール番号＝２、４）を設定する。ルール番号＝３の処理ルールは宛先ＩＰアドレスを用いて適用条件が設定されているので、生成部２２は、ルール番号＝３のルールを、ルール番号＝４の処理ルールの次にルールテーブル３２に設定する。さらに、ルール番号＝１とルール番号＝５の処理ルールは宛先ポート番号を用いて適用条件が設定されているので、生成部２２は、ルール番号＝５のルールを、ルール番号＝３の処理ルールの次にルールテーブル３２に設定する。その結果、図１１に示すルールテーブル３２が得られる。
【００５１】
制御装置１０中のパケット処理部２３は、ルールテーブル３２が生成されると、ルールテーブル３２の情報を転送装置５に設定するための制御パケットを生成する。パケット処理部２３は、生成した制御パケットを、送信部１２を介して、転送装置５に送信する。なお、制御パケットとして、処理ルールを転送装置５に通知するために使用可能な任意のパケットが使用され得る。例えば、制御パケットは、ＯｐｅｎＦｌｏｗのＦｌｏｗＭｏｄメッセージなどであっても良い。転送装置５は、制御パケットを受信すると、通知された処理ルールをルールテーブル６として格納するとともに、以後に受信するデータパケットをルールテーブル６に従って処理する。
【００５２】
図１２は、ルールテーブルの設定と最大スループットの関係を説明する図である。図１２の例では、ある転送装置５に設定されるルールテーブルには、宛先ＩＰアドレスで適用条件が設定されている１００個の処理ルールと、宛先ポート番号で適用条件が設定されている１００個の処理ルールが含まれるとする。
【００５３】
ケースＣ１１は、第１の実施形態にかかる方法で制御装置１０においてルールテーブル３２が生成され、ルールテーブル３２に従って、転送装置５のルールテーブル６が設定される場合の例である。ケースＣ１１で生成されたルールテーブル３２や転送装置５で設定されるルールテーブル６は、テーブルＴ１１に示すとおりであるとする。ここで、宛先ＩＰアドレスを用いた適用条件の判定処理は、宛先ポート番号を用いた適用条件の判定処理よりもかかる時間が短い。このため、テーブルＴ１１では、ルールテーブルの先頭から１００個の処理ルールは、宛先ＩＰアドレスによって適用条件が設定されている処理ルールである。さらに、テーブルＴ１１の１０１番目以降の処理ルールは、宛先ポート番号によって適用条件が設定されている処理ルールである。
【００５４】
一方、ケースＣ１２は、第１の実施形態とは異なる方法で生成されたルールテーブルが転送装置５で用いられる場合である。ケースＣ１２で用いられるルールテーブルは、テーブルＴ１２に示すとおりであるとする。テーブルＴ１２では、ルールテーブルの先頭から１００個の処理ルールは、宛先ポート番号によって適用条件が設定され、１０１番目以降の処理ルールは、宛先ＩＰアドレスによって適用条件が設定されている。
【００５５】
グラフＧ１１は、ケースＣ１１とケースＣ１２の各々について、転送装置５で用いられるルールテーブルでの処理ルールの設定順序と、処理ルールが適用されるパケットの処理によって得られる最大スループットの関係を示している。ケースＣ１２では、テーブルＴ１２が用いられるため、宛先ポート番号を用いて適用の可否が判定される処理ルールから先に適用の可否が判定される。このため、グラフＧ１１中のＣ１２のグラフに示すように、ルールテーブルでの設定順序が２０〜１００などの比較的早い処理ルールであっても、最大スループットはケースＣ１１の場合に比べて低い。
【００５６】
ケースＣ１１では、第１の実施形態に従って、テーブルＴ１１に示すように宛先ＩＰアドレスを用いて適用の可否が判定される処理ルールから先に適用の可否が判定される。このため、グラフＧ１１中のＣ１１のグラフに示すように、ルールテーブルでの設定順序が２０〜１００などの比較的早い処理ルールでの、最大スループットはケースＣ１２よりも早くなっている。さらに、設定順序が１００番までの処理ルールの判定可否にかかる時間がケースＣ１２よりも短いため、設定順序が１０１番以降の宛先ポート番号を用いて適用の可否が判定される処理ルールが適用されるパケットの処理にかかる時間も短くなっている。このため、設定順序が１０１番以降で２００番未満の処理ルールが適用されるパケットに対する最大スループットも、ケースＣ１１の方がケースＣ１２よりも高くなっている。
【００５７】
このように、第１の実施形態によると、ルールテーブル中の処理ルールを処理負荷の低い順に並べ替えられる。このため、適用の可否の判定対象となる処理ルールの数が同じであって、処理ルールが処理負荷の低い順に設定されていないテーブルが用いられるときに比べて、第１の実施形態を用いて設定されたルールテーブルが用いられるとスループットが高くなる。また、スループットが高くなることから、第１の実施形態を採用することにより、転送装置５での処理ルールの検索に起因する処理負荷を小さくすることができるともいえる。
【００５８】
＜第２の実施形態＞
第２の実施形態では、各処理ルールの処理負荷と各処理ルールを適用するパケットのトラフィックを用いて、ルールテーブルを最適化する場合の処理を説明する。第２の実施形態では、制御装置４０が制御対象の転送装置５に設定するルールテーブルを設定する場合を例として説明する。制御装置４０と転送装置５を含むネットワークは、図４と同様である。
【００５９】
図１３は、第２の実施形態にかかる制御装置４０の構成の例を説明する図である。制御装置４０は、通信部１１、制御部５０、記憶部６０を備える。通信部１１は、送信部１２と受信部１３を有する。制御部５０は、評価部２１、生成部２２、パケット処理部２３、取得部５１、候補特定部５２、計算部５３を有する。記憶部６０は、性能プロファイルテーブル３１、ルールテーブル３２、トラフィック情報６１を格納する。制御装置４０においても、通信部１１、評価部２１、性能プロファイルテーブル３１、ルールテーブル３２は、第１の実施形態と同様である。また、制御装置４０のハードウェア構成も図３に示すとおりである。通信部１１はネットワーク接続装置１０４によって実現され、制御部５０はプロセッサ１０１によって実現される。さらに、記憶部６０はメモリ１０２によって実現される。
【００６０】
取得部５１は、通信部１１を介して、制御装置４０の制御対象の転送装置５から、転送装置５が所定期間中に処理したパケットの量を適用条件ごとに取得する。転送装置５が所定期間中に処理したパケットの量を取得するために、取得部５１が用いるパケットとして、制御装置４０が制御対象の転送装置５でのトラフィックの取得の際に使用可能な任意のパケットが適用され得る。取得部５１は、取得した情報をトラフィック情報６１として記憶部６０に格納する。候補特定部５２は、ルールテーブル３２に含まれている複数の処理ルールの順序を、現在のルールテーブル３２と異なる順序に設定する場合に使用可能な順序の候補として求める。計算部は、候補特定部５２が求めた候補の各々について、その候補が表わす処理ルールの順序に設定されたルールテーブルが転送装置５に設定され、トラフィックがトラフィック情報６１の通りである場合に、転送装置５で発生する処理負荷の指標となる評価値を計算する。ここで、評価値は、ルール種別ごとの処理時間を用いてパケットの処理を行う転送装置５にかかる負荷を評価するための指標となる値である。
【００６１】
生成部２２は、計算部５３で計算された評価値に応じて、ルールテーブル３２を更新する。ここで、ルールテーブル３２は、制御装置４０の制御対象となっている１つ以上の転送装置５が保持するルールテーブル６を、転送装置５の識別情報に対応付けて記録している。パケット処理部２３は、ルールテーブル３２が更新されると、転送装置５が保持するルールテーブル６の情報とルールテーブル３２の情報が整合するように、転送装置５が保持するルールテーブルを変更させるための制御パケットを生成する。パケット処理部２３は、生成した制御パケットを、通信部１１を介して、制御対象の転送装置５に送信する。すると、転送装置５では、制御パケットに応じてルールテーブル６を更新する。
【００６２】
以下、評価値の一例の導出方法と評価値を表す式を説明する。転送装置５にかかる処理負荷（ＷＬ）は、（１）式で表される。
【００６３】
【数１】
2018125577.tif 000003
【００６４】
（１）式において、Ｐnは、ルールテーブル６に登録されているｎ番目のルール（ｎ＝１〜Ｎ）に対する転送装置５の最大スループットを表す。最大スループットは、図５を参照しながら説明した処理と同様の処理により、測定器７０で測定され得る。ここで、（１）式に、図９を参照しながら説明したモデルＭ１１に示す（２）式を代入すると、（３）式が得られる。
【００６５】
【数２】
2018125577.tif 000004
【００６６】
【数３】
2018125577.tif 000005
【００６７】
（３）式を変形すると（４）式が得られる。
【００６８】
【数４】
2018125577.tif 000006
ここで、（２）〜（４）式のいずれにおいても、ａは転送装置５での１パケットの送受信処理にかかる時間である。ｂｉは、ルールテーブル６の先頭からｉ番目に登録されている処理ルールの適用条件に指定されているパラメータの組み合わせ（ルール種別）に応じて決定された性能プロファイルである。例えば、ルールテーブル６に含まれている処理ルールのルール種別が、宛先ＩＰアドレスのみのルール、送信元ＩＰアドレスのみのルール、宛先ポート番号のみのルール、送信元ポート番号のみのルールの４種類であるとする。この場合、ｂｉは、ｉ番目に登録されている処理ルールのルール種別により決定されるので、ｂｄｉｐ、ｂｓｉｐ、ｂｄｐ、ｂｓｐのいずれかである。
【００６９】
（４）式において、右辺の第１項はルールの順序によらず一定の値となる。そこで、（４）式の右辺の第２項の値が小さいほど、転送装置５にかかる処理負荷が小さくなるといえる。そこで、計算部５３は、（５）式に示す値を評価値として用いる。
【００７０】
【数５】
2018125577.tif 000007
なお、（５）式においても、ｂｉは、ｉ番目に登録されている処理ルールのルール種別により決定される性能プロファイルである。ｂｉは、第１の実施形態と同様の処理により、性能プロファイルテーブル３１として制御装置４０に設定されているものとする。
【００７１】
図１４は、ルールテーブル３２とトラフィック情報６１の例を説明する図である。以下、図１４を参照しながら、第２の実施形態で行われる処理の例を説明する。ルールテーブル３２−１は、制御装置４０が保持するルールテーブル３２の情報のうち、転送装置５ａに設定されている情報を抜き出したものである。ルールテーブル３２−１には、Ｎｏ．１〜４の処理ルールと各処理ルールが転送装置５ａに設定されていることを表す情報が記録されている。
【００７２】
トラフィック情報６１は、取得部５１が転送装置５ａで処理されているトラフィックの情報を要求する制御パケットを通信部１１経由で転送装置５ａに送信したことにより、取得部５１が取得した情報の例である。ルールＩＤは、転送装置５ａが保持しているルールテーブル６で設定されている各処理ルールの設定順序であり、ルール種別は、各処理ルールの適用条件の指定に使用されているパラメータの種類である。図１４の例では、転送装置５ａが保持するルールテーブル６は、ルールテーブル３２−１中の通りであるので、ルールテーブル３２−１の１番目の処理ルールはルールＩＤ＝１の処理ルールである。このため、ルールＩＤ＝１の処理ルールのルール種別は宛先ＩＰアドレスである。ルールＩＤ＝２とルールＩＤ＝４の処理ルールのルール種別は送信元ＩＰアドレスである。同様に、ルールＩＤ＝３の処理ルールのルール種別は宛先ポート番号である。また、ルールＩＤ＝１〜４の各処理ルールを適用して処理されたトラフィック量は、トラフィック情報６１のトラフィック量の欄に示す通りであるとする。
【００７３】
候補特定部５２は、ルールテーブル３２−１に含まれている処理ルールの設定順序の候補を生成する。例えば、候補特定部５２は、ルールＩＤ＝１、ルールＩＤ＝２、ルールＩＤ＝４、ルールＩＤ＝３の順序をルールテーブルに設定する候補（候補Ａ）として生成する。さらに、候補特定部５２は、ルールＩＤ＝３、ルールＩＤ＝２、ルールＩＤ＝４、ルールＩＤ＝１の順序の候補（候補Ｂ）など、他にもルールテーブルに設定可能な候補を生成できる。
【００７４】
計算部５３は、候補特定部５２で生成された候補の各々について、性能プロファイルテーブル３１（図７）を用いて、式（５）の値（評価値）を計算する。例えば、ルールテーブル３２＿１に示す順序について得られる評価値Ｙは、ルールＩＤ＝ｎが適用されるパケットのトラフィックがｔｎであるとすると、Ｙ＝ｔ１×ｂｄｉｐ＋ｔ２×（ｂｄｉｐ＋ｂｓｉｐ）＋ｔ３×（ｂｄｉｐ＋ｂｓｉｐ＋ｂｄｐ）＋ｔ４×（ｂｄｉｐ＋ｂｓｉｐ＋ｂｄｐ＋ｂｓｉｐ）で表される。従って、Ｙ＝６８４×３．６９×１０−９＋６３２×（３．６９×１０−９＋３．４９×１０−９）＋２４６×（３．６９×１０−９＋３．４９×１０−９＋１．４４×１０−８）＋２３０×（３．６９×１０−９＋３．４９×１０−９＋１．４４×１０−８＋３．４９×１０−９）＝１．８１×１０−５である。
【００７５】
一方、候補Ａに対して得られる評価値Ｙ１は、Ｙ１＝ｔ１×ｂｄｉｐ＋ｔ２×（ｂｄｉｐ＋ｂｓｉｐ）＋ｔ４×（ｂｄｉｐ＋ｂｓｉｐ＋ｂｓｉｐ）＋ｔ３×（ｂｄｉｐ＋ｂｓｉｐ＋ｂｓｉｐ＋ｂｄｐ）＝１．５７×１０−５である。同様に、候補Ｂに対して得られる評価値Ｙ２は、Ｙ２＝ｔ３×ｂｄｐ＋ｔ２×（ｂｄｐ＋ｂｓｉｐ）＋ｔ４（ｂｄｐ＋ｂｓｉｐ＋ｂｓｉｐ）＋ｔ１（ｂｄｐ＋ｂｓｉｐ＋ｂｓｉｐ＋ｂｄｉｐ）＝３．６９×１０−５である。候補Ａ、候補Ｂ以外に候補特定部５２が生成した他の候補に対しても、計算部５３は、同様の計算を行う。
【００７６】
生成部２２は、計算部５３の処理により得られた評価値のうち、評価値が最小になった候補に沿って、ルールテーブル３２−１に含まれている処理ルールを並べ替えることにより、新たなルールテーブル３２を生成する。図１４の例では、ルールＩＤ＝２、ルールＩＤ＝４、ルールＩＤ＝１、ルールＩＤ＝３の順序とする候補に対して得られた評価値が最小であるとする。すると、生成部２２は、最小の評価値が得られた候補を採用することにより、ルールテーブル３２−１をルールテーブル３２−２に示すように更新する。
【００７７】
ここで、評価値は、性能プロファイルの値が小さいルール種別の処理ルールがルールテーブルの先頭に近い位置に設定されるほど、小さくなる。さらに、同じルール種別の処理ルールが複数ある場合には、トラフィック量の多い処理ルールがルールテーブルの先頭に近いほど、評価値が小さくなる。従って、第２の実施形態によると、生成部２２は、複数の処理ルールをルールテーブルの先頭から、性能プロファイルの小さい順であって、性能プロファイルが同じルール間ではトラフィックの多い順に設定する処理をしていることになる。
【００７８】
図１５は、第２の実施形態にかかるルールテーブルの設定方法の例を説明するフローチャートである。図１５に示すフローチャートでは、定数Ｘ、変数Ｙ、変数ｘ、変数ｍを使用する。定数Ｘは、処理対象のルールテーブルに含まれている処理ルールを並べ替えることによって候補特定部５２が生成した候補の総数である。変数Ｙは評価値の暫定的な最小値である。変数ｘは評価値の計算と比較処理を行った候補の数の計数に用いられる。変数ｍは、暫定的な最小値が得られた候補の特定に使用される。
【００７９】
生成部２２は、変数Ｙを無限大（∞）、変数ｘを１、変数ｍを０に設定する（ステップＳ２１）。計算部５３は、ｘ番目の候補についての評価値ｙｘを求める（ステップＳ２２）。生成部２２は、変数Ｙが評価値ｙｘよりも大きいかを判定する（ステップＳ２３）。変数Ｙが評価値ｙｘより大きい場合、生成部２２は、変数Ｙに評価値ｙｘを代入し、変数ｘを変数ｍに代入して保存する（ステップＳ２３でＹｅｓ、ステップＳ２４）。その後、生成部２２は、変数ｘが定数Ｘ未満であるかを判定する（ステップＳ２５）。変数ｘが定数Ｘ未満である場合、生成部２２は変数ｘを１つインクリメントしてステップＳ２２に戻る（ステップＳ２５でＹｅｓ、ステップＳ２６）。
【００８０】
一方、変数ｘが定数Ｘ以上である場合、全ての候補について得られた評価値が変数Ｙと比較されているので、最小の評価値が変数Ｙとして保持され、最小の評価値が得られた候補の処理順序が変数ｍに保持されている（ステップＳ２５でＮｏ）。そこで、生成部２２は、ｍ番目の候補を採用して、ルールテーブル３２を更新する（ステップＳ２７）。
【００８１】
さらに、ステップＳ２３において、変数Ｙが評価値ｙｘ以下の場合、次の候補の評価値と変数Ｙの比較処理のために、ステップＳ２５以降の処理が行われる（ステップＳ２３でＮｏ）。
【００８２】
なお、図１５に示す処理によりルールテーブル３２が更新された後は、制御装置４０から転送装置５に対して、更新後のルールテーブル３２に合わせて転送装置５が保持しているルールテーブル６を更新することが要求される。このときに行われる処理は、第１の実施形態で制御装置１０がルールテーブル３２の更新により転送装置５がルールテーブル６を更新させるときに行う処理と同様である。
【００８３】
図１６は、ルールテーブルの設定と処理負荷のシミュレーション結果を説明する図である。ケースＣ２１とケースＣ２２のいずれも、ルールＩＤ＝１〜２００の処理ルールを含み、ルールＩＤ＝１〜１００は宛先ポート番号によって適用条件を設定しているとする。また、ルールＩＤ＝１０１〜２００は宛先ＩＰアドレスによって適用条件を設定しているとする。さらに、いずれのケースでも、ルールＩＤが小さい処理ルールほどトラフィック量が多いものとする。
【００８４】
ケースＣ２１は、トラフィック量の多い順に処理ルールを並べたルールテーブルが採用されているシステムであるとする。ケースＣ２１でのトラフィック量と、各ルールＩＤが採用されるパケットについて得られる最大スループットを図１６の左端に示す。
【００８５】
ケースＣ２２は、第２の実施形態に従って、生成部２２が生成したルールテーブルが採用されているシステムである。ケースＣ２２でのトラフィック量と最大スループットを図１６の右端に示す。ケースＣ２２では、複数の処理ルールは、ルールテーブルの先頭から、性能プロファイルの小さい順であって、性能プロファイルが同じルール間ではトラフィックの多い順に設定されている。ケースＣ２２が採用された場合に各ルールＩＤが採用されるパケットについて得られる最大スループットは、いずれの処理ルールが採用された場合においても、ケースＣ２１よりも大きい。
【００８６】
図１６の中央には、ケースＣ２１のシステムが採用された場合の転送装置５に搭載されたＣＰＵ使用率と、ケースＣ２２のシステムが採用された場合の転送装置５に搭載されたＣＰＵ使用率を示している。ケースＣ２１のシステムが採用された場合、転送装置５に搭載されたＣＰＵ使用率が１００％に達した上、１１％のパケットロスが発生した。一方、ケースＣ２２でのＣＰＵ使用率は２２％である。
【００８７】
従って、第２の実施形態に示すように、処理ルールごとのトラフィック量だけでなく、各処理ルールの適用の可否を判定する際にかかる処理負荷を合わせて考慮することによって、転送装置５の負荷が軽いルールテーブル６を生成できる。このため、第２の実施形態を最小することにより、転送装置５での適用対象の処理ルールの検索に起因する処理負荷は小さくなる。
【００８８】
＜第３の実施形態＞
ルールテーブルによっては、複数の処理ルールの間に競合関係が発生する場合がある。第３の実施形態では、複数の処理ルールの間に競合関係がある場合のルールテーブルの設定について説明する。以下の説明では、ルール順序を入れ替えた時に、初期のルール順序で実行される処理とは異なる処理が実行されることになるルール同士を、競合関係にあるという。
【００８９】
図１７は、競合判定が行われる場合の例を説明する図である。例えば、ルールテーブル３２−３を制御装置４０が保持しているとする。この場合、ルールＩＤ＝１の処理ルールには、宛先ポート番号が６０に指定されているパケットを廃棄することが設定されている。ルールＩＤ＝２の処理ルールは、宛先ＩＰアドレス＝１９２．１６８．１０．０／２４のパケットを廃棄することである。ルールＩＤ＝３の処理ルールには、宛先ポート番号が８０に指定されているパケットを転送することが設定されている。
【００９０】
ここで、ルールＩＤ＝１が適用されるパケットは、ルールＩＤ＝３の適用条件（宛先ポート番号＝８０）が当てはまらないので、ルールＩＤ＝１の処理ルールとルールＩＤ＝３の処理ルールは競合関係にない。ルールＩＤ＝１が適用されるパケット（宛先ポート番号＝６０）であっても、ルールＩＤ＝２の適用条件（宛先ＩＰアドレス＝１９２．１６８．１０．０／２４）を満たすことはある。しかし、ルールＩＤ＝１とルールＩＤ＝２のいずれでも処理内容がパケットの廃棄であるため、ルールＩＤ＝１とルールＩＤ＝２のいずれを先に設定してもパケットに対する処理内容は変わらない。このため、ルールＩＤ＝１とルールＩＤ＝２も競合関係にはない。
【００９１】
一方、ルールＩＤ＝２が適用されるパケット（宛先ＩＰアドレス＝１９２．１６８．１０．０／２４）が、ルールＩＤ＝３の適用条件（宛先ポート番号＝８０）を満たすこともある。この場合、ルールの設定順序によって処理の内容が変更され得るので、ルールＩＤ＝２の処理ルールとルールＩＤ＝３の処理ルールは競合関係にある。例えば、ルールテーブル３２−３のように、ルールＩＤ＝２の処理ルールがルールＩＤ＝３の処理ルールよりも先に設定されている場合、宛先ＩＰアドレス＝１９２．１６８．１０．０／２４であり、かつ、宛先ポート番号＝８０のパケットは、ルールＩＤ＝２の処理ルールに従って廃棄される。逆に、ルールＩＤ＝３の処理ルールがルールＩＤ＝２の処理ルールよりも先に設定されている場合、宛先ＩＰアドレス＝１９２．１６８．１０．０／２４であり、かつ、宛先ポート番号＝８０のパケットは、ルールＩＤ＝３の処理ルールに従って転送される。
【００９２】
第３の実施形態では、候補特定部５２は、ルールテーブル３２中で競合関係にある処理ルールを特定する。なお、処理ルール同士の競合関係の判定処理の方法は、既知の任意の方法によって行われるものとする。
【００９３】
候補特定部５２は、ルールテーブル３２に含まれている処理ルールの順序を並べ替えた候補を生成すると、個々の処理ルールの順序の候補のうち、競合関係にある複数の処理ルールの順序が変更前のルールテーブル３２での順序と一致しているかを判定する。図１７中のテーブルＴ２１は、ルールテーブル３２−３に含まれている処理ルールの順序の並べ替えの候補と競合関係にある処理ルールの順序の比較結果（競合判定結果）を示す。テーブルＴ２１の１つ目の候補では、処理ルールＩＤ＝１のルール、処理ルールＩＤ＝３のルール、処理ルールＩＤ＝２のルールの順になっている。これに対して、ルールテーブル３２−３では、ルールＩＤ＝２の処理ルールがルールＩＤ＝３の処理ルールよりも先に設定されている。このため、１つ目の候補の競合判定結果は、変更前のルールテーブル３２−３と競合関係にある処理ルールの順序が不一致（ＮＧ）となる。
【００９４】
一方、２つ目の候補では、処理ルールＩＤ＝２のルール、処理ルールＩＤ＝１のルール、処理ルールＩＤ＝３のルールの順になっている。従って、２つ目の候補とルールテーブル３２−３のいずれでも、ルールＩＤ＝２の処理ルールがルールＩＤ＝３の処理ルールよりも先に設定されている。このため、２つ目の候補の競合判定結果は、変更前のルールテーブル３２−３と競合関係にある処理ルールの順序が一致（ＯＫ）となる。同様の判定処理が他の候補に対しても行われる。
【００９５】
候補特定部５２は、生成した候補のうち、競合判定結果がＯＫと判定した候補のみを、使用可能な候補として選択する。例えば、テーブルＴ２１の場合、２番目の候補と３番目の候補は使用可能な候補として選択されるが、１番目、４番目、５番目の候補は使用可能ではないと判定される。このように、候補特定部５２は、処理ルールの順序の候補を生成する際に、競合関係にある複数の処理ルールの順序が変更前のルールテーブル３２での順序と一致するように、処理ルールの順序の候補を限定する。
【００９６】
計算部５３は、候補特定部５２によって使用可能な候補として選択された候補についてのみ、評価値を計算する。評価値が計算された後の処理は、第３の実施形態であっても第２の実施形態と同様である。
【００９７】
図１８は、第３の実施形態にかかる処理ルールの設定方法の例を説明するフローチャートである。図１８に示すフローチャートでは、定数Ｘ、変数Ｙ、変数ｘ、変数ｍを使用する。定数Ｘは、処理対象のルールテーブルに含まれている処理ルールを並べ替えることによって候補特定部５２が生成した候補の総数である。変数Ｙは評価値の暫定的な最小値である。変数ｘは評価値の計算と比較処理を行った候補の数の計数に用いられる。変数ｍは、暫定的な最小値が得られた候補の特定に使用される。
【００９８】
生成部２２は、変数Ｙを無限大（∞）、変数ｘを１、変数ｍを０に設定する（ステップＳ３１）。候補特定部５２は、ルールテーブル３２中の処理ルール同士の競合関係を調査する（ステップＳ３２）。候補特定部５２は、ｘ番目の候補では、競合する処理ルールの間の順序が、現在のルールテーブル３２と一致しているかを判定する（ステップＳ３３）。ｘ番目の候補において、競合する処理ルールの間の順序が現在のルールテーブル３２と一致しているとする（ステップＳ３３でＹｅｓ）。この場合、計算部５３は、ｘ番目の候補についての評価値ｙｘを求める（ステップＳ３４）。生成部２２は、変数Ｙが評価値ｙｘよりも大きいかを判定する（ステップＳ３５）。変数Ｙが評価値ｙｘより大きい場合、生成部２２は、変数Ｙに評価値ｙｘを代入し、変数ｘを変数ｍに代入して保存する（ステップＳ３５でＹｅｓ、ステップＳ３６）。その後、生成部２２は、変数ｘが定数Ｘ未満であるかを判定する（ステップＳ３７）。変数ｘが定数Ｘ未満である場合、生成部２２は変数ｘを１つインクリメントしてステップＳ３３に戻る（ステップＳ３７でＹｅｓ、ステップＳ３８）。
【００９９】
一方、変数ｘが定数Ｘ以上である場合、全ての候補について得られた評価値が変数Ｙと比較されているので、最小の評価値が変数Ｙとして保持され、最小の評価値が得られた候補の処理順序が変数ｍに保持されている（ステップＳ３７でＮｏ）。そこで、生成部２２は、ｍ番目の候補を採用して、ルールテーブル３２を更新する（ステップＳ３９）。
【０１００】
ステップＳ３５において、変数Ｙが評価値ｙｘ以下の場合、次の候補の評価値と変数Ｙの比較処理のために、ステップＳ３７以降の処理が行われる（ステップＳ３５でＮｏ）。さらに、ｘ番目の候補において、競合する処理ルールの間の順序が現在のルールテーブル３２と一致していないと判定された場合も、次の候補の評価値と変数Ｙの比較処理のために、ステップＳ３７以降の処理が行われる（ステップＳ３３でＮｏ）。
【０１０１】
このように、第３の実施形態によると、競合関係にある処理ルールを含むルールテーブルであっても、処理内容を変更することなく、転送装置５の処理負荷を軽減するように更新することができる。
【０１０２】
＜変形例＞
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【０１０３】
以上の説明では、制御装置１０や制御装置４０がルールテーブル３２を設定し、制御対象の転送装置５に対して、設定後のルールテーブル３２中でその転送装置５が使用する情報をルールテーブル６として設定させるケースを例として説明した。しかし、ルールテーブル６に設定する処理ルールを取得した転送装置が、制御装置１０や制御装置４０と同様の手法を用いて、自装置のルールテーブル６を更新してもよい。
【０１０４】
図１９は、転送装置８０の構成の例を示す図である。転送装置８０は、通信部８１、制御部８２、記憶部９０を備える。制御部８２は、評価部８３、生成部８４、パケット処理部８５を備え、オプションとして、候補特定部８７と計算部８８を有する。転送装置８０のハードウェア構成も図３に示すとおりである。通信部８１はネットワーク接続装置１０４によって実現され、制御部８２はプロセッサ１０１によって実現される。さらに、記憶部９０はメモリ１０２によって実現される。
【０１０５】
記憶部９０は、性能プロファイルテーブル９１、トラフィック情報９２、ルールテーブル６を保持する。性能プロファイルテーブル９１は、第１の実施形態の性能プロファイルテーブル３１と同様の処理で求められた情報である。トラフィック情報９２は、転送装置８０が処理するパケットについての、処理ルールごとのトラフィックに関する情報であり、制御装置４０が保持するトラフィック情報６１と同様である。
【０１０６】
通信部８１は、制御装置を含む他の装置との間でパケットを送受信する。パケット処理部８５は、パケットを処理する。パケット処理部８５は、制御装置から受信した制御パケット中の処理ルールをルールテーブル６に記録する。パケット処理部８５は、測定器７０から取得した情報を、適宜、性能プロファイルテーブル９１として記録する。さらに、制御装置や測定器７０以外の装置のネットワーク中の装置から受信したパケットを、パケット処理部８５は、ルールテーブル６に従って処理する。
【０１０７】
第１の実施形態と同様に、トラフィック量を用いたルールテーブル６の更新が行われない場合、転送装置８０は、候補特定部８７と計算部８８を備えなくてもよい。評価部８３は、性能プロファイルテーブル９１を用いて、ルールテーブル６に含まれている処理ルールの各々についての処理負荷を評価する。生成部８４は、評価部８３の評価結果に基づいて、ルールテーブル６中の処理ルールの順序を入れ替える。このときに行われる処理は、図１０などを用いて説明した処理と同様である。
【０１０８】
一方、トラフィック量を考慮してルールテーブル６の更新が行われる場合、転送装置８０は、候補特定部８７と計算部８８を備える。候補特定部８７は、ルールテーブル６中の処理ルールの順序を入れ替えた候補を生成する。計算部８８は、得られた候補の各々について、性能プロファイルテーブル９１やトラフィック情報９２を用いて、評価値を求める。評価値の計算処理や評価値は、第２の実施形態と同様である。この場合、生成部８４は、計算部８８の計算結果に応じて、転送装置８０の処理負荷が小さくなるようにルールテーブル６中の処理ルールの順序を入れ替える。このときに行われる処理は、図１５や図１８などを用いて説明した処理と同様である。
【０１０９】
以上の説明で用いたテーブル等は一例であり、テーブルに含まれる情報要素は、実装に応じて変更され得る。
【０１１０】
以上の説明では、転送装置５がＳＤＮスイッチとして動作する場合を例としたが、転送装置５は、ファイアウォールなど、ＳＤＮスイッチ以外の任意のテーブル処理を行う装置として動作しても良い。
【０１１１】
以上の説明では、候補特定部５２や候補特定部８７が処理ルールの並べ替えの候補を全て求める場合を説明したが、実装に応じて、候補特定部５２や候補特定部８７が候補を求める方法は変更されても良い。例えば、候補特定部５２や候補特定部８７は、求めた候補と、その候補に対して得られた評価値を用いて、遺伝的アルゴリズムにより、候補を探索しても良い。この場合、候補特定部５２や候補特定部８７は、評価値が良好な候補を元にして、処理ルールを変更した候補を生成する。
【０１１２】
上述の第１〜第３の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
転送装置を制御する制御装置であって、
前記転送装置でのパケットの処理に使用される複数の処理ルールの各々について、当該処理ルールを適用するパケットを特定する適用条件の種類に基づいて、当該処理ルールに合致するパケットを特定する際に発生する処理負荷を評価する評価部と、
前記転送装置に使用させるテーブルとして、前記処理負荷が軽い順に前記複数の処理ルールを格納したルールテーブルを生成する生成部と、
前記ルールテーブルの設定を要求する制御パケットを前記転送装置に送信する送信部
を備えることを特徴とする制御装置。
（付記２）
前記転送装置から、前記転送装置が所定期間中に処理したパケットの量を前記複数の処理ルールの各々について求めたトラフィック情報を取得する取得部と、
前記複数の処理ルールの順序を前記ルールテーブルと異なる順序に設定する場合に使用可能な順序の候補を求める候補特定部と、
前記候補の各々について、前記複数の処理ルールを前記所定期間中に適用するパケット量が前記トラフィック情報と同じ場合に発生する処理負荷の指標値を計算する計算部
を備え、
前記生成部は、前記転送装置に設定するルールテーブル中の前記複数の処理ルールの順序を、前記指標値が相対的に小さい候補で指定された順序に更新する
ことを特徴とする付記１に記載の制御装置。
（付記３）
前記候補特定部は、
前記複数の処理ルールに、順序を入れ替えることにより前記転送装置でのパケットの処理が変更される処理ルールの組み合わせが含まれているかを判定し、
前記組み合わせが前記複数の処理ルールに含まれている場合、前記複数の処理ルールの順序を前記ルールテーブルと異なる順序に設定する場合に使用可能な順序の候補のうち、前記組み合わせに含まれる処理ルールの順序が前記ルールテーブルと同じ候補を選択し、
前記計算部は、前記候補特定部が選択した候補の各々について、前記指標値を計算する
ことを特徴とする付記２に記載の制御装置。
（付記４）
前記指標値は、前記複数の処理ルールの各々についての、当該処理ルールを処理対象のパケットに適用することを決定するまでにかかる時間と、当該処理ルールを適用可能なパケットを前記転送装置が所定期間内に処理する量との積の関数である
ことを特徴とする付記２または３に記載の制御装置。
（付記５）
制御装置から通知された処理ルールを用いてパケットを処理する転送装置であって、
パケットの送受信を行う通信部と、
前記制御装置から通知された処理ルールの各々について、当該処理ルールを適用するパケットを特定する適用条件の種類に基づいて、当該処理ルールに合致するパケットを特定する際に発生する処理負荷を評価する評価部と、
前記処理負荷が軽い順に前記複数の処理ルールを格納したルールテーブルを生成する生成部と、
前記通信部が受信したパケットを前記ルールテーブルに従って処理する処理部
を備えることを特徴とする転送装置。
（付記６）
前記転送装置が所定期間中に処理したパケットの量を前記複数の処理ルールの各々について求めたトラフィック情報を記憶する記憶部と、
前記複数の処理ルールの順序を前記ルールテーブルと異なる順序に設定する場合に使用可能な順序の候補を求める候補特定部と、
前記候補の各々について、前記複数の処理ルールを前記所定期間中に適用するパケット量が、前記トラフィック情報と同じ場合に発生する処理負荷の指標値を計算する計算部
を備え、
前記生成部は、前記転送装置に設定するルールテーブル中の前記複数の処理ルールの順序を、前記指標値が相対的に小さい候補で指定された順序に更新する
ことを特徴とする付記５に記載の転送装置。
（付記７）
前記候補特定部は、
前記複数の処理ルールに、順序を入れ替えることにより前記転送装置でのパケットの処理が変更される処理ルールの組み合わせが含まれているかを判定し、
前記組み合わせが前記複数の処理ルールに含まれている場合、前記複数の処理ルールの順序を前記ルールテーブルと異なる順序に設定する場合に使用可能な順序の候補のうち、前記組み合わせに含まれる処理ルールの順序が前記ルールテーブルと同じ候補を選択し、
前記計算部は、前記候補特定部が選択した候補の各々について、前記指標値を計算する
ことを特徴とする付記６に記載の転送装置。
（付記８）
前記指標値は、前記複数の処理ルールの各々についての、当該処理ルールを処理対象のパケットに適用することを決定するまでにかかる時間と、当該処理ルールを適用可能なパケットを前記転送装置が所定期間内に処理する量との積の関数である
ことを特徴とする付記６または７に記載の転送装置。
（付記９）
転送装置を制御する制御装置が、
前記転送装置でのパケットの処理に使用される複数の処理ルールの各々について、当該処理ルールを適用するパケットを特定する適用条件の種類に基づいて、当該処理ルールに合致するパケットを特定する際に発生する処理負荷を評価し、
前記転送装置に使用させるテーブルとして、前記処理負荷が軽い順に前記複数の処理ルールを格納したルールテーブルを生成し、
前記ルールテーブルの設定を要求する制御パケットを前記転送装置に送信する
処理を行うことを特徴とする制御方法。
（付記１０）
前記転送装置から、前記転送装置が所定期間中に処理したパケットの量を前記複数の処理ルールの各々について求めたトラフィック情報を取得し、
前記複数の処理ルールの順序を前記ルールテーブルと異なる順序に設定する場合に使用可能な順序の候補を求め、
前記候補の各々について、前記複数の処理ルールを前記所定期間中に適用するパケット量が前記トラフィック情報と同じ場合に発生する処理負荷の指標値を計算し、
前記転送装置に設定するルールテーブル中の前記複数の処理ルールの順序を、前記指標値が相対的に小さい候補で指定された順序に更新する
処理を前記制御装置が行うことを特徴とする付記９に記載の制御方法。
（付記１１）
前記制御装置は、
前記複数の処理ルールに、順序を入れ替えることにより前記転送装置でのパケットの処理が変更される処理ルールの組み合わせが含まれているかを判定し、
前記組み合わせが前記複数の処理ルールに含まれている場合、前記複数の処理ルールの順序を前記ルールテーブルと異なる順序に設定する場合に使用可能な順序の候補のうち、前記組み合わせに含まれる処理ルールの順序が前記ルールテーブルと同じ候補を選択し、
選択した候補の各々について、前記指標値を計算する
ことを特徴とする付記１０に記載の制御方法。
（付記１２）
前記指標値は、前記複数の処理ルールの各々についての、当該処理ルールを処理対象のパケットに適用することを決定するまでにかかる時間と、当該処理ルールを適用可能なパケットを前記転送装置が所定期間内に処理する量との積の関数である
ことを特徴とする付記１０または１１に記載の制御方法。
【符号の説明】
【０１１３】
５、８０  転送装置
６、３２  ルールテーブル
１０、４０  制御装置
１１、８１  通信部
１２  送信部
１３  受信部
２０、５０、８２  制御部
２１、８３  評価部
２２、８４  生成部
２３、８５  パケット処理部
３０、６０、９０  記憶部
３１、９１  性能プロファイルテーブル
５１  取得部
５２、８７  候補特定部
５３、８８  計算部
６１、９２  トラフィック情報
７０  測定器
１０１  プロセッサ
１０２  メモリ
１０３  バス
１０４  ネットワーク接続装置
【図１】
2018125577.tif 000008
【図２】
2018125577.tif 000009
【図３】
2018125577.tif 000010
【図４】
2018125577.tif 000011
【図５】
2018125577.tif 000012
【図６】
2018125577.tif 000013
【図７】
2018125577.tif 000014
【図８】
2018125577.tif 000015
【図９】
2018125577.tif 000016
【図１０】
2018125577.tif 000017
【図１１】
2018125577.tif 000018
【図１２】
2018125577.tif 000019
【図１３】
2018125577.tif 000020
【図１４】
2018125577.tif 000021
【図１５】
2018125577.tif 000022
【図１６】
2018125577.tif 000023
【図１７】
2018125577.tif 000024
【図１８】
2018125577.tif 000025
【図１９】
2018125577.tif 000026