(57)【特許請求の範囲】
【請求項１】
１つまたは複数のネットワーク要素（３、７）を備える通信ネットワーク（１）内の制御を提供する方法であって、
中央コントローラ（５）から受信される（６ａ、６ｂ）１つまたは複数の構成メッセージを使用して、通信ネットワーク（１）の第１のネットワーク要素（３）のスイッチ（４）と、第１のネットワーク要素（３）のローカルコントローラ（２）とを構成するステップと、
第１のネットワーク要素（３）のスイッチ（４）の構成とローカルコントローラ（５）の構成とに基づいて、第１のネットワーク要素（３）のスイッチ（４）と、第１のネットワーク要素（３）のローカルコントローラ（２）と、中央コントローラ（５）と、１つもしくは複数の第２のネットワーク要素（７）と、の１つまたは複数の間の１つまたは複数のパケットフローを制御する（９ａ−９ｒ）ステップと
を含み、
１つまたは複数のパケットフローを制御するステップが、
第１のネットワーク要素（３）のスイッチ（４）で、１つまたは複数のパケットフローのうちのパケットフローのパケットを受信する（９ａ、９ｂ、９ｄ、９ｆ、９ｈ、９ｌ、９ｐ）ステップと、
第１のネットワーク要素（３）のスイッチ（４）が、パケットフローのパケットの転送を決定するステップと、
スイッチ（４）が、パケットフローのパケットを転送する（９ｃ、９ｇ、９ｅ、９ｋ、９ｏ、９ｑ）ステップとを含み、
ネットワーク要素（３）のスイッチ（４）がパケットフローのパケットの転送を決定するステップが、
パケットフローが、スイッチ（４）の構成に従って未知のフローである場合は、
スイッチ（４）が、スイッチ（４）の構成に従って、未知のパケットフローの１つまたは複数のパケットをローカルコントローラ（２）に送信するステップと、
ローカルコントローラ（２）がパケットの送信先を決定するステップと、
ローカルコントローラ（２）がパケットフローの送信先をスイッチ（４）に指示する（９ｎ）ステップとを含む、方法。
【請求項２】
ローカルコントローラ（２）を構成するステップが、
第１のネットワーク要素（３）のスイッチ（４）で、中央コントローラ（５）から１つまたは複数の構成メッセージを受信し（６ａ）、その構成メッセージを第１のネットワーク要素（３）のローカルコントローラ（２）に転送する（６ｂ）ステップを含む、請求項１に記載の方法。
【請求項３】
スイッチ（４）でパケットフローのパケットを転送するステップが、
スイッチ（４）がパケットフローのパケットの転送を決定するステップの結果に従って、パケットフローのパケットを、中央コントローラ（５）、ローカルコントローラ（２）、または１つもしくは複数の第２のネットワーク要素（７）の１つもしくは複数、に転送するステップを含む、請求項１に記載の方法。
【請求項４】
第１のネットワーク要素（３）のスイッチ（４）がパケットフローのパケットの転送を決定するステップが、
パケットフローが、スイッチ（４）の構成に従って既知のパケットフローである場合は、スイッチ（４）の構成に従ってパケットフローのパケットの送信先を決定するステップ
を含む、請求項１に記載の方法。
【請求項５】
１つまたは複数のパケットフローを制御するステップが、
スイッチ（４）の構成と、ローカルコントローラ（２）の構成に従ってローカルコントローラ（２）によって適用される規則とに基づいて、１つまたは複数のパケットフローのうち１つまたは複数のパケットフローのパケットを、第１のネットワーク要素（３）のスイッチ（４）から、１つまたは複数の第２のネットワーク要素（７）の１つまたは複数に転送するステップ
を含む、請求項１に記載の方法。
【請求項６】
１つまたは複数のパケットフローを制御するステップが、
パケットフローのパケットをローカルコントローラ（２）に転送する（９ｐ）ステップと、
ローカルコントローラ（２）の構成に従った規則に基づいて、受信されたパケットフローのパケット中のヘッダフィールドを解釈するステップと、
好ましくは、新しいヘッダフィールドを生成するステップと、
ローカルコントローラ（２）がパケットを転送する（９ｑ）ステップと
をさらに含む、請求項１に記載の方法。
【請求項７】
１つまたは複数のパケットフローを制御するステップが、
ローカルコントローラ（２）のパケット／フレームジェネレータ（７）で、新しいヘッダフィールドを持つ新しいパケットを生成するステップ
をさらに含む、請求項１に記載の方法。
【請求項８】
制御するステップが、
ローカルコントローラ（２）が、パケット／フレームジェネレータ（８）を使用して１つまたは複数のメッセージを作成するステップと、
１つまたは複数のメッセージを、ローカルコントローラ（２）から、スイッチ（４）を介して、１つまたは複数の第２のネットワーク要素（７）の１つまたは複数に送信する（９ｒ）ステップと
をさらに含む、請求項１に記載の方法。
【請求項９】
ローカルコントローラが、ピアエンティティの状態機械を格納することにより、かつ／または、学習されたＭＡＣアドレスのテーブル、ルーティングプロトコルのネイバのデータベース、および／もしくはトポロジーデータベースを格納することにより、ローカル状態を保持するステップをさらに含む、請求項１に記載の方法。
【請求項１０】
中央コントローラ（５）が、特にＯｐｅｎＦｌｏｗプロトコルで定義される、オープンプログラマビリティの概念を維持するインターフェースを介して、第１のネットワーク要素（３）のスイッチ（４）および第１のネットワーク要素（３）のローカルコントローラ（２）と通信する、請求項１に記載の方法。
【請求項１１】
ローカルコントローラ（２）を構成するステップが、
ネットワーク要素（３）の運用者が望むローカルコントローラ（２）の任意の構成方式でローカルコントローラ（２）を構成するステップであって、ローカルコントローラ（２）の構成はすべてがネットワーク要素（３）の運用者によって提供される、構成するステップを含む、請求項１に記載の方法。
【請求項１２】
ローカルコントローラ（２）が、第１のネットワーク要素（３）の中に複数のモジュールを備え、複数のモジュールの各モジュールは、複数のモジュールの他のモジュールによって実装されるタスクと異なる１つまたは複数のタスクを実装し、各モジュールは、他のモジュールの論理ポートと異なる１つの論理ポートを介してアドレス指定され、かつ／または、ローカルコントローラ（２）は、第１のネットワーク要素（３）の中に複数のインスタンス、詳細にはソフトウェアインスタンスを備え、ローカルコントローラ（２）の各インスタンスは１つまたは複数のタスクを実装し、ローカルコントローラ（２）の各インスタンスは、複数の管理者の中の１人の管理者によって制御可能である、請求項１に記載の方法。
【請求項１３】
スイッチ（４）とローカルコントローラ（２）とを備える第１のネットワーク要素（３）であって、スイッチ（４）およびローカルコントローラ（２）は、中央コントローラ（５）から構成メッセージを受信する（６ａ、６ｂ）ように構成され、第１のネットワーク要素（３）のスイッチ（４）の構成およびローカルコントローラ（２）の構成に基づいて、第１のネットワーク要素（３）のスイッチ（４）と、第１のネットワーク要素（３）のローカルコントローラ（２）と、中央コントローラ（５）と、１つもしくは複数の第２のネットワーク要素（７）と、の１つまたは複数間で、１つまたは複数のパケットフローを制御する（９ａ−９ｒ）ように構成され、
１つまたは複数のパケットフローを制御する際に、スイッチ（４）が、１つまたは複数のパケットフローのうちのパケットフローのパケットを受信し（９ａ、９ｂ、９ｄ、９ｆ、９ｈ、９ｌ、９ｐ）、パケットフローのパケットの転送を決定し、パケットフローのパケットを転送する（９ｃ、９ｇ、９ｅ、９ｋ、９ｏ、９ｑ）ように構成され、
パケットフローが、スイッチ（４）の構成に従って未知のフローである場合は、
パケットフローのパケットの転送を決定する際に、スイッチ（４）が、スイッチ（４）の構成に従って、未知のパケットフローの１つまたは複数のパケットをローカルコントローラ（２）に送信するように構成され、
１つまたは複数のパケットフローを制御する際に、ローカルコントローラ（２）がパケットの送信先を決定し、パケットフローの送信先をスイッチ（４）に指示する（９ｎ）ように構成される、第１のネットワーク要素（３）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークの分野に属し、より詳細には、通信ネットワーク内の制御を提供する方法および装置に関する。
【背景技術】
【０００２】
通信ネットワークでは、ネットワークの要素間およびデバイス間のパケットフローを制御する必要がある。ソフトウェア定義ネットワーク（ＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ））はネットワーク制御のアーキテクチャを記述し、このアーキテクチャでは、以前は地理的に分散されたルータやスイッチのプロプライエタリなオペレーティングシステムで実装されていた複雑なネットワーク機能（例えば経路計算やトポロジーデータベースの維持）が中央コントローラに移され、ルータやスイッチは、市販ハードウェアで実現することができ、中央コントローラ、この場合は中央のＳＤＮコントローラによってオープンインターフェースを介してプログラムできる単純な転送要素のままとする。このアーキテクチャの欠点は、以前はルータとスイッチによってローカルに処理されていたタスクが、今やネットワーク要素と中央コントローラ間の相互作用を必要とすることであり、それにより、中間ノードにとって関心のないメッセージングで制御ネットワークに負荷がかかる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、通信ネットワーク内の制御を改善することを目的とし、詳細には、通信ネットワークのデバイス（例えばコントローラ、ルータ、スイッチ、ネットワーク要素）間のパケットフローの制御を改善することを目的とする。
【課題を解決するための手段】
【０００４】
本発明の目的は、通信ネットワーク内の制御を提供する方法によって達成される。通信ネットワークは１つまたは複数のネットワーク要素を備える。好ましくは、通信ネットワークは、第１のネットワーク要素と、１つまたは複数の第２のネットワーク要素とを備える。各ネットワーク要素は、スイッチとローカルコントローラとを備える。さらに、通信ネットワークは中央コントローラを備える。通信ネットワーク内の制御を提供する方法は、通信ネットワークの第１のネットワーク要素のスイッチを構成し、第１のネットワーク要素のローカルコントローラを構成するステップを含む。第１のネットワーク要素のスイッチおよびローカルコントローラは、中央コントローラから受信される１つまたは複数の構成メッセージを使用して構成される。通信ネットワーク内の制御を提供する方法は、第１のネットワーク要素のスイッチおよびローカルコントローラの構成に基づいて、第１のネットワーク要素のスイッチと、第１のネットワーク要素のローカルコントローラと、中央コントローラと、１つもしくは複数の第２のネットワーク要素の１つもしくは複数と、の１つまたは複数間で、１つまたは複数のパケットフローをさらに制御するステップを含む。
【０００５】
本発明の目的は、スイッチとローカルコントローラとを備える第１のネットワーク要素によってさらに達成される。スイッチおよびローカルコントローラは中央コントローラから構成メッセージを受信するように構成され、第１のネットワーク要素のスイッチの構成およびローカルコントローラの構成に基づいて、第１のネットワーク要素のスイッチと、第１のネットワーク要素のローカルコントローラと、中央コントローラと、１つもしくは複数の第２のネットワーク要素の１つもしくは複数と、の１つまたは複数間で、１つまたは複数のパケットフローを制御するように構成される。
【０００６】
通信ネットワークのデバイス、構成要素、および要素は、ハードウェア、詳細にはプログラム可能ハードウェア、ソフトウェア、またはそれらの組み合わせとして、適切な方式で実装されることが可能である。さらなる具体化のない特徴、「デバイス」、「構成要素」、および「要素」は、同義で使用される場合がある。
【０００７】
詳細には、ローカルコントローラは、単一の装置として、独立型の装置として、またはコンピュータおよび／もしくはコンピュータネットワーク内に組み込まれたデータベース中に実装される可能性がある。ローカルコントローラは、ハードウェア、ソフトウェア、および／または、適切なソフトウェアとともにソフトウェアを実行することができる可能なハードウェアを使用して実装される可能性がある。
【０００８】
より具体的には、ローカルコントローラは、回路を利用するプロセスに含まれるか、またはそのようなプロセスによって実装され、ＡＳＩＣ（＝特定用途集積回路）、またはＦＰＧＡ（＝フィールドプログラム可能ゲートアレイ）、マルチチップモジュール、シングルカードもしくはマルチカード回路パックなどの単一の集積回路として実装されることが可能である。ローカルコントローラの機能は、ソフトウェアプログラムの処理ブロックとして実装される場合もある。そのようなソフトウェアは、単独のデバイスとして実装されるか、コンピュータネットワークに組み込まれた、デジタル信号プロセッサ、マイクロコントローラ、または汎用コンピュータ内で使用される可能性がある。
【０００９】
ローカルコントローラは、有形の媒体として具現化されたプログラムコードを含むことができ、そのような媒体には、磁気記録媒体、光学記録媒体、固体素子メモリ、フロッピーディスケット、ＣＤ−ＲＯＭ、ハードドライブ、または他の機械可読記憶媒体などがあり、プログラムコードがローカルコントローラにロードされて実行されると、ローカルコントローラは本発明を実施するために使用される装置となる。
【００１０】
詳細には、本発明の実行には、コンピュータ、詳細にはローカルコントローラのコンピュータで実行されると請求項１から１４の一項による方法を実行するように構成されたコンピュータプログラム製品が使用される。
【００１１】
本発明のさらに他の特徴および利点について、以下に概略的に記載される好ましい実施形態と、下記の詳細な説明で図との関連で例示的に説明する。この項で概略的に説明し、以下の図に示される本発明の特徴および実施形態は、幅広い種々の構成で構成および設計することが可能であることはただちに理解されよう。したがって、添付図に表される方法および装置の実施形態についての以下の概略的な説明と詳細な説明は、特許権が請求される本発明の範囲を制限するものではなく、単に本発明の好ましい実施形態を表すものである。
【００１２】
本明細書に記載される本発明の特徴、構造、または特性は、１つまたは複数の実施形態において適切な方式で組み合わせることができる。例えば、本明細書における表現「好ましい実施形態」、「一部の実施形態」、または他の同様の文言の使用は、実施形態との関連で記載される特定の特徴、構造、または特性が、本発明の少なくとも１つの実施形態に含まれる可能性があることを意味する。したがって、本明細書における表現「好ましい実施形態」、「一部の実施形態では」、「他の実施形態では」、または他の同様の文言の出現は、必ずしもすべてが同じ実施形態の群を指すとは限らず、記載される特徴、構造、または特性は、１つまたは複数の実施形態で適切な方式で組み合わせることができる。
【００１３】
さらに、説明中「パケット（複数形）」の関連で記載される内容は、それに対応して「１つ」のパケットにも同様に当てはまり、例えば説明中でパケット（複数形）の転送が記載される場合には、１つのパケットを転送する実施形態も同様に開示される。
【００１４】
したがって、１つの実施形態で記載される特徴は、１つまたは複数の実施形態で適切な方式で実装できる可能性がある。詳細には、２つ以上の実施形態の特徴を組み合わせる際に使用される用語「および／または」は、好ましい実施形態が、選択肢となる列挙のうち、用語「および／または」でつながれる特徴を組み合わせて含む、または第１の特徴／特徴の群だけを含む、または第２もしくはそれ以降の特徴／特徴の群だけを含む可能性がある意に理解されたい。同様に、好ましい実施形態の特徴を組み合わせることにより、さらに好ましい実施形態を形成することも可能である。
【００１５】
好ましい実施形態では、ローカルコントローラの構成は、中央コントローラからの構成メッセージによって行われる。これは、中央コントローラの運用者が、中央コントローラからローカルコントローラに送信される構成メッセージを使用してローカルコントローラを構成できることを意味する。好ましい実施形態では、構成メッセージは、中央コントローラと、スイッチおよびローカルコントローラを備えるネットワーク要素との間で交換される。これは、構成メッセージが中央コントローラからネットワーク要素に送信され、したがってスイッチと場合によってはローカルコントローラに転送されることを意味する。さらに、構成応答メッセージが、ネットワーク要素、より正確にはスイッチおよび／またはローカルコントローラから、中央コントローラに返送されることが可能である。構成応答メッセージで、デバイス、すなわち構成メッセージで構成されるスイッチおよび／またはローカルコントローラが、中央コントローラにフィードバックを与え、フィードバックには、構成の成功もしくは失敗、欠落している構成データの要求、または、ローカルコントローラがネットワーク状態を管理する機能を持つ場合にローカルデータベースに格納されている可能性のあるネットワーク状態に関するデータの要求、または要求される構成データの返送などがある。
【００１６】
好ましい実施形態では、中央コントローラからの構成メッセージを介したローカルコントローラの構成は、中央コントローラとネットワーク要素の間で交換される構成メッセージを介してローカルコントローラをプログラムすることによって行われる。下記でより詳細に説明するように、構成メッセージはネットワーク要素に送信され、ネットワーク要素内で、スイッチおよび場合によっては特にローカルコントローラを構成するためにさらに処理される。好ましくは、スイッチの構成メッセージが中央コントローラとの間で交換されるインターフェースと、ローカルコントローラの構成メッセージが中央コントローラとの間で交換されるインターフェースは、同じインターフェースである。これは、スイッチがそれを介してプログラムすなわち構成される構成メッセージと、ローカルコントローラがそれを介してプログラムすなわち構成される構成メッセージが、中央コントローラと、スイッチおよびローカルコントローラを備えるネットワーク要素との間で、同じインターフェースを通じて送信されることを意味する。好ましくは、スイッチの構成メッセージが送信されるネットワーク要素の物理ポートは、ローカルコントローラの構成メッセージが送信されるネットワーク要素のポートと同じポートである。その場合、ポート、したがってポートアドレスが同じであるため、構成メッセージがネットワーク要素に受信されるネットワーク要素のポートのポートアドレスは、ローカルコントローラの構成メッセージがネットワーク要素に受信されるネットワーク要素のポートのポートアドレスと同じになる。これは、スイッチの構成メッセージと、ローカルコントローラの構成メッセージが、ネットワーク要素の同じポートで受信されることを意味する。
【００１７】
本願を通じて、特徴「ポート」は物理ポートを指し、特徴「サブアドレス」は論理ポートを指すことに留意されたい。
【００１８】
好ましい実施形態では、ローカルコントローラを構成すなわちプログラムするための構成メッセージは、中央コントローラからネットワーク要素のスイッチで受信され、スイッチによりローカルコントローラに転送される。
【００１９】
好ましい実施形態では、構成メッセージおよびさらなるパケットフローは、異なるポートおよび／または異なる接続を通じて送信されることが可能である。
【００２０】
好ましい実施形態では、スイッチおよびローカルコントローラの構成メッセージは、別個の制御ネットワークを介して受信されることが可能である。好ましくは、制御ネットワークはデータネットワークとは独立している。好ましくは、制御ネットワークは、構成メッセージが中央のコントローラとスイッチおよびローカルコントローラとの間で交換されるネットワークと定義される。好ましくは、データネットワークは、さらなるデータフローまたはパケットフローが交換または伝送されるネットワークと定義される。
【００２１】
好ましい実施形態では、第１のネットワーク要素のローカルコントローラを構成するために、第１のネットワーク要素のスイッチが、中央コントローラから１つまたは複数の構成メッセージを受信し、その構成メッセージを第１のネットワーク要素のローカルコントローラに転送する。
【００２２】
好ましくは、スイッチおよびローカルコントローラを備えるネットワーク要素に送信される構成メッセージは、ネットワーク要素のアドレスと、構成メッセージがスイッチに使用される場合はさらにスイッチ単独のサブアドレスとを含む。好ましくは、ネットワーク要素に送信される構成メッセージは、ネットワーク要素のアドレスと、構成メッセージがローカルコントローラの構成に使用される場合はさらにローカルコントローラのサブアドレスとを含む。
【００２３】
好ましい実施形態では、構成メッセージは、ネットワーク要素のアドレスを外部アドレスの指示、例えば外部ラベルとして含み、スイッチまたはローカルコントローラのアドレスを内部アドレスの指示、例えば内部ラベル、例えばサブアドレスとして含む。
【００２４】
好ましい実施形態では、構成メッセージは、構成メッセージがスイッチの構成に使用される場合にのみスイッチのサブアドレスを含む。構成メッセージがローカルコントローラの構成に使用される場合には、構成メッセージは、外部アドレスとしてのネットワーク要素のアドレスの他に、ローカルコントローラのみのアドレスをサブアドレスとして含む。
【００２５】
好ましくは、構成メッセージはスイッチに受信され、スイッチは、メッセージに示されるアドレス、好ましくは、より正確にはサブアドレスに従って、その構成メッセージがスイッチで実施される、すなわちスイッチを構成するものであるか、構成メッセージがローカルコントローラで実施される、すなわちローカルコントローラを構成するものであるかを決定する。好ましい実施形態では、構成メッセージはローカルコントローラに転送され、これは、中央コントローラからネットワーク要素に送信された構成メッセージがスイッチを介してローカルコントローラに転送されることを意味する。別の好ましい実施形態では、構成メッセージは別個の制御ネットワークを介して別のポートで受信され、それぞれスイッチまたはローカルコントローラのサブアドレスに従ってスイッチまたはローカルコントローラに転送される。
【００２６】
好ましい実施形態では、最初のステップでスイッチが中央コントローラによって構成される。好ましい実施形態では、スイッチおよびローカルコントローラのサブアドレスが、標準化または機器ベンダーのマニュアルやデータシートにより、中央コントローラに知られている。
【００２７】
その場合、スイッチの構成は、好ましい実施形態ではローカルコントローラのアドレスを含む規則を備えるため、スイッチが、ローカルコントローラのサブアドレスを持つ構成メッセージをローカルコントローラに転送する規則を備えて構成されるので、スイッチは、データパケット、詳細には構成メッセージをローカルコントローラに転送するように適合または構成される。それにより、中央コントローラはスイッチとローカルコントローラの両方をアドレス指定することができ、スイッチは、サブアドレスフィールドがローカルコントローラのサブアドレスと一致するパケットをローカルコントローラに転送する規則を備えて構成されるので、スイッチは、データパケット、詳細には構成メッセージをローカルコントローラに転送するように構成することができる。
【００２８】
本明細書で第１のネットワーク要素に関して記載される内容は、それに対応して第２のネットワーク要素にも該当し、第２のネットワーク要素も、第１のネットワーク要素の観点から説明するように、中央コントローラからの構成メッセージによって構成され、通信ネットワーク内のパケットフローの制御に関与する可能性がある。
【００２９】
好ましい実施形態では、スイッチおよびローカルコントローラの構成に基づいて、中央コントローラと、第１のネットワーク要素のスイッチと、第１のネットワーク要素のローカルコントローラと、１つまたは複数の第２のネットワーク要素との間で１つまたは複数のパケットフローを制御するステップは、第１のネットワーク要素のスイッチで１つまたは複数のパケットフローのうちのパケットフローのパケットを受信し、パケットフローのパケットをさらに転送するかどうかを第１のネットワーク要素のスイッチで決定し、パケットフローのパケットをスイッチで転送するステップを含む。
【００３０】
好ましい実施形態では、構成メッセージについても同様に、スイッチに送信される各パケットは好ましくは、スイッチが実装されているネットワーク要素のアドレスを外部アドレスラベルとして含み、そのパケットをスイッチから転送すべき先のネットワーク要素またはデバイス、例えばローカルコントローラのアドレスを内部アドレスラベルまたはサブアドレスとして含む。
【００３１】
好ましい実施形態では、構成メッセージについても同様に、スイッチに送信される各パケットは好ましくは、中央コントローラのアドレスを外部アドレスラベル、好ましくはＩＰアドレスとして含み、そのパケットをスイッチから転送すべき先の中央コントローラのアドレスを内部アドレスラベルまたはサブアドレス、好ましくは論理ポートとして含む。
【００３２】
好ましい実施形態では、構成メッセージについても同様に、スイッチに送信される各パケットは好ましくは、中央コントローラのアドレスを外部アドレスラベルとして含み、そのパケットをスイッチから転送すべき先の中央コントローラのプロトコルスタックのアドレスを内部アドレスラベルまたはサブアドレスとして含む。プロトコルスタックは、この文脈では中央コントローラの管理エンティティである。
【００３３】
パケットの転送先のデバイスのアドレスはサブアドレスとして実装される場合があり、詳細にはソフトウェアインスタンスの指示として実装される場合がある。ポートのアドレスまたはサブアドレスは、通信ネットワークが論理アドレスによって実装される場合には論理ポートアドレスとすることができる。
【００３４】
好ましい実施形態では、通信ネットワーク内で１つまたは複数のパケットフローを制御するために、第１のネットワーク要素のスイッチが、１つまたは複数のパケットフローのうち１つのパケットフローのパケットを受信する。パケットの受信後、第１のネットワーク要素のスイッチは、パケットフローのパケットを転送することを決定し、決定に従ってパケットフローのパケットを転送する。
【００３５】
好ましい実施形態では、スイッチは、スイッチがパケットフローのパケットを転送するかどうかを決定するステップの結果に従って、パケットフローのパケットを、中央コントローラ、またはローカルコントローラ、または１つもしくは複数の第２のネットワーク要素の１つまたは複数に転送する。
【００３６】
好ましい実施形態では、第１のネットワーク要素のスイッチがパケットフローのパケットを転送するかどうかの決定は、そのパケットフローがスイッチの構成に従ってスイッチに既知であるか、未知であるかに依存する。
【００３７】
好ましい実施形態では、パケットフローは、スイッチの構成に従うとスイッチに既知のパケットフローである。スイッチがパケットフローを知っているので、スイッチは、パケットフローのパケットを転送するために、スイッチの構成に従ってパケットフローのパケットの送信先を決定する。
【００３８】
好ましい実施形態では、パケットフローは、スイッチの構成に従うとスイッチに未知のパケットフローである。スイッチがパケットフローを知らないため、スイッチは、スイッチの構成に従って、未知のパケットフローの１つまたは複数のパケットを中央コントローラまたはローカルコントローラに送信する。
【００３９】
好ましい実施形態では、スイッチは、スイッチにとって未知の１つまたは複数のパケットフローのパケットを、スイッチにとって未知のパケットフローをさらに転送するかどうかを決定するために中央コントローラに送信するように構成される。したがって、スイッチは、未知のパケットフローの１つまたは複数のパケットを中央コントローラに送信する。中央コントローラは、パケットの送信先を決定し、パケットフローの送信先をスイッチに指示する。中央コントローラは、パケットフローの送信先を決定するためのアドレスと規則が含まれる参照表に基づいてパケットフローの送信先を決定することができる。中央コントローラは、送信先を決定するために中央コントローラに送信されたパケットフローの１つまたは複数のパケットのヘッダフィールドにパケットフローの送信先を設定することによってパケットフローの送信先を指示し、指示された送信先を含むパケットをスイッチに送り返すことができる。あるいは、中央コントローラは、パケットフローの送信先を決定するためにスイッチから中央コントローラに送信されたパケットフローの送信先を知らせるメッセージを、スイッチに送信することもできる。パケットフローの送信先の指示は、詳細には、パケットフローをスイッチから転送する際に介するポートアドレスとすることができる。これは、詳細には、パケットフローを知らないスイッチが、さらに転送するためのポートアドレスをパケットフローから自身で決定することができない場合に該当する。しかし、スイッチには中央コントローラからの指示でパケットフローを転送するポートアドレスが通知されているので、スイッチは、今やパケットフローを転送することが可能になり、それに応じてパケットフローを転送する。
【００４０】
好ましい実施形態では、スイッチは、スイッチに未知のパケットフローの１つまたは複数のパケットを、スイッチに未知のパケットフローをさらに転送するかどうかを決定するためにローカルコントローラに送信するように構成される。したがって、スイッチは、未知のパケットフローの１つまたは複数のパケットをローカルコントローラに送信する。ローカルコントローラは、パケットの送信先を決定し、パケットフローの送信先をスイッチに指示する。ローカルコントローラは、パケットフローの送信先を決定するためのアドレスおよび規則が含まれた参照表に基づいて、パケットフローの送信先を決定することができる。ローカルコントローラは、送信先を決定するためにローカルコントローラに送信されたパケットフローの１つまたは複数のパケットのヘッダフィールドにパケットフローの送信先を設定することによってパケットフローの送信先を指示し、指示された送信先を含むパケットをスイッチに送り返すことができる。あるいは、ローカルコントローラは、パケットフローの送信先を決定するためにスイッチからローカルコントローラに送信されたパケットフローの送信先を知らせるメッセージを、スイッチに送信することもできる。パケットフローの送信先の指示は、詳細には、パケットフローをスイッチから転送する際に介するポートアドレスとすることができる。これは、詳細には、パケットフローを知らないスイッチが、さらに転送するためのポートアドレスをパケットフローから自身で決定することができない場合に該当する。しかし、スイッチにはローカルコントローラからの指示でパケットフローを転送するポートアドレスが通知されているので、スイッチは、今やパケットフローを転送することが可能になり、それに応じてパケットフローを転送する。
【００４１】
本明細書を通しての定義によると、スイッチが、パケットフローを送信すべきネットワーク要素、またはパケットフローをネットワーク要素に転送する際のポートをヘッダフィールドに基づいて判断することができない場合に、パケットフローはスイッチにとって未知であることに留意されたい。ヘッダフィールドは、好ましい実施形態では、特に例えばパケットフロー中に示されたアドレスを含み、このアドレスは、受信者または場合によっては送信者のアドレスである可能性がある。その場合、スイッチは、パケットフローの１つまたは複数のパケットを中央コントローラまたはローカルコントローラに送信するように構成される。スイッチは、パケットフローを転送する送信先またはポートの指示を得るためにパケットフローの１つまたは複数のパケットを中央コントローラまたはローカルコントローラに送信するように構成されるが、中央コントローラまたはローカルコントローラへの転送は、その指示がなければスイッチにとって未知であるパケットフローの送信先またはポートを決定するための唯一のデフォルト設定であるため、パケットフローはスイッチにとって未知であると呼ばれる。したがって、パケットフローはスイッチにとって未知であると呼ばれる。
【００４２】
好ましい実施形態では、本願を通じて、送信先の指示が、パケットフローに示されるアドレスを参照して説明される場合には、より一般的に、送信先は転送対象のパケットに含まれるヘッダフィールドで示される可能性がある。当業者に認識されるように、ヘッダフィールドは、情報の組み合わせ、例えばパケットの種別、優先度、アプリケーションの種別、およびさらに他のヘッダフィールドを含むことができる。
【００４３】
好ましい実施形態では、同じ送信先アドレスを持つ２つのパケットが、優先度のフィールドに応じて異なるポートに転送されることが可能である。異なるポートは、異なる物理ポートおよび／または論理ポートである可能性がある。
【００４４】
さらに、スイッチが、上記の中央コントローラまたはローカルコントローラからの指示がなければ、自身の構成、詳細には自身の参照表に基づいてパケットフローの転送先を決定することができない場合に、パケットフローはスイッチにとって未知であると呼ばれる。それに対して、スイッチが、自身の構成、詳細には参照表に基づいてパケットフローの転送先を決定することができれば、パケットフローはスイッチにとって既知である。この決定は、パケットフローに示されるアドレス、詳細には、パケットフローを転送すべきネットワーク要素のアドレスに基づくことができる。それに代えて、またはそれに加えて、スイッチは、パケットフローの転送先を送信元アドレスから決定できる場合もあり、したがってパケットフローはスイッチに既知である。例えば、スイッチは、スイッチがパケットフローをそこから受信した特定の送信元ネットワークまたは特定の第１のネットワーク要素のすべてのパケットを、特定の第２のネットワーク要素に転送するように構成される場合がある。それに代えて、またはそれに加えて、スイッチは、特定のアプリケーションのパケットを特定のネットワーク要素に転送するように構成される場合もある。それに代えて、またはそれに加えて、スイッチは、特定のアドレスまたはアプリケーションを持つパケットフローをスイッチの特定の出力ポートに転送するように構成される場合もある。
【００４５】
好ましい実施形態では、１つまたは複数のパケットフローを制御する方法は、スイッチの構成と、ローカルコントローラの構成に従ってローカルコントローラによって適用される規則とに基づいて、１つまたは複数のパケットフローのうち１つまたは複数のパケットフローのパケットを、第１のネットワーク要素のスイッチから、１つまたは複数の第２のネットワーク要素のうち１つまたは複数に転送するステップを含む。ローカルコントローラの構成に従ってローカルコントローラによって適用される規則は、スイッチのパラメータを設定するために中央コントローラからローカルコントローラが受信したデータ、および／または、ローカルコントローラが格納している、ローカルコントローラが処理したトポロジー情報から導出されるデータである可能性がある。したがって、ローカルコントローラは、さらに転送するためのパラメータをスイッチに設定することができる。
【００４６】
好ましい実施形態では、１つまたは複数のパケットフローを制御するために、パケットフローのパケットがローカルコントローラに転送される。ローカルコントローラは、ローカルコントローラの構成に従う規則に基づいて、受信されたパケットフローのパケットのヘッダフィールドを解釈する。パケットのヘッダフィールドを解釈すると、ローカルコントローラはパケットを転送する。
【００４７】
好ましい実施形態では、１つまたは複数のパケットフローを制御するために、パケットフローのパケットがローカルコントローラに転送される。ローカルコントローラは、受信されたパケットフローのパケットのヘッダフィールドを解釈し、ローカルコントローラの構成に従ってヘッダフィールドを適合、すなわち変更する。パケットのヘッダフィールドを適合すると、ローカルコントローラは、ローカルコントローラの構成に従ってパケットを転送する。
【００４８】
好ましい実施形態では、１つまたは複数のパケットフローを制御するために、パケットフローのパケットがローカルコントローラに転送される。ローカルコントローラは、ローカルコントローラの構成に従う規則に基づいて、受信されたパケットフローのパケットのヘッダフィールドを解釈する。パケットのヘッダフィールドを解釈すると、ローカルコントローラは、処理のためにパケットを自身の内部プロトコルスタックに転送する。好ましくは、それらのパケットはローカルコントローラを宛先とする。
【００４９】
好ましい実施形態では、１つまたは複数のパケットフローを制御するステップは、パケットフローのパケットをローカルコントローラに転送し、ローカルコントローラの構成に従った規則に基づいて、受信されたパケットフローのパケットのヘッダフィールドを解釈し、さらに処理するためにパケットをその内部のローカルプロトコルスタック、すなわちローカルコントローラの内部のローカルプロトコルスタックに転送することによりパケットを終端するステップをさらに含む。
【００５０】
好ましい実施形態では、ローカルコントローラはパケット／フレームジェネレータを有する。パケット／フレームジェネレータを使用して、ローカルコントローラは新しいパケットを生成することができる。以下でより詳細に説明するように、ローカルコントローラは、全く新しいパケットを生成すること、既存のパケットに新しいヘッダフィールドを生成すること、および／またはパケットのヘッダフィールドを解釈し、場合によっては再定義することができる可能性がある。好ましくは、ローカルコントローラは、新しいパケットを、１つまたは複数の第２のネットワーク要素の１つまたは複数に送信する。
【００５１】
この文脈で、本明細書において特徴「パケット」が使用される場合、当業者は、実装によっては「パケット」の代わりに特徴「フレーム」と呼ばれることもあり得ることを認識することに留意されたい。つまり、パケットを処理することに代えて、またはそれに加えて、パケットフロー、したがってフレームのフローの処理、例えば制御の実装に応じて、フレームが同様に処理される可能性もある。さらに一般的には、本発明の教示は、ＯＳＩ参照モデルのあらゆるレベル（パケット、フレーム、セグメント等を含む）にも適用できる可能性がある。好ましい実施形態では、ローカルコントローラの構成に従った規則に基づいて、受信されたパケットフローのパケットのヘッダフィールドを解釈した後、ローカルコントローラは、ローカルコントローラのパケット／フレームジェネレータで、新しいヘッダフィールドを持つ新しいパケットを生成する。
【００５２】
好ましい実施形態では、ローカルコントローラは、詳細にはローカルコントローラのパケット／フレームジェネレータを使用して、ローカルコントローラの構成によって事前に定義された方式で新しいヘッダフィールドを生成するように構成される。ローカルコントローラは、例えば送信元アドレスの長さが２バイト短く（例えば８バイトではなくわずか６バイト）、送信先アドレスが２バイト短い新しいパケットを生成するように構成することができ、したがって４バイトの節減となる。これは、使用されるすべての送信元アドレスおよび送信先アドレスそれぞれを定義するのに６バイトで十分な場合に適用される可能性がある。ローカルコントローラは、残りの４バイトを、例えば拡張された種別フィールドとして、および／またはパケットのヘッダフィールドに優先度を示すために使用することができる。
【００５３】
好ましい実施形態では、ローカルコントローラは、パケット／フレームジェネレータを使用して１つまたは複数のメッセージを作成し、その１つまたは複数のメッセージを、スイッチを介して、１つまたは複数の第２のネットワーク要素の１つまたは複数に送信する。好ましい実施形態では、ローカルコントローラは、詳細にはパケット／フレームジェネレータを使用して、生成されたパケットを使用してメッセージを作成することができる。ローカルコントローラは、ルーティングプロトコルで使用されるｈｅｌｌｏメッセージのようなネイバに指示を与える周期的なメッセージを作成することができる。ローカルコントローラは、追跡メッセージ、ループバックメッセージ、ｐｉｎｇのような、リンクの完全性検査、操作、および保守管理のメッセージを作成することができる。ローカルコントローラは、特にトポロジーの発見がネットワーク要素に委ねられ、ローカルコントローラがトポロジー発見処理を行うように構成される場合に、ルーティングプロトコルで使用されるリンク状態プロトコルデータ単位（ＬＳＰ）を作成することができる。
【００５４】
好ましい実施形態では、ローカルコントローラは、状態機械、および／また学習されたＭＡＣアドレスのテーブル、ルーティングプロトコルのネイバのデータベース、および／またはトポロジーデータベースを格納することによって、ローカル状態を保持するように構成することができる。
【００５５】
好ましい実施形態では、中央コントローラは、オープンプログラマビリティの概念を維持するインターフェースを介して、第１のネットワーク要素のスイッチおよび第１のネットワーク要素のローカルコントローラと通信する。好ましくは、インターフェースは、ＯｐｅｎＦｌｏｗプロトコルで定義される。
【００５６】
好ましい実施形態では、ローカルコントローラは、ネットワーク要素の運用者が望むローカルコントローラの任意の構成方式で、すなわち事前構成のベンダー固有の実装の制約を受けずに構成するのに適する可能性がある。同様に、スイッチも、ネットワーク要素の運用者が望む任意のスイッチの構成方式で構成するのに適する可能性がある。スイッチおよびローカルコントローラを備えるネットワーク要素の運用者は、ベンダー固有の実装の制約を全く受けずに、スイッチ、ローカルコントローラ、およびしたがってネットワーク要素の完全な構成を提供することができる。言い換えると、例えば小売業者などのネットワーク要素のベンダーによってあらかじめ構成され、事前に定義されたパラメータの構成のみが許されるルータやスイッチなどのネットワーク要素と異なり、本発明では、ネットワーク要素、ならびにネットワーク要素内部のスイッチ、ルータ、およびローカルコントローラは、ベンダー固有の制約を受けることなく、スイッチ、ルータ、およびローカルコントローラを含むネットワーク要素の運用者によって任意の方式でプログラムすることができる。このオープンプログラマビリティの概念は例えばＯｐｅｎｆｌｏｗプロトコルで定義される可能性がある。同様に、中央コントローラの運用者（ローカルコントローラの運用者と同じである場合もある）は、スイッチ（またはルータ）およびローカルコントローラを、望むように構成することができる。
【００５７】
好ましくは、ローカルコントローラの構成は、通信ネットワークの運用者により、運用者が望むローカルコントローラの任意の構成として提供されることができ、これは、ローカルコントローラ、またはローカルコントローラを備えるネットワーク要素のベンダーから与えられる制限に制約されないことを意味する。
【００５８】
中央コントローラとネットワーク要素の間、したがって中央コントローラとスイッチの間、および／または中央コントローラとローカルコントローラの間のインターフェースは、Ｓｏｕｔｈｂｏｕｎｄインターフェースと定義することができる。用語「Ｓｏｕｔｈｂｏｕｎｄインターフェース」は、中央コントローラと、転送を行う要素またはネットワーク要素であるノードとの間のインターフェースに使用されることがある。
【００５９】
一般的な見解として、本明細書でスイッチに関して記載される内容は、ネットワークがスイッチに代えて、またはスイッチに加えてルータを備える場合には、対応してルータにも該当する。
【００６０】
好ましい実施形態では、中央コントローラからスイッチおよびローカルコントローラを備えるネットワーク要素に送信される構成メッセージのパケットフローおよびさらなるパケットフローのパケットは、中央コントローラとネットワーク要素の間で同じインターフェースを介して、詳細には同じポートを介して受信される。中央コントローラからネットワーク要素に送信される構成メッセージのパケットフローおよびさらなるパケットフローのパケットは、ネットワーク要素の同じポート、詳細には同じ物理ポートを介して受信される場合がある。構成メッセージのパケットフローおよびさらなるパケットフローのパケットは、同じ物理ポートで受信されるが、論理ポートは異なる場合があり、すなわち、構成メッセージのパケットは、さらなるパケットフローのパケットがネットワーク要素で受信される論理ポートとは異なるネットワーク要素の論理ポートで受信される可能性がある。構成メッセージのパケットフローおよびさらなるパケットフローのパケットは、同じ物理ポートおよび同じ論理ポートで受信される場合もある。この文脈におけるさらなるパケットフローは、中央コントローラからネットワーク要素に送信されるデータフローまたは任意のパケットフロー、詳細にはスイッチの構成およびローカルコントローラの構成に基づいて制御されるパケットフローである可能性がある。そのようなパケットフローの一例は、パケットフローの送信先を決定するためにスイッチが中央コントローラに送信した未知のパケットフローの送信先アドレスの指示を含むパケットフローである。中央コントローラからスイッチを含むネットワーク要素に送信される指示メッセージは、スイッチが中央コントローラから構成メッセージを受信したポートと同じポートで受信される場合もあり、同じポートは、構成メッセージと同じ物理ポートおよび同じ論理ポートであるか、または物理ポートは同じであるが、論理ポートは異なる場合がある。上記でネットワーク要素のポートに関して説明した内容は、同様に中央コントローラのポートに関しても該当する可能性がある。
【００６１】
ローカルコントローラが本明細書に記載されるように通信ネットワーク内のデータフローの制御を提供するように構成されるため、ローカルコントローラがなければ中央コントローラで処理されなければならない制御を提供するようにローカルコントローラが構成される限り、中央コントローラは、制御処理の多大な負担から解放されるか、または負担が軽減される。例えば、ローカルコントローラがなければ、ローカルコントローラで処理されるメッセージやデータパケットは、中央コントローラとネットワーク要素の間で交換されなければならない。
【００６２】
さらに、本明細書に記載されるようにローカルコントローラがデータフローの制御を提供するように構成されるので、スイッチやルータなどのネットワーク要素に市販ハードウェアが使用されることが可能である。中央コントローラがローカルコントローラに制御機能を委ねるため、ローカルコントローラは、中央コントローラと協働してデータフローやパケットフローの制御を提供する。それにより、ネットワーク要素内で、単純でしたがって安価なスイッチおよびルータを使用することが可能になる。ルータおよびスイッチを備えるネットワーク要素は制御機能がかなり制約されるか、さらには制御機能を持たず、単なる転送を行う要素であることを表すために、ネットワーク要素は「転送要素」と呼ばれることがある。
【００６３】
さらに、「ローカルコントローラが１つまたは複数のパケットフローを制御する」という表現は、１つまたは複数のパケットフローがローカルコントローラだけによって制御されるという意味には理解すべきでないことを強調したい。つまり、１つまたは複数のパケットフローの制御はローカルコントローラだけによって提供されるのではなく、１つまたは複数のパケットフローの制御は、詳細には中央コントローラとローカルコントローラの両方、さらにはスイッチまたはルータが例えばスイッチまたはルータの構成に従ってパケットフローの転送を決定するなど、その構成に従って制御機能を持つ限り、スイッチまたはルータによって提供される。したがって、ローカルコントローラによる制御の範囲は、特許請求の範囲および本明細書に記載される例示的な詳細に開示される。
【００６４】
好ましい実施形態では、通信ネットワークは、記載される中央コントローラに加えて実装される１つまたは複数の第２の中央コントローラも備えることができる。１つまたは複数の第２の中央コントローラは、この場合プライマリ中央コントローラとなる上記の中央コントローラが機能しなくなった場合に、冗長な中央コントローラとして使用される可能性がある。それに代えて、またはそれに加えて、第２の中央コントローラの１つまたは複数は、通信ネットワークのうち定義された区間について、または互いと通信する複数の通信ネットワークのために構成される場合もある。
【００６５】
通信ネットワークは、コンピュータなど、ハードウェアおよび／またはソフトウェアとして実装されたアプリケーション要素も備える場合がある。アプリケーション要素は通信デバイス（電話や映像等）である可能性がある。中央コントローラと１つまたは複数のアプリケーション要素の間のインターフェースは、Ｎｏｒｔｈｂｏｕｎｄインターフェースと定義される場合がある。用語「Ｎｏｒｔｈｂｏｕｎｄインターフェース」は、中央コントローラとアプリケーションの間のインターフェースに使用されることがある。
【００６６】
好ましい実施形態では、ローカルコントローラは「衛星コントローラ」と定義される場合がある。好ましい実施形態では、通信ネットワークは「ソフトウェア定義ネットワーク」（ＳＤＮ）である可能性がある。好ましい実施形態では、ローカルコントローラが衛星ＳＤＮコントローラ（ＳＳＣ）であり、中央コントローラが中央ＳＤＮコントローラ（ＣＳＣ）である可能性がある。ＯｐｅｎＦｌｏｗの仕様によると、中央ＳＤＮコントローラまたは衛星ＳＤＮコントローラを発信元とするパケット（特にスイッチを宛先とする）はｐａｃｋｅｔ＿ｏｕｔと定義され、中央ＳＤＮコントローラまたは衛星ＳＤＮコントローラに受信されるパケット（特にスイッチを発信元とする）はｐａｃｋｅｔ＿ｉｎと定義される場合がある。
【００６７】
好ましい実施形態では、ローカルコントローラは、１つのネットワーク要素内に、異なるタスクを持つ複数の衛星コントローラを含むモジュール方式で実装される場合がある。好ましくは、各衛星コントローラは、モジュール式で実装されるローカルコントローラの他の衛星コントローラの論理ポートと異なる１つの論理ポートを介してアドレス指定されることが可能である。好ましくは、各衛星コントローラは、同じ物理ポートに接続され、同じ論理ポートを介してアドレス指定される。好ましくは、各衛星コントローラは、異なる物理ポートに接続されている場合は、同じ論理ポートを介してアドレス指定されることが可能である。好ましくは、各衛星コントローラは、異なる物理ポートに接続され、同じ論理ポートを介してアドレス指定される。好ましくは、各衛星コントローラは、異なる物理ポートに接続され、異なる論理ポートを介してアドレス指定される。
【００６８】
好ましい実施形態では、衛星コントローラは、１つのネットワーク要素内に、異なるタスクを持つ衛星コントローラの複数のモジュールを含むモジュール方式で実装される場合がある。好ましくは、衛星コントローラの各モジュールは、モジュール式で実装される衛星コントローラの他のモジュールの論理ポートと異なる１つの論理ポートを介してアドレス指定されることが可能である。好ましくは、各モジュールは、同じ物理ポートに接続され、同じ論理ポートを介してアドレス指定される。好ましくは、各モジュールは、異なる物理ポートに接続されている場合には、同じ論理ポートを介してアドレス指定されることが可能である。好ましくは、各モジュールは、異なる物理ポートに接続され、同じ論理ポートを介してアドレス指定される。好ましくは、各モジュールは、異なる物理ポートに接続され、異なる論理ポートを介してアドレス指定される。
【００６９】
好ましい実施形態では、ローカルコントローラは、１つのネットワーク要素の中に複数のモジュールを含み、複数のモジュールの各モジュールは、複数のモジュールの他のモジュールによって実装されるタスクと異なる１つまたは複数のタスクを実装し、各モジュールは、他のモジュールの論理ポートと異なる１つの論理ポートを介してアドレス指定される。好ましくは、各モジュールは、同じ物理ポートに接続され、同じ論理ポートを介してアドレス指定される。好ましくは、各モジュールは、異なる物理ポートに接続されている場合には、同じ論理ポートを介してアドレス指定されることが可能である。好ましくは、各モジュールは、異なる物理ポートに接続され、同じ論理ポートを介してアドレス指定される。好ましくは、各モジュールは、異なる物理ポートに接続され、異なる論理ポートを介してアドレス指定される。
【００７０】
好ましい実施形態では、ローカルコントローラは仮想的に実装される場合がある。仮想の、または仮想化されたローカルコントローラは、１つのネットワーク要素の中に複数のインスタンス、詳細にはソフトウェアインスタンスを含む。各ソフトウェアインスタンスは、他のソフトウェアインスタンスのタスクと異なる１つまたは複数のタスクを実装することができる。あるいは、ソフトウェアインスタンスの１つまたは複数が、１つまたは複数の同じタスクを実装する場合もある。ローカルコントローラのソフトウェアインスタンスは、ネットワーク要素の複数の管理者または運用者、すなわち異なる管理者または運用者によって制御される場合がある。各管理者または運用者は、ソフトウェアインスタンスの１つまたは複数を制御することができる。各管理者または運用者は、複数の管理者または運用者のうち他の管理者または運用者によって制御されるソフトウェアインスタンスと異なる１つまたは複数のソフトウェアインスタンスを制御することができる。好ましくは、通信ネットワークは、複数の管理者または運用者によって制御される「マルチテナントネットワーク」として実装される場合がある。
【００７１】
好ましい実施形態では、ローカルコントローラは、１つのネットワーク要素の中に複数のインスタンス、詳細にはソフトウェアインスタンスを含み、ローカルコントローラの各インスタンスは１つまたは複数のタスクを実装し、ローカルコントローラの各インスタンスは複数の管理者の中の１人の管理者によって制御可能である。
【００７２】
好ましい実施形態では、１つまたは複数のローカルコントローラは、ある程度の基本的な事前構成がなされた状態で機器製造者から出荷され、その構成を後に中央コントローラによって上書きまたは非アクティブにすることができる。好ましくは、そのような事前構成は、制御ネットワークのトポロジー発見や中央コントローラとの間の通信チャネルの確立を行うための基本的なルーティングプロトコル機能を含むことができる。好ましくは、そのような事前構成は何らかの不揮発性メモリ、例えばＥｐｒｏｍに存在する。
【００７３】
ネットワーク要素は、通信ネットワークのノードと呼ばれる場合もある。
【００７４】
本発明は、ネットワーク要素に市販ハードウェアを使用することを可能にする。さらに、ネットワーク要素、詳細にはスイッチ、ルータ、およびローカルコントローラは、ネットワーク要素の運用者および／または中央コントローラの運用者（両者は同じ運用者である場合もある）が望む方式で、すなわちベンダーに固有の制約を受けずに構成することが可能であるため、本発明は新しいプロトコルの導入を可能にし、これは詳細には特にローカルコントローラのパケット／フレームジェネレータを使用して新しいパケット形式を定義することによる。
【００７５】
本発明の特徴および利点は、実施形態の詳細な説明を理解することによってより完全に理解されよう。
【図面の簡単な説明】
【００７６】
【図１】通信ネットワークの要素、および通信ネットワーク内の制御を提供する方法のステップを示す図である。
【図２】通信ネットワークの要素、および通信ネットワーク内の制御を提供する方法のステップを示す図である。
【図３】通信ネットワークの要素、および通信ネットワーク内の制御を提供する方法のステップを示す図である。
【図４】通信ネットワークの要素、および通信ネットワーク内の制御を提供する方法のステップを示す図である。
【図５】通信ネットワークの要素、および通信ネットワーク内の制御を提供する方法のステップを示す図である。
【図６】通信ネットワークの要素、および通信ネットワーク内の制御を提供する方法のステップを示す図である。
【図７】通信ネットワークの要素、および通信ネットワーク内の制御を提供する方法のステップを示す図である。
【図８】通信ネットワークの要素、および通信ネットワーク内の制御を提供する方法のステップを示す図である。
【発明を実施するための形態】
【００７７】
図１は通信ネットワーク１の一部を示す図であり、例示の理由から一部のデバイスと要素を図示しており、それらについて以下でより詳細に説明する。通信ネットワーク１は、ネットワーク要素３、７および中央コントローラ５を備える。当業者は、通信ネットワーク１は記載のデバイスおよび要素を複数備え、また図示されないアプリケーション要素などのさらに他の構成要素を備える場合があることを認識されよう。図１はさらに、スイッチ４およびローカルコントローラ２を構成するステップを示している。
【００７８】
図１は、第１のネットワーク要素３と、２つの第２のネットワーク要素７を示す。通信ネットワーク１は通常、図示されない複数の第２のネットワーク要素７を含む。ネットワーク要素の内部実装は、第１のネットワーク要素３に例示の理由で示している。第２のネットワーク要素７も、同じまたは同等の内部実装を有する可能性がある。第１のネットワーク要素３は、スイッチ４およびローカルコントローラ２を備える。さらに、ローカルコントローラ２は、パケット／フレームジェネレータ８を備える。
【００７９】
通信ネットワーク１内の制御を提供する方法を実装するために、第１のネットワーク要素３のスイッチ４およびローカルコントローラ２が構成される。スイッチ４およびローカルコントローラ２の構成に基づいて、第１のネットワーク要素３と、第１のネットワーク要素３のスイッチ４と、第１のネットワーク要素３のローカルコントローラ２と、中央コントローラ５と、１つまたは複数の第２のネットワーク要素７とを含む通信ネットワーク１の少なくとも２つの構成要素、要素、またはデバイス間の１つまたは複数のパケットフローが制御される。
【００８０】
第１のネットワーク要素３に関して説明される対応する構成は、第２のネットワーク要素７にも実装される可能性があることに留意されたい。通信ネットワーク１の第１のネットワーク要素３のスイッチ４、および第１のネットワーク要素３のローカルコントローラ２を構成するために、中央コントローラ５は、スイッチ４およびローカルコントローラ２を備える第１のネットワーク要素３に、１つまたは複数の構成メッセージを送信する。
【００８１】
スイッチ４およびローカルコントローラ２の構成によって制御されるパケットフローと同様に、構成メッセージも好ましくは１つまたは複数のパケットフローである。したがって、通信ネットワーク１内で処理されるパケットフローは、スイッチ４およびローカルコントローラ２を構成するために使用される構成メッセージと、通信データ（電子メールデータ、インターネット、電話、テレビ、さらなるデータフロー、特にＩＰフロー）などのさらなるパケットフローとを含む可能性がある。明示的にスイッチ４およびローカルコントローラ２の構成に使用されるパケットフローが参照される場合、これらのフローは「構成メッセージ」と呼ばれる。したがって、用語「パケットフロー」は、本願の教示に従って通信ネットワーク内で処理および制御される任意のパケットフローを指す。
【００８２】
第１のネットワーク要素３のスイッチ４は、中央コントローラ５から１つまたは複数の構成メッセージを受信する（図１の参照符号６ａを参照）。スイッチ４が、受信された構成メッセージ（図１の参照符号６ａ参照）がスイッチ４の構成を目的とするものであると決定した場合、スイッチ４はそれに従ってスイッチ４の構成を実施する。スイッチ４が、受信された構成メッセージ（図１の参照符号６ａ参照）がローカルコントローラ２の構成を目的とするものであると決定した場合、スイッチ４は構成メッセージをローカルコントローラ２に転送する（図１の参照符号６ｂ参照）。スイッチ４は、構成メッセージのパケット中のサブアドレスにより、構成メッセージがスイッチ４を宛先とするかローカルコントローラ２を宛先とするかを決定することができる。好ましくは、構成メッセージがスイッチ４の構成を目的とする場合、パケットヘッダに示される第１のアドレスがネットワーク要素３のアドレスであり、パケットヘッダにある第２のアドレスがスイッチ４のアドレスである。構成メッセージがローカルコントローラ２の構成を目的とする場合は、第２のアドレスがローカルコントローラ２のアドレスになる。第２のアドレスは、サブアドレスであるか、またはソフトウェアインスタンスの指示とすることができる。
【００８３】
構成メッセージの文脈で説明されるアドレス、サブアドレス、ソフトウェアインスタンスの指示の実装と処理は、通信ネットワーク１内で処理される、詳細には制御されるどのパケットフローにも同様に適用できる可能性がある。
【００８４】
スイッチ４が、構成メッセージがローカルコントローラ２の構成を目的とすると決定した場合、スイッチ４は構成メッセージをローカルコントローラ２に転送する（図１、参照符号６ｂ）。ローカルコントローラ２は、構成メッセージを使用して、本明細書に記載されるように、通信ネットワーク１のデバイス、要素、および構成要素のうち１つまたは複数の間の１つまたは複数のパケットフローを制御するように構成される。
【００８５】
好ましくは、スイッチ４およびローカルコントローラ２の構成を実施するために、中央コントローラ５は、最初のステップでスイッチ４を構成するための構成メッセージを送信し、２番目のステップでローカルコントローラ２を構成するための構成メッセージを送信することができる。スイッチ４の構成メッセージは、特にローカルコントローラ２のアドレスを含むことができ、したがって、スイッチ４がローカルコントローラ２の構成メッセージを受信すると、スイッチ４は、ローカルコントローラ２のアドレスを知り、ローカルコントローラ２を宛先とする構成メッセージをローカルコントローラ２に転送することができる。
【００８６】
図２は、通信ネットワーク１内で１つまたは複数のパケットフローを制御する方法のステップを説明する図である。第１のネットワーク要素３のスイッチ４がパケットフローのパケットを受信する（図２、参照符号９ａ）。パケットフローは、第２のネットワーク要素７を送信元とする可能性がある。さらに他の実施形態では、パケットフローは、中央コントローラ５またはローカルコントローラ２を送信元とする場合もある。スイッチ４は、パケットフローのパケットの転送の決定を行い、それに応じてパケットフローのパケットを転送する。
【００８７】
スイッチ４がパケットフローのパケットを中央コントローラ５に転送すべきと決定した場合、スイッチは、パケットフローのパケットを中央コントローラ５に転送する。同様に、スイッチ４は、パケットがローカルコントローラ２または第２のネットワーク要素７の１つまたは複数を宛先とすると決定した場合には、パケットをそれぞれローカルコントローラ２または第２のネットワーク要素７の１つまたは複数に転送する。
【００８８】
スイッチ４が受信したパケットフローをさらに転送するかどうかを決定するプロセスは、スイッチ４が受信したパケットフローを知っているか否かに依存する。言い換えると、パケットフローの送信先を得るために、スイッチ４はまず、受信されたパケットフローがスイッチ４に既知であるかどうかをスイッチ４の構成に従って決定する。スイッチ４は、好ましくは、詳細には、パケットフローのアドレスおよび送信先を含んでいる参照表により、スイッチ４が受信されたパケットフローの送信先を知っているかどうかを決定する。好ましい実施形態では、スイッチ４は、詳細には、参照表が、ヘッダフィールドと、パケットフローの転送先についてスイッチ４中に設定された規則との一致を含んでいるかどうかを決定し、それに応じてパケットフローを転送する。好ましい実施形態では、スイッチ４は、参照表が、詳細には受信されたパケットフローの送信先アドレスを含んでいるヘッダフィールドと、パケットフローの転送先についてスイッチ４中に設定された規則との一致を含んでいるかどうかを決定し、それに応じてパケットフローを転送する。参照表が受信されたパケットフローのヘッダフィールドと一致する規則を含んでいない場合は、スイッチ４がパケットの転送先を決定できないことを意味し、デフォルトの構成が提供される。好ましくは、デフォルトの構成に従って、パケットは中央コントローラに転送される。それに代えて、またはそれに加えて、デフォルトの構成に従って、パケットはローカルコントローラに転送される。好ましくは、パケットは破棄されることが可能である。好ましくは、パケットは、１つまたは複数の事前に定義された物理ポートおよび／または論理ポートに転送されることが可能である。
【００８９】
スイッチ４の構成に従ってパケットフローが既知のパケットフローである場合は、スイッチ４は、スイッチ４の構成に従ってパケットフローのパケットの送信先を決定する。
【００９０】
図３は、特定の既知のパケットフローの転送を説明する図である。スイッチ４が、第２のネットワーク要素７の１つからパケットフローのパケットを受信する（図３、参照符号９ｂ）。スイッチ４は、受信されたパケットフローがスイッチ４に既知であり、詳細には、パケットフローを送信者に返送すべき状況を除いて、そのパケットフローを、好ましくはそのパケットフローの送信元である第２のネットワーク要素と同じではない１つまたは複数の第２のネットワーク要素７に転送すべきであると決定する。したがって、パケットフローは第２のネットワーク要素７の１つから受信され、スイッチにより、１つまたは複数の好ましくは異なる第２のネットワーク要素７、すなわち送信元のネットワーク要素とは異なる第２のネットワーク要素７に転送される（図３、参照符号９ｃ）。
【００９１】
図４に示す別の例示的実施形態では、スイッチ４がパケットフローを受信し（図４、参照符号９ｄ）、受信されたパケットフローはスイッチ４に既知であり、パケットフローの送信先がローカルコントローラ２であると決定する。したがって、スイッチ４はパケットをローカルコントローラ２に転送する（図４、参照符号９ｅ）。
【００９２】
やはり図４に示すさらに別の例示的実施形態では、スイッチ４がパケットフローを受信し（図４、参照符号９ｆ）、そのパケットフローがスイッチ４に既知であり、パケットフローの送信先が中央コントローラ５であると決定する。したがって、スイッチ４はパケットフローを中央コントローラ５に転送する（図４、参照符号９ｇ）。
【００９３】
別の例示的実施形態では、スイッチ４が自身の構成に従ってスイッチ４に未知であるパケットフローを受信する。この場合、スイッチ４は、自身の構成、詳細には参照表で、パケットフローの宛先のネットワーク要素またはデバイスを決定することができない。例えば、スイッチ４は第２のネットワーク要素７の１つからパケットフローを受信するが、受信されたパケットフローのパケットに示されたアドレスがスイッチ４にとって未知のアドレスである。詳細には、スイッチ４の参照表が、受信されたパケットフローのアドレスのエントリ、または示されるアドレスと送信先との一致を含んでいない。その場合、スイッチ４は、中央コントローラ５またはローカルコントローラ２いずれかの助けを借りてパケットフローの送信先を決定することになる。
【００９４】
好ましい実施形態では、スイッチ４がパケットフローを受信し（図５、参照符号９ｈ）、スイッチ４が自身の構成に従ってそのパケットフローを知らないと決定する。本実施形態では、スイッチ４は、スイッチ４に受信された未知のパケットフローのパケットを中央コントローラ５に転送するように構成される。言い換えると、スイッチ４の構成、詳細にはスイッチ４の参照表が、パケットフローを転送すべきネットワーク要素またはデバイスのアドレスを含んでいない。参照表は、ネットワーク要素のアドレスと、パケットフローを転送すべき送信先、例えばスイッチ４のポートとの一致さえも含んでいない。したがって、スイッチ４は、パケットフローを最終的に送信すべき、アドレス指定されたパケットフローの宛先の受信者であるネットワーク要素を知らず、また、スイッチ４は、スイッチのどのポート、この場合はどの出力ポートを介してそのパケットフローを転送すべきかも知らない。したがって、パケットフローはスイッチ４にとって未知である。スイッチ４は、未知のパケットフローまたは未知のパケットフローの１つまたは複数のパケットを中央コントローラ５に転送する（図５、参照符号９ｉ）。中央コントローラ５は、パケットフローの送信先を決定し、パケットフローの送信先の指示をスイッチ４に送り返し（図５、参照符号９ｊ）、スイッチ４はその指示に基づいてパケットフローの送信先を通知され、すなわちスイッチ４はパケットフローのパケットに示されたアドレスを送信先と知り、パケットフローを、スイッチ４に知られたアドレスに転送する。例えば、スイッチ４は、指示により、パケットフローを第２のネットワーク要素７の１つに転送すべきことを通知され、それに従ってパケットフローを指示されたネットワーク要素７に転送する（図５、参照符号９ｋ）。
【００９５】
好ましくは、上述の実施形態で、スイッチ４に受信された未知のパケットフローの送信先を決定するために、スイッチ４は、未知のパケットフローのすべてのパケットを中央コントローラ５に送信するのではなく、スイッチ４は、受信された未知のパケットフローのパケットの１つまたは複数のみを中央コントローラ５に送信する。中央コントローラ５は、スイッチ４に未知のパケットフローの１つまたは複数のパケットを受信する。中央コントローラ５はパケットフローの送信先を決定する。中央コントローラ５は、パケットフローのネットワーク要素およびデバイスのアドレスを含んでいる参照表でパケットフローの送信先を決定することができる。中央コントローラ５は、パケットフローの送信先をスイッチ４に指示する。好ましくは、中央コントローラ５は、パケットフローの送信先を、前にスイッチ４から中央コントローラ５に送信されたパケットフローのパケットのうち１つまたは複数で指示し、指示されるアドレスを含んだパケットの１つまたは複数を、スイッチ４に既知の方式でスイッチ４に送り返す。送信先の指示は、中央コントローラ５がパケットのアドレスをスイッチに通知するという形で提供され、それによりスイッチ４はパケットフローのアドレスが属するネットワーク要素、すなわちパケットフローの転送先を知り、それに応じてパケットフローを転送することができる。別の実装では、送信先の指示は、詳細には、スイッチ４がパケットフローを転送する際に介するスイッチ４のポートアドレスである場合がある。その場合、スイッチ４は、パケットフローが最終的に送信されるネットワーク要素すら知らないが、スイッチ４は、指示されたスイッチ４のポートを介してパケットフローを転送するように通知され、それに従って指示されたポートを介してパケットフローを転送する。別の実装では、パケットフローを転送するためのパケットフローの送信先またはスイッチ４のポートの指示は、中央コントローラ５からスイッチに、その必要な転送情報、詳細には転送するスイッチ４のポート、またはパケットフローを転送すべきネットワーク要素の情報を含んでいるメッセージで送信され、例えば、スイッチ４の参照表に存在しないエントリを補う内容として転送情報と共に送信先アドレスを指示する。
【００９６】
図６に示す別の好ましい実施形態では、スイッチ４は、スイッチ４に未知のパケットフローのパケットをローカルコントローラ２に送信するように構成される。この場合、パケットの送信先はローカルコントローラ２によって決定され、指示される。スイッチ４はパケットフローを受信し（図６、参照符号９ｌ）、スイッチ４の構成、詳細にはスイッチ４の参照表が、スイッチ４に受信されたパケットフローのパケットに示されたネットワーク要素のアドレス（パケットフローの転送先）を含んでいないことから、そのパケットフローがスイッチ４に未知であると決定する。したがって、スイッチ４は、そのパケットフローを送信すべき、アドレス指定されたパケットフローの宛先の受信者であるネットワーク要素を知らない。さらに、スイッチ４の参照表は、指示されたアドレスと、パケットフローをそれを介して転送すべきスイッチ４のポートとの一致すら含んでいない。したがって、パケットフローはスイッチ４に未知である。自身の構成に従って、スイッチ４は未知のパケットフローをローカルコントローラ２に転送する（図６、参照符号９ｍ）。ローカルコントローラ２は、パケットフローの送信先を決定し、パケットフローの送信先の指示をスイッチ４に送り返す（図６、参照符号９ｎ）。その指示に基づいて、スイッチ４にパケットフローの送信先が通知され、すなわちスイッチ４は、パケットフローのパケットに示されたアドレスを知り、それに応じてパケットフローを転送する。この例では、スイッチはここで第２のネットワーク要素７の１つにパケットフローを転送するように通知され、それに応じてパケットフローを転送する（図６、参照符号９ｏ）。
【００９７】
好ましくは、上述の実施形態で、スイッチ４に受信された未知のパケットフローの送信先を決定するために、スイッチ４は、未知のパケットフローのすべてのパケットをローカルコントローラ２に送信するのではなく、スイッチ４は、受信された未知のパケットフローのパケットの１つまたは複数のみをローカルコントローラ２に送信する。ローカルコントローラ２は、スイッチ４に未知のパケットフローの１つまたは複数のパケットを受信する。ローカルコントローラ２はパケットフローの送信先を決定する。ローカルコントローラ２は、パケットフローのネットワーク要素およびデバイスのアドレスを含んでいる参照表で、パケットフローの送信先を決定することができる。ローカルコントローラ２は、パケットフローの送信先をスイッチ４に指示する。好ましくは、ローカルコントローラ２は、前にスイッチ４からローカルコントローラ２に送られたパケットフローのパケットのうち１つまたは複数でパケットフローの送信先を指示し、スイッチが、指示されるアドレスに対応するパケットフローを転送すべき送信先アドレスを決定できるような形で、アドレスの指示と共にパケットの１つまたは複数をスイッチ４に送り返す。送信先の指示は、ローカルコントローラ２がパケットのアドレスをスイッチ４に通知するという形で提供され、それによりスイッチ４はパケットフローのアドレスが属するネットワーク要素を知り、それに応じてパケットフローを転送することができる。別の実装では、送信先の指示は、詳細には、スイッチ４がパケットフローを転送する際に介するスイッチ４のポートアドレスである場合がある。その場合、スイッチ４は、パケットフローが最終的に送信されるネットワーク要素すら知らないが、スイッチ４は、指示されたスイッチ４のポートを介してパケットフローを転送するように通知され、それに従って指示されたポートを介してパケットフローを転送する。別の実装では、パケットフローを転送するためのパケットフローの送信先またはスイッチのポートの指示は、ローカルコントローラ２からスイッチ４に、その必要な転送情報、詳細には転送するスイッチのポート、または送信先アドレスに対応するネットワーク要素を指示する情報を含むメッセージで送信される。
【００９８】
好ましい実施形態では、パケットの転送は、スイッチ４の構成と、ローカルコントローラ２の構成に従ってローカルコントローラ２で適用される規則とに基づく。言い換えると、パケットをスイッチ４から転送すべき場合、スイッチ４は、上記のように中央コントローラ５から受信される構成メッセージで提供される自身の構成に従って、転送を決定する。さらに、好ましい実施形態では、スイッチは、ローカルコントローラ２で適用される転送に関する規則を適用することができ、したがって中央コントローラ５からの構成メッセージで構成される。つまり、スイッチ４およびローカルコントローラ２の構成が、構成メッセージを利用して中央コントローラ５から提供される。そして、スイッチ４が特定のパケットフローを転送しなければならない場合、スイッチ４は、スイッチ４の構成に基づいて転送を決定し、これは特定のパケットフローの転送を決定するのに十分である場合もある。しかし、他の状況では、中央コントローラ５から提供されるスイッチ４の構成は、特定のパケットフローの転送についてローカルコントローラ２の規則を付加的に適用できることを指示する場合もある。その理由から、ローカルコントローラ２は、スイッチ４による前記特定のパケットフローの転送の処理にローカルコントローラ２が適用する前記規則をもって、中央コントローラ５によってあらかじめ構成されている。これは、スイッチ４の詳細な構成の一部は、スイッチ４の詳細な構成に関して中央コントローラ５からローカルコントローラ２に提供される規則を使用して、ローカルコントローラ２を介して中央コントローラ５から提供されると言うこともできる。したがって、中央コントローラ５は、スイッチ４の構成のあらゆる詳細、例えば、パケットフローの転送を決定するために必要なすべてのトポロジー情報を提供する必要はなく、その負担から解放される。例えば、ローカルコントローラ２は、通信ネットワーク１のトポロジー情報を収集して格納するように構成される場合がある。トポロジー情報に基づいて、ローカルコントローラ２は、パケットの転送に関する規則をスイッチ４に送信することができる。ローカルコントローラ２は、その理由から、まず、ローカルコントローラ２に格納されているトポロジー情報に基づいてパケットフローの転送についての規則を決定する。そして、ローカルコントローラ２は、その転送規則をスイッチ４に送り、スイッチ４は、その転送規則がその特定のパケットフローに該当する限り、ローカルコントローラ２から提供されたその転送規則に従って特定のパケットフローの転送を決定する。
【００９９】
好ましい実施形態では、１つまたは複数のパケットフローを制御するために、パケットフローのパケットがローカルコントローラ２に転送される。ローカルコントローラ２は、ローカルコントローラ２の構成に従った規則に基づいて、受信されたパケットフローのパケットのヘッダフィールドを解釈し、それに応じてパケットを転送する。ローカルコントローラ２は、その理由から、ローカルコントローラ２の運用者が望むローカルコントローラ２のヘッダフィールドの解釈の仕方でヘッダフィールドを解釈するように構成されることが可能である。例えば、ローカルコントローラ２は、運用者による構成に応じた任意の形でパケットのアドレスフィールドを解釈するように構成される場合がある。したがって、ローカルコントローラ２は、詳細には任意のプロトコルに従って、どのパケット形式の受信パケットでも処理するように構成されることが可能である。
【０１００】
好ましくは、ローカルコントローラ２は、受信されたパケットのヘッダフィールドを解釈するだけでなく、ローカルコントローラ２は受信されたパケットの新しいヘッダフィールドを生成することもできる。好ましくは、ローカルコントローラは、受信されたパケットのヘッダフィールドを解釈してから、受信されたパケットに新しいヘッダフィールドを生成するように構成される。図７に示す例では、ローカルコントローラ２が、スイッチ４を介して、第２のネットワーク要素７の１つからパケットフローのパケットを受信する（図７、参照符号９ｐ）。ローカルコントローラ２は、受信されたパケットヘッダフィールドを解釈し、新しいパケットヘッダフィールドを生成する。好ましくは、ローカルコントローラ２は、パケット／フレームジェネレータ８を備える。ローカルコントローラ２は、パケット／フレームジェネレータ８を使用して、送信するパケットに新しいヘッダフィールドを持つ新しいパケットを生成することができる。通例、ローカルコントローラ２は、適切なパラメータでパケット生成機能を呼び出して所望のヘッダフィールドを生成する。ローカルコントローラ２は、通信ネットワーク１で使用されるすべてのアドレスを符号化するのに６バイトで十分な場合は、２×８バイトのアドレスではなく、２×６バイトのアドレスを持つパケットを生成するように構成される場合があり、残りのアドレスは拡張されたパケット種別フィールドに使用される可能性がある。そのようなパケット形式は、必要とするアドレス空間は少ないが拡張されたパケット種別の区別を必要とする新しい技術の導入に有用である可能性がある。
【０１０１】
好ましくは、ローカルコントローラ２は、６バイトのアドレス定義を持つパケットを受信し（図７、参照符号９ｐ）、送信元アドレスに６バイトのアドレス、送信先アドレスに６バイトのアドレスを持つパケットを生成する。新しいヘッダフィールドを持つ新たに生成されたパケットは、送信元アドレスおよび送信先アドレスに１６バイトではなく計１２バイトしか必要としないため、４バイトが空き、他の用途に使用できるようになる。例えば、その空きバイトを使用して、拡張されたパケット種別、および／またはさらなる処理を行う際のパケットの優先度を示すことができる。次いで、ローカルコントローラ２は、第２のネットワーク要素７の１つにさらに転送するために、新しく生成されたヘッダフィールドを持つ新しいパケットをスイッチ４に送信することができる（図７、参照符号９ｑ）。
【０１０２】
好ましい実施形態では、ローカルコントローラ２は、パケット／フレームジェネレータ８を使用して１つまたは複数のメッセージを作成し、その１つまたは複数のメッセージをスイッチ４を介して１つまたは複数の第２のネットワーク要素７の１つまたは複数に送信する。ローカルコントローラ２は、上記のようにパケットフローのパケットを転送および受信するだけでなく、新しいパケットを作成し、そのパケットから新しいメッセージを形成するように構成することができる。その場合、ローカルコントローラ２は新しいメッセージを総合的に生成し、つまりローカルコントローラ２はパケットを変更するだけでなく、パケットを独自に生成する。したがって、ローカルコントローラ２はメッセージをゼロから、または総合的に作成する。これらのメッセージは、ルーティングプロトコルで使用されるｈｅｌｌｏメッセージのように、ネイバに指示を与える周期的なメッセージである場合もある。ｈｅｌｌｏメッセージで、ネットワーク要素は自身の存在を他のネットワーク要素に知らせる。例えば、第１のネットワーク要素３が第２のネットワーク要素７の１つまたは複数に自身の存在を知らせる（また可能性としては、その逆に、第２のネットワーク要素７のローカルコントローラから送信され、通信ネットワーク１内をホップ方式で転送される対応するｈｅｌｌｏメッセージで、第１のネットワーク要素３に第２のネットワーク要素７の１つまたは複数、好ましくはすべての存在が知らされる）。したがって、ネットワーク要素３、７には他のネットワーク要素７、３の存在についての情報が提供される。
【０１０３】
好ましい実施形態では、ローカルコントローラ２によって作成されるメッセージは、追跡メッセージ、ループバックメッセージ、ｐｉｎｇメッセージなど、リンクの完全性検査、操作、および保守管理のメッセージとすることができる。トポロジーの発見がネットワーク要素に委ねられ、それぞれのネットワーク要素の内部にあるローカルコントローラから提供される場合、ローカルコントローラ２で作成されるメッセージは、ルーティングプロトコルで使用されるリンク状態プロトコルデータ単位（ＬＳＰ（ｌｉｎｋ  ｓｔａｔｅ  ｐｒｏｔｏｃｏｌ））とすることができる。
【０１０４】
好ましい実施形態では、パケットフローの１つまたは複数のパケットがローカルコントローラ（２）に転送される（図７、参照符号９ｐ）。ローカルコントローラ（２）は、パケットフローの１つまたは複数のパケットを受信する。ローカルコントローラ（２）は、受信されたパケットフローのパケット中のヘッダフィールドを、ローカルコントローラ（２）の構成に従う規則に基づいて解釈し、内部のプロトコルスタックを使用してパケットフローのパケットを処理することにより、パケットフローのパケットを終端する。
【０１０５】
例示の理由で、図８に、パケット／フレームジェネレータ８を使用してローカルコントローラ２で作成され、スイッチ４を介して第２のネットワーク要素７に送信される（図８、参照符号９ｒ）ｈｅｌｌｏメッセージを示す。
【０１０６】
好ましい実施形態では、ローカルコントローラ２は、通信ネットワーク１または通信ネットワーク１の一部のローカル状態を保持するように構成される場合がある。したがって、ローカルコントローラ２は、学習されたＭＡＣアドレスのテーブル、ルーティングプロトコルのネイバのデータベース、および／またはトポロジーデータベースを格納するように構成される。ローカルコントローラ２は、第２のネットワーク要素７からのネイバのアドバタイズメントまたはそれに相当するメッセージでＭＡＣアドレスを受け取り、その情報をデータベースに格納する。ローカルコントローラ２は、第２のネットワーク要素７のＭＡＣアドレスの情報を中央コントローラ５から受信し、その情報をデータベースに格納することができる。
【０１０７】
同様に、ローカルコントローラ２は、プロトコルのピアエンティティの現在の状態を格納する状態機械を実装し、対応するプロトコルピアまたは他のプロトコルピアから受け取られるパケットに含まれている情報に基づいて、現在の状態を更新することもできる。
【０１０８】
同様に、ローカルコントローラ２は、ルーティングプロトコルのネイバについての適切な情報を含むルーティングプロトコルのネイバのデータベース、ならびに／または、第２のネットワーク要素７および／もしくは中央コントローラ５からの情報メッセージに基づくトポロジーデータベースを実装することもできる。この実装のために、中央コントローラ５は、通信ネットワーク１についての情報がローカルコントローラに格納される限り、通信ネットワーク１のすべての情報を格納する必要がなくなるか、または必要が軽減される。いずれの場合も、この情報を中央コントローラ５との間で提供および取得するための中央コントローラ５との通信は、この情報が第１のネットワーク要素３のローカルコントローラ２および／または第２のネットワーク要素７のローカルコントローラとの間で提供および取得できる限り、減る。
【０１０９】
好ましくは、中央コントローラ５は、オープンプログラマビリティの概念を維持するインターフェースを介して、第１のネットワーク要素３のスイッチ４および第１のネットワーク要素３のローカルコントローラ２と通信する。一方の側の中央コントローラ５と、他方の側のスイッチ４およびローカルコントローラ２を備える第１のネットワーク要素３との間のインターフェースは、Ｓｏｕｔｈｂｏｕｎｄインターフェースと呼ばれることがある。このインターフェースは、ＯｐｅｎＦｌｏｗプロトコルで定義される可能性がある。同じことが、中央コントローラ５と第２のネットワーク要素７の間の通信にも当てはまる。
【０１１０】
好ましくは、ローカルコントローラ２は、ネットワーク要素３の運用者が望むローカルコントローラ２の任意の構成方式で構成されることが可能である。つまり、ローカルコントローラ２の構成に関して、運用者はベンダー固有の実装や事前構成の制約を受けない。したがって、ローカルコントローラ２を含むネットワーク要素３の運用者は、ローカルコントローラ２を含むネットワーク要素３のベンダーによる事前構成に従って一部のパラメータを構成するだけでなく、ローカルコントローラ２の完全な構成を提供することができる。同様に、ネットワーク要素３の運用者は、ベンダー固有の実装や事前構成に制約されることなく、スイッチ４の完全な構成を提供することができる。
【０１１１】
第１のネットワーク要素３は、スイッチ４およびローカルコントローラ２を備える（図１参照）。スイッチ４およびローカルコントローラ２は、中央コントローラ５からの構成メッセージを受信するように構成され、また、第１のネットワーク要素３のスイッチ４の構成およびローカルコントローラ５の構成に基づいて、第１のネットワーク要素３のスイッチ４と、第１のネットワーク要素３のローカルコントローラ２と、中央コントローラ５と、１つもしくは複数の第２のネットワーク要素７と、の１つまたは複数の間の１つまたは複数のパケットフローを制御するように構成される。
【０１１２】
好ましい実施形態では、ローカルコントローラ２は、第１のネットワーク要素３内に複数のモジュールを備え、その複数のモジュールの各モジュールは、複数のモジュールの他のモジュールによって実装されるタスクと異なる１つまたは複数のタスクを実装し、各モジュールは、その他のモジュールの論理ポートと異なる１つの論理ポートを介してアドレス指定される。
【０１１３】
好ましい実施形態では、ローカルコントローラ２は、第１のネットワーク要素３の中に、異なるタスクを持つ複数の衛星コントローラを含むモジュール方式で実装される場合がある。衛星コントローラはそれぞれ、モジュール方式で実装されるローカルコントローラ２の他の衛星コントローラの論理ポートと異なる１つの論理ポートを介してアドレス指定される場合がある。１つまたは複数の衛星コントローラは、同じ物理ポートに接続され、サブアドレス、すなわち論理ポートを介して区別することができ、一方、１つまたは複数のさらに他の衛星コントローラは別の物理ポートに接続され、サブアドレス、すなわち論理ポートを介して区別することができる。
【０１１４】
好ましい実施形態では、ローカルコントローラ２は、第１のネットワーク要素３内に複数のインスタンス、詳細にはソフトウェアインスタンスを備え、ローカルコントローラ２の各インスタンスは１つまたは複数のタスクを実装し、ローカルコントローラ２の各インスタンスは、複数の管理者のうち１人の管理者によって制御可能である。
【０１１５】
本発明は、中央ＳＤＮアーキテクチャなど、中央コントローラだけを設け、ローカルコントローラを一切設けない実装と比べてスケーラビリティを改善する。ネットワーク要素で実装されるローカルコントローラの概念に基づくと、中央コントローラに過負荷をかけることなく通信ネットワークを拡張することができる。これは、上記の制御機能の多くがローカルコントローラ、すなわちローカルコントローラを備えるネットワーク要素によって提供されるからである。さらに、非集中型の実装に基づくと、バックアップコントローラの実装が容易になり、通信ネットワークの制御の可用性が高まる。この事例ではプライマリ中央コントローラと呼ぶ中央コントローラのバックアップコントローラは、プライマリ中央コントローラが機能しなくなった場合にアクティブ化すべきである。このローカルコントローラの実装のために、バックアップコントローラの実装が容易になる。これは、通信ネットワークについての情報がローカルコントローラによって格納および提供される限り、中央コントローラと、したがってバックアップ用の中央コントローラにも、通信ネットワークについての情報のすべてを提供する必要がなくなるからである。
【０１１６】
さらに、本発明は、ローカルコントローラがあるために応答時間が短縮するという利点をもたらす。ローカルコントローラとネットワーク要素の間で交換される制御情報が、制御情報が常に中央コントローラとの間で交換されているかのように高速になるので、必要な制御情報を提供するプロセスが高速化され、したがって応答時間が短縮される。同様に、ローカルコントローラが、別のネットワーク要素に要求したメッセージ、または別のネットワーク要素から予期されるメッセージ、例えばｈｅｌｌｏメッセージが送信されてこないと判断した場合、ローカルコントローラへの伝送時間は中央コントローラへの伝送時間より短いので、ローカルコントローラは中央コントローラとしてその障害により迅速に反応することができる。さらに、ローカルコントローラの実装に基づくと、制御ネットワークの容量を減らすことができる。例えば、トポロジー情報は各ネットワーク要素に静的に構成される場合も、かつ／またはローカルコントローラ間で交換されるトポロジー情報のリストで提供され、更新される場合もある。ネットワーク要素と中央コントローラの間ですべてのトポロジー情報を交換しなければならない場合には、制御パケットフローが膨大になる。ローカルコントローラがあるために、制御情報、例えばトポロジー情報は、ローカルコントローラを備えるネットワーク要素間だけで転送されればよく、それにより制御情報のパケットフローを減らす。同じ理由により、ローカルコントローラが自身が格納しているトポロジーデータベースの現在のコピーを直接バックアップコントローラに提供することができるので、冗長なコントローラのための例えばトポロジーデータベースの同期が容易になる。バックアップコントローラは、中央コントローラに対して実装される可能性がある。好ましい実施形態では、モジュール方式で実装されるローカルコントローラ２のモジュールが、モジュール方式で実装されるローカルコントローラ２の他のモジュールのためのバックアップ機能を持つことができる。
【０１１７】
本発明は、中央コントローラとネットワーク要素の間をオープンインターフェースにする利点をもたらす。したがって、ネットワーク要素の運用者は、ネットワーク要素、スイッチ、およびローカルコントローラのベンダーによる制約を受けずに、ローカルコントローラとさらにスイッチを望むように構成することができる。オープンインターフェースであるために、運用者は、新しいプロトコル、パケット形式、および技術を導入することができる。制御機能がネットワーク要素内のローカルコントローラによって提供されるため、スイッチに市販ハードウェアを使用することができ、拡張された制御機能を持つスイッチの場合は費用が低減する（ルータが使用される場合には同じことがルータに該当する）。ローカルコントローラはモノリシックなオペレーティングシステムではなく、コードを稼働中に柔軟に変更することができ、新しい機能、詳細には新しいパケット形式および／またはプロトコルをサービスの中断やリブートを行わずに取り込むことができるプログラミング空間である。新しい機能でネットワーク全体をアップグレードすることも、中央コントローラのＮｏｒｔｈｂｏｕｎｄインターフェースに接続するアプリケーションを介して自動化されることが可能である。
【図１】
0006280223.tif 000002
【図２】
0006280223.tif 000003
【図３】
0006280223.tif 000004
【図４】
0006280223.tif 000005
【図５】
0006280223.tif 000006
【図６】
0006280223.tif 000007
【図７】
0006280223.tif 000008
【図８】
0006280223.tif 000009