(57)【要約】  通信システムは、パケットを処理するための処理規則を要求するノードと、前記要求に応じて、前記処理規則を前記ノードに通知する制御装置と、前記ノードが受信したパケットの転送経路を計算する複数の経路計算装置と、を備え、それぞれの前記経路計算装置は、転送経路を計算するための少なくとも１つのポリシーに基づいて転送経路を計算し、計算した転送経路を前記制御装置に通知し、前記制御装置は、通知された複数の転送経路のいずれかにより前記ノードが受信したパケットを転送するための処理規則を生成する。かかる通信システムによると、フロー制御の柔軟性を向上させつつ、経路計算を行う装置の処理負荷の上昇を防止することができる。
2014123194.tif 000002
【特許請求の範囲】
【請求項１】
パケットを処理するための処理規則を要求するノードと、
前記要求に応じて、前記処理規則を前記ノードに通知する制御装置と、
前記ノードが受信したパケットの転送経路を計算する複数の経路計算装置と、を備え、  前記複数の経路計算装置は、転送経路を計算するための少なくとも１つのポリシーに基づいて転送経路を計算し、計算した転送経路を前記制御装置に通知し、
前記制御装置は、前記ノードが受信したパケットを転送するための処理規則を、通知された複数の転送経路のいずれかに基づいて生成する、通信システム。
【請求項２】
前記複数の経路計算装置は、前記ノードが受信したパケットの転送経路を、前記制御装置から受け取るパケットの転送経路の要求に応じて計算する、請求項１に記載の通信システム。
【請求項３】
前記複数の経路計算装置は、前記ノードが受信したパケットの転送経路を、前記制御装置が管理する複数のノードの接続状況が変化したことに応じて再計算する、請求項１又は２に記載の通信システム。
【請求項４】
前記制御装置は、前記ノードが受信したパケットを転送するための転送経路を、前記通知された複数の転送経路から所定の条件に基づいて決定する、請求項１乃至３のいずれか１項に記載の通信システム。
【請求項５】
前記制御装置は、前記受信したパケットを転送するための転送経路を、前記通知された複数の転送経路のうちの重複する転送経路を優先して決定する、請求項４に記載の通信システム。
【請求項６】
前記制御措置は、前記ノードが受信したパケットを転送するための転送経路を、前記計算した複数の転送経路のうちの、他のパケットの転送経路としてすでに決定された転送経路と重複する転送経路以外を優先して決定する、請求項４又は５に記載の通信システム。
【請求項７】
ノードからの要求に応じて、前記ノードが受信したパケットを処理するための処理規則を生成する第１の手段と、
前記ノードが受信したパケットの転送経路を転送経路の計算のための少なくとも１つのポリシーに基づいて計算する複数の経路計算装置から、パケットの転送経路を受信する第２の手段と、を備え、
前記第１の手段は、前記ノードが受信したパケットを転送するための処理規則を前記第２の手段が受信した複数の転送経路のいずれかに基づいて生成する、制御装置。
【請求項８】
前記ノードが受信したパケットを転送するための転送経路を、前記第２の手段が受信した複数の転送経路から所定の条件に基づいて決定する第３の手段を備える、請求項７に記載の制御装置。
【請求項９】
前記第３の手段は、前記ノードが受信したパケットを転送するための転送経路を、前記受信した複数の転送経路のうちの重複する転送経路を優先して決定する、請求項８に記載の制御装置。
【請求項１０】
前記第３の手段は、前記ノードが受信したパケットを転送するための転送経路を、前記第２の手段が受信した複数の転送経路のうちの、他のパケットの転送経路としてすでに決定された転送経路と重複する転送経路以外を優先して決定する、請求項８又は９に記載の制御装置。
【請求項１１】
管理するノードの接続状況が変化したことに応じて、前記複数の経路計算装置に対して、前記ノードが受信したパケットの転送経路の再計算を指示する第４の手段を備え、
前記第２の手段は、前記複数の経路計算装置から、前記第４の手段による指示に応じて再計算された転送経路を受信し、
前記第１の手段は、前記ノードが受信したパケットを転送するための処理規則を、前記第２の手段が受信した再計算された複数の転送経路のいずれかに基づいて生成する、請求項７乃至１０のいずれか１項に記載の制御装置。
【請求項１２】
制御装置が、ノードからの要求に応じて、前記ノードが受信したパケットを処理するための処理規則を生成するステップと、
前記ノードが受信したパケットの転送経路を転送経路の計算のための少なくとも１つのポリシーに基づいて計算する複数の経路計算装置から、パケットの転送経路を受信するステップと、を含み、
前記制御装置は、前記ノードが受信したパケットを転送するための処理規則を、前記受信した複数の転送経路のいずれかに基づいて生成する、通信制御方法。
【請求項１３】
前記ノードが受信したパケットを転送するための転送経路を、前記受信した複数の転送経路から所定の条件に基づいて決定するステップを含む、請求項１２に記載の通信制御方法。
【請求項１４】
前記ノードが受信したパケットを転送するための転送経路を、前記受信した複数の転送経路のうちの重複する転送経路を優先して決定するステップを含む、請求項１３に記載の通信制御方法。
【請求項１５】
前記ノードが受信したパケットを転送するための転送経路を、前記受信した複数の転送経路のうちの、他のパケットの転送経路としてすでに決定された転送経路と重複する転送経路以外を優先して決定するステップを含む、請求項１３又は１４に記載の通信制御方法。
【請求項１６】
管理するノードの接続状況が変化したことに応じて、前記複数の経路計算装置に対して、前記ノードが受信したパケットの転送経路の再計算を指示するステップと、
前記複数の経路計算装置から、前記指示に応じて再計算された転送経路を受信するステップと、
前記ノードが受信したパケットを転送するための処理規則を、前記受信した再計算された複数の転送経路のいずれかに基づいて生成するステップと、を含む、請求項１２乃至１５のいずれか１項に記載の通信制御方法。
【請求項１７】
パケットを処理するノードを制御する制御装置に、
前記ノードが受信したパケットを処理するための処理規則を生成する処理と、
前記ノードが受信したパケットの転送経路を転送経路の計算のための少なくとも１つのポリシーに基づいて計算する複数の経路計算装置から、パケットの転送経路を受信する処理と、
前記ノードが受信したパケットを転送するための処理規則を、前記受信した複数の転送経路のいずれかに基づいて生成する処理と、を実行させる、プログラム。
【請求項１８】
前記ノードが受信したパケットを転送するための転送経路を、前記受信した複数の転送経路から所定の条件に基づいて決定する処理を、前記制御装置に実行させる、請求項１７に記載のプログラム。
【請求項１９】
前記ノードが受信したパケットを転送するための転送経路を、前記受信した複数の転送経路のうちの重複する転送経路を優先して決定する処理を、前記制御装置に実行させる、請求項１８に記載のプログラム。
【請求項２０】
前記ノードが受信したパケットを転送するための転送経路を、前記受信した複数の転送経路のうちの、他のパケットの転送経路としてすでに決定された転送経路と重複する転送経路以外を優先して決定する処理を、前記制御装置に実行させる、請求項１８又は１９に記載のプログラム。
【請求項２１】
管理するノードの接続状況が変化したことに応じて、前記複数の経路計算装置に対して、前記ノードが受信したパケットの転送経路の再計算を指示する処理と、
前記複数の経路計算装置から、前記指示に応じて再計算された転送経路を受信する処理と、
前記ノードが受信したパケットを転送するための処理規則を、前記受信した再計算された複数の転送経路のいずれかに基づいて生成する処理と、を前記制御装置に実行させる、請求項１７乃至２０のいずれか１項に記載のプログラム。
【請求項２２】
受信したパケットを処理するための処理規則を要求するノードと、
前記要求に応じて、前記処理規則を前記ノードに通知する制御装置と、
前記ノードが受信したパケットに対する複数の転送経路を計算する経路計算装置と、を備え、
前記経路計算装置は、転送経路を計算するための複数のポリシーに基づいて前記複数の転送経路を計算し、計算した前記複数の転送経路を前記制御装置に通知し、
前記制御装置は、通知された前記複数の転送経路のいずれかに基づいて前記処理規則を生成する、通信システム。
【請求項２３】
ノードからの要求に応じて、前記ノードが受信したパケットを処理するための処理規則を生成する第１の手段と、
転送経路を計算するための複数のポリシーに基づいて前記パケットに対する複数の転送経路を計算する経路計算装置から、前記複数の転送経路を受信する第２の手段と、を備え、
前記第１の手段は、前記第２の手段が受信した前記複数の転送経路のいずれかに基づいて前記処理規則を生成する、制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１３−０２２１１８号（２０１３年  ２月  ７日出願）に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、通信システム、制御装置、通信制御方法およびプログラムに関し、特に、制御装置によって集中制御されるネットワークにおける通信システム、制御装置、通信制御方法およびプログラムに関する。
【背景技術】
【０００２】
近年、集中制御型のネットワークアーキテクチャであるオープンフロー（OpenFlow）という技術が提案されている（特許文献１、非特許文献１、２参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献２に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合する条件が定められたマッチフィールド（Match Fields）と、処理内容を定義したアクション（Actions）と、統計情報（Counters）と、の組が定義される（図１７参照）。アクションには、例えば、受信パケットを指定ポートから転送する等の、受信パケットに対する処理内容が規定される。【０００３】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチフィールドを持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、統計情報（カウンタ）を更新するとともに、受信パケットに対して、当該エントリのアクションに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してフローエントリ設定の要求、即ち、受信パケットの処理内容の決定の要求を送信する（Packet-In）。オープンフロースイッチは、要求に対応するフローエントリを受け取ってフローテーブルを更新する（FlowMod）。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを処理規則として用いてパケット転送を行う。【０００４】
ここで、特許文献１には、オープンフローコントローラが、パケットの経路を、マルチホップDjikstraアルゴリズム（multi-hop Djikstra algorithm）に基づいて計算し、計算した経路を実現するための処理規則を生成することが開示されている。【０００５】
また、特許文献２には、他の集中管理型のアーキテクチャの例として、経路情報の収集及びルーティングの管理を行う複数のルートサーバと、パケットのルーティングを実行するルータとを含む経路情報管理システムが開示されている。【０００６】
特許文献２において、ルートサーバは、ルータから転送経路の問い合わせを受けたときに、予め決めておいた所定の経路決定手順に基づいて、問い合わせしてきたルータを起点とする最適経路情報および次善の経路情報（経路決定情報）を生成する。ルータは、ルートサーバが送信した経路情報を受信し、受信した経路情報に基づいて、パケットを転送する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２００８／０９５０１０号公報
【特許文献２】特開２０１０−１９９８００号公報
【非特許文献】
【０００８】
【非特許文献１】Nick McKeownほか７名、“OpenFlow: Enabling Innovation in Campus Networks,” [online]、［平成２３年１０月３１日検索］、インターネット<URL:http://www.openflowswitch.org//documents/openflow-wp-latest.pdf>
【非特許文献２】“OpenFlow Switch Specification” Version 1.1.0 Implemented(Wire Protocol 0x02),  [online]、［平成２５年１月１１日検索］、インターネット<URL:http://www.openflowswitch.org/documents/openflow-spec-v1.1.0.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記特許文献および非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明によって与えられたものである。集中管理型のアーキテクチャにおいて、制御装置が複数の転送経路からパケットを転送する経路を選択できれば、フロー制御の柔軟性を向上することができる。しかしながら、特許文献１及び２では、制御装置（オープンフローコントローラ又はルートサーバ）が転送経路の計算を行うので、パケットを転送する経路の選択肢の幅を拡げるためには、制御装置が計算する転送経路の数を増やさなければならず、転送経路を計算する制御装置の処理負荷が上昇するという問題が生じる。【００１０】
そこで、フロー制御の柔軟性を向上しつつ、転送経路を計算する装置の処理負荷の上昇を防止することが課題となる。本発明の目的は、かかる課題の解決に寄与する通信システム、制御装置、通信制御方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の第１の態様によれば、パケットを処理するための処理規則を要求するノードと、前記要求に応じて、前記処理規則を前記ノードに通知する制御装置と、前記ノードが受信したパケットの転送経路を計算する複数の経路計算装置と、を備え、前記複数の経路計算装置は、転送経路を計算するための少なくとも１つのポリシーに基づいて転送経路を計算し、計算した転送経路を前記制御装置に通知し、前記制御装置は、前記ノードが受信したパケットを転送するための処理規則を、通知された複数の転送経路のいずれかに基づいて生成する通信システムが提供される。【００１２】
本発明の第２の態様によれば、ノードからの要求に応じて、前記ノードが受信したパケットを処理するための処理規則を生成する第１の手段と、前記ノードが受信したパケットの転送経路を転送経路の計算のための少なくとも１つのポリシーに基づいて計算する複数の経路計算装置から、パケットの転送経路を受信する第２の手段と、を備え、前記第１の手段は、前記ノードが受信したパケットを転送するための処理規則を、前記第２の手段が受信した複数の転送経路のいずれかに基づいて生成する制御装置が提供される。【００１３】
本発明の第３の態様によれば、制御装置が、ノードからの要求に応じて、前記ノードが受信したパケットを処理するための処理規則を生成するステップと、前記ノードが受信したパケットの転送経路を転送経路の計算のための少なくとも１つのポリシーに基づいて計算する複数の経路計算装置から、パケットの転送経路を受信するステップと、を含み、前記制御装置は、前記ノードが受信したパケットを転送するための処理規則を、前記受信した複数の転送経路のいずれかに基づいて生成する通信制御方法が提供される。【００１４】
本発明の第４の態様によれば、パケットを処理するノードを制御する制御装置に、ノードが受信したパケットを処理するための処理規則を生成する処理と、前記ノードが受信したパケットの転送経路を転送経路の計算のための少なくとも１つのポリシーに基づいて計算する複数の経路計算装置から、パケットの転送経路を受信する処理と、前記ノードが受信したパケットを転送するための処理規則を、前記受信した複数の転送経路のいずれかに基づいて生成する処理と、を実行させるプログラムが提供される。なお、プログラムは、非一時的なコンピュータ可読記録媒体（non-transitory computer-readable storage medium）に記録されたプログラム製品として提供することができる。
【発明の効果】
【００１５】
本発明に係る通信システム、制御装置、通信制御方法およびプログラムによると、フロー制御の柔軟性を向上させつつ、経路計算を行う装置の処理負荷の上昇を防止することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態のシステム構成例を示す図である。
【図２】第１の実施形態のシステム構成例を示す図である。
【図３】第１の実施形態の制御装置の構成例を示す図である。
【図４】第１の実施形態の経路計算装置の構成例を示す図である。
【図５】第１の実施形態の転送経路の例を示す図である。
【図６】第１の実施形態のパケット通信装置の構成の例を示す図である。
【図７】第１の実施形態の経路計算装置の動作例を示すフローチャートである。
【図８】第１の実施形態の制御装置の動作例を示すフローチャートである。
【図９】第１の実施形態のシステムの動作例を示すシーケンス図である。
【図１０】第１の実施形態の経路計算装置の他の動作例を示すフローチャートである。
【図１１】第１の実施形態の制御装置の他の動作例を示すフローチャートである。
【図１２】第１の実施形態のシステムの他の動作例を示すシーケンス図である。
【図１３】第２の実施形態の経路計算装置の構成例を示す図である。
【図１４】第３の実施形態の制御装置の構成例を示す図である。
【図１５】第３の実施形態の制御装置の動作例を示すフローチャートである。
【図１６】第３の実施形態の制御装置の他の動作例を示すフローチャートである。
【図１７】処理規則の構成例を示す図である。
【発明を実施するための形態】
【００１７】
はじめに本発明の一実施形態の概要について図面を参照して説明する。本発明は、図１に示すように、通信端末３０と、サーバ（Server）４０間の通信を実現するパケット処理装置１０と、パケット処理装置１０を制御する制御装置２０と、パケットの転送経路を計算する複数の経路計算装置５０−１〜５０−３（以下、経路計算装置５０−１〜５０−３を特に区別する必要のないときは「経路計算装置５０」と表記する。）を含む構成にて実現できる。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００１８】
パケット処理装置１０は、制御装置２０から通知された処理規則に基づいて、受信したパケットを処理する。
【００１９】
制御装置２０は、経路計算装置５０から通知されたパケットの転送経路のうち実際にパケットを転送する経路を決定する手段と、パケット処理装置１０に実行させる処理内容（アクション）を求める手段として機能する。
【００２０】
経路計算装置５０は、転送経路を計算するための少なくとも１つのポリシーに基づいて転送経路を計算し、計算した転送経路を制御装置２０に通知する手段として機能する。
【００２１】
経路計算装置５０は、転送経路を計算するための少なくとも１つのポリシーに基づいてパケットの転送経路を計算する。それぞれの経路計算装置５０は、例えば、互いに異なるポリシーに基づいて、転送経路を計算する。例えば、ポリシーがポリシーＡからポリシーＥまであるとき、経路計算装置５０−１はポリシーＡに基づいて、経路計算装置５０−２はポリシーＢとポリシーＣのそれぞれに基づいて、経路計算装置５０−３はポリシーＤとポリシーＥのそれぞれに基づいて、転送経路を計算する。
【００２２】
経路計算装置５０は、例えば、ポリシーを通知する装置（図示しない）から通知されるポリシーに基づいて、パケットの転送経路を計算する。ポリシーを通知する装置は、例えば、制御装置２０であってもよい。
【００２３】
図１において、経路計算装置５０は複数あるが、少なくとも１つあればよい。少なくとも１つの経路計算装置５０が、複数のポリシー毎に、複数の転送経路を計算してもよい。
【００２４】
ポリシーを通知する装置は、例えば、それぞれの経路計算装置５０に対して、少なくとも１つのポリシーを通知する。ポリシーを通知する装置は、１つの経路計算装置５０に対して、複数のポリシーを通知してもよい。ポリシーを通知する装置は、例えば、それぞれの経路制御装置５０に通知するポリシーが互いに重複しないように、ポリシーを通知する。ポリシーを通知する装置は、例えば、ポリシーがポリシーＡからポリシーＥまであるとき、経路計算装置５０−１に対してポリシーＡを、経路計算装置５０−２に対してポリシーＢおよびポリシーＣを、経路計算装置５０−３に対してポリシーＤおよびポリシーＥを通知する。
【００２５】
ポリシーを通知する装置は、それぞれの経路計算装置５０に通知するポリシーを、経路計算装置５０にポリシーを通知する度に変更してもよい。ポリシーを通知する装置は、例えば、ポリシーＡを通知した経路計算装置５０−１に対して、次にポリシーを通知する際には、ポリシーＢおよびポリシーＣを通知してもよい。
【００２６】
ポリシーを通知する装置は、それぞれの経路計算装置５０が複数のポリシーを記憶する場合、ポリシーを通知する代わりに、転送経路を計算するポリシーを指定してもよい。経路計算装置５０は、記憶する複数のポリシーのうち、指定されたポリシーに基づいて、パケットの転送経路を計算する。
【００２７】
経路計算装置５０は、例えば、予め割り当てられたポリシーに基づいて、パケットの転送経路を計算する。経路計算装置５０に予め割り当てられたポリシーは、少なくとも１つのポリシーであればよい。それぞれの経路計算装置５０には、例えば、互いに異なるポリシーが予め割り当てられている。例えば、ポリシーがポリシーＡからポリシーＥまであるとき、経路計算装置５０−１にはポリシーＡが、経路計算装置５０−２にはポリシーＢとポリシーＣとが、経路計算装置５０−３にはポリシーＤとポリシーＥとが、それぞれ予め割り当てられている。
【００２８】
経路計算装置５０は、例えば、複数のポリシー毎に設けられてもよい。この場合、経路計算装置５０にはそれぞれ１つのポリシーが割り当てられており、経路計算装置５０は、割り当てられたポリシーに基づいて、パケットの転送経路を計算する。
【００２９】
複数のポリシーの１つは、例えば、最短経路によりパケットの転送経路を計算するポリシーである。複数のポリシーの１つは、ネットワーク中のトラフィックの増加を最小限に抑える転送経路を計算するポリシーである。複数のポリシーの１つは、例えば、特許文献１に記載のマルチホップDjikstraアルゴリズムを使用し、最短経路を含む複数の転送経路を計算するポリシーである。複数のポリシーの１つは、例えば、マルチキャストツリーとして使用するために、ある通信端末から複数の通信端末への最短経路木を転送経路として計算するポリシーである。複数のポリシーの１つは、例えば、転送ノード当たりの経路数をネットワーク全体で平均化するように、転送経路を計算するポリシーである。なお、複数のポリシーは、これらの例に限られず、パケットの転送経路を計算するために用いるポリシーであれば、どのようなポリシーであってもよい。
【００３０】
以上のような構成によれば、複数のポリシーの少なくとも１つに基づき、パケットの転送経路を計算する複数の経路計算装置を備え、複数の経路計算装置が分散して転送経路の計算を行うため、フロー制御の柔軟性を向上させつつ、経路計算を行う装置の処理負荷の上昇を防止することができる。
【００３１】
［第１の実施形態]
経路計算装置が、少なくとも１つのポリシーを通知され、通知されたポリシーに基づいてパケットの転送経路を計算する本発明の第１の実施形態について、図面を参照して説明する。図２は、本発明の第１の実施形態に係る通信システムの構成例を表した図である。図２を参照すると、通信端末３０と、サーバ（Server）４０間の通信を実現するパケット処理装置１０と、これらパケット処理装置１０を制御する制御装置２０と、互いに異なるポリシーによりパケットの転送経路を計算する経路計算装置５０を含む構成が示されている。なお、図２の例において、通信システムは経路計算装置５０を３つ含むが、経路計算装置５０の数は３つに限定されず、いくつであってもよい。
【００３２】
第１の実施形態は、本発明を、集中制御型のネットワークアーキテクチャであるオープンフロー（OpenFlow）という技術により実施する例である。なお、本発明の実施は、オープンフローでの実施に限られず、集中制御型のネットワークアーキテクチャであれば、どのような技術で実施してもよい。
【００３３】
オープンフローは、通信をエンドツーエンドのフローとして認識し、フロー単位で経路制御等を実行できる。フローとは、例えば、所定の属性（通信の宛先や送信元等に基づいて識別される属性）を有する一連の通信パケット群である。
【００３４】
本実施形態において、パケット処理装置１０は、例えば、オープンフロー技術を採用したネットワークスイッチである。制御装置２０は、例えば、オープンフロー技術を採用したネットワークスイッチを制御する情報処理装置である。
【００３５】
図３は、制御装置２０の構成例を表したブロック図である。図３を参照すると、アクション計算部２１と、ポリシーＤＢ（Database）２２と、経路決定部２３と、トポロジ管理部２４と、トポロジ送信部２５と、パケット処理装置管理部２６と、処理規則データベース（処理規則ＤＢ）２７と、処理規則管理部２８と、制御メッセージ処理部２９と、ノード通信部２０１と、経路計算装置通信部２０２と、を含む構成例が示されている。制御装置２０は、サーバ上で動作するＯＳ（Operating System）等のソフトウェアにより構成されてもよい。
【００３６】
アクション計算部２１は、それぞれの経路計算装置５０に対して、ポリシーＤＢ２２を参照して、パケットの転送経路を計算する少なくとも１つのポリシーを通知する。アクション計算部２１は、例えば、それぞれの経路計算装置５０に通知するポリシーを、ポリシーを通知する度に変更してもよい。アクション計算部２１は、例えば、それぞれの経路制御装置５０に通知するポリシーが互いに重複しないように、ポリシーを通知する。なお、第１の実施形態では、制御装置２０が、経路計算装置５０に対してポリシーを通知するが、ポリシーを通知するのは制御装置２０に限らず、制御装置２０とは別の装置であってもよい。また、制御装置２０は、経路計算装置５０に予めポリシーが割り当てられている場合、経路計算装置５０に対してポリシーを通知しない。
【００３７】
アクション計算部２１は、経路計算装置５０−１〜５０−３が計算した転送経路を、経路計算装置通信部２０２を介して受け取る。また、アクション計算部２１は、受け取った複数の転送経路のうち、実際にパケットを転送する経路について、経路決定部２３に問い合わせる。また、アクション計算部２１は、経路決定部２３から決定した転送経路が通知された場合に、決定した転送経路によりパケットを転送するための処理規則を生成する。また、アクション計算部２１は、ノード通信部２０１を介して、パケット処理装置１０に対して生成した処理規則を通知する。
【００３８】
ポリシーＤＢ２２は、パケットの転送経路を計算するための少なくとも１つのポリシーを格納する。
【００３９】
経路決定部２３は、アクション計算部２１が受け取った複数の転送経路のうち、実際にパケットを転送する経路を決定する手段として機能する。経路決定部２３が実際にパケットを転送する経路を決定する方法は、複数の転送経路から少なくとも１つを決定する方法であれば、どのような方法であってもよい。
【００４０】
トポロジ管理部２４は、ノード通信部２０１を介して収集されたパケット処理装置１０の接続関係に基づいて、ネットワークのトポロジ情報を構築する。トポロジ管理部２４は、例えば、パケット処理装置１０から、パケット処理装置１０間の接続関係に関する情報を収集し、パケット処理装置１０により構成されるネットワークのトポロジを管理する。トポロジ管理部２４は、例えば、ＬＬＤＰ（Link Layer Discovery Protocol）を用いて、ネットワークのトポロジを管理する。なお、パケット処理装置１０は、ＬＬＤＰを用いて、ネットワーク上の隣接装置との間で情報交換を行う。パケット処理装置１０は、ＬＬＤＰに基づいて隣接機器と情報交換を行うことにより、隣接機器との接続性（Reachability）と接続機器情報とを収集する。パケット処理装置１０は、収集した情報をトポロジ管理部２４に送信する。トポロジ管理部２４は、パケット処理装置１０から送信された情報に基づいて、ネットワークトポロジを把握する。
【００４１】
また、トポロジ管理部２４は、トポロジ情報が変化した場合、アクション計算部２１にトポロジ情報の変化を通知し、アクション計算部２１に既存の処理規則の再設定を行わせてもよい。トポロジ情報の変化は、例えば、パケット処理装置１０が追加又は削除された場合に生じる。トポロジ情報の変化は、例えば、パケット処理装置１０が故障等により使用できなくなった場合に生じる。トポロジ情報の変化は、例えば、パケット処理装置１０の電源が切れたときまたは入ったときに生じる。トポロジ情報の変化は、例えば、パケット処理装置１０間のケーブルの断線や接続によって生じる。
【００４２】
パケット処理装置管理部２６は、管理対象のパケット処理装置１０の能力（例えば、ポートの数や種類、サポートするアクションの種類など）を管理する。
【００４３】
処理規則データベース（処理規則ＤＢ）２７は、アクション計算部２１にて計算された結果を処理規則として記憶する。
【００４４】
処理規則管理部２８は、パケット処理装置１０に設定されている処理規則を管理する。具体的には、アクション計算部２１にて計算された結果を処理規則として処理規則ＤＢ２７に記憶するとともに、パケット処理装置１０からの処理規則削除通知などにより、パケット処理装置１０に設定された処理規則に変更が生じた場合にも処理規則ＤＢ２７の内容を更新する。
【００４５】
制御メッセージ処理部２９は、ノード通信部２０１を介して、パケット処理装置１０から処理規則の設定の要求を受け取る。制御メッセージ処理部２９は、該処理規則の要求を受けた場合に、経路計算装置通信部２０２を介して、経路計算装置５０に対して、パケットの転送経路の計算を要求する。
【００４６】
ノード通信部２０１は、パケット処理装置１０と通信を行う手段として機能する。
【００４７】
経路計算装置通信部２０２は、経路計算装置５０と通信を行う手段として機能する。
【００４８】
図４は、経路計算装置５０の構成例を表したブロック図である。図４を参照すると、経路計算装置５０は、経路計算部５１と、トポロジ管理部５２と、経路データベース（経路ＤＢ）５３と、フロー管理部５４と、制御装置通信部５５とを含む。
【００４９】
なお、経路計算装置５０と制御装置２０とは、例えば、同一のサーバ上で動作するように構成することができる。また、経路計算装置５０と制御装置２０とは、例えば、互いに異なるサーバ上で動作するように構成することができる。
【００５０】
経路計算部５１は、パケットの転送経路を計算し、計算した転送経路を制御装置２０に通知する手段として機能する。
【００５１】
経路計算部５１は、例えば、制御装置２０から通知された少なくとも１つのポリシーに基づき、パケットの転送経路を計算する。経路計算部５１は、例えば、制御装置２０から、複数のポリシーを通知された場合には、それぞれのポリシーに対してパケットの転送経路を計算する。
【００５２】
経路計算部５１は、例えば、制御装置２０からの要求に応じて、パケットの転送経路を計算する。
【００５３】
経路計算部５１は、例えば、トポロジ管理部５２からトポロジ情報の変化の通知を受けたことに応じて、パケットの転送経路を計算する。この場合、経路計算部５１は、経路ＤＢ５３が格納する既存の転送経路を参照することにより、トポロジ情報の変化により再計算が必要となる転送経路を抽出してもよい。経路計算部５１は、例えば、抽出した転送経路で転送されていたパケットに対して、新たな転送経路を計算してもよい。経路計算部５１は、フロー管理部５４を参照して、抽出した転送経路で転送されていたパケットに関する情報を取得してもよい。
【００５４】
経路計算部５１は、例えば、ユーザからの要求に応じて、パケットの転送経路を計算する。経路計算部５１は、例えば、ネットワーク内のトラフィックの異常の検知（例えば、トラフィックの集中が生じた場合）に応じて、パケットの転送経路を計算する。経路計算部５１は、例えば、パケット処理装置の処理負荷の上昇を検知したことに応じて、パケットの転送経路を計算する。経路計算部５１は、例えば、所定の間隔で、パケットの転送経路を計算する。
【００５５】
経路計算部５１は、例えば、パケットの転送経路を計算する場合に、計算に先立って、制御装置２０に対してポリシーの通知を要求してもよい。制御装置２０は、経路計算部５１からのポリシーの要求に応じて、転送経路を計算するための少なくとも１つのポリシーを通知する。
【００５６】
図５は、経路計算部５０が、制御装置２０に通知する転送経路の例である。経路計算部５１が計算する転送経路は、例えば、パケットに関する情報と該パケットを転送する経路に関する情報とを含む。パケットに関する情報は、例えば、パケットのヘッダに格納されている情報であり、例えば、宛先ＭＡＣ（Media Access Control）アドレスや送信元ＭＡＣアドレスである。なお、パケットに関する情報は、これらの例に限られず、例えば、宛先ＩＰ（Internet Protocol）アドレス、送信元ＩＰアドレス、ＴＣＰ（Transmission Control Protocol）／ＵＤＰ（User Datagram Protocol）ポートの番号など、パケットを識別できる識別子であればどのような情報であってもよい。
【００５７】
パケットを転送する経路に関する情報は、例えば、パケットが経由するパケット処理装置１０の識別子である。パケットを転送する経路に関する情報は、例えば、図５に示すように、該パケットの１ホップ目としてパケット処理装置１０−１の識別子、２ホップ目としてパケット処理装置１０−２の識別子、３ホップ目としてパケット処理装置１０−５の識別子、により構成される。なお、パケットを転送する経路に関する情報は、これらの情報に限られず、パケットの転送経路を認識できる情報であれば、どのような情報であってもよい。
【００５８】
経路計算部５１は、計算した転送経路を、制御装置通信部５５を介して制御装置２０に通知する。経路計算部５１は、制御装置２０に通知する転送経路の情報に、該経路計算装置５０の識別子を含めてもよい。このことにより、制御装置２０は、経路計算装置５０から通知された転送経路と、その転送経路を通知した経路計算装置５０とを対応付けて格納することができる。経路計算装置５０の識別子は、複数の経路計算装置５０を互いに識別できるものであれば、どのような情報を用いてもよい。
【００５９】
トポロジ管理部５２は、制御装置２０から通知されたネットワークのトポロジ情報を管理する。また、トポロジ管理部５２は、トポロジ情報が変化した場合、経路計算部５１にトポロジ情報の変化を通知し、経路計算部５１に既存の転送経路の再計算を行わせるようにしてもよい。
【００６０】
経路データベース（経路ＤＢ）５３は、例えば、経路計算部５１が計算した転送経路に関する情報を格納する。また、経路ＤＢ５３は、例えば、制御装置２０が実際にパケットを転送する経路として決定した転送経路に関する情報を格納してもよい。この場合、経路ＤＢ５３は、制御装置２０から、決定された転送経路に関する情報を受け取る。
【００６１】
フロー管理部５４は、経路計算部５１により転送経路を計算されたパケットに関する情報を格納する。フロー管理部５４が格納する情報は、例えば、経路計算部５１が転送経路を計算したパケットのヘッダに格納された情報であり、宛先ＭＡＣアドレスや送信元ＭＡＣアドレス、宛先ＩＰアドレス、送信元ＩＰアドレス、ＴＣＰ／ＵＤＰポートの番号などの全部または一部である。なお、パケットに関する情報は、これらの情報に限られず、パケットを識別できる識別子であればどのような情報であってもよい。
【００６２】
制御装置通信部５５は、制御装置２０との通信を行う手段として機能する。
【００６３】
図６は、パケット処理装置１０の構成例を表したブロック図である。図６を参照すると、パケット処理装置１０は、通信部１１と、テーブル管理部１２と、テーブルデータベース（テーブルＤＢ）１３と、転送処理部１４とを含む。パケット処理装置１０は、例えば、スイッチやルータ等である。パケット処理装置１０は、例えば、サーバ上のソフトウェアとして動作する仮想スイッチであってもよい。
【００６４】
通信部１１は、パケット処理装置１０に処理規則を設定する制御装置２０との通信を実現する手段として機能する。
【００６５】
テーブル管理部１２は、テーブルデータベース（テーブルＤＢ）１３に保持されているテーブルを管理する手段である。テーブル管理部１２は、制御装置２０から指示された処理規則をテーブルＤＢ１３に登録し、転送処理部１４から新規パケットを受信したことを通知されると、制御装置２０に対し、処理規則の設定を要求する。
【００６６】
テーブルデータベース（テーブルＤＢ）１３は、転送処理部１４が受信パケットの処理を行う際に参照するテーブルを一つ以上格納可能なデータベースによって構成される。
【００６７】
転送処理部１４は、テーブルＤＢ１３に格納されたテーブルから、受信パケットに適合するマッチフィールドを持つ処理規則を検索するテーブル検索手段と、テーブル検索手段にて検索された処理規則のアクションフィールドに示す処理内容に従ってパケット処理を行うアクション実行手段として機能する。また、転送処理部１４は、受信パケットに適合するマッチフィールドを持つ処理規則が見つからなかった場合は、その旨をテーブル管理部１２に通知する。
【００６８】
なお、図３、図４、図６に示した制御装置２０、経路計算装置５０およびパケット処理装置１０の各部（処理手段）、は、これらの装置を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００６９】
続いて、本実施形態における経路計算装置５０の動作例について、図面を参照して説明する。図７は、本実施形態に係る経路計算装置５０の動作を説明するためのフローチャートである。なお、図７は例示であり、本発明の経路計算装置５０の動作は図７のフローチャートに限定されない。図７の例では、パケット処理装置１０−１〜１０−５には、初期状態において、通信端末３０とサーバ（Server）４０間の通信を実現する処理規則が設定されていないものとする。
【００７０】
図７を参照すると、経路計算部５１が、制御装置２０から、パケットの転送経路を計算するための少なくとも１つのポリシーを受け取る（図７のステップＳ１０１）。
【００７１】
続いて、経路計算部５１が、制御装置２０から、パケットの転送経路の計算の要求を受ける（図７のステップＳ１０２）。
【００７２】
続いて、経路計算部５１は、該要求に応じて、制御装置２０から通知された少なくとも１つのポリシーに基づいて、パケットを転送するための転送経路を計算する（図７のステップＳ１０３）。経路計算装置５０−１の経路計算部５１は、例えば、パケット処理装置１０−２を介してパケットを転送する第１の転送経路を計算する。経路計算装置５０−２の経路計算部５１は、例えば、パケット処理装置１０−３を介してパケットを転送する第２の転送経路を計算する。経路計算装置５０−３の経路計算部５１は、例えば、パケット処理装置１０−４を介してパケットを転送する第３の転送経路を計算する。なお、それぞれのパケット処理装置５０は、複数のポリシーの各々に基づいてパケットを転送する転送経路を計算してもよく、その場合、それぞれのパケット処理装置５０は、複数の転送経路を計算する。
【００７３】
その後、経路計算部５１は、制御装置通信部５５を介して、制御装置２０に計算した転送経路を通知する（図７のステップＳ１０４）。
【００７４】
続いて、本実施形態における制御装置２０の動作例について、図面を参照して説明する。図８は、本実施形態に係る制御装置２０の動作を説明するためのフローチャートである。なお、図８は例示であり、本発明の制御装置２０の動作は図８のフローチャートに限定されない。図８の例では、図７の例と同様に、パケット処理装置１０−１〜１０−５には、初期状態において、通信端末３０とサーバ（Server）４０間の通信を実現する処理規則が設定されていないものとする。
【００７５】
図８を参照すると、制御装置２０の制御メッセージ処理部２９は、ノード通信部２０１を介して、パケット処理装置１０−１からの処理規則の設定の要求を受け取る（図８のステップＳ２０１；Packet-In）。
【００７６】
制御メッセージ処理部２９は、経路計算装置通信部２２を介して、経路計算装置５０に処理規則の設定を要求する（図８のステップＳ２０２）。
【００７７】
アクション計算部２１は、経路計算装置５０−１〜５０−３のそれぞれから、パケットの転送経路を受け取る（図８のステップＳ２０３）。アクション計算部２１は、例えば、パケット処理装置１０−２を介してパケットを転送する第１の転送経路と、パケット処理装置１０−３を介してパケットを転送する第２の転送経路と、パケット処理装置１０−４を介してパケットを転送する第３の転送経路とを受け取る。
【００７８】
アクション計算部２１は、受け取った複数の転送経路のうち、実際にパケットを転送する経路について、経路決定部２３に対して問い合わせる（図８のステップＳ２０４）。
【００７９】
経路決定部２３は、複数の転送経路のうち、実際にパケットを転送する経路を決定する（図８のステップＳ２０５）。経路決定部２３は、例えば、パケット処理装置１０−２を介してパケットを転送する第１の転送経路を、実際にパケットを転送する経路として決定する。
【００８０】
アクション計算部２１は、計算した複数の転送経路のうち、経路決定部２３が決定した転送経路によりパケットを転送するために、パケット処理装置１０に実行させる処理規則を求める（図８のステップＳ２０６）。アクション計算部２１は、例えば、第１の転送経路によりパケットを転送するために、パケット処理装置１０−１、１０−２及び１０−５に実行させる処理規則を求める。
【００８１】
その後、アクション計算部２１は、求めた処理規則を、ノード通信部２０１を介して、パケット処理装置１０に通知する（図８のステップＳ２０７）。アクション計算部２１は、例えば、計算した処理規則を、ノード通信部２０１を介して、パケット処理装置１０−１、１０−２及び１０−５に通知する。
【００８２】
続いて、本実施形態の通信システムの動作例について図面を参照して説明する。図９は、本実施形態に係る通信システムの動作を説明するためのシーケンス図である。なお、図９は例示であり、本発明の動作は図９のシーケンス図に限定されない。また、図９の例では、図７及び図８の例と同様に、パケット処理装置１０−１〜１０−５には、初期状態において、通信端末３０とサーバ（Server）４０間の通信を実現する処理規則が設定されていないものとする。
【００８３】
図９を参照すると、まず、通信端末３０がサーバ（Server）４０宛てのユーザパケットを送信する（図９のステップＳ３０１）。
【００８４】
ユーザパケットを受信したパケット処理装置１０−１は、テーブルＤＢ１３から受信パケットに適合するマッチフィールドを持つ処理規則を検索するが、見つからないため、制御装置２０に対し、受信パケットを添えて処理規則の設定を要求する（図９のステップＳ３０２；Packet-In）。
【００８５】
前記処理規則の設定要求を受けた制御装置２０は、経路計算装置５０−１〜５０−３に対して、少なくとも１つのポリシーを通知する（図９のステップＳ３０３）。なお、制御装置２０が、経路計算装置５０−１〜５０−３にポリシーを通知するタイミングは、処理規則の設定の要求を受けた後である必要はなく、例えば予め通知していてもよい。
【００８６】
続いて、経路計算装置５０−１〜５０−３に対して、パケットの転送経路の計算を要求する（図９のステップＳ３０４）。
【００８７】
経路計算装置５０−１１〜５０−３のそれぞれは、該計算要求に応じて、パケットを通信端末３０からサーバ（Server）４０に転送する経路を計算し、計算した転送経路を制御装置２０に通知する（図９のステップＳ３０５）。
【００８８】
パケットの転送経路の通知を受けた制御装置２０は、通知された複数の転送経路のうち実際にパケットを転送する経路を決定し、決定した転送経路によりパケットを転送するための処理規則を作成し、各パケット処理装置１０に設定する（図９のステップＳ３０６；ＦｌｏｗＭｏｄ）。制御装置２０は、例えば、通信端末３０がサーバ（Server）４０宛てのパケットを、パケット処理装置１０−２を介して転送するための処理規則を、パケット処理装置１０−１、１０−２及び１０−５に設定する。
【００８９】
また、制御装置２０は、パケット処理装置１０−１に対し、ステップＳ３０２で受信したパケットを戻し、パケット処理装置１０−２に転送するよう指示する（図９のステップＳ３０７；Packet-Out）。
【００９０】
前記指示に基づいて、パケット処理装置１０−１が、パケット処理装置１０−２にパケットを転送すると、パケット処理装置１０−２、１０−５は、それぞれ設定された処理規則に従って、パケットをサーバ（Server）４０に転送する（図９のステップＳ３０８）。
【００９１】
その後、パケット処理装置１０−１、１０−２及び１０−５は、それぞれ設定された処理規則に従って、通信端末３０とサーバ（Server）４０間で送受信されるユーザパケットを転送する（図９のステップＳ３０９、Ｓ３１０）。
【００９２】
続いて、本実施形態における経路計算装置５０の他の動作例について、図面を参照して説明する。図１０は、本実施形態に係る経路計算装置５０の他の動作例を説明するためのフローチャートである。なお、図１０は例示であり、本発明の経路計算装置５０の動作は図１０のフローチャートに限定されない。
【００９３】
図１０の例は、経路計算装置５０が、ネットワークのトポロジ情報が変化したことに応じて、パケットの転送経路の再設定を行う場合の例であり、パケット処理装置１０−１〜１０−５には、初期状態において、すでに処理規則が設定されているものとする。図１０の例では、通信端末３０が送信したサーバ（Server）４０宛のパケットについて、パケット処理装置１０−２を介して転送するための処理規則が、パケット処理装置１０−１、１０−２及び１０−５にそれぞれ設定されているものとする。
【００９４】
図１０を参照すると、経路計算装置５０のトポロジ管理部５２は、ネットワークのトポロジ情報が変化した場合、経路計算部５１に対して、トポロジ情報の変化を通知する（図１０のステップＳ４０１）。トポロジ管理部５２は、例えば、パケット処理装置１０−２が利用できなくなった場合に、経路計算部５１に対して、パケット処理装置１０−２の削除というトポロジ情報の変化を通知する。
【００９５】
通知を受けた経路計算部５１は、通知されたトポロジ情報の変化と経路ＤＢ５３に格納された既存の転送経路とに基づいて、変更が必要な転送経路を抽出する（図１０のステップＳ４０２）。経路計算部５１は、例えば、通信端末３０が送信したサーバ（Server）４０宛のパケットの転送経路を、変更が必要な転送経路として抽出する。
【００９６】
その後、経路計算部５１は、抽出した転送経路で転送されていたパケットに対して、新たな転送経路を計算する（図１０のステップＳ４０３）。なお、経路計算部５１は、転送経路を計算する前に、制御装置２０に、少なくとも１つのポリシーの通知を要求してもよい。この場合、経路計算部５１は、新たに通知された少なくとも１つのポリシーに基づいて、転送経路を計算する。経路計算部５１は、フロー管理部５４を参照して、抽出した転送経路で転送されていたパケットに関する情報を取得してもよい。経路計算装置５０−１の経路計算部５１は、例えば、パケット処理装置１０−３を介してパケットを転送する第１の転送経路を計算する。また、経路計算装置５０−２の経路計算部５１は、例えば、パケット処理装置１０−３を介してパケットを転送する第２の転送経路を計算する。また、経路計算装置５０−３の経路計算部５１は、例えば、パケット処理装置１０−４を介してパケットを転送する第３の転送経路を計算する。
【００９７】
その後、経路計算部５１は、制御装置通信部５５を介して、制御装置２０に計算した転送経路を通知する（図１０のステップＳ４０４）。
【００９８】
続いて、本実施形態における制御装置２０の他の動作例について、図面を参照して説明する。図１１は、本実施形態に係る制御装置２０の他の動作例を説明するためのフローチャートである。なお、図１１は例示であり、本発明の制御装置２０の動作は図１１のフローチャートに限定されない。
【００９９】
図１１の例は、図１０の例と同様に、ネットワークのトポロジ情報が変化したことに応じて、パケットの転送経路の再設定を行う場合の例であり、パケット処理装置１０−１〜１０−５には、初期状態において、すでに処理規則が設定されているものとする。
【０１００】
図１１を参照すると、制御装置２０のアクション計算部２１は、経路計算装置５０の各々から、パケットの転送経路を受け取る（図１１のステップＳ５０１）。
【０１０１】
続いて、アクション計算部２１は、通知された複数の転送経路のうち実際にパケットを転送する経路について、経路決定部２３に対して問い合わせる（図１１のステップＳ５０２）。
【０１０２】
経路決定部２３は、複数の転送経路のうち、実際にパケットを転送する経路を決定する（図１１のステップＳ５０３）。経路決定部２３は、例えば、パケット処理装置１０−３を介してパケットを転送する転送経路を、実際にパケットを転送する経路として決定する。
【０１０３】
アクション計算部２１は、経路決定部２３が決定した転送経路によりパケットを転送するために、パケット処理装置１０に実行させる処理規則を生成する（図１１のステップＳ５０４）。アクション計算部２１は、例えば、第１及び第２の転送経路によりパケットを転送するために、パケット処理装置１０−１、１０−３及び１０−５に実行させる処理規則を求める。
【０１０４】
その後、アクション計算部２１は、求めた処理規則を、ノード通信部２０１を介して、パケット処理装置１０に通知する（図１１のステップＳ５０５）。アクション計算部２１は、例えば、計算した処理規則を、ノード通信部２０１を介して、パケット処理装置１０−１、１０−３及び１０−５に通知する。
【０１０５】
続いて、本実施形態の通信システムの他の動作例について図面を参照して説明する。図１２は、本実施形態に係る通信システムの動作を説明するためのシーケンス図である。なお、図１２は例示であり、本発明の動作は図１２のシーケンス図に限定されない。
【０１０６】
また、図１２の例では、図１０及び図１１の例と同様に、経路計算装置５０が、ネットワークのトポロジ情報が変化したことに応じて、パケットの転送経路の再設定を行う場合の例であり、パケット処理装置１０−１〜１０−５には、初期状態において、すでに処理規則が設定されているものとする。
【０１０７】
図１２を参照すると、まず、パケット処理装置１０が、トポロジ情報を、制御装置２０を介して、経路計算装置５０に通知する（図１２のステップＳ６０１）。なお、パケット処理装置１０は、トポロジ情報を、経路計算装置５０に直接通知してもよい。
【０１０８】
ネットワークのトポロジ情報が変化した場合、経路計算装置５０は、パケットの転送経路を再計算し、再計算した転送経路を制御装置２０に通知する（図１２のステップＳ６０２）。経路計算装置５０−１は、例えば、パケット処理装置１０−２の削除というトポロジ情報の変化に応じて、通信端末３０が送信するサーバ（Server）４０宛のパケットについて、パケット処理装置１０−２を介する転送経路から、パケット処理装置１０−３を介する第１の転送経路へと再計算し、該第１の転送経路を制御装置２０に通知する。同様に、経路計算装置５０−２は、例えば、パケット処理装置１０−２を介する転送経路から、パケット処理装置１０−３を介する第２の転送経路へと再計算し、該第２の転送経路を制御装置２０に通知する。経路計算装置５０−３は、例えば、パケット処理装置１０−２を介する転送経路から、パケット処理装置１０−４を介する第３の転送経路へと再計算し、該第３の転送経路を制御装置２０に通知する。
【０１０９】
再計算された転送経路を受け取った制御装置２０は、実際にパケットを転送する経路を決定し、該決定した転送経路に対応する処理規則を作成し、パケット処理装置１０に通知する（図１２のステップＳ６０３；FlowMod）。制御装置２０は、パケット処理装置１０−３を介する転送経路を、実際にパケットを転送する経路として決定し、パケット処理装置１０−１、１０−３及び１０−５に設定する。
【０１１０】
通信端末３０がサーバ（Server）４０宛てのユーザパケットを送信する（図１２のステップＳ６０４）。
【０１１１】
ユーザパケットを受信したパケット処理装置１０−１は、処理規則ＤＢ１３から受信パケットに適合するマッチフィールドを持つ処理規則を検索し、制御装置２０に設定された処理規則に従って、パケット処理装置１０−３にパケットを転送する。パケット処理装置１０−１が、パケット処理装置１０−３にパケットを転送すると、パケット処理装置１０−３、１０−５は、それぞれ設定された処理規則に従って、パケットをサーバ（Server）４０に転送する（図１２のステップＳ６０５）。
【０１１２】
以上のような構成によれば、少なくとも１つのポリシーに基づき、パケットの転送経路を計算する複数の経路計算装置を備え、複数の経路計算装置が分散して転送経路の計算を行うため、フロー制御の柔軟性を向上させつつ、経路計算を行う装置の処理負荷の上昇を防止することができる。また、経路計算装置がパケットの転送経路を計算するため、処理規則を生成する制御装置は経路計算を行う必要がなく、該制御装置の処理負荷の上昇を防止することができる。
【０１１３】
［第２の実施形態］
経路計算装置が、複数のポリシーを記憶しており、記憶するポリシーのうち指定されたポリシーによりパケットの転送経路を計算する本発明の第２の実施形態について、図面を参照して説明する。なお、第１の実施形態と同等である構成については、説明を省略する。
【０１１４】
制御装置２０およびパケット処理装置１０は、本発明の第１の実施形態の構成と同様である。
【０１１５】
制御装置２０のアクション計算部２１は、それぞれの経路計算装置５０に対して、ポリシーＤＢ２２を参照して、パケットの転送経路を計算する複数のポリシーのうち、少なくとも１つのポリシーを指定する。なお、第２の実施形態では、制御装置２０が、経路計算装置５０に対してポリシーを指定するが、ポリシーを通知するのは制御装置２０に限らず、制御装置２０とは別の装置であってもよい。アクション計算部２１は、例えば、それぞれの経路制御装置５０に通知するポリシーが互いに重複しないように、ポリシーを通知する。アクション計算部２１は、例えば、それぞれの経路計算装置５０に指定するポリシーを、ポリシーを通知する度に変更してもよい。
【０１１６】
図１３は、本発明の第２の実施形態における、経路計算装置５０の構成例を示す図である。図１３を参照すると、経路計算装置５０は、ポリシーデータベース（ポリシーＤＢ）５６を有する。
【０１１７】
なお、経路計算装置５０は、上述した第１の実施形態と同様の手段として機能する、経路計算部５１と、トポロジ管理部５２と、経路データベース（経路ＤＢ）５３と、フロー管理部５４と、制御装置通信部５５とを含む。
【０１１８】
ポリシーＤＢ５６は、パケットの転送経路を計算するための複数のポリシーを格納する。ポリシーＤＢ５６は、例えば、制御装置２０から、定期的に複数のポリシーの通知を受けてもよい。
【０１１９】
経路計算部５１は、ポリシーＤＢ５６を参照し、制御装置２０から指定されるポリシーに基づいて、パケットの転送経路を計算する。経路計算部５１は、例えば、制御装置２０から、複数のポリシーを指定された場合、指定されたそれぞれのポリシーに対して、パケットの転送経路を計算する。
【０１２０】
経路計算部５１は、例えば、制御装置２０からの要求に応じて、パケットの転送経路を計算する。経路計算部５１は、例えば、トポロジ管理部５２からトポロジ情報の変化の通知を受けたことに応じて、パケットの転送経路を計算する。
【０１２１】
経路計算部５１は、例えば、パケットの転送経路を計算する場合に、計算に先立って、制御装置２０に対してポリシーの指定を要求してもよい。制御装置２０は、経路計算部５１からのポリシーの要求に応じて、転送経路を計算するための少なくとも１つのポリシーを指定する。
【０１２２】
制御装置２０、経路計算装置５０および通信システムの動作例は、第１の実施形態の動作例と同様である。なお、制御装置２０は、それぞれの経路計算装置５０に対して、パケットの転送経路を計算する複数のポリシーのうち、少なくとも１つのポリシーを指定する。
【０１２３】
以上のような構成によれば、複数のポリシーの少なくとも１つに基づき、パケットの転送経路を計算する複数の経路計算装置を備え、複数の経路計算装置が分散して転送経路の計算を行うため、フロー制御の柔軟性を向上させつつ、経路計算を行う装置の処理負荷の上昇を防止することができる。また、経路計算装置がパケットの転送経路を計算するため、処理規則を生成する制御装置は経路計算を行う必要がなく、該制御装置の処理負荷の上昇を防止することができる。
【０１２４】
［第３の実施形態］
複数の経路計算装置から通知された転送経路のうち、所定の条件に基づいて、パケットを転送する経路を決定する本発明の第３の実施形態について、図面を参照して説明する。第１および第２の実施形態との相違点は、制御装置の構成である。その他は、第１および第２の実施形態と同等であるため、以下その相違点を中心に説明する。
【０１２５】
図１４は、制御装置２０の構成例を表したブロック図である。図１４を参照すると、経路決定部２３が、衝突判定部２３１と、経路データベース（経路ＤＢ）２３２を有する。
【０１２６】
なお、制御装置２０は、上述した第１および第２の実施形態と同様の手段として機能する、アクション計算部２１と、経路計算装置通信部２０２と、トポロジ管理部２４と、パケット処理装置管理部２６と、処理規則データベース（処理規則ＤＢ）２７と、処理規則管理部２８と、制御メッセージ処理部２９と、ノード通信部２０１とを含む。
【０１２７】
衝突判定部２３１は、アクション計算部２１が受け取った複数の転送経路のうち、実際にパケットを転送する経路を決定する手段として機能する。衝突判定部２３１は、実際にパケットを転送する経路を決定する場合に、経路ＤＢ２３２に格納される既存の転送経路に関する情報を参照してもよい。
【０１２８】
衝突判定部２３１は、例えば、すでに設定済みの転送経路と重複しない転送経路を選択する。衝突判定部２３１は、既存の転送経路と重複しない転送経路を選択するようにして、特定のリンク及び特定のノードにトラヒックが集中することを防ぐことができる。
【０１２９】
衝突判定部２３１は、例えば、計算された複数の転送経路において重複する転送経路が存在する場合に、該重複する転送経路を優先して選択してもよい。衝突判定部２３１が重複する転送経路を選択することで、複数のポリシーを満たす転送経路によりパケットを転送することができる。
【０１３０】
衝突判定部２３１は、例えば、計算された複数の転送経路のうち、最も早く計算された転送経路を選択してもよい。衝突判定部２３１が最も早く計算された転送経路を選択することで、パケットの転送経路の設定に要する時間を短縮することができる。
【０１３１】
衝突判定部２３１は、例えば、経路計算装置５０毎に優先度を設け、優先度の高い経路計算装置５０が計算した転送経路を選択する。
【０１３２】
なお、制衝突判定部２３１は、複数の転送経路から少なくとも１つを決定する方法であれば、どのような方法で実際にパケットを転送する経路を決定してもよい。
【０１３３】
経路データベース（経路ＤＢ）２３２は、衝突判定部２３１により実際にパケットを転送する経路として決定された転送経路に関する情報を格納する。
【０１３４】
続いて、本発明の第３の実施形態における制御装置２０の動作例について、図面を参照して説明する。図１５は、第３の実施形態に係る制御装置２０の動作を説明するためのフローチャートである。なお、図１５は例示であり、第３の実施形態に係る制御装置２０の動作は図１５のフローチャートに限定されない。図１５の例では、パケット処理装置１０−１〜１０−５には、初期状態において、通信端末３０とサーバ（Server）４０間の通信を実現する処理規則が設定されていないものとする。
【０１３５】
図１５を参照すると、制御装置２０の制御メッセージ処理部２８は、ノード通信部２０１を介して、パケット処理装置１０−１からの処理規則の設定の要求を受け取る（図１５のステップＳ９０１；Packet-In）。
【０１３６】
制御メッセージ処理部２９は、経路計算装置通信部２２を介して、経路計算装置５０に処理規則の設定の要求を通知する（図１５のステップＳ９０２）。
【０１３７】
アクション計算部２１は、経路計算装置５０−１〜５０−３のそれぞれから、パケットの転送経路を受け取る（図１５のステップＳ９０３）。アクション計算部２１は、例えば、パケット処理装置１０−２を介してパケットを転送する第１の転送経路と、パケット処理装置１０−３を介してパケットを転送する第２の転送経路と、パケット処理装置１０−４を介してパケットを転送する第３の転送経路とを受け取る。
【０１３８】
アクション計算部２１は、受け取った複数の転送経路のうち、実際にパケットを転送する経路について、経路決定部２３に対して問い合わせる（図１５のステップＳ９０４）。
【０１３９】
経路決定部２３の衝突判定部２３１は、所定の条件に基づいて、アクション計算部２１が受信した複数の転送経路のうち、実際にパケットを転送する経路を決定する（図１５のステップＳ９０４）。衝突判定部２３１は、例えば、計算された複数の転送経路において重複する転送経路が存在する場合に、該重複する転送経路を優先して選択する。衝突判定部２３１は、例えば、パケット処理装置１０−２を介してパケットを転送する第１の転送経路を、実際にパケットを転送する経路として決定する。
【０１４０】
アクション計算部２１は、計算した複数の転送経路のうち、経路決定部２３が決定した転送経路によりパケットを転送するために、パケット処理装置１０に実行させる処理規則を求める（図１５のステップＳ９０５）。アクション計算部２１は、例えば、第１の転送経路によりパケットを転送するために、パケット処理装置１０−１、１０−２及び１０−５に実行させる処理規則を求める。
【０１４１】
その後、アクション計算部２１は、求めた処理規則を、ノード通信部２０１を介して、パケット処理装置１０に通知する（図１５のステップＳ９０６）。アクション計算部２１は、例えば、計算した処理規則を、ノード通信部２０１を介して、パケット処理装置１０−１、１０−２及び１０−５に通知する。
【０１４２】
第３の実施形態の経路計算装置５０および通信システムの動作例は、第１および２の実施形態における、経路計算装置５０および通信システムの動作例と同様である。
【０１４３】
続いて、本発明の第３の実施形態における制御装置２０の他の動作例について、図面を参照して説明する。図１６は、第３の実施形態に係る制御装置２０の他の動作例を説明するためのフローチャートである。なお、図１６は例示であり、第３の実施形態に係る制御装置２０の動作は図１６のフローチャートに限定されない。図１６の例は、ネットワークのトポロジ情報が変化したことに応じて、パケットの転送経路の再設定を行う場合の例であり、パケット処理装置１０−１〜１０−５には、初期状態において、すでに処理規則が設定されているものとする。
【０１４４】
図１６を参照すると、制御装置２０のアクション計算部２１は、経路計算装置５０の各々から、パケットの転送経路を受け取る（図１６のステップＳ１００１）。
【０１４５】
続いて、アクション計算部２１は、通知された複数の転送経路のうち実際にパケットを転送する経路について、経路決定部２３の衝突判定部２３１に対して問い合わせる（図１６のステップＳ１００２）。
【０１４６】
経路決定部２３の衝突判定部２３１は、複数の転送経路のうち、実際にパケットを転送する経路を決定する（図１６のステップＳ１００３）。衝突判定部２３１は、例えば、パケット処理装置１０−３を介してパケットを転送する転送経路を、実際にパケットを転送する経路として決定する。
【０１４７】
アクション計算部２１は、衝突判定部２３１が決定した転送経路によりパケットを転送するために、パケット処理装置１０に実行させる処理規則を求める（図１６のステップＳ１００４）。アクション計算部２１は、例えば、第１及び第２の転送経路によりパケットを転送するために、パケット処理装置１０−１、１０−３及び１０−５に実行させる処理規則を求める。
【０１４８】
その後、アクション計算部２１は、求めた処理規則を、ノード通信部２０１を介して、パケット処理装置１０に通知する（図１６のステップＳ１００５）。アクション計算部２１は、例えば、計算した処理規則を、ノード通信部２０１を介して、パケット処理装置１０−１、１０−３及び１０−５に通知する。
【０１４９】
第３の実施形態の経路計算装置５０および通信システムの他の動作例は、第１および２の実施形態における、経路計算装置５０および通信システムの他の動作例と同様である。
【０１５０】
以上のような構成によれば、制御装置が、所定の条件に基づいて、複数の経路計算装置から通知された転送経路のうちパケットを転送する経路を決定するため、パケットの転送経路を柔軟に決定することができ、フロー制御の柔軟性を向上させることができる。
【０１５１】
なお、本発明において、下記の形態が可能である。
［形態１］
パケットを処理するための処理規則を要求するノードと、
前記要求に応じて、前記処理規則を前記ノードに通知する制御装置と、
前記ノードが受信したパケットの転送経路を計算する複数の経路計算装置と、を備え、  それぞれの前記経路計算装置は、転送経路を計算するための少なくとも１つのポリシーに基づいて転送経路を計算し、計算した転送経路を前記制御装置に通知し、
前記制御装置は、通知された複数の転送経路のいずれかにより前記ノードが受信したパケットを転送するための処理規則を生成すること
を特徴とする通信システム。
［形態２］
前記経路計算装置は、前記制御装置から受け取るパケットの転送経路の要求に応じて、前記ノードが受信したパケットの転送経路を計算すること
を特徴とする形態１に記載の通信システム。
［形態３］
前記経路計算装置は、前記制御装置が管理する複数のノードの接続状況が変化したことに応じて、前記ノードが受信したパケットの転送経路を再計算すること
を特徴とする形態１又は２に記載の通信システム。
［形態４］
前記制御装置は、所定の条件に基づいて、前記通知された複数の転送経路から前記ノードが受信したパケットを転送するための転送経路を決定すること
を特徴とする形態１乃至３のいずれかに記載の通信システム。
［形態５］
前記制御装置は、前記通知された複数の転送経路のうち重複する転送経路を優先して、前記受信したパケットを転送するための転送経路として決定すること
を特徴とする形態４に記載の通信システム。
［形態６］
前記制御措置は、前記計算した複数の転送経路のうち、他のパケットの転送経路としてすでに決定された転送経路と重複する転送経路以外を優先して、前記ノードが受信したパケットを転送するための転送経路として決定すること
を特徴とする形態４又は５に記載の通信システム。
［形態７］
ノードからの要求に応じて、前記ノードが受信したパケットを処理するための処理規則を生成する第１の手段と、
前記ノードが受信したパケットの転送経路を、転送経路を計算するための少なくとも１つのポリシーに基づいて計算する複数の経路計算装置のそれぞれから、パケットの転送経路を受信する第２の手段と、を有し、
前記第１の手段は、前記第２の手段が受信した複数の転送経路のいずれかにより前記ノードが受信したパケットを転送するための処理規則を生成すること
を特徴とする制御装置。
［形態８］
前記第２の手段が受信した複数の転送経路から、所定の条件に基づいて、前記ノードが受信したパケットを転送するための転送経路を決定する第３の手段を有すること
を特徴とする形態７に記載の制御装置。
［形態９］
前記第３の手段は、前記受信した複数の転送経路のうち重複する転送経路を優先して、前記ノードが受信したパケットを転送するための転送経路を決定すること
を特徴とする形態８に記載の制御装置。
［形態１０］
前記第３の手段は、前記第２の手段が受信した複数の転送経路のうち、他のパケットの転送経路としてすでに決定された転送経路と重複する転送経路以外を優先して、前記ノードが受信したパケットを転送するための転送経路として決定すること
を特徴とする形態８又は９に記載の制御装置。
［形態１１］
管理するノードの接続状況が変化したことに応じて、前記複数の経路計算装置に対して、前記ノードが受信したパケットの転送経路の再計算を指示する第４の手段を有し、
前記第２の手段は、前記複数の経路計算装置の各々から、前記第４の手段による指示に応じて再計算された転送経路を受信し、
前記第１の手段は、前記第２の手段が受信した再計算された複数の転送経路のいずれかにより前記ノードが受信したパケットを転送するための処理規則を生成すること
を特徴とする形態７乃至１０のいずれかに記載の制御装置。
［形態１２］
ノードからの要求に応じて、ノードが受信したパケットを処理するための処理規則を生成するステップと、
前記ノードが受信したパケットの転送経路を、転送経路を計算するための少なくとも１つのポリシーに基づいて計算する複数の経路計算装置のそれぞれから、パケットの転送経路を受信するステップと、
前記受信した複数の転送経路のいずれかにより前記ノードが受信したパケットを転送するための処理規則を生成するステップと
を含むことを特徴とする通信制御方法。
［形態１３］
前記受信した複数の転送経路から、所定の条件に基づいて、前記ノードが受信したパケットを転送するための転送経路を決定するステップを含むことを特徴とする形態１２に記載の通信制御方法。
［形態１４］
前記受信した複数の転送経路のうち重複する転送経路を優先して、前記ノードが受信したパケットを転送するための転送経路を決定するステップを含むことを特徴とする形態１３に記載の通信制御方法。
［形態１５］
前記受信した複数の転送経路のうち、他のパケットの転送経路としてすでに決定された転送経路と重複する転送経路以外を優先して、前記ノードが受信したパケットを転送するための転送経路として決定するステップを含むことを特徴とする形態１３又は１４に記載の通信制御方法。
［形態１６］
管理するノードの接続状況が変化したことに応じて、前記複数の経路計算装置に対して、前記ノードが受信したパケットの転送経路の再計算を指示するステップと、
前記複数の経路計算装置の各々から、前記指示に応じて再計算された転送経路を受信するステップと、
前記受信した再計算された複数の転送経路のいずれかにより前記ノードが受信したパケットを転送するための処理規則を生成するステップと
を含むことを特徴とする形態１２乃至１５のいずれかに記載の通信制御方法。
［形態１７］
パケットを処理するノードを制御する制御装置に、
ノードが受信したパケットを処理するための処理規則を生成する処理と、
前記ノードが受信したパケットの転送経路を、転送経路を計算するための少なくとも１つのポリシーに基づいて計算する複数の経路計算装置のそれぞれから、パケットの転送経路を受信する処理と、
前記受信した複数の転送経路のいずれかにより前記ノードが受信したパケットを転送するための処理規則を生成する処理と
を実行させることを特徴とするプログラム。
［形態１８］
前記受信した複数の転送経路から、所定の条件に基づいて、前記ノードが受信したパケットを転送するための転送経路を決定する処理を含むことを特徴とする形態１７に記載のプログラム。
［形態１９］
前記受信した複数の転送経路のうち重複する転送経路を優先して、前記ノードが受信したパケットを転送するための転送経路を決定する処理を含むことを特徴とする形態１８に記載のプログラム。
［形態２０］
前記受信した複数の転送経路のうち、他のパケットの転送経路としてすでに決定された転送経路と重複する転送経路以外を優先して、前記ノードが受信したパケットを転送するための転送経路として決定する処理を含むことを特徴とする形態１８又は１９に記載のプログラム。
［形態２１］
管理するノードの接続状況が変化したことに応じて、前記複数の経路計算装置に対して、前記ノードが受信したパケットの転送経路の再計算を指示する処理と、
前記複数の経路計算装置の各々から、前記指示に応じて再計算された転送経路を受信する処理と、
前記受信した再計算された複数の転送経路のいずれかにより前記ノードが受信したパケットを転送するための処理規則を生成する処理と、
を含むことを特徴とする形態１７乃至２０のいずれかに記載のプログラム。
なお、上記の特許文献及び非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１５２】
１０、１０−１、１０−２、１０−３、１０−４、１０−５    パケット処理装置
１１    通信部
１２    テーブル管理部
１３    テーブルデータベース（テーブルＤＢ）
１４    転送処理部１４
２０    制御装置
２１    アクション計算部
２２    ポリシーデータベース（ポリシーＤＢ）
２３    経路決定部
２４    トポロジ管理部
２５    トポロジ送信部
２６    パケット処理装置管理部
２７    処理規則データベース（処理規則ＤＢ）
２８    処理規則管理部
２９    制御メッセージ処理部
３０    通信端末
４０    サーバ（Server）
５０、５０−１、５０−２、５０−３    経路計算装置
５１    経路計算部
５２    トポロジ管理部
５３    経路データベース（経路ＤＢ）
５４    フロー管理部
５５    制御装置通信部
２０１    ノード通信部
２０２    経路計算装置通信部
２３１    衝突判定部
２３２    経路データベース（経路ＤＢ）
【図１】
2014123194.tif 000003
【図２】
2014123194.tif 000004
【図３】
2014123194.tif 000005
【図４】
2014123194.tif 000006
【図５】
2014123194.tif 000007
【図６】
2014123194.tif 000008
【図７】
2014123194.tif 000009
【図８】
2014123194.tif 000010
【図９】
2014123194.tif 000011
【図１０】
2014123194.tif 000012
【図１１】
2014123194.tif 000013
【図１２】
2014123194.tif 000014
【図１３】
2014123194.tif 000015
【図１４】
2014123194.tif 000016
【図１５】
2014123194.tif 000017
【図１６】
2014123194.tif 000018
【図１７】
2014123194.tif 000019
【国際調査報告】
2014123194.tif 000020
2014123194.tif 000021
2014123194.tif 000022