"パケットの転送方法を規定したルールであるパケット転送ルールに基づいて受信したパケットを転送するパケット転送装置と、前記パケット転送ルールの適用を前記パケット転送装置に指示することによりパケットの通信経路を制御する経路制御装置とを備え、前記パケット転送装置は、受信したパケットに対する処理内容を前記経路制御装置に問い合わせる処理内容問合せ手段を含み、前記経路制御装置は、前記パケット転送装置からパケットに対する処理内容の問い合わせを受信したときに、前記パケットに応じて決定されるパケット転送ルールが適用されるパケット転送装置を、当該パケットに対する処理内容の問い合わせが初めてか否かに基づいて決定するパケット転送装置決定手段を含むことを特徴とする通信経路制御システム。パケット転送装置決定手段は、問い合わせを行ったパケット転送装置が、他の装置に対して通信を行う端末装置がデータパケットを送信する経路上の最初のパケット転送装置であるか否かに基づいてパケット転送ルールを適用させるパケット転送装置を決定する請求項1記載の通信経路制御システム。経路制御装置は、パケット転送装置に設定しているパケット転送ルールを記憶するパケット転送ルール記憶手段を含み、パケット転送装置決定手段は、処理内容の問い合わせが行われたパケットに対応するパケット転送ルールが前記パケット転送ルール記憶手段に記憶されているか否かに基づいてパケット転送ルールを適用させるパケット転送装置を決定する請求項1記載の通信経路制御システム。経路制御装置は、パケット転送装置が他の装置と接続する接続形態を示す情報であるトポロジを記憶するトポロジ記憶手段を含み、パケット転送装置決定手段は、パケットの処理内容について問い合わせを行ったパケット転送装置が経路上の最初のパケット転送装置であるか否かを、前記トポロジと前記パケットに含まれる情報のうち問い合わせが行われたパケット転送装置の識別子および当該問い合わせを受信した受信ポートの識別子とに基づいて判断し、当該判断結果に基づいてパケット転送ルールを適用させるパケット転送装置を決定する請求項2記載の通信経路制御システム。パケット転送装置決定手段は、パケットに対する処理内容の問い合わせが初めての場合に、他の装置に対して通信を行う端末装置により送信されるデータパケットの経路上における全てのパケット転送装置にパケット転送ルールを適用させると決定し、前記問い合わせが初めてではない場合に、当該問い合わせを行ったパケット転送装置に対してパケット転送ルールを適用させると決定する請求項1から請求項4のうちのいずれか1項に記載の通信経路制御システム。パケットの転送方法を規定したルールであるパケット転送ルールに基づいて受信したパケットを転送するパケット転送装置からパケットに対する処理内容の問い合わせを受信したときに、前記パケットに応じて決定されるパケット転送ルールを適用させるパケット転送装置を、当該パケットに対する処理内容の問い合わせが初めてか否かに基づいて決定するパケット転送装置決定手段を備えたことを特徴とする経路制御装置。パケットの転送方法を規定したルールであるパケット転送ルールに基づいて受信したパケットを転送するパケット転送装置が、パケットの通信経路を制御する経路制御装置へ受信したパケットに対する処理内容を問い合わせ、前記経路制御装置が、前記パケット転送装置からパケットに対する処理内容の問い合わせを受信したときに、前記パケットに応じて決定されるパケット転送ルールを適用させるパケット転送装置を、当該パケットに対する処理内容の問い合わせが初めてか否かに基づいて決定することを特徴とする通信経路制御方法。経路制御装置が、問い合わせを受けたパケット転送装置が他の装置に対して通信を行う端末装置により送信されるデータパケットの経路上における最初のパケット転送装置であるか否かに基づいてパケット転送ルールを適用させるパケット転送装置を決定する請求項7記載の通信経路制御方法。経路制御装置が、パケット転送装置に設定しているパケット転送ルールを記憶するパケット転送ルール記憶手段に処理内容の問い合わせが行われたパケットに対応するパケット転送ルールが記憶されているか否かに基づいてパケット転送ルールを適用させるパケット転送装置を決定する請求項7記載の通信経路制御方法。コンピュータに、パケットの転送方法を規定したルールであるパケット転送ルールに基づいて受信したパケットを転送するパケット転送装置からパケットに対する処理内容の問い合わせを受信したときに、前記パケットに応じて決定されるパケット転送ルールを適用させるパケット転送装置を、当該パケットに対する処理内容の問い合わせが初めてか否かに基づいて決定するパケット転送装置決定処理を実行させるための経路制御プログラム。上述の通り、オープンフローネットワークでは、オープンフロースイッチがデータパケットを受信する。そして、そのパケットに対するエントリがフローテーブルに見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに受信パケットを転送する。このようにして、オープンフロースイッチは、データパケットに対するアクションを問い合わせる。なお、この問い合わせのことを、Packet-Inと記すこともある。そして、オープンフローコントローラは、受信パケットの送信元および送信先を示す情報に基づいて、そのパケットに対する経路を決定する。オープンフローコントローラは、決定した経路情報以下、FlowModと記すこともある。を、TCPTransmissionControlProtocolやSSLSecureSocketsLayerなどで構築されるセキュアチャネルを用いて、該当する経路上の全てのオープンフロースイッチに送信する。すなわち、オープンフローネットワークは、オープンフローコントローラとオープンフロースイッチが制御メッセージをやり取り送受信することでデータパケットを宛先に到達させるネットワークであると言える。そのため、フローが増加すると、オープンフローコントローラとオープンフロースイッチとの間で送受信される制御メッセージも増加するため、ネットワークの帯域を圧迫する可能性がある。図17は、オープンフローネットワークにおけるパケットの流れの他の例を示す説明図である。経路制御装置100がパケット転送装置からPacket-Inメッセージを受信し、転送経路の計算を行うステップS201-1~ステップS202までの処理は図16に示すステップS901~ステップS902の処理と同様である。経路制御装置コントローラ100は、転送経路の計算が完了すると、新規エントリの照合規則マッチングキーと一致するパケットに対して、計算された転送経路に従って転送することを規定したアクションおよびタイマー値を設定したエントリを、各パケット転送装置210~230ごとに作成する。そして、経路制御装置コントローラ100は、作成したエントリを、FlowModメッセージを用いて、各パケット転送装置210~230に通知するステップS203-1、ステップS203-2、ステップS203-3。ここで、各パケット転送装置210~230に作成されたエントリを通知する際、パケット転送装置210に対するFlowModメッセージステップS203-1で送信したFlowModメッセージと、パケット転送装置230に対するFlowModメッセージステップS203-3で送信したFlowModメッセージが各パケット転送装置に到着するものとする。一方、パケット転送装置220に対するFlowModメッセージステップS203-2で送信したFlowModメッセージがネットワークの輻輳によるパケットロスや遅延等によりパケット転送装置220に到着しなかったとする。パケット転送装置210は、FlowModメッセージを受信して、フローテーブルへのエントリの設定を完了すると、設定されたエントリに従ってバッファリングしてあるパケットをパケット転送装置220に転送するステップS201-2。パケット転送装置220は、パケット転送装置210からデータパケットを受信すると、そのパケットのヘッダ情報に適合する照合規則マッチングキーを含むエントリをフローテーブルから検索する。しかし、パケット転送装置220へのFlowModメッセージは到着しておらず、該当するエントリはフローテーブルに存在しない。そこで、パケット転送装置220は、受信したパケットをバッファリングしてから、経路制御装置コントローラ100に対して、新規フロー検出通知メッセージPacket-Inメッセージを送信するステップS204。経路制御装置コントローラ100は、Packet-Inメッセージを受信すると、受信した情報に基づいて、新規エントリの照合規則マッチングキーを作成し、そのエントリに適用するタイマー値を決定する。照合規則として作成する情報は、例えば、図15に例示するInPort~TCP/UDPsrcportの情報である。さらに、経路制御装置コントローラ100は、受信した情報に基づいて、宛先である外部端末320の位置確認を行い、外部端末310から外部装置320へのパケット転送経路を計算する。ここでは、転送経路を計算した結果、パケット転送装置220からパケット転送装置230の順でパケットを転送する転送経路が計算されたものとする。次に、経路制御装置コントローラ100は、新規エントリの照合規則マッチングキーと一致するパケットに対して、計算された転送経路に従って転送することを規定したアクションおよびタイマー値を設定したエントリを各パケット転送装置220,230ごとに作成する。そして、経路制御装置コントローラ100は、作成したエントリを、FlowModメッセージを用いて、各パケット転送装置220,230に通知するステップS205-1、ステップS205-2。パケット転送装置220,230は、FlowModメッセージを問題なく受信すると、フローテーブルに受信したエントリを設定する。このようにエントリが設定されることで、外部端末320がデータパケットを受信できる。しかし、パケット転送装置230がステップS203-3で受信したFlowModメッセージと、ステップS205-2で受信したFlowModメッセージとは、同じデータパケットに対するエントリであるため、同一内容のメッセージになる。つまり、パケット転送装置230は、経路制御装置100から同一内容のメッセージを2度受信することになる。このように重複した制御パケットが送受信されることは、ネットワークの使用効率を低下させる可能性がある。図17および図16に示す例では、外部端末310と外部端末320との間のパケット転送装置は3台である。しかし、外部端末間のパケット転送装置の台数が増加するに従ってすなわち、ホップ数が増加するに従って、不要な制御パケットがさらに増大する可能性がある。このような送受信が行われた場合、ネットワークにインパクトを与え、ネットワークの使用効率を低下させるおそれがある。そこで、本発明は、通信経路の制御に用いられるパケットの量を削減できる通信経路制御システム、経路制御装置、通信経路制御方法および経路制御プログラムを提供することを目的とする。本発明による通信経路制御システムは、パケットの転送方法を規定したルールであるパケット転送ルールに基づいて受信したパケットを転送するパケット転送装置と、パケット転送ルールの適用をパケット転送装置に指示することによりパケットの通信経路を制御する経路制御装置とを備え、パケット転送装置が、受信したパケットに対する処理内容を経路制御装置に問い合わせる処理内容問合せ手段を含み、経路制御装置が、パケット転送装置からパケットに対する処理内容の問い合わせを受信したときに、パケットに応じて決定されるパケット転送ルールを適用させるパケット転送装置を、そのパケットに対する処理内容の問い合わせが初めてか否かに基づいて決定するパケット転送装置決定手段を含むことを特徴とする。本発明による経路制御装置は、パケットの転送方法を規定したルールであるパケット転送ルールに基づいて受信したパケットを転送するパケット転送装置からパケットに対する処理内容の問い合わせを受信したときに、パケットに応じて決定されるパケット転送ルールを適用させるパケット転送装置を、そのパケットに対する処理内容の問い合わせが初めてか否かに基づいて決定するパケット転送装置決定手段を備えたことを特徴とする。本発明による通信経路制御方法は、パケットの転送方法を規定したルールであるパケット転送ルールに基づいて受信したパケットを転送するパケット転送装置が、パケットの通信経路を制御する経路制御装置へ受信したパケットに対する処理内容を問い合わせ、経路制御装置が、パケット転送装置からパケットに対する処理内容の問い合わせを受信したときに、パケットに応じて決定されるパケット転送ルールを適用させるパケット転送装置を、そのパケットに対する処理内容の問い合わせが初めてか否かに基づいて決定することを特徴とする。本発明による経路制御プログラムは、コンピュータに、パケットの転送方法を規定したルールであるパケット転送ルールに基づいて受信したパケットを転送するパケット転送装置からパケットに対する処理内容の問い合わせを受信したときに、パケットに応じて決定されるパケット転送ルールを適用させるパケット転送装置を、そのパケットに対する処理内容の問い合わせが初めてか否かに基づいて決定するパケット転送装置決定処理を実行させることを特徴とする。本発明によれば、通信経路の制御に用いられるパケットの量を削減できる。以下、本発明の実施形態を図面を参照して説明する。実施形態1.図1は、本発明の第1の実施形態における通信経路制御システムの例を示すブロック図である。本実施形態における通信経路制御システムは、経路制御装置100と、パケット転送装置210~230と、外部端末310~320とを備えている。ただし、パケット転送装置および外部端末の台数は、図1に例示する台数に限定されない。パケット転送装置は、1台または2台であってもよく、4台以上であってもよい。また、外部端末の台数は3台以上であってもよい。パケット転送装置210~230は、パケットを受信した際に、所定のルールに基づいてそのパケットを転送する装置である。なお、このルールのことを、パケット転送ルールと記すこともある。パケット転送装置は、例えば、ルータやスイッチなどにより実現される。図2は、パケット転送装置210の例を示すブロック図である。なお、パケット転送装置220~230もパケット転送装置210と同様の構成であるため、説明を省略する。パケット転送装置210は、制御メッセージ送受信部211と、フローテーブル記憶部212と、パケット処理部213とを備えている。制御メッセージ送受信部211は、経路制御装置100と通信する機能を備えている。すなわち、制御メッセージ送受信部211は、経路制御装置100と制御メッセージの送受信を行う。フローテーブル記憶部212は、フローテーブルを記憶する。フローテーブルには、フローごとに、パケットヘッダとの照合に用いられるマッチングルールヘッダフィールドと、フロー統計情報Countersと、パケットに対する処理内容を定義したアクションActionsとを含む組が定義される。以下、この組のことを処理規則フローエントリと記すこともある。フローテーブルには、例えば、図15に例示する情報が含まれる。パケット処理部213は、フローテーブルに記憶されたアクションに基づいて、受信したパケットを処理する。具体的には、パケット転送装置210がパケットを受信すると、パケット処理部213は、フローテーブル記憶部212に記憶されたフローテーブルから、受信パケットに適合する照合規則マッチングキーを含む処理規則フローエントリを検索する。検索の結果、受信パケットに適合するフローエントリが見つかった場合、パケット処理部213は、受信パケットに対して、該当するフローエントリのアクションフィールドに定義された処理内容例えば、指定ポートからのパケット送信、フラッディング、廃棄等を実施する。一方、受信パケットに適合するエントリがフローテーブルに見つからなかった場合、パケット処理部213は、経路制御装置100に対して、新規フローを検出したことを示す制御メッセージすなわち、新規フロー検出通知メッセージを送信し、そのパケットに対する処理内容の問い合わせを行う。経路制御装置100は、自身が管理するネットワークの経路制御を行う装置である。具体的には、経路制御装置100は、パケット転送装置にパケット転送ルールの適用を指示することにより、パケットの通信経路を制御する装置である。本実施形態では、経路制御装置100は、パケット転送装置210~230を管理対象としている。図3は、経路制御装置100の例を示すブロック図である。経路制御装置100は、制御メッセージ送信先決定部101と、トポロジ管理部102と、経路アクション計算部103と、パケット転送装置通信部104と、制御メッセージ処理部105と、端末位置記憶部106とを備えている。パケット転送装置通信部104は、経路制御装置100がパケット転送装置210~230と通信を行う機能を備えている。すなわち、パケット転送装置通信部104は、パケット転送装置210~230とパケットの送受信を行う。トポロジ管理部102は、パケット転送装置通信部104を介して収集されたパケット転送装置210~230の接続関係に基づいてネットワークトポロジ情報を作成し、作成したトポロジ情報を記憶する。なお、トポロジ情報とは、パケット転送装置が他の装置と接続する接続形態を示す情報であると言える。トポロジ管理部102は、例えば、パケット転送装置210~230が保持している経路表の情報を収集し、その経路表に基づいてネットワークトポロジ情報を作成する。ただし、ネットワークトポロジ情報の作成方法は、これらの方法に限定されない。また、トポロジ管理部102は、他の経路制御装置100からネットワークトポロジ情報を受信し、そのネットワークトポロジ情報を記憶するようにしてもよい。端末位置記憶部106は、外部端末の位置情報を記憶する。端末位置記憶部106には、例えば、IPアドレスなどの位置情報をデータベースとして記憶しておく。端末位置記憶部106には、予め管理者等が外部端末の位置情報を記憶させておいてもよく、経路制御装置100が他の経路制御装置から位置情報を受信するたびに、その位置情報を端末位置記憶部106に記憶させてもよい。端末位置記憶部106は、例えば、磁気ディスク等により実現される。経路アクション計算部103は、処理規則フローエントリとして、パケット転送装置210~230に実行させるアクションおよびパケットの転送経路を計算する。具体的には、経路アクション計算部103は、端末位置記憶部106に記憶された位置情報から送信端末と宛先端末の位置を特定し、トポロジ管理部102が管理するネットワークトポロジ情報をもとに、パケットの転送経路を計算する。また、経路アクション計算部103は、そのパケットに対して転送経路上のパケット転送装置に実行させる処理アクションを決定する。アクションの決定方法には、任意の方法を用いることができる。経路アクション計算部103は、例えば、転送経路が計算できた場合に、パケットを転送するというアクションを実行させると決定してもよい。また、経路アクション計算部103は、予め定めた種類のパケットに対しては、廃棄する、所定の装置に転送するなど、所定のアクションを実行させると決定するようにしてもよい。制御メッセージ送信先決定部101は、経路アクション計算部103が計算した経路上のパケット転送装置の中から、処理規則フローエントリを通知すべきパケット転送装置を決定する。具体的には、制御メッセージ送信先決定部101は、パケット転送装置から受信したパケットに対する処理内容の問い合わせが初めてか否かに基づいて、フローエントリを通知する適用させるパケット転送装置を決定する。制御メッセージ処理部105は、パケット転送装置210~230から受信した制御メッセージを解析して、経路制御装置100内の該当する処理手段に制御メッセージを引き渡す。例えば、パケット転送装置210~230から新規フロー検出通知メッセージを受信した場合、制御メッセージ処理部105は、新しい処理規則フローエントリの作成を経路アクション計算部103に依頼する。制御メッセージ送信先決定部101と、トポロジ管理部102と、経路アクション計算部103と、パケット転送装置通信部104と、制御メッセージ処理部105とは、プログラム経路制御プログラムに従って動作するコンピュータのCPUによって実現される。例えば、プログラムは、経路制御装置100の記憶部図示せずに記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、制御メッセージ送信先決定部101、トポロジ管理部102、経路アクション計算部103、パケット転送装置通信部104および制御メッセージ処理部105として動作してもよい。また、制御メッセージ送信先決定部101と、トポロジ管理部102と、経路アクション計算部103と、パケット転送装置通信部104と、制御メッセージ処理部105とは、それぞれが専用のハードウェアで実現されていてもよい。次に、本実施形態における通信経路制御システムの動作を図16を用いて説明する。外部端末310がデータパケットをパケット転送装置210に送信し、パケット転送装置210がそのパケットを受信するとステップS901、パケット処理部213は、そのパケットのヘッダ情報に適合する照合規則マッチングキーを含むエントリをフローテーブルから検索する。しかし、受信したパケットは最初のパケットであるため、フローテーブルに該当するエントリは存在しない。そこで、パケット処理部213は、受信したパケットをバッファリングしてから、経路制御装置100に対して、新規フロー検出通知メッセージを送信するステップS902。この新規フロー検出通知メッセージには、フローの識別に必要な情報例えば、MACアドレス、IPアドレス、ポート番号それぞれ送信元と宛先の両方含むと、パケットの受信ポートを示す情報が含まれる。ここでは、パケット転送装置210が受信したパケットをバッファリングして、フローの識別に必要な情報を経路制御装置100に送信することを想定している。ただし、パケット転送装置210は、受信したパケットそのものを経路制御装置100に送信してもよい。ここで、経路制御装置100が新規フロー検出通知メッセージを受信したときの動作を説明する。図4は、経路制御装置の動作の例を示すフローチャートである。経路制御装置100がパケット転送装置210から新規フロー検出通知メッセージを受信すると図4におけるステップS1501、経路アクション計算部103は、該当パケットの経路を計算し、その経路上に存在する各パケット転送装置のアクションを決定するステップS1502。次に、制御メッセージ送信先決定部101は、経路上に存在するパケット転送装置の中から、アクションの内容を含む処理規則を通知するパケット転送装置を宛先として決定するステップS1503。具体的には、制御メッセージ送信先決定部101は、新規フロー検出通知メッセージを受信した際、その通知メッセージを送信したパケット転送装置が外部端末からみて最初のパケット転送装置であるか否かを判定する。制御メッセージ送信先決定部101は、例えば、ネットワークトポロジ情報を参照し、新規フロー検出通知メッセージに含まれるパケット転送装置の識別子と、そのパケット転送装置がデータパケットを受信したポートのポート番号とをもとに、そのデータパケットをパケット転送装置に送信する装置が、外部端末であるか否かを決定してもよい。新規フロー検出通知メッセージを送信したパケット転送装置がデータパケットの送信端末からみて最初のパケット転送装置の場合、制御メッセージ送信先決定部101は、経路アクション計算部103が計算した経路上の全パケット転送装置に対して、処理規則を通知すると決定する。一方、その装置が最初のパケット転送装置でない場合、制御メッセージ送信先決定部101は、新規フロー検出通知メッセージを送信したパケット転送装置に対してのみ処理規則を通知すると決定する。そして、制御メッセージ送信先決定部101は、決定した通知先に処理規則を送信するステップS1504。各パケット転送装置210~230が経路制御装置100から処理規則を受信すると、制御メッセージ送受信部211は、フローテーブルに受信したエントリを設定する。そして、パケット処理部213は、設定されたエントリに従って、バッファリングしてあるパケットをパケット転送装置220に転送する図16におけるステップS904-1。このパケットが転送される転送経路上のパケット転送装置220,230には、既にエントリの設定が行われている。そのため、このパケットは、パケット転送装置220,230の順で転送され、外部端末320に届くことになるステップS904-2、ステップS904-3。以上のように、本実施形態によれば、パケット転送装置の制御メッセージ送受信部211が、受信したパケットに対する処理内容を経路制御装置100に問い合わせる。そして、経路制御装置100の制御メッセージ送信先決定部101が、パケット転送装置からパケットに対する処理内容の問い合わせを受信したときに、パケットに応じて決定されるパケット転送ルールを適用させるパケット転送装置を、そのパケットに対する処理内容の問い合わせが初めてか否かに基づいて決定する。具体的には、制御メッセージ送信先決定部101は、問い合わせを行ったパケット転送装置がパケットを転送する経路上の最初のパケット転送装置であるか否かに基づいてパケット転送ルールを適用させるパケット転送装置を決定する。このような構成により、通信経路の制御に用いられるパケットの量を削減できる。すなわち、オープンフローコントローラからオープンフロースイッチへの冗長な制御パケットの送信を回避できるため、ネットワーク使用効率の向上、オープンフローコントローラでの制御パケット送信負荷の軽減、および、オープンフロースイッチでの制御パケットの処理負荷の軽減が期待できる。実施形態2.次に、第2の実施形態における通信経路制御システムについて説明する。第2の実施形態における通信経路制御システムも、図1に例示するように、経路制御装置100と、パケット転送装置210~230と、外部端末310~320とを備えている。経路制御装置100は、第1の実施形態と同様、自身が管理するネットワークの経路制御を行う装置である。本実施の形態では、パケット転送装置210~230を管理対象としている。ただし、第2の実施形態における経路制御装置100は、第1の実施形態における経路制御装置100に対して、機能をさらに追加した装置である。図5は、第2の実施形態における経路制御装置100の例を示すブロック図である。第2の実施形態における経路制御装置100は、制御メッセージ送信先決定部101と、トポロジ管理部102と、経路アクション計算部103と、パケット転送装置通信部104と、制御メッセージ処理部105と、端末位置記憶部106と、フローエントリ記憶部107と、フローエントリ管理部108とを備えている。すなわち、第2の実施形態における経路制御装置100は、フローエントリ記憶部107とフローエントリ管理部108の機能が追加されている点において、第1の実施形態における経路制御装置100と異なる。パケット転送装置通信部104は、経路制御装置100がパケット転送装置210~230と通信を行う機能を備えている。トポロジ管理部102は、パケット転送装置通信部104を介して収集されたパケット転送装置210~230の接続関係に基づいてネットワークトポロジ情報を作成し、作成した情報を記憶する。なお、トポロジ情報の作成方法および記憶方法は、第1の実施形態と同様である。また、端末位置記憶部106は、外部端末の位置情報を記憶する。なお、端末位置記憶部106が記憶する情報は、第1の実施形態と同様である。端末位置記憶部106は、例えば、磁気ディスク等により実現される。経路アクション計算部103は、処理規則フローエントリとして、パケット転送装置210~230に実行させるアクションおよびパケットの転送経路を計算する。具体的には、経路アクション計算部103は、トポロジ管理部102が管理するネットワークトポロジ情報と、端末位置記憶部106に記憶された位置情報から、送信端末と宛先端末の位置を特定し、パケットの転送経路を計算する。また、経路アクション計算部103は、そのパケットに対して転送経路上のパケット転送装置210~230に実行させる処理アクションを決定する。制御メッセージ送信先決定部101は、経路アクション計算部103が計算した経路上のパケット転送装置の中から、処理規則フローエントリを通知すべきパケット転送装置を決定する。具体的には、制御メッセージ送信先決定部101は、後述するフローエントリ管理部108の判定結果に基づいて、パケット転送装置から受信したパケットに対する処理内容の問い合わせが初めてか否かに基づいて、フローエントリを通知する適用させるパケット転送装置を決定する。制御メッセージ処理部105は、パケット転送装置210~230から受信した制御メッセージを解析して、経路制御装置コントローラ100内の該当する処理手段に制御メッセージ情報を引き渡す。例えば、パケット転送装置210~230から新規フロー検出通知メッセージPacket-Inを受信した場合、制御メッセージ処理部105は、新しい処理規則フローエントリの作成を経路アクション計算部103に依頼する。フローエントリ記憶部107は、フローエントリを記憶する。具体的には、フローエントリ記憶部107に、フローエントリをデータベースとして記憶しておく。フローエントリ記憶部107は、例えば、磁気ディスク等により実現される。フローエントリ記憶部107は、図15に例示するように、照合規則マッチングルール、アクションタイマー値を含む、および、フロー統計情報を含む処理規則フローエントリを記憶する。フローエントリ管理部108は、ノードパケット転送装置から受信した情報に基づいて照合規則マッチングキーを作成する。さらに、フローエントリ管理部108は、経路アクション計算部103が計算したフローエントリをフローエントリ記憶部107に記憶させる。その際、フローエントリ管理部108は、そのフローエントリが既にフローエントリ記憶部107に記憶されているか否かを判定する。そのフローエントリが既にフローエントリ記憶部107に記憶されている場合、フローエントリ管理部108は、受信したパケットに対する処理内容の問い合わせが初めてでないと判定する。一方、そのフローエントリがフローエントリ記憶部107に記憶されていない場合、フローエントリ管理部108は、受信したパケットに対する処理内容の問い合わせが初めてであると判定する。フローエントリ管理部108は、その判定結果を制御メッセージ送信先決定部101に通知する。また、フローエントリ管理部108は、パケット転送装置210~230からの処理規則フローエントリの追加または更新要求に応じて処理規則フローエントリをフローテーブル記憶部212に設定する指示を行う。制御メッセージ送信先決定部101と、トポロジ管理部102と、経路アクション計算部103と、パケット転送装置通信部104と、制御メッセージ処理部105と、フローエントリ管理部108とは、プログラム経路制御プログラムに従って動作するコンピュータのCPUによって実現される。また、制御メッセージ送信先決定部101と、トポロジ管理部102と、経路アクション計算部103と、パケット転送装置通信部104と、制御メッセージ処理部105と、フローエントリ管理部108とは、それぞれが専用のハードウェアで実現されていてもよい。パケット転送装置210~230は、第1の実施形態と同様、パケットを受信した際に、所定のルールに基づいてそのパケットを転送する装置である。また、第2の実施形態におけるパケット転送装置210~230の構成は、図2に例示する構成と同様である。すなわち、第2の実施形態におけるパケット転送装置210も、制御メッセージ送受信部211と、フローテーブル記憶部212と、パケット処理部213とを備えている。制御メッセージ送受信部211は、経路制御装置100と通信する機能を備えている。フローテーブル記憶部212は、フローテーブルを記憶する。第1の実施形態と同様、フローテーブルには、フローごとに、パケットヘッダとの照合に用いられるマッチングルールヘッダフィールドと、フロー統計情報Countersと、パケットに対する処理内容を定義したアクションActionsとを含む組が定義される図15参照。パケット処理部213は、フローテーブル記憶部212から、受信パケットに適合する照合規則マッチングキーを含む処理規則フローエントリを検索し、その処理規則フローエントリのアクションフィールドに記述された処理内容例えば、特定のポートへの転送、フラッディング、廃棄などを実行する。次に、本実施形態における通信経路制御システムの動作を説明する。図6は、オープンフローネットワークにおけるパケットの流れの一例を示す説明図である。外部端末310がデータパケットをパケット転送装置210に送信し、パケット転送装置210がそのパケットを受信するとステップS1401、パケット処理部213は、そのパケットのヘッダ情報に適合する照合規則マッチングキーを含むエントリをフローテーブルから検索する。しかし、受信したパケットは最初のパケットであるため、フローテーブルに該当するエントリは存在しない。そこで、パケット処理部213は、受信したパケットをバッファリングしてから、経路制御装置100に対して、新規フロー検出通知メッセージを送信するステップS1402。この新規フロー検出通知メッセージには、フローの識別に必要な情報例えば、MACアドレス、IPアドレス、ポート番号それぞれ送信元と宛先の両方含むと、パケットの受信ポートを示す情報が含まれる。ここでは、パケット転送装置210が受信したパケットをバッファリングして、フローの識別に必要な情報を経路制御装置100に送信することを想定しているが、パケット転送装置210は、受信したパケットそのものを経路制御装置100に送信してもよい。ここで、経路制御装置100が新規フロー検出通知メッセージを受信したときの動作を図4を用いて説明する。経路制御装置100がパケット転送装置210から新規フロー検出通知メッセージを受信すると図4におけるステップS1501、経路アクション計算部103は、該当パケットの経路を計算し、その経路上に存在する各パケット転送装置のアクションを決定するステップS1502。次に、経路制御装置100では、経路上に存在するパケット転送装置の中から、アクションの内容を含む処理規則を通知するパケット転送装置を宛先として決定する処理が行われるステップS1503。まず、フローエントリ管理部108は、新規フロー検出通知メッセージの中から、フローを識別する情報を抽出する。そして、フローエントリ管理部108は、そのフローに対するエントリをフローエントリ記憶部107に登録する際、そのフローエントリが既にフローエントリ記憶部107に記憶されているか否かを判定する。そのフローエントリが既にフローエントリ記憶部107に記憶されている場合、制御メッセージ送信先決定部101は、新規フロー検出通知メッセージを送信したパケット転送装置に対してのみ処理規則を通知すると決定する。一方、そのフローエントリがフローエントリ記憶部107に記憶されていない場合、制御メッセージ送信先決定部101は、経路アクション計算部103が計算した経路上の全パケット転送装置に対して、処理規則を通知すると決定する。そして、制御メッセージ送信先決定部101は、決定した宛先に対して、処理規則を通知するステップS1504。各パケット転送装置210~230が経路制御装置100から処理規則を受信すると、制御メッセージ送受信部211は、フローテーブルに受信したエントリを設定する。そして、パケット処理部213は、設定されたエントリに従って、バッファリングしてあるパケットをパケット転送装置220に転送する図6におけるステップS1404-1。このパケットが転送される転送経路上のパケット転送装置220,230には、既にエントリの設定が行われている。そのため、このパケットは、パケット転送装置220,230の順で転送され、外部端末320に届くことになるステップS1404-2、ステップS1404-3。以後、外部端末310から外部端末320宛てにパケットが送信される場合、そのパケットは、転送経路に従って、パケット転送装置210→パケット転送装置220→パケット転送装置230の順に転送されステップS1405-1~S1405-4、外部端末320に到着する。以上のように、本実施形態によれば、制御メッセージ送信先決定部101が、処理内容の問い合わせが行われたパケットに対応するパケット転送ルールがフローエントリ記憶部107に記憶されているか否かに基づいて、パケット転送ルールを適用させるパケット転送装置を決定する。このような構成によっても、通信経路の制御に用いられるパケットの量を削減できる。以下、具体的な実施例により本発明を説明するが、本発明の範囲は以下に説明する内容に限定されない。第1の実施例は、本発明の第1の実施形態における通信経路制御システムに対応する。図7は、本発明の第1の実施例における通信経路制御システムの例を示す説明図である。第1の実施例における通信経路制御システムは、2台の外部端末310,320と、外部端末間に3台のパケット転送装置210~230と、このネットワークを制御する経路制御装置100とを含む。なお、各パケット転送装置210~230の側に記載された1桁の番号が各装置におけるポート番号を示し、各パケット転送装置210~230に付与された3桁の番号が、各装置の識別子を示すものとする。第1の実施例では、オープンフローネットワークを想定した通信経路制御システムについて説明する。経路制御装置100は、処理規則フローエントリを通知すべきパケット転送装置を決定する機能をオープンフローコントローラに具備した装置に相当する。また、パケット転送装置は、オープンフロースイッチに相当する。以下、第1の実施例における通信経路制御システムの動作を、図16を用いて説明する。外部端末310がデータパケットをパケット転送装置210に送信し、パケット転送装置210がそのパケットを受信するとステップS901、パケット処理部213は、そのパケットのヘッダ情報に適合する照合規則マッチングキーを含むエントリをフローテーブルから検索する。しかし、受信したパケットは最初のパケットであるため、フローテーブルに該当するエントリは存在しない。そこで、パケット処理部213は、受信したパケットをバッファリングしてから、経路制御装置100に対して、新規フロー検出通知メッセージPacket-Inメッセージを送信するステップS902。このPacket-Inメッセージには、フローの識別に必要な情報例えば、MACアドレス、IPアドレス、ポート番号それぞれ送信元と宛先の両方含むと、パケットの受信ポートを示す情報が含まれる。ここでは、パケット転送装置210が受信したパケットをバッファリングして、フローの識別に必要な情報を経路制御装置100に送信することを想定している。ただし、パケット転送装置210は、受信したパケットそのものを経路制御装置100に送信してもよい。ここで、経路制御装置100がPacket-Inメッセージを受信したときの動作を説明する。図8は、経路制御装置の動作の例を示すフローチャートである。経路制御装置100がパケット転送装置210からPacket-Inメッセージを受信するとステップS301、経路アクション計算部103は、該当パケットの経路を計算し、その経路上に存在するパケット転送装置のアクションを決定するステップS302。次に、制御メッセージ送信先決定部101は、経路上のパケット転送装置の中から、宛先として、アクションの内容を含む処理規則を通知するパケット転送装置の宛先を決定するステップS303。そして、制御メッセージ送信先決定部101は、決定した宛先に対してFlowModを通知するステップS304。図9は、処理規則を通知するパケット転送装置を決定する動作の例を示す説明図である。以下、図9を用いて、ステップS303の内容を詳しく説明する。制御メッセージ送信先決定部101は、Packet-Inメッセージを受信した際、そのPacket-Inメッセージを送信したパケット転送装置がデータパケットを送信する外部端末からみて最初のパケット転送装置であるか否かを判定する。本実施例では、Packet-Inメッセージを送信したパケット転送装置の識別子と、Packet-Inメッセージから特定されるポート番号のうち、パケット転送装置がデータパケットを受信したポート以下、InputPortと記すこともあるの番号とを使用して上記判定を行うものとするステップS401。なお、判定の方法は、本実施例で説明するパケット転送装置の識別子とポート番号とを用いた判定方法に限定されるものではない。Packet-Inメッセージを送信したパケット転送装置がデータパケットの送信端末からみて最初のパケット転送装置であるか否かが判定できる方法であれば、他の方法であってもよい。図7に例示する通信経路制御システムにおいて、パケット転送装置210の識別子は210、InputPortは1である。ここで、トポロジ管理部102が図7に例示する経路制御装置100の識別子とポート番号からネットワークトポロジ情報を計算し、その情報を保持しているものとする。図10は、トポロジ管理部102が計算したネットワークトポロジ情報の例を示す説明図である。図10に示す例では、四角の記号が外部端末を示し、丸の記号がパケット転送装置を示す。また、四角または丸の下側に記載された3桁の番号が装置の識別子を示し、四角または丸の左右側に記載された1桁の番号がポート番号を示す。制御メッセージ送信先決定部101は、トポロジ管理部102にアクセスしステップS402、パケット転送装置の接続先が他のパケット転送装置か否かを判断するステップS403。ここでは、制御メッセージ送信先決定部101は、図10に例示するネットワークトポロジ情報から、識別子が210で識別される装置のポート番号1に接続された装置を確認する。図10に示す例では、パケット転送装置210のポート番号1のポートに接続された装置は外部端末310である。よって、制御メッセージ送信先決定部101は、パケット転送装置210に隣接している装置が外部端末310であることがわかるステップS403におけるN。したがって、制御メッセージ送信先決定部101は、経路アクション計算部103が計算した経路上に存在する全てのパケット転送装置に処理規則経路情報を通知するステップS405。一方、パケット転送装置210に隣接している装置が他のパケット転送装置であった場合ステップS403におけるY、制御メッセージ送信先決定部101は、Packet-Inメッセージを送信したパケット転送装置に対してのみ処理規則を通知することになるステップS404。なお、パケット転送装置に隣接している装置が他のパケット転送装置であった場合の処理については後述する。制御メッセージ送信先決定部101は、FlowModメッセージの送り先を決定すると、パケット転送装置210~230に対してFlowModメッセージを送信する図16におけるステップS903。パケット処理部213は、設定されたエントリに従って、バッファリングしてあるパケットをパケット転送装置220に転送する図16におけるステップS904-1。このパケットが転送される転送経路上のパケット転送装置220,230には、既にエントリの設定が行われている。そのため、このパケットは、パケット転送装置220,230の順で転送され、外部端末320に届くことになるステップS904-2、ステップS904-3。次に、図9におけるステップS404の処理が行われる状況すなわち、パケット転送装置へデータパケットを送信した装置が他のパケット転送装置であった場合の処理を説明する。図11は、オープンフローネットワークにおけるパケットの流れの例を示す説明図である。まず、外部端末310が外部端末320宛てに最初のデータパケットを送信すると、このデータパケットは、外部端末320に接続されたパケット転送装置210に送信されるステップS1301-1。パケット転送装置210がパケットを受信すると、パケット処理部213は、フローテーブルから、そのパケットのヘッダ情報に適合する照合規則マッチングキーを含むエントリを検索する。しかし、受信したパケットは最初のパケットであるため、フローテーブルに該当するエントリは存在しない。そこで、制御メッセージ送受信部211は、受信したパケットをバッファリングしてから、経路制御装置コントローラ100に対して、新規フロー検出通知メッセージPacket-Inメッセージを送信するステップS1302。このPacket-Inメッセージには、フローの識別に必要な情報例えば、MACアドレス、IPアドレス、ポート番号それぞれ送信元と宛先の両方含むと、パケットの受信ポートを示す情報が含まれる。ここでは、パケット転送装置210が受信したパケットをバッファリングして、フローの識別に必要な情報を経路制御装置コントローラ100に送信することを想定している。ただし、制御メッセージ送受信部211は、受信したパケットそのものを経路制御装置コントローラ100に送信してもよい。経路制御装置コントローラ100がPacket-Inメッセージを受信すると、経路アクション計算部103は、受信したメッセージから新規エントリの照合規則マッチングキーを作成し、そのエントリに適用するタイマー値を決定する。照合規則として作成する情報は、例えば、図15に例示するInPort~TCP/UDPsrcportの情報である。さらに、経路アクション計算部103は、受信したメッセージに基づいて、宛先である外部端末320の位置確認を行い、外部端末310から外部端末320へのパケット転送経路を計算する。ここでは、転送経路を計算した結果、パケット転送装置210→パケット転送装置220→パケット転送装置230の順でパケットを転送する転送経路が計算されたものとする。次に、経路アクション計算部103は、新規エントリの照合規則マッチングキーと一致するパケットに対して、計算された転送経路に従って転送することを規定したアクションおよびタイマー値を設定したエントリを、各パケット転送装置210~230ごとに作成する。そして、制御メッセージ送信先決定部101は、作成したエントリを、FlowModメッセージを用いて、各パケット転送装置210~230に通知するステップS1303-1、ステップS1303-2、ステップS1303-3。ここで、各パケット転送装置210に対するFlowModメッセージステップS1303-1で送信したFlowModメッセージと、パケット転送装置230に対するFlowModメッセージステップS1303-3で送信したFlowModメッセージが各パケット転送装置に到着するものとする。一方、パケット転送装置220に対するFlowModメッセージステップS1303-2で送信したFlowModメッセージがネットワークの輻輳によるパケットロスや遅延等によりパケット転送装置220に到着しなかったとする。パケット転送装置210がFlowModメッセージを受信し、パケット処理部213がフローテーブルへのエントリの設定を完了すると、パケット処理部213は、設定されたエントリに従ってバッファリングしてあるパケットをパケット転送装置220に転送するステップS1301-2。パケット転送装置220がパケット転送装置210からデータパケットを受信すると、パケット転送装置220のパケット処理部213は、そのパケットのヘッダ情報に適合する照合規則マッチングキーを含むエントリをフローテーブルから検索する。しかし、パケット転送装置220へのFlowModメッセージは到着しておらず、該当するエントリはフローテーブルに存在しない。そこで、パケット転送装置220の制御メッセージ送受信部211は、受信したパケットをバッファリングしてから、経路制御装置コントローラ100に対して、新規フロー検出通知メッセージPacket-Inメッセージを送信するステップS1304。経路制御装置コントローラ100がPacket-Inメッセージを受信すると、経路アクション計算部103は、受信した情報に基づいて、新規エントリの照合規則マッチングキーを作成し、そのエントリに適用するタイマー値を決定する。照合規則として作成する情報は、例えば、図15に例示するInPort~TCP/UDPsrcportの情報である。さらに、経路アクション計算部103は、受信した情報に基づいて、宛先である外部端末320の位置確認を行い、外部端末310から外部装置320へのパケット転送経路を計算する。ここでは、転送経路を計算した結果、パケット転送装置220からパケット転送装置230の順でパケットを転送する転送経路が計算されたものとする。次に、制御メッセージ送信先決定部101は、FlowModの送り先を決定する。送り先を決定する処理を、図9を用いて説明する。経路アクション計算部103が経路の計算をした後、制御メッセージ送信先決定部101は、そのPacket-Inメッセージを送信したパケット転送装置がデータパケットを送信する外部端末からみて最初のパケット転送装置であるか否かを判定する。本実施例では、Packet-Inメッセージを送信したパケット転送装置の識別子と、Packet-Inメッセージから特定されるポート番号のうち、パケット転送装置がデータパケットを受信したポートの番号とを使用して、上記判定を行うものとするステップS401。なお、判定の方法は、本実施例で説明するパケット転送装置の識別子とポート番号とを用いた判定方法に限定されるものではない。Packet-Inメッセージを送信したパケット転送装置がデータパケットの送信端末からみて最初のパケット転送装置であるか否かが判定できる方法であれば、他の方法であってもよい。図7に例示する通信経路制御システムにおいて、パケット転送装置220の識別子は220、InputPortは1である。ここで、トポロジ管理部102が図7に例示する経路制御装置100の識別子とポート番号からネットワークトポロジ情報を計算し、その情報を保持しているものとする。また、トポロジ管理部102が計算したネットワークトポロジ情報が、図10に例示する内容であるものとする。制御メッセージ送信先決定部101は、トポロジ管理部102にアクセスしステップS402、パケット転送装置の接続先がパケット転送装置か否かを判断するステップS403。具体的には、制御メッセージ送信先決定部101は、図10に例示するネットワークトポロジ情報から、識別子が220で識別される装置のポート番号1に接続された装置を確認する。図10に示す例では、パケット転送装置220のポート番号1のポートに接続された装置はパケット転送装置210である。よって、制御メッセージ送信先決定部101は、パケット転送装置220に隣接している装置がパケット転送装置210であることがわかるステップS403におけるY。したがって、制御メッセージ送信先決定部101は、Packet-Inメッセージを送信したパケット転送装置220に対してのみ処理規則を通知するステップS404。オープンフローネットワークは、パケット転送装置にデータパケットが到着した際に、そのパケット転送装置が経路制御装置に経路の問い合わせを行い、経路制御装置がそのパケットに対するアクションをパケット転送装置に通知することで、データパケットを目的の装置に到着させることができるネットワークである。そのため、パケット転送装置220が外部端末でない装置すなわち、パケット転送装置。本実施例では、パケット転送装置210。からデータパケットを受信するということは、経路制御装置100が、そのデータパケットに対するFlowModを既にパケット転送装置220に送信していることを意味する。また、既にFlowModをパケット転送装置220に送信しているにもかかわらず、パケット転送装置220からの問い合わせが発生することがある。その理由として、経路制御装置100からのFlowModメッセージがパケット転送装置210からのデータパケットが到着する前に届いたこと、または、経路制御装置100からのFlowModメッセージが損失したことが挙げられる。よって、経路制御装置100は、転送経路上に存在する全てのパケット転送装置に経路情報を送信する必要はなく、パケット転送装置220にのみ、再度経路情報を送信すればよいことになる。したがって、制御メッセージ送信先決定部101は、図11に例示するように、パケット転送装置220に対してのみFlowModを送信する図11におけるステップS1305-1。パケット処理部213は、設定されたエントリに従ってバッファリングしてあるパケットをパケット転送装置230に転送するステップS1301-3。そして、このパケットは、パケット転送装置230に転送され、外部端末320に届くことになるステップS1301-4。以上のように、本実施例では、制御メッセージ送信先決定部101が、Packet-Inを送信したパケット転送装置と、パケット転送装置がデータパケットを受信したポート番号の情報をもとに、トポロジ管理部102のネットワークトポロジを参照して、パケット転送装置がデータパケットを受信したポートの接続先を確認する。パケットを受信したポートにパケット転送装置が接続されていれば、経路制御装置100が経路上のパケット転送装置に対して、以前にFlowModメッセージを送信しているということがわかるからである。つまり、この場合、経路制御装置100は、Packet-Inを送信したパケット転送装置に対してのみ、FlowModメッセージを送信すればよい。一方、パケットを受信したポートにパケット転送装置でない端末例えば、外部端末が接続されていれば、経路制御装置100が経路上の全パケット転送装置に対して、FlowModメッセージを送信すればよい。このように、経路制御装置100が、Packet-Inを送信したパケット転送装置に応じてFlowModの宛先装置を決定することで、経路制御装置100からパケット転送装置への冗長な制御パケットの送信を回避できる。また、このような構成により、ネットワーク使用効率の向上、経路制御装置での制御パケット送信負荷の軽減、および、パケット転送装置での制御パケットの処理負荷の軽減が期待できる。次に、本発明の第2の実施例について説明する。第2の実施例は、本発明の第2の実施形態における通信経路制御システムに対応する。本発明の第2の実施例では、経路制御装置100にフローエントリを保持するデータベースすなわち、フローエントリ記憶部107を作成し、そのデータベースに、問い合わせを受けたフローに対する経路情報の有無で新規フローか否かを判断する。すなわち、本発明の第1の実施例における通信経路制御システムでは、トポロジ情報を用いて新規フローか否かを判断している。一方、本発明の第2の実施例における通信経路制御システムでは、フローエントリのデータベースを用いて新規フローか否かを判断している点において、第1の実施例における通信経路制御システムと異なる。なお、第2の実施例も、第1の実施例と同様、オープンフローネットワークを想定した通信経路制御システムについて説明する。すなわち、オープンフローコントローラは、第2の実施形態における経路制御装置100に相当する。言い換えると、経路制御装置100は、処理規則フローエントリを通知すべきパケット転送装置を決定する機能をオープンフローコントローラに具備した装置に相当する。また、オープンフロースイッチは、第1の実施形態および第2の実施形態におけるパケット転送装置に相当する。以下、本発明の第2の実施例における通信経路制御システムを、図1を用いて説明する。すなわち、第2の実施例における通信経路制御システムも、2台の外部端末310,320と、外部端末間に3台のパケット転送装置210~230と、このネットワークを制御する経路制御装置100とを含む。また、第2の実施例における通信経路制御システムの動作を、図16を用いて説明する。外部端末310がデータパケットをパケット転送装置210に送信し、パケット転送装置210がそのパケットを受信するとステップS901、パケット処理部213は、そのパケットのヘッダ情報に適合する照合規則マッチングキーを含むエントリをフローテーブルから検索する。しかし、受信したパケットは最初のパケットであるため、フローテーブルに該当するエントリは存在しない。そこで、パケット処理部213は、受信したパケットをバッファリングしてから、経路制御装置100に対して、新規フロー検出通知メッセージPacket-Inメッセージを送信するステップS902。このPacket-Inメッセージには、フローの識別に必要な情報例えば、MACアドレス、IPアドレス、ポート番号それぞれ送信元と宛先の両方含むと、パケットの受信ポートを示す情報が含まれる。ここでは、パケット転送装置210が受信したパケットをバッファリングして、フローの識別に必要な情報を経路制御装置100に送信することを想定している。ただし、パケット転送装置210は、受信したパケットそのものを経路制御装置100に送信してもよい。ここで、経路制御装置100がPacket-Inメッセージを受信したときの動作を図8を用いて説明する。経路制御装置100がパケット転送装置210からPacket-Inメッセージを受信するとステップS301、経路アクション計算部103は、該当パケットの経路を計算し、その経路上に存在するパケット転送装置のアクションを決定するステップS302。次に、制御メッセージ送信先決定部101は、経路上のパケット転送装置の中から、宛先として、アクションの内容を含む処理規則を通知するパケット転送装置の宛先を決定するステップS303。そして、制御メッセージ送信先決定部101は、決定した宛先に対してFlowModを通知するステップS304。制御メッセージ送信先決定部101が宛先として決定したパケット転送装置に経路情報を通知したあと、フローエントリ管理部108は、フローエントリ記憶部107に経路情報を登録する。なお、パケット転送装置において処理規則が削除された場合、経路制御装置100では、フローエントリ記憶部107からそのフローに対する経路情報を削除してもよい。図12は、処理規則を通知するパケット転送装置を決定する動作の例を示す説明図である。以下、図12を用いて、パケット転送装置の宛先を決定するステップS303の内容を詳しく説明する。まず、経路制御装置100がPacket-Inを受信すると、フローエントリ管理部108は、データパケットを特定する要素ヘッダ領域を抽出するステップS1201。例えば、5タプルtupleでフローが区別される場合、フローエントリ管理部108は、データパケットの5タプルの内容tupleを確認する。次に、フローエントリ管理部108は、フローエントリ記憶部107を参照し、そのフローに対するフローエントリが存在しているか確認するステップS1202。確認した結果、フローエントリがフローエントリ記憶部107に存在していない場合ステップS1202におけるN、それは、新規フローであることを意味する。そこで、制御メッセージ送信先決定部101は、経路アクション計算部103が計算した経路上の全パケット転送装置に対して、処理規則を通知すると決定し、決定した通知先に処理規則を送信するステップS1204。一方、フローエントリがフローエントリ記憶部107に存在していた場合ステップS1202におけるY、制御メッセージ送信先決定部101は、Packet-Inメッセージを送信したパケット転送装置に対してのみ処理規則を通知することになるステップS1203。なお、フローエントリがフローエントリ記憶部107に存在していた場合の処理については後述する。こうして、制御メッセージ送信先決定部101は、FlowModメッセージの送り先を決定すると、パケット転送装置210~230に対してFlowModメッセージを送信する図16におけるステップS903。パケット処理部213は、設定されたエントリに従って、バッファリングしてあるパケットをパケット転送装置220に転送する図16におけるステップS904-1。このパケットが転送される転送経路上のパケット転送装置220,230には、既にエントリの設定が行われている。そのため、このパケットは、パケット転送装置220,230の順で転送され、外部端末320に届くことになるステップS904-2、ステップS904-3。次に、図12におけるステップS1203の処理が行われる状況すなわち、受信したパケットが新規フローでない場合の処理を図11を用いて説明する。まず、外部端末310が外部端末320宛てに、最初のデータパケットを送信すると、このデータパケットは、外部端末320に接続されたパケット転送装置210に送信されるステップS1301-1。パケット転送装置210がパケットを受信すると、パケット処理部213は、フローテーブルから、そのパケットのヘッダ情報に適合する照合規則マッチングキーを含むエントリを検索する。しかし、受信したパケットは最初のパケットであるため、フローテーブルに該当するエントリは存在しない。そこで、制御メッセージ送受信部211は、受信したパケットをバッファリングしてから、経路制御装置コントローラ100に対して、新規フロー検出通知メッセージPacket-Inメッセージを送信するステップS1302。このPacket-Inメッセージには、フローの識別に必要な情報例えば、MACアドレス、IPアドレス、ポート番号それぞれ送信元と宛先の両方含むと、パケットの受信ポートを示す情報が含まれる。ここでは、パケット転送装置210が受信したパケットをバッファリングして、フローの識別に必要な情報を経路制御装置コントローラ100に送信することを想定している。ただし、制御メッセージ送受信部211は、受信したパケットそのものを経路制御装置コントローラ100に送信してもよい。経路制御装置コントローラ100がPacket-Inメッセージを受信すると、経路アクション計算部103は、受信したメッセージから新規エントリの照合規則マッチングキーを作成し、そのエントリに適用するタイマー値を決定する。照合規則として作成する情報は、例えば、図15に例示するInPort~TCP/UDPsrcportの情報である。さらに、経路アクション計算部103は、受信したメッセージに基づいて、宛先である外部端末320の位置確認を行い、外部端末310から外部端末320へのパケット転送経路を計算する。ここでは、転送経路を計算した結果、パケット転送装置210→パケット転送装置220→パケット転送装置230の順でパケットを転送する転送経路が計算されたものとする。次に、経路アクション計算部103は、新規エントリの照合規則マッチングキーと一致するパケットに対して、計算された転送経路に従って転送することを規定したアクションおよびタイマー値を設定したエントリを、各パケット転送装置210~230ごとに作成する。そして、制御メッセージ送信先決定部101は、作成したエントリを、FlowModメッセージを用いて、各パケット転送装置210~230に通知するステップS1303-1、ステップS1303-2、ステップS1303-3。ここで、各パケット転送装置210に対するFlowModメッセージステップS1303-1で送信したFlowModメッセージと、パケット転送装置230に対するFlowModメッセージステップS1303-3で送信したFlowModメッセージが各パケット転送装置に到着するものとする。一方、パケット転送装置220に対するFlowModメッセージステップS1303-2で送信したFlowModメッセージがネットワークの輻輳によるパケットロスや遅延等によりパケット転送装置220に到着しなかったとする。パケット転送装置210がFlowModメッセージを受信し、パケット処理部213がフローテーブルへのエントリの設定を完了すると、パケット処理部213は、設定されたエントリに従ってバッファリングしてあるパケットをパケット転送装置220に転送するステップS1301-2。パケット転送装置220がパケット転送装置210からデータパケットを受信すると、パケット転送装置220のパケット処理部213は、そのパケットのヘッダ情報に適合する照合規則マッチングキーを含むエントリをフローテーブルから検索する。しかし、パケット転送装置220へのFlowModメッセージは到着しておらず、該当するエントリはフローテーブルに存在しない。そこで、パケット転送装置220の制御メッセージ送受信部211は、受信したパケットをバッファリングしてから、経路制御装置コントローラ100に対して、新規フロー検出通知メッセージPacket-Inメッセージを送信するステップS1304。経路制御装置コントローラ100がPacket-Inメッセージを受信すると、経路アクション計算部103は、受信した情報に基づいて、新規エントリの照合規則マッチングキーを作成し、そのエントリに適用するタイマー値を決定する。照合規則として作成する情報は、例えば、図15に例示するInPort~TCP/UDPsrcportの情報である。さらに、経路アクション計算部103は、受信した情報に基づいて、宛先である外部端末320の位置確認を行い、外部端末310から外部装置320へのパケット転送経路を計算する。ここでは、転送経路を計算した結果、パケット転送装置220からパケット転送装置230の順でパケットを転送する転送経路が計算されたものとする。次に、経路制御装置コントローラ100は、FlowModの宛先を決定する。まず、経路制御装置100がPacket-Inを受信すると、フローエントリ管理部108は、データパケットを特定する要素ヘッダ領域を抽出する図12におけるステップS1201。例えば、5タプルtupleでフローが区別される場合、フローエントリ管理部108は、データパケットの5タプルの内容tupleを確認する。次に、フローエントリ管理部108は、フローエントリ記憶部107を参照し、その5タプルについて識別したフローに対するフローエントリが存在しているか確認するステップS1202。確認した結果、フローエントリがフローエントリ記憶部107に存在している場合ステップS1202におけるY、それは、新規フローでないことを意味する。そこで、制御メッセージ送信先決定部101は、新規フロー検出通知メッセージを送信したパケット転送装置に対してのみ処理規則を通知すると決定し、決定した通知先に処理規則を送信するステップS1203。こうして、制御メッセージ送信先決定部101は、図11に例示するように、パケット転送装置220に対してのみFlowModを送信する図11におけるステップS1305-1。パケット処理部213は、FlowModメッセージを受信すると、設定されたエントリに従ってバッファリングしてあるパケットをパケット転送装置230に転送するステップS1301-3。そして、このパケットは、パケット転送装置230に転送され、外部端末320に届くことになるステップS1301-4。次に、本発明の最小構成を説明する。図13は、本発明による通信経路制御システムの最小構成の例を示すブロック図である。本発明による通信経路制御システムは、パケットの転送方法を規定したルールであるパケット転送ルールに基づいて受信したパケットを転送するパケット転送装置80例えば、パケット転送装置210~230と、パケット転送ルールの適用をパケット転送装置80に指示することによりパケットの通信経路を制御する経路制御装置90例えば、経路制御装置100とを備えている。パケット転送装置80は、受信したパケットに対する処理内容例えば、アクションを経路制御装置90に問い合わせる処理内容問合せ手段81例えば、制御メッセージ送受信部211を含む。経路制御装置90は、パケット転送装置80からパケットに対する処理内容の問い合わせを受信したときに、パケットに応じて決定されるパケット転送ルールを適用させるパケット転送装置80を、そのパケットに対する処理内容の問い合わせが初めてか否かに基づいて決定するパケット転送装置決定手段91例えば、制御メッセージ送信先決定部101を含む。そのような構成により、通信経路の制御に用いられるパケットの量を削減できる。また、パケット転送装置決定手段91が、問い合わせを行ったパケット転送装置が、他の装置に対して通信を行う端末装置例えば、外部端末310がデータパケットを送信する経路上の最初のパケット転送装置であるか否かに基づいてパケット転送ルールを適用させるパケット転送装置を決定してもよい。また、経路制御装置90が、パケット転送装置に設定しているパケット転送ルールを記憶するパケット転送ルール記憶手段例えば、フローエントリ記憶部107を含んでいてもよい。そして、パケット転送装置決定手段91例えば、制御メッセージ送信先決定部101、フローエントリ管理部108が、処理内容の問い合わせが行われたパケットに対応するパケット転送ルールがパケット転送ルール記憶手段に記憶されているか否かに基づいてパケット転送ルールを適用させるパケット転送装置を決定してもよい。また、経路制御装置90が、パケット転送装置が他の装置と接続する接続形態を示す情報であるトポロジ例えば、ネットワークトポロジを記憶するトポロジ記憶手段例えば、端末位置記憶部106を含んでいてもよい。そして、パケット転送装置決定手段91が、パケットの処理内容について問い合わせを行ったパケット転送装置が経路上の最初のパケット転送装置であるか否かを、トポロジとパケットに含まれる情報のうち問い合わせが行われたパケット転送装置の識別子およびその問い合わせを受信した受信ポートの識別子例えば、Inputportとに基づいて判断し、その判断結果に基づいてパケット転送ルールを適用させるパケット転送装置を決定してもよい。また、パケット転送装置決定手段91が、パケットに対する処理内容の問い合わせが初めての場合に、他の装置に対して通信を行う端末装置例えば、外部端末310により送信されるデータパケットの経路上における全てのパケット転送装置にパケット転送ルールを適用させると決定し、問い合わせが初めてではない場合に、その問い合わせを行ったパケット転送装置に対してパケット転送ルールを適用させると決定してもよい。また、図14は、本発明による経路制御装置の最小構成の例を示すブロック図である。図14に例示する経路制御装置は、図13に例示する経路制御装置90の内容と同様である。このような構成によっても、通信経路の制御に用いられるパケットの量を削減できる以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。すなわち、本発明は、上述の実施例に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。この出願は、2010年12月13日に出願された日本特許出願2010-277204を基礎とする優先権を主張し、その開示の全てをここに取り込む。"