(57)【要約】本発明の一実施形態は、フォワーディングテーブルを圧縮するための技術を述べる。本技術は、ネットワークプレフィックスのリストから、或るサブネットの範囲内にある複数のネットワークプレフィックスを選択する工程を含む。本技術は、複数のネットワークプレフィックスをソートして、ネットワークプレフィックスの１以上のサブグループを生成する工程と、ネットワークプレフィックスの１以上のサブグループに含まれているネットワークプレフィックスの第１のサブグループを選択する工程とを更に含む。本技術は、ネットワークプレフィックスの第１のサブグループに基づいて、合成スーパーネットを生成する工程を更に含む。
2019525660.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサによって指示が実行された際に、該プロセッサに、
ネットワークプレフィックスのリストから、或るサブネットの範囲内にある複数のネットワークプレフィックスを選択する工程と、
前記複数のネットワークプレフィックスをルーティング情報に基づいてソートして、ネットワークプレフィックスの１以上のサブグループを生成する工程と、
ネットワークプレフィックスの前記１以上のサブグループに含まれているネットワークプレフィックスの第１のサブグループを選択する工程と、
ネットワークプレフィックスの前記第１のサブグループに基づいて、合成スーパーネットを生成する工程と
を行わせる指示を含むことを特徴とする、非一過性のコンピュータ可読記憶媒体。
【請求項２】
ネットワークプレフィックスの前記１以上のサブグループに含まれているネットワークプレフィックスの各前記サブグループが、それぞれ異なる組のルーティング情報と関連付けられる、請求項１記載の非一過性のコンピュータ可読記憶媒体。
【請求項３】
各前記異なる組のルーティング情報が、１以上のネクストホップを含む、請求項２記載の非一過性のコンピュータ可読記憶媒体。
【請求項４】
ネットワークプレフィックスの前記１以上のサブグループを生成するために、前記複数のネットワークプレフィックスが、前記複数のネットワークプレフィックスと関連付けられた地理的領域および前記複数のネットワークプレフィックスと関連付けられたトラフィックポリシーのうちの少なくとも１つに従ってソートされる、請求項１記載の非一過性のコンピュータ可読記憶媒体。
【請求項５】
前記合成スーパーネットが、ネットワークプレフィックスの前記リストに含まれていないネットワークプレフィックスに対応する、請求項１記載の非一過性のコンピュータ可読記憶媒体。
【請求項６】
ネットワークプレフィックスの前記第１のサブグループに含まれている各ネットワークプレフィックスが、第１の組のルーティング情報と関連付けられており、
前記合成スーパーネットを前記第１の組のルーティング情報と関連付ける工程を更に含む、
請求項１記載の非一過性のコンピュータ可読記憶媒体。
【請求項７】
前記合成スーパーネットをフォワーディングテーブルのエントリに書き込み、該エントリを前記第１の組のルーティング情報と関連付ける工程を更に含む、請求項６記載の非一過性のコンピュータ可読記憶媒体。
【請求項８】
ネットワークプレフィックスの前記第１のサブグループを前記フォワーディングテーブルから除去する工程を更に含む、請求項７記載の非一過性のコンピュータ可読記憶媒体。
【請求項９】
ネットワークプレフィックスの前記第１のサブグループがルーティングテーブルから前記フォワーディングテーブルに書き込まれるべきではないことを決定する工程を更に含む、請求項７記載の非一過性のコンピュータ可読記憶媒体。
【請求項１０】
ネットワークプレフィックスのリストから、或るサブネットの範囲内にある複数のネットワークプレフィックスを選択する工程と、
前記複数のネットワークプレフィックスをソートして、ネットワークプレフィックスの１以上のサブグループを生成する工程と、
ネットワークプレフィックスの前記１以上のサブグループに含まれているネットワークプレフィックスの第１のサブグループを選択する工程と、
ネットワークプレフィックスの前記第１のサブグループに基づいて、合成スーパーネットを生成する工程と
を含むことを特徴とする方法。
【請求項１１】
ネットワークプレフィックスの前記１以上のサブグループに含まれているネットワークプレフィックスの各前記サブグループが、それぞれ異なる組のルーティング情報と関連付けられる、請求項１０記載の方法。
【請求項１２】
ネットワークプレフィックスの前記第１のサブグループが、ネットワークプレフィックスの前記１以上のサブグループのうちの、ネットワークプレフィックスの数が最も多い前記第１のサブグループに基づいて選択される、請求項１０記載の方法。
【請求項１３】
ネットワークプレフィックスの前記リストを解析して中央値ネットワークプレフィックスを決定し、該中央値ネットワークプレフィックスに基づいて、前記サブネットを決定する工程を更に含む、請求項１０記載の方法。
【請求項１４】
前記合成スーパーネットが、ネットワークプレフィックスの前記リストに含まれていないネットワークプレフィックスに対応する、請求項１０記載の方法。
【請求項１５】
ネットワークプレフィックスの前記第１のサブグループに含まれている各ネットワークプレフィックスが、第１の組のネクストホップと関連付けられており、
前記合成スーパーネットを前記第１の組のネクストホップと関連付ける工程を更に含む、
請求項１０記載の方法。
【請求項１６】
前記合成スーパーネットをフォワーディングテーブルのエントリに書き込み、該エントリを前記第１の組のネクストホップと関連付ける工程を更に含む、請求項１５記載の方法。
【請求項１７】
ネットワークプレフィックスの前記第１のサブグループをフォワーディングテーブルから除去する工程、および、ネットワークプレフィックスの前記第１のサブグループが前記フォワーディングテーブルに書き込まれるべきではないことを決定する工程のうちの少なくとも１つを更に含む、請求項１０記載の方法。
【請求項１８】
ネットワークプレフィックスの前記１以上のサブグループに含まれているネットワークプレフィックスの第２のサブグループであって、前記合成スーパーネットとは異なる組のネクストホップと関連付けられているネットワークプレフィックスの前記第２のサブグループを、前記フォワーディングテーブルに書き込む工程を更に含む、請求項１７記載の方法。
【請求項１９】
ネットワーキング装置であって、
ネットワーキングアプリケーションを格納する第１のメモリと、
フォワーディングテーブルを格納する第２のメモリと、
前記第１のメモリおよび前記第２のメモリに結合されたプロセッサと
を含み、
前記ネットワーキングアプリケーションが、前記プロセッサによって実行された際に、該プロセッサを、
ネットワークプレフィックスのリストから、或るサブネットの範囲内にある複数のネットワークプレフィックスを選択する工程と、
前記複数のネットワークプレフィックスを、該複数のネットワークプレフィックスと関連付けられたルーティング情報に基づいてソートして、ネットワークプレフィックスの複数のサブグループを生成する工程と、
前記ネットワークプレフィックスの複数のサブグループに含まれているネットワークプレフィックスの第１のサブグループを選択する工程と、
ネットワークプレフィックスの前記第１のサブグループに基づいて、合成スーパーネットを生成する工程と、
前記合成スーパーネットを前記フォワーディングテーブルに書き込む工程と
を行うよう構成する
ことを特徴とするネットワーキング装置。
【請求項２０】
前記合成スーパーネットが、ネットワークプレフィックスの前記リストに含まれていないネットワークプレフィックスに対応し、
前記ネットワーキングアプリケーションが、前記プロセッサを、ネットワークプレフィックスの前記第１のサブグループを前記フォワーディングテーブルから除去する工程、または、ネットワークプレフィックスの前記第１のサブグループが前記フォワーディングテーブルに書き込まれるべきではないことを決定する工程を行うよう更に構成する、
請求項１９記載のネットワーキング装置。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本願は、２０１６年８月１５日に出願された米国特許出願第１５／２３７，５４１号による利益を主張するものであり、これを参照して本明細書に組み込む。
【技術分野】
【０００２】
本発明は、一般的には、コンピュータネットワーキングに関し、より具体的には、合成スーパーネット圧縮に関する。
【背景技術】
【０００３】
従来のデジタルコンテンツ配信システムは、コンテンツサーバと、制御サーバと、エンドポイント装置と、コンテンツサーバをエンドポイント装置に接続する通信ネットワークとを含む。コンテンツサーバは、典型的には、１以上のコンテンツ配信ネットワークに属し、コンテンツサーバからエンドポイント装置にダウンロードされ得るそれぞれ異なるコンテンツアセットに対応するファイルを格納するよう構成される。
【０００４】
一般的に、制御サーバは、エンドポイント装置から送信された、そのようなコンテンツアセットを求める要求に応答した、エンドポイント装置へのコンテンツアセットの配信の管理を司る。エンドポイント装置から受信された、ファイルを求める要求に応答するために、コンテンツサーバと関連付けられた１以上のルータは、要求されたファイルの位置および可用性を決定するために、制御サーバと通信するよう構成される。次に、ルータから、および／または、より広いコンテンツ配信ネットワークを介して、ファイルが適切なエンドポイント装置に配信される。
【０００５】
各ファイルを、通信ネットワークを介して適切なエンドポイント装置までどのようにルーティングするかを決定するために、ルータによって様々な技術が実装される。例えば、ホップバイホップ転送技術においては、各ルータは、通信ネットワークのトポロジーと関連付けられた情報を格納するルーティングテーブル（例えば、ルーティング情報ベース、即ち「ＲＩＢ」）を含む。より具体的には、ルーティングテーブルは、典型的には、有効な各宛先ノードについて、宛先ノードに到達するためにデータパケットを送信可能な次の装置のネットワークアドレス（「ネクストホップ」）を格納する。ルータは、宛先ノードに向けてデータパケットを送信可能な新たなルートを学習する度に、その新たなルートをルーティングテーブルに追加する。それに加えて、ルータは、特定の宛先ノードが到達不能になっていることを決定した場合には、その宛先ノードをルーティングテーブルから除去し得る。
【０００６】
ルーティングテーブルは、典型的には、ルータ内のランダムアクセスメモリ（ＲＡＭ）および／または不揮発性記憶装置（例えば、ハードディスクドライブ（ＨＤＤ）またはソリッドステートドライブ（ＳＳＤ）等）に格納される。その結果、ルーティングテーブルに追加されたルートが増えるほど、特定の宛先ノードについてのネクストホップを探してルーティングテーブルを検索することと関連付けられたレイテンシーが増大する。この問題に対処するために、ルーティングテーブルに格納されているルーティング情報は、高速メモリ（例えば、三元コンテンツアドレス可能メモリ、即ちＴＣＡＭ等）内に実装されるフォワーディングテーブル（例えば、フォワーディング情報ベース、即ち「ＦＩＢ」）に書き込まれ得る。それに加えて、検索効率を更に高めるために、ルーティング情報は、木構造（例えば、基数木構造）でフォワーディングテーブルに格納され得るものであり、これは、宛先ノードと関連付けられたプレフィックスを探してＦＩＢを検索することによって、宛先ノードと関連付けられたネクストホップおよび他の情報を迅速に読み出すことを可能にする。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述のように、フォワーディングテーブルは、効率的に、且つ、顕著なレイテンシーを生じずに、ネクストホップおよび他のルーティング情報が読み出されることを可能にする。しかし、フォワーディングテーブルが実装される高速メモリの価格および複雑さに起因して、フォワーディングテーブルのサイズを、或る閾値を超えて増加させることは、多くの用途にとって法外なコストがかかり得る。従って、多くのフォワーディングテーブルのサイズは、長年にわたって生じているインターネットのサイズおよび複雑さの増加に対処するよう増加されていない。その結果、多くの既存のルータでは、ルーティングテーブルに格納されている宛先ノードの数が、対応するフォワーディングテーブル内で利用可能なエントリの数を超えている。そのようなルータは、インターネットルーティングテーブルに含まれている全ての宛先ノードについてのルートを格納できないので、超過したルートが、より低速のメモリ（例えば、ＲＡＭ等）に溢れ出ることになり得る。
【０００８】
上記に示されるように、通信ネットワークと関連付けられたルーティング情報を格納するためのより効果的な技術が必要である。
【課題を解決するための手段】
【０００９】
本発明の一実施形態は、フォワーディングテーブルを圧縮する方法を述べる。本方法は、ネットワークプレフィックスのリストから、或るサブネットの範囲内にある複数のネットワークプレフィックスを選択する工程を含む。本方法は、複数のネットワークプレフィックスをソートして、ネットワークプレフィックスの１以上のサブグループを生成する工程と、ネットワークプレフィックスの１以上のサブグループに含まれているネットワークプレフィックスの第１のサブグループを選択する工程とを更に含む。本方法は、ネットワークプレフィックスの第１のサブグループに基づいて、合成スーパーネットを生成する工程を更に含む。
【００１０】
更なる実施形態は、とりわけ、上述の方法を実装するよう構成された非一過性のコンピュータ可読媒体およびネットワーキング装置を提供する。
【発明の効果】
【００１１】
本開示の技術の少なくとも１つの長所は、フォワーディングテーブルによって記録されている宛先ノードと関連付けられたルーティング情報を捨てることなく、フォワーディングテーブルに含まれるエントリの数を低減できることである。その結果、フォワーディングテーブルにより多くのルートが格納され得るようになり、および／または、フォワーディングテーブルのメモリ要件が低減され得る。
【図面の簡単な説明】
【００１２】
【図１】本発明の１以上の態様を実装するよう構成されたネットワークインフラを示す
【図２Ａ】本発明の様々な実施形態による、図１のコンテンツサーバのより詳細なブロック図
【図２Ｂ】本発明の様々な実施形態による、図２Ａのネットワーキング装置のより詳細なブロック図
【図３】本発明の様々な実施形態による、図１の制御サーバのより詳細なブロック図
【図４Ａ】本発明の様々な実施形態による、第１の圧縮パスにおいてフォワーディングテーブルを圧縮する方法の工程のフロー図を示す
【図４Ｂ】本発明の様々な実施形態による、第１の圧縮パスにおいてフォワーディングテーブルを圧縮する方法の工程のフロー図を示す
【図５Ａ】本発明の様々な実施形態による、第１の圧縮パスにおいて生成される木構造の複数の異なるエントリを示す
【図５Ｂ】本発明の様々な実施形態による、第１の圧縮パスにおいて生成される木構造の複数の異なるエントリを示す
【図５Ｃ】本発明の様々な実施形態による、第１の圧縮パスにおいて生成される木構造の複数の異なるエントリを示す
【図５Ｄ】本発明の様々な実施形態による、第１の圧縮パスにおいて生成される木構造の複数の異なるエントリを示す
【図５Ｅ】本発明の様々な実施形態による、第１の圧縮パスにおいて生成される木構造の複数の異なるエントリを示す
【図６】本発明の様々な実施形態による、第２の圧縮パスにおいてフォワーディングテーブルを圧縮する方法の工程のフロー図を示す
【図７Ａ】本発明の様々な実施形態による、第２の圧縮パスにおいて生成される木構造の複数の異なるエントリを示す
【図７Ｂ】本発明の様々な実施形態による、第２の圧縮パスにおいて生成される木構造の複数の異なるエントリを示す
【図８】本発明の様々な実施形態による、サブネットの一部と関連付けられたネットワークプレフィックスエントリを示す
【発明を実施するための形態】
【００１３】
以下の説明において、本発明の実施形態のより完全な理解を提供するために、多くの具体的な詳細が述べられる。しかし、当業者には、これらの具体的な詳細の１以上を含まずとも本発明の実施形態が実施され得ることが自明である。
【００１４】
システムの概観
図１は、本発明の１以上の態様を実装するよう構成されたネットワークインフラ１００を示す。図示されるように、ネットワークインフラ１００は、コンテンツサーバ１１０、制御サーバ１２０、およびエンドポイント装置１１５を含み、これらの各要素は通信ネットワーク１０５を介して接続されている。
【００１５】
各エンドポイント装置１１５は、コンテンツ（例えば、テキストデータ、グラフィカルデータ、オーディオデータ、ビデオデータ、および他のタイプのデータ等）をダウンロードするために、ネットワーク１０５を介して１以上のコンテンツサーバ１１０（「キャッシュ」または「ノード」とも称される）と通信する。次に、ダウンロード可能なコンテンツ（本明細書においては「ファイル」とも称される）が１以上のコンテンツサーバ１１０間で転送され、および／または、１以上のエンドポイント装置１１５のユーザに対して示される。様々な実施形態において、エンドポイント装置１１５は、コンピュータシステム、セットトップボックス、モバイルコンピュータ、スマートフォン、タブレット、コンソール型および携帯型ビデオゲームシステム、デジタルビデオレコーダー（ＤＶＲ）、ＤＶＤプレイヤー、接続されたデジタルＴＶ、専用メディアストリーミング装置（例えば、Ｒｏｋｕ（登録商標）セットトップボックス）、および／または、ネットワーク接続性を有し、コンテンツ（例えば、テキスト、画像、ビデオ、および／またはオーディオコンテンツ等）をユーザに対して示すことができる他の任意の技術的に可能なコンピューティングプラットフォームを含み得る。
【００１６】
各コンテンツサーバ１１０は、ウェブサーバと、データベースと、制御サーバ１２０によって記録および管理される様々なファイルのネットワーク上の位置および可用性を決定するために制御サーバ１２０と通信するよう構成されたサーバアプリケーション２１７とを含み得る。各コンテンツサーバ１１０は、更に、各コンテンツサーバ１１０を様々なファイルのコピーで「フィル」するために、フィルソース１３０および１以上の他のコンテンツサーバ１１０と通信し得る。それに加えて、コンテンツサーバ１１０は、エンドポイント装置１１５から受信された、ファイルを求める要求に応答し得る。次に、それらのファイルが、コンテンツサーバ１１０から、または、より広いコンテンツ配信ネットワークを介して配信され得る。一部の実施形態では、コンテンツサーバ１１０は、コンテンツサーバ１１０に格納されているファイルにアクセスするための（例えば、ユーザ名およびパスワードを用いた）ユーザの認証を可能にする。図１には１つの制御サーバ１２０のみが示されているが、様々な実施形態では、ファイルを記録および管理するために、複数の制御サーバ１２０が実装され得る。
【００１７】
様々な実施形態において、フィルソース１３０はオンラインストレージサービス（例えば、Amazon（登録商標）Simple Storage Service、Google（登録商標）Cloud Storage等）を含み得るものであり、そこに、数千または数百万のファイルを含むファイルのカタログが格納されており、コンテンツサーバ１１０をフィルするためにアクセスされる。図１には１つのフィルソース１３０のみが示されているが、様々な実施形態では、ファイルを求める要求に対するサービスを行うために、複数のフィルソース１３０が実装され得る。
【００１８】
図２Ａは、本発明の様々な実施形態による、図１のコンテンツサーバ１１０のより詳細なブロック図である。図示されるように、コンテンツサーバ１１０は、中央演算装置（ＣＰＵ）２０４、システムディスク２０６、入出力（Ｉ／Ｏ）装置インターフェース２０８、ネットワークインターフェース２１０、相互接続２１２、およびシステムメモリ２１４を含むが、それらに限定されない。様々な実施形態において、コンテンツサーバ１１０は、ネットワーキング装置２４０を介して、ネットワーク１０５上の他のノードと通信する。
【００１９】
ＣＰＵ２０４は、システムメモリ２１４に格納されているプログラミング指示（例えば、サーバアプリケーション２１７等）を読み出して実行するよう構成される。同様に、ＣＰＵ２０４は、アプリケーションデータを格納すると共に、システムメモリ２１４からアプリケーションデータを読み出すよう構成される。相互接続２１２は、ＣＰＵ２０４、システムディスク２０６、Ｉ／Ｏ装置インターフェース２０８、ネットワークインターフェース２１０、およびシステムメモリ２１４間におけるデータ（例えば、プログラミング指示およびアプリケーションデータ等）の送信を容易にするよう構成される。Ｉ／Ｏ装置インターフェース２０８は、Ｉ／Ｏ装置２１６から入力データを受信して、その入力データを、相互接続２１２を介してＣＰＵ２０４に送信するよう構成される。例えば、Ｉ／Ｏ装置２１６は、１以上のボタン、キーボード、マウス、および／または他の入力装置を含み得る。Ｉ／Ｏ装置インターフェース２０８は、更に、ＣＰＵ２０４から相互接続２１２を介して出力データを受信し、その出力データをＩ／Ｏ装置２１６に送信するよう構成される。
【００２０】
システムディスク２０６は、１以上のハードディスクドライブ、ソリッドステートストレージ装置、または類似のストレージ装置を含み得る。システムディスク２０６は、例えば、コンテンツカタログと関連付けられたファイル２１８（例えば、オーディオファイル、ビデオファイル等）等の不揮発性データを格納するよう構成される。次に、ファイル２１８は、１以上のコンテンツサーバ１１０および／または１以上のエンドポイント装置１１５によって、ネットワーク１０５を介して読み出され得る。一部の実施形態では、ネットワークインターフェース２１０は、イーサネット標準に準拠して動作するよう構成され得る。
【００２１】
システムメモリ２１４は、エンドポイント装置１１５および他のコンテンツサーバ１１０から受信された、ファイル２１８を求める要求に対してサービスを行うよう構成されたサーバアプリケーション２１７を含む。サーバアプリケーション２１７が、ファイル２１８を求める要求を受信したら、サーバアプリケーション２１７は、対応するファイル２１８をシステムディスク２０６から読み出して、そのファイル２１８を、ネットワーク１０５を介してエンドポイント装置１１５またはコンテンツサーバ１１０送信する。
【００２２】
図２Ｂは、本発明の様々な実施形態による、図２Ａのネットワーキング装置２４０のより詳細なブロック図である。図示されるように、ネットワーキング装置２４０は、中央演算装置（ＣＰＵ）２４４、ネットワークインターフェース２５０、相互接続２５２、システムメモリ２５４、およびコンテンツアドレス可能メモリ（ＣＡＭ）２３２を含むが、それらに限定されない。
【００２３】
ＣＰＵ２４４は、システムメモリ２５４に格納されているプログラミング指示（例えば、ネットワーキングアプリケーション２５７等）を読み出して実行するよう構成される。同様に、ＣＰＵ２４４は、アプリケーションデータを格納すると共に、システムメモリ２５４からアプリケーションデータを読み出すよう構成される。相互接続２５２は、ＣＰＵ２４４、ネットワークインターフェース２５０、システムメモリ２５４、およびＣＡＭ２３２間におけるデータ（例えば、プログラミング指示およびアプリケーションデータ等）の送信を容易にするよう構成される。
【００２４】
システムメモリ２５４は、データ（例えば、ファイル２１８）および／またはルーティング情報（例えば、特定のファイル２１８がネットワーク１０５を介して送信されるべき宛先ノード等）を送受信するよう構成されたネットワーキングアプリケーション２５７を含む。一部の実施形態では、ネットワーキングアプリケーション２５７は、１以上のトランジットプロバイダ（ＴＰ）および／または制御サーバ１２０と通信して、ネットワーク１０５に含まれている宛先ノードと関連付けられたルーティング情報を決定する。
【００２５】
様々な実施形態において、ネットワーキング装置２４０は、１以上のルータとして実装される。そのような実施形態では、ネットワーキングアプリケーション２５７は、例えば、ネットワーク１０５に含まれているノード（例えば、コンテンツサーバ１１０、制御サーバ１２０、エンドポイント装置１１５、フィルソース１３０等）のネットワークアドレス等といったネットワークルーティング情報を受信、処理、および送信するゲートウェイプロトコル（例えば、ボーダーゲートウェイプロトコル、即ち「ＢＧＰ」）を実装する。一部の実施形態では、コンテンツサーバ１１０、制御サーバ１２０、エンドポイント装置１１５、および／またはフィルソース１３０は１以上の自律システム（ＡＳ）を構成し、各自律システムは、別々のゲートウェイサービス（例えば、ＢＧＰサービス）によって管理され得る。
【００２６】
ネットワーキングアプリケーション２５７によって実装されるゲートウェイサービスは、ネットワーク１０５に含まれているアドバタイズされている全てのノードと関連付けられたネットワークトポロジー情報を受信し得る。ネットワークトポロジー情報は、各宛先ノードについてのネットワークアドレスと、ネットワーク１０５内の特定のノードに到達するためにデータパケットを送信可能な「ネクストホップ」（ＮＨ）のネットワークアドレスとを含み得る。次に、ネットワーキングアプリケーション２５７は、ネットワークアドレス、ＮＨ、および他のタイプのルーティング情報を、ルーティングテーブル２２０（例えば、ルーティング情報ベース、即ち「ＲＩＢ」）に格納する。ネットワーキングアプリケーション２５７は、更に、ネットワーク１０５内の各ノードが到達可能であるか否かを決定して、この情報をルーティングテーブル２２０に格納し得る。
【００２７】
ネットワーキングアプリケーション２５７が、データパケットをネットワーク１０５内の特定のノードに向かって送信可能な新たなルートを受信する度に、その新たなルートがルーティングテーブル２２０に追加され得る。それに加えて、ルータが、特定のノードが到達不能になっていることを決定したときには、そのノードと関連付けられたネットワークアドレスおよびルーティング情報は、ルーティングテーブル２２０から除去され得る。一部の実施形態では、ルーティングテーブル２２０は、各宛先ノードについて、その宛先ノードのネットワークアドレスと、その宛先ノードと関連付けられたルーティング情報（例えば、１以上のＮＨ、それらのＮＨと関連付けられた１以上の自律システム番号（ＡＳＮ）、各ＮＨと関連付けられた時間値、並びに、特定のＮＨおよび／またはＡＳＮと関連付けられた他のタイプの属性等）とを格納する。各ノードと関連付けられたネットワークアドレスおよび／またはＮＨは、任意の形式でルーティングテーブル２２０に格納され得る。例えば、ネットワークアドレスおよび／またはＮＨは、インターネットプロトコルバージョン４（ＩＰｖ４）形式で、インターネットプロトコルバージョン６（ＩＰｖ６）形式で、特定の形式と関連付けられたネットワークアドレスプレフィックス（例えば、／８、／１６、／２４等）として、および／または、他の任意の技術的に可能な形式で格納され得る。
【００２８】
ルーティングテーブル２２０に追加されたルートが増えるほど、特定の宛先ノードについてのＮＨを探してルーティングテーブル２２０を検索することと関連付けられたレイテンシーが増大する。従って、ネットワーキングアプリケーション２５７は、ルートを、ネットワークインターフェース２１０に含まれるフォワーディングテーブル２３０（例えば、フォワーディング情報ベース、即ち「ＦＩＢ」）に書き込む。システムメモリ２１４に格納され得るルーティングテーブル２２０とは対照的に、フォワーディングテーブル２３０は、高速メモリ（例えば、三元コンテンツアドレス可能メモリ、即ち「ＴＣＡＭ」）内に実装され得る。一部の実施形態では、高速メモリは、フォワーディングテーブル２３０のコンテンツに対して探索処理を行うよう構成された特定用途向け集積回路（ＡＳＩＣ）を含む。
【００２９】
更に、フォワーディングテーブル２３０がより効率的に検索されることを可能にするために、宛先ノードと関連付けられたネットワークアドレスは、木構造（例えば、基数木構造）でフォワーディングテーブル２３０に格納され得る。一部の実施形態では、ネットワーキングアプリケーション２５７は、ルーティングテーブル２２０からネットワークアドレスを読み込み、そのネットワークアドレスと関連付けられたネットワークプレフィックスをフォワーディングテーブル２３０のエントリに格納し、対応するルーティング情報をそのエントリと関連付けることによって、ルーティングテーブル２２０からのルートをフォワーディングテーブル２３０に書き込む。例えば、ネットワーキングアプリケーション２５７は、宛先ノードのネットワークアドレスと関連付けられたネットワークプレフィックスを、フォワーディングテーブル２３０に含まれている基数木のエントリに格納し得る。次に、ネットワーキングアプリケーション２５７は、対応するルーティング情報をフォワーディングテーブル２３０に格納し、そのルーティング情報を（例えば、ポインタを介して）そのエントリにリンクし得る。
【００３０】
図３は、本発明の様々な実施形態による、図１の制御サーバ１２０のより詳細なブロック図である。図示されるように、制御サーバ１２０は、中央演算装置（ＣＰＵ）３０４、システムディスク３０６、入出力（Ｉ／Ｏ）装置インターフェース３０８、ネットワークインターフェース３１０、相互接続３１２、およびシステムメモリ３１４を含むが、それらに限定されない。
【００３１】
ＣＰＵ３０４は、システムメモリ３１４に格納されているプログラミング指示（例えば、制御アプリケーション３１７等）を読み出して実行するよう構成される。同様に、ＣＰＵ３０４は、アプリケーションデータを格納すると共に、システムメモリ３１４およびシステムディスク３０６に格納されているデータベース３１８からアプリケーションデータを読み出すよう構成される。相互接続３１２は、ＣＰＵ３０４、システムディスク３０６、Ｉ／Ｏ装置インターフェース３０８、ネットワークインターフェース３１０、およびシステムメモリ３１４間におけるデータの送信を容易にするよう構成される。Ｉ／Ｏ装置インターフェース３０８は、Ｉ／Ｏ装置３１６とＣＰＵ３０４との間において相互接続３１２を介して入力データおよび出力データを送信するよう構成される。システムディスク３０６は、１以上のハードディスクドライブ、ソリッドステートストレージ装置等を含み得る。システムディスク２０６は、コンテンツサーバ１１０、フィルソース１３０、およびファイル２１８と関連付けられた情報のデータベース３１８を格納するよう構成される。
【００３２】
システムメモリ３１４は、１以上のエンドポイント装置１１５および／または１以上のコンテンツサーバ１１０から、ファイル２１８を求める要求を受信するよう構成された制御アプリケーション３１７を含む。次に、制御アプリケーション３１７は、データベース３１８に格納されている情報にアクセスし、その情報を処理して、特定のファイル２１８がエンドポイント装置１１５に送信される方法、および／または、コンテンツサーバ１１０にわたって複製される方法を決定し得る。制御アプリケーション３１７は、更に、エンドポイント装置１１５によって要求されているファイル２１８についてのライセンスを生成し得る。
【００３３】
フォワーディングテーブルの圧縮
上述のように、フォワーディングテーブル２３０は、宛先ノードと関連付けられたＮＨおよび他のルーティング情報が、効率的に且つ顕著なレイテンシーを生じずに読み出されることを可能にする。しかし、フォワーディングテーブル２３０を実装するために用いられる高速メモリの価格および複雑さに起因して、フォワーディングテーブル２３０の記憶容量を、或る閾値を超えて増加させることは、多くの用途にとって法外なコストがかかり得る。その結果、インターネット上でアドバタイズされているノードの数は増加しているので、ルーティングテーブルに格納されている宛先ノードの数が、多くのルータに含まれているフォワーディングテーブル内で利用可能なエントリの数を超えている。
【００３４】
例えば、多くの商用ルータは、５１２，０００個のエントリを格納できるコンテンツアドレス可能メモリ（ＣＡＭ）を含む。しかし、現行のインターネットルーティングテーブルは、約５５０，０００個の宛先ノードについてのルートを含む。従って、多くのルータは、アドバタイズされている全ての宛先ノードについてのルートを格納することができず、および／または、超過した宛先ノードについてのルートが、より低速のメモリ（例えば、システムメモリ２１４等）に溢れ出て、ルータ性能が低下し得る。
【００３５】
従って、様々な実施形態において、ネットワーキングアプリケーション２５７は、フォワーディングテーブル２３０のコンテンツに対して２以上の圧縮パスを行う。第１の圧縮パスでは、ネットワーキングアプリケーション２５７は、或るネットワークプレフィックスを受信して、そのネットワークプレフィックスとの部分一致を表している、既存の、より短いネットワークプレフィックスを探す。部分一致が存在する場合には、ネットワーキングアプリケーション２５７は、より短いネットワークプレフィックスと関連付けられたルーティング情報を、そのネットワークプレフィックスと関連付けられたルーティング情報と比較する。それらのネットワークプレフィックス間でルーティング情報が同じである（または類似している）場合には、ネットワーキングアプリケーション２５７は、そのネットワークプレフィックスをフォワーディングテーブルから除去し、それに対応するルーティング情報を、より短いネットワークプレフィックスと関連付けられたエントリに集約することによって、フォワーディングテーブル２３０を圧縮する。
【００３６】
第２の圧縮パスでは、ネットワーキングアプリケーション２５７は、或るサブネットを選択し、そのサブネットの範囲内にあるネットワークプレフィックスエントリを、それらのネットワークプレフィックスと関連付けられたルーティング情報に基づいてグループ化する。次に、同じ（または類似の）ルーティング情報を共有しているネットワークプレフィックスの最も大きいサブグループが選択され、それらのネットワークプレフィックスと関連付けられた合成スーパーネットが生成されて、フォワーディングテーブル２３０にインストールされる。従って、その合成スーパーネットの範囲内にあり、その合成スーパーネットと同じ（または類似の）ルーティング情報を有するネットワークプレフィックスは、フォワーディングテーブル２３０から除去されてもよく、および／または、フォワーディングテーブル２３０にインストールされなくてもよい。そのような技術について、図４〜図８に関して、以下に更に詳細に説明する。
【００３７】
第１の圧縮パス
図４Ａおよび図４Ｂは、本発明の様々な実施形態による、第１の圧縮パスにおいてフォワーディングテーブル２３０を圧縮するための方法の工程のフロー図を示す。この方法の工程を、図１〜図３、並びに図５Ａ〜図５Ｅのシステムに関して説明するが、この方法の工程を任意の順序で行うよう構成された任意のシステムが本発明の範囲に含まれることが、当業者には理解されよう。
【００３８】
図４Ａに示されているように、方法４００は工程４１０において開始し、そこで、ネットワーキングアプリケーション２５７は、ネットワークプレフィックスと、そのネットワークプレフィックスと関連付けられたルーティング情報とを受信する。一部の実施形態では、ネットワークプレフィックスは、ネットワーク１０５に含まれている宛先ノード（例えば、特定のコンテンツサーバ１１０、制御サーバ１２０、エンドポイント装置１１５、またはフィルソース１３０等）と関連付けられている。一般的に、ルーティング情報は、ネットワーク１０５および／またはネットワーク１０５内の宛先ノードのトポロジーおよび／またはステータスと関連付けられた任意のタイプの情報を含み得る。ルーティング情報の例は、ＮＨ、ＮＨと関連付けられたＡＳＮ、およびＮＨと関連付けられた時間値を含むが、それらに限定されない。
【００３９】
一部の実施形態では、ゲートウェイサービスが、例えば、トランジットプロバイダ（ＴＰ）からルートのリストを受信することによって、ネットワーク１０５内の新たな宛先ノードを見出したときに、工程４１０において、ネットワークプレフィックスおよび関連付けられたルーティング情報がネットワーキングアプリケーション２５７によって受信される。一部の実施形態では、ネットワークプレフィックスおよび関連付けられたルーティング情報は、例えば、地域インターネットレジストリ（ＲＩＲ）等のレジストリから受信される。それに加えて、一部の実施形態では、ネットワークプレフィックスは、ネットワーキングアプリケーション２５７が、特定のネットワークプレフィックスに基づいて、それによってカバーされているものの探索を行ったときに、ネットワーキングアプリケーション２５７によって受信される。例えば、ネットワーキングアプリケーション２５７は、ルーティングテーブル２２０および／またはフォワーディングテーブル２３０に対して、／２２ネットワークプレフィックス（例えば、１０．０．２．０／２２：Ａ）に基づいて、それによってカバーされているものの探索を行い、／２２ネットワークプレフィックスの範囲内にある（即ち、／２２ネットワークプレフィックスによって「カバーされている」）全ての／２４ネットワークプレフィックス（例えば、１０．０．２．０／２４：Ａ）を受信し得る。
【００４０】
それに加えて、またはその代わりに、様々な実施形態において、ネットワークプレフィックスは、ネットワーキングアプリケーション２５７によって、制御サーバ１２０に含まれる制御アプリケーション３１７から受信され得る。例えば、制御アプリケーション３１７は、エンドポイント装置１１５から、ファイル２１８を求める要求を受信し、エンドポイント装置１１５と関連付けられたネットワークアドレスを決定し、エンドポイント１１５と関連付けられたネットワークアドレスおよび／またはネットワークプレフィックスをネットワーキングアプリケーション２５７に送信し得る。一部の実施形態では、制御アプリケーション３１７は、クラウドコンピューティングサービス（例えば、Amazon Web Service（登録商標）（ＡＷＳ）等）によって実装されるコンテンツ制御システム（ＣＣＳ）を含み得る。従って、そのような実施形態では、制御アプリケーション３１７は、エンドポイント１１５と関連付けられたネットワークアドレスおよび／またはネットワークプレフィックスをネットワーキングアプリケーション２５７に送信する前または後に、要求されているファイル２１８についてのライセンスを生成し得る。
【００４１】
工程４１５において、ネットワーキングアプリケーション２５７は、そのネットワークプレフィックスが、プレフィックスの公告であるか、またはプレフィックスの取り消しであるかを決定する。ネットワーキングアプリケーション２５７が、そのネットワークプレフィックスがプレフィックスの取り消しであることを決定した場合には、方法４００は、図４Ｂに示されている工程４８０に進む。一方、ネットワーキングアプリケーション２５７が、そのネットワークプレフィックスがプレフィックスの公告であることを決定した場合には、方法４００は工程４２０に進む。
【００４２】
次に、工程４２０において、ネットワーキングアプリケーション２５７は、ルーティングテーブル２２０および／またはフォワーディングテーブル２３０に対して探索を行って、そのネットワークプレフィックスについての完全一致が存在するか否かを決定する。例えば、フォワーディングテーブル２３０内に格納されている木構造５００のエントリ５１０を示す図５Ａを参照すると、ネットワーキングアプリケーション２５７は、フォワーディングテーブル２３０に対して探索を行って、１０．０．２．０／２４：Ａについてのエントリ５１０が存在するか否かを決定し得る。そのネットワークプレフィックスについての完全一致が存在しない場合には、方法４００は工程４２５に進む。
【００４３】
工程４２５において、ネットワーキングアプリケーション２５７は、ネットワークプレフィックスおよび関連付けられたルーティング情報をルーティングテーブル２２０に格納し、図５Ｂに示されているように、ネットワークプレフィックスおよび関連付けられたルーティング情報をフォワーディングテーブル２３０に書き込む。ネットワーキングアプリケーション２５７は、更に、そのネットワークプレフィックスをルーティングテーブル２２０内においてアクティブとマークし、そのネットワークプレフィックスがフォワーディングテーブル２３０のエントリ５１０に書き込まれるべきである（または書き込まれている）ことを示す。そして、方法４００は終了する。
【００４４】
工程４２０に戻ると、そのネットワークプレフィックスについての完全一致が存在する場合には、方法４００は工程４３０に進む。工程４３０において、ネットワーキングアプリケーション２５７は、ルーティングテーブル２２０および／またはフォワーディングテーブル２３０に対する探索を行って、そのネットワークプレフィックスについての部分一致が存在するか否かを決定する。一部の実施形態では、ネットワーキングアプリケーション２５７は、木構造５００を戻って探索して、木構造５００内に、より短い、カバーしているネットワークプレフィックスについてのエントリ５１０が既に存在するか否かを決定することによって、そのネットワークプレフィックスについての部分一致が存在するか否かを決定する。例えば、図５Ｂを参照すると、ネットワーキングアプリケーション２５７は、木構造５００を戻って探索して、木構造５００内に、１０．０．２．０／２２：Ａネットワークプレフィックスについてのエントリ５１０が存在し、１０．０．２．０／２４：Ａネットワークプレフィックスをカバーしていることを決定し得る。ネットワーキングアプリケーション２５７が、そのネットワークプレフィックスについての部分一致が存在しないことを決定した場合には、方法４００は工程４３５に進み、そこで、ネットワーキングアプリケーション２５７は、そのネットワークプレフィックスと関連付けられたルーティング情報を、そのネットワークプレフィックスについてのルーティングテーブル２２０および／またはフォワーディングテーブル２３０に格納されている既存のルーティング情報と比較する。
【００４５】
工程４５０において、ネットワーキングアプリケーション２５７は、必要に応じて、工程４３５において行われた比較に基づいて、そのネットワークプレフィックスと関連付けられたエントリ５１０に格納されているルーティング情報を更新する。例えば、工程４３５において、ネットワーキングアプリケーション２５７が、そのネットワークプレフィックスと関連付けられたルーティング情報が、ルーティングテーブル２２０の既存のエントリ５１０に格納されているルーティング情報には以前に含まれていないＮＨおよび対応するＡＳＮを含んでいることを決定した場合には、ネットワーキングアプリケーション２５７は、そのエントリ５１０に格納されているルーティング情報を、それらの追加のＮＨおよびＡＳＮを含むように更新する。
【００４６】
工程４３０に戻ると、ネットワーキングアプリケーション２５７が、部分一致が存在することを決定した場合には、方法４００は工程４４０に進む。工程４４０において、ネットワーキングアプリケーション２５７は、そのネットワークプレフィックスと関連付けられたルーティング情報を、より短いネットワークプレフィックスと関連付けられたルーティング情報と比較して、例えば、一致が存在するか否か、または、類似性が閾値を超えているか否か等の結果を決定する。様々な実施形態において、工程４４０において行われる比較のタイプは、ネットワーキングアプリケーション２５７が保守的な圧縮技術または積極的な圧縮技術のいずれを実装しているかに応じて異なる。
【００４７】
保守的な圧縮技術では、工程４４０において、ネットワーキングアプリケーション２５７は、そのネットワークプレフィックスと関連付けられたルーティング情報が、より短いネットワークプレフィックスと関連付けられたルーティング情報と一致するか否かを決定する。一部の実施形態では、ネットワーキングアプリケーション２５７は、そのネットワークプレフィックスと関連付けられたルーティング情報と、より短いネットワークプレフィックスと関連付けられたルーティング情報とが、同じＮＨおよびＡＳＮを含む場合に、一致が存在することを決定する。それに加えて、またはその代わりに、一部の実施形態では、工程４４０において、ネットワーキングアプリケーション２５７は、他のタイプのルーティング情報が、そのネットワークプレフィックスおよびより短いネットワークプレフィックスの両方と関連付けられている場合に、一致が存在することを決定する。
【００４８】
例えば、図５Ｂに示されているように、ネットワーキングアプリケーション２５７は、ネットワークプレフィックス１０．０．２．０／２４：Ａおよびより短いネットワークプレフィックス１０．０．２．０／２２：Ａの両方が、特定の組のＮＨ、ＡＳＮ等を含むルーティング情報Ａと関連付けられているので、ネットワークプレフィックス１０．０．２．０／２４：Ａと関連付けられたルーティング情報と、より短いネットワークプレフィックス１０．０．２．０／２２：Ａと関連付けられたルーティング情報との間に一致が存在することを決定する。その結果、方法４００は工程４６０に進み、そこで、ネットワーキングアプリケーション２５７は、そのネットワークプレフィックスをルーティングテーブル２２０内において非アクティブとマークし、図５Ｃに示されているように、そのネットワークプレフィックスをフォワーディングテーブル２３０から除去することによって、フォワーディングテーブル２３０のコンテンツを圧縮する。或いは、工程４２５においてネットワークプレフィックスが最初に書き込まれなかった実施形態では、ネットワーキングアプリケーション２５７は、そのネットワークプレフィックスをルーティングテーブル２２０内において非アクティブとマークし、図５Ｃに示されているように、そのネットワークプレフィックスがフォワーディングテーブル２３０に書き込まれないことを決定することによって、フォワーディングテーブル２３０のコンテンツを圧縮する。
【００４９】
次に、工程４７０において、ネットワーキングアプリケーション２５７は、必要に応じて、そのネットワークプレフィックスと関連付けられたルーティング情報を含むように、より短いプレフィックスと関連付けられたルーティング情報を更新する。例えば、そのネットワークプレフィックスと関連付けられたルーティング情報が、より短いネットワークプレフィックスと関連付けられたルーティング情報に含まれていない１以上のＮＨおよび／またはＡＳＮを含む場合には、そのルーティング情報は、より短いネットワークプレフィックスについてのフォワーディングテーブル２３０のエントリ５１０と関連付けられ得る。しかし、工程４４０において、ネットワーキングアプリケーション２５７が保守的な圧縮技術を実装する場合には、そのネットワークプレフィックスと関連付けられたルーティング情報が、より短いネットワークプレフィックスについてのエントリ５１０に格納されているルーティング情報と既に一致しているので、より短いプレフィックスと関連付けられたルーティング情報は、工程４７０において更新されなくてよい。そして、方法４００は終了する。
【００５０】
別の例では、図５Ｄに示されているように、ネットワーキングアプリケーション２５７が、別のネットワークプレフィックス（１０．０．１１．０／２４：Ａ）を受信して、そのネットワークプレフィックスおよび工程４３０において決定されたより短いネットワークプレフィックス（１０．０．８．０／２２：Ｂ）に、工程４４０の保守的な圧縮技術を適用する場合には、ネットワーキングアプリケーション２５７は、一致が存在しないことを決定する。具体的には、ネットワークプレフィックス１０．０．１１．０／２４：Ａと関連付けられたルーティング情報Ａは、より短いネットワークプレフィックス１０．０．８．０／２２：Ｂと関連付けられたルーティング情報Ｂと一致しない。従って、方法４００は工程４５０に進み、図５Ｅの上側に示されているように、工程４６０において、ネットワークプレフィックス１０．０．１１．０／２４：Ａはフォワーディングテーブル２３０から除去される。
【００５１】
それとは対照的に、ネットワーキングアプリケーション２５７が、工程４４０において積極的な圧縮技術を適用する場合には、ネットワーキングアプリケーション２５７は、そのネットワークプレフィックスと関連付けられたルーティング情報と、より短いネットワークプレフィックスと関連付けられたルーティング情報との間の類似性が、閾値レベルを超えているか否かを決定する。一部の実施形態では、そのネットワークプレフィックスと関連付けられたルーティング情報の閾値パーセンテージ（例えば、４０％、６０％、８０％等）が、より短いネットワークプレフィックスとも関連付けられている場合、および／または、その逆の場合に、ネットワーキングアプリケーション２５７は、類似性が閾値レベルを超えていることを決定する。図５Ｄを参照すると、例えば、閾値レベルが６０％に設定されている場合には、ネットワークプレフィックス１０．０．１１．０／２４：Ａと関連付けられた３つのＮＨおよびＡＳＮのうちの２つが、より短いネットワークプレフィックス１０．０．８．０／２２：Ｂとも関連付けられているので、および／または、より短いネットワークプレフィックス１０．０．８．０／２２：Ｂと関連付けられた３つのＮＨおよびＡＳＮのうちの２つが、ネットワークプレフィックス１０．０．１１．０／２４：Ａとも関連付けられているので、ネットワーキングアプリケーション２５７は、ネットワークプレフィックス１０．０．１１．０／２４：Ａと関連付けられたルーティング情報Ａと、より短いネットワークプレフィックス１０．０．８．０／２２：Ｂと関連付けられたルーティング情報Ｂとの間の類似性が、閾値レベルを超えていることを決定する。
【００５２】
従って、工程４４０において、ネットワーキングアプリケーション２５７が積極的な圧縮技術および６０％の閾値レベルを実装する場合には、方法４００は工程４６０に進む。工程４６０において、ネットワーキングアプリケーション２５７は、ネットワークプレフィックス１０．０．１１．０／２４：Ａをルーティングテーブル２２０内において非アクティブとマークし、図５Ｅの下側に示されているように、そのネットワークプレフィックスをフォワーディングテーブル２３０から除去することによって、または、そのネットワークプレフィックスをフォワーディングテーブル２３０に書き込まないことによって、フォワーディングテーブル２３０のコンテンツを圧縮する。次に、方法４００は工程４７０に進み、そこで、ネットワーキングアプリケーション２５７は、必要に応じて、そのネットワークプレフィックスと関連付けられたルーティング情報を含むように、より短いネットワークプレフィックスと関連付けられたルーティング情報を更新する。例えば、図５Ｄを参照すると、ネットワーキングアプリケーション２５７は、より短いネットワークプレフィックスと関連付けられたルーティング情報が、より長いネットワークプレフィックスと関連付けられたルーティング情報に含まれている特定のＡＳＮについてのＮＨを含まないことを決定し得る。従って、工程４７０において、ネットワーキングアプリケーション２５７は、そのＡＳＮと関連付けられているＮＨを含むように、より短いネットワークプレフィックスと関連付けられたルーティング情報を更新する。そして、方法４００は終了する。
【００５３】
一方、ネットワーキングアプリケーション２５７が、工程４４０において積極的な圧縮技術および８０％の閾値レベルを実装する場合には、ネットワークプレフィックス１０．０．１１．０／２４：Ａと関連付けられたルーティング情報Ａと、より短いネットワークプレフィックス１０．０．８．０／２２：Ｂと関連付けられたルーティング情報Ｂとの間の類似性（３つのＮＨおよびＡＳＮのうちの２つがそれらのネットワークプレフィックスの両方と関連付けられているものとすると、約６６％の類似性）は閾値レベルを超えない。従って、方法４００は工程４５０に進む。
【００５４】
更に、ネットワーキングアプリケーション２５７が、ネットワークプレフィックス１０．０．２．０／２４：Ａおよびより短いネットワークプレフィックス１０．０．２．０／２２：Ａに関して、積極的な圧縮技術および６０％の閾値レベルを実装する場合には、工程４４０において、ネットワーキングアプリケーション２５７は１００％の類似性を決定するので、方法４００は工程４６０に進む。次に、工程４６０において、ネットワーキングアプリケーション２５７は、ネットワークプレフィックス１０．０．２．０／２４をルーティングテーブル２２０内において非アクティブとマークし、図５Ｃに示されているように、そのネットワークプレフィックスをフォワーディングテーブル２３０から除去することによって、または、そのネットワークプレフィックスをフォワーディングテーブル２３０に書き込まないことによって、フォワーディングテーブル２３０のコンテンツを圧縮する。次に、方法４００は工程４７０に進み、そこで、ネットワーキングアプリケーション２５７は、より短いネットワークプレフィックスと関連付けられたルーティング情報が更新される必要がないことを決定する。そして、方法４００は終了する。
【００５５】
一部の実施形態では、工程４４０において、ネットワーキングアプリケーション２５７は、ルーティング情報内の１以上の項目に重み付けを適用することによって、積極的な圧縮技術を実装する。例えば、ネットワーキングアプリケーション２５７は、システムメモリ２１４からルーティングポリシーを読み出し、そのルーティングポリシーに基づいて、１以上のＡＳＮが１以上の他のＡＳＮよりも好適であることを決定し得る。次に、ネットワーキングアプリケーション２５７は、より好適なＡＳＮと関連付けられたルーティング情報（例えば、ＮＨ）に重み付けを適用してもよく、および／または、より好適でないＡＳＮに重み付けを適用してもよい。次に、ネットワーキングアプリケーション２５７が、そのネットワークプレフィックスおよびより短いネットワークプレフィックスの両方にルーティング情報が含まれていないことを決定した場合には、そのネットワークプレフィックスおよびより短いネットワークプレフィックスと関連付けられたルーティング情報を潰す／集約するか否かを決定する際に、重複していないルーティング情報に適用された重み付けが考慮され得る。
【００５６】
例えば、ネットワーキングアプリケーション２５７が、ＡＳＮ３がＡＳＮ１またはＡＳＮ２よりも好適なＡＳＮであることを決定した場合には、ネットワーキングアプリケーション２５７は、ＡＳＮ３と関連付けられたルーティング情報の各情報に重み付け（例えば、２の重み係数）を割り当て得る。次に、図５Ｄを参照すると、ネットワーキングアプリケーション２５７は、ネットワークプレフィックス１０．０．１１．０／２４：Ａと関連付けられたルーティング情報と、より短いネットワークプレフィックス１０．０．８．０／２２：Ｂと関連付けられたルーティング情報との間の類似性が５０％であることを決定する。より具体的には、ＡＳＮ３と関連付けられたＮＨは、実際上、（ＡＳＮ３と関連付けられたルーティング情報に適用された重み係数に起因して）より短いネットワークプレフィックス１０．０．８．０／２２と関連付けられたルーティング情報に含まれていない２つのＮＨとしてカウントされるので、より短いネットワークプレフィックス１０．０．８．０／２２：Ｂは、より長いネットワークプレフィックス１０．０．１１．０／２４：Ａと関連付けられたルーティング情報の５０％のみと関連付けられていることになる。
【００５７】
工程４８０に戻ると、ネットワーキングアプリケーション２５７が、そのネットワークプレフィックスがルーティングテーブル２２０およびフォワーディングテーブル２３０から取り消されることを決定した後、ネットワーキングアプリケーション２５７は、ルーティングテーブル２２０および／またはフォワーディングテーブル２３０内に、そのネットワークプレフィックスについての完全一致が存在するか否かを決定する。完全一致が存在する場合には、方法４００は工程４９０に進み、そこで、ネットワーキングアプリケーション２５７は、そのネットワークプレフィックスに２以上のＮＨが関連付けられているか否かを決定する。
【００５８】
工程４９０において、そのネットワークプレフィックスに２以上のＮＨが関連付けられている場合には、ネットワーキングアプリケーション２５７は、１以上の基準（例えば、ルートの優先傾向および／またはルートの効率等）に基づいて、そのネットワークプレフィックスと関連付けられたＮＨに対してルート選択処理を行う。このルート選択処理に基づいて、そのネットワークプレフィックスと関連付けられた１以上のＮＨは、ルーティングテーブル２２０およびフォワーディングテーブル２３０から除去され得る。次に、方法４００は上述の工程４２０に進む。ネットワーキングアプリケーション２５７が、そのネットワークプレフィックスに１つのＮＨのみが関連付けられていることを決定した場合には、工程４９４において、ネットワーキングアプリケーション２５７は、そのＮＨと関連付けられたエントリ５１０をルーティングテーブル２２０およびフォワーディングテーブル２３０から消去する。そして、方法４００は終了する。
【００５９】
工程４８０において、ネットワーキングアプリケーション２５７が、そのネットワークプレフィックスが１以上のより長いネットワークプレフィックスをカバーしていることを決定した場合には、工程４８２において、ネットワーキングアプリケーション２５７は、取り消されるネットワークプレフィックスをルーティングテーブル２２０およびフォワーディングテーブル２３０から消去する。次に、工程４８４において、ネットワーキングアプリケーション２５７は、取り消されるネットワークプレフィックスによってカバーされているより長いネットワークプレフィックスを選択し、方法４００は上述の工程４２０に進む。それに加えて、取り消されるネットワークプレフィックスが複数のより長いネットワークプレフィックスをカバーしている場合には、ネットワーキングアプリケーション２５７は、より長いネットワークプレフィックスの各々について、工程４２０〜４７０を行い得る。
【００６０】
図４の技術をフォワーディングテーブル２３０に関して説明したが、様々な実施形態において、この技術の一部または全てはオフラインで行われ得る。例えば、一部の実施形態では、工程４１０においてネットワークプレフィックスのリストが受信され、工程４２０〜４８０によってオフラインで圧縮され得る。更に、一部の実施形態では、この技術は、ネットワークプレフィックスのリストを最初に圧縮するためにオフラインで行われてもよく、更なるネットワークプレフィックスがネットワーキングアプリケーション２５７によって受信された際に、継続的に行われてもよい。
【００６１】
第２の圧縮パス
図６は、本発明の様々な実施形態による、第２の圧縮パスにおいてフォワーディングテーブル２３０を圧縮する方法の工程のフロー図を示す。この方法の工程を図１〜図３、図５Ａ〜図５Ｅ、図７Ａ〜図７Ｂ、および図８のシステムに関して説明するが、この方法の工程を任意の順序で行うよう構成された任意のシステムが本発明の範囲に含まれることが当業者には理解されよう。
【００６２】
図６に示されているように、方法６００は工程６１０において開始し、そこで、ネットワーキングアプリケーション２５７は、ネットワークプレフィックスのリストおよびそれらのネットワークプレフィックスと関連付けられたルーティング情報を受信する。様々な実施形態において、ネットワークプレフィックスのリストは、上述の技術のうちの任意のものを用いて受信され得る。例えば、ネットワークプレフィックスのリストは、ゲートウェイサービスがネットワーク１０５内の新たな宛先ノードを見出したときに受信されてもよく、レジストリサービスから受信されてもよく、ルーティングテーブル２２０および／またはフォワーディングテーブル２３０等から読み出されてもよい。説明を明確にするために、図６の方法６００を、図７Ａの木構造５００に示されている限られた数のネットワークプレフィックスを含むネットワークプレフィックスのリストに関して説明する。しかし、方法６００は、任意の数のネットワークプレフィックスを格納する任意のデータ構造を用いて実装され得る。
【００６３】
様々な実施形態において、ネットワークプレフィックスのリストは、例えば、或るネットワークプレフィックスが割当プール内のどこにあるか、および、そのネットワークプレフィックスが割り当てられているか、予約されているか、または指定されているかを示すネットワークプレフィックス状態を含み得る。それに加えて、ネットワーキングアプリケーション２５７は、そのネットワークプレフィックスと関連付けられた他のタイプの情報（ネットワークプレフィックスの地理的特性（例えば、ネットワークプレフィックスと関連付けられた大陸、州等）および／またはネットワークプレフィックスと関連付けられたトラフィックポリシーを含む）を受信し得る。更に、ネットワーキングアプリケーション２５７は、そのネットワークプレフィックスが、割り当てられている、予約されている（例えば、非公開アドレス空間）、レガシー（例えば、行政機関に割り当てられている）等であるアドレス空間に含まれているか否かを示す情報を受信または決定し得る。
【００６４】
工程６２０において、ネットワーキングアプリケーション２５７は、そのネットワークプレフィックスのリストと関連付けられた或るサブネットを選択する。様々な実施形態において、ネットワーキングアプリケーション２５７は、決まったサイズを有する１以上のサブネット（例えば、／８サブネット、／１６サブネット、／２４サブネット等）を解析し、その解析に基づいてサブネットを選択する。例えば、ネットワーキングアプリケーション２５７は、／８サブネット（例えば、１０．０．０．０／８）を解析して、その／８サブネットと関連付けられた中央値ネットワークプレフィックスを決定し得る。次に、ネットワーキングアプリケーション２５７は、中央値ネットワークプレフィックスと関連付けられたサブネットを、第２の圧縮パスの開始点として選択し得る。或いは、ネットワーキングアプリケーション２５７は、中央値ネットワークプレフィックスを決定して、そのネットワークプレフィックスから１ルーティングマスクビットを減算し、それに対応するサブネットを、第２の圧縮パスの開始点として用い得る。
【００６５】
一部の実施形態では、ネットワーキングアプリケーション２５７は、例えば、ネットワークプレフィックスにメタデータを関連付けることによって、特定の範囲のネットワークプレフィックスの圧縮を優先してもよく、および／または、特定の範囲のネットワークプレフィックスの圧縮を阻んでもよい。例えば、ネットワーキングアプリケーション２５７は、特定のインターネットサービスプロバイダ（ＩＳＰ）、コンテンツプロバイダ、機関等と関連付けられたネットワークプレフィックスについては、そのネットワークプレフィックスと関連付けられた特定のタイプのルーティング情報が失われないように、圧縮を阻んでもよい。そのようなネットワークプレフィックスは、圧縮を適用せずに、フォワーディングテーブル２３０に渡され得る。それに加えて、ネットワーキングアプリケーション２５７は、特定のネットワークプレフィックスの範囲を、それらの範囲がＲＩＲによってどのように割り当てられるかに基づいてグループ化し得る。例えば、１．０．０．０／８ネットワークプレフィックスは、大部分が、アジアの地域と関連付けられている。そのようなネットワークプレフィックスの範囲においては、トラフィックは、例えば、業務関係に基づいて、特定のＩＳＰに向かうよう影響され得るか、および／または、トラフィックは、特定のＩＳＰを迂回してルーティングされ得る。
【００６６】
次に、工程６３０において、ネットワーキングアプリケーション２５７は、工程６１０において受信されたネットワークプレフィックスのリストに含まれている或るネットワークプレフィックスを選択する。次に、工程６４０において、ネットワーキングアプリケーション２５７は、そのネットワークプレフィックスが、工程６２０において選択されたサブネットの範囲内にあるか否かを決定する。ネットワーキングアプリケーション２５７が、そのネットワークプレフィックスが選択されたサブネットの範囲内にあることを決定した場合には、方法６００は工程６４４に進み、そこで、ネットワーキングアプリケーション２５７は、そのネットワークプレフィックスを候補リストに追加する。一方、ネットワーキングアプリケーション２５７が、そのネットワークプレフィックスが選択されたサブネットの範囲内にないことを決定した場合には、方法６００は工程６４２に進み、そこで、ネットワーキングアプリケーション２５７は、そのネットワークプレフィックスを候補リストに追加しない。次に、方法６００は工程６５０に進み、そこで、ネットワーキングアプリケーション２５７は、ネットワークプレフィックスのリストに含まれている最後のネットワークプレフィックスが処理されたか否かを決定する。ネットワーキングアプリケーション２５７が、ネットワークプレフィックスのリストに含まれている最後のネットワークプレフィックスがまだ処理されていないことを決定した場合には、方法６００は工程６３０に戻り、そこで、ネットワーキングアプリケーション２５７は、別のネットワークプレフィックスを選択する。ネットワーキングアプリケーション２５７が、ネットワークプレフィックスのリストに含まれている最後のネットワークプレフィックスが処理されたことを決定した場合には、方法６００は工程６６０に進む。
【００６７】
図７Ａおよび図７Ｂに示されている例を参照すると、ネットワーキングアプリケーション２５７は、工程６２０において、１０．０．１．０／１８と関連付けられたサブネットを選択し得る。次に、工程６３０において、ネットワーキングアプリケーション２５７は、ネットワークプレフィックス１０．０．９．０／２４：Ｃを選択し、工程６４０において、ネットワークプレフィックス１０．０．９．０／２４：Ｃが、１０．０．１．０／１８と関連付けられたサブネットの範囲内にあることを決定し得る。その結果、工程６４４において、ネットワーキングアプリケーション２５７は、ネットワークプレフィックス１０．０．９．０／２４：Ｃを候補リストに追加する。次に、工程６５０において、ネットワーキングアプリケーション２５７は、最後のネットワークプレフィックスがまだ処理されていないことを決定し、方法６００は工程６３０に戻る。工程６３０において、ネットワーキングアプリケーション２５７は、別のネットワークプレフィックス（例えば、１０．０．１１．０／２４：Ａ、１０．０．８．０／２３：Ａ、または１０．０．２．０／２２：Ａ）を選択し、工程６４０において、そのネットワークプレフィックスが、１０．０．１．０／１８と関連付けられたサブネットの範囲内にあるか否かを決定し得る。次に、方法６００は工程６４２または工程６４４に進む。
【００６８】
一部の実施形態では、ネットワーキングアプリケーション２５７は、工程６２０〜工程６５０を繰り返して行う。例えば、ネットワーキングアプリケーション２５７は、工程６２０において、特定のサブネットを選択し、そのサブネットに関して工程６３０〜工程６５０を行い得る。ネットワークプレフィックスのリスト内の最後のネットワークプレフィックスに到達したら、ネットワーキングアプリケーション２５７は、そのサブネットと関連付けられたルーティングマスクから１ビットを減算し、そのより大きいサブネットに関して工程６３０〜工程６５０を再び行う。一部の実施形態では、この繰り返し処理は、そのネットワークプレフィックスのリストに関して実現可能な最も大きい合成スーパーネットが選択されて解析されるまで繰り返され得る。次に、方法６００は工程６６０に進む。
【００６９】
次に、工程６６０において、ネットワーキングアプリケーション２５７は、候補リストに含まれているネットワークプレフィックスを、そのネットワークプレフィックスと関連付けられたルーティング情報に基づいてグループ化する。一部の実施形態では、ネットワーキングアプリケーション２５７は、各タイプのルーティング情報について、それぞれ異なるサブグループを生成する。例えば、図７Ａおよび図７Ｂを参照すると、ネットワーキングアプリケーション２５７は、ルーティング情報Ａについては第１のサブグループ、ルーティング情報Ｂについては第２のサブグループ、およびルーティング情報Ｃについては第３のサブグループを生成し得る。更に、この特定の例では、ネットワークプレフィックス１０．０．１１．０／２４：Ａ、１０．０．８．０／２３：Ａ、および１０．０．２．０／２２：Ａは第１のサブグループに追加され、ネットワークプレフィックス１０．０．８．０／２２：Ｂは第２のサブグループに追加され、ネットワークプレフィックス１０．０．９．０／２４：Ｃは第３のサブグループに追加される。
【００７０】
一部の実施形態では、ネットワークプレフィックスは、他のタイプの情報（例えば、そのネットワークプレフィックスの地理的特性および／またはそのネットワークプレフィックスと関連付けられたトラフィックポリシー等）に基づいてグループ化され得る。例えば、ネットワーキングアプリケーション２５７は、同じまたは類似のルーティング情報と関連付けられた、同じまたは類似の地理的位置と関連付けられた、および／または、同じまたは類似のトラフィックポリシーと関連付けられたネットワークプレフィックスをグループ化し得る。一部の実施形態では、図４および図５Ｅの積極的な圧縮技術に関して上述したように、類似性が閾値レベル（例えば、ルーティング情報、地理的情報、および／またはトラフィックポリシー間の類似性のパーセンテージ）を満たすか否かに基づいて、サブグループが決定され得る。
【００７１】
特定の例では、ネットワーキングアプリケーション２５７は、同じルーティング情報（例えば、ルーティング情報Ａ）および同じ大陸（例えば、北アメリカ）の両方を共有しているネットワークプレフィックスのサブグループを生成し得る。それに加えて、この例では、ネットワーキングアプリケーション２５７は、同じサブグループに含まれるネットワークプレフィックスについて、それらのネットワークプレフィックスが類似のトラフィックポリシーと関連付けられることも要求し得る。他の実施形態では、ネットワーキングアプリケーション２５７は、同じルーティング情報および同じまたは類似のトラフィックポリシーの両方を共有しているネットワークプレフィックスのサブグループを生成し得る。
【００７２】
次に、工程６７０において、ネットワーキングアプリケーション２５７は、工程６６０において生成されたサブグループに基づいて、合成スーパーネットを生成する。一部の実施形態では、ネットワーキングアプリケーション２５７は、ネットワークプレフィックスの数が最も多いサブグループに基づいて、合成スーパーネットを生成する。例えば、図７Ｂに示されているように、ネットワーキングアプリケーション２５７は合成スーパーネット１０．０．１．０／１８：Ａを生成し得るものであり、これは、ネットワークプレフィックスエントリの数を２だけ減らすことを可能にする。具体的には、ルーティング情報Ａと関連付けられたネットワークプレフィックス１０．０．１１．０／２４：Ａ、１０．０．８．０／２３：Ａ、および１０．０．２．０／２２：Ａは、フォワーディングテーブル２３０から除去され、またはフォワーディングテーブル２３０にインストールされず、これらのネットワークプレフィックスをカバーする単一の合成スーパーネットエントリが生成され得る。
【００７３】
工程６８０において、ネットワーキングアプリケーション２５７は、合成スーパーネット（例えば、１０．０．１．０／１８：Ａ）と、残りの圧縮されていないネットワークプレフィックスエントリ（例えば、１０．０．８．０／２２：Ｂおよび１０．０．９．０／２４：Ｃ）とをフォワーディングテーブル２３０にインストールする。従って、様々な実施形態において、合成スーパーネット（工程６１０において受信されたネットワークプレフィックスのリストに初期状態で存在していなかったスーパーネット）が生成され、および／または、フォワーディングテーブル２３０にインストールされる。更に、図７Ａおよび図７Ｂに示されている例では、第２の圧縮パスの開始時に存在していた５つのネットワークプレフィックスエントリではなく、３つのみのネットワークプレフィックスエントリ（即ち、合成スーパーネットエントリ、および圧縮されていないネットワークプレフィックスエントリと関連付けられた２つのエントリ）がフォワーディングテーブル２３０にインストールされる。次に、方法６００は工程６９０に進み、そこで、ネットワーキングアプリケーション２５７は、別のサブネットを圧縮するか否かを決定する。ネットワーキングアプリケーション２５７が、更なるサブネットを圧縮することを決定した場合には、方法６００は工程６２０に戻る。ネットワーキングアプリケーション２５７が、更なるサブネットを圧縮しないことを決定した場合には、方法６００は終了する。
【００７４】
図示を明確にするために、図５Ａ〜図５Ｅ、図７Ａ、および図７Ｂに示されている木構造５００は、限られた数のエントリを含んでいる。しかし、様々な実施形態において、任意の数のエントリの有する木構造５００および／またはネットワークプレフィックスのリストが、ネットワーキングアプリケーション２５７によって第１の圧縮パスおよび／または第２の圧縮パスを行うために処理され得る。一部の実施形態では、第２の圧縮パスは、第１の圧縮パスの結果に対して行われる。他の実施形態では、第２の圧縮パスは、図４および図５Ａ〜図５Ｅに関して説明した第１の圧縮パスにおいてネットワーキングアプリケーション２５７が圧縮しなかったネットワークプレフィックスのリスト、木構造５００、フォワーディングテーブル２３０等に対して行われ得る。
【００７５】
図６の技術をフォワーディングテーブル２３０に関して説明したが、様々な実施形態において、この技術の一部または全てはオフラインで行われ得る。例えば、一部の実施形態では、工程６１０においてネットワークプレフィックスのリストが受信され、工程６２０〜６９０によってオフラインで圧縮され得る。更に、一部の実施形態では、この技術は、ネットワークプレフィックスのリストを最初に圧縮するためにオフラインで行われてもよく、更なるネットワークプレフィックスがネットワーキングアプリケーション２５７によって受信された際に、継続的に行われてもよい。
【００７６】
図８は、本発明の様々な実施形態による、サブネットの一部と関連付けられたネットワークプレフィックスエントリを示す。図示されるように、工程６７０において生成された合成スーパーネットエントリは、サブネット１０．０．２．０／２２：Ａ、サブネット１０．０．８．０／２３：Ａ、およびサブネット１０．０．１１．０／２４：Ａと関連付けられたアドレス空間を含む。更に図示されているように、サブネット１０．０．８．０／２２：Ｂおよびサブネット１０．０．９．０／２４：Ｃと関連付けられた圧縮されてないネットワークプレフィックスは、別々のエントリとして残っている。
【００７７】
要約すると、第１の圧縮パスにおいて、ネットワーキングアプリケーションは、ネットワークプレフィックスを受信し、そのネットワークプレフィックスと関連付けられた部分一致を見出すために、ルーティングテーブルおよび／またはフォワーディングテーブルに対する探索を行う。部分一致が存在する場合には、ネットワーキングアプリケーションは、そのネットワークプレフィックスと関連付けられたルーティング情報を、部分一致（例えば、より短いネットワークプレフィックス）と関連付けられたルーティング情報と比較する。次に、そのネットワークプレフィックスと関連付けられたルーティング情報と、部分一致と関連付けられたルーティング情報との間の類似性に基づいて、ネットワーキングアプリケーションは、そのネットワークプレフィックスをフォワーディングテーブルから除去し、それに対応するルーティング情報を部分一致と関連付けられたエントリに集約することによって、フォワーディングテーブルが圧縮されるべきか否かを決定する。
【００７８】
更に、第２の圧縮パスにおいて、ネットワーキングアプリケーションは、或るサブネットを選択し、ネットワークプレフィックスのリストに含まれているどのネットワークプレフィックスが、選択されたサブネットの範囲内にあるかを決定する。次に、ネットワーキングアプリケーションは、結果のネットワークプレフィックスを、ルーティング情報に基づいてグループ化し、ネットワークプレフィックスの或るサブグループ（例えば、ネットワークプレフィックスの数が最も多いサブグループ）を選択する。最後に、ネットワーキングアプリケーションは、そのネットワークプレフィックスのサブグループと関連付けられた合成スーパーネットを生成し、その合成スーパーネットをフォワーディングテーブルにインストールする。
【００７９】
本開示の技術の少なくとも１つの長所は、フォワーディングテーブルによって記録されている宛先ノードと関連付けられたルーティング情報を捨てることなく、フォワーディングテーブルに含まれるエントリの数を低減できることである。その結果、フォワーディングテーブルにより多くのルートが格納され得るようになり、および／または、フォワーディングテーブルのメモリ要件が低減され得る。
【００８０】
説明の目的で、様々な実施形態の説明を示したが、これらは網羅的であることを意図したものではなく、開示された実施形態に限定することは意図しない。当業者には、記載された実施形態の範囲および趣旨から逸脱することなく、多くの修正および変形が自明である。
【００８１】
本実施形態の態様は、システム、方法、またはコンピュータプログラム製品として具現化され得る。従って、本開示の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウエア、常駐ソフトウェア、マイクロコード等を含む）、または、ソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態をとり得るものであり、それらの全てを、本明細書においては一般的に「モジュール」、または「システム」と称する。更に、本開示の態様は、具現化されたコンピュータ可読プログラムコードを有する１以上のコンピュータ可読媒体において具現化されたコンピュータプログラム製品の形態をとり得る。
【００８２】
１以上のコンピュータ可読媒体の任意の組合せが用いられ得る。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であり得る。コンピュータ可読記憶媒体は、例えば、電子、磁気、光、電磁、赤外線、もしくは半導体のシステム、装置、もしくはデバイス、またはそれらの任意の適切な組合せであり得るが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例（網羅的ではないリスト）としては、１以上のワイヤを有する電気的接続、ポータブルコンピュータのディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光ストレージ装置、磁気ストレージ装置、またはそれらの任意の適切な組合せが挙げられる。本明細書の文脈において、コンピュータ可読記憶媒体は、指示を実行するシステム、装置、またはデバイスによって用いられる、またはそれらに関連して用いられるためのプログラムを収容または格納可能な、任意の有体の媒体であり得る。
【００８３】
上記において、本開示の態様を、本開示の実施形態による方法、装置（システム）およびコンピュータプログラム製品のフローチャートおよび／またはブロック図を参照して説明した。フローチャートおよび／またはブロック図の各ブロック、並びに、フローチャートおよび／またはブロック図のブロックの組合せは、コンピュータプログラムの指示によって実装され得ることが理解されよう。これらのコンピュータプログラム指示は、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに供給されてマシンを生成し得るものであり、そのコンピュータまたは他のプログラマブルデータ処理装置のプロセッサによって実行される指示が、フローチャートおよび／またはブロック図の１または複数のブロックにおいて指定されている機能／動作の実装を可能にするようになっている。そのようなプロセッサは、汎用プロセッサ、専用プロセッサ、特定用途向けプロセッサ、またはフィールドプログラマブルであり得るが、それらに限定されない。
【００８４】
図面中のフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、および処理を示すものである。この点に関して、フローチャートまたはブロック図の各ブロックは、指定されている論理的機能を実装するための１以上の実行可能な指示を含むモジュール、セグメント、またはコードの一部を表し得る。なお、幾つかの別の実装例においては、ブロック内に記されている機能が、図面に記されている順序から外れて生じ得る。例えば、続けて示されている２つのブロックが、含まれる機能に応じて、実際には略並列に実行される場合もあり、または、それらのブロックが逆の順序で実行される場合もある。また、ブロック図および／またはフローチャートの各ブロック、並びに、ブロック図および／またはフローチャートのブロックの組合せは、指定された機能もしくは動作を行う専用ハードウェアに基づくシステムによって、または、専用ハードウェアとコンピュータ指示との組合せによって実装され得る。
【００８５】
上記は本開示の実施形態に向けられているが、本開示の基本的な範囲から逸脱することなく、本開示の他のおよび更なる実施形態も考案され得るものであり、本開示の範囲は添付の特許請求によって決定される。
【符号の説明】
【００８６】
１００  ネットワークインフラ
１０５  通信ネットワーク
１１０  コンテンツサーバ
１１５  エンドポイント装置
１２０  制御サーバ
１３０  フィルソース
２１８  ファイル
２２０  ルーティングテーブル
２３０  フォワーディングテーブル
２３２  ＣＡＭ
２４０  ネットワーキング装置
２４４  ＣＰＵ
２５４  システムメモリ
２５７  ネットワーキングアプリケーション
３１７  制御アプリケーション
５００  木構造
５１０  エントリ
【図１】
2019525660.tif 000003
【図２Ａ】
2019525660.tif 000004
【図２Ｂ】
2019525660.tif 000005
【図３】
2019525660.tif 000006
【図４Ａ】
2019525660.tif 000007
【図４Ｂ】
2019525660.tif 000008
【図５Ａ】
2019525660.tif 000009
【図５Ｂ】
2019525660.tif 000010
【図５Ｃ】
2019525660.tif 000011
【図５Ｄ】
2019525660.tif 000012
【図５Ｅ】
2019525660.tif 000013
【図６】
2019525660.tif 000014
【図７Ａ】
2019525660.tif 000015
【図７Ｂ】
2019525660.tif 000016
【図８】
2019525660.tif 000017
【国際調査報告】
2019525660.tif 000018
2019525660.tif 000019
2019525660.tif 000020