<第1の実施形態>
本発明の第1の実施形態について、図面を参照して説明する。
本発明の第1の実施形態は、通信データのフローの転送経路を冗長化する場合に、冗長経路を、他の通信データのフローに対応する転送経路から選択する実施形態である。ここで、フローとは、所定の属性(通信の宛先や送信元等の情報や、それらの情報の組み合わせに基づいて識別される属性)を有する一連の通信パケット群である。
図1は、本発明の第1の実施形態における通信システムの構成例を示す図である。図1に示すように、通信システムは、制御装置1と、ノード2−1乃至2−5(特に分ける必要が無い場合は、「ノード2」と記載する)と、を含む。
制御装置1は、通信データのフローの転送経路を決定する。ノード2は、当該制御装置が決定した転送経路に沿って、通信データのフローを転送する。
図2は、本発明の第1の実施形態における制御装置1の構成例を示す図である。制御装置1は、記憶部11と、制御部12とを備える。
記憶部11は、通信データのフローの転送経路を記憶する。転送経路は、例えば、後述する図3の「Hop Information」のような形式で示される。
図3は、本発明の第1の実施形態における、記憶部11に記憶される経路管理テーブル110の例である。図3の例において、記憶部11には、例えば、フローαの転送経路「ノード2−1→ノード2−2→ノード2−4」が記憶される。
記憶部11には、転送経路に対して、当該転送経路を主経路として用いるフローを記憶する欄(図3の「主経路」)と、当該転送経路を冗長経路として用いるフローを記憶する欄(図3の「冗長経路」)とが設けられている。図3の例において、フローαは、転送経路「ノード2−1→ノード2−2→ノード2−4」を主経路として、転送経路「ノード2−1→ノード2−3→ノード2−4」を冗長経路として用いる。
制御部12は、通信データのフローの主経路となる転送経路を決定する。制御部12は、例えば、フローβの主経路として、転送経路「ノード2−1→ノード2−5→ノード2−4」を決定する。
また、制御部12は、記憶部11を参照して、第1の通信データのフローの冗長経路を、第2の通信データのフローに対応する転送経路から選択する。制御部12は、例えば、フローβの冗長経路として、フローαに対応する転送経路の一つである「ノード2−1→ノード2−2→ノード2−4」を選択する。制御部12がフローβの冗長経路をフローαに対応する転送経路から選択することにより、フローβの冗長経路とフローαの転送経路とが重複する。よって、制御部12は、フローβの冗長経路にために新たな経路を設定することなく、当該フローβの冗長経路を設定することができる。
なお、制御部12は、例えば、第1の通信データのフローの冗長経路を、当該第1の通信データのフローと送信元及び宛先が同一である第2のフローに対応する転送経路から選択してもよい。
図4は、本発明の第1の実施形態において、制御部12が冗長経路を選択した後の、記憶部11の例である。記憶部11は、転送経路「ノード2−1→ノード2−5→ノード2−4」の主経路の欄に、フローβを記憶する。また、記憶部11は、フローαに対応する転送経路の一つである「ノード2−1→ノード2−2→ノード2−4」の冗長経路の欄に、フローβを記憶する。
制御部12は、複数のノード2の少なくとも1つに、通信データのフローの主経路に沿って、当該通信データのフローを転送するためのポリシーを通知する。
また、制御部12は、複数のノード2の少なくとも1つに、主経路に対する冗長経路に沿って当該通信データのフローを転送するためのポリシーを通知する。例えば、制御部12は、通信データフローの主経路に沿って当該通信データのフローを転送できない場合に、冗長経路に対応するポリシーを、複数のノード2の少なくとも1つに通知する。また、例えば、制御部12は、冗長経路に対応するポリシーを、予め、複数のノード2の少なくとも1つに通知してもよい。
図5は、本発明の第1の実施形態における、制御装置1の動作例を示すフローチャートである。
制御部12は、第1の通信データのフロー(フローβ)の主経路を決定する(S101)。
制御部12は、記憶部11を参照して、第1の通信データのフロー(フローβ)の冗長経路を、第2の通信データのフロー(フローα)に対応する転送経路から選択する(S102)。なお、制御部12は、例えば、第1の通信データのフロー(フローβ)の冗長経路を、当該第1の通信データのフロー(フローβ)と送信元及び宛先が同一である第2のフロー(フローα)に対応する転送経路から選択してもよい。
制御部12は、第1の通信データのフロー(フローβ)の主経路と、冗長経路として選択した第2の通信データのフロー(フローα)の転送経路とに関する情報を、記憶部11に記憶する(S103)。
制御部12は、複数のノード2の少なくとも1つに対して、第1の通信データのフロー(フローβ)の主経路に沿って当該第1の通信データのフロー(フローβ)を転送するためのポリシーを通知する(S104)。
上記のとおり、本発明の第1の実施形態の制御装置1は、冗長経路を既存の転送経路から選択することにより、当該冗長経路のラベルを、当該既存の転送経路のラベルと共有させることができる。したがって、当該制御装置1は、冗長経路を設定してもラベルを余分に消費せず、ラベルの不足を抑制することができ、例えばラベルに限りがある場合であっても、設定可能な転送経路の数が減少することを防止できる。
<第2の実施形態>
本発明の第2の実施形態について、図面を参照して説明する。
本発明の第2の実施形態は、第1の通信データのフローの冗長経路を、当該第1の通信データのフローとは属性の異なる第2の通信データのフローに対応する転送経路から選択するものである。
ここで、属性は、フローに含まれるパケットの宛先や送信元等に基づいて識別される当該フロー(当該フローに含まれるパケット)の性質や特徴である。例えば、属性は、フローに要求される通信品質(QoS:Quality of Service)や、フローに関連する通信アプリケーションの種別、フローに要求されるSLA(Service Level Agreement)等である。
本発明の第2の実施形態における通信システムは、図1に示す、本発明の第1の実施形態と同様である。
図6は、本発明の第2の実施形態における、制御装置1の構成例を示す図である。図6に示すように、制御装置1は、記憶部11と、制御部12と、通信部13と、トポロジー記憶部14とを有する。
トポロジー記憶部14は、ノード2間の隣接情報や、リンクの帯域などのネットワークに関する情報を記憶する。トポロジー記憶部14は、所定の周期又は任意のタイミングで、記憶する情報を更新する。
記憶部11は、図3に示す経路管理テーブル110に加えて、フローと、当該フローの属性とを対応付けて記憶する属性管理テーブル111を有する。図7は、属性管理テーブル111の構成例を示す図である。図7の例では、属性管理テーブル111は、フローと、その属性とを対応付けて記憶する。
なお、記憶部11は、経路管理テーブル110に、フローの属性に関する情報を記憶してもよい。図8は、経路管理テーブル110に、フローの属性に関する情報を記憶した場合の当該経路管理テーブル110の例である。図8の例において、記憶部11には、例えば、フローαと当該フローαの属性とを対応付けた情報「フローα(属性:X)」と、当該フローαの転送経路「2−1→2−2→2−4」とが対応付けて記憶される。
なお、記憶部11は、管理テーブル110の他に、例えば、転送経路毎の使用帯域や、設定した転送経路の有効期間(設定した転送経路によりパケットを転送できる期間)などを記憶してもよい。記憶部11は、制御部12がフローの転送経路を決定する毎に、記憶する情報を更新してもよい。
制御部12は、ノード2から、ノード2が受信したパケットが属するフローの転送経路の設定の要求を受ける。なお、制御部12は、ノード2から、当該フローの転送経路の設定の要求とともに、当該フローの属性の通知を受けてもよい。
制御部12は、第1のフローの主経路を、例えば最短経路を計算するためのダイクストラ法を用いて決定する。制御部12は、例えば、図1の「A」から「B」までのフローβ(第1のフロー)の主経路を、「ノード2−1→ノード2−5→ノード2−4」と決定する。
制御部12は、第1のフローの冗長経路を、記憶部11の経路管理テーブル110及び属性管理テーブル111(又は、経路管理テーブル110だけ)を参照して、当該第1のフローとは属性の異なる第2のフローに対応する転送経路から選択する。図3又は図8の例において、制御部12は、例えば、フローβ(第1のフロー)のパケットの冗長経路として、属性が異なるフローα(第2のフロー)に対応する転送経路の一つである「ノード2−1→ノード2−2→ノード2−4」を選択する。
なお、制御部12は、第1のフローの冗長経路を、当該第1のフローと送信元及び宛先が同一であり、当該第1のフローとは属性の異なる第2のフローに対応する転送経路から選択してもよい。
また、制御部12は、第1のフローの冗長経路として選択可能な第2のフローの転送経路が設定されていない場合、当該冗長経路のために、新たに転送経路を設定してもよい。この場合において、制御部12は、第1のフローの主経路とは異なる転送経路が無い場合(第1のフローの転送経路が一つしか設定できない場合)には、冗長経路を設定しなくてもよい。
図9は、本発明の第2の実施形態において、制御部12が冗長経路を選択した後の経路管理テーブル110の例である。図9に示すように、経路管理テーブル110は、転送経路「ノード2−1→ノード2−5→ノード2−4」の主経路の欄に、フローβと当該フローβの属性とを対応付けた情報「フローβ(属性:Y)」を記憶する。また、経路管理テーブル110は、フローαに対応する転送経路の一つである「ノード2−1→ノード2−2→ノード2−4」の冗長経路の欄に、フローβと当該フローβの属性とを対応付けた情報「フローβ(属性:Y)」を記憶する。
図10は、本発明の第2の実施形態における、ノード2の構成例を示す図である。図10に示すように、ノード2は、通信部21と、制御部22と、ポリシー記憶部23とを有する。
ポリシー記憶部23は、パケットを処理するためのポリシーを記憶する。当該ポリシーは、制御装置1から通知される。
図11は、転送ノード2−1のポリシー記憶部23に記憶される、ポリシー管理テーブル230の例である。ポリシー管理テーブル230は、フローと、当該フローに属するパケットに対する「処理内容」を対応付けて記憶する。ポリシー管理テーブル230は、例えば、フローαに対して、処理内容「ポート#1から転送する」を記憶する。
ポリシー記憶部23は、制御装置1からポリシーが通知されることに応じて、ポリシー管理テーブル230を更新する。
制御部22は、受信したパケットを処理するためのポリシーがポリシー管理テーブル230に記憶されていない場合、当該受信したパケットを処理するためのポリシーを制御装置1に要求する。制御部22は、当該要求を行う場合、制御装置1に対して、受信したパケットが属するフローの属性を通知する。
制御部22は、制御装置1から通知されたポリシーが記憶されたポリシー管理テーブル230を参照し、当該受信したパケットを処理する。制御部22は、例えば、フローαに属するパケットを受信した場合、図11のポリシー管理テーブル230を参照して、当該パケットをポート#1から転送する。
通信部21は、パケットを送受信する。また、通信部21は、制御装置1に対してパケットを処理するためのポリシーの要求を送信し、当該要求に対する応答として制御装置1からポリシーを受信する。
図12は、本発明の第2の実施形態における、制御装置1の動作例を示すフローチャートである。
制御部12は、ノード2から、当該ノード2が受信したパケットが属するフローの転送経路の設定の要求を受ける(S201)。
制御部12は、トポロジー記憶部13を参照して、当該フロー(第1のフロー)の主経路を決定する(S202)。
制御部12は、経路管理テーブル110を参照して、第1のフローと送信元及び宛先が同一であり、当該第1のフローとは属性の異なる第2のフローに対応する転送経路が設定されているか否かを判定する(S203)。
制御部12は、第1のフローと、送信元及び宛先が同一であり、属性の異なる第2のフローに対応する転送経路が設定されていると判定した場合(S203のYES)、第1のフローの冗長経路を、当該第2のフローに対応する転送経路から選択する(S204)。
一方、第1のフローと送信元及び宛先が同一の第2のフローに対応する転送経路が設定されていないと判定した場合(S203のNO)、第1のフローの冗長経路として、新たな転送経路を設定する(S205)。
制御部12は、決定した第1のフローの主経路と、冗長経路として選択又は新たに設定した転送経路とに関する情報を、記憶部11に記憶する(S206)。
制御部12は、複数のノード2の少なくとも1つに対して、決定した第1のフローの主経路に沿って第1のフローを転送するためのポリシーを通知する(S207)。
上記のとおり、本発明の第2の実施形態の制御装置1は、第1のフローの冗長経路を、当該第1のフローとは属性の異なる第2のフローに対応する転送経路から選択することにより、当該冗長経路のラベルを、当該第2のフローの転送経路のラベルと共有させることができる。したがって、当該制御装置1は、冗長経路を設定してもラベルを余分に消費せず、ラベルの不足を抑制することができ、例えばラベルに限りがある場合であっても、設定可能な転送経路の数が減少することを防止できる。
<第3の実施形態>
本発明の第3の実施形態について、図面を参照して説明する。
本発明の第3の実施形態では、フローの属性として、優先度が用いられる。本発明の第3の実施形態は、第1のフローの冗長経路を、当該第1のフローとは優先度の異なる第2のフローに対応する転送経路から選択するものである。
ここで、フローの優先度は、例えば、数値によって表される。優先度が高いフローは、優先度が低いフローに比べて優先して転送される。フローの優先度は、数値に限られることなく、フローの優先度を表すことができれば、例えばアルファベットなど、どのような形式で表現されていてもよい。フローの優先度は、例えば、パケットのヘッダに格納されているVLANタグに含まれる優先度を表す情報(PCP:Priority Code Point)である。PCPは、VLANタグにおいて優先度を指定する3ビットのフィールドであり、パケットの優先度を0(最低)から7(最高)で示し、各種トラフィック(音声、動画、データなど)の優先順位付けに利用できる。
本発明の第3の実施形態における通信システムは、図1に示す、本発明の第1の実施形態と同様である。また、本発明の第3の実施形態における通信装置1は、図6に示す本発明の第2の実施形態と同様である。さらに、本発明の第3の実施形態におけるノード2は、図10に示す本発明の第2の実施形態と同様である。
本発明の第3の実施形態において、記憶部11の属性管理テーブル110は、フローと、当該フローの優先度に関する情報とを対応付けて記憶する。図13は、属性管理テーブル111の構成例を示す図である。図13に示すように、属性管理テーブル111は、「フローα」と、その優先度「7」とを対応付けて記憶する。
なお、記憶部11は、経路管理テーブル110に、フローの優先度に関する情報を記憶してもよい。図14は、フローの優先度に関する情報を記憶した場合の当該経路管理テーブル110の例である。図14の例において、記憶部11には、例えば、フローαと当該フローαの優先度とを対応付けた情報「フローα(優先度:7)」と、当該フローαの転送経路「ノード2−1→ノード2−2→ノード2−4」とが対応付けて記憶される。
制御部12は、ノード2から、ノード2が受信したパケットが属するフローの転送経路の設定の要求を受ける。なお、制御部12は、ノード2から、当該フローの転送経路の設定の要求とともに、当該フローの優先度の通知を受けてもよい。
制御部12は、図1の「A」から「B」までのフローβ(第1のフロー)の主経路を、「ノード2−1→ノード2−5→ノード2−4」と決定する。
制御部12は、第1のフローの冗長経路を、記憶部11の経路管理テーブル110及び属性管理テーブル111(又は、経路管理テーブル110だけ)を参照して、当該第1のフローとは優先度の異なる第2のフローに対応する転送経路から選択する。図3又は図14の例において、制御部12は、例えば、フローβ(優先度「1」)のパケットの冗長経路として、優先度が異なるフローα(優先度「7」)に対応する転送経路の一つである「ノード2−1→ノード2−2→ノード2−4」を選択する。
なお、制御部12は、第1のフローの冗長経路を、当該第1のフローよりも優先度の高い第2のフローに対応する転送経路から選択してもよい。優先度が互いに異なる複数のフローは、同一の転送経路に沿って転送されたとしても、キュー制御において分離して処理される。そのため、優先度の高いフロー(第2のフロー)が利用している転送経路に、優先度の低いフロー(第1のフロー)を共有させても、当該優先度の高いフローの転送処理に影響が生じることはない。したがって、優先度の低いフローの冗長経路を、優先度の高いフローの転送経路に共有させ、当該優先度の高いフローの転送に影響を与えずに、転送経路の集約を図ることができる。
なお、制御部12は、第1のフローよりも優先度の高い第2のフローに対応する転送経路のうち、当該第1のフローと優先度が同一の他のフローの冗長経路として設定されていない転送経路から、当該第1のフローの冗長経路を選択する。優先度が同一のフロー同士は、同一の転送経路に沿って転送されると、キュー制御において分離して処理されず、互いにフローの転送に影響を与えてしまう。そのため、同じ優先度のフローの冗長経路どうしが、同じ転送経路に設定されないようにして、例えば両者が同じタイミングで冗長経路に切り替わったとしても、互いに影響を与えないようにする。
図15は、制御部12が冗長経路を選択した後の経路管理テーブル110の例である。なお、図15は、経路管理テーブル110に、フローの優先度に関する情報を記憶する場合の例である。図15に示すように、経路管理テーブル110は、フローβの主経路として、転送経路「ノード2−1→ノード2−5→ノード2−4」に関する情報を記憶する。また、経路管理テーブル110は、フローαに対応する転送経路の一つである「ノード2−1→ノード2−2→ノード2−4」の冗長経路の欄に、フローβを記憶する。
図16は、本発明の第3の実施形態における制御装置1の動作例を示すフローチャートである。なお、図16の例は、第1のフローの冗長経路を、当該第1のフローよりも優先度の高い第2のフローに対応する転送経路から選択する場合の例である。
制御部12は、ノード2から、当該ノード2が受信したパケットが属するフローの転送経路の設定の要求を受ける(S301)。
制御部12は、トポロジー記憶部13を参照して、当該フロー(第1のフロー)の主経路を決定する(S302)。
制御部12は、経路管理テーブル110を参照して、第1のフローと送信元及び宛先が同一であって、当該第1のフローよりも優先度の高い第2のフローに対応する転送経路が設定されているか否かを判定する(S303)。
制御部12は、第2のフローに対応する転送経路が設定されている場合(S303のYES)、当該第2のフローに対応する転送経路のうち、第1のフローと優先度が同一の他のフローの冗長経路に設定されていない転送経路の有無を判定する(S304)。一方、制御部12は、第2のフローに対応する転送経路が設定されていないと判定した場合(S303のNO)、第1のフローの冗長経路として、新たな転送経路を設定する(S306)。
制御部12は、第2のフローに対応する転送経路のうち、第1のフローと優先度が同一の他のフローの冗長経路に設定されていない転送経路がある場合(S304のYES)、第1のフローの冗長経路を、当該転送経路から選択する(S305)。一方、制御部12は、第2のフローに対応する転送経路の全てが、第1のフローと優先度が同一の他のフローの冗長経路として設定されている場合(S304のYES)、第1のフローの冗長経路として、新たな転送経路を設定する(S306)。
制御部12は、決定した第1のフローの主経路と、冗長経路として選択又は新たに設定した転送経路とに関する情報を、記憶部11に記憶する(S307)。
制御部12は、複数のノード2の少なくとも1つに対して、決定した第1のフローの主経路に沿って第1のフローを転送するためのポリシーを通知する(S308)。
上記のとおり、本発明の第3の実施形態の制御装置1は、第1のフローの冗長経路を、当該第1のフローとは優先度の異なる第2のフローに対応する転送経路から選択することにより、当該冗長経路のラベルを、当該第2のフローに対応する転送経路のラベルと共有させることができる。したがって、当該制御装置1は、冗長経路を設定してもラベルを余分に消費せず、ラベルの不足を抑制することができ、例えばラベルに限りがある場合であっても、設定可能な転送経路の数が減少することを防止できる。
<第4の実施形態>
本発明の第4の実施形態について、図面を用いて説明する。本発明の第4の実施形態は、フローの転送経路がVLAN(Virtual Local Area Network)である場合の実施形態である。
本発明の第4の実施形態における通信システムは、図1に示す、本発明の第1の実施形態と同様である。また、本発明の第4の実施形態におけるノード2は、図10に示す本発明の第2の実施形態と同様である。
図17は、本発明の第4の実施形態における、通信装置1の構成例を示す図である。
本発明の第4の実施形態において、トポロジー記憶部14が記憶するネットワークに関する情報は、各ノード2の機能に関する情報を含んでもよい。ノード2の機能に関する情報は、例えば、ノード2がVLAN IDの付け替えが可能であるか否かを示す情報である。また、ノード2の機能に関する情報は、ノード2が設定可能なVLAN−IDの数を示す情報を含んでいてもよい。
図17に示すように、制御装置1の記憶部11は、経路管理テーブル110の代わりに、VLAN−ID管理テーブル112を有する。
図18は、本発明の第4の実施形態における記憶部11が記憶する、VLAN−ID管理テーブル112の例である。VLAN−ID管理テーブル112は、VLAN経路毎に割り当てられる「VLAN−ID」と、転送経路を示す「Hop Information」と、当該転送経路で転送されるフローとを対応付けて記憶する。VLAN−IDは、制御部12が計算するVLAN経路毎に割り当てられる。
図18の例において、VLAN−ID管理テーブル112は、VLAN−ID「110」と、「ノード2−1→ノード2−2→ノード2−4」の経路のVLANと、フローα(主経路)とが対応付けて記憶されている。
制御部12は、例えば、ノード2からの要求があったことに応じて、フローβの主経路として、「ノード2−1→ノード2−5→ノード2−4」を決定する。制御部12は、決定したフローβの主経路に対して、VLAN−ID「101」を割り当てる。
制御部12は、VLAN−IDと、決定した第1のフローの主経路を、VLAN−ID管理テーブル112に通知して、記憶させる。
制御部12は、第1のフローの冗長経路を、第2のフローに対応する転送経路から選択する。制御部12は、例えば、VLAN−ID管理テーブル112を参照して、フローβの冗長経路を、フローαに対応する転送経路の一つである「VLAN−ID「110」のVLAN」を選択する。
図19は、制御部12が第1のフローの主経路及び冗長経路を設定した後の、VLAN−ID管理テーブル112の例である。VLAN−ID管理テーブル112は、フローβの主経路として、転送経路「ノード2−1→ノード2−5→ノード2−4」に関する情報を記憶する。また、VLAN−ID管理テーブル112は、フローαに対応する転送経路の一つである「ノード2−1→ノード2−2→ノード2−4」の冗長経路の欄に、フローβを記憶する。
制御部12は、複数のノード2それぞれに、第1のフロー(フローβ)の主経路を用いてパケットを転送するためのポリシーを通知する。
制御部12は、例えば、ノード2−1に対して、「VLAN−ID「101」を含むパケットは、ノード2−5宛のポートから転送する」旨のポリシーを設定する。また、制御部12は、ノード2−5に対して、「VLAN−ID「101」を含むパケットを、ノード2−4宛のポートから転送する」旨のポリシーを設定する。さらに、制御部12は、ノード2−4に対して、「VLAN−ID「101」を含むパケットは、後段の装置(図示しない)に対応するポートから転送する」旨を設定する。
制御部12は、第1のフローの主経路を用いてパケットを転送できなくなった場合、ノード2の少なくとも1つに対して、冗長経路として選択した第2のフローの転送経路を用いてパケットを転送するためのポリシーを通知し、パケットの転送経路を変更する。
なお、制御部12は、パケットの送信元のノード(例えば、エッジのノード。図1の例では、ノード2−1)以外のノード2に対して、予め、冗長経路として選択した第2のフローの転送経路でパケットを転送するためのポリシーを通知してもよい。この場合、制御部12は、第1のフローの主経路を用いてパケットを転送できなくなった場合、パケットの送信元のノード2(ノード2−1)だけにポリシーを通知すれば、パケットの転送経路を冗長経路として選択した第2のフローの転送経路に変更できる。
図20は、本発明の第4の実施形態における、通信システムの動作例を示すシーケンス図である。
ノード2の少なくとも1つは、パケットを受信すると(S401)、制御装置1に対して転送経路の設定を要求する(S402)。
制御装置1は、第1のフローの主経路を設定し、当該第1のフローの冗長経路を第2のフローの転送経路から選択する(S403)。制御装置1は、ノード2に対して、当該主経路で受信したパケットを転送するためのポリシーを通知する(S404)。
ポリシーを受信したノード2(ノード2−1)は、ポリシーに基づいて、当該受信したパケットを所定のポートから転送する(S405)。
各ノード2は、受信したポリシーに基づいて、パケットを転送する(S406)。
本発明の第4の実施形態によれば、本発明は、VLAN経路に関する技術を適用して実施することができる。
なお、本発明の第4の実施形態において、VLAN−IDの代わりに「ラベル」と呼ばれる短い固定長の識別標識を用いてもよい。「ラベル」は、例えば、MPLSラベル(Multi−Protocol Label Switching ラベル)である。すなわち、本発明は、VLANを、MPLS等のラベルスイッチング技術に置き換えても実施することができる。
<第5の実施形態>
本発明の第5の実施形態について、図面を用いて説明する。本発明の第5の実施形態は、フローの転送経路が、異なる2つのVLANにまたがっている場合の実施形態である。
図21は、本発明の第5の実施形態における、通信システムの構成例を示す図である。図21に示すように、本発明の第5の実施形態における通信システムは、第1のVLAN―IDによりパケットを転送するノード2−1乃至2−5と、第2のVLAN―IDによりパケットを転送する第2のノード20−1及び20−2(特に分ける必要が無い場合は、「第2のノード20」と記載する)とを含む。つまり、ノード2−1乃至2−5で構成されるネットワークと、第二のノード20で構成されるネットワークは、互いに異なるVLANネットワークで構成される。
第2のノード20は、ノード2−1乃至2−5が利用する第1のVLAN−ID(図22の例では、110、111)とは異なる第2のVLAN−ID(図22の例では、10)により、パケットを転送する。この場合、制御装置1は、ノード20−1及び20−4との接点に位置するノード2−1及びノード2−4に対して、VLAN−IDの書き換えを指示する。
なお、本発明の第5の実施形態における通信装置1は、図6に示す本発明の第2の実施形態と同様である。さらに、本発明の第5の実施形態におけるノード2及びノード20は、図10に示す本発明の第2の実施形態と同様である。
なお、本発明の第5の実施形態において、制御装置1は、パケットの冗長経路を、当該パケットが属するフローよりも高優先度のフローが利用する転送経路から選択する。
図22は、本発明の第5の実施形態における、記憶部11が記憶するVLAN−ID管理テーブル112の例である。VLAN−ID管理テーブル112は、「第1のVLAN−ID」と、経路を示す「Hop Information」と、パケットが属するフローの「第2のVLAN−ID及び優先度を示す情報との組」との対応表である。また、VLAN−ID管理テーブル112には、主経路として用いるフローを記憶する欄と、冗長経路として用いるフローを記憶する欄とが設けられている。
図22のVLAN−ID管理テーブル112の例では、VLAN−IDが「110」のVLANは、その経路が「ノード2−1→ノード2−2→ノード2−4」であり、第2のVLAN−ID「10」及び優先度「7」のフローに属するパケットの主経路として用いられる。
制御装置1の制御部12は、ノード2からの要求に応じて、該ノード2から受け取ったパケットに関する情報と、トポロジー記憶部14に記憶されている情報とに基づいて、パケットを転送するための第1のフローの主経路を決定する。制御部12は、例えば、第1のフローの主経路として「ノード2−1→ノード2−5→ノード2−4」を決定し、決定した主経路に対して、第1のVLAN−ID「101」を割り当てる。
本発明の第5の実施形態において、制御部12は、第1のフローの冗長経路として、送信元及び宛先が同一であり、当該第1のフローよりも優先度の高い第2のフローに対応する転送経路から選択する。図22の例では、制御部12は、第1のフローの転送経路を、送信元及び宛先が同一であり、当該第1のフローよりも優先度の高い第2のフローに対応する転送経路である「VLAN−ID「110」及び「111」のVLAN」から選択する。
図23は、制御部12が第1のフローの主経路及び冗長経路を設定した後の、VLAN−ID管理テーブル112の例である。VLAN−ID管理テーブル112は、フローβの主経路として、転送経路「ノード2−1→ノード2−5→ノード2−4」に関する情報を記憶する。また、VLAN−ID管理テーブル112は、フローαに対応する転送経路の一つである「ノード2−1→ノード2−2→ノード2−4」の冗長経路の欄に、第2のVLAN−ID「20」と優先度「1」とを対応付けて記憶する。
一方、制御部12は、冗長経路として利用可能な第2のフローの転送経路が設定されていない場合、冗長経路を新たに設定するか否かを判定する。具体的には、制御部12は、第1のフローの優先度と、優先度に関する所定の閾値とを比較し、フローの優先度が所定の閾値以上であれば、冗長経路を新たに設定する。一方、制御部12は、比較の結果、フローの優先度が所定の閾値未満であれば、冗長経路の設定を行わない。所定の閾値は、予め定められており、例えば優先度「6」である。
制御部12は、複数のノード2のそれぞれに、主経路であるVLAN−ID「101」の転送経路「ノード2−1→ノード2−5→ノード2−4」に沿って、パケットを転送するためのポリシーを通知する。
制御部12は、接点に位置するノード2−1に対して、「第2のVLAN−ID「20」を含むパケットは、VLAN−IDを第1のVLAN−ID「101」に書き換えて、ノード2−5宛のポートから転送する」旨のポリシーを設定する。
また、制御部12は、ノード2−5に対して、「第1のVLAN−ID「101」を含むパケットを、ノード2−4宛のポートから転送する」旨のポリシーを設定する。
さらに、制御部12は、接点に位置するノード2−4に対して、「第1のVLAN−ID「101」を含むパケットは、VLAN−IDを第2のVLAN−ID「20」に書き換えて、後段の装置(図示しない)に転送する」旨を設定する。
制御部12は、VLAN−ID「101」の転送経路「ノード2−1→ノード2−5→ノード2−4」に沿ってパケットを転送できなくなった場合、第1のVLAN−IDが「110」の転送経路に沿ってパケットを転送するためのポリシーを各ノード2に通知する。これによって、制御部12は、パケットの転送経路を、選択した冗長経路に変更する。
図24は、本発明の第5の実施形態における、通信システムの動作例を示すシーケンス図である。
送信元側の接点に位置するノード2(図1の例では、ノード2−1)は、外部ネットワーク(第2のノード20−1)からパケットを受信すると(S501)、制御装置1に対して転送経路の設定を要求する(S502)。
制御装置1は、ノード2が受信したパケットが属するフローに対して主経路を決定し、ノード2が受信したパケットが属するフロー(第1のフロー)の冗長経路を、他のフロー(第2のフロー)に対応する転送経路から選択する(S503)。制御装置1は、主経路に沿ってパケットを転送するためのポリシーをノード2に対して通知する(S504)。
ポリシーを受信したエッジのノード2(ノード2−1)は、ポリシーに基づいて、受信したパケットのVLAN−IDを付け替え、所定のポートから転送する(S505)。
各ノード2は、受信したポリシーに基づいて、パケットを転送する(S506)。
宛先側の接点に位置するエッジのノード2(図1の例では、ノード2−4)は、パケットを受信すると、ポリシーに基づいて、受信したパケットのVLAN−IDを付け替え、外部ネットワーク(第2のノード20−2)に転送する(S507)。
続いて、図23の状態において、制御部12が、さらに、ノード2からの要求に応じて、第2のVLAN−ID「30」及び優先度「3」のフローの転送経路を設定する場合について説明する。
制御部12は、第2のVLAN−ID「30」及び優先度「3」のフローの主経路として、「ノード2−1→ノード2−5→ノード2−4」を決定する。制御部12は、決定した転送経路に対して、第1のVLAN−ID「102」を割り当てる。
制御部12は、第2のVLAN−ID「30」及び優先度「3」のフローの冗長経路として、当該フローよりも高優先度のフローの転送経路である「第1のVLAN−ID「111」のVLAN」を選択する。
図25は、図23の状態から制御部12がさらに転送経路を設定した後の、VLAN−ID管理テーブル112の例である。VLAN−ID管理テーブル112は、第2のVLAN−ID「30」及び優先度「3」のフローの主経路として、「ノード2−1→ノード2−5→ノード2−4」のVLANに関する情報を記憶する。また、VLAN−ID管理テーブル112は、「第1のVLAN−ID「111」のVLAN」の冗長経路の欄に、第2のVLAN−ID「30」と優先度「3」とを対応付けて記憶する。
続いて、図25の状態において、制御部12が、さらに、ノード2からの要求に応じて、第2のVLAN−ID「40」及び優先度「3」のフローの転送経路を設定する場合について説明する。
制御部12は、第2のVLAN−ID「40」及び優先度「3」のフローの主経路として、「ノード2−1→ノード2−2→ノード2−4」を決定する。制御部12は、決定した転送経路に対して、第1のVLAN−ID「103」を割り当てる。
制御部12は、第2のVLAN−ID「40」及び優先度「3」のフローの冗長経路を、当該フローの優先度よりも高い優先度のフローの転送経路から選択しようとする。なお、制御部12は、冗長経路を、主経路と同じ転送経路からは選択しない。
しかし、制御部12は、そのようなVLANは設定されていないため、第2のVLAN−ID「40」のフローの優先度「3」と、優先度の閾値「6」とを比較する。制御部12は、比較の結果、フローの優先度は所定の閾値未満であるため、冗長経路の設定を行わない。
図26は、図25の状態から、制御部12がさらに転送経路を設定した後の、VLAN−ID管理テーブル112の例である。VLAN−ID管理テーブル112は、第2のVLAN−ID「40」及び優先度「3」のフローの主経路として、「ノード2−1→ノード2−2→ノード2−4」のVLANに関する情報だけを記憶する。
続いて、図26の状態において、制御部12が、さらに、ノード2からの要求に応じて、第2のVLAN−ID「50」及び優先度「7」のフローの転送経路を設定する場合について説明する。
制御部12は、第2のVLAN−ID「50」及び優先度「7」のフローの主経路として、「ノード2−1→ノード2−2→ノード2−4」を決定する。制御部12は、決定した転送経路に対して、第1のVLAN−ID「120」を割り当てる。
制御部12は、第2のVLAN−ID「50」及び優先度「7」のフローの冗長経路を、当該フローの優先度よりも高い優先度のフローに対応する転送経路であるVLANから選択しようとする。なお、制御部12は、フローよりも優先度の高いフローに対応する転送経路のうち、当該第1のフローと優先度が同一の他のフローの冗長経路として設定されていない転送経路から、当該第1のフローの冗長経路を選択する。同一の優先度のフローの冗長経路どうしが、同じ転送経路に設定されないようにするためである。
しかし、制御部12は、そのようなVLANは設定されていないため、第2のVLAN−ID「50」のフローの優先度「7」と、優先度の閾値「6」とを比較する。制御部12は、比較の結果、フローの優先度は所定の閾値以上であるため、冗長経路として新たな転送経路を設定する。制御部12は、第2のVLAN−ID「50」及び優先度「7」のフローの冗長経路として、「ノード2−1→ノード2−3→ノード2−4」を新たに設定する。制御部12は、冗長経路として設定した新たな冗長経路に対して、第1のVLAN−ID「121」を割り当てる。
制御部12は、第1のVLAN−ID「121」の転送経路を決定した結果、第2のVLAN−ID「40」及び優先度「3」のフローの冗長経路を、第1のVLAN−ID「120」又は「121」の転送経路から選択できるようになる。制御部12は、例えば、第2のVLAN−ID「40」及び優先度「3」のフローの冗長経路として、第1のVLAN−ID「121」のVLANを選択する。
図27は、図26の状態から制御部12がさらに転送経路を設定した後の、VLAN−ID管理テーブル112の例である。VLAN−ID管理テーブル112は、第2のVLAN−ID「50」及び優先度「7」のフローの主経路として、「ノード2−1→ノード2−3→ノード2−4」のVLANに関する情報を記憶する。また、VLAN−ID管理テーブル112は、「第1のVLAN−ID「121」のVLAN」の冗長経路の欄に、第2のVLAN−ID「40」と優先度「3」とを対応付けて記憶する。
最後に、図27の状態において、制御部12が、第2のVLAN−ID「10」及び優先度「7」のパケットの転送に用いていた転送経路(VLAN−ID「110」及び「111」のVLAN)を削除する場合について説明する。
制御部12は、VLAN−ID管理テーブル112から、VLAN−ID「110」及び「111」のVLANに関する情報を削除する。また、制御部12は、ノード2に対して、VLAN−ID「110」及び「111」のVLANに関するポリシーを削除する旨を要求する。
制御部12は、削除した転送経路を冗長経路としていた「第2のVLAN−ID「20」及び優先度「1」のフロー」及び「第2のVLAN−ID「30」及び優先度「3」のフロー」について、冗長経路を再設定する。制御部12は、第2のVLAN−ID「20」及び優先度「1」のフローとして、優先度「7」のフローの主経路であり、優先度「3」のフローの冗長経路である「第1のVLAN−ID「121」のVLAN」を選択する。また、制御部12は、第2のVLAN−ID「30」及び優先度「3」のフローとして、優先度「7」のフローの主経路である「第1のVLAN−ID「120」のVLAN」を選択する。
図28は、図27の状態から制御部12が転送経路を削除した後のVLAN−ID管理テーブル112の例である。VLAN−ID管理テーブル112は、「第1のVLAN−ID「120」のVLAN」の冗長経路の欄に、第2のVLAN−ID「30」及び優先度「3」のフローを記憶する。またVLAN−ID管理テーブル112は、「第1のVLAN−ID「121」のVLAN」の冗長経路の欄に、第2のVLAN−ID「20」及び優先度「1」のフローを記憶する。
本発明の第5の実施形態によれば、本発明は、フローの転送経路が異なる2つのVLANに跨っている場合にも適用できる。
<第6の実施形態>
本発明の第6の実施形態について、図面を用いて説明する。本発明の第6の実施形態は、制御部12が、第1のフローの冗長経路を、第2のフローに対応する転送経路の中から選択する際に、転送経路の有効期間を考慮する実施形態である。第6の実施形態は、上述の実施形態のいずれにも適用することができる。
本発明の第6の実施形態における通信システムは、図1に示す第1の実施形態における通信システムの構成例と同様である。また、本発明の第6の実施形態における制御装置1の構成例は、図2又は図6に示す上記の各実施形態における制御装置1の構成例と同様である。さらに、本発明の第6の実施形態におけるノード2は、図10に示す第2の実施形態におけるノード2の構成例と同様である。
制御部12は、転送経路を決定する毎に、当該決定した転送経路に対して、有効期間を設定する。有効期間は、その転送経路によりパケットを転送できる期間である。
記憶部11は、転送経路毎に、有効期間を記憶する。
図29は、本発明の第6の実施形態における、記憶部11のVLAN−ID管理テーブル112の構成例を示す図である。図29に示すように、記憶部11のVLAN−ID管理テーブル112は、転送経路毎に、有効期間に関する情報を対応付けて記憶する。有効期間に関する情報は、例えば、有効期間の残り時間である。図29に示すように、VLAN−ID管理テーブル112は、第1のVLAN−ID「110」の転送経路について、有効期間の残り時間が「100分」であることが記憶されている。
制御部12は、第1のフローの冗長経路を、第2のフローに対応する転送経路から、当該第2のフローに対応する転送経路の各々の有効期間に基づいて選択する。制御部12は、例えば、第2のフローに対応する転送経路のうち、有効期間の残り時間がより長い転送経路を優先して選択する。図29の例において、制御部12が、冗長経路として、第1のVLAN−ID「110」又は「111」の転送経路のいずれかを選択する場合、転送経路の有効時間の残り時間がより長い第1のVLAN−ID「110」の転送経路を選択する。
また、制御部12は、例えば、第1のフローの冗長経路として、当該冗長経路に求められる有効期間よりも長い有効期間である第2のフローに対応する転送経路から選択してもよい。この場合において、制御部12は、例えば、冗長経路に求められる有効期間よりも長い有効期間である第2のフローに対応する転送経路が無い場合、当該冗長経路として、新たな転送経路を設定してもよい。
上記のとおり、制御部12は、第1のフローの冗長経路を選択する場合において、第2のフローに対応する転送経路の有効期間を考慮するので、冗長経路に求められる有効期間の終了前に、選択した第2のフローの転送経路が消滅することを防止できる。そのため、制御部12は、選択した第2のフローの転送経路の消滅に伴って、冗長経路を再選択する必要がなくなり、当該制御部12の負荷を低減できる。
<第7の実施形態>
本発明の第7の実施形態について、図面を用いて説明する。本発明の第7の実施形態は、本発明を、集中制御型のネットワークアーキテクチャであるオープンフロー(OpenFlow)という技術を改良して実施する実施形態である。第7の実施形態は、上述の実施形態のいずれにも適用することができる。
オープンフローは、通信をエンドツーエンドのフローとして認識し、フロー単位で経路制御等を実行できる。
図30及び図31を参照し、オープンフローについて説明する。
図30に、オープンフロー技術により構成された通信システムの概要を示す。なお、フローとは、例えば、所定の属性(通信の宛先や送信元等に基づいて識別される属性)を有する一連の通信パケット群である。オープンフロースイッチ101は、オープンフロー技術を採用したネットワークスイッチである。オープンフローコントローラ100は、オープンフロースイッチ101を制御する情報処理装置である。
オープンフロースイッチ101は、オープンフローコントローラ100との間に設定されたセキュアチャネル102を介して、オープンフローコントローラ100と通信する。オープンフローコントローラ100は、セキュアチャネル102を介して、オープンフロースイッチ101のフローテーブル103の設定を行う。なお、セキュアチャネル32は、スイッチとコントローラ間の通信の盗聴や改ざん等を防止するための処置がなされた通信経路である。
図31は、フローテーブル103の各エントリ(フローエントリ)の構成例を示す。フローエントリは、スイッチが受信したパケットのヘッダに含まれる情報(例えば、宛先IPアドレスやVLAN ID等)と照合するためのマッチングルール(Match Fields)と、パケットフロー毎の統計情報である統計情報(Counters)と、マッチングルールにマッチするパケットの処理方法を規定するインストラクション(Instructions)とで構成される。
オープンフロースイッチ101は、パケットを受信すると、フローテーブル103を参照する。オープンフロースイッチ101は、受信したパケットのヘッダ情報にマッチするフローエントリを検索する。受信パケットのヘッダ情報にマッチするエントリが検索された場合、オープンフロースイッチ101は、検索されたエントリのインストラクションフィールドに定義された処理方法に従って、受信パケットを処理する。処理方法は、例えば、“受信パケットを所定のポートから転送する”、“受信したパケットを破棄する”、“受信パケットのヘッダの一部を書き換えて、所定のポートから転送する”といったことが規定されている。
一方、受信パケットのヘッダ情報にマッチするエントリが見つからない場合、オープンフロースイッチ101は、例えば、セキュアチャネル102を介して、オープンフローコントローラ100に対して受信パケットを転送する。オープンフロースイッチ101は、受信パケットを転送することにより、オープンフローコントローラ100に対して、受信パケットの処理方法を規定したフローエントリの設定を要求する。オープンフロースイッチ101は、パケットの処理方法として、コントローラに要求を送信することを規定したフローエントリにパケットがマッチした場合、その処理方法に従って、コントローラに対してフローエントリの設定を要求してもよい。
オープンフローコントローラ100は、受信パケットの処理方法を決定し、決定した処理方法を含むフローエントリをフローテーブル103に設定する。その後、オープンフロースイッチ101は、設定されたフローエントリにより、受信パケットと同一のフローに属する後続のパケットを処理する。
図32は、本発明の第7の実施形態における、通信システムの例を示す。
本発明の第7の実施形態は、図32に示すように、コントローラ3と、スイッチ4−1乃至4−5(特に分ける必要が無い場合は、「ノード2」と記載する)とを含む。コントローラ3は、スイッチ4と、OpenFlowプロトコルに従って通信することが可能である。
図33は、本発明の第7の実施形態における、コントローラ3の構成例を示す図である。コントローラ3は、記憶部31と、制御部32と、通信部33と、トポロジー記憶部34と、処理規則記憶部35とを有する。
記憶部31は、上記の各実施形態における記憶部11と同様であり、転送経路管理テーブル310は、上記の各実施形態における経路管理テーブル110又はVLAN−ID管理テーブル112と同様の構成である。なお、記憶部31は、上記の各実施形態の属性管理テーブル111を備えていてもよい。
通信部33は、スイッチ4と、OpenFlowプロトコルに基づいて通信する機能を有する。通信部33は、スイッチ4から、パケットの処理規則(上述の“フローエントリ”に対応)の要求を受信する。また、通信部33は、スイッチ4に処理規則を通知する。本発明の第7の実施形態において、処理規則は、上記の各実施形態におけるポリシーを、OpenFlowという技術に適用したものである。
トポロジー記憶部34は、上記の各実施形態におけるトポロジー記憶部14と同様である。トポロジー記憶部34は、スイッチ4間の隣接情報や、リンクの帯域などのネットワークに関する情報を記憶する。
なお、OpenFlowに準拠した通信機器(ネットワークスイッチ等)は、通信機器のポートのステータスをコントローラに通知する機能(Port Status)や、スイッチの特性をコントローラに通知する機能(Feature Request/Reply)を有する。トポロジー記憶部34が記憶する情報は、上記の機能を用いて取集してもよい。
制御部32の処理規則決定部320は、スイッチ4に設定する処理規則を決定する。処理規則決定部320は、記憶部31、トポロジー記憶部34、処理規則記憶部35が有する情報を参照し、スイッチ4に設定する処理規則を生成する。
処理規則決定部320は、スイッチ4からの要求に応じて、スイッチ4が受信したパケットを転送するための第1のフローの主経路を決定し、決定した第1のフローの転送経路を用いてパケットを転送するための処理規則を生成する。
制御部32は、第1のフローの冗長経路を、第2のフローに対応する転送経路から選択する。
制御部32は、冗長経路として利用可能な第2のフローに対応する転送経路が設定されていない場合、当該冗長経路として、新たな転送経路を設定してもよい。
処理規則決定部320は、第1のフローの主経路を用いてパケットを転送できなくなった場合、スイッチ4に対して、冗長経路を用いてパケットを転送するための処理規則を通知し、転送経路を切り替える。
なお、処理規則決定部320は、パケットを冗長経路で転送するための処理規則を作成し、予め、スイッチ4の少なくとも1つに設定しておいてもよい。処理規則決定部320は、第1のフローの主経路を用いてパケットを転送できなくなった場合、送信元のスイッチ4(図32では、スイッチ4−1)の処理規則を変更するだけで、転送経路を切り替えることができる。
図34は、本発明の第7の実施形態における処理規則決定部320が生成する処理規則の例を示す。図34の例は、スイッチ4−1に設定する処理規則である。処理規則決定部320は、例えば、パケットの宛先アドレスと、当該パケットのポート番号をマッチングルールとして規定する。処理規則決定部320は、例えば、マッチングルールに対応する処理方法“Instruction”として、スイッチ4−2宛のポート#1からパケットを転送する処理方法を規定する。
図34の例では、1行目の処理規則のマッチングルールは、「フローα(宛先アドレスが“A”で、ポート番号が“80”)」である。また、1行目の処理規則のインストラクションは、「スイッチ4−2宛のポート#1にパケットを転送する」ことを示す。
図34の例では、2行目の処理規則のマッチングルールは、「フローβ(宛先アドレスが“B”で、ポート番号が“25”)」である。また、2行目の処理規則のインストラクションは、「スイッチ4−5宛のポート#2にパケットを転送する」ことを示す。
図35は、本発明の第7の実施形態におけるスイッチ4の構成の例を示す。図35に示すように、スイッチ4は、通信部41と、処理規則DB42と、処理部43とを有する。処理部43は、処理検索部431と、アクション実行部432とを有する。
通信部41は、OpenFlowプロトコルに従って、コントローラ3と通信する。
処理規則DB42は、コントローラ3から通知された処理規則を記憶する。
処理部43は、コントローラ3から通知された処理規則に従って、パケットを処理する。
処理検索部431は、処理規則DB42から、受信したパケットに対応する処理規則を検索する。処理検索部431は、パケットと、処理規則DB42に記憶された処理規則の“Matching Field”とを照合し、パケットに対応する処理規則を検索する。
アクション実行部432は、検索された処理規則の“Instruction”フィールドに規定された処理方法に従って、パケットを処理する。
処理検索部431は、例えば、処理規則DB42に、受信したパケットに対応する処理規則が存在しない場合、処理規則の設定をコントローラ3に要求する。
図36は、本発明の第7の実施形態の動作例を示すシーケンス図である。
本発明の第7の実施形態において、スイッチ4は、パケットを受信したことに応じて(S601)、コントローラ3に対して、受信したパケットを処理するための処理規則を要求する(S602)。
コントローラ3は、要求に応じて、スイッチ4が受信したパケットが属する第1のフローに対して、当該第1のフローの主経路を設定し、冗長経路を選択する(S603)。
コントローラ3は、第1のフローの主経路によりパケットを転送するための処理規則を、スイッチ4に通知する(S604のFlow Mod)。
スイッチ4は、コントローラ3から通知された処理規則に基づいて、第1のフローの主経路により、受信したパケットを転送する(S605)。
コントローラ3は、第1のフローの主経路によりパケットを転送することができなくなったことに応じて、冗長経路によりパケットを転送するための処理規則を、スイッチ4に通知する(S606のFlow Mod)。
スイッチ4は、コントローラ3から通知された処理規則に基づいて、冗長経路により、受信したパケットを転送する(S607)。
本発明の第7の実施形態によれば、本発明は、集中制御型のネットワークアーキテクチャであるオープンフロー(OpenFlow)という技術を改良して実施することができる。
<第8の実施形態>
本発明の第8の実施形態において、制御装置又はコントローラ3のコンピュータ、CPU(Central Processing Unit)又はMPU(Micro−Processing Unit)等は、上述した各実施形態の機能を実現するソフトウェア(プログラム)を実行する。
本発明の第8の実施形態において、制御装置1又はコントローラ3は、例えばCD−R(Compact Disc Recordable)等の各種記憶媒体又はネットワークを介して、上述した各実施形態の機能を実現するソフトウェア(プログラム)を取得する。制御装置1又はコントローラ3が取得するプログラム、又は、該プログラムを記憶した記憶媒体は、本発明を構成することになる。なお、該ソフトウェア(プログラム)は、例えば、制御装置1又はコントローラ3に含まれる所定の記憶部に、予め記憶されていてもよい。
制御装置1又はコントローラ3のコンピュータ、CPU又はMPU等は、取得したソフトウェア(プログラム)のプログラムコードを読み出して実行する。したがって、制御装置1又はコントローラ3は、上述した各実施形態における制御装置1、コントローラ3又は制御装置5の処理と同一の処理を実行する。
本発明の第8の実施形態によれば、制御装置1又はコントローラ3のコンピュータ、CPU又はMPU等に実現するためのプログラムといった用途に適用できる。
以上、本発明の実施形態を説明したが、本発明は、上記したそれぞれの実施形態に限定されるものではない。本発明は、各実施形態の変形・置換・調整に基づいて実施できる。また、本発明は、各実施形態を任意に組み合わせて実施することもできる。即ち、本発明は、本明細書の全ての開示内容、技術的思想に従って実現できる各種変形、修正を含む。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
[付記1]
通信データの転送経路を決定する制御部と、
前記通信データの転送経路を記憶する記憶部と、を備え、
前記制御部は、前記記憶部を参照して、第1の通信データの冗長経路を、第2の通信データに対応する転送経路から選択することを特徴とする制御装置。
[付記2]
前記記憶部は、前記通信データの転送経路と、前記通信データの属性とを対応付けて記憶し、
前記制御部は、前記記憶部を参照して、前記冗長経路を、前記第1の通信データとは属性の異なる前記第2の通信データに対応する転送経路から選択することを特徴とする付記1に記載の制御装置。
[付記3]
前記記憶部は、前記通信データの転送経路と、前記通信データの優先度とを対応付けて記憶し、
前記制御部は、前記記憶部を参照して、前記冗長経路を、前記第1の通信データとは優先度の異なる前記第2の通信データに対応する転送経路から選択することを特徴とする付記1又は2に記載の制御装置。
[付記4]
前記制御部は、前記冗長経路を、前記第1の通信データよりも優先度の高い前記第2の通信データに対応する転送経路から選択することを特徴とする付記3に記載の制御装置。
[付記5]
前記制御部は、前記冗長経路を識別するためのラベルを、前記第2の通信データに対応する転送経路に割り当てられたラベルと共有させることを特徴とする付記1乃至4のいずれかに記載の制御装置。
[付記6]
前記制御部は、前記冗長経路を、前記第2の通信データに対応する転送経路のうち、前記冗長経路に要求される有効期間よりも長い有効期間が設定されている転送経路から選択することを特徴とする付記1乃至5のいずれかに記載の制御装置。
[付記7]
前記制御部は、前記冗長経路として選択した前記第2の通信データに対応する転送経路の有効期間が終了したことに応じて、前記冗長経路を、第3の通信データに対応する転送経路から選択することを特徴とする付記1乃至5のいずれかに記載の制御装置。
[付記8]
前記制御部は、前記冗長経路を、前記第1の通信データと送信元及び宛先が同一である前記第2の通信データに対応する転送経路から選択することを特徴とする付記1乃至7のいずれかに記載の制御装置。
[付記9]
前記制御部は、決定した前記第1の通信データの転送経路に沿って前記第1の通信データを転送できないことに応じて、前記第1の通信データを転送する複数のノードに対して、選択した前記第2の通信データの転送経路に沿って前記第1の通信データを転送するためのポリシーを通知することを特徴とする付記1乃至8のいずれかに記載の制御装置。
[付記10]
前記制御部は、
前記第1の通信データを転送する複数のノードからの前記要求に応じて、決定した前記第1の通信データの転送経路に沿って前記第1の通信データを転送するための処理規則を前記複数のノードの少なくとも1つに通知し、
決定した前記第1の通信データの転送経路に沿って前記第1の通信データを転送できないことに応じて、選択した前記第2の通信データの転送経路に沿って前記第1の通信データを転送するための処理規則を前記複数のノードの少なくとも1つに通知する
ことを特徴とする付記1乃至9のいずれかに記載の制御装置。
[付記11]
付記1乃至10のいずれかに記載の制御装置と、
決定した前記第1の通信データの転送経路に沿って前記第1の通信データを転送する複数のノードと、を含むことを特徴とする通信システム。
[付記12]
前記複数のノードの各々は、前記制御装置から通知されるポリシーに基づいて、前記第1のパケットを転送することを特徴とする付記11に記載の通信システム。
[付記13]
前記複数のノードの各々は、受信したパケットに含まれるラベルに対応する転送経路に沿って、前記受信したパケットを転送することを特徴とする付記11又は12に記載の通信システム。
[付記14]
通信データの転送経路を決定し、
前記通信データの転送経路を記憶し、
記憶した前記通信データの転送経路を参照して、第1の通信データの冗長経路を、第2の通信データに対応する転送経路から選択する
ことを特徴とする通信方法。
[付記15]
前記通信データの転送経路と、前記通信データの属性とを対応付けて記憶し、
記憶した前記通信データの転送経路を参照して、前記冗長経路を、前記第1の通信データとは属性の異なる前記第2の通信データに対応する転送経路から選択する
ことを特徴とする付記14に記載の通信方法。
[付記16]
前記通信データの転送経路と、前記通信データの優先度とを対応付けて記憶し、
記憶した前記通信データの転送経路を参照して、前記冗長経路を、前記第1の通信データとは優先度の異なる前記第2の通信データに対応する転送経路から選択する
ことを特徴とする付記14又は15に記載の通信方法。
[付記17]
前記冗長経路を、前記第1の通信データよりも優先度の高い前記第2の通信データに対応する転送経路から選択することを特徴とする付記16に記載の通信方法。
[付記18]
前記冗長経路を識別するためのラベルを、前記第2の通信データに対応する転送経路に割り当てられたラベルと共有させることを特徴とする付記14乃至17のいずれかに記載の通信方法。
[付記19]
前記冗長経路を、前記第2の通信データに対応する転送経路のうち、前記冗長経路に要求される有効期間よりも長い有効期間が設定されている転送経路から選択することを特徴とする付記14乃至18のいずれかに記載の通信方法。
[付記20]
前記冗長経路として選択した前記第2の通信データの転送経路の有効期間が終了したことに応じて、前記冗長経路を、第3の通信データに対応する転送経路から選択することを特徴とする付記14乃至18のいずれかに記載の通信方法。
[付記21]
前記冗長経路を、前記第1の通信データと送信元及び宛先が同一である前記第2の通信データに対応する転送経路から選択することを特徴とする付記14乃至20のいずれかに記載の通信方法。
[付記22]
決定した前記第1の通信データの転送経路に沿って前記第1の通信データを転送できないことに応じて、前記第1の通信データを転送する複数のノードに対して、選択した前記第2の通信データの転送経路に沿って前記第1の通信データを転送するためのポリシーを通知することを特徴とする付記14乃至21のいずれかに記載の通信方法。
[付記23]
前記第1の通信データを転送する複数のノードからの前記要求に応じて、決定した前記第1の通信データの転送経路に沿って前記第1の通信データを転送するための処理規則を前記複数のノードに通知し、
決定した前記第1の通信データの転送経路に沿って前記第1の通信データを転送できないことに応じて、選択した前記第2の通信データの転送経路に沿って前記第1の通信データを転送するための処理規則を前記複数のノードに通知する
ことを特徴とする付記14乃至22のいずれかに記載の通信方法。
[付記24]
通信データの転送経路を決定する処理と、
前記通信データの転送経路を記憶する処理と、
記憶した前記通信データの転送経路を参照して、前記第1の通信データの冗長経路を、第2の通信データに対応する転送経路から選択する処理と
をコンピュータに実行させることを特徴とするプログラム。
[付記25]
前記通信データの転送経路と、前記通信データの属性とを対応付けて記憶する処理と、
記憶した前記通信データの転送経路を参照して、前記第1の通信データとは属性の異なる前記第2の通信データに対応する転送経路から選択する処理と
を含むことを特徴とする付記24に記載のプログラム。
[付記26]
前記通信データの転送経路と、前記通信データの優先度とを対応付けて記憶する処理と、
記憶した前記通信データの転送経路を参照して、前記冗長経路を、前記第1の通信データとは優先度の異なる前記第2の通信データに対応する転送経路から選択する処理と
を含むことを特徴とする付記24又は25に記載のプログラム。
[付記27]
前記冗長経路を、前記第1の通信データよりも優先度の高い前記第2の通信データに対応する転送経路から選択する処理を含むことを特徴とする付記26に記載のプログラム。
[付記28]
前記冗長経路を識別するためのラベルを、前記第2の通信データに対応する転送経路に割り当てられたラベルと共有させる処理を含むことを特徴とする付記24乃至27のいずれかに記載のプログラム。
[付記29]
前記冗長経路を、前記第2の通信データに対応する転送経路のうち、前記冗長経路に要求される有効期間よりも長い有効期間が設定されている転送経路から選択する処理を含むことを特徴とする付記24乃至28のいずれかに記載のプログラム。
[付記30]
前記冗長経路として選択した前記第2の通信データの転送経路の有効期間が終了したことに応じて、前記冗長経路を、第3の通信データに対応する転送経路から選択する処理を含むことを特徴とする付記24乃至28のいずれかに記載のプログラム。
[付記31]
前記冗長経路を、前記第1の通信データと送信元及び宛先が同一である前記第2の通信データに対応する転送経路から選択する処理を含むことを特徴とする付記24乃至30のいずれかに記載のプログラム。
[付記32]
決定した前記第1の通信データの転送経路に沿って前記第1の通信データを転送できないことに応じて、前記第1の通信データを転送する複数のノードに対して、選択した前記第2の通信データの転送経路に沿って前記第1の通信データを転送するためのポリシーを通知する処理を含むことを特徴とする付記24乃至31のいずれかに記載のプログラム。
[付記33]
前記第1の通信データを転送する複数のノードからの前記要求に応じて、決定した前記第1の通信データの転送経路に沿って前記第1の通信データを転送するための処理規則を前記複数のノードに通知する処理と、
決定した前記第1の通信データの転送経路に沿って前記第1の通信データを転送できないことに応じて、選択した前記第2の通信データの転送経路に沿って前記第1の通信データを転送するための処理規則を前記複数のノードに通知する処理と
を含むことを特徴とする付記24乃至32のいずれかに記載のプログラム。