"パケットの処理内容を規定した規則であるパケット処理規則にしたがって、受信したパケットを転送するパケット転送装置と、前記パケット処理規則の適用を前記パケット転送装置に指示することによりパケットの転送経路を制御する制御装置とを備え、前記制御装置は、前記パケット転送装置との通信状況に応じて、当該パケット転送装置との通信方法を選択する通信方法選択手段を含むことを特徴とする通信制御システム。制御装置は、パケット転送装置との間に複数のセッションを構築する複数セッション構築手段を含み、通信方法選択手段は、複数のセッションが構築されたパケット転送装置との通信状況に応じて、当該複数のセッションの中から当該パケット転送装置との通信に用いるセッションを選択する請求項1記載の通信制御システム。通信方法選択手段は、パケット転送装置との通信状況に応じて、通常よりも優先してパケットを送信する状態である緊急モードで送信する通信方法を選択する請求項1記載の通信制御システム。複数セッション構築手段は、複数のセッションのうち、通常の通信に用いられるセッションであるプライマリセッションと、前記プライマリセッションの異常時に用いられるセッションであるセカンダリセッションとを予め決定し、通信方法選択手段は、通常時には前記プライマリセッションを選択し、前記プライマリセッションの異常時にセカンダリセッションを選択する請求項2記載の通信制御システム。複数セッション構築手段は、パケット転送装置との通信状況に応じて、パケット転送装置との間に構築するコネクションを追加し、通信方法選択手段は、パケット転送装置へ送信したパケットが届いていない場合に、前記複数セッション構築手段が前記通信状況に応じて追加したコネクションをパケット転送装置との通信に用いるセッションとして選択する請求項2記載の通信制御システム。通信方法選択手段は、TCPで規定される再送タイマに基づいて、パケット転送装置との通信状況の優劣を判断する請求項1から5に記載の通信制御システム。通信方法選択手段は、送信するパケットの重要度に基づいて、パケット転送装置との通信方法を選択する請求項1から6に記載の通信制御システム。パケットの処理内容を規定した規則であるパケット処理規則にしたがって、受信したパケットを転送するパケット転送装置に対し、当該パケット処理規則の適用を指示することによりパケットの転送経路を制御する制御装置であって、前記パケット転送装置との通信状況に応じて、当該パケット転送装置との通信方法を選択する通信方法選択手段を備えたことを特徴とする制御装置。パケットの処理内容を規定した規則であるパケット処理規則にしたがって、受信したパケットを転送するパケット転送装置に対し、当該パケット処理規則の適用を指示することによりパケットの転送経路を制御する制御装置が、前記パケット転送装置との通信状況に応じて、当該パケット転送装置との通信方法を選択することを特徴とする通信制御方法。パケットの処理内容を規定した規則であるパケット処理規則にしたがって、受信したパケットを転送するパケット転送装置に対し、当該パケット処理規則の適用を指示することによりパケットの転送経路を制御するコンピュータに適用される通信制御プログラムであって、前記コンピュータに、前記パケット転送装置との通信状況に応じて、当該パケット転送装置との通信方法を選択する通信方法選択処理を実行させるための通信制御プログラム。上述の通り、オープンフローネットワークでは、オープンフロースイッチがデータパケットを受信する。そして、そのパケットに対するエントリがフローテーブルに見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに受信パケットを転送する。このようにして、オープンフロースイッチは、データパケットに対するアクションを問い合わせる。なお、この問い合わせのことを、Packet-Inと記すこともある。そして、オープンフローコントローラは、受信パケットの送信元および送信先を示す情報に基づいて、そのパケットに対する経路を決定する。オープンフローコントローラは、決定した経路情報以下、FlowModと記すこともある。を、TCPTransmissionControlProtocolやSSLSecureSocketsLayerなどで構築されるセキュアチャネルを用いて、該当する経路上の全てのオープンフロースイッチに送信する。しかし、オープンフローコントローラとオープンフロースイッチとの間のセッションの品質が悪いと、オープンフローコントローラからオープンフロースイッチに送信される経路情報FlowModを含むパケットが正確に届かない可能性がある。また、このパケットが届いたとしても、大きな遅延が発生する可能性がある。この場合のパケットの流れを、図22を用いて説明する。図22は、オープンフローネットワークにおけるパケットの流れの他の例を示す説明図である。外部端末310が外部端末320に向けて送信したデータパケットがパケット転送装置210に到着するとステップS201、パケット転送装置210は、受信パケットを一時的に受信バッファに格納する。そして、パケット転送装置210は、そのパケットのヘッダ情報に適合するエントリをフローテーブルから検索する。検索の結果、フローテーブルに対象のエントリが存在しなかった場合、パケット転送装置210は、経路制御装置100に対して新規フロー検出通知メッセージPacket-Inメッセージを送信するステップS202。経路制御装置100は、Packet-Inメッセージを受信すると、そのデータパケットに対する転送経路を計算する。ここでは、転送経路を計算した結果、外部端末310→パケット転送装置210→パケット転送装置220→パケット転送装置230→外部端末320の順でパケットを転送する転送経路が計算されたものとする。この場合、経路制御装置100は、パケット転送装置210~230に対して、FlowModメッセージを送信するステップS203-1~S203-3。ここで、パケット転送装置220に対するFlowModメッセージステップS203-2で送信したFlowModメッセージと、パケット転送装置230に対するFlowModメッセージステップS203-3で送信したFlowModメッセージが各パケット転送装置に到着するものとする。一方、パケット転送装置210に対するFlowModメッセージステップS203-1で送信したFlowModメッセージがパケット損失によりによりパケット転送装置210に到着しなかったとする。パケット転送装置210にFlowModメッセージが到着しないと、パケット転送装置210は、先ほど格納したデータパケットを転送できないことになる。しかし、パケット転送装置210にはデータパケットが外部端末310からさらに送信される。パケット転送装置210は、データパケットを受信するたびにそのパケットをバッファリングする。データパケットを転送できない状況が継続すると、いずれバッファ容量の許容量を超過し、パケットロスが発生することになる。このように、経路制御装置100がパケット転送装置210に向けて送信した制御メッセージがパケットロスなどにより損失して予定通りに到着しなければ、データパケットがパケット転送装置210で損失してしまうことになる。このようなことを防ぐため、オープンフローコントローラからオープンフロースイッチへ送信されるパケットの遅延を抑制できることが望ましい。また、特許文献3に記載された方式では、定期的に生成した監視パケットを各回線に出力して回線の障害を検出し、障害を検出した場合にバックアップ回線に切り替える。そのため、常に監視パケットを出力しなければならない。特許文献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と制御メッセージの送受信を行う。また、制御メッセージ送受信部211は、経路制御装置100と構築するセッション数とセッション構築用のポート番号を処理する機能を備えている。具体的には、制御メッセージ送受信部211は、セッション構築要求メッセージSYNメッセージにセッションの構築を要求するポート番号を含めて経路制御装置100に送信する。制御メッセージ送受信部211は、経路制御装置100からSYNACKメッセージを受信したときに、そのメッセージに対するACKを送信することで、経路制御装置100とのセッションを構築する。また、制御メッセージ送受信部211は、経路制御装置100から、セッション数が通知された場合、そのセッション数をメモリ等図示せずに記憶させる。フローテーブル記憶部212は、フローテーブルを記憶する。フローテーブルには、フローごとに、パケットヘッダとの照合に用いられるマッチングルールヘッダフィールドと、フロー統計情報Countersと、パケットに対する処理内容を定義したアクションActionsとを含む組が定義される。以下、この組のことを処理規則フローエントリと記すこともある。フローテーブルには、例えば、図20に例示する情報が含まれる。パケット処理部213は、フローテーブルに記憶されたアクションに基づいて、受信したパケットを処理する。具体的には、パケット転送装置210がパケットを受信すると、パケット処理部213は、フローテーブル記憶部212に記憶されたフローテーブルから、受信パケットに適合する照合規則マッチングキーを含む処理規則フローエントリを検索する。検索の結果、受信パケットに適合するフローエントリが見つかった場合、パケット処理部213は、受信パケットに対して、該当するフローエントリのアクションフィールドに定義された処理内容例えば、指定ポートからのパケット送信、フラッディング、廃棄等を実施する。一方、受信パケットに適合するエントリがフローテーブルに見つからなかった場合、パケット処理部213は、経路制御装置100に対して、新規フローを検出したことを示す制御メッセージすなわち、新規フロー検出通知メッセージを送信し、そのパケットに対する処理内容の問い合わせを行う。経路制御装置100は、自身が管理するネットワークの経路制御を行う装置である。具体的には、経路制御装置100は、パケット転送装置にパケット処理規則の適用を指示することにより、パケットの通信経路を制御する装置である。本実施形態では、経路制御装置100は、パケット転送装置210~230を管理対象としている。図3は、経路制御装置100の例を示すブロック図である。経路制御装置100は、フローエントリ記憶部101と、トポロジ管理部102と、経路アクション計算部103と、フローエントリ管理部104と、制御メッセージ処理部105と、複数セッション管理部106と、端末位置記憶部107と、パケット転送装置通信部108とを備えている。フローエントリ記憶部101は、フローエントリを記憶する。具体的には、フローエントリ記憶部101に、フローエントリをデータベースとして記憶しておく。フローエントリ記憶部101は、例えば、磁気ディスク等により実現される。フローエントリ記憶部101は、図20に例示するように、照合規則マッチングルール、アクションタイマー値を含む、および、フロー統計情報を含む処理規則フローエントリを記憶する。なお、フローエントリ記憶部101には、後述するフローエントリ管理部104によってフローエントリが記憶される。トポロジ管理部102は、後述するパケット転送装置通信部108を介して収集されたパケット転送装置210~230の接続関係に基づいてネットワークトポロジ情報を作成し、作成したトポロジ情報を記憶する。なお、トポロジ情報とは、パケット転送装置が他の装置と接続する接続形態を示す情報であると言える。トポロジ管理部102は、例えば、パケット転送装置210~230が保持している経路表の情報を収集し、その経路表に基づいてネットワークトポロジ情報を作成する。ただし、ネットワークトポロジ情報の作成方法は、これらの方法に限定されない。また、トポロジ管理部102は、他の経路制御装置100からネットワークトポロジ情報を受信し、そのネットワークトポロジ情報を記憶するようにしてもよい。端末位置記憶部107は、外部端末の位置情報を記憶する。端末位置記憶部107には、例えば、IPアドレスなどの位置情報をデータベースとして記憶しておく。端末位置記憶部107には、予め管理者等が外部端末の位置情報を記憶させておいてもよく、経路制御装置100が他の経路制御装置から位置情報を受信するたびに、その位置情報を端末位置記憶部107に記憶させてもよい。端末位置記憶部107は、例えば、磁気ディスク等により実現される。経路アクション計算部103は、処理規則フローエントリとして、パケット転送装置210~230に実行させるアクションおよびパケットの転送経路を計算する。具体的には、経路アクション計算部103は、端末位置記憶部107に記憶された位置情報から送信端末と宛先端末の位置を特定し、トポロジ管理部102が管理するネットワークトポロジ情報をもとに、パケットの転送経路を計算する。また、経路アクション計算部103は、そのパケットに対して転送経路上のパケット転送装置に実行させる処理アクションを決定する。アクションの決定方法には、任意の方法を用いることができる。経路アクション計算部103は、例えば、転送経路が計算できた場合に、パケットを転送するというアクションを実行させると決定してもよい。また、経路アクション計算部103は、予め定めた種類のパケットに対しては、廃棄する、所定の装置に転送するなど、所定のアクションを実行させると決定するようにしてもよい。フローエントリ管理部104は、パケット転送装置から受信した情報に基づいて照合規則マッチングキーを作成する。さらに、フローエントリ管理部104は、経路アクション計算部103が計算したフローエントリをフローエントリ記憶部101に記憶させる。また、フローエントリ管理部104は、パケット転送装置210~230からの処理規則フローエントリの追加または更新要求に応じて、処理規則フローエントリをフローテーブル記憶部212に設定する指示をパケット転送装置に行う。制御メッセージ処理部105は、パケット転送装置210~230から受信した制御メッセージを解析して、経路制御装置100内の該当する処理手段に制御メッセージを引き渡す。例えば、パケット転送装置210~230から新規フロー検出通知メッセージを受信した場合、制御メッセージ処理部105は、フローエントリ管理部104に対して、新規フローに対応する処理規則フローエントリがフローエントリ記憶部101に登録されているか否かを確認させる。また、対応する処理規則がフローエントリ記憶部101に登録されていない場合、制御メッセージ処理部105は、新しい処理規則フローエントリの作成を経路アクション計算部103に依頼する。複数セッション管理部106は、一台のパケット転送装置に対して複数のセッションを構築する。具体的には、複数セッション管理部106は、経路制御装置100とパケット転送装置210との間のセッションを構築する際に、構築するセッション数とそのセッションの構築に用いられるポート番号とを決定する機能を備えている。ポート番号の決定方法には任意の方法を用いることができる。複数セッション管理部106は、例えば、Well-knownポート番号以外からポート番号をランダムに決定してもよい。ただし、ポート番号の決定方法は、ランダムに決定する方法に限定されない。複数セッション管理部106は、例えば、Well-knownポート番号以外の未使用の番号のうち、最小のポート番号を選択してもよい。また、複数セッション管理部106は、例えば、設定ファイル等に予め定めておいたセッションの数を、構築するセッション数と決定してもよい。ただし、構築するセッション数の決定方法は、上記方法に限定されない。パケット転送装置通信部108は、経路制御装置100がパケット転送装置210~230と通信を行う機能を備えている。すなわち、パケット転送装置通信部108は、パケット転送装置210~230とパケットの送受信を行う。また、パケット転送装置通信部108は、パケット転送装置との通信状況に応じて、経路制御装置100とパケット転送装置との通信方法を選択する。具体的には、パケット転送装置通信部108は、複数セッション管理部106が構築した複数のセッションの中から通信を行う際に用いるセッションを選択する。パケット転送装置通信部108は、例えば、複数のセッションの中から、最も通信品質の高いセッションを、通信に用いるセッションとして選択してもよい。通信品質の判断基準として、例えば、再送回数がより少ないセッションをより通信品質の高いセッションと定めてもよい。ネットワークの輻輳や通信障害など、通信に異常が発生した場合、再送回数は多くなる傾向にある。そのため、再送回数がより少ないセッションを選択することで、経路制御装置100からパケット転送装置に送信するメッセージの送信遅延を抑制できる。また、パケット転送装置通信部108は、後述する再送タイマの値がより小さいほど、通信状況がより優れていると判断し、より優れているセッションをパケット転送装置との通信に用いるセッションとして選択してもよい。トポロジ管理部102と、経路アクション計算部103と、フローエントリ管理部104と、制御メッセージ処理部105と、複数セッション管理部106と、パケット転送装置通信部108とは、プログラム通信制御プログラムに従って動作するコンピュータのCPUによって実現される。例えば、プログラムは、経路制御装置100の記憶部図示せずに記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、トポロジ管理部102、経路アクション計算部103、フローエントリ管理部104、制御メッセージ処理部105、複数セッション管理部106、および、パケット転送装置通信部108として動作してもよい。また、トポロジ管理部102と、経路アクション計算部103と、フローエントリ管理部104と、制御メッセージ処理部105と、複数セッション管理部106と、パケット転送装置通信部108とは、それぞれが専用のハードウェアで実現されていてもよい。次に、本実施形態における通信制御システムの動作を説明する。図4は、経路制御装置とパケット転送装置との間のセッションを構築する処理の例を示すフローチャートである。初めに、経路制御装置100が管理するネットワークにパケット転送装置210が参加する際の手順について説明する。以下、セッションの確立をパケット転送装置から開始する場合について説明するが、セッションの確立の開始は経路制御装置からでもよい。まず、パケット転送装置210は、経路制御装置100が管理するネットワークに参入する際に、自身の情報を経路制御装置100に通知するためのセッションを確立する。各パケット転送装置210~230の制御メッセージ送受信部211は、経路制御装置100に対し、セッション構築要求メッセージSYNメッセージを送信する。SYNメッセージには、接続したいサーバのポート番号などの情報が含まれる。例えば、SYNメッセージにサーバのポート番号として6633が指定されていたとする。このSYNメッセージを経路制御装置100が受信すると、複数セッション管理部106は、TCPのセッション確立の手順に従い、パケット転送装置210に対してSYNACKメッセージを送信する。パケット転送装置210がそのSYNACKメッセージを受信すると、制御メッセージ送受信部211は、経路制御装置100に対して、SYNACKメッセージに対するACKを送信する。これにより、経路制御装置とパケット転送装置との間にTCPセッションが1本確立される。経路制御装置100がこのTCPセッション確立と同時にパケット転送装置210からの最初のSYNメッセージを受信すると、制御メッセージ処理部105は、複数セッション管理部106に対してパケット転送装置210からセッション確立要求があったことを通知するステップS1101。次に、複数セッション管理部106は、経路制御装置100とパケット転送装置210との間に構築するセッション数を決定するステップS1102。ここでは、経路制御装置100とパケット転送装置210との間に構築するセッション数が2本と決定されたとする。この場合、複数セッション管理部106は、2本目のセッションを確立するために必要なポート番号を決定するステップS1103。複数セッション管理部106は、Well-knownポート番号以外からポート番号を決定する。ここでは、複数セッション管理部106がポート番号をランダムに決定するものとし、ポート番号として1024が選択されたものとする。なお、ポート番号の決定方法は、ランダムに決定する方法に限定されない。複数セッション管理部106は、例えば、Well-knownポート番号以外の未使用の番号のうち、最小のポート番号を選択してもよい。パケット転送装置通信部108は、複数セッション管理部106が決定したポート番号をパケット転送装置210に通知するステップS1104。このポート番号の通知は、経路制御装置100がパケット転送装置210に送信する任意のメッセージに含めて行われてもよく、別途作成されたポート番号を通知する専用のメッセージに含めて行われてもよい。そして、経路制御装置100は、パケット転送装置210からのセッション確立要求をポート番号1024で待機するステップS1105。パケット転送装置210の制御メッセージ送受信部211は、ポート番号を1024とするSYNメッセージを経路制御装置100に送信する。以降、セッションが確立されるまでの動作は、上述する内容と同様である。具体的には、ステップS1102で構築するセッション数がNと決定された場合、ステップS1103で複数セッション管理部106がポート番号をN個選択し、パケット転送装置通信部108がステップS1104~S1105の処理を行えばよい。このように、経路制御装置100とパケット転送装置210~230との間でセッションが構築されることで、例えば、図1に示すネットワークが構築される。次に、構築されたネットワークにデータパケットが到着したときの動作を説明する。図5は、パケットの流れの一例を示す説明図である。外部端末310が外部端末320に向けてデータパケットを送信すると、データパケットは、パケット転送装置210に到着するステップS1601。パケット処理部213は、そのパケットのヘッダ情報に適合する照合規則マッチングキーを含むエントリをフローテーブルから検索する。しかし、受信したパケットは最初のパケットであるため、フローテーブルに該当するエントリは存在しない。そこで、パケット処理部213は、受信したパケットをバッファリングしてから、経路制御装置100に対して、新規フロー検出通知メッセージを送信するステップS1602。この新規フロー検出通知メッセージには、フローの識別に必要な情報例えば、MACアドレス、IPアドレス、ポート番号それぞれ送信元と宛先の両方含むと、パケットの受信ポートを示す情報が含まれる。ここでは、パケット転送装置210が受信したパケットをバッファリングして、フローの識別に必要な情報を経路制御装置100に送信することを想定している。ただし、パケット転送装置210は、受信したパケットそのものを経路制御装置100に送信してもよい。ここで、経路制御装置100が新規フロー検出通知メッセージを受信したときの動作を説明する。図6は、経路制御装置100が新規フロー検出通知メッセージを受信したときの動作の例を示すフローチャートである。経路制御装置コントローラ100が新規フロー検出通知メッセージを受信すると、経路アクション計算部103は、受信した情報に基づいて、新規エントリの照合規則マッチングキーを作成し、そのエントリに適用するタイマー値を決定するステップS1702。照合規則として作成する情報は、例えば、図20に例示するInPort~TCP/UDPsrcportの情報である。さらに、経路アクション計算部103は、受信した情報に基づいて、宛先である外部端末320の位置確認を行い、外部端末310から外部装置320へのパケット転送経路を計算するステップS1703。ここでは、転送経路を計算した結果、パケット転送装置210→パケット転送装置220→パケット転送装置230の順でパケットを転送する転送経路が計算されたものとする。次に、経路アクション計算部103は、新規エントリの照合規則マッチングキーに一致するパケットに対して、計算された転送経路に従って転送することを規定したアクションおよびタイマー値を設定したエントリ処理規則を、各パケット転送装置210~230ごとに作成するステップS1704。エントリが作成されると、パケット転送装置通信部108は、エントリ処理規則を送信するためのセッションを選択するステップS1705。そして、パケット転送装置通信部108は、選択したセッションを用いて処理規則FlowModを送信するステップS1706。以上、図6に例示する手順で、経路制御装置100は、パケット転送装置210~230に対して処理規則を送信する図5におけるステップS1603。各パケット転送装置210~230が経路制御装置100から処理規則を受信すると、制御メッセージ送受信部211は、フローテーブルへエントリを設定する。そして、パケット処理部213は、設定されたエントリに従ってバッファリングしてあるパケットをパケット転送装置220に転送するステップS1604-1。このパケットが転送される転送経路上のパケット転送装置220,230には、既にエントリの設定が行われている。そのため、このパケットは、パケット転送装置220,230の順で転送され、外部端末320に届くことになるステップS1604-2、ステップS1604-3。以後、外部端末310から外部端末320宛てにパケットが送信される場合、そのパケットは、転送経路に従って、パケット転送装置210→パケット転送装置220→パケット転送装置230の順に転送されステップS1605-1~S1605-4、外部端末320に到着する。以上のように、本実施形態によれば、経路制御装置100のパケット転送装置通信部108が、パケット転送装置との通信状況に応じて、そのパケット転送装置との通信方法を選択する。具体的には、複数セッション管理部106がパケット転送装置との間に複数のセッションを構築し、パケット転送装置通信部108が、複数のセッションが構築されたパケット転送装置との通信状況に応じて、その複数のセッションの中からパケット転送装置との通信に用いるセッションを選択する例えば、通信状況がより優れているセッションを選択する。このような構成により、経路制御装置100からパケット処理装置へ送信されるパケットの遅延を抑制できる。実施形態2.次に、第2の実施形態における通信制御システムについて説明する。第1の実施形態では、異常時に備え、経路制御装置100とパケット転送装置210~230との間にセッションを複数構築する場合について説明した。第2の実施形態では、構築されるセッションは1つであり、送信するパケットの内容に応じて送信形態を選択する点において、第1の実施形態と異なる。具体的には、送信するパケットに含まれる各情報の内容に応じて、通常モードで送信するか、緊急モードで送信するかが選択される。ここで、緊急モードとは、通常よりも優先してパケットを送信する状態のことを意味する。緊急モードの例として、例えば、TCPセッションが再送フェーズに入っており、即座にパケットを送りだすことができない場合や、送信するパケットが重要なパケットである場合などが挙げられる。第2の実施形態における通信制御システムも、図1に例示するように、経路制御装置100と、パケット転送装置210~230と、外部端末310~320とを備えている。また、経路制御装置100は、第1の実施形態と同様、自身が管理するネットワークの経路制御を行う装置であり、パケット転送装置210~230を管理対象としている。図7は、本発明の第2の実施形態における経路制御装置100の例を示すブロック図である。第2の実施形態における経路制御装置100は、フローエントリ記憶部101と、トポロジ管理部102と、経路アクション計算部103と、フローエントリ管理部104と、制御メッセージ処理部105と、端末位置記憶部107と、パケット転送装置通信部108とを備えている。なお、第1の実施形態では、図3に例示する複数セッション管理部106が複数のセッションを構築し、パケット転送装置通信部108が複数のセッションの中から通信で用いるセッションを選択する機能を備えていた。また、第1の実施形態では、パケット転送装置通信部108が図2に例示するパケット転送装置の制御メッセージ送受信部211と構築するセッション数とセッション構築用のポート番号を処理する機能を備えていた。しかし、第2の実施形態における通信制御システムは、これらの機能を備えていない。一方、第2の実施形態における通信制御システムでは、図7に例示するパケット転送装置通信部108が、転送すべきパケットが重要であるか否かを判断し、重要であれば緊急モードとして優先的に送信する機能を備えている点において第1の実施形態における通信制御システムと異なる。以下、詳しく説明する。フローエントリ記憶部101は、フローエントリを記憶する。具体的には、フローエントリ記憶部101に、フローエントリをデータベースとして記憶しておく。フローエントリ記憶部101は、例えば、磁気ディスク等により実現される。フローエントリ記憶部101は、図20に例示するように、照合規則マッチングルール、アクションタイマー値を含む、および、フロー統計情報を含む処理規則フローエントリを記憶する。フローエントリ記憶部101には、フローエントリ管理部104によってフローエントリが記憶される。トポロジ管理部102は、後述するパケット転送装置通信部108を介して収集されたパケット転送装置210~230の接続関係に基づいてネットワークトポロジ情報を作成し、作成したトポロジ情報を記憶する。なお、トポロジ情報の作成方法および記憶方法は、第1の実施形態と同様である。また、端末位置記憶部107は、外部端末の位置情報を記憶する。なお、端末位置記憶部107が記憶する情報は、第1の実施形態と同様である。端末位置記憶部107は、例えば、磁気ディスク等により実現される。経路アクション計算部103は、処理規則フローエントリとして、パケット転送装置210~230に実行させるアクションおよびパケットの転送経路を計算する。具体的には、経路アクション計算部103は、端末位置記憶部107に記憶された位置情報から送信端末と宛先端末の位置を特定し、トポロジ管理部102が管理するネットワークトポロジ情報をもとに、パケットの転送経路を計算する。また、経路アクション計算部103は、そのパケットに対して転送経路上のパケット転送装置に実行させる処理アクションを決定する。なお、アクションの決定方法およびパケットの転送経路の計算方法については、第1の実施形態と同様である。フローエントリ管理部104は、パケット転送装置から受信した情報に基づいて照合規則マッチングキーを作成する。さらに、フローエントリ管理部104は、経路アクション計算部103が計算したフローエントリをフローエントリ記憶部101に記憶させる。また、フローエントリ管理部104は、パケット転送装置210~230からの処理規則フローエントリの追加または更新要求に応じて、処理規則フローエントリをフローテーブル記憶部212に設定する指示をパケット転送装置に行う。制御メッセージ処理部105は、パケット転送装置210~230から受信した制御メッセージを解析して、経路制御装置100内の該当する処理手段に制御メッセージを引き渡す。例えば、パケット転送装置210~230から新規フロー検出通知メッセージを受信した場合、制御メッセージ処理部105は、フローエントリ管理部104に対して、新規フローに対応する処理規則フローエントリがフローエントリ記憶部101に登録されているか否かを確認させる。また、対応する処理規則がフローエントリ記憶部101に登録されていない場合、制御メッセージ処理部105は、新しい処理規則フローエントリの作成を経路アクション計算部103に依頼する。パケット転送装置通信部108は、経路制御装置100がパケット転送装置210~230と通信を行う機能を備えている。すなわち、パケット転送装置通信部108は、パケット転送装置210~230とパケットの送受信を行う。また、パケット転送装置通信部108は、パケットの通信状況に応じて送信形態を選択する。具体的には、パケット転送装置通信部108は、対象とするパケットが通常よりも優先して送信すべき状況を示す場合すなわち、より重要度の高い場合に緊急モードで送信すると判断し、そのパケットを優先的に送信する。優先して送信すべき状況として、例えば、TCPセッションが再送フェーズに入っており、即座にパケットを送りだすことができない場合や、送信するパケットが重要なパケットである場合などが挙げられる。パケット転送装置通信部108は、送信するパケットについて予め定めておいたこれらの状況に基づいて、優先して送信すべき状況か否かを判断する。なお、パケット転送装置通信部108は、再送フェーズに入っているか否かを、再送タイマの値を参照して判断してもよい。また、パケット転送装置通信部108は、重要なパケットか否かを、パケットに含まれる情報のうちパケットの重要度を示す情報例えば、URGUrgentフラグなどを参照して判断してもよい。すなわち、パケット転送装置通信部108は、このTCPで規定される再送タイマの値がより小さいほど、通信状況がより優れていると判断し、より優れているセッションをパケット転送装置との通信に用いるセッションとして選択する。トポロジ管理部102と、経路アクション計算部103と、フローエントリ管理部104と、制御メッセージ処理部105と、パケット転送装置通信部108とは、プログラム通信制御プログラムに従って動作するコンピュータのCPUによって実現される。また、トポロジ管理部102と、経路アクション計算部103と、フローエントリ管理部104と、制御メッセージ処理部105と、パケット転送装置通信部108とは、それぞれが専用のハードウェアで実現されていてもよい。パケット転送装置210~230は、第1の実施形態と同様、パケットを受信した際に、所定のルールに基づいてそのパケットを転送する装置である。また、第2の実施形態におけるパケット転送装置210~230の構成は、図2に例示する構成と同様である。すなわち、第2の実施形態におけるパケット転送装置210も、制御メッセージ送受信部211と、フローテーブル記憶部212と、パケット処理部213とを備えている。制御メッセージ送受信部211は、経路制御装置100と通信する機能を備えている。フローテーブル記憶部212は、フローテーブルを記憶する。第1の実施形態と同様、フローテーブルには、フローごとに、パケットヘッダとの照合に用いられるマッチングルールヘッダフィールドと、フロー統計情報Countersと、パケットに対する処理内容を定義したアクションActionsとを含む組が定義される図20参照。パケット処理部213は、フローテーブル記憶部212から、受信パケットに適合する照合規則マッチングキーを含む処理規則フローエントリを検索し、その処理規則フローエントリのアクションフィールドに記述された処理内容例えば、特定のポートへの転送、フラッディング、廃棄などを実行する。次に、本実施形態における通信制御システムの動作を図5を用いて説明する。外部端末310が外部端末320に向けてデータパケットを送信すると、データパケットは、パケット転送装置210に到着するステップS1601。パケット処理部213は、そのパケットのヘッダ情報に適合する照合規則マッチングキーを含むエントリをフローテーブルから検索する。しかし、受信したパケットは最初のパケットであるため、フローテーブルに該当するエントリは存在しない。そこで、パケット処理部213は、受信したパケットをバッファリングしてから、経路制御装置100に対して、新規フロー検出通知メッセージを送信するステップS1602。この新規フロー検出通知メッセージには、フローの識別に必要な情報例えば、MACアドレス、IPアドレス、ポート番号それぞれ送信元と宛先の両方含むと、パケットの受信ポートを示す情報が含まれる。ここでは、パケット転送装置210が受信したパケットをバッファリングして、フローの識別に必要な情報を経路制御装置100に送信することを想定している。ただし、パケット転送装置210は、受信したパケットそのものを経路制御装置100に送信してもよい。ここで、経路制御装置100が新規フロー検出通知メッセージを受信したときの動作を説明する。図8は、経路制御装置100が新規フロー検出通知メッセージを受信したときの動作の例を示すフローチャートである。経路制御装置コントローラ100が新規フロー検出通知メッセージを受信すると、経路アクション計算部103は、受信した情報に基づいて、新規エントリの照合規則マッチングキーを作成し、そのエントリに適用するタイマー値を決定するステップS1502。照合規則として作成する情報は、例えば、図20に例示するInPort~TCP/UDPsrcportの情報である。さらに、経路アクション計算部103は、受信した情報に基づいて、宛先である外部端末320の位置確認を行い、外部端末310から外部装置320へのパケット転送経路を計算するステップS1503。ここでは、転送経路を計算した結果、パケット転送装置210→パケット転送装置220→パケット転送装置230の順でパケットを転送する転送経路が計算されたものとする。次に、経路アクション計算部103は、新規エントリの照合規則マッチングキーと一致するパケットに対して、計算された転送経路に従って転送することを規定したアクションおよびタイマー値を設定したエントリ処理規則を、各パケット転送装置210~230ごとに作成するステップS1504。次に、経路制御装置100のパケット転送装置通信部108は、パケットの通信状況に応じて送信形態を選択するステップS1505。具体的には、パケット転送装置通信部108は、送信するパケットの通信状況に応じて、通常モードで送信するか、緊急モードで送信するかを選択する。緊急モードの例として、例えば、TCPセッションが再送フェーズに入っており、即座にパケットを送りだすことができない場合や、送信するパケットが重要なパケットである場合などが挙げられる。そして、経路制御装置100のパケット転送装置通信部108は、ステップS1505の処理で選択した送信形態で処理規則を送信するステップS1506。各パケット転送装置210~230が経路制御装置コントローラ100から処理規則を受信すると、制御メッセージ送受信部211は、フローテーブルに受信したエントリを設定する。そして、パケット処理部213は、設定されたエントリに従って、バッファリングしてあるパケットをパケット転送装置220に転送する図5におけるステップS1604-1。このパケットが転送される転送経路上のパケット転送装置220,230には、既にエントリの設定が行われている。そのため、このパケットは、パケット転送装置220,230の順で転送され、外部端末320に届くことになるステップS1604-2、ステップS1604-3。以後、外部端末310から外部端末320宛てにパケットが送信される場合、そのパケットは、転送経路に従って、パケット転送装置210→パケット転送装置220→パケット転送装置230の順に転送されステップS1605-1~S1605-4、外部端末320に到着する。以上のように、本実施形態によれば、経路制御装置100のパケット転送装置通信部108が、パケット転送装置との通信状況に応じて、そのパケット転送装置との通信方法を選択する。具体的には、パケット転送装置通信部108が、パケット転送装置との通信状況例えば、TCPセッションが再送フェーズに入っている場合、送信するパケットが重要なパケットである場合などに応じて、緊急モードで送信する通信方法を選択する。このような構成であっても、経路制御装置100からパケット処理装置へ送信されるパケットの遅延を抑制できる。以下、具体的な実施例により本発明を説明するが、本発明の範囲は以下に説明する内容に限定されない。第1の実施例は、本発明の第1の実施形態における通信制御システムに対応する。以下、本実施例における通信制御システムを、図1、図3および図2を用いて説明する。第1の実施例では、オープンフローネットワークを想定した通信制御システムについて説明する。経路制御装置コントローラは、複数のセッションを管理し、その複数のセッションの中から所望のセッションを選択する機能をオープンフローコントローラに具備した装置に相当する。また、パケット転送装置は、経路制御装置コントローラとの間に構築されるセッションの数と各セッションを構築するポート番号とを保持する機能をオープンフロースイッチに具備した装置に相当する。図1に例示するように、本実施例における通信制御システムは、2台の外部端末310,320と、外部端末間に3台のパケット転送装置210~230と、このネットワークを制御する経路制御装置100とを含む。図9は、経路制御装置とパケット転送装置との間のセッションを構築する処理の例を示すフローチャートである。以下、図9を用いて、本実施例における通信制御システムの動作について説明する。初めに、経路制御装置コントローラ100が管理するオープンフローネットワークにパケット転送装置210が参加する際の手順を説明する。以下、オープンフローネットワークにおけるセッションの確立をパケット転送装置210~230から開始する場合について説明するが、セッションの確立の開始は経路制御装置コントローラ100からでもよい。まず、パケット転送装置210は、経路制御装置コントローラ100が管理するネットワークに参入する際に、自身の情報を経路制御装置100に通知するためのセッションを確立する。ここでは、セッションをSecureChanelTCPまたはSSLにて確立するものとする。各パケット転送装置210~230の制御メッセージ送受信部211は、経路制御装置コントローラ100に対し、セッション構築要求メッセージSYNメッセージを送信する。SYNメッセージには、接続したいサーバのポート番号などの情報が含まれる。例えば、SYNメッセージにサーバのポート番号として6633が指定されていたとする。このSYNメッセージを経路制御装置100が受信すると、複数セッション管理部106は、TCPのセッション確立の手順メカニズムに従い、パケット転送装置210に対してSYNACKメッセージを送信する。パケット転送装置210がそのSYNACKメッセージを受信すると、制御メッセージ送受信部211は、経路制御装置100に対して、SYNACKメッセージに対するACKを送信する。これにより、経路制御装置とパケット転送装置との間にTCPセッションが1本確立される。経路制御装置100がこのTCPセッション確立と同時にパケット転送装置210からの最初のSYNメッセージを受信すると、制御メッセージ処理部105は、複数セッション管理部106に対してパケット転送装置210からセッション確立要求があったことを通知するステップS301。次に、複数セッション管理部106は、経路制御装置100とパケット転送装置210との間に構築するセッション数コネクション数を決定するステップS302。ここでは、経路制御装置100とパケット転送装置210との間に構築するセッション数が2本と決定されたとする。この場合、複数セッション管理部106は、2本目のセッションを確立するために必要なポート番号を決定するステップS303。複数セッション管理部106は、Well-knownポート番号以外からポート番号を決定する。ここでは、複数セッション管理部106がポート番号をランダムに決定するものとし、ポート番号として1024が選択されたものとする。なお、ポート番号の決定方法は、ランダムに決定する方法に限定されない。複数セッション管理部106は、例えば、Well-knownポート番号以外の未使用の番号のうち、最小のポート番号を選択してもよい。パケット転送装置通信部108は、複数セッション管理部106が決定したポート番号をFeaturesRequestメッセージに含めてパケット転送装置210に通知するステップS304。ただし、ポート番号を通知する際に用いるメッセージはFeaturesRequestメッセージに限定されない。このポート番号の通知は、例えば、経路制御装置100がパケット転送装置210に送信する任意のメッセージに含めて行われてもよく、別途作成されたポート番号を通知する専用のメッセージに含めて行われてもよい。そして、経路制御装置100は、パケット転送装置210からのセッション確立要求をポート番号1024で待機するステップS305。パケット転送装置210の制御メッセージ送受信部211は、FeaturesRequestに対する応答であるFeaturesReplyを経路制御装置コントローラ100に返信した後、ポート番号を1024とするSYNメッセージを経路制御装置コントローラ100に送信する。以降、セッションが確立されるまでの動作は、上述する内容と同様である。具体的には、ステップS302で構築するセッション数がNと決定された場合、ステップS303で複数セッション管理部106がポート番号をN個選択する。そして、パケット転送装置通信部108がステップS304~S305の処理を行えばよい。このように、経路制御装置100とパケット転送装置210~230との間でセッションが構築されることで、オープンフローネットワークが構築される。次に、構築されたオープンフローネットワークにデータパケットが到着したときの動作を図21を用いて説明する。外部端末310が外部端末320に向けてデータパケットを送信すると、データパケットは、パケット転送装置210に到着するステップS901。パケット転送装置210がデータパケットを受信すると、パケット処理部213は、そのパケットのヘッダ情報に適合する照合規則マッチングキーを含むエントリをフローテーブルから検索する。しかし、受信したパケットは最初のパケットであるため、フローテーブルに該当するエントリは存在しない。そこで、パケット処理部213は、受信したパケットをバッファリングしてから、経路制御装置コントローラ100に対して、新規フロー検出通知メッセージPacket-Inメッセージを送信するステップS902。このPacket-Inメッセージには、フローの識別に必要な情報例えば、MACアドレス、IPアドレス、ポート番号それぞれ送信元と宛先の両方含むと、パケットの受信ポートを示す情報が含まれる。ここでは、パケット転送装置210が受信したパケットをバッファリングして、フローの識別に必要な情報を経路制御装置100に送信することを想定している。ただし、パケット転送装置210は、受信したパケットそのものを経路制御装置100に送信してもよい。ここで、経路制御装置コントローラ100がPacket-Inメッセージを受信したときの動作を説明する。図10は、経路制御装置コントローラ100がPacket-Inメッセージを受信したときの動作の例を示すフローチャートである。経路制御装置コントローラ100がPacket-Inメッセージを受信すると、経路アクション計算部103は、受信した情報に基づいて、新規エントリの照合規則マッチングキーを作成し、そのエントリに適用するタイマー値を決定するステップS402。照合規則として作成する情報は、例えば、図20に例示するInPort~TCP/UDPsrcportの情報である。さらに、経路アクション計算部103は、受信した情報に基づいて、宛先である外部端末320の位置確認を行い、外部端末310から外部装置320へのパケット転送経路を計算するステップS403。ここでは、転送経路を計算した結果、パケット転送装置210→パケット転送装置220→パケット転送装置230の順でパケットを転送する転送経路が計算されたものとする。次に、経路制御装置コントローラ100の経路アクション計算部103は、新規エントリの照合規則マッチングキーと一致するパケットに対して、計算された転送経路に従って転送することを規定したアクションおよびタイマー値を設定したエントリFlowModメッセージを、各パケット転送装置210~230ごとに作成するステップS404。FlowModメッセージが作成されると、経路制御装置コントローラ100のパケット転送装置通信部108は、FlowModメッセージを送信するためのセッションを選択しステップS405、選択したセッションを用いて処理規則FlowModを送信するステップS406。なお、ステップS405において、パケット転送装置通信部108は、例えば、TCPのタイマフィールドの内容をもとに、FlowModメッセージを送信する際に用いるセッションを選択する。以下、TCPのタイマフィールドの内容をもとにセッションを選択する方法を詳しく説明する。図11は、セッションを選択する処理の例を示すフローチャートである。第1の実施例において、経路制御装置コントローラとパケット転送装置210との間の1本目のセッションをセッションAと記し、2本目のセッションをセッションBと記す。TCPでは、送信したデータに対する相手からの確認応答パケットを所定の時間内に受信しなければ、再送タイマが作動する。ここで、再送タイマが作動するとは、確認応答ACKの待ち時間が所定の時間経過したことを示す。再送タイマが作動しているか否かは、各セッションの再送タイマの作動回数を示す変数であるt_rxtshift変数を参照すれば判断できる。すなわち、t_rxtshift変数の値が0の場合、再送タイマは作動しておらず、t_rxtshift変数の値が1以上の場合再送タイマが作動していることを意味する。具体的には、t_rxtshift変数の値がKであれば、再送処理が連続してK回行われていることを示す。以下、t_rxtshift変数の値のことを、t_rxtshift値または再送タイマ値と記すこともある。この変数の値が大きいと言うことは、データパケットが送信先の端末に到着している可能性が高いことを意味する。言い換えると、この変数の値が小さいセッションほど、品質が良いと判断できる。そこで、経路制御装置コントローラ100のパケット転送装置通信部108は、各セッションのt_rxtshift変数の値を確認するステップS601。第1の実施例において、セッションAのt_rxtshift変数の値をa、セッションBのt_rxtshift変数の値をb≧aとする。経路制御装置コントローラ100のパケット転送装置通信部108は、はaとbの値を比較するステップS602。そして、パケット転送装置通信部108は、再送タイマ値が最も小さいセッションを選択するステップS603。この場合、パケット転送装置通信部108は、再送タイマ値が小さいセッションAを選択する。その結果、経路制御装置コントローラ100のパケット転送装置通信部108は、ステップS603で決定されたセッションすなわち、セッションAを用いてFlowModメッセージを送信する。このように、このように経路制御装置コントローラ100とパケット転送装置210~230との間に複数のセッションを構築し、経路制御装置コントローラ100より詳しくは、パケット転送装置通信部108がパケット転送装置210~230に対してパケットを送信する際に、通信品質の良いセッションを選択する。そのため、パケット転送装置210~230に対してパケットを正確に送信することができる。以上、経路制御装置コントローラ100とパケット転送装置210との間の通信を例に、FlowModを送信するまでの処理を説明した。なお、経路制御装置コントローラ100とパケット転送装置220との間の通信、および、経路制御装置コントローラ100とパケット転送装置230との間の通信についても同様であるため、説明を省略する。各パケット転送装置210~230が経路制御装置コントローラ100からFlowModを受信すると、制御メッセージ送受信部211は、フローテーブルに受信したエントリを設定する。そして、パケット処理部213は、設定されたエントリに従って、バッファリングしてあるパケットをパケット転送装置220に転送する図21におけるステップS904-1。このパケットが転送される転送経路上のパケット転送装置220,230には、既にエントリの設定が行われている。そのため、このパケットは、パケット転送装置220,230の順で転送され、外部端末320に届くことになるステップS904-2、ステップS904-3。以後、外部端末310から外部端末320宛てにパケットが送信される場合、そのパケットは、転送経路に従って、パケット転送装置210→パケット転送装置220→パケット転送装置230の順に転送されステップS905-1~S905-4、外部端末320に到着する。次に、第1の実施例における第1の変形例について説明する。第1の実施例では、複数のセッションを構築し、通信状況に応じて使用するセッションを選択する場合について説明した。本変形例では、経路制御装置コントローラ100とパケット転送装置210との間で事前にプライマリセッション以下、Primaryセッションと記す。およびセカンダリセッション以下、Secondaryセッションと記す。を決定しておく点において、第1の実施例と異なる。通常時には、装置間の通信にPrimaryセッションが使用され、Primaryセッションの異常時には、装置間の通信にSecondaryセッションが使用される。本変形例における通信制御システムの動作を説明する。経路制御装置コントローラ100がPacket-Inメッセージを受信して各パケット転送装置210~230ごとにFlowModメッセージを作成するまでの処理は、図10に例示するステップS402~ステップS404と同様である。その後、経路制御装置コントローラ100のパケット転送装置通信部108は、FlowModメッセージを送信するためのセッションを選択する。このセッションを選択する動作を図12を用いて説明する。図12は、セッションを選択する動作の例を示すフローチャートである。以下の説明において、Primaryセッションは、1本目に構築されたセッション、Secondaryセッションは、2本目に構築されたセッションとする。まず、パケット転送装置通信部108は、セッションを選択するときに、Primaryセッションのt_rxtshift値を参照するステップS501。そして、パケット転送装置通信部108は、異常と判断する際の基準値として予め設定された値以下、thresholdと記す。と、Primaryセッションのt_rxtshift値とを比較するステップS502。Primaryセッションのt_rxtshift値が基準値より大きければステップS502におけるY、パケット転送装置通信部108は、Primaryセッションの異常と判断し、Primaryセッションを選択せずに、Secondaryセッションを選択するステップS503。一方、Primaryセッションのt_rxtshift値が基準値以下であればステップS502におけるN、パケット転送装置通信部108は、Primaryセッションが通常の通信状況にあると判断し、Primaryセッションを選択するステップS504。そして経路制御装置コントローラ100のパケット転送装置通信部108は、選択したセッションを用いて、パケット転送装置210~230に対してFlowModメッセージを送信する。このような方法でも、通信品質の良いセッションを選択できるため、経路制御装置コントローラ100からパケット転送装置へ送信されるパケットの遅延を抑制できる。次に、第1の実施例における第2の変形例を説明する。第1の実施例および第1の実施例における第1の変形例では、経路制御装置コントローラ100とパケット転送装置210~230との間の2本目以降のセッションもネットワーク構築時に構築される場合について説明した。本変形例では、1本目のセッションについては、第1の実施例および第1の実施例における第1の変形例と同様、ネットワーク構築時に構築される。一方、2本目のセッションについては、1本目のセッションに異常が発生したタイミングで構築される点において、第1の実施例および第1の実施例における第1の変形例と異なる。本変形例における通信制御システムの動作を説明する。まず初めに、経路制御装置コントローラ100が管理するオープンフローネットワークにパケット転送装置210が参加する際の手順を説明する。以下、オープンフローネットワークにおけるセッションの確立をパケット転送装置210~230から開始する場合について説明するが、セッションの確立の開始は経路制御装置コントローラ100からでもよい。まず、パケット転送装置210は、経路制御装置コントローラ100が管理するネットワークに参入する際に、自身の情報を経路制御装置100に通知するためのセッションを確立する。ここでは、セッションをSecureChanelTCPまたはSSLにて確立するものとする。各パケット転送装置210~230の制御メッセージ送受信部211は、経路制御装置コントローラ100に対し、セッション構築要求メッセージSYNメッセージを送信する。SYNメッセージには、接続したいサーバのポート番号などの情報が含まれる。例えば、SYNメッセージにサーバのポート番号として6633が指定されていたとする。このSYNメッセージを経路制御装置100が受信すると、複数セッション管理部106は、TCPのセッション確立の手順に従い、パケット転送装置210に対してSYNACKメッセージを送信する。パケット転送装置210がそのSYNACKメッセージを受信すると、制御メッセージ送受信部211は、経路制御装置100に対して、SYNACKメッセージに対するACKを送信する。これにより、経路制御装置とパケット転送装置との間にTCPセッションが1本確立される。この手順により、オープンフローネットワークが構築されたとする。次に、構築されたオープンフローネットワークにデータパケットが到着したときの動作を図21を用いて説明する。外部端末310が外部端末320に向けてデータパケットを送信すると、データパケットは、パケット転送装置210に到着するステップS901。パケット転送装置210がデータパケットを受信すると、パケット処理部213は、そのパケットのヘッダ情報に適合する照合規則マッチングキーを含むエントリをフローテーブルから検索する。しかし、受信したパケットは最初のパケットであるため、フローテーブルに該当するエントリは存在しない。そこで、パケット処理部213は、受信したパケットをバッファリングしてから、経路制御装置コントローラ100に対して、新規フロー検出通知メッセージPacket-Inメッセージを送信するステップS902。このPacket-Inメッセージには、フローの識別に必要な情報例えば、MACアドレス、IPアドレス、ポート番号それぞれ送信元と宛先の両方含むと、パケットの受信ポートを示す情報が含まれる。ここでは、パケット転送装置210が受信したパケットをバッファリングして、フローの識別に必要な情報を経路制御装置100に送信することを想定している。ただし、パケット転送装置210は、受信したパケットそのものを経路制御装置100に送信してもよい。ここで、経路制御装置コントローラ100がPacket-Inメッセージを受信したときの動作を説明する。図13は、経路制御装置コントローラ100がPacket-Inメッセージを受信したときの動作の例を示すフローチャートである。経路制御装置コントローラ100がPacket-Inメッセージを受信すると、経路アクション計算部103は、受信した情報に基づいて、新規エントリの照合規則マッチングキーを作成し、そのエントリに適用するタイマー値を決定するステップS1202。照合規則として作成する情報は、例えば、図20に例示するInPort~TCP/UDPsrcportの情報である。さらに、経路アクション計算部103は、受信した情報に基づいて、宛先である外部端末320の位置確認を行い、外部端末310から外部装置320へのパケット転送経路を計算するステップS1203。ここでは、転送経路を計算した結果、パケット転送装置210→パケット転送装置220→パケット転送装置230の順でパケットを転送する転送経路が計算されたものとする。次に、経路制御装置コントローラ100の経路アクション計算部103は、新規エントリの照合規則マッチングキーと一致するパケットに対して、計算された転送経路に従って転送することを規定したアクションおよびタイマー値を設定したエントリFlowModメッセージを、各パケット転送装置210~230ごとに作成するステップS1204。次に経路制御装置コントローラ100では、作成したエントリを送信する処理に移る。その際に、パケット転送装置通信部108は、そのセッションが即座にパケットを送信できる状態か否かをチェックする。チェックする指標として、TCPの再送タイマに係る変数t_rxtshiftが用いられる。TCPの再送タイマが所定の値thresholdよりも大きいと言うことは、パケット転送装置へ送信したパケットが届いていないことを示しているとも言える。経路制御装置コントローラ100のパケット転送装置通信部108は、t_rxtshift値を参照しステップS1205、異常と判断する際の基準値として予め設定された値thresholdと、t_rxtshift値とを比較するステップS1206。ここでは、thresholdを品質劣化と判定する際の基準値として用いる。t_rxtshift値がthresholdより大きければステップS1206におけるY、複数セッション管理部106は、2本目以降のセッションを構築すると決定するステップS1207。次に、複数セッション管理部106は、2本目のセッションを確立するために必要なポート番号を決定するステップS1208。複数セッション管理部106は、Well-knownポート番号以外からポート番号を決定する。ここでは、複数セッション管理部106がポート番号をランダムに決定するものとし、ポート番号として1024が選択されたものとする。なお、ポート番号の決定方法は、ランダムに決定する方法に限定されない。複数セッション管理部106は、例えば、Well-knownポート番号以外の未使用の番号のうち、最小のポート番号を選択してもよい。パケット転送装置通信部108は、複数セッション管理部106が決定したポート番号をパケット転送装置210に通知するステップS1209。このポート番号の通知は、経路制御装置100がパケット転送装置210に送信する任意のメッセージに含めて行われてもよく、別途作成されたポート番号を通知する専用のメッセージに含めて行われてもよい。そして、経路制御装置コントローラ100は、パケット転送装置210からのセッション確立要求をポート番号1024で待機するステップS1210。パケット転送装置210の制御メッセージ送受信部211は、Featureポート番号を1024とするSYNメッセージを経路制御装置100に送信する。以降、セッションが確立されるまでの動作は、上述する内容と同様である。セッションの確立後、経路制御装置コントローラ100のパケット転送装置通信部108は、新たに構築したセッションを用いてFlowModをパケット転送装置210~230に対して送信するステップS1211。なお、ステップS1206において、t_rxtshift値がthreshold以下の場合ステップS1206におけるN、パケット転送装置通信部108は、既存のセッションを用いてFlowModをパケット転送装置210~230に対して送信するステップS1211。また、図13のステップS1211において、FlowModが送信される処理が、図21におけるステップS903の処理に相当する。以降、データパケットは、ステップS904-1~S904-3、および、ステップS905-1~ステップS905-4の処理に基づいて、外部端末320に送信される。このような方法でも、通信品質の良いセッションを選択できるため、経路制御装置コントローラ100からパケット転送装置へ送信されるパケットの遅延を抑制できる。なお、第1の実施形態、第1の実施例、第1の実施例における第1の変形例および第1の実施例における第2の変形例のいずれも、1台の経路制御装置コントローラが1台のパケット転送装置と複数のセッションを構築する場合について説明した。ただし、経路制御装置コントローラの台数は1台に限定されない。2台以上の経路制御装置コントローラが1台のパケット転送装置に対して複数のセッションを構築してもよい。また、第1の実施形態では、複数セッション管理部106が、経路制御装置コントローラ100とパケット転送装置210~230との間にSecureChannelを複数本構築する。一般的には、経路制御装置コントローラ100とパケット転送装置210~230との間に構築されるSecureChannelは一本である。しかし、SecureChannelが一本であると、そのSecureChannelの品質が悪い場合、経路制御装置コントローラ100が送信したパケットがパケット転送装置210~230に届かない可能性がある。しかし、本実施形態では、複数セッション管理部106が構築した複数のセッションの中から、品質の良いセッションを選択する。そのため、例えば、特許文献1、非特許文献1,2に記載されたオープンフローネットワークと比較して、高確率で経路制御装置コントローラ100からのパケットをパケット転送装置に届けることができる。次に、本発明の第2の実施例について説明する。第2の実施例は、本発明の第2の実施形態における通信制御システムに対応する。第2の実施例も、第1の実施例と同様、オープンフローネットワークを想定した通信制御システムについて説明する。経路制御装置コントローラ100は、パケットの通信状況に応じて送信形態を選択する機能をオープンフローコントローラに具備した装置に相当する。また、パケット転送装置は、オープンフロースイッチそのものに相当する。図14は、本発明の第2の実施例における通信制御システムの例を示すブロック図である。本実施例における通信制御システムは、経路制御装置コントローラ100と、3台のパケット転送装置210~230と、4台の外部端末310~340とを備えている。この通信制御システムでオープンフローネットワークを形成しているものとする。また、外部端末310~340の間に3台のパケット転送装置210~230が存在し、経路制御装置コントローラ100がこのオープンフローネットワークを制御するなお、以下の説明では、外部端末310が外部端末320へデータパケットを送信し、外部端末330が外部端末340へデータパケットを送信するものとする。次に、構築されたオープンフローネットワークにデータパケットが到着したときの動作を説明する。図15は、パケットの流れの一例を示す説明図である。パケット転送装置210が外部端末310からデータパケットを受信するとステップS1901、パケット処理部213は、そのパケットのヘッダ情報に適合する照合規則マッチングキーを含むエントリをフローテーブルから検索する。しかし、受信したパケットは最初のパケットであるため、フローテーブルに該当するエントリは存在しない。そこで、パケット処理部213は、受信したパケットをバッファリングしてから、経路制御装置コントローラ100に対して、新規フロー検出通知メッセージPacket-Inを送信するステップS1902。この新規フロー検出通知メッセージPacket-Inには、フローの識別に必要な情報例えば、MACアドレス、IPアドレス、ポート番号それぞれ送信元と宛先の両方含むと、パケットの受信ポートを示す情報が含まれる。ここでは、パケット転送装置210が受信したパケットをバッファリングして、フローの識別に必要な情報を経路制御装置100に送信することを想定している。ただし、パケット転送装置210は、受信したパケットそのものを経路制御装置100に送信してもよい。ここで、経路制御装置コントローラ100がPacket-Inメッセージを受信したときの動作を説明する。図16は、経路制御装置コントローラ100がPacket-Inメッセージを受信したときの動作の例を示すフローチャートである。経路制御装置コントローラ100が新規フロー検出通知メッセージPacket-Inを受信すると、経路アクション計算部103は、受信した情報に基づいて、新規エントリの照合規則マッチングキーを作成し、そのエントリに適用するタイマー値を決定するステップS1802。照合規則として作成する情報は、例えば、図20に例示するInPort~TCP/UDPsrcportの情報である。さらに、経路アクション計算部103は、受信した情報に基づいて、宛先である外部端末320の位置確認を行い、外部端末310から外部装置320へのパケット転送経路を計算するステップS1803。ここでは、転送経路を計算した結果、パケット転送装置210→パケット転送装置220→パケット転送装置230の順でパケットを転送する転送経路が計算されたものとする。次に、経路制御装置コントローラ100の経路アクション計算部103は、新規エントリの照合規則マッチングキーと一致するパケットに対して、計算された転送経路に従って転送することを規定したアクションおよびタイマー値を設定したエントリFlowModを、各パケット転送装置210~230ごとに作成するステップS1804。次に、経路制御装置コントローラ100のパケット転送装置通信部108は、パケットの送信形態を選択しステップS1805、その送信形態でFlowModを送信するステップS1806。さらに、ステップS1805においてパケット転送装置通信部108が、パケットの送信形態を選択する方法を説明する。図17は、パケットの送信形態を選択する処理の例を示すフローチャートである。第2の実施例では、送信形態を選択する際、TCPの再送タイマの作動回数を示す変数t_rxtshiftを用いる。まず、経路制御装置コントローラ100のパケット転送装置通信部108は、TCPの再送タイマの作動回数を示す変数であるt_rxtshift値を参照するステップS1301。そして、パケット転送装置通信部108は、異常と判断する際の基準値として予め設定された値thresholdと、t_rxtshift値とを比較し、t_rxtshift値がthreshold以上か否かを判断するステップS1302。ここで、threshold≧1の場合、TCPが再送フェーズに入っていることを示すことから、予めthreshold=1と設定しておく。また、経路制御装置コントローラ100がパケット転送装置210からPacket-Inを受信するまで、パケットロスは発生していないものと仮定する。すなわち、最初の状態では、t_rxtshiftの値は0である。よって、t_rxtshift≧thresholdは偽と判断されるすなわち、t_rxtshift値がthreshold以上でないと判断されるためステップS1302におけるN、経路制御装置コントローラ100のパケット転送装置通信部108は、パケット転送装置210に対して、通常通りFlowModを送信するステップS1304。なお、t_rxtshift値がthreshold以上であると判断された場合ステップS1302におけるYの処理については後述する。なお、図17のステップS1304において、FlowModが送信される処理が、図15におけるステップS1903-1の処理に相当する。また、経路制御装置コントローラ100とパケット転送装置220との間のセッション、および、経路制御装置コントローラ100とパケット転送装置230との間のセッションにおける通信でも、パケットロスは発生していないと仮定する。この場合、経路制御装置コントローラ100では同様の処理が行われ、経路制御装置コントローラ100のパケット転送装置通信部108は、パケット転送装置220~230にFlowModを送信する図15におけるステップS1903-2、ステップS1903-3。ここで、パケット転送装置220に対するFlowModメッセージステップS1903-2で送信したFlowModメッセージと、パケット転送装置230に対するFlowModメッセージステップS1903-3で送信したFlowModメッセージが各パケット転送装置に到着したとする。一方、パケット転送装置210に対するFlowModメッセージステップS1903-1で送信したFlowModメッセージがパケット転送装置210に到着しなかったとする。経路制御装置コントローラ100のタイマ起動部図示せずは、各FlowModステップS1903-1、ステップS1903-2、ステップS1903-3を送信した時にタイマをスタートさせる。なお、タイマをスタートさせるタイマ起動部図示せずの処理は、TCPで規定された処理である。タイマ起動部図示せずは、TCPの規定に基づき、送信したパケットに対する受信確認応答をタイマが切れる前に受信する。このようにすることで、タイマ起動部は、送信したパケットが到着したことを確認する。図15に例示するように、ステップS1903-1で送信されたFlowModの通信において、パケットロスが発生しており、経路制御装置コントローラ100のタイマ起動部図示せずは、タイマが切れる前に受信確認応答を受信することができない。この場合、タイマ起動部図示せずは、TCPの規定に基づき、t_rxtshift値を1インクリメントするt_rxtshift=1。そして、パケット転送装置通信部108は、ステップS1903-1で送信したFlowModを再送するステップS1904-1。仮に、このFlowModも損失したとすると、タイマ起動部図示せずは、TCPの規定に基づき、t_rxtshift値を、さらに1インクリメントするt_rxtshift=2。この状態から、外部端末330が外部端末340宛てに送信したデータパケットがパケット転送装置210に到着するとステップS1905、パケット転送装置210は、フローテーブルから、そのパケットのヘッダ情報に適合する照合規則マッチングキーを含むエントリを検索する。しかし、受信したパケットは最初のパケットであるため、フローテーブルに該当するエントリは存在しない。そこで、パケット処理部213は、受信したパケットをバッファリングしてから、経路制御装置コントローラ100に対して、新規フロー検出通知メッセージPacket-Inを送信するステップS1906。この新規フロー検出通知メッセージPacket-Inには、フローの識別に必要な情報例えば、MACアドレス、IPアドレス、ポート番号それぞれ送信元と宛先の両方含むと、パケットの受信ポートを示す情報が含まれる。ここでは、パケット転送装置210が受信したパケットをバッファリングして、フローの識別に必要な情報を経路制御装置100に送信することを想定している。ただし、パケット転送装置210は、受信したパケットそのものを経路制御装置100に送信してもよい。ここで、経路制御装置コントローラ100がPacket-Inメッセージを受信したときの動作について図16を用いて説明する。経路制御装置コントローラ100が新規フロー検出通知メッセージPacket-Inを受信すると、経路アクション計算部103は、受信した情報に基づいて、新規エントリの照合規則マッチングキーを作成し、そのエントリに適用するタイマー値を決定するステップS1802。照合規則として作成する情報は、例えば、図20に例示するInPort~TCP/UDPsrcportの情報である。さらに、経路アクション計算部103は、受信した情報に基づいて、宛先である外部端末340の位置確認を行い、外部端末330から外部装置340へのパケット転送経路を計算するステップS1803。ここでは、転送経路を計算した結果、パケット転送装置210→パケット転送装置220→パケット転送装置230の順でパケットを転送する転送経路が計算されたものとする。次に、経路制御装置コントローラ100の経路アクション計算部103は、新規エントリの照合規則マッチングキーと一致するパケットに対して、計算された転送経路に従って転送することを規定したアクションおよびタイマー値を設定したエントリFlowModを、各パケット転送装置210~230ごとに作成するステップS1804。次に、経路制御装置コントローラ100のパケット転送装置通信部108は、パケットの送信形態を選択しステップS1805、その送信形態でFlowModを送信するステップS1806。ここでも、ステップS1805においてパケット転送装置通信部108が、パケットの送信形態を選択する方法を図17を用いて説明する。まず、経路制御装置コントローラ100のパケット転送装置通信部108は、TCPの再送タイマの作動回数を示す変数であるt_rxtshift値を参照するステップS1301。そして、パケット転送装置通信部108は、t_rxtshift値がthreshold以上か否かを判断するステップS1302。ステップS1904-1の処理、および、再度の再送処理が行われたことにより、t_rxtshift値は2であるため、再送フェーズに入っていることが分かる。よって、t_rxtshift≧thresholdは真と判断されるすなわち、t_rxtshift値がthreshold以上であると判断されるためステップS1302におけるY、パケット転送装置通信部108は、TCPの規定に基づき、TCPヘッダのURGビットをセットするステップS1303。なお、URGビットとは、TCPパケット中に緊急データが含まれていることを表す情報である。TCPの規定により、URGビットが設定されたパケットが保持されると、再送タイマの値がリセットされるすなわち、t_rxtshift=0になる。そのため、パケット転送装置通信部108がパケットFlowModを即座に送信することが可能になるステップS1304。なお、ここでFlowModを送信するステップS1304の処理が、図15におけるステップS1907-1の処理に相当する。すなわち、経路制御装置100がFlowModをパケット転送装置210に送信するため、パケット転送装置210は、ステップS1906で送信したPacket-Inに対するFlowModを受信することができるステップS1907-1。また、経路制御装置コントローラ100では同様の処理が行われ、経路制御装置コントローラ100のパケット転送装置通信部108は、パケット転送装置220~230にFlowModを送信するステップS1907-2、ステップS1907-3。さらに、パケット転送装置通信部108は、ステップS1901で送信されたデータパケットに対するS1908-1のFlowModに対しても同様の動作を行うことで、パケット転送装置210に対し、FlowModを送信できるステップS1908-1。各パケット転送装置210~230が経路制御装置コントローラ100からこれらの処理規則FlowModを受信すると、制御メッセージ送受信部211は、フローテーブルに受信したエントリを設定する。そして、パケット処理部213は、設定されたエントリに従って、バッファリングしてあるパケットをパケット転送装置220に転送する図15におけるステップS1905-1、ステップS1901-1。このパケットが転送される転送経路上のパケット転送装置220,230には、既にエントリの設定が行われている。そのため、このパケットは、パケット転送装置220,230の順で転送され、外部端末320及び外部端末340に届くことになるステップS1905-2、ステップS1901-2、ステップS1905-3、ステップS1901-3。なお、第1の実施形態および第2の実施形態の説明では、パケット転送装置通信部108が、FlowModを対象に緊急モードで送るか否かを判断する場合について説明した。ただし、緊急モードで送るか否かを判断する対象は、FlowModに限定されない。パケット転送装置通信部108は、例えば、パケットの重要度に応じて、緊急モードで送信するか否かを判断してもよい。次に、本発明の最小構成を説明する。図18は、本発明による通信制御システムの最小構成の例を示すブロック図である。本発明による通信制御システムは、パケットの処理内容を規定した規則であるパケット処理規則にしたがって、受信したパケットを転送するパケット転送装置80例えば、パケット転送装置210~230と、パケット処理規則の適用をパケット転送装置に指示することによりパケットの転送経路を制御する制御装置90例えば、経路制御装置100とを備えている。制御装置90は、パケット転送装置80との通信状況に応じて、そのパケット転送装置との通信方法を選択する通信方法選択手段91例えば、パケット転送装置通信部108を含む。そのような構成により、パケット処理装置に対して制御装置が処理規則を送信するネットワークで、制御装置からパケット処理装置へ送信されるパケットの遅延を抑制できる。また、制御装置90は、パケット転送装置80との間に複数のセッションを構築する複数セッション構築手段例えば、複数セッション管理部106を含んでいてもよい。そして、通信方法選択手段91は、複数のセッションが構築されたパケット転送装置80との通信状況に応じて、その複数のセッションの中からそのパケット転送装置との通信に用いるセッションを選択してもよい。また、通信方法選択手段91は、パケット転送装置80との通信状況に応じて、通常よりも優先してパケットを送信する状態である緊急モードで送信する通信方法を選択してもよい。また、複数セッション構築手段が、複数のセッションのうち、通常の通信に用いられるセッションであるプライマリセッションPrimaryセッションと、プライマリセッションの異常時に用いられるセッションであるセカンダリセッションSecondaryセッションとを予め決定してもよい。そして、通信方法選択手段91は、通常時にはプライマリセッションを選択し、プライマリセッションの異常時にセカンダリセッションを選択してもよい。また、複数セッション構築手段は、パケット転送装置との通信状況に応じて、パケット転送装置との間に構築するコネクションを追加してもよい。そして、通信方法選択手段91は、パケット転送装置80へ送信したパケットが届いていない場合に、複数セッション構築手段が通信状況に応じて追加したコネクションをパケット転送装置との通信に用いるセッションとして選択してもよい。また、通信方法選択手段91は、TCPで規定される再送タイマに基づいて、パケット転送装置との通信状況の優劣を判断してもよく、送信するパケットの重要度に基づいて、パケット転送装置との通信方法を選択してもよい。また、図19は、本発明による制御装置の最小構成の例を示すブロック図である。図19に例示する制御装置は、図18に例示する制御装置90の内容と同様である。このような構成によっても、制御装置からパケット処理装置へ送信されるパケットの遅延を抑制できる。以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。この出願は、2010年12月14日に出願された日本特許出願2010-278544を基礎とする優先権を主張し、その開示の全てをここに取り込む。"