(57)【特許請求の範囲】
【請求項１】
分割アーキテクチャ・ネットワーク内のドメインに対してコントローラとして機能するネットワーク・ノード内で実装される方法であって、前記ドメインは複数のフロー・スイッチを備え、前記複数のフロー・スイッチは前記分割アーキテクチャ・ネットワーク用のデータ・プレーンを実装し、前記コントローラは前記データ・プレーンからリモートにある前記分割アーキテクチャ・ネットワーク用の制御プレーンを実装し、前記方法は、ブロードキャスト・パケットでドメインをフラッディングさせることなく、前記分割アーキテクチャ・ネットワークの前記ドメイン内で各タイプのブロードキャスト・パケットを効率良く処理し、それによって前記ドメイン内で転送されるブロードキャスト・パケットの数を減少させるように、前記複数のフロー・スイッチを構成し、
前記ドメイン用の外部ポート・セットを追跡するステップであって、各外部ポートが前記複数のフロー・スイッチのうちの１つをドメイン外部の少なくとも１つのデバイスに接続する、追跡するステップと、
第１のブロードキャスト・パケットが自己生成されたブロードキャスト・パケットであるという決定に基づいて、前記第１のブロードキャスト・パケットで前記ドメインをフラッディングさせることなく、前記第１のブロードキャスト・パケットを前記ドメイン用の前記外部ポート・セット内の少なくとも１つの外部ポートを有する各フロー・スイッチに転送するように、前記ドメイン内の前記複数のフロー・スイッチのそれぞれを構成するステップと、
受信された第２のブロードキャスト・パケットが制御ブロードキャスト・パケットであるという決定に基づいて、前記受信された第２のブロードキャスト・パケットで前記ドメインをフラッディングさせることなく、前記受信された第２のブロードキャスト・パケットを前記ドメインの前記コントローラに転送するように、前記ドメイン用の前記外部ポート・セットから少なくとも１つの外部ポートを有する前記複数のフロー・スイッチのそれぞれを構成するステップと、
受信された第３のブロードキャスト・パケットがデータ・ブロードキャスト・パケットであるという決定に基づいて、前記受信された第３のブロードキャスト・パケットで前記ドメインをフラッディングさせることなく、前記受信された第３のブロードキャスト・パケットを前記ドメイン用の前記外部ポート・セットに転送するように、前記ドメイン内の前記複数のフロー・スイッチを構成するステップと、
を含む、方法。
【請求項２】
前記外部ポート・セットを追跡するステップが、前記ドメイン内の各フロー・スイッチの各アクティブ・ポートを識別するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記外部ポート・セットを追跡するステップが、各アクティブ・ポートが内部ポートであるかどうかを識別するステップをさらに含み、前記内部ポートは、前記ドメイン内の第１のフロー・スイッチを前記ドメイン内の第２のフロー・スイッチに接続する、請求項２に記載の方法。
【請求項４】
前記外部ポート・セットを追跡するステップが、前記ドメインの前記内部ポートと前記ドメインの前記アクティブ・ポートとを比較することによって、前記ドメインの各外部ポートを識別するステップをさらに含み、各外部ポートは前記ドメインのアクティブな非内部ポートである、請求項３に記載の方法。
【請求項５】
前記内部ポートを識別するステップが、近隣発見プロトコルを使用して内部ポートを識別するステップをさらに含む、請求項３に記載の方法。
【請求項６】
前記ドメイン外部のネットワーク・ノードから近隣発見プロトコル（ＮＤＰ）メッセージを受信するステップと、
前記ＮＤＰメッセージのソースと制御されるフロー・スイッチのセットとを比較するステップと、
をさらに含む、請求項１に記載の方法。
【請求項７】
外部ソースからのＮＤＰメッセージが受信された際に介したフロー・スイッチ用の進入ポートを、前記外部ポート・リストに追加するステップをさらに含む、請求項６に記載の方法。
【請求項８】
前記コントローラによって、前記外部ポート・セット内の外部ポートを有する各フロー・スイッチに、受信された制御パケットを転送するステップをさらに含み、各フロー・スイッチは各外部ポートを介して前記制御パケットを転送するためのものである、請求項１に記載の方法。
【請求項９】
外部ポートを伴う各フロー・スイッチから外部ポートを伴う各他のフロー・スイッチへのフロー・セットを計算するステップと、
前記フロー・セットに従って、受信されたデータ・ブロードキャスト・パケットを転送するために、前記フロー・セットのパス内の各フロー・スイッチをプログラミングするステップと、
をさらに含む、請求項１に記載の方法。
【請求項１０】
分割アーキテクチャ・ネットワーク内のドメイン用のコントローラとして機能するネットワーク・ノードであって、前記ドメインは複数のフロー・スイッチを備え、前記複数のフロー・スイッチは前記分割アーキテクチャ・ネットワーク用のデータ・プレーンを実装し、前記コントローラは前記データ・プレーンからリモートにある前記分割アーキテクチャ・ネットワーク用の制御プレーンを実装し、前記ネットワーク・ノードは、ブロードキャスト・パケットで前記ドメインをフラッディングさせることなく、前記分割アーキテクチャ・ネットワーク内で各タイプのブロードキャスト・パケットを効率良く処理し、それによって前記ドメイン内で転送されるブロードキャスト・パケットの数を減少させるように、前記複数のフロー・スイッチを構成し、
前記ドメイン用の外部ポート・セットを追跡するための外部ポート追跡モジュールであって、各外部ポートが前記複数のフロー・スイッチのうちの１つを前記ドメイン外部の少なくとも１つのデバイスに接続する、外部ポート追跡モジュールと、
前記外部ポート追跡モジュールに通信可能に結合されたブロードキャスト構成モジュールと、
を備え、前記ブロードキャスト構成モジュールは、第１のブロードキャスト・パケットが自己生成されたブロードキャスト・パケットであるという決定に基づいて、前記第１のブロードキャスト・パケットで前記ドメインをフラッディングさせることなく、前記第１のブロードキャスト・パケットを前記ドメイン用の前記外部ポート・セット内の少なくとも１つの外部ポートを有する各フロー・スイッチに転送するように、前記ドメイン内の前記複数のフロー・スイッチのそれぞれを構成するように構成され、受信された第２のブロードキャスト・パケットが制御ブロードキャスト・パケットであるという決定に基づいて、前記受信された第２のブロードキャスト・パケットで前記ドメインをフラッディングさせることなく、前記受信された第２のブロードキャスト・パケットを前記ドメインの前記コントローラに転送するように、前記ドメイン用の前記外部ポート・セットから少なくとも１つの外部ポートを有する前記複数のフロー・スイッチのそれぞれを構成するように構成され、更に、受信された第３のブロードキャスト・パケットがデータ・ブロードキャスト・パケットであるという決定に基づいて、前記受信された第３のブロードキャスト・パケットで前記ドメインをフラッディングさせることなく、前記受信された第３のブロードキャスト・パケットを前記ドメイン用の前記外部ポート・セットに転送するように、前記ドメイン用の前記複数のフロー・スイッチを構成するように構成される、
ネットワーク・ノード。
【請求項１１】
前記ブロードキャスト構成モジュールに通信可能に結合されたブロードキャスト処理モジュールをさらに備え、前記ブロードキャスト処理モジュールは、受信されたブロードキャスト・パケットを、前記外部ポート・セットを有する前記フロー・スイッチに転送するように構成される、請求項１０に記載のネットワーク・ノード。
【請求項１２】
前記外部ポート追跡モジュールが、前記ドメイン内の各フロー・スイッチの各アクティブ・ポートを識別するように構成される、請求項１０に記載のネットワーク・ノード。
【請求項１３】
前記外部ポート追跡モジュールが、各アクティブ・ポートが内部ポートであるかどうかを識別するように構成され、前記内部ポートは、前記ドメイン内の第１のフロー・スイッチを前記ドメイン内の第２のフロー・スイッチに接続する、請求項１２に記載のネットワーク・ノード。
【請求項１４】
前記外部ポート追跡モジュールが、前記ドメインの前記内部ポートと前記ドメインの前記アクティブ・ポートとを比較することによって、前記ドメインの各外部ポートを識別するように構成され、各外部ポートは前記ドメインのアクティブな非内部ポートである、請求項１３に記載のネットワーク・ノード。
【請求項１５】
前記外部ポート追跡モジュールがが、近隣発見プロトコルを使用して内部ポートを識別するように構成される、請求項１３に記載のネットワーク・ノード。
【請求項１６】
前記外部ポート追跡モジュールが、前記ドメイン外部のネットワーク・ノードから近隣発見プロトコル（ＮＤＰ）メッセージを受信し、前記ＮＤＰメッセージのソースと制御されるフロー・スイッチのセットとを比較するように構成される、請求項１１に記載のネットワーク・ノード。
【請求項１７】
前記外部ポート追跡モジュールが、外部ソースからのＮＤＰメッセージが受信された際に介したフロー・スイッチ用の進入ポートを、前記外部ポート・リストに追加するように構成される、請求項１６に記載のネットワーク・ノード。
【請求項１８】
前記ブロードキャスト処理モジュールが、前記コントローラによって、前記外部ポート・セット内の外部ポートを有する各フロー・スイッチに、受信された制御パケットを転送するように構成され、各フロー・スイッチは各外部ポートを介して前記制御パケットを転送するためのものである、請求項１１に記載のネットワーク・ノード。
【請求項１９】
前記ブロードキャスト構成モジュールが、外部ポートを伴う各フロー・スイッチから外部ポートを伴う各他のフロー・スイッチへのフロー・セットを計算するように構成され、更に、前記フロー・セットに従って、受信されたデータ・ブロードキャスト・パケットを転送するために、前記フロー・セットのパス内の各フロー・スイッチをプログラミングするように構成される、請求項１０に記載のネットワーク・ノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、分割アーキテクチャ・ネットワーク（split architecture network）内でのパケットのブロードキャストに関する。具体的に言えば、本発明の実施形態は、ドメイン用の外部ポートを識別し、ドメインのスイッチ内の適切なフローをプログラミングすることによって、ブロードキャストされることになるパケットを処理する場合、ドメイン内のリソースの使用を最適化するための方法及びシステムに関する。
【背景技術】
【０００２】
分割アーキテクチャ・ネットワークは、ネットワーク・アーキテクチャの代替パラダイムである。分割アーキテクチャ・ネットワークは、従来のネットワーク・アーキテクチャと同様、ルータ又はスイッチ等のいくつかのノードからなる。しかしながらこのパラダイムでは、ネットワークの制御プレーン機能は、図１に示されるようなネットワークの単一のノード内に存在し得る単一の中央コントローラに常駐する。これは、制御プレーン機能がネットワーク内のあらゆるノードに常駐する従来のネットワーク・アーキテクチャとは対照的である。分割アーキテクチャ・ネットワークにおいて、ネットワーク・ノードはその制御プレーン機能が失われ、「フロー・スイッチ」として基本のデータ・プレーン機能を提供する。本明細書で使用される「ドメイン」は、フロー・スイッチが単一のコントローラの制御下にある、分割アーキテクチャ・ネットワークの領域である。
【０００３】
分割アーキテクチャ・ネットワークの例が、OpenFlowベースの分割アーキテクチャ・ネットワークである。OpenFlow分割アーキテクチャ・ネットワークでは、データ・プレーン内のコントローラ及びフロー・スイッチはOpenFlowプロトコルを使用して通信する。OpenFlowプロトコルは、データ・プレーン内のフロー・スイッチをパケットの転送及び処理に適切なフローでプログラミングするために、コントローラにメッセージ・インフラストラクチャを提供する。コントローラは、それぞれのネットワーク・ノードを照会することによって、ネットワークに関する完全なネットワーク状態情報を取得することもできる。本明細書で使用される「OpenFlowドメイン」は、フロー・スイッチが単一の論理OpenFlowコントローラの制御下にある、OpenFlow分割アーキテクチャ・ネットワークの領域である。この単一の論理OpenFlowコントローラは、スイッチの単一のドメインに関与しているコントローラのセット又はクラスタとして実装可能である。
【０００４】
OpenFlowプロトコル仕様によれば、フロー・スイッチは、データ・プレーン内のパケットの転送及び処理のために、パケット・ヘッダ・フィールド（イーサネット・ヘッダ・フィールド、マルチプロトコル・ラベル・スイッチング（ＭＰＬＳ）ヘッダ・フィールド、及びインターネット・プロトコル（ＩＰ）ヘッダ・フィールド等）上の合致を定義する規則、規則合致に関連付けられたアクション、及び、規則に合致するフローに関する統計の集合という、プリミティブを使用するコントローラによってプログラミングされる。フロー・スイッチは、着信パケットにコントローラ・プログラミング規則を適用し、合致したフロー上で関連付けられたアクションを実行し、同時にフローに関する統計を収集する。図１は、コントローラとフロー・スイッチとの間のこの基本OpenFlowプロトコル・インターフェースを示す。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
分割アーキテクチャ・ネットワークの主な利点の１つは、それらが制御プレーン及びデータ・プレーン内で独立した最適化を可能にすることである。コントローラの構成要素、機能、又はアプリケーションは、基礎となるネットワークとは独立に最適化することが可能であり、同様に、基礎となるネットワーク・フロー・スイッチ機能は、コントローラの構成要素、機能、及びアプリケーションとは独立に最適化することが可能である。
【０００６】
ブロードキャスト・パケットを送信するためにネットワーク内のノードを必要とする多くの状況が存在する。これらの状況は、自己生成されたブロードキャスト・パケット及び受信されたブロードキャスト・パケットの、２つのカテゴリに分けることができる。ノードは、特定のプロトコル・アプリケーションのためのブロードキャスト・パケットを自己生成することができる。自己生成されたブロードキャスト・パケットの重要な例が、ＡＲＰ  ＲＥＱＵＥＳＴパケットである。アドレス解決プロトコル（ＡＲＰ）は、そのＩＰアドレスが与えられたネットワーク・ノード（ルータ、又はスイッチ）のメディア・アクセス制御（ＭＡＣ）アドレスを解決するために使用される。ネットワーク・ノードのＭＡＣアドレスを照会するために、要求者はＡＲＰ  ＲＥＱＵＥＳＴメッセージを発信する。このメッセージは照会ＩＰアドレスを含み、ネットワーク内のすべてのデバイスにブロードキャストされる。ＩＰアドレスがＲＥＱＵＥＳＴメッセージ内のそれと合致するデバイスは、そのＭＡＣアドレスで応答する。
【０００７】
ノードは、ブロードキャストされる必要のあるパケットを受信することもできる。ネットワーク・ノードは、コントローラ・ポートを含むすべてのアクティブ・ポートで受信するブロードキャスト・パケットをブロードキャストする必要がある。ネットワーク・ノードが仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）で構成される場合、ＶＬＡＮ内のすべてのアクティブ・ポートのパケットをブロードキャストすべきである。パケットを転送するためのインテリジェンスはOpenFlowドメイン内のコントローラに常駐しているため、コントローラは基礎となるフロー・スイッチをブロードキャスト・パケットに適するようにプログラミングする必要がある。この構成の基本的実装は、各フロー・スイッチの転送テーブルを、フロー・スイッチ用のすべてのアクティブ・ポート上のブロードキャスト・パケットを盲目的に転送するよう設定することである。
【課題を解決するための手段】
【０００８】
方法は、分割アーキテクチャ・ネットワーク内のドメインに対してコントローラとして機能するネットワーク・ノード内で実装される。ドメインは複数のフロー・スイッチを備え、ここで複数のフロー・スイッチは分割アーキテクチャ・ネットワーク用のデータ・プレーンを実装し、コントローラはデータ・プレーンからリモートにある分割アーキテクチャ・ネットワーク用の制御プレーンを実装する。方法は、ブロードキャスト・パケットでドメインをフラッディング（flooding）させることなく、分割アーキテクチャ・ネットワークのドメイン内で各タイプのブロードキャスト・パケットを効率良く処理し、それによってドメイン内で転送されるブロードキャスト・パケットの数を減少させるように、複数のフロー・スイッチを構成する。方法は、ドメイン用の外部ポート・セットを追跡するステップであって、各外部ポートが複数のフロー・スイッチのうちの１つをドメイン外部のデバイスに接続する、追跡するステップと、自己生成されたブロードキャスト・パケットでドメインをフラッディングさせることなく、自己生成されたブロードキャスト・パケットをドメイン用の外部ポート・セット内の少なくとも１つの外部ポートを有する各フロー・スイッチに転送するように、ドメイン内の複数のフロー・スイッチのそれぞれを構成するステップと、受信された制御ブロードキャスト・パケットでドメインをフラッディングさせることなく、受信された制御ブロードキャスト・パケットをドメインのコントローラに転送するように、ドメイン用の外部ポート・セットから少なくとも１つの外部ポートを有する複数のフロー・スイッチのそれぞれを構成するステップと、受信されたデータ・ブロードキャスト・パケットでドメインをフラッディングさせることなく、受信されたデータ・ブロードキャスト・パケットをドメイン用の外部ポート・セットに転送するように、ドメイン内の複数のフロー・スイッチを構成するステップと、を含む。
【０００９】
ネットワーク・ノードは、分割アーキテクチャ・ネットワーク内のドメイン用のコントローラとして機能する。ドメインは複数のフロー・スイッチを備え、ここで複数のフロー・スイッチは分割アーキテクチャ・ネットワーク用のデータ・プレーンを実装し、コントローラはデータ・プレーンからリモートにある分割アーキテクチャ・ネットワーク用の制御プレーンを実装する。ネットワーク・ノードは、ブロードキャスト・パケットでドメインをフラッディングさせることなく、分割アーキテクチャ・ネットワーク内で各タイプのブロードキャスト・パケットを効率良く処理し、それによってドメイン内で転送されるブロードキャスト・パケットの数を減少させるように、複数のフロー・スイッチを構成する。ネットワーク・ノードは、ドメイン用の外部ポート・セットを追跡するための外部ポート追跡モジュールであって、各外部ポートが複数のフロー・スイッチのうちの１つをドメイン外部のデバイスに接続する、外部ポート追跡モジュールと、前記外部ポート追跡モジュールに通信可能に結合されたブロードキャスト構成モジュールであって、自己生成されたブロードキャスト・パケットでドメインをフラッディングさせることなく、自己生成されたブロードキャスト・パケットをドメイン用の外部ポート・セット内の少なくとも１つの外部ポートを有する各フロー・スイッチに転送するように、ドメイン内の複数のフロー・スイッチのそれぞれを構成するように構成された、ブロードキャスト構成モジュールと、を備える。ブロードキャスト構成モジュールは、ドメインをフラッディングさせることなく、受信された制御ブロードキャスト・パケットをドメインのコントローラに転送するように、ドメイン用の外部ポート・セットから少なくとも１つの外部ポートを有する複数のフロー・スイッチのそれぞれを構成するように構成され、受信されたデータ・ブロードキャスト・パケットでドメインをフラッディングさせることなく、受信されたデータ・ブロードキャスト・パケットをドメイン用の外部ポート・セットに転送するように、ドメイン用の複数のフロー・スイッチを構成するように構成される。
【００１０】
本発明は、制限としてではなく例として添付の図面の図内に示されており、図面内で同じ参照番号は同様の要素を示す。本開示における「実施形態」又は「一実施形態」という異なる言い方は必ずしも同じ実施形態を指すものではなく、こうした言い方は少なくとも１つを意味することに留意されたい。さらに、実施形態に関連して特定の機能、構造、又は特徴が説明される場合、これは、明示的に記述されているか否かにかかわらず、他の実施形態に関連してこうした機能、構造、又は特徴を実行するための当業者の知識の範囲内にあるものと考えられる。
【図面の簡単な説明】
【００１１】
【図１】単純な分割アーキテクチャのOpenFlowネットワークに関する構成例の一実施形態を示す図である。
【図２】分割アーキテクチャ・ネットワークにおける、制御プレーン内のコントローラ及びデータ・プレーン内のフロー・スイッチの一実施形態を示す図である。
【図３】ブロードキャスト・パケットを効率的に処理するように分割アーキテクチャ・ネットワークを構成するためのプロセスの一実施形態を示すフローチャートである。
【図４】外部ポートを追跡するプロセスの一実施形態を示すフローチャートである。
【図５】自己生成されたブロードキャスト・パケットを処理するためのプロセスの一実施形態を示すフローチャートである。
【図６】コントローラが自己生成されたパケットを処理する分割アーキテクチャ・ネットワークの例を示す図である。
【図７】受信されたブロードキャスト・パケットを構成及び処理するためのプロセスの一実施形態を示す図である。
【図８】受信された制御ブロードキャスト・パケットを処理するドメイン及びコントローラの一実施形態を示す図である。
【図９】受信されたデータ・ブロードキャスト・パケットを処理するドメイン及びコントローラの一実施形態を示す図である。
【図１０】暗黙的外部ポート識別のためのプロセスの一実施形態を示すフローチャートである。
【図１１】近隣発見プロトコルを使用する暗黙的外部ポート決定の一実施形態を示す図である。
【図１２】スイッチ・レベル発見プロトコルを使用する暗黙的外部ポート決定の一実施形態を示す図である。
【図１３】外部ポート識別のための明示的プロセスの一実施形態を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下の説明では、多数の特定の細部が示される。しかしながら、本発明の実施形態はこれらの特定の細部無しで実施され得ることを理解されよう。その他の場合、本説明の理解を不明瞭にすることのないように、良く知られた回路、構造、及び技法は詳細に示されていない。しかしながら、当業者であれば、本発明がこうした特定の細部無しで実施され得ることを理解されよう。当業者であれば、含まれる説明を用いて、過度の実験無しに適切な機能を実装できよう。
【００１３】
フローチャートの動作は、図２、図６、図８、図９、図１１、及び図１２の例示の実施形態を参照しながら説明される。しかしながら、図３〜図５、図７、図１０、及び図１３のフローチャートの動作は、図２、図６、図８、図９、図１１、及び図１２を参照しながら考察された以外の本発明の実施形態によって実行され得ること、並びに、図２、図６、図８、図９、図１１、及び図１２を参照しながら考察された実施形態は、図３〜図５、図７、図１０、及び図１３のフローチャートを参照しながら考察された動作とは異なる動作を実行し得ることを、理解されたい。
【００１４】
図内に示される技法は、１つ又は複数の電子デバイス（例えばエンド・ステーション、ネットワーク要素、サーバ、又は同様の電子デバイス）上で記憶及び実行されるコード及びデータを使用して実装可能である。こうした電子デバイスは、非一過性の機械読み取り可能又はコンピュータ読み取り可能記憶媒体（例えば磁気ディスク、光ディスク、ランダム・アクセス・メモリ、読み取り専用メモリ、フラッシュ・メモリ・デバイス、及び相変化メモリ）等の、非一過性の機械読み取り可能又はコンピュータ読み取り可能媒体を使用して、コード及びデータを（内部的に、及び／又は、ネットワークを介して他の電子デバイスと）記憶及び通信する。加えて、こうした電子デバイスは、通常、１つ又は複数の記憶デバイス、ユーザ入力／出力デバイス（例えばキーボード、タッチ・スクリーン、及び／又はディスプレイ）、及びネットワーク接続等の、１つ又は複数の他の構成要素に結合された、１つ又は複数のプロセッサのセットを含む。プロセッサのセット及び他の構成要素の結合は、通常、１つ又は複数のバス及びブリッジ（バス・コントローラとも呼ばれる）を介する。記憶デバイスは、１つ又は複数の非一過性の機械読み取り可能又はコンピュータ読み取り可能記憶媒体、及び非一過性の機械読み取り可能又はコンピュータ読み取り可能通信媒体を表す。したがって、所与の電子デバイスの記憶デバイスは、通常、その電子デバイスの１つ又は複数のプロセッサのセット上で実行するためのコード及び／又はデータを記憶する。もちろん、本発明の実施形態の１つ又は複数の部分は、ソフトウェア、ファームウェア、及び／又はハードウェアの異なる組み合わせを使用して実装され得る。
【００１５】
本明細書で使用される場合、ネットワーク要素又はネットワーク・ノード（例えばルータ、スイッチ、ブリッジ、又は同様のネットワーキング・デバイス）は、ネットワーク上の他の機器（例えば、他のネットワーク要素又はノード、エンド・ステーション、或いは同様のネットワーキング・デバイス）を通信可能に相互接続する、ハードウェア及びソフトウェアを含む、１つのネットワーキング機器である。幾つかのネットワーク要素又はネットワーク・ノードは、多重ネットワーキング機能（例えば、ルーティング、ブリッジング、スイッチング、レイヤ２集約、セッション・ボーダ制御、マルチキャスティング、及び／又は加入者管理）に関するサポートを提供し、さらに／或いは、多重アプリケーション・サービス（例えばデータ収集）に関するサポートを提供する、「多重サービス・ネットワーク要素」又は「多重サービス・ネットワーク・ノード」である。ネットワーク要素及びネットワーク・ノードという用語は、本明細書では交換可能に使用される。
【００１６】
本発明の実施形態は、従来技術の欠点を回避するための方法及びシステムを提供する。ブロードキャスト・パケットの転送を処理する本来の実装は、ネットワークの各ノード内のすべてのアクティブ・ポート上でブロードキャスト・パケットを盲目的に転送することである。しかしながらこれは、この実装を使用して転送される多くのパケットが、不必要にすべての所期の受信者に到達するものであるため、非効率的である。自己生成されたブロードキャスト・パケット及び受信されたブロードキャスト・パケットのどちらのシナリオの場合も、ブロードキャスト・パケットは、ドメイン用のすべての外部ポート上でのみ送信される必要がある。外部ポートは、ドメインのコントローラの制御下にないネットワーク・ノード又はデバイスに接続された、ドメイン（例えばOpenFlowドメイン）のポートとして定義される。
【００１７】
OpenFlow分割アーキテクチャ・ネットワークを含む既存の分割アーキテクチャ・ネットワークは、ドメイン外で自己生成されたブロードキャスト・パケットを送信するための効率的な機構を提供していない。受信されたブロードキャスト・パケットの場合、フロー・スイッチは、コントローラによって、ドメイン内のすべてのスイッチ上のすべてのアクティブ・ポートでブロードキャスト・パケットをフラッディングさせるように事前にプログラミングされている。この単純な機構は、ブロードキャスト・パケットを転送するためのネットワーク・リソースの不必要な使用に関して、非常に非効率的である。例えば、OpenFlowドメイン・ネットワークがｍ個のリンク及びｎ個の外部ポートを有する場合、理想的には、受信されたブロードキャスト・パケットはｎ個の外部ポート上でのみ送信されるべきである。現行技術を使用すると、少なくともすべてのｍ個のリンク及びｎ個の外部ポート上で送信されることになる。ｍ個のリンクすべてのパケットをフラッディングさせるためにすべてのスイッチ転送リソースが使用されることは、ネットワーク・リソースの非効率的な使用につながる。典型的なネットワークでは、ｍはｎよりも桁数が大きい可能性があり、このシナリオでは、リソース使用の非効率性がかなり高い可能性がある。
【００１８】
本発明の実施形態は、従来技術のこれらの欠点を克服する。本発明の実施形態は、自己生成されたブロードキャスト・パケットをブロードキャストするための効率的な方法、並びに、受信されたブロードキャスト・パケット・シナリオを処理するための最適なソリューションを提供する、パケット・ブロードキャストの方法及びシステムを含む。本発明の実施形態は、自己生成されたブロードキャスト・パケット、受信されたブロードキャスト・パケット、及び受信されたデータ・ブロードキャスト・パケットの、複数のシナリオで、パケットをブロードキャストするための機構を提供する。これらの機構は、前述の盲目的な転送の標準的な実装よりもはるかに効率的である。
【００１９】
例えば現行の技術を使用する場合、ドメイン内のすべてのスイッチ上のすべてのポートにあるいずれのブロードキャスト・パケットをもフラッディングさせるため、貴重なネットワーク・リソースの非効率的な使用につながる。本発明の実施形態は、ネットワーク・リソースを必要な割合でのみ使用するパケットのブロードキャストを処理するための機構を提供するため、ネットワーク・リソースの大幅な節約につながる。
【００２０】
一実施形態において、コントローラは、ドメイン内の他のフロー・スイッチのリソースを浪費することなく、ブロードキャスト・パケットを関連する外部ポートに直接転送するように、ドメインのフロー・スイッチを構成する。コントローラは、外部ポートを識別し、基礎となるフロー・スイッチ内の適切なフローをパケット転送用にプログラミングする。
【００２１】
図２は、効率的なブロードキャスト・パケットの処理を伴う、分割アーキテクチャ・ネットワークにおけるコントローラ及びフロー・スイッチの一実施形態を示す図である。コントローラ１０３及びフロー・スイッチ１３３は、それぞれネットワーク・ノード１０１、１３１によって実装される。これらのネットワーク・ノードは、ルータ、スイッチ、及び同様のデバイスを含む任意のタイプのネットワーキング要素とすることができる。ネットワーク・ノード１０１、１３１は、ローカル・エリア・ネットワーク（ＬＡＮ）、インターネット等のワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意のタイプのネットワークを介して、或いは同様のネットワークを介して、通信することができる。ネットワークは、有線又は無線のデバイスの任意の組み合わせで構成され得る。コントローラ１０３は、任意数のフロー・スイッチ１３３を制御するために通信及び割り当てが可能である。わかりやすくするために、単一のフロー・スイッチが示されている。
【００２２】
一実施形態において、コントローラ１０３及びフロー・スイッチ１３３は、それぞれOpenFlowコントローラ及びOpenFlowスイッチである。OpenFlowは、www.OpenFlow.orgでホストされるOpenFlowスイッチング仕様で定義された、システム及びプロトコルである。他の実施形態では、プロトコル又はシステムを実行可能にする他の同様の分割アーキテクチャが、制御プレーン機能及びデータ・プレーン機能を分離するために使用される。
【００２３】
一実施形態において、コントローラ１０３は、アプリケーション・セット、分散ネットワーク・ミドルウェア１１９、及びオペレーティング・システム１２１で構成可能である。分散ネットワーク・ミドルウェア１１９は、コントローラと他のネットワーク・ノードとの間の通信をサポートする、機能セット及びデータ構造を提供する。オペレーティング・システム１２１は、プロセッサ及びメモリ・リソース等のネットワーク・ノード１０１のリソースを管理する。これらのサービスを提供する任意の分散ネットワーク・ミドルウェア及びオペレーティング・システムが使用可能である。
【００２４】
コントローラのアプリケーション又は構成要素は、外部ポート追跡モジュール１０５、ブロードキャスト構成モジュール１０７、ブロードキャスト処理モジュール１０９、ボーダー・ゲートウェイ・プロトコル（ＢＧＰ）モジュール１１１、オープン・ショーテスト・パス・ファースト（ＯＳＰＦ）モジュール１１３、近隣発見プロトコル（ＮＤＰ）モジュール１１５、及び同様の構成要素を含むことができる。ＢＧＰモジュール１１１は、自律型システム内でネットワーク到達可能性を指定するプレフィックスのテーブルを維持する。ＯＳＰＦモジュール１１３は、ネットワーク・トポロジを横切る最短パスを計算する。ＮＤＰモジュール１１５は、ネットワーク・ノード間の通信を可能にするために、ネットワーク・ノードの機能及び特徴をその近隣に広告することができる。同様に、ＮＤＰモジュール１１５は、ドメイン間の接続リンクを介してこれらの隣接から広告を受信することによって、近隣を発見する。他の実施形態では、スイッチは、ＮＤＰを実装し、発見された近隣及びコントローラのＮＤＰモジュール１１５へのリンクを報告する。ＮＤＰの例は、CISCO SYSTEMS, Incによる、リンク・レイヤ発見プロトコル（ＬＬＤＰ）及びＣＩＳＣＯ発見プロトコル（ＣＤＰ）である。
【００２５】
外部ポート追跡モジュール１０５は、コントローラのドメイン用のすべての外部ポートのリストを作成及び維持する。外部ポート追跡モジュール１０５の機能は、ドメイン用の外部ポート・セットを決定することである。外部ポート追跡モジュール１０５は、ブロー・スイッチの外部ポートを識別するためにそれらと通信するために、ＮＤＰモジュール等の他のモジュールに関連して機能する。このプロセスは、図１１〜図１３に関してさらに詳細に説明する。外部ポート追跡モジュール１０５は、内部ポート及びすべてのアクティブ・ポートを別々に追跡するか、又は外部ポートの追跡プロセスの一部として追跡することができる。
【００２６】
ブロードキャスト構成モジュール１０７は、受信されたブロードキャスト・パケット及び自己生成されたブロードキャスト・パケットを適切に処理するために、ドメイン内のフロー・スイッチの構成を管理する。フロー・スイッチの構成プロセスは、図３〜図７に関してさらに詳細に説明する。ブロードキャスト処理モジュール１０９は、コントローラ１０３によって受信されたか又は自己生成された、ブロードキャスト・パケットを処理する。コントローラ１０３は、ブロードキャストされることになるパケットを生成すること、又は、そのドメイン内でフロー・スイッチによって転送されたブロードキャスト・パケットを受信することが可能である。ブロードキャスト処理モジュール１０９は、受信されたブロードキャスト・パケットを処理するために、ＢＧＰモジュール等の他のモジュールに関して機能することができる。ブロードキャスト・パケットの処理は、本明細書の以下の詳細な説明に関してさらに詳細に説明する。
【００２７】
オペレーティング・システム１２１及び分散ネットワーク・ミドルウェア１１９は、制御プレーン信号プロトコルを伝送する際に介することが可能なセキュア通信チャネル１２７を提供することによって、コントローラ１０３とフロー・スイッチ１３３との間の通信を容易にすることができる。一実施形態において、コントローラ１０３及びフロー・スイッチ１３３は、OpenFlowプロトコルを使用して通信する。
【００２８】
フロー・スイッチ１３３は、ネットワーク・ノード１３１によって提供される。ネットワーク・ノード１３１及びフロー・スイッチ１３３は、幾つかの他のネットワーク・ノード又は同様のデバイスに接続され得る。これら接続のそれぞれは、本明細書では単に「ポート」と呼ばれる別々の通信ポートを介する。これらのポート１３５は、同じドメイン内の他のネットワークと、或いは、ドメイン外部のネットワーク・ノード又はデバイスと、接続され得る。ドメイン内のネットワーク・ノードと接続されたポート１３５は、本明細書では「内部ポート」と呼ばれる。ドメイン外部のノードと接続されたポート１３５は、本明細書では「外部ポート」と呼ばれる。
【００２９】
フロー・スイッチ１３３は、ブロードキャスト・パケットを含むデータ・パケットを、受信、生成、及び／又は転送することができる。転送テーブル１３７又は同様のデータ構造は、フロー・スイッチがデータ・パケットのそれぞれをどのように処理するかを決定する、規則セットを定義する。転送テーブル１３７は、様々な異なるタイプのデータ・パケットを識別し、これに関してアクションを起こすための規則セットを含む、OpenFlow転送テーブル又は同様のタイプの転送テーブルとすることができる。コントローラ１０３は、例えばブロードキャスト・パケットを処理するための規則を確立することによって、フロー・スイッチ１３３の転送挙動を管理するように、この転送テーブル１３７を構成する。
【００３０】
図３は、ブロードキャスト・パケットの効率的な処理のために分割アーキテクチャ・ネットワークを構成するためのプロセスの、一実施形態を示すフローチャートである。このプロセスは、様々なタイプのブロードキャスト・パケットを効率的に処理するように、そのドメイン内のフロー・スイッチ・セットを構成するために、コントローラの構成要素によって実行される。コントローラは、分割アーキテクチャ・ネットワーク内のそのドメイン用の外部ポート・セットを追跡する（ブロック３０１）。本明細書で使用される「セット」とは、１つのアイテムを含む任意の整数のアイテムを指す。外部ポートは、リスト、テーブル、又は同様のデータ構造等の、任意のタイプのデータ構造内で追跡可能である。外部ポートを識別するプロセスは、本明細書の以下で、図１１〜図１３に関してより詳細に考察される。
【００３１】
プロセスは、自己生成されたブロードキャスト・パケットを識別された外部ポート・セットのそれぞれに転送するように、ドメイン内の外部ポートを伴うすべてのフロー・スイッチを構成することによって続行される（ブロック３０３）。構成は、ドメイン内の各フロー・スイッチに関する転送規則を構成するために、制御プレーン・プロトコルを使用して実行され得る。自己生成されたブロードキャスト・パケットとは、ドメイン内のフロー・スイッチによって作成されたブロードキャスト・パケットである。フロー・スイッチは、ドメイン内でフロー・スイッチを構成するために必要な情報へのアクセス権を既に有するコントローラを共有しているため、この自己生成されたブロードキャスト・パケット（例えばＡＲＰメッセージ）は、ドメイン外部のネットワーク・ノードにのみ送信される必要がある。したがって、これらの自己生成されたメッセージでドメインの内部ポートをフラッディングさせることは、リソースの浪費である。これらの自己生成されたブロードキャスト・メッセージは、その維持された外部ポート・リストに基づいてドメインの各外部ポートにメッセージを直接送信する、コントローラで作成される。
【００３２】
プロセスは、受信された制御ブロードキャスト・パケットをコントローラに転送するように、外部ポートを備えるドメイン内の各フロー・スイッチを構成する（ブロック３０５）。受信された制御ブロードキャスト・パケットは、ドメイン外部のデバイスから外部ポートを伴うフロー・スイッチによって受信される。受信された制御ブロードキャスト・パケット内の情報は、コントローラのみに関する。したがってフロー・スイッチは、ドメイン内の他のフロー・スイッチが必要としないこの受信された制御ブロードキャスト・パケットで内部ポートをフラッディングさせるのではなく、この情報をコントローラに送信するように構成される。受信された制御ブロードキャスト・パケットの例は、コントローラのドメイン外部のデバイスから受信されたＡＲＰメッセージである。次に、コントローラは、自己生成されたパケットと同様に、すべての外部ポート上のこの受信された制御ブロードキャスト・パケットを転送することになる。コントローラは、フロー・スイッチによって転送された受信された制御ブロードキャスト・パケットの情報も処理することができる。
【００３３】
コントローラは、受信されたデータ・ブロードキャスト・パケットをドメイン用の外部ポート・セットに転送するように、そのドメイン内のフロー・スイッチを構成する（ブロック３０７）。これらのデータ・ブロードキャスト・パケットは、制御プレーンの処理を必要とせず、コントローラに転送されることを必要としない。コントローラは、外部ポート上で受信された各データ・ブロードキャスト・パケットが、ドメインを横切って互いの外部ポートに転送されるように、すべての外部ポート・セット間にフロー・セットを構成する。この処理を実行するために確立されたフローを使用することで、リソースの浪費である、ドメイン内のすべての内部ポート上で受信されたデータ・ブロードキャスト・パケットを盲目的に転送することを回避する。フローは、受信されたデータ・ブロードキャスト・パケットがフラッディングを使用することなく各外部ポートに到達することを保証する。フローは、各フロー・スイッチがフラッディングを使用することなくデータ・ブロードキャスト・パケットを受信することを保証するように確立されることも可能である。フローは、コントローラによって設定された最短パス又は同様に構成されたパスを用いて、データ・パケットが各外部ポートに向けて送られるように、これらのパケットの転送を実行可能にする。
【００３４】
図４は、外部ポートを追跡するプロセスの一実施形態を示すフローチャートである。このプロセスは、コントローラによって実行される。コントローラは、外部ポートを決定するために明示的プロセス又は暗黙的プロセスのいずれかを使用する。明示的プロセス及び暗黙的プロセスは、図１１〜図１３に関してより詳細に考察される。プロセスは第一に、コントローラのドメイン内のフロー・スイッチに関するすべてのアクティブ・ポートを識別する（ブロック４０１）。オプションで、コントローラはアクティブ・ポート・リスト内の内部ポートを識別することができる（ブロック４０３）。分割アーキテクチャ・ネットワーク及び制御プレーン・プロトコルの実装に応じて、コントローラは、外部ポート・セットを推定するために内部ポートを決定する必要があり得る。他の実施形態において、コントローラは外部ポートのセットを直接決定することができる。コントローラは、外部ポートのセットを決定し、これをフロー・スイッチの構成に使用して、ブロードキャスト・パケットを効率的に処理する（ブロック４０５）。
【００３５】
図５は、自己生成されたブロードキャスト・パケットを処理するためのプロセスの一実施形態を示すフローチャートである。このプロセスは、図４に関して上記で説明され、図１１〜図１３に関して以下でさらに説明される、外部ポートの追跡に依拠する（ブロック５０１）。自己生成されたパケットはコントローラによって作成される（ブロック５０３）。自己生成されたパケットの例はＡＲＰメッセージである。コントローラは外部ポート・リストを使用して、外部ポートを伴うフロー・スイッチへのパケットの転送を指示する（ブロック５０５）。コントローラは、各フロー・スイッチで確立されたフロー又はセキュア・チャネルを使用して、自己生成されたパケットを転送する。
【００３６】
図６は、コントローラが自己生成されたパケットを処理する例示の分割アーキテクチャ・ネットワークを示す図である。ドメインは、破線６０３で識別される。破線６０３上又は破線６０３内のすべてのフロー・スイッチは、コントローラ６０１のドメインの一部である。各ポートは円６０５でラベル付けされる。自己生成されたパケットは、コントローラから外部ポート６０５を伴う各フロー・スイッチへ転送される。黒い実線の矢印６０７は、自己生成されたパケットの転送を示す。点線６０９は、コントローラ６０１とすべてのフロー・スイッチとの間の制御プロトコル通信を可能にするために確立された、制御通信チャネル又はセキュア・チャネルを示す。自己生成されたパケットは、これらの制御通信チャネルを介して、又は他の同様のパスを介して、外部ポート６０５に転送され得る。自己生成されたパケットは、ドメインの内部ポートを介してフラッディングされないため、自己生成されたパケットを適切に転送するために必要なリソースを減少させる。
【００３７】
図７は、受信されたブロードキャスト・パケットを構成及び処理するためのプロセスの一実施形態を示す図である。受信されたブロードキャスト・パケットは、コントローラのドメイン内でフロー・スイッチの外部ポートを介して受信されるブロードキャスト・パケットである。したがって、受信されたブロードキャスト・パケットは、ドメイン外部のネットワーク・ノード又はデバイスから受信される。
【００３８】
このプロセスは、外部ポート・リストの可用性にも依拠しており、この外部ポート・リストは、図４に関して上記で、及び図１１〜図１３に関して本明細書の以下で説明されるように、作成及び維持されているものと想定する。コントローラはこのプロセスを実行するか、又はおのプロセスの実行を指示する。コントローラは、そのフロー・スイッチからコントローラへのフローを確立するための外部ポートを有する、そのドメイン内の各フロー・スイッチをプログラミングする（ブロック７０３）。このフローは、これらの制御パケットの転送を、フロー・スイッチからの転送のみに限定するように設計され、これらのメッセージは外部デバイスからコントローラへ受信される。受信された制御パケットは、ドメインの内部ポート上ではブロードキャストされず、それによって分割アーキテクチャ・ネットワーク内のリソースを節約する。
【００３９】
一実施形態において、外部ポートを伴うフロー・スイッチは、着信するパケットがブロードキャスト・パケットであることを示す宛先ＭＡＣアドレスに関する合致を検索するために、着信するパケットを分析するようにプログラミングされる。例えば、ＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦとアドレス指定されたＭＡＣは、ブロードキャスト・パケットを識別するために使用され得る。検出された各ブロードキャスト・パケットについて、パケットが制御パケットかどうかを判別するために、Ethertypeの着信するパケットが検査される。フロー・スイッチは、ブロードキャスト・パケットを示す宛先及び制御パケットを示すEthertypeを有する任意のパケットを転送するためのアクションで構成される。例えば、ＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦ  ＭＡＣアドレス及び制御パケットを示すEthertypeを有する、ＡＲＰ要求パケットを受信することができる。これらの基準に合致するパケットは、その後、フロー・スイッチ内の規則又は同様の構成可能なアクションを使用してコントローラに転送されるようにプログラミングされる。
【００４０】
その後コントローラは、外部サポートを伴う互いのフロー・スイッチへの外部ポートを有するドメイン内の各フロー・スイッチから、フロー・セットを計算する（ブロック７０５）。フローは、外部ポート間の最短パス又はドメインを横切る同様のパスとすることができる。コントローラは、そのドメインのトポロジのその知識を使用して、これらのパスを計算することができる。
【００４１】
フロー・セットが計算された後、コントローラは、フローに関連付けられた外部ポートに向かってデータ・ブロードキャスト・パケットを転送するために、フローに沿って各フロー・スイッチをプログラミングする（ブロック７０７）。他の実施形態において、フローは、ドメイン内のデータ・ブロードキャスト・パケットをフラッディングさせることなく、ドメイン内のすべてのフロー・スイッチへのデータ・ブロードキャスト・パケットの効率的な伝播を保証するようにも確立され得る。フローは、ユニキャスト・パス又はマルチキャスト・パス、或いはそれらの任意の組み合わせとすることができる。これらのパスは、ダイクストラ法アルゴリズム又は同様のプロセス等の、最短パス・アルゴリズムによって決定されるような、最短パスとすることができる。一実施形態において、フロー・スイッチは、受信されたデータ・ブロードキャスト・パケットがブロードキャスト・パケットであるかどうか（例えばＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦのＭＡＣアドレスの合致）を判別するためにこれらを分析するようにプログラミングされる。Ethertypeも、パケットが制御パケットかデータ・パケットかを判別するために、それらパケットについて分析される。受信されたデータ・パケットがデータ・ブロードキャスト・パケットである場合、フロー・スイッチはこれを関連付けられたフローのセットに沿って転送するように構成される。これによって、これらのパケットの盲目的な転送を回避し、これらのパケットのコントローラへの転送を回避する。
【００４２】
フロー・スイッチが適切に構成された後、ブロードキャスト・パケットの処理が開始される。ブロードキャスト・パケットを処理する際のコントローラの役割は、フロー・スイッチから受信された制御ブロードキャスト・パケットを処理すること、及び、その後それらを、ドメインの各外部ポート上で転送されることになる外部ポートを伴う各フロー・スイッチに転送することを含む（ブロック７０９）。
【００４３】
図８は、受信された制御ブロードキャスト・パケットを処理するドメイン及びコントローラの一実施形態を示す図である。制御ブロードキャスト・パケット８０３は、外部ポート８０５で受信される。外部ポート８０５を伴うフロー・スイッチは、受信された制御ブロードキャスト・パケットをコントローラ８０１に転送する８０７ように構成されている。フロー・スイッチは、受信された制御ブロードキャスト・パケットでドメインをフラッディングさせることがない。
【００４４】
コントローラ８０１は、必要に応じてパケットを処理し、制御ブロードキャスト・パケット８０９を、外部ポートを伴う各フロー・スイッチに転送する。次に、これらのフロー・スイッチのそれぞれが、関連付けられた外部ポート上で制御ブロードキャスト・パケットを転送する。これにより、受信された制御ブロードキャスト・パケットの適切な伝播を保証するが、内部ポートの不必要なフラッディング、及び、受信された制御ブロードキャスト・パケットとのドメインのリンクを回避する。
【００４５】
図９は、受信されたデータ・ブロードキャスト・パケットを処理するドメイン及びコントローラの一実施形態を示す図である。データ・ブロードキャスト・パケット９０３は、外部ポート９０５で受信される。外部ポート９０５を伴うフロー・スイッチは、受信されたデータ・ブロードキャスト・パケットを、コントローラによって構成されたフロー・セットに沿って転送する９０７ように構成されている。フローは、他の外部ポート９０９のそれぞれへの、受信されたデータ・ブロードキャスト・パケットの転送を指示する。他の外部ポート９０９に関連付けられたフロー・スイッチはデータ・ブロードキャスト・パケットを受信し、外部ポート上でパックを転送する。したがって、受信されたデータ・ブロードキャスト・パケットは、内部リンクをフラッディングさせることなく、及び、パケットをコントローラに転送することなく、ドメインを介して各外部ポートに転送される。
【００４６】
図１０は、暗黙的外部ポート識別のためのプロセスの一実施形態を示すフローチャートである。このプロセスで、外部ポートは、アクティブ・ポートのリストから内部ポートを消去することによって識別される。一実施形態において、OpenFlowプロトコルは、ドメイン内のすべてのフロー・スイッチに関するすべてのアクティブ・ポートのリストを取得するために使用され得る。他の実施形態において、リンク・レベル又はスイッチ・レベル発見プロトコルは、アクティブ・ポート及び内部ポートを決定するために使用される。
【００４７】
プロセスは、各フロー・スイッチに関するアクティブ・ポート・リストを生成するために、ドメイン内のすべてのフロー・スイッチを照会するコントローラによって開始される（ブロック１００１）。一実施形態において、照会はOpenFlowプロトコルの使用によって実施される。照会に対する回答がドメイン内の各フロー・スイッチから受信されると、アクティブ・ポートのリストはドメイン用のアクティブ・ポートのリストにコンパイルされる（ブロック１００３）。アクティブ・ポート・リストがコンパイルされると、コントローラは、ＬＬＤＰ等のＮＤＰを使用して、どのアクティブ・ポートがドメインの内部ポートであるかを決定する（ブロック１００５）。内部ポートのリストが受信されると、コントローラはそれらをドメイン用の内部ポートのリストにコンパイルする（ブロック１００７）。
【００４８】
その後、ドメインの内部ポート・リスト及びドメインのアクティブ・ポート・リストの比較によって、ドメインから外部ポートが決定され得る（ブロック１００９）。内部ポートとしてリストに掲載されていないすべてのアクティブ・ポートは、外部ポートであると推定される。その後、ブロードキャスト・パケットの処理に使用するための外部ポート・リストが維持され得る。これは、連続的又は定期的に更新又は再計算されている、アクティブ・ポート・リスト、内部ポート・リスト、及び外部ポート・リストを用いる進行中のプロセスとすることが可能である。
【００４９】
図１１は、近隣発見プロトコルを使用した暗黙的外部ポート決定の一実施形態を示す図である。コントローラは、そのポートのそれぞれでＮＤＰメッセージ１１０３Ａを送信する。このＮＤＰメッセージ１１０３Ａは、そのポート上で受信されたネットワーク要素によって転送される１１０３Ｂ。次に、ＮＤＰメッセージ１１０３Ｃはコントローラ１１０１に戻り、それによってコントローラ１１０１は、ＮＤＰメッセージ１１０３Ｂのルートがドメインの内部リンクをカバーする内部ルートであることを決定することができる。すべての内部リンクが決定されると、外部ポートはこの情報及びすべてのアクティブ・ポートのリストから推定され得る。
【００５０】
図１２は、スイッチ・レベル発見プロトコルを使用した暗黙的外部ポート決定の一実施形態を示す図である。コントローラ１２０１は、フロー・スイッチ間でのスイッチ・レベル発見プロトコル・メッセージ１２０３Ｂの送信を開始するために、ドメイン内の各フロー・スイッチ１２０３Ａ、Ｃと通信する。その後、フロー・スイッチは、リンク及びポートが内部又は外部の何れであるかをコントローラが決定できるように、コントローラにリンク情報を報告する。
【００５１】
図１３は、外部ポート識別のための明示的プロセスの一実施形態を示すフローチャートである。この実施形態において、外部ポートは、リンク・レベル発見プロトコル（ＬＬＤＰ）又は同様のプロトコル等の、近隣発見プロトコル（ＮＤＰ）を使用して識別される。本実施形態は、ドメインのフロー・スイッチ及びコントローラと通信する外部デバイスが、コントローラと同じＮＤＰをサポートしていることを必要とする。外部ポートは、ＮＤＰメッセージが、ドメインの一部でないデバイスから受信された場合に認識される。メッセージの進入ポートは外部ポートとして記録される。
【００５２】
外部ポート・リスト維持に関するこのプロセスは、フロー・スイッチで他のネットワーク・ノードからＮＤＰメッセージを受信することに応答して開始され得る（ブロック１３０１）。このＮＤＰメッセージは、フロー・スイッチによってコントローラに転送される制御メッセージである。コントローラは、メッセージのソースを決定するために受信されたＮＤＰメッセージを検査する（ブロック１３０３）。ソースは、ＮＤＰメッセージ内のソース・アドレスから決定され得る。ソース・ネットワーク・ノードは、コントローラのドメイン内の既知のネットワーク・ノードのリストと比較される（ブロック１３０５）。ソース・ネットワーク・ノードがコントローラのドメイン内に無い場合、ＮＤＰメッセージが受信された際に介したフロー・スイッチのポートが、ドメインに関する外部ポートのリストに追加される（ブロック１３０７）。このポートの識別は、ＮＤＰメッセージが転送された場合、又は、コントローラの照会に応答して、ＮＤＰメッセージをコントローラに転送したフロー・スイッチに提供され得る。
【００５３】
このようにして、分割アーキテクチャ・ネットワーク内でのブロードキャスト・パケットの処理を最適化するための方法、システム、及び装置が提供される。上記説明が例示的であり、制限的でないことが意図されることを理解されよう。当業者であれば、上記説明を読み、これを理解することで、多くの他の実施形態が明らかとなろう。したがって本発明の範囲は、添付の特許請求の範囲、並びにかかる特許請求の範囲が相当する等価物の全範囲を参照しながら、決定されるべきである。
【図１】
0005974092.tif 000002
【図２】
0005974092.tif 000003
【図３】
0005974092.tif 000004
【図４】
0005974092.tif 000005
【図５】
0005974092.tif 000006
【図６】
0005974092.tif 000007
【図７】
0005974092.tif 000008
【図８】
0005974092.tif 000009
【図９】
0005974092.tif 000010
【図１０】
0005974092.tif 000011
【図１１】
0005974092.tif 000012
【図１２】
0005974092.tif 000013
【図１３】
0005974092.tif 000014