(57)【要約】ネットワーク内の階層トポロジアドレス指定および階層再帰ルーティングのためのシステムは、レベルを含むルーティング層を形成する、階層トポロジで組織化されるルーティングデバイスを含む。レベルは、それぞれ、ルーティングデバイスの第１および第２のサブセットを含む、第１および第２のレベルを含む。第１のレベル内の各ルーティングデバイスは、エンドポイントモジュールに、および第２のレベル内のルーティングデバイスに直接接続される。各ルーティングデバイスは、階層トポロジ内にルーティングデバイスの場所に基づく階層アドレスを有する。各ルーティングデバイスは、ネットワークを通してパケットをルーティングするように、再帰ワンホップルーティングを行う。
2018535619.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク内の階層トポロジアドレス指定および階層再帰ルーティングのためのシステムであって、前記システムは、
階層トポロジで組織化された複数のルーティングデバイスを備え、前記トポロジは、複数のレベルを含むルーティング層を形成し、前記レベルは、第１のレベルと、第２のレベルとを含み、前記第１のレベルは、前記ルーティングデバイスの第１のサブセットを含み、前記第２のレベルは、前記ルーティングデバイスの第２のサブセットを含み、前記第１のレベル内の各ルーティングデバイスは、１つ以上のエンドポイントモジュールに、および前記第２のレベル内の１つ以上のルーティングデバイスに直接接続され、前記階層トポロジ内の各ルーティングデバイスは、前記階層トポロジ内に個別のルーティングデバイスの場所に基づく階層アドレスを有し、
前記階層トポロジ内の前記ルーティングデバイスのそれぞれは、再帰ワンホップルーティングを行い、前記ネットワークを通してパケットをルーティングするように動作可能であり、第１のルーティングデバイスが特定のパケットに前記再帰ワンホップルーティングを行うことは、
少なくとも前記パケットの宛先アドレスのプレフィックスに基づいて、前記第１のルーティングデバイスのネットワークポートを選択することであって、前記宛先アドレスは、前記第１のレベル内の第２のルーティングデバイスの階層アドレスである、ことと、
前記パケットを前記選択されたネットワークポートに直接接続されたルーティングデバイスに転送することと
を含む、システム。
【請求項２】
前記ルーティング層は、ネットワークプロトコルスタック内のネットワーク層の下方にある、請求項１に記載のシステム。
【請求項３】
前記ネットワーク層は、インターネットプロトコル（ＩＰ）層である、請求項２に記載のシステム。
【請求項４】
前記エンドポイントモジュールは、前記ネットワーク層内の第２のエンドポイントモジュールとネットワーク接続を確立するように動作可能な第１のエンドポイントモジュールを含み、前記第１および第２のエンドポイントモジュールの間でルーティングされるパケットは、前記再帰ワンホップルーティングを介して、前記ネットワークを通してルーティングされる、請求項２に記載のシステム。
【請求項５】
前記第１および第２のエンドポイントモジュールは、前記第１のエンドポイントモジュールの第１の一意のネットワーク識別子（ＩＤ）および前記第２のエンドポイントモジュールの第２の一意のネットワーク識別子（ＩＤ）を使用して、前記ネットワーク層内で前記ネットワーク接続を確立する、請求項４に記載のシステム。
【請求項６】
前記第１のレベル内の特定のルーティングデバイスＲ１は、前記ネットワーク接続が確立されることに先立って、前記第１のエンドポイントモジュールに直接接続され、前記特定のルーティングデバイスＲ１は、前記ネットワーク接続が確立されることに先立って、階層アドレスを前記第１のエンドポイントモジュールに割り当て、特定のルーティングデバイスＲ２は、前記ネットワーク接続が確立された後に、前記第１のエンドポイントモジュールの前記階層アドレスを変更し、前記ネットワークは、前記第１のエンドポイントモジュールの前記階層アドレスの前記変更の前および後に途切れることなく前記ネットワーク接続を維持する、請求項５に記載のシステム。
【請求項７】
前記ネットワークと１つ以上の外部ネットワークとの間でパケットをルーティングするように動作可能なゲートウェイデバイスをさらに備え、前記ゲートウェイデバイスは、前記パケットをルーティングするために前記ネットワーク層内で一意のネットワーク識別子（ＩＤ）を使用する、請求項２に記載のシステム。
【請求項８】
前記一意のネットワークＩＤは、インターネットプロトコル（ＩＰ）アドレスおよび／または媒体アクセス制御（ＭＡＣ）アドレスである、請求項７に記載のシステム。
【請求項９】
前記階層トポロジ内の各ルーティングデバイスは、ネットワーク転送プレーンを実装し、１つ以上の遠隔ネットワークルーティングプレーンと通信する、請求項１に記載のシステム。
【請求項１０】
各ルーティングデバイスはさらに、１つ以上の遠隔ネットワークサービスプレーンと通信する、請求項９に記載のシステム。
【請求項１１】
前記階層トポロジ内の前記ルーティングデバイスは、前記ルーティングデバイスの前記階層トポロジの変化に応答して、前記階層アドレスをそれら自体に自律的に再び割り当てる、請求項１に記載のシステム。
【請求項１２】
階層トポロジで組織化された複数のルーティングデバイスを含むネットワーク内の階層トポロジアドレス指定および階層再帰ルーティングのための方法であって、前記トポロジは、複数のレベルを含むルーティング層を形成し、前記レベルは、第１のレベルと、第２のレベルとを含み、前記第１のレベルは、前記ルーティングデバイスの第１のサブセットを含み、前記第２のレベルは、前記ルーティングデバイスの第２のサブセットを含み、前記第１のレベル内の各ルーティングデバイスは、１つ以上のエンドポイントモジュールに、および前記第２のレベル内の１つ以上のルーティングデバイスに直接接続され、前記階層トポロジ内の各ルーティングデバイスは、前記階層トポロジ内に個別のルーティングデバイスの場所に基づく階層アドレスを有し、前記階層トポロジ内の前記ルーティングデバイスのそれぞれは、再帰ワンホップルーティングを行い、前記ネットワークを通してパケットをルーティングするように動作可能であり、前記方法は、
第１のルーティングデバイスによって、特定のパケットに再帰ワンホップルーティングを行うことを含み、前記行うことは、
少なくとも前記パケットの宛先アドレスのプレフィックスに基づいて、前記第１のルーティングデバイスのネットワークポートを選択することであって、前記宛先アドレスは、前記第１のレベル内の第２のルーティングデバイスの階層アドレスである、ことと、
前記パケットを前記選択されたネットワークポートに直接接続されたルーティングデバイスに転送することと
を含む、方法。
【請求項１３】
前記ルーティング層は、ネットワークプロトコルスタック内のネットワーク層の下方にある、請求項１２に記載の方法。
【請求項１４】
前記ネットワーク層は、インターネットプロトコル（ＩＰ）層である、請求項１３に記載の方法。
【請求項１５】
前記エンドポイントモジュールは、前記ネットワーク層内の第２のエンドポイントモジュールとネットワーク接続を確立するように動作可能な第１のエンドポイントモジュールを含み、前記第１および第２のエンドポイントモジュールの間でルーティングされるパケットは、前記再帰ワンホップルーティングを介して、前記ネットワークを通してルーティングされる、請求項１３に記載の方法。
【請求項１６】
前記第１および第２のエンドポイントモジュールは、前記第１のエンドポイントモジュールの第１の一意のネットワーク識別子（ＩＤ）および前記第２のエンドポイントモジュールの第２の一意のネットワーク識別子（ＩＤ）を使用して、前記ネットワーク層内で前記ネットワーク接続を確立する、請求項１５に記載の方法。
【請求項１７】
前記第１のレベル内の特定のルーティングデバイスＲ１は、前記ネットワーク接続が確立されることに先立って、前記第１のエンドポイントモジュールに直接接続され、前記特定のルーティングデバイスＲ１は、前記ネットワーク接続が確立されることに先立って、階層アドレスを前記第１のエンドポイントモジュールに割り当て、特定のルーティングデバイスＲ２は、前記ネットワーク接続が確立された後に、前記第１のエンドポイントモジュールの前記階層アドレスを変更し、前記ネットワークは、前記第１のエンドポイントモジュールの前記階層アドレスの前記変更の前および後に途切れることなく前記ネットワーク接続を維持する、請求項１６に記載の方法。
【請求項１８】
前記ネットワークはさらに、前記ネットワークと１つ以上の外部ネットワークとの間でパケットをルーティングするように動作可能なゲートウェイデバイスを含み、前記ゲートウェイデバイスは、前記パケットをルーティングするために前記ネットワーク層内で一意のネットワーク識別子（ＩＤ）を使用する、請求項１３に記載の方法。
【請求項１９】
前記一意のネットワークＩＤは、インターネットプロトコル（ＩＰ）アドレスおよび／または媒体アクセス制御（ＭＡＣ）アドレスである、請求項１８に記載の方法。
【請求項２０】
前記階層トポロジ内の各ルーティングデバイスは、ネットワーク転送プレーンを実装し、１つ以上の遠隔ネットワークルーティングプレーンと通信する、請求項１２に記載の方法。
【請求項２１】
各ルーティングデバイスはさらに、１つ以上の遠隔ネットワークサービスプレーンと通信する、請求項２０に記載の方法。
【請求項２２】
前記階層トポロジ内の前記ルーティングデバイスは、前記ルーティングデバイスの前記階層トポロジの変化に応答して、前記階層アドレスをそれら自体に自律的に再び割り当てる、請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願への相互参照）
本出願は、Ａｔｔｏｒｎｅｙ  Ｄｏｃｋｅｔ  Ｎｏ．ＶＮＷ−００１ＰＲで２０１５年１１月２５日に出願された米国仮特許出願第６２／２５９，９３４号に対して優先権、およびそれの利益を主張する。上記文献は、適用可能な法律によって許可される最大限までここで参照することによって本明細書において援用される。
【０００２】
（発明の分野）
本開示は、概して、ネットワークルーティングを改良するための技法に関する。本明細書に説明されるいくつかの実施形態は、具体的には、ノード内通信を管理するために一時的ノードアドレスとともに単一ホップルーティングを使用することに関する。
【背景技術】
【０００３】
（背景）
現在のインターネットアーキテクチャは、自律的異種ネットワークの大規模セットの上に技術非依存性抽象化を提供する「ネットワーク層」を含む、異なる機能の層の周囲に構築される。インターネットプロトコル（ＩＰ）は、そのような抽象化を達成するための１つの機構である。しかしながら、インターネットプロトコルの「最善努力」サービスモデルの制限は、インターネットが、セキュリティ、管理可能性、無線ネットワーキング、モビリティ、およびその他等の新しい要件を満たすために効果的に拡張することを妨げている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
（発明の要約）
現在のインターネットアーキテクチャの１つの欠点は、それが実際のアドレスをエンドポイントモジュール（例えば、サーバまたはクライアントデバイス等のエンドポイントデバイス、仮想マシン等のエンドポイントデバイス上で実行するアプリケーション等）にエクスポーズすることである。インターネット全体でエンドポイントモジュールの実際のアドレス（例えば、ＩＰアドレス）をエクスポーズすることは、これらのモジュールのモビリティを阻止する傾向がある。例えば、ケーブルオペレータＡによって提供されるＩＰアドレスに結合するボイスオーバーＩＰ（ＶｏＩＰ）アプリケーションを使用するクライアントは、概して、ネットワークアドレス登録およびアプリケーションコネクティビティを妨害することなく、（ＩＰアドレスが割り当てられる）ケーブルオペレータＡのサブネットの外側に移動することができない。
【０００５】
現在のインターネットアーキテクチャに関する別の問題は、それがトランスポートおよびルーティング／中継を２つの別個の層に分割し、ルーティングテーブルの増大を引き起こす傾向がある層の数を人工的に限定することによって、同一の範囲の機能を人工的に単離することである。本問題は、大量のトラフィックが、そのような大規模ルーティングテーブルを保持することが可能なネットワークデバイスに転送され、単にヘアピン接続を介してネットワークの中へ返送される、データセンタおよびモバイルネットワークで特に問題となる。トラフィックが１つのソースからネットワークデバイス（例えば、ルータ）の中へ入り、Ｕターンを行い、それが来た同一の道を戻る、本シナリオは、極めて一般的であり、高度に非効率的である。
【０００６】
本発明者らは、インターネットプロトコルが常駐する「ネットワーク層」によってカプセル化される（それよりも低い）１つ以上の層内で階層トポロジアドレス指定および再帰ルーティングを使用することによって、インターネット（またはデータセンタ等のその部分）の性能が増進され得ることを認識して理解している。ネットワーク層の下方で階層トポロジアドレス指定および再帰ルーティングを使用することは、現在のインターネットアーキテクチャを留保するインターネットの他の部分との互換性を維持しながら、エンドポイントモジュールのモビリティの増加およびルーティングテーブルのサイズの縮小につながり得る。
【課題を解決するための手段】
【０００７】
本開示のある側面によると、ネットワーク内の階層トポロジアドレス指定および階層再帰ルーティングのためのシステムは、階層トポロジで組織化される複数のルーティングデバイスを含んでもよく、トポロジは、複数のレベルを含む、ルーティング層を形成し、レベルは、第１のレベルと、第２のレベルとを含み、第１のレベルは、ルーティングデバイスの第１のサブセットを含み、第２のレベルは、ルーティングデバイスの第２のサブセットを含み、第１のレベル内の各ルーティングデバイスは、１つ以上のエンドポイントモジュールに、および第２のレベル内の１つ以上のルーティングデバイスに直接接続され、階層トポロジ内の各ルーティングデバイスは、階層トポロジ内に個別のルーティングデバイスの場所に基づく階層アドレスを有する。階層トポロジ内のルーティングデバイスのそれぞれは、再帰ワンホップルーティングを行い、ネットワークを通してパケットをルーティングするように動作可能であり、第１のルーティングデバイスが特定のパケットに再帰ワンホップルーティングを行うことは、少なくともパケットの宛先アドレスのプレフィックスに基づいて、第１のルーティングデバイスのネットワークポートを選択することであって、宛先アドレスは、第１のレベル内の第２のルーティングデバイスの階層アドレスである、ことと、パケットを選択されたネットワークポートに直接接続されるルーティングデバイスに転送することとを含む。
【０００８】
いくつかの実施形態では、ルーティング層は、ネットワークプロトコルスタック内のネットワーク層の下方にある。いくつかの実施形態では、ネットワーク層は、インターネットプロトコル（ＩＰ）層である。いくつかの実施形態では、エンドポイントモジュールは、ネットワーク層内の第２のエンドポイントモジュールとネットワーク接続を確立するように動作可能な第１のエンドポイントモジュールを含み、第１および第２のエンドポイントモジュールの間でルーティングされるパケットは、再帰ワンホップルーティングを介して、ネットワークを通してルーティングされる。いくつかの実施形態では、第１および第２のエンドポイントモジュールは、第１のエンドポイントモジュールの第１の一意のネットワーク識別子（ＩＤ）および第２のエンドポイントモジュールの第２の一意のネットワーク識別子（ＩＤ）を使用して、ネットワーク層内でネットワーク接続を確立する。いくつかの実施形態では、第１のレベル内の特定のルーティングデバイスＲ１は、ネットワーク接続が確立されることに先立って、第１のエンドポイントモジュールに直接接続され、特定のルーティングデバイスＲ１は、ネットワーク接続が確立されることに先立って、階層アドレスを第１のエンドポイントモジュールに割り当て、特定のルーティングデバイスＲ２は、ネットワーク接続が確立された後に、第１のエンドポイントモジュールの階層アドレスを変更し、ネットワークは、第１のエンドポイントモジュールの階層アドレスの変更の前および後に途切れることなくネットワーク接続を維持する。
【０００９】
いくつかの実施形態では、本システムはさらに、ネットワークと１つ以上の外部ネットワークとの間でパケットをルーティングするように動作可能なゲートウェイデバイスを含み、ゲートウェイデバイスは、パケットをルーティングするためにネットワーク層内で一意のネットワーク識別子（ＩＤ）を使用する。いくつかの実施形態では、一意のネットワークＩＤは、インターネットプロトコル（ＩＰ）アドレスおよび／または媒体アクセス制御（ＭＡＣ）アドレスである。いくつかの実施形態では、階層トポロジ内の各ルーティングデバイスは、ネットワーク転送プレーンを実装し、１つ以上の遠隔ネットワークルーティングプレーンと通信する。いくつかの実施形態では、各ルーティングデバイスはさらに、１つ以上の遠隔ネットワークサービスプレーンと通信する。
【００１０】
いくつかの実施形態では、階層トポロジ内のルーティングデバイスは、ルーティングデバイスの階層トポロジの変化に応答して、階層アドレスをそれら自体に自律的に再び割り当てる。
【００１１】
本開示の別の側面によると、ネットワーク内の階層トポロジアドレス指定および階層再帰ルーティングのための方法が提供される。ネットワークは、階層トポロジで組織化される複数のルーティングデバイスを含む。トポロジは、第１のレベルと、第２のレベルとを含む、複数のレベルを含む、ルーティング層を形成する。第１のレベルは、ルーティングデバイスの第１のサブセットを含み、第２のレベルは、ルーティングデバイスの第２のサブセットを含む。第１のレベル内の各ルーティングデバイスは、１つ以上のエンドポイントモジュールに、および第２のレベル内の１つ以上のルーティングデバイスに直接接続される。階層トポロジ内の各ルーティングデバイスは、階層トポロジ内に個別のルーティングデバイスの場所に基づく階層アドレスを有し、階層トポロジ内のルーティングデバイスのそれぞれは、再帰ワンホップルーティングを行い、ネットワークを通してパケットをルーティングするように動作可能である。本方法は、少なくともパケットの宛先アドレスのプレフィックスに基づいて、第１のルーティングデバイスのネットワークポートを選択することであって、宛先アドレスは、第１のレベル内の第２のルーティングデバイスの階層アドレスである、ことと、パケットを選択されたネットワークポートに直接接続されるルーティングデバイスに転送することとを含む、第１のルーティングデバイスによって特定のパケットに再帰ワンホップルーティングを行うことを含む。
【００１２】
いくつかの実施形態では、ルーティング層は、ネットワークプロトコルスタック内のネットワーク層の下方にある。いくつかの実施形態では、ネットワーク層は、インターネットプロトコル（ＩＰ）層である。いくつかの実施形態では、エンドポイントモジュールは、ネットワーク層内の第２のエンドポイントモジュールとネットワーク接続を確立するように動作可能な第１のエンドポイントモジュールを含み、第１および第２のエンドポイントモジュールの間でルーティングされるパケットは、再帰ワンホップルーティングを介して、ネットワークを通してルーティングされる。いくつかの実施形態では、第１および第２のエンドポイントモジュールは、第１のエンドポイントモジュールの第１の一意のネットワーク識別子（ＩＤ）および第２のエンドポイントモジュールの第２の一意のネットワーク識別子（ＩＤ）を使用して、ネットワーク層内でネットワーク接続を確立する。いくつかの実施形態では、第１のレベル内の特定のルーティングデバイスＲ１は、ネットワーク接続が確立されることに先立って、第１のエンドポイントモジュールに直接接続され、特定のルーティングデバイスＲ１は、ネットワーク接続が確立されることに先立って、階層アドレスを第１のエンドポイントモジュールに割り当て、特定のルーティングデバイスＲ２は、ネットワーク接続が確立された後に、第１のエンドポイントモジュールの階層アドレスを変更し、ネットワークは、第１のエンドポイントモジュールの階層アドレスの変更の前および後に途切れることなくネットワーク接続を維持する。
【００１３】
いくつかの実施形態では、ネットワークはさらに、ネットワークと１つ以上の外部ネットワークとの間でパケットをルーティングするように動作可能なゲートウェイデバイスを含み、ゲートウェイデバイスは、パケットをルーティングするためにネットワーク層内で一意のネットワーク識別子（ＩＤ）を使用する。いくつかの実施形態では、一意のネットワークＩＤは、インターネットプロトコル（ＩＰ）アドレスおよび／または媒体アクセス制御（ＭＡＣ）アドレスである。いくつかの実施形態では、階層トポロジ内の各ルーティングデバイスは、ネットワーク転送プレーンを実装し、１つ以上の遠隔ネットワークルーティングプレーンと通信する。いくつかの実施形態では、各ルーティングデバイスはさらに、１つ以上の遠隔ネットワークサービスプレーンと通信する。
【００１４】
いくつかの実施形態では、階層トポロジ内のルーティングデバイスは、ルーティングデバイスの階層トポロジの変化に応答して、階層アドレスをそれら自体に自律的に再び割り当てる。
【００１５】
本明細書に説明される主題の１つ以上の実施形態の詳細が、付随する図面および以下の説明に記載される。主題の他の特徴、側面、および利点が、説明、図面、ならびに請求項から明白になるであろう。いくつかの実施形態に関する動機および／またはいくつかの実施形態の利点の説明を含む、前述の発明の概要は、読者が本開示を理解することを支援することを意図し、請求項のうちのいずれの範囲もいかようにも限定しない。
【００１６】
いくつかの実施形態のある利点が、付随する図面と併せて解釈される、以下の説明を参照することによって理解され得る。図面では、同様の参照文字は、概して、異なる図の全体を通して同一の部分を指す。また、図面は、必ずしも縮尺通りではなく、代わりに、概して、本発明のいくつかの実施形態の原理を例証することに重点が置かれている。
【図面の簡単な説明】
【００１７】
【図１】図１は、いくつかの実施形態による、ネットワークのブロック図である。
【図２】図２は、いくつかの実施形態による、階層再帰ネットワークのブロック図である。
【図３】図３は、いくつかの実施形態による、階層再帰ネットワークのエッジルータによって行われるルーティング方法を図示するフローチャートである。
【図４】図４は、いくつかの実施形態による、階層再帰ネットワークのコアルータによって行われるルーティング方法を図示するフローチャートである。
【図５】図５は、いくつかの実施形態による、データセンタ内でパケットをルーティングするために好適な図２の階層再帰ネットワークの例示的実装の概略図である。
【図６】図６は、いくつかの実施形態による、ネットワークシステムのブロック図である。
【図７】図７は、いくつかの実施形態による、図６のネットワークシステムの別のブロック図である。
【発明を実施するための形態】
【００１８】
（詳細な説明）
図１を参照すると、ネットワーク１００は、ゲートウェイ１１５および１２５を介して通信可能に結合される、ネットワーク１１０および１３０を含んでもよい。ネットワーク１３０は、階層再帰ネットワーク（ＨＲＮ）１４０と、ＨＲＮ１４０に接続されるエンドポイントモジュール１５０とを含む。いくつかの実施形態では、ネットワーク１３０はまた、ゲートウェイ１２５も含む。ＨＲＮの好適なトポロジおよびＨＲＮ内で使用するために好適なルーティング技法を含む、ＨＲＮ１４０のいくつかの実施形態の特徴が、以下に説明される。加えて、エンドポイントモジュール１６０は、ネットワーク１１０に結合され、ネットワーク１１０、ゲートウェイ（１１５、１２５）、およびＨＲＮ１４０を介して、エンドポイントモジュール１５０と通信することができる。
【００１９】
エンドポイントモジュール（１５０、１６０）は、エンドポイントデバイス（例えば、サーバコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、スマートフォン等）、またはエンドポイントデバイス上で実行するアプリケーション（例えば、仮想マシン）であってもよい。エンドポイントデバイスのいくつかの実施形態が、以下でさらに詳細に説明される。各エンドポイントモジュールは、少なくとも１つの一意のネットワーク識別子（「ネットワークＩＤ」）、例えば、インターネットプロトコル（ＩＰ）アドレス、媒体アクセス制御（ＭＡＣ）アドレス等を割り当てられてもよい。
【００２０】
ネットワーク１１０は、任意の好適なタイプの１つ以上の通信ネットワークを含んでもよい。通信ネットワークのいくつかの実施例は、ローカルエリアネットワーク（「ＬＡＮ」）、広域ネットワーク（「ＷＡＮ」）、例えば、インターネット（またはその一部）等を含む。通信ネットワークは、有線および／または無線ネットワークを含んでもよい。ネットワーク１１０は、任意の好適なルーティング技法（例えば、リンク状態ルーティング、距離ベクトルルーティング等）を使用して、ルーティングを行ってもよい。いくつかの実施形態では、ネットワーク１１０は、データパケットがアドレス指定されるエンドポイントモジュールのネットワークＩＤに基づいて、データパケットをルーティングする。上記で議論されるように、エンドポイントモジュールの一意のネットワークＩＤに基づいてルーティングを行うことは、モバイルエンドポイントモジュール（１５０、１６０）が場所を変更するときにコネクティビティの損失につながり得、また、非常に大規模なルーティングテーブルおよび関連付けられるルーティング非効率性につながり得る。
【００２１】
ゲートウェイ（１１５、１２５）は、パケットがアドレス指定されるエンドポイントモジュールのネットワークＩＤに基づいて、ネットワーク（例えば、ネットワーク１１０およびネットワーク１３０）の間でパケットをルーティングしてもよい。ゲートウェイ１１５がエンドポイントモジュール１６０のうちの１つのネットワークＩＤにアドレス指定されるパケットを受信するとき、ゲートウェイ１１５は、そのエンドポイントモジュール１６０にルーティングするためにパケットをネットワーク１１０に転送する。ゲートウェイ１１５が、エンドポイントモジュール１５０のうちの１つのネットワークＩＤにアドレス指定されるパケットを受信するとき、ゲートウェイ１１５は、階層再帰ネットワーク１４０を介してエンドポイントモジュール１５０にルーティングするためにパケットをゲートウェイ１２５に（またはそれに向けて）転送する。ゲートウェイ１２５がエンドポイントモジュール１５０のうちの１つのネットワークＩＤにアドレス指定されるパケットを受信するとき、ゲートウェイ１２５は、そのエンドポイントモジュール１５０にルーティングするためにパケットをＨＲＮ１４０に転送する。ゲートウェイ１２５がエンドポイントモジュール１６０のうちの１つのネットワークＩＤにアドレス指定されるパケットを受信するとき、ゲートウェイ１２５は、ネットワーク１１０を介してエンドポイントモジュール１６０にルーティングするためにパケットをゲートウェイ１１５に（またはそれに向けて）転送する。ゲートウェイの例示的実装が、図６および７を参照して以下に説明される。
【００２２】
階層再帰ネットワーク１４０では、ネットワークデバイス（例えば、ルータ）は、階層トポロジ（例えば、ツリー）で物理的に組織化され、トポロジ内のそれらの場所に対応する階層アドレスを割り当てられる。ネットワークデバイスは、階層アドレスをそれら自体に自律的に割り当ててもよく、および／または階層アドレスは、ユーザ（例えば、ネットワーク管理者）によってネットワークデバイスに割り当てられてもよい。ＨＲＮ１４０内で、ネットワークデバイスは、再帰ルーティングプロトコルを使用することができる。いくつかの実施形態では、ルーティングプロトコルは、ＩＳ−ＩＳ等の既存のプロトコルを使用して実装される。再帰ルーティングプロトコルを使用して、コアルータ（例えば、エンドポイントデバイス１５０に直接接続されないルータ）は、パケットの宛先アドレスのプレフィックスに基づいて、ＨＲＮ１４０内でパケットを転送する方法を判定することができ、エッジルータ（例えば、エンドポイントデバイス１５０に直接接続されるルータ）は、パケットの宛先アドレスのプレフィックスに基づいて、パケットをコアルータに転送する方法を判定することができる。再帰ルーティングプロトコルが使用されるとき、特定のエンドポイントモジュールに接続されるエッジルータのみが、そのエンドポイントモジュールのアドレスのためのルーティングテーブル項目を維持する。したがって、プレフィックスベースの再帰ルーティングは、ＨＲＮ１４０内のネットワークデバイスによって維持されるルーティングテーブルのサイズを大いに縮小することができる。
【００２３】
階層再帰ネットワーク１４０では、エッジルータは、階層アドレスをエンドポイントモジュールに割り当てることができ、ネットワークレジストラは、エンドポイントモジュールの一意のネットワークＩＤとそれらの対応する階層アドレスとの間のマッピングを維持することができる。ネットワークレジストラは、集中または分散されることができる。エンドポイントモジュールがネットワーク内の異なる場所に物理的に移動するとき、モジュールは、その一意のネットワークＩＤを維持するが、ネットワークから新しい階層アドレスを受信することができる。したがって、ネットワーク層内のコネクティビティは、エンドポイントモジュールが移動するにつれて維持されることができ、それによって、エンドポイントモジュールのモビリティの増加を促進する。
【００２４】
階層再帰ネットワーク１４０のいくつかの実装が、図２−５を参照して以下に説明される。図２の実施例では、ネットワーク１４０は、３つのレベルで組織化されたネットワークデバイス（例えば、ルーティングデバイス）とともに、階層トポロジ（具体的には、ツリートポロジ）を有する。第１の（最低）レベルは、エッジルータ（「ＥＲ」）２１０を含む。各エッジルータ２１０は、多くのエンドポイントモジュール１５０に接続されてもよいが、図２の実施例では、２つだけのエンドポイントモジュール１５０ａおよび１５０ｂが示されている。第２の（中間）レベルは、コアルータ（「ＣＲ」）２２０を含む。第２のレベル内のコアルータ２２０のそれぞれは、第１のレベル内の１つ以上のエッジルータ２１０に接続されてもよい。第３の（最高）レベルは、コアルータ（「ＣＲ」）２３０を含む。第３のレベル内のコアルータ２３０のそれぞれは、第２のレベル内の１つ以上のコアルータ２２０に、および１つ以上のゲートウェイ１２５に接続されてもよい。
【００２５】
図２の実施例では、ネットワークデバイス（２１０、２２０、２３０）は、階層トポロジで組織化されるだけではなく、トポロジ内のそれらの場所に対応する階層アドレスも割り当てられる。例えば、エッジルータ２１０ｃは、アドレス１．１．３を割り当てられ、エッジルータ２１０ｃに接続される全てのエンドポイントモジュール１５０は、エッジルータ２１０ｃのアドレスに合致する、１．１．３のプレフィックスを伴うアドレスを割り当てられる。同様に、コアルータ２２０ａは、アドレス１．１を割り当てられ、１．１のプレフィックスを伴うアドレスを割り当てられた全てのエッジルータ２１０（すなわち、ＥＲ２１０ａ、２１０ｂ、および２１０ｃ）は、ＣＲ２２０ａに接続される。さらに、コアルータ２３０ａは、アドレス１を割り当てられ、１のプレフィックスを伴うアドレスを割り当てられた全てのコアルータ２２０（すなわち、ＣＲ２２０ａ、２２０ｂ、および２２０ｃ）は、ＣＲ２３０ａに接続される。（図２の実施例では、第１のレベル内のエッジルータ２１０のうちのいくつかは、第２のレベル内の１つを上回るコアルータ２２０に接続され、第２のレベル内のコアルータ２２０のうちのいくつかは、第３のレベル内の１つを上回るコアルータ２３０に接続される。ネットワーク１４０内のこれらの冗長リンクは、耐故障性および負荷バランシングを促進することができる。加えて、これらの冗長リンクは、ネットワーク１４０の階層トポロジに干渉することも、ネットワークの階層アドレス指定方式に干渉することもない。）
【００２６】
ネットワークデバイス２１０−２３０およびエンドポイントモジュール１５０がトポロジ内のそれらの場所に対応する階層アドレスを伴って階層トポロジで組織化されると、ネットワークデバイスは、再帰ワンホップルーティングを使用して、ネットワーク１４０を通してデータパケットを効率的にルーティングすることができる。ネットワーク１４０内で、再帰ルーティングプロトコルは、以下の条件によって特徴付けられてもよい。
【００２７】
（１）特定のエッジルータ２１０から、そのエッジルータに接続されるエンドポイントモジュール１５０にローカルパケットを転送するタスクを除いて、各ネットワークデバイス２１０−２３０は、パケットがルーティングされているエンドポイントモジュール１５０のアドレスのプレフィックスに基づいて、各パケットをそのルーティングパス内の次のホップに転送することができる。
【００２８】
（２）エンドポイントモジュール１５０に接続されるエッジルータ２１０は、そのエンドポイントモジュール１５０の全階層アドレスのためのルーティングテーブル項目を維持するが、ネットワーク１４０内のいかなる他のエッジルータ２１０も、そのエンドポイントモジュール１５０の全階層アドレスのためのルーティングテーブル項目を維持するように要求されない。
【００２９】
ここで、ネットワーク１４０によって行われる登録動作の実施例が説明される。一実施形態では、エンドポイントモジュール１５０の階層アドレスは、一時的エイリアスとしてネットワーク１４０のレジストラによって維持される。ネットワーク１４０に接続するために、エンドポイントモジュール１５０は、エンドポイントモジュール１５０が接続されるエッジルータ２１０を介して、ネットワークレジストラに登録し、登録情報（例えば、エンドポイントモジュールの一時的エイリアス（階層アドレス）および一意のネットワークＩＤ）は、同一の登録サービスを提供する他のネットワークデバイスに配布される。例えば、ネットワーク１４０に接続するために、エンドポイントモジュール１５０ａは、１．１．３のアドレスを有する、エッジルータ２１０ｃに登録する。レジストラは、階層アドレス指定方式に準拠する一時的エイリアス（階層アドレス）、すなわち、プレフィックスとしてエッジルータ２１０ｃのアドレスを含む階層アドレスをエンドポイントモジュール１５０ａに割り当てる。図２の実施例では、エンドポイントモジュール１５０ａに割り当てられる階層アドレスは、１．１．３．１０である。
【００３０】
登録の前述の実施例では、エンドポイントモジュール１５０ａは、単一のエッジルータ２１０ｃに登録する。いくつかの実施形態では、エンドポイントモジュール１５０は、１つ以上のエッジルータ２１０に登録することができる。複数のエッジルータへのエンドポイントモジュール１５０の冗長登録および接続は、ネットワークの回復力を増加させることができ、また、負荷バランシングを促進し得る。エンドポイントモジュール１５０が複数のエッジルータ２１０に登録するシナリオでは、エンドポイントモジュールは、複数の一意のネットワークＩＤ（登録毎に１つ）および複数の階層アドレス（エッジルータ毎に１つ）を割り当てられてもよい。
【００３１】
ここで、ネットワーク１４０によって行われるルーティング動作の実施例が、説明される。図２を参照すると、エンドポイントモジュール１５０ｂは、アドレスＮ．２．１．７６を割り当てられており、アドレスＮ．２．１を割り当てられたエッジルータ２１０ｐに接続される。エンドポイントモジュール１５０ａへのパケットの伝送を開始するために、エンドポイントモジュール１５０ｂは、ネットワーク層パケットＰＮＬをエンドポイントモジュール１５０ａの一意のネットワークＩＤにアドレス指定し、パケットをネットワーク層におけるエッジルータ２１０ｐに転送する。エッジルータ２１０ｐは、エンドポイントモジュール１５０ａの場所（例えば、エンドポイントモジュール１５０ａが接続されるエッジルータ２１０のアドレス）についてレジストラにクエリを行う。エッジルータ２１０ｐは、エンドポイントモジュール１５０ａがアドレス１．１．３を伴うエッジルータ（２１０ｃ）に接続されていることを示す、応答をレジストラから受信する。
【００３２】
ルーティング実施例を継続すると、エッジルータ２１０ｐは、パケットの宛先アドレス１．１．３に合致する項目について、そのルーティングテーブルをチェックする。この場合、エッジルータ２１０ｐからプレフィックス「１」で始まる任意のアドレスへのルーティングのみが、コアルータ２２０ｉを通る。したがって、パケットの宛先アドレス「１．１．３」は、エッジルータのルーティングテーブル内の項目「１．ｘ．ｘ」に合致し、エッジルータ２１０ｐは、合致するテーブル項目に対応するポートを介して、パケットをコアルータ２２０ｉに転送する。
【００３３】
ルーティング実施例を継続すると、コアルータ２２０ｉは、パケットの宛先アドレス１．１．３に合致する項目について、そのルーティングテーブルをチェックする。この場合、アドレス１．１．３は、コアルータ２２０ａ、２２０ｂ、および２２０ｃを介して到達可能であるため、ルーティングテーブルは、コアルータ２２０ａに対応する項目「１．１．ｘ」、コアルータ１．２に対応する項目「１．ｘ．ｘ」、およびコアルータ１．３に対応する別の項目「１．ｘ．ｘ」を含んでもよい。コアルータ２２０ｉは、合致する項目の間で選択する任意の好適な技法（例えば、ルーティングメトリック、等価コストマルチパス選択等）を使用してもよい。本実施例の目的のために、コアルータ２２０ｉは、宛先アドレス１．１．３の最も長いプレフィックス部分に合致し、パケットをコアルータ２２０ａに転送するため、テーブル項目「１．１．ｘ」を選択する。
【００３４】
ルーティング実施例を継続すると、コアルータ２２０ａは、パケットの宛先アドレス１．１．３に合致する項目について、そのルーティングテーブルをチェックする。この場合、アドレス１．１．３は、エッジルータ２１０ｃを介して、かつコアルータ２３０ａを介して到達可能である。上記で議論されるように、コアルータ２２０ｉは、合致する項目の間で選択する任意の好適な技法を使用してもよい。本実施例の目的のために、コアルータ２２０ａは、宛先アドレス１．１．３全体に合致し、パケットをエッジルータ２１０ｃに転送するため、テーブル項目「１．１．３」を選択する。
【００３５】
ルーティング実施例を継続すると、パケットは、エンドポイントモジュール１５０ａが接続されるエッジルータ（２１０ｃ）に到達している。パケットの宛先アドレスがエッジルータ２１０ｃのアドレスに合致することを判定した後、エッジルータ２１０ｃは、時間的エイリアス（階層アドレス）がエンドポイントモジュール１５０ａの一意のネットワークＩＤにすでに割り当てられているかどうかを判定するように、レジストラをチェックする。上記で説明されるように、レジストラは、時間的エイリアス１．１．３．１０をエンドポイントモジュール１５０ａに割り当てている。したがって、エッジルータは、エンドポイントモジュールの時間的エイリアスに合致する項目について、そのルーティングテーブルをチェックし、合致するテーブル項目の中の情報を使用して、パケットをエンドポイントモジュール１５０ａに転送する。
【００３６】
前述の実施例が実証するように、ネットワーク１４０内で、各エンドポイントモジュールの一意のネットワークＩＤは、エンドポイントモジュールが接続されるエッジルータにローカルの意味のみを有する。加えて、エンドポイントモジュール１５０ａからエンドポイントモジュール１５０ｂヘの任意の応答パケットが、受信されたパケットと同一の再帰ホップ毎のルーティングを使用して返されることができる。さらに、ネットワークデバイスのうちのいずれも、次のホップのためのみに、エンドポイントモジュールの全アドレスの項目を有する必要はない。加えて、ネットワーク１４０内の層の数は、実際には無限であり、好適な基準に基づいて人工的に判定され、したがって、ネットワーク設計の融通性を提供することができる。
【００３７】
ここで、ネットワーク１４０によって行われるネットワーク再組織化動作の実施例が、説明される。新しいネットワークデバイスまたはルーティング層がネットワーク１４０に追加されるとき、ネットワークは、そうすることがいかなるコネクティビティも妨害しないため、ネットワークデバイスを自律的に再アドレス指定する。ファイアウォール等のいかなる特殊ネットワークデバイスも追加することなく、異なる意図がネットワーク内の異なる点において施行され得るため、本アーキテクチャは、ホストコネクティビティがネットワーク層アドレス指定によって束縛されず、セキュリティを施行するため、ネットワーク内のエンドポイントモジュール（例えば、サービス、ホスト等）のためのモビリティを提供する。
【００３８】
たとえルーティングデバイスが階層トポロジの異なるレベルで組織化されたとしても、ネットワーク１４０内の全てのルーティングデバイスが同一のルーティングプロトコルによって統制される単一のルーティング層内にある、いくつかの実施例が説明されている。いくつかの実施形態では、ネットワーク１４０内の異なるルーティングデバイスは、異なるルーティングプロトコルによって統制され得る、異なるルーティング層の中に含まれてもよい。
【００３９】
図３を参照すると、エッジルータ２１０は、階層再帰ネットワーク内でパケットをルーティングするルーティング方法３００を行ってもよい。ステップ３０５では、エッジルータは、パケットを受信する。エッジルータは、エッジルータに接続されるエンドポイントモジュール１５０から、またはエッジルータに接続されるコアルータ２２０から、パケットを受信してもよい。いくつかの実施形態では、エッジルータは、それがエンドポイントモジュール１５０から、またはコアルータからパケットを受信したかどうかを判定してもよく、パケットのさらなる処理を促進するように、パケットを提供したデバイスのタイプを示すデータを記憶してもよい。例えば、エッジルータは、パケットを受信したポートに基づいて（例えば、エッジルータが、エンドポイントモジュールに接続されるそのポートのうちのいずれか、およびコアルータに接続されるそのポートのうちのいずれかを示す、データへのアクセスを有し得るため）、パケットのタイプに基づいて（例えば、エンドポイントモジュールが、概して、一意のネットワークＩＤにアドレス指定されるネットワーク層パケットを送信する一方で、コアルータが、概して、ネットワーク内の階層アドレスにアドレス指定される階層再帰ルーティングパケットを送信するため）パケットを提供したデバイスのタイプを判定してもよい。
【００４０】
ステップ３１０では、エッジルータは、パケットがネットワーク内の宛先デバイスの階層アドレスを含むかどうかを判定する。いくつかの実施形態では、エッジルータは、パケットのコンテンツを調査することによって、本判定を行う。例えば、パケットのタイプは、パケットが階層アドレスを含有するかどうかを示してもよい。いくつかの実施形態では、エッジルータは、パケットを送信したデバイスのタイプに基づいて、本判定を行う。例えば、エッジルータは、コアルータから受信されるパケットが宛先デバイスの階層アドレスを含み、エンドポイントモジュールから受信されるパケットがそのようなアドレスを含まないことを判定してもよい。
【００４１】
ステップ３１５では、パケットが宛先デバイスの階層アドレスを含むことを判定した後、エッジルータは、（例えば、ルーティングテーブル内の宛先デバイスの階層アドレスを調べ、パケットの宛先アドレスがエッジルータの独自のアドレスのテーブル項目に合致することを判定することによって）それが宛先デバイスであるかどうかを判定する。
【００４２】
パケットの宛先アドレスがエッジルータのアドレスに合致する場合、エッジルータは、ステップ３２０に進む。ステップ３２０では、エッジルータは、パケットから宛先エンドポイントモジュールの一意のネットワークＩＤを抽出し、宛先エンドポイントモジュールの時間的エイリアス（階層アドレス）を判定する。代替として、有効時間的エイリアスが宛先エンドポイントモジュールの一意のネットワークＩＤに現在割り当てられていない場合、エッジルータは、エンドポイントモジュールの時間的エイリアスを割り当て、エッジルータは、項目が、エンドポイントモジュールの時間的エイリアスをエンドポイントモジュールが接続されるエッジルータポートにマップするように、項目をそのルーティングテーブルに追加する。
【００４３】
ステップ３２５では、エッジルータは、パケットをエンドポイントモジュールに転送する。本転送動作を行うために、エッジルータは、ルーティングテーブル内のエンドポイントモジュールの時間的エイリアス（またはそのサフィックス）を調べ、ルーティングテーブル内の合致する項目の中のデータに基づいて、エンドポイントモジュールに接続されるエッジルータポートを識別し、識別されたポートを介してパケットをエンドポイントモジュールに転送してもよい。
【００４４】
ステップ３１０に戻ると、パケットがネットワーク内の宛先デバイスの階層アドレスを含まない場合、エッジルータは、ステップ３３０に進む。ステップ３３０では、エッジルータは、パケットから宛先デバイスの一意のネットワークＩＤを抽出し、そのネットワークＩＤを有するエンドポイントモジュールがネットワーク内にあるかどうかを判定する。いくつかの実施形態では、エッジルータは、そのネットワークＩＤを有するエンドポイントモジュールがネットワーク上に登録しているかどうかを判定するように、ネットワークレジストラにクエリを行うことによって、本判定を行う。
【００４５】
宛先エンドポイントモジュールがネットワーク上に登録されていない場合、エッジルータは、ステップ３５０に進む。ステップ３５０では、エッジルータは、階層ネットワークの外側でパケットをルーティングする準備をする。例えば、エッジルータは、宛先エンドポイントモジュールがネットワークの外側にあることを示す、特別階層アドレス（「Ｘ」）を伴うラッパにパケットをラップしてもよい。ステップ３６０では、エッジルータは、宛先アドレスのプレフィックスに基づいて、パケットをパケットの宛先アドレスのための次のホップに転送する。宛先アドレスが特別階層アドレスＸであるシナリオでは、エッジルータは、パケットを第２のルーティングレベル内のコアルータに転送し、コアルータは、ネットワークの外側にルーティングするために、パケットをゲートウェイ１２５に再帰的に転送する。上記で説明されるように、エッジルータは、パケットのルートに沿って１つ以上の潜在的な次のホップを識別するために、ルーティングテーブルを使用してもよく、ルーティングテーブルが複数の潜在的な次のホップを識別する場合に、次のホップを選択するために任意の好適な基準を使用してもよい。
【００４６】
ステップ３３０に戻って、宛先エンドポイントモジュールがネットワーク上で登録される場合、エッジルータは、ステップ３３５に進む。本シナリオでは、エッジルータは、エッジルータに接続されるエンドポイントモジュールからパケットを受信し、ステップ３３５、３４０、および３６０では、エッジルータは、階層再帰ネットワーク１４０を通したルーティングのためにパケットを準備し、宛先エンドポイントモジュールに向けたそのルート上でパケットを次のホップに転送する。
【００４７】
より具体的には、ステップ３３５では、エッジルータは、宛先エンドポイントモジュールが接続されるエッジルータの階層アドレスを判定する。いくつかの実施形態では、エッジルータは、宛先エンドポイントモジュールが登録されるエッジルータのアドレスについてネットワークレジストラにクエリを行うことによって、本判定を行う。ステップ３４０では、エッジルータは、宛先エンドポイントモジュールが接続されるエッジルータのアドレスを伴うラッパにパケットをラップする。ステップ３６０では、エッジルータは、宛先アドレスのプレフィックスに基づいて、パケットをパケットの宛先アドレスのための次のホップに転送する。宛先アドレスが、宛先エンドポイントモジュールが接続されるエッジルータのアドレスであるシナリオでは、ソースエッジルータは、パケットを第２のルーティングレベル内のコアルータに転送し、コアルータは、パケットを宛先エッジルータに再帰的に転送する。上記で説明されるように、エッジルータは、パケットのルートに沿って１つ以上の潜在的な次のホップを識別するために、ルーティングテーブルを使用してもよく、ルーティングテーブルが複数の潜在的な次のホップを識別する場合に、次のホップを選択するために任意の好適な基準を使用してもよい。
【００４８】
図４を参照すると、コアルータ（２２０、２３０）は、階層再帰ネットワーク内でパケットをルーティングするルーティング方法４００を行ってもよい。ステップ４０５では、コアルータは、パケットを受信する。コアルータは、ネットワークに接続されるゲートウェイ１２５から、別のコアルータから、またはエッジルータからパケットを受信してもよい。いくつかの実施形態では、コアルータは、それが（１）ゲートウェイ、または（２）コアルータもしくはエッジルータからパケットを受信したかどうかを判定してもよい。
【００４９】
後者の場合、コアルータは、単純にステップ４１０に進む。前者の場合、コアルータは、パケットから宛先エンドポイントモジュールの一意のネットワークＩＤを抽出し、一意のネットワークＩＤがネットワーク上に登録されているかどうかを判定し、該当する場合、宛先エンドポイントモジュールが接続されるエッジルータの階層アドレスを識別するように、ネットワークレジストラにクエリを行ってもよい。コアルータは、次いで、そのエッジルータの階層アドレスに設定されたその宛先アドレスを有するラッパにパケットをラップしてもよい。コアルータは、次いで、ステップ４１０に進む。
【００５０】
ステップ４１０では、コアルータは、パケットの宛先アドレスがコアルータのアドレスであるかどうかを判定する。該当する場合、コアルータは、ステップ４１５においてパケットを処理する。別様に、コアルータは、ステップ４２０に進む。ステップ４２０では、コアルータは、パケットの階層アドレスに基づいて、宛先エンドポイントモジュールへのそのルート上でパケットを次のホップに転送する。上記で説明されるように、コアルータは、パケットのルートに沿って１つ以上の潜在的な次のホップを識別するために、ルーティングテーブルを使用してもよく、ルーティングテーブルが複数の潜在的な次のホップを識別する場合に、次のホップを選択するために任意の好適な基準を使用してもよい。
【００５１】
いくつかの実施形態では、階層再帰ネットワーク１４０は、データセンタでパケットルーティングを行うために使用されることができる。図２を参照すると、エッジルータ２１０は、トップオブラックスイッチ（ＴＯＲ）であることができ、コアルータ２２０は、ファブリックスイッチであることができ、コアルータ２３０は、スパインであることができる。エンドポイントモジュール１５０は、サーバまたはサーバ上で実行するアプリケーション（例えば、仮想マシン）であることができる。図５はさらに、データセンタ環境で有益であり得る論理ネットワーク構築物が、図２の階層再帰ネットワーク１４０を使用して実装され得る方法を図示する。図５の実施例では、鎖線の垂直構造は、ルーティングデバイスを表す。具体的には、エッジルータ２１０ｃは、（エンドポイントモジュール１５０ａに接続される）ＴＯＲを使用して実装され、エッジルータ２１０ｃに接続されるコアルータ２２０ａは、ファブリックスイッチを使用して実装され、コアルータ２２０ａに接続されるコアルータ２３０ａは、スパインを使用して実装され、コアルータ２３０ａに接続されるコアルータ２１０ｉは、別のファブリックスイッチを使用して実装され、コアルータ２１０ｉに接続されるエッジルータ２１０ｐは、（エンドポイントモジュール１５０ｂに接続される）別のＴＯＲを使用して実装される。
【００５２】
図５の実施例では、水平構造５１０−５４０は、データセンタにおける通信を促進し得る、論理ネットワーク構築物を表す。具体的には、ネットワーク構築物は、複数のサービス／テナントプロセス間通信（ＩＰＣ）ファブリック５１０（例えば、データセンタのサービス／テナントにつき１つのサービス／テナントＩＰＣファブリック）、データセンタ間ＩＰＣファブリック５２０（２つ以上のデータセンタを接続する）、データセンタ内ＩＰＣファブリック５３０（例えば、物理的データセンタにつき１つのデータセンタ内ＩＰＣファブリック）、および複数のシムＩＰＣデータファブリック５４０（例えば、物理的データセンタ内の低減したブロードキャストドメイン）を含む。
【００５３】
図６を参照すると、ネットワークシステム６００が示されている。図１ならびに２のゲートウェイ（１１５、１２５）、エッジルータ２１０、および／またはコアルータ（２２０、２３０）は、例えば、ネットワークシステム６００の実施形態を使用して、実装されてもよい。
【００５４】
ネットワークシステム６００は、転送プレーン６１２、ルーティングコンポーネント（ルーティングプレーン６１６）、およびネットワークシステムによるパケットサービスならびに転送を提供するサービシングコンポーネント（サービスプレーン６１４）を提供する。ネットワークシステム６００は、例えば、サービスプロバイダネットワークまたはデータセンタ内の展開が可能な高性能ルータであってもよい。また、転送プレーン６１２は、専用転送集積回路によって提供されてもよく、（例えば、３段階Ｃｌｏｓスイッチファブリック等の多段スイッチファブリックを経由して、またはマルチシャーシルータを経由して）分散されてもよく、純粋なルーティングならびに他のネットワークサービス（例えば、ファイアウォールおよびディープパケットインスペクション処理）に関連する処理に適応してもよい。ともに、ルーティングプレーン６１６および転送プレーン６１２は、高性能ルータとして動作してもよい。
【００５５】
いくつかの実施形態では、ネットワークシステム６００は、転送プレーン６１２、サービシングプレーン６１４、およびルーティングプレーン６１６のうちの２つ以上が、同一のデバイスの中に統合されるのではなくて、異なるデバイスを使用して実装されるように分散される。いくつかの実施形態では、各エッジルータ２１０およびコアルータ（２２０、２３０）は、転送プレーン６１２を実装してもよく、サービシングプレーンおよびルーティングプレーンは、転送プレーンから遠隔に位置してもよい。いくつかの実施形態では、ネットワークシステム６００は、転送プレーン６１２（もしくは転送コンポーネント６３０）につき１つ以上のルーティングプレーン６１２（もしくはルーティングエンジン６２８）を含んでもよい。このようにしてプレーンを分離することは、エッジおよびコアルータ上の計算負担を低減させ、それによって、ネットワークの速度および効率を増進し得る。
【００５６】
代替として、サービシングプレーン６１４は、共有された協調様式でルーティングコンポーネントの転送プレーン６１２を使用するよう、（例えば、サービスカードを介して）ネットワークデバイス内に緊密に統合されてもよい。いくつかの実施形態では、サービシングプレーンは、フロー制御ユニット６２０によってサービスプレーン６１４に送信されるパケットにセキュリティ動作を行ってもよい。例えば、着信パケットフローのパケットが（例えば、ネットワークデバイス６００のインターフェースカード７９４を介して）ネットワークデバイス６００によって受信され、通常はパケットルーティングに使用される転送プレーン６１２に注入されるとき、転送プレーン６１２のフロー制御ユニット６２０は、パケットを分析し、分析に基づいて、（１）サービスプレーン６１４の１つ以上のサービスカード６２４を通してパケットを送信するか、もしくは（２）パケットを転送コンポーネント６３０に直接送信するかどうかを判定してもよい。
【００５７】
セキュリティプレーン６１４内のサービスカード６２４は、侵入検出および防止（ＩＤＰ）分析、ウイルススキャン、ディープパケットインスペクション、または暗号化等の種々のタイプの処理をパケットに行うように、ネットワークデバイス６００のバックプレーンもしくは他の相互接続に沿ってインストールされてもよい。いくつかの実施形態では、サービスカード６２４は、例えば、ボイスオーバーＩＰ（ＶｏＩＰ）コール設定のために、アプリケーション層ゲートウェイ（ＡＬＧ）およびプロトコルプロキシソフトウェアアプリケーションを提供してもよい。
【００５８】
サービスカード６２４は、フローテーブルの中へのフィルタの動的インストール／転送プレーン６１２のフロー制御ユニット６２０内のフローテーブル（図示せず）からのフィルタの除去のためのコマンドを発行してもよい。パケットが転送コンポーネント６３０によって処理されるとき、転送コンポーネント６３０は、パケットに合致した動的フィルタに従って、適切なアクションを適用してもよい。ネットワークデバイス６００がフィルタによって規定されるように転送プレーン６１２内で適用し得る例示的アクションは、速度制限、待ち行列、ルーティング、ファイアウォール（すなわち、パケットをブロックまたはドロップする）、計数、ネットワークアドレス変換（ＮＡＴ）、サービスの品質（ＱｏＳ）、シーケンス番号調節、または他のタイプのアクションを含む。
【００５９】
このようにして、典型的にはセキュリティデバイスによって行われるアクションおよび典型的にはルータによって行われるアクションは、ネットワークデバイス６００内のパケット転送を合理化するように、共有転送プレーン６１２内で統合された様式で組み合わせられることができる。代替として、いくつかの実施形態では、サービスプレーン６１４は、ネットワークデバイス６００の中に含まれなくてもよい。
【００６０】
ネットワークデバイス６００は、ルーティングプレーン６１６を提供するルーティングエンジン６２８と、転送プレーン６１２内の下流転送コンポーネント６３０を含む。ルーティングエンジン６２８は、主に、ネットワーク（例えば、ネットワーク１４０）およびネットワークデバイス６００が接続される他のネットワークエンティティのトポロジを反映するように、ルーティング情報ベース（ＲＩＢ）６３２を維持する責任がある。例えば、ルーティングエンジン６２８は、ピアルータと通信し、ネットワークおよび他のネットワークエンティティのトポロジを正確に反映するようにＲＩＢ６３２を周期的に更新する、ルーティングプロトコルの実行のための動作環境を提供してもよい。
【００６１】
ＲＩＢ６３２によると、転送コンポーネント６３０は、ネットワーク宛先（例えば、階層ネットワークアドレスまたはそのプレフィックス）を、具体的な次のホップおよびネットワークデバイス６００の出力インターフェースカードの対応するインターフェースポートと関連付ける、転送情報ベース（ＦＩＢ）６３４を維持する。ルーティングエンジン６２８は、ルート選択を行い、選択されたルートに基づいてＦＩＢ６３４を生成するようにＲＩＢ６３２を処理してもよい。パケットを転送するとき、転送コンポーネント６３０は、パケットを転送する次のホップおよび出力インターフェースを最終的に選択するように、パケットのヘッダ内の情報（例えば、宛先エンドポイントモジュールの階層ネットワークアドレスまたはそのプレフィックス）に基づいて、ネットワークデバイス６００のルーティングテーブルをトラバースする。
【００６２】
図７を参照すると、ネットワークデバイス６００の論理コンポーネントが、下層物理実装にかかわらず、モジュールの間の論理相互作用を図示するように示されている。ネットワークデバイス６００は、ルーティングエンジン６２８と、転送エンジン７８６とを含む、制御ユニット７８２を含んでもよい。上記で説明されるように、ルーティングエンジン６２８は、主に、ルーティング情報ベース（ＲＩＢ）６３２を維持する責任がある。ルーティングエンジン６２８はまた、ルーティング動作を行うルーティングプロトコル７８９も含む。ＲＩＢ６３２によると、転送エンジン７８６の転送コンポーネント６３０は、ネットワーク宛先（例えば、階層ネットワークアドレスまたはそのプレフィックス）を具体的な次のホップおよび対応するインターフェースポートと関連付ける、転送情報ベース（ＦＩＢ）６３４を維持する。
【００６３】
ネットワークデバイス６００は、ネットワークリンクを介してパケットを受信および送信する、インターフェースカード７９４ａ−７９４ｎ（「ＩＦＣ７９４」）を含む。ＩＦＣ７９４は、いくつかのインターフェースポートを介してネットワークリンクに結合されてもよい。概して、転送エンジン７８６のフロー制御ユニット６２０は、フィルタ設定に従って、ＩＦＣ７９４から受信されたあるパケットをサービスカード６２４ａ−６２４ｍ（「サービスカード６２４」）に中継してもよい。サービスカード１００は、フロー制御ユニット６２０からパケットを受信し、パケット内の情報に従ってサービスを選択的に提供し、転送コンポーネント６３０による転送のために、パケットまたは任意の応答パケットを制御ユニット７８２に中継してもよい。
【００６４】
一実施形態では、転送エンジン７８６およびルーティングエンジン６２８のそれぞれは、１つ以上の専用データ処理装置を含んでもよく、データ通信チャネルによって通信可能に結合されてもよい。データ通信チャネルは、高速ネットワーク接続、バス、共有メモリ、または他のデータ通信機構であってもよい。転送エンジン７８６、ルーティングエンジン６２８、または両方は、図６に関して上記で説明されるデータ構造および組織化を利用してもよい。例えば、図６のルーティングプレーン６１６は、ルーティングエンジン６２８に対応してもよく、図６の転送プレーン６１２は、転送エンジン７８６に対応してもよく、図１のインターフェースカード７９４およびサービスプレーン１４は、サービスカード６２４に対応してもよい。
【００６５】
ネットワークデバイス６００はさらに、制御ユニット７８２を収納するためのシャーシ（図示せず）を含んでもよい。シャーシは、ＩＦＣ７９４およびサービスカード６２４を含む、カードのセットを受信するためのいくつかのスロット（図示せず）を有する。各カードは、バス、バックプレーン、または他の電気通信機構を介して、カードを制御ユニット７８２に電気的に結合するためのシャーシの対応するスロットの中に挿入されてもよい。
【００６６】
サービスカード６２４は、処理されたパケットを中継してもよい、またはパケットを制御ユニット７８２に中継してもよい。制御ユニット７８２は、ＦＩＢ６３４に従ってパケットを転送してもよい。転送コンポーネント６３０は、合致するフィルタによって規定されるように、制御ユニット７８２によって転送コンポーネント６３０に中継されるパケットに１つ以上のアクションを適用してもよい。例えば、転送コンポーネント６３０は、速度制限、待ち行列、パケットミラーリング、ルーティング、ファイアウォール（すなわち、パケットをブロックまたはドロップする）、計数、ロギング、ネットワークアドレス変換（ＮＡＴ）、シーケンス番号調節、サービスの品質（ＱｏＳ）、または他のタイプのアクションを行ってもよい。
【００６７】
ネットワークデバイス６００の機能は、１つ以上のデータ処理装置を用いて、コンピュータ可読記憶媒体からフェッチされる命令を実行することによって実装されてもよい。「データ処理装置」という用語は、一例として、プログラマブルプロセッサ（例えば、汎用または専用マイクロプロセッサ）、システムオンチップ、または前述の複数のものもしくは組み合わせを含む、データを処理するためのあらゆる種類の装置、デバイス、およびマシンを包含する。本装置は、専用論理回路、例えば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）を含むことができる。概して、プロセッサは、コンピュータ可読記憶媒体で命令およびデータを受信するであろう。そのような媒体の実施例は、ランダムアクセスメモリ（ＲＡＭ、読取専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的消去可能プログラマブル読取専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、および同等物を含む。
【００６８】
エンドポイントデバイス（１５０、１６０）は、命令に従ってアクションを実施するための１つ以上のデータ処理装置と、命令およびデータを記憶するための１つ以上のメモリデバイスとを含み得る、コンピュータを含んでもよい。概して、コンピュータはまた、データを記憶するための１つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、もしくは光ディスクを含む、またはそれらからデータを受信する、もしくはそれらにデータを転送する、または両方を行うように動作可能に結合されるであろう。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。また、コンピュータは、エンドポイントデバイス、例えば、いくつか例を挙げると、携帯電話、携帯情報端末（ＰＤＡ）、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム（ＧＰＳ）受信機、またはポータブル記憶デバイス（例えば、ユニバーサルシリアルバス（ＵＳＢ）フラッシュドライブ）に組み込まれることができる。コンピュータプログラム命令およびデータを記憶するために好適なデバイスは、一例として、半導体メモリデバイス、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイス、磁気ディスク、例えば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびＣＤ−ＲＯＭならびにＤＶＤ−ＲＯＭを含む、全ての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完される、またはその中に組み込まれることができる。
【００６９】
（いくつかの実施形態のさらなる説明）
本明細書に説明される技法は、デジタル電子回路で、またはコンピュータハードウェア、ファームウェア、ソフトウェアで、もしくはそれらの組み合わせで実装されることができる。本技法は、コンピュータプログラム製品、すなわち、データ処理装置、例えば、プログラマブルプロセッサ、コンピュータ、または複数のコンピュータによる実行のため、もしくはそれらの動作を制御するために、情報キャリアで、例えば、機械可読記憶デバイスまたは非一過性の記憶媒体で明白に具現化される、コンピュータプログラムとして実装されることができる。コンピュータプログラムは、コンパイラ型またはインタープリタ型言語を含む、任意の形態のプログラミング言語で書かれることができ、独立型プログラムとして、またはコンピューティング環境で使用するために好適なモジュール、コンポーネント、サブルーチン、もしくは他のユニットとしてを含む、任意の形態で展開されることができる。コンピュータプログラムは、１つのコンピュータ上で、または１つの場所にある、もしくは複数の場所にわたって分散されて通信ネットワークによって相互接続される、複数のコンピュータ上で実行されるように展開されることができる。
【００７０】
本発明のある実施形態が、上記で説明された。しかしながら、本発明は、これらの実施形態に限定されず、むしろ、本明細書に明白に説明されたもののへの追加および修正もまた、本発明の範囲内に含まれる意図であることが明白に留意される。また、本明細書に説明される種々の実施形態の特徴は、相互排他的ではなく、本発明の精神ならびに範囲から逸脱することなく、たとえ種々の組み合わせおよび順列が本明細書で明白にされなかったとしても、そのような組み合わせおよび順列の中に存在し得ることを理解されたい。実際に、本明細書に説明されたものの変形例、修正、および他の実装が、本発明の精神ならびに範囲から逸脱することなく、当業者に想起されるであろう。したがって、本発明は、先行する例証的説明のみによって定義されるものではない。
【００７１】
本明細書は多くの具体的実装詳細を含有するが、これらは、任意の発明または請求され得るものの範囲への制限として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特有の特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書に説明される、ある特徴はまた、単一の実施形態では組み合わせで実装されることもできる。逆に、単一の実施形態の文脈において説明される種々の特徴はまた、複数の実施形態で別個に、または任意の好適な副次的組み合わせで実装されることもできる。また、特徴が、ある組み合わせで作用するものとして上記に説明され、さらに、そのようなものとして最初に請求され得るが、請求される組み合わせからの１つ以上の特徴は、ある場合では、組み合わせから削除されることができ、請求される組み合わせは、副次的組み合わせまたは副次的組み合わせの変形例も対象とし得る。
【００７２】
同様に、動作が特定の順序で図面に描写されているが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序で、もしくは連続的順序で実施されること、または全ての例証される動作が実施されることを要求するものとして理解されるべきではない。ある状況では、マルチタスキングおよび並列処理が、有利であり得る。また、上記に説明される実施形態における種々のシステムコンポーネントの分離は、全ての実施形態におけるそのような分離を要求するものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品の中でともに統合され得る、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。
【００７３】
（専門用語）
本明細書に使用される語句および専門用語は、説明の目的のためであり、限定的と見なされるべきではない。
【００７４】
本明細書および請求項で使用されるような用語「約」、語句「〜にほぼ等しい」、および他の類似する語句（例えば、「Ｘは約Ｙの値を有する」または「ＸはＹにほぼ等しい」）は、１つの値（Ｘ）が別の値（Ｙ）の事前判定された範囲内であることを意味すると理解されるべきである。事前判定された範囲は、別様に示されない限り、±２０％、１０％、５％、３％、１％、０．１％、または０．１％未満であり得る。
【００７５】
本明細書および請求項で使用されるような不定冠詞「ａ」ならびに「ａｎ」は、明確に反対に示されない限り、「少なくとも１つ」を意味すると理解されるべきである。本明細書および請求項で使用されるような語句「および／または」は、そのように結合された要素、すなわち、ある場合には結合的に存在し、他の場合には離接的に存在する要素の「いずれか一方または両方」を意味すると理解されるべきである。「および／または」を用いて列挙された複数の要素は、同様に、すなわち、そのように結合された要素のうちの「１つ以上」として解釈されるべきである。具体的に識別されるそれらの要素に関連するか、もしくは無関係であるかどうかにかかわらず、「および／または」節によって具体的に識別される要素以外の他の要素も、随意に存在し得る。したがって、非限定的実施例として、「〜を備える」等の非制約言語と併用されるとき、「Ａおよび／またはＢ」の言及は、一実施形態では、Ａのみ（随意に、Ｂ以外の要素を含む）を指し、別の実施形態では、Ｂのみ（随意に、Ａ以外の要素を含む）、さらに別の実施形態では、ＡおよびＢの両方（随意に、他の要素を含む）等を指し得る。
【００７６】
本明細書および請求項で使用されるように、「または」は、上記に定義されるような「および／または」と同一の意味を有すると理解されるべきである。例えば、リスト内の項目を分離するとき、「または」もしくは「および／または」は、包括的であるとして、すなわち、いくつかの要素またはそのリストのうちの少なくとも１つ（但し、１つを上回るものも含む）および随意に付加的な列挙されていない項目の包含として解釈されるものとする。「〜のうちの１つのみ」もしくは「〜のうちの厳密に１つ」、または請求項において使用されるとき、「〜から成る」等明確に反対に示される用語のみが、いくつかの要素またはそのリストのうちの厳密に１つの要素の包含を指すであろう。概して、使用されるような用語「または」は、「いずれか」、「〜のうちの１つ」、「〜のうちの１つのみ」、または「〜のうちの厳密に１つ」等の排他性の用語によって先行されると、排他的代替物（すなわち、「両方ではないが一方または他方」）を示すものとしてのみ解釈されるものとする。「〜から本質的に成る」は、請求項で使用されるとき、特許法の分野で使用されるようなその通常の意味を有するものとする。
【００７７】
本明細書および請求項で使用されるように、１つ以上の要素のリストに関する語句「少なくとも１つ」は、要素のリスト内の要素のうちのいずれか１つ以上から選択される少なくとも１つの要素を意味すると理解されるべきであるが、必ずしも要素のリスト内に具体的に列挙されるあらゆる要素のうちの少なくとも１つを含むわけではなく、要素のリスト内の要素の任意の組み合わせを除外するわけではない。本定義はまた、具体的に識別されるそれらの要素に関連するか、または無関係であるかどうかにかかわらず、語句「少なくとも１つ」が指す要素のリスト内で具体的に識別される要素以外の要素が随意に存在し得ることを可能にする。したがって、非限定的実施例として、「ＡおよびＢのうちの少なくとも１つ」（もしくは同等に「ＡまたはＢのうちの少なくとも１つ」、もしくは同等に「Ａおよび／またはＢのうちの少なくとも１つ」）は、一実施形態では、いかなるＢも存在しない（および随意に、Ｂ以外の要素を含む）、随意に、１つを上回るＡを含む、少なくとも１つのＡを指し、別の実施形態では、いかなるＡも存在しない（および随意に、Ａ以外の要素を含む）、随意に、１つを上回るＢを含む、少なくとも１つのＢを指し、さらに別の実施形態では、随意に、１つを上回るＡを含む、少なくとも１つのＡ、ならびに随意に、１つを上回るＢを含む（および随意に、他の要素を含む）、少なくとも１つのＢ等を指し得る。
【００７８】
「〜を含む」、「〜を備える」、「〜を有する」、「〜を含有する」、「〜を伴う」、およびそれらの変形例の使用は、その後に列挙される項目および付加的項目を包含するように意図されている。
【００７９】
請求項要素を修正するための請求項における「第１」、「第２」、「第３」等の序数用語の使用は、それ自体では、１つの請求項要素の別のものに対する任意の優先順位、優先度、もしくは順序、または方法の行為が実施される時間的順序を含意しない。序数用語は、単に、ある名称を有する１つの請求項要素を（序数用語の使用がなければ）同一の名称を有する別の要素と区別し、請求項要素を区別するために、標識として使用される。
【００８０】
（均等物）
このようにして本発明の少なくとも１つの実施形態のいくつかの側面を説明してきたが、種々の改変、修正、および改良が当業者に容易に想起されるであろうことを理解されたい。そのような改変、修正、および改良は、本開示の一部であることを意図し、本発明の精神および範囲内であることを意図している。故に、前述の説明および図面は、一例にすぎない。
【図１】
2018535619.tif 000003
【図２】
2018535619.tif 000004
【図３】
2018535619.tif 000005
【図４】
2018535619.tif 000006
【図５】
2018535619.tif 000007
【図６】
2018535619.tif 000008
【図７】
2018535619.tif 000009
【国際調査報告】
2018535619.tif 000010
2018535619.tif 000011