JP6808018B2 - フォワーディングテーブルの圧縮 - Google Patents

フォワーディングテーブルの圧縮 Download PDF

Info

Publication number
JP6808018B2
JP6808018B2 JP2019508253A JP2019508253A JP6808018B2 JP 6808018 B2 JP6808018 B2 JP 6808018B2 JP 2019508253 A JP2019508253 A JP 2019508253A JP 2019508253 A JP2019508253 A JP 2019508253A JP 6808018 B2 JP6808018 B2 JP 6808018B2
Authority
JP
Japan
Prior art keywords
network
network prefix
prefixes
subgroup
routing information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019508253A
Other languages
English (en)
Other versions
JP2019525660A (ja
Inventor
バニスター,ディヴィッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netflix Inc
Original Assignee
Netflix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netflix Inc filed Critical Netflix Inc
Publication of JP2019525660A publication Critical patent/JP2019525660A/ja
Application granted granted Critical
Publication of JP6808018B2 publication Critical patent/JP6808018B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/46Cluster building
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

関連出願の相互参照
本願は、2016年8月15日に出願された米国特許出願第15/237,541号による利益を主張するものであり、これを参照して本明細書に組み込む。
本発明は、一般的には、コンピュータネットワーキングに関し、より具体的には、合成スーパーネット圧縮に関する。
従来のデジタルコンテンツ配信システムは、コンテンツサーバと、制御サーバと、エンドポイント装置と、コンテンツサーバをエンドポイント装置に接続する通信ネットワークとを含む。コンテンツサーバは、典型的には、1以上のコンテンツ配信ネットワークに属し、コンテンツサーバからエンドポイント装置にダウンロードされ得るそれぞれ異なるコンテンツアセットに対応するファイルを格納するよう構成される。
一般的に、制御サーバは、エンドポイント装置から送信された、そのようなコンテンツアセットを求める要求に応答した、エンドポイント装置へのコンテンツアセットの配信の管理を司る。エンドポイント装置から受信された、ファイルを求める要求に応答するために、コンテンツサーバと関連付けられた1以上のルータは、要求されたファイルの位置および可用性を決定するために、制御サーバと通信するよう構成される。次に、ルータから、および/または、より広いコンテンツ配信ネットワークを介して、ファイルが適切なエンドポイント装置に配信される。
各ファイルを、通信ネットワークを介して適切なエンドポイント装置までどのようにルーティングするかを決定するために、ルータによって様々な技術が実装される。例えば、ホップバイホップ転送技術においては、各ルータは、通信ネットワークのトポロジーと関連付けられた情報を格納するルーティングテーブル(例えば、ルーティング情報ベース、即ち「RIB」)を含む。より具体的には、ルーティングテーブルは、典型的には、有効な各宛先ノードについて、宛先ノードに到達するためにデータパケットを送信可能な次の装置のネットワークアドレス(「ネクストホップ」)を格納する。ルータは、宛先ノードに向けてデータパケットを送信可能な新たなルートを学習する度に、その新たなルートをルーティングテーブルに追加する。それに加えて、ルータは、特定の宛先ノードが到達不能になっていることを決定した場合には、その宛先ノードをルーティングテーブルから除去し得る。
ルーティングテーブルは、典型的には、ルータ内のランダムアクセスメモリ(RAM)および/または不揮発性記憶装置(例えば、ハードディスクドライブ(HDD)またはソリッドステートドライブ(SSD)等)に格納される。その結果、ルーティングテーブルに追加されたルートが増えるほど、特定の宛先ノードについてのネクストホップを探してルーティングテーブルを検索することと関連付けられたレイテンシーが増大する。この問題に対処するために、ルーティングテーブルに格納されているルーティング情報は、高速メモリ(例えば、三元コンテンツアドレス可能メモリ、即ちTCAM等)内に実装されるフォワーディングテーブル(例えば、フォワーディング情報ベース、即ち「FIB」)に書き込まれ得る。それに加えて、検索効率を更に高めるために、ルーティング情報は、木構造(例えば、基数木構造)でフォワーディングテーブルに格納され得るものであり、これは、宛先ノードと関連付けられたプレフィックスを探してFIBを検索することによって、宛先ノードと関連付けられたネクストホップおよび他の情報を迅速に読み出すことを可能にする。
上述のように、フォワーディングテーブルは、効率的に、且つ、顕著なレイテンシーを生じずに、ネクストホップおよび他のルーティング情報が読み出されることを可能にする。しかし、フォワーディングテーブルが実装される高速メモリの価格および複雑さに起因して、フォワーディングテーブルのサイズを、或る閾値を超えて増加させることは、多くの用途にとって法外なコストがかかり得る。従って、多くのフォワーディングテーブルのサイズは、長年にわたって生じているインターネットのサイズおよび複雑さの増加に対処するよう増加されていない。その結果、多くの既存のルータでは、ルーティングテーブルに格納されている宛先ノードの数が、対応するフォワーディングテーブル内で利用可能なエントリの数を超えている。そのようなルータは、インターネットルーティングテーブルに含まれている全ての宛先ノードについてのルートを格納できないので、超過したルートが、より低速のメモリ(例えば、RAM等)に溢れ出ることになり得る。
上記に示されるように、通信ネットワークと関連付けられたルーティング情報を格納するためのより効果的な技術が必要である。
本発明の一実施形態は、フォワーディングテーブルを圧縮する方法を述べる。本方法は、ネットワークプレフィックスのリストから、或るサブネットの範囲内にある複数のネットワークプレフィックスを選択する工程を含む。本方法は、複数のネットワークプレフィックスをソートして、ネットワークプレフィックスの1以上のサブグループを生成する工程と、ネットワークプレフィックスの1以上のサブグループに含まれているネットワークプレフィックスの第1のサブグループを選択する工程とを更に含む。本方法は、ネットワークプレフィックスの第1のサブグループに基づいて、合成スーパーネットを生成する工程を更に含む。
更なる実施形態は、とりわけ、上述の方法を実装するよう構成された非一過性のコンピュータ可読媒体およびネットワーキング装置を提供する。
本開示の技術の少なくとも1つの長所は、フォワーディングテーブルによって記録されている宛先ノードと関連付けられたルーティング情報を捨てることなく、フォワーディングテーブルに含まれるエントリの数を低減できることである。その結果、フォワーディングテーブルにより多くのルートが格納され得るようになり、および/または、フォワーディングテーブルのメモリ要件が低減され得る。
本発明の1以上の態様を実装するよう構成されたネットワークインフラを示す 本発明の様々な実施形態による、図1のコンテンツサーバのより詳細なブロック図 本発明の様々な実施形態による、図2Aのネットワーキング装置のより詳細なブロック図 本発明の様々な実施形態による、図1の制御サーバのより詳細なブロック図 本発明の様々な実施形態による、第1の圧縮パスにおいてフォワーディングテーブルを圧縮する方法の工程のフロー図を示す 本発明の様々な実施形態による、第1の圧縮パスにおいてフォワーディングテーブルを圧縮する方法の工程のフロー図を示す 本発明の様々な実施形態による、第1の圧縮パスにおいて生成される木構造の複数の異なるエントリを示す 本発明の様々な実施形態による、第1の圧縮パスにおいて生成される木構造の複数の異なるエントリを示す 本発明の様々な実施形態による、第1の圧縮パスにおいて生成される木構造の複数の異なるエントリを示す 本発明の様々な実施形態による、第1の圧縮パスにおいて生成される木構造の複数の異なるエントリを示す 本発明の様々な実施形態による、第1の圧縮パスにおいて生成される木構造の複数の異なるエントリを示す 本発明の様々な実施形態による、第2の圧縮パスにおいてフォワーディングテーブルを圧縮する方法の工程のフロー図を示す 本発明の様々な実施形態による、第2の圧縮パスにおいて生成される木構造の複数の異なるエントリを示す 本発明の様々な実施形態による、第2の圧縮パスにおいて生成される木構造の複数の異なるエントリを示す 本発明の様々な実施形態による、サブネットの一部と関連付けられたネットワークプレフィックスエントリを示す
以下の説明において、本発明の実施形態のより完全な理解を提供するために、多くの具体的な詳細が述べられる。しかし、当業者には、これらの具体的な詳細の1以上を含まずとも本発明の実施形態が実施され得ることが自明である。
システムの概観
図1は、本発明の1以上の態様を実装するよう構成されたネットワークインフラ100を示す。図示されるように、ネットワークインフラ100は、コンテンツサーバ110、制御サーバ120、およびエンドポイント装置115を含み、これらの各要素は通信ネットワーク105を介して接続されている。
各エンドポイント装置115は、コンテンツ(例えば、テキストデータ、グラフィカルデータ、オーディオデータ、ビデオデータ、および他のタイプのデータ等)をダウンロードするために、ネットワーク105を介して1以上のコンテンツサーバ110(「キャッシュ」または「ノード」とも称される)と通信する。次に、ダウンロード可能なコンテンツ(本明細書においては「ファイル」とも称される)が1以上のコンテンツサーバ110間で転送され、および/または、1以上のエンドポイント装置115のユーザに対して示される。様々な実施形態において、エンドポイント装置115は、コンピュータシステム、セットトップボックス、モバイルコンピュータ、スマートフォン、タブレット、コンソール型および携帯型ビデオゲームシステム、デジタルビデオレコーダー(DVR)、DVDプレイヤー、接続されたデジタルTV、専用メディアストリーミング装置(例えば、Roku(登録商標)セットトップボックス)、および/または、ネットワーク接続性を有し、コンテンツ(例えば、テキスト、画像、ビデオ、および/またはオーディオコンテンツ等)をユーザに対して示すことができる他の任意の技術的に可能なコンピューティングプラットフォームを含み得る。
各コンテンツサーバ110は、ウェブサーバと、データベースと、制御サーバ120によって記録および管理される様々なファイルのネットワーク上の位置および可用性を決定するために制御サーバ120と通信するよう構成されたサーバアプリケーション217とを含み得る。各コンテンツサーバ110は、更に、各コンテンツサーバ110を様々なファイルのコピーで「フィル」するために、フィルソース130および1以上の他のコンテンツサーバ110と通信し得る。それに加えて、コンテンツサーバ110は、エンドポイント装置115から受信された、ファイルを求める要求に応答し得る。次に、それらのファイルが、コンテンツサーバ110から、または、より広いコンテンツ配信ネットワークを介して配信され得る。一部の実施形態では、コンテンツサーバ110は、コンテンツサーバ110に格納されているファイルにアクセスするための(例えば、ユーザ名およびパスワードを用いた)ユーザの認証を可能にする。図1には1つの制御サーバ120のみが示されているが、様々な実施形態では、ファイルを記録および管理するために、複数の制御サーバ120が実装され得る。
様々な実施形態において、フィルソース130はオンラインストレージサービス(例えば、Amazon(登録商標)Simple Storage Service、Google(登録商標)Cloud Storage等)を含み得るものであり、そこに、数千または数百万のファイルを含むファイルのカタログが格納されており、コンテンツサーバ110をフィルするためにアクセスされる。図1には1つのフィルソース130のみが示されているが、様々な実施形態では、ファイルを求める要求に対するサービスを行うために、複数のフィルソース130が実装され得る。
図2Aは、本発明の様々な実施形態による、図1のコンテンツサーバ110のより詳細なブロック図である。図示されるように、コンテンツサーバ110は、中央演算装置(CPU)204、システムディスク206、入出力(I/O)装置インターフェース208、ネットワークインターフェース210、相互接続212、およびシステムメモリ214を含むが、それらに限定されない。様々な実施形態において、コンテンツサーバ110は、ネットワーキング装置240を介して、ネットワーク105上の他のノードと通信する。
CPU204は、システムメモリ214に格納されているプログラミング指示(例えば、サーバアプリケーション217等)を読み出して実行するよう構成される。同様に、CPU204は、アプリケーションデータを格納すると共に、システムメモリ214からアプリケーションデータを読み出すよう構成される。相互接続212は、CPU204、システムディスク206、I/O装置インターフェース208、ネットワークインターフェース210、およびシステムメモリ214間におけるデータ(例えば、プログラミング指示およびアプリケーションデータ等)の送信を容易にするよう構成される。I/O装置インターフェース208は、I/O装置216から入力データを受信して、その入力データを、相互接続212を介してCPU204に送信するよう構成される。例えば、I/O装置216は、1以上のボタン、キーボード、マウス、および/または他の入力装置を含み得る。I/O装置インターフェース208は、更に、CPU204から相互接続212を介して出力データを受信し、その出力データをI/O装置216に送信するよう構成される。
システムディスク206は、1以上のハードディスクドライブ、ソリッドステートストレージ装置、または類似のストレージ装置を含み得る。システムディスク206は、例えば、コンテンツカタログと関連付けられたファイル218(例えば、オーディオファイル、ビデオファイル等)等の不揮発性データを格納するよう構成される。次に、ファイル218は、1以上のコンテンツサーバ110および/または1以上のエンドポイント装置115によって、ネットワーク105を介して読み出され得る。一部の実施形態では、ネットワークインターフェース210は、イーサネット標準に準拠して動作するよう構成され得る。
システムメモリ214は、エンドポイント装置115および他のコンテンツサーバ110から受信された、ファイル218を求める要求に対してサービスを行うよう構成されたサーバアプリケーション217を含む。サーバアプリケーション217が、ファイル218を求める要求を受信したら、サーバアプリケーション217は、対応するファイル218をシステムディスク206から読み出して、そのファイル218を、ネットワーク105を介してエンドポイント装置115またはコンテンツサーバ110送信する。
図2Bは、本発明の様々な実施形態による、図2Aのネットワーキング装置240のより詳細なブロック図である。図示されるように、ネットワーキング装置240は、中央演算装置(CPU)244、ネットワークインターフェース250、相互接続252、システムメモリ254、およびコンテンツアドレス可能メモリ(CAM)232を含むが、それらに限定されない。
CPU244は、システムメモリ254に格納されているプログラミング指示(例えば、ネットワーキングアプリケーション257等)を読み出して実行するよう構成される。同様に、CPU244は、アプリケーションデータを格納すると共に、システムメモリ254からアプリケーションデータを読み出すよう構成される。相互接続252は、CPU244、ネットワークインターフェース250、システムメモリ254、およびCAM232間におけるデータ(例えば、プログラミング指示およびアプリケーションデータ等)の送信を容易にするよう構成される。
システムメモリ254は、データ(例えば、ファイル218)および/またはルーティング情報(例えば、特定のファイル218がネットワーク105を介して送信されるべき宛先ノード等)を送受信するよう構成されたネットワーキングアプリケーション257を含む。一部の実施形態では、ネットワーキングアプリケーション257は、1以上のトランジットプロバイダ(TP)および/または制御サーバ120と通信して、ネットワーク105に含まれている宛先ノードと関連付けられたルーティング情報を決定する。
様々な実施形態において、ネットワーキング装置240は、1以上のルータとして実装される。そのような実施形態では、ネットワーキングアプリケーション257は、例えば、ネットワーク105に含まれているノード(例えば、コンテンツサーバ110、制御サーバ120、エンドポイント装置115、フィルソース130等)のネットワークアドレス等といったネットワークルーティング情報を受信、処理、および送信するゲートウェイプロトコル(例えば、ボーダーゲートウェイプロトコル、即ち「BGP」)を実装する。一部の実施形態では、コンテンツサーバ110、制御サーバ120、エンドポイント装置115、および/またはフィルソース130は1以上の自律システム(AS)を構成し、各自律システムは、別々のゲートウェイサービス(例えば、BGPサービス)によって管理され得る。
ネットワーキングアプリケーション257によって実装されるゲートウェイサービスは、ネットワーク105に含まれているアドバタイズされている全てのノードと関連付けられたネットワークトポロジー情報を受信し得る。ネットワークトポロジー情報は、各宛先ノードについてのネットワークアドレスと、ネットワーク105内の特定のノードに到達するためにデータパケットを送信可能な「ネクストホップ」(NH)のネットワークアドレスとを含み得る。次に、ネットワーキングアプリケーション257は、ネットワークアドレス、NH、および他のタイプのルーティング情報を、ルーティングテーブル220(例えば、ルーティング情報ベース、即ち「RIB」)に格納する。ネットワーキングアプリケーション257は、更に、ネットワーク105内の各ノードが到達可能であるか否かを決定して、この情報をルーティングテーブル220に格納し得る。
ネットワーキングアプリケーション257が、データパケットをネットワーク105内の特定のノードに向かって送信可能な新たなルートを受信する度に、その新たなルートがルーティングテーブル220に追加され得る。それに加えて、ルータが、特定のノードが到達不能になっていることを決定したときには、そのノードと関連付けられたネットワークアドレスおよびルーティング情報は、ルーティングテーブル220から除去され得る。一部の実施形態では、ルーティングテーブル220は、各宛先ノードについて、その宛先ノードのネットワークアドレスと、その宛先ノードと関連付けられたルーティング情報(例えば、1以上のNH、それらのNHと関連付けられた1以上の自律システム番号(ASN)、各NHと関連付けられた時間値、並びに、特定のNHおよび/またはASNと関連付けられた他のタイプの属性等)とを格納する。各ノードと関連付けられたネットワークアドレスおよび/またはNHは、任意の形式でルーティングテーブル220に格納され得る。例えば、ネットワークアドレスおよび/またはNHは、インターネットプロトコルバージョン4(IPv4)形式で、インターネットプロトコルバージョン6(IPv6)形式で、特定の形式と関連付けられたネットワークアドレスプレフィックス(例えば、/8、/16、/24等)として、および/または、他の任意の技術的に可能な形式で格納され得る。
ルーティングテーブル220に追加されたルートが増えるほど、特定の宛先ノードについてのNHを探してルーティングテーブル220を検索することと関連付けられたレイテンシーが増大する。従って、ネットワーキングアプリケーション257は、ルートを、ネットワークインターフェース210に含まれるフォワーディングテーブル230(例えば、フォワーディング情報ベース、即ち「FIB」)に書き込む。システムメモリ214に格納され得るルーティングテーブル220とは対照的に、フォワーディングテーブル230は、高速メモリ(例えば、三元コンテンツアドレス可能メモリ、即ち「TCAM」)内に実装され得る。一部の実施形態では、高速メモリは、フォワーディングテーブル230のコンテンツに対して探索処理を行うよう構成された特定用途向け集積回路(ASIC)を含む。
更に、フォワーディングテーブル230がより効率的に検索されることを可能にするために、宛先ノードと関連付けられたネットワークアドレスは、木構造(例えば、基数木構造)でフォワーディングテーブル230に格納され得る。一部の実施形態では、ネットワーキングアプリケーション257は、ルーティングテーブル220からネットワークアドレスを読み込み、そのネットワークアドレスと関連付けられたネットワークプレフィックスをフォワーディングテーブル230のエントリに格納し、対応するルーティング情報をそのエントリと関連付けることによって、ルーティングテーブル220からのルートをフォワーディングテーブル230に書き込む。例えば、ネットワーキングアプリケーション257は、宛先ノードのネットワークアドレスと関連付けられたネットワークプレフィックスを、フォワーディングテーブル230に含まれている基数木のエントリに格納し得る。次に、ネットワーキングアプリケーション257は、対応するルーティング情報をフォワーディングテーブル230に格納し、そのルーティング情報を(例えば、ポインタを介して)そのエントリにリンクし得る。
図3は、本発明の様々な実施形態による、図1の制御サーバ120のより詳細なブロック図である。図示されるように、制御サーバ120は、中央演算装置(CPU)304、システムディスク306、入出力(I/O)装置インターフェース308、ネットワークインターフェース310、相互接続312、およびシステムメモリ314を含むが、それらに限定されない。
CPU304は、システムメモリ314に格納されているプログラミング指示(例えば、制御アプリケーション317等)を読み出して実行するよう構成される。同様に、CPU304は、アプリケーションデータを格納すると共に、システムメモリ314およびシステムディスク306に格納されているデータベース318からアプリケーションデータを読み出すよう構成される。相互接続312は、CPU304、システムディスク306、I/O装置インターフェース308、ネットワークインターフェース310、およびシステムメモリ314間におけるデータの送信を容易にするよう構成される。I/O装置インターフェース308は、I/O装置316とCPU304との間において相互接続312を介して入力データおよび出力データを送信するよう構成される。システムディスク306は、1以上のハードディスクドライブ、ソリッドステートストレージ装置等を含み得る。システムディスク206は、コンテンツサーバ110、フィルソース130、およびファイル218と関連付けられた情報のデータベース318を格納するよう構成される。
システムメモリ314は、1以上のエンドポイント装置115および/または1以上のコンテンツサーバ110から、ファイル218を求める要求を受信するよう構成された制御アプリケーション317を含む。次に、制御アプリケーション317は、データベース318に格納されている情報にアクセスし、その情報を処理して、特定のファイル218がエンドポイント装置115に送信される方法、および/または、コンテンツサーバ110にわたって複製される方法を決定し得る。制御アプリケーション317は、更に、エンドポイント装置115によって要求されているファイル218についてのライセンスを生成し得る。
フォワーディングテーブルの圧縮
上述のように、フォワーディングテーブル230は、宛先ノードと関連付けられたNHおよび他のルーティング情報が、効率的に且つ顕著なレイテンシーを生じずに読み出されることを可能にする。しかし、フォワーディングテーブル230を実装するために用いられる高速メモリの価格および複雑さに起因して、フォワーディングテーブル230の記憶容量を、或る閾値を超えて増加させることは、多くの用途にとって法外なコストがかかり得る。その結果、インターネット上でアドバタイズされているノードの数は増加しているので、ルーティングテーブルに格納されている宛先ノードの数が、多くのルータに含まれているフォワーディングテーブル内で利用可能なエントリの数を超えている。
例えば、多くの商用ルータは、512,000個のエントリを格納できるコンテンツアドレス可能メモリ(CAM)を含む。しかし、現行のインターネットルーティングテーブルは、約550,000個の宛先ノードについてのルートを含む。従って、多くのルータは、アドバタイズされている全ての宛先ノードについてのルートを格納することができず、および/または、超過した宛先ノードについてのルートが、より低速のメモリ(例えば、システムメモリ214等)に溢れ出て、ルータ性能が低下し得る。
従って、様々な実施形態において、ネットワーキングアプリケーション257は、フォワーディングテーブル230のコンテンツに対して2以上の圧縮パスを行う。第1の圧縮パスでは、ネットワーキングアプリケーション257は、或るネットワークプレフィックスを受信して、そのネットワークプレフィックスとの部分一致を表している、既存の、より短いネットワークプレフィックスを探す。部分一致が存在する場合には、ネットワーキングアプリケーション257は、より短いネットワークプレフィックスと関連付けられたルーティング情報を、そのネットワークプレフィックスと関連付けられたルーティング情報と比較する。それらのネットワークプレフィックス間でルーティング情報が同じである(または類似している)場合には、ネットワーキングアプリケーション257は、そのネットワークプレフィックスをフォワーディングテーブルから除去し、それに対応するルーティング情報を、より短いネットワークプレフィックスと関連付けられたエントリに集約することによって、フォワーディングテーブル230を圧縮する。
第2の圧縮パスでは、ネットワーキングアプリケーション257は、或るサブネットを選択し、そのサブネットの範囲内にあるネットワークプレフィックスエントリを、それらのネットワークプレフィックスと関連付けられたルーティング情報に基づいてグループ化する。次に、同じ(または類似の)ルーティング情報を共有しているネットワークプレフィックスの最も大きいサブグループが選択され、それらのネットワークプレフィックスと関連付けられた合成スーパーネットが生成されて、フォワーディングテーブル230にインストールされる。従って、その合成スーパーネットの範囲内にあり、その合成スーパーネットと同じ(または類似の)ルーティング情報を有するネットワークプレフィックスは、フォワーディングテーブル230から除去されてもよく、および/または、フォワーディングテーブル230にインストールされなくてもよい。そのような技術について、図4〜図8に関して、以下に更に詳細に説明する。
第1の圧縮パス
図4Aおよび図4Bは、本発明の様々な実施形態による、第1の圧縮パスにおいてフォワーディングテーブル230を圧縮するための方法の工程のフロー図を示す。この方法の工程を、図1〜図3、並びに図5A〜図5Eのシステムに関して説明するが、この方法の工程を任意の順序で行うよう構成された任意のシステムが本発明の範囲に含まれることが、当業者には理解されよう。
図4Aに示されているように、方法400は工程410において開始し、そこで、ネットワーキングアプリケーション257は、ネットワークプレフィックスと、そのネットワークプレフィックスと関連付けられたルーティング情報とを受信する。一部の実施形態では、ネットワークプレフィックスは、ネットワーク105に含まれている宛先ノード(例えば、特定のコンテンツサーバ110、制御サーバ120、エンドポイント装置115、またはフィルソース130等)と関連付けられている。一般的に、ルーティング情報は、ネットワーク105および/またはネットワーク105内の宛先ノードのトポロジーおよび/またはステータスと関連付けられた任意のタイプの情報を含み得る。ルーティング情報の例は、NH、NHと関連付けられたASN、およびNHと関連付けられた時間値を含むが、それらに限定されない。
一部の実施形態では、ゲートウェイサービスが、例えば、トランジットプロバイダ(TP)からルートのリストを受信することによって、ネットワーク105内の新たな宛先ノードを見出したときに、工程410において、ネットワークプレフィックスおよび関連付けられたルーティング情報がネットワーキングアプリケーション257によって受信される。一部の実施形態では、ネットワークプレフィックスおよび関連付けられたルーティング情報は、例えば、地域インターネットレジストリ(RIR)等のレジストリから受信される。それに加えて、一部の実施形態では、ネットワークプレフィックスは、ネットワーキングアプリケーション257が、特定のネットワークプレフィックスに基づいて、それによってカバーされているものの探索を行ったときに、ネットワーキングアプリケーション257によって受信される。例えば、ネットワーキングアプリケーション257は、ルーティングテーブル220および/またはフォワーディングテーブル230に対して、/22ネットワークプレフィックス(例えば、10.0.2.0/22:A)に基づいて、それによってカバーされているものの探索を行い、/22ネットワークプレフィックスの範囲内にある(即ち、/22ネットワークプレフィックスによって「カバーされている」)全ての/24ネットワークプレフィックス(例えば、10.0.2.0/24:A)を受信し得る。
それに加えて、またはその代わりに、様々な実施形態において、ネットワークプレフィックスは、ネットワーキングアプリケーション257によって、制御サーバ120に含まれる制御アプリケーション317から受信され得る。例えば、制御アプリケーション317は、エンドポイント装置115から、ファイル218を求める要求を受信し、エンドポイント装置115と関連付けられたネットワークアドレスを決定し、エンドポイント115と関連付けられたネットワークアドレスおよび/またはネットワークプレフィックスをネットワーキングアプリケーション257に送信し得る。一部の実施形態では、制御アプリケーション317は、クラウドコンピューティングサービス(例えば、Amazon Web Service(登録商標)(AWS)等)によって実装されるコンテンツ制御システム(CCS)を含み得る。従って、そのような実施形態では、制御アプリケーション317は、エンドポイント115と関連付けられたネットワークアドレスおよび/またはネットワークプレフィックスをネットワーキングアプリケーション257に送信する前または後に、要求されているファイル218についてのライセンスを生成し得る。
工程415において、ネットワーキングアプリケーション257は、そのネットワークプレフィックスが、プレフィックスの公告であるか、またはプレフィックスの取り消しであるかを決定する。ネットワーキングアプリケーション257が、そのネットワークプレフィックスがプレフィックスの取り消しであることを決定した場合には、方法400は、図4Bに示されている工程480に進む。一方、ネットワーキングアプリケーション257が、そのネットワークプレフィックスがプレフィックスの公告であることを決定した場合には、方法400は工程420に進む。
次に、工程420において、ネットワーキングアプリケーション257は、ルーティングテーブル220および/またはフォワーディングテーブル230に対して探索を行って、そのネットワークプレフィックスについての完全一致が存在するか否かを決定する。例えば、フォワーディングテーブル230内に格納されている木構造500のエントリ510を示す図5Aを参照すると、ネットワーキングアプリケーション257は、フォワーディングテーブル230に対して探索を行って、10.0.2.0/24:Aについてのエントリ510が存在するか否かを決定し得る。そのネットワークプレフィックスについての完全一致が存在しない場合には、方法400は工程425に進む。
工程425において、ネットワーキングアプリケーション257は、ネットワークプレフィックスおよび関連付けられたルーティング情報をルーティングテーブル220に格納し、図5Bに示されているように、ネットワークプレフィックスおよび関連付けられたルーティング情報をフォワーディングテーブル230に書き込む。ネットワーキングアプリケーション257は、更に、そのネットワークプレフィックスをルーティングテーブル220内においてアクティブとマークし、そのネットワークプレフィックスがフォワーディングテーブル230のエントリ510に書き込まれるべきである(または書き込まれている)ことを示す。そして、方法400は終了する。
工程420に戻ると、そのネットワークプレフィックスについての完全一致が存在する場合には、方法400は工程430に進む。工程430において、ネットワーキングアプリケーション257は、ルーティングテーブル220および/またはフォワーディングテーブル230に対する探索を行って、そのネットワークプレフィックスについての部分一致が存在するか否かを決定する。一部の実施形態では、ネットワーキングアプリケーション257は、木構造500を戻って探索して、木構造500内に、より短い、カバーしているネットワークプレフィックスについてのエントリ510が既に存在するか否かを決定することによって、そのネットワークプレフィックスについての部分一致が存在するか否かを決定する。例えば、図5Bを参照すると、ネットワーキングアプリケーション257は、木構造500を戻って探索して、木構造500内に、10.0.2.0/22:Aネットワークプレフィックスについてのエントリ510が存在し、10.0.2.0/24:Aネットワークプレフィックスをカバーしていることを決定し得る。ネットワーキングアプリケーション257が、そのネットワークプレフィックスについての部分一致が存在しないことを決定した場合には、方法400は工程435に進み、そこで、ネットワーキングアプリケーション257は、そのネットワークプレフィックスと関連付けられたルーティング情報を、そのネットワークプレフィックスについてのルーティングテーブル220および/またはフォワーディングテーブル230に格納されている既存のルーティング情報と比較する。
工程450において、ネットワーキングアプリケーション257は、必要に応じて、工程435において行われた比較に基づいて、そのネットワークプレフィックスと関連付けられたエントリ510に格納されているルーティング情報を更新する。例えば、工程435において、ネットワーキングアプリケーション257が、そのネットワークプレフィックスと関連付けられたルーティング情報が、ルーティングテーブル220の既存のエントリ510に格納されているルーティング情報には以前に含まれていないNHおよび対応するASNを含んでいることを決定した場合には、ネットワーキングアプリケーション257は、そのエントリ510に格納されているルーティング情報を、それらの追加のNHおよびASNを含むように更新する。
工程430に戻ると、ネットワーキングアプリケーション257が、部分一致が存在することを決定した場合には、方法400は工程440に進む。工程440において、ネットワーキングアプリケーション257は、そのネットワークプレフィックスと関連付けられたルーティング情報を、より短いネットワークプレフィックスと関連付けられたルーティング情報と比較して、例えば、一致が存在するか否か、または、類似性が閾値を超えているか否か等の結果を決定する。様々な実施形態において、工程440において行われる比較のタイプは、ネットワーキングアプリケーション257が保守的な圧縮技術または積極的な圧縮技術のいずれを実装しているかに応じて異なる。
保守的な圧縮技術では、工程440において、ネットワーキングアプリケーション257は、そのネットワークプレフィックスと関連付けられたルーティング情報が、より短いネットワークプレフィックスと関連付けられたルーティング情報と一致するか否かを決定する。一部の実施形態では、ネットワーキングアプリケーション257は、そのネットワークプレフィックスと関連付けられたルーティング情報と、より短いネットワークプレフィックスと関連付けられたルーティング情報とが、同じNHおよびASNを含む場合に、一致が存在することを決定する。それに加えて、またはその代わりに、一部の実施形態では、工程440において、ネットワーキングアプリケーション257は、他のタイプのルーティング情報が、そのネットワークプレフィックスおよびより短いネットワークプレフィックスの両方と関連付けられている場合に、一致が存在することを決定する。
例えば、図5Bに示されているように、ネットワーキングアプリケーション257は、ネットワークプレフィックス10.0.2.0/24:Aおよびより短いネットワークプレフィックス10.0.2.0/22:Aの両方が、特定の組のNH、ASN等を含むルーティング情報Aと関連付けられているので、ネットワークプレフィックス10.0.2.0/24:Aと関連付けられたルーティング情報と、より短いネットワークプレフィックス10.0.2.0/22:Aと関連付けられたルーティング情報との間に一致が存在することを決定する。その結果、方法400は工程460に進み、そこで、ネットワーキングアプリケーション257は、そのネットワークプレフィックスをルーティングテーブル220内において非アクティブとマークし、図5Cに示されているように、そのネットワークプレフィックスをフォワーディングテーブル230から除去することによって、フォワーディングテーブル230のコンテンツを圧縮する。或いは、工程425においてネットワークプレフィックスが最初に書き込まれなかった実施形態では、ネットワーキングアプリケーション257は、そのネットワークプレフィックスをルーティングテーブル220内において非アクティブとマークし、図5Cに示されているように、そのネットワークプレフィックスがフォワーディングテーブル230に書き込まれないことを決定することによって、フォワーディングテーブル230のコンテンツを圧縮する。
次に、工程470において、ネットワーキングアプリケーション257は、必要に応じて、そのネットワークプレフィックスと関連付けられたルーティング情報を含むように、より短いプレフィックスと関連付けられたルーティング情報を更新する。例えば、そのネットワークプレフィックスと関連付けられたルーティング情報が、より短いネットワークプレフィックスと関連付けられたルーティング情報に含まれていない1以上のNHおよび/またはASNを含む場合には、そのルーティング情報は、より短いネットワークプレフィックスについてのフォワーディングテーブル230のエントリ510と関連付けられ得る。しかし、工程440において、ネットワーキングアプリケーション257が保守的な圧縮技術を実装する場合には、そのネットワークプレフィックスと関連付けられたルーティング情報が、より短いネットワークプレフィックスについてのエントリ510に格納されているルーティング情報と既に一致しているので、より短いプレフィックスと関連付けられたルーティング情報は、工程470において更新されなくてよい。そして、方法400は終了する。
別の例では、図5Dに示されているように、ネットワーキングアプリケーション257が、別のネットワークプレフィックス(10.0.11.0/24:A)を受信して、そのネットワークプレフィックスおよび工程430において決定されたより短いネットワークプレフィックス(10.0.8.0/22:B)に、工程440の保守的な圧縮技術を適用する場合には、ネットワーキングアプリケーション257は、一致が存在しないことを決定する。具体的には、ネットワークプレフィックス10.0.11.0/24:Aと関連付けられたルーティング情報Aは、より短いネットワークプレフィックス10.0.8.0/22:Bと関連付けられたルーティング情報Bと一致しない。従って、方法400は工程450に進み、図5Eの上側に示されているように、工程460において、ネットワークプレフィックス10.0.11.0/24:Aはフォワーディングテーブル230から除去される。
それとは対照的に、ネットワーキングアプリケーション257が、工程440において積極的な圧縮技術を適用する場合には、ネットワーキングアプリケーション257は、そのネットワークプレフィックスと関連付けられたルーティング情報と、より短いネットワークプレフィックスと関連付けられたルーティング情報との間の類似性が、閾値レベルを超えているか否かを決定する。一部の実施形態では、そのネットワークプレフィックスと関連付けられたルーティング情報の閾値パーセンテージ(例えば、40%、60%、80%等)が、より短いネットワークプレフィックスとも関連付けられている場合、および/または、その逆の場合に、ネットワーキングアプリケーション257は、類似性が閾値レベルを超えていることを決定する。図5Dを参照すると、例えば、閾値レベルが60%に設定されている場合には、ネットワークプレフィックス10.0.11.0/24:Aと関連付けられた3つのNHおよびASNのうちの2つが、より短いネットワークプレフィックス10.0.8.0/22:Bとも関連付けられているので、および/または、より短いネットワークプレフィックス10.0.8.0/22:Bと関連付けられた3つのNHおよびASNのうちの2つが、ネットワークプレフィックス10.0.11.0/24:Aとも関連付けられているので、ネットワーキングアプリケーション257は、ネットワークプレフィックス10.0.11.0/24:Aと関連付けられたルーティング情報Aと、より短いネットワークプレフィックス10.0.8.0/22:Bと関連付けられたルーティング情報Bとの間の類似性が、閾値レベルを超えていることを決定する。
従って、工程440において、ネットワーキングアプリケーション257が積極的な圧縮技術および60%の閾値レベルを実装する場合には、方法400は工程460に進む。工程460において、ネットワーキングアプリケーション257は、ネットワークプレフィックス10.0.11.0/24:Aをルーティングテーブル220内において非アクティブとマークし、図5Eの下側に示されているように、そのネットワークプレフィックスをフォワーディングテーブル230から除去することによって、または、そのネットワークプレフィックスをフォワーディングテーブル230に書き込まないことによって、フォワーディングテーブル230のコンテンツを圧縮する。次に、方法400は工程470に進み、そこで、ネットワーキングアプリケーション257は、必要に応じて、そのネットワークプレフィックスと関連付けられたルーティング情報を含むように、より短いネットワークプレフィックスと関連付けられたルーティング情報を更新する。例えば、図5Dを参照すると、ネットワーキングアプリケーション257は、より短いネットワークプレフィックスと関連付けられたルーティング情報が、より長いネットワークプレフィックスと関連付けられたルーティング情報に含まれている特定のASNについてのNHを含まないことを決定し得る。従って、工程470において、ネットワーキングアプリケーション257は、そのASNと関連付けられているNHを含むように、より短いネットワークプレフィックスと関連付けられたルーティング情報を更新する。そして、方法400は終了する。
一方、ネットワーキングアプリケーション257が、工程440において積極的な圧縮技術および80%の閾値レベルを実装する場合には、ネットワークプレフィックス10.0.11.0/24:Aと関連付けられたルーティング情報Aと、より短いネットワークプレフィックス10.0.8.0/22:Bと関連付けられたルーティング情報Bとの間の類似性(3つのNHおよびASNのうちの2つがそれらのネットワークプレフィックスの両方と関連付けられているものとすると、約66%の類似性)は閾値レベルを超えない。従って、方法400は工程450に進む。
更に、ネットワーキングアプリケーション257が、ネットワークプレフィックス10.0.2.0/24:Aおよびより短いネットワークプレフィックス10.0.2.0/22:Aに関して、積極的な圧縮技術および60%の閾値レベルを実装する場合には、工程440において、ネットワーキングアプリケーション257は100%の類似性を決定するので、方法400は工程460に進む。次に、工程460において、ネットワーキングアプリケーション257は、ネットワークプレフィックス10.0.2.0/24をルーティングテーブル220内において非アクティブとマークし、図5Cに示されているように、そのネットワークプレフィックスをフォワーディングテーブル230から除去することによって、または、そのネットワークプレフィックスをフォワーディングテーブル230に書き込まないことによって、フォワーディングテーブル230のコンテンツを圧縮する。次に、方法400は工程470に進み、そこで、ネットワーキングアプリケーション257は、より短いネットワークプレフィックスと関連付けられたルーティング情報が更新される必要がないことを決定する。そして、方法400は終了する。
一部の実施形態では、工程440において、ネットワーキングアプリケーション257は、ルーティング情報内の1以上の項目に重み付けを適用することによって、積極的な圧縮技術を実装する。例えば、ネットワーキングアプリケーション257は、システムメモリ214からルーティングポリシーを読み出し、そのルーティングポリシーに基づいて、1以上のASNが1以上の他のASNよりも好適であることを決定し得る。次に、ネットワーキングアプリケーション257は、より好適なASNと関連付けられたルーティング情報(例えば、NH)に重み付けを適用してもよく、および/または、より好適でないASNに重み付けを適用してもよい。次に、ネットワーキングアプリケーション257が、そのネットワークプレフィックスおよびより短いネットワークプレフィックスの両方にルーティング情報が含まれていないことを決定した場合には、そのネットワークプレフィックスおよびより短いネットワークプレフィックスと関連付けられたルーティング情報を潰す/集約するか否かを決定する際に、重複していないルーティング情報に適用された重み付けが考慮され得る。
例えば、ネットワーキングアプリケーション257が、ASN3がASN1またはASN2よりも好適なASNであることを決定した場合には、ネットワーキングアプリケーション257は、ASN3と関連付けられたルーティング情報の各情報に重み付け(例えば、2の重み係数)を割り当て得る。次に、図5Dを参照すると、ネットワーキングアプリケーション257は、ネットワークプレフィックス10.0.11.0/24:Aと関連付けられたルーティング情報と、より短いネットワークプレフィックス10.0.8.0/22:Bと関連付けられたルーティング情報との間の類似性が50%であることを決定する。より具体的には、ASN3と関連付けられたNHは、実際上、(ASN3と関連付けられたルーティング情報に適用された重み係数に起因して)より短いネットワークプレフィックス10.0.8.0/22と関連付けられたルーティング情報に含まれていない2つのNHとしてカウントされるので、より短いネットワークプレフィックス10.0.8.0/22:Bは、より長いネットワークプレフィックス10.0.11.0/24:Aと関連付けられたルーティング情報の50%のみと関連付けられていることになる。
工程480に戻ると、ネットワーキングアプリケーション257が、そのネットワークプレフィックスがルーティングテーブル220およびフォワーディングテーブル230から取り消されることを決定した後、ネットワーキングアプリケーション257は、ルーティングテーブル220および/またはフォワーディングテーブル230内に、そのネットワークプレフィックスについての完全一致が存在するか否かを決定する。完全一致が存在する場合には、方法400は工程490に進み、そこで、ネットワーキングアプリケーション257は、そのネットワークプレフィックスに2以上のNHが関連付けられているか否かを決定する。
工程490において、そのネットワークプレフィックスに2以上のNHが関連付けられている場合には、ネットワーキングアプリケーション257は、1以上の基準(例えば、ルートの優先傾向および/またはルートの効率等)に基づいて、そのネットワークプレフィックスと関連付けられたNHに対してルート選択処理を行う。このルート選択処理に基づいて、そのネットワークプレフィックスと関連付けられた1以上のNHは、ルーティングテーブル220およびフォワーディングテーブル230から除去され得る。次に、方法400は上述の工程420に進む。ネットワーキングアプリケーション257が、そのネットワークプレフィックスに1つのNHのみが関連付けられていることを決定した場合には、工程494において、ネットワーキングアプリケーション257は、そのNHと関連付けられたエントリ510をルーティングテーブル220およびフォワーディングテーブル230から消去する。そして、方法400は終了する。
工程480において、ネットワーキングアプリケーション257が、そのネットワークプレフィックスが1以上のより長いネットワークプレフィックスをカバーしていることを決定した場合には、工程482において、ネットワーキングアプリケーション257は、取り消されるネットワークプレフィックスをルーティングテーブル220およびフォワーディングテーブル230から消去する。次に、工程484において、ネットワーキングアプリケーション257は、取り消されるネットワークプレフィックスによってカバーされているより長いネットワークプレフィックスを選択し、方法400は上述の工程420に進む。それに加えて、取り消されるネットワークプレフィックスが複数のより長いネットワークプレフィックスをカバーしている場合には、ネットワーキングアプリケーション257は、より長いネットワークプレフィックスの各々について、工程420〜470を行い得る。
図4の技術をフォワーディングテーブル230に関して説明したが、様々な実施形態において、この技術の一部または全てはオフラインで行われ得る。例えば、一部の実施形態では、工程410においてネットワークプレフィックスのリストが受信され、工程420〜480によってオフラインで圧縮され得る。更に、一部の実施形態では、この技術は、ネットワークプレフィックスのリストを最初に圧縮するためにオフラインで行われてもよく、更なるネットワークプレフィックスがネットワーキングアプリケーション257によって受信された際に、継続的に行われてもよい。
第2の圧縮パス
図6は、本発明の様々な実施形態による、第2の圧縮パスにおいてフォワーディングテーブル230を圧縮する方法の工程のフロー図を示す。この方法の工程を図1〜図3、図5A〜図5E、図7A〜図7B、および図8のシステムに関して説明するが、この方法の工程を任意の順序で行うよう構成された任意のシステムが本発明の範囲に含まれることが当業者には理解されよう。
図6に示されているように、方法600は工程610において開始し、そこで、ネットワーキングアプリケーション257は、ネットワークプレフィックスのリストおよびそれらのネットワークプレフィックスと関連付けられたルーティング情報を受信する。様々な実施形態において、ネットワークプレフィックスのリストは、上述の技術のうちの任意のものを用いて受信され得る。例えば、ネットワークプレフィックスのリストは、ゲートウェイサービスがネットワーク105内の新たな宛先ノードを見出したときに受信されてもよく、レジストリサービスから受信されてもよく、ルーティングテーブル220および/またはフォワーディングテーブル230等から読み出されてもよい。説明を明確にするために、図6の方法600を、図7Aの木構造500に示されている限られた数のネットワークプレフィックスを含むネットワークプレフィックスのリストに関して説明する。しかし、方法600は、任意の数のネットワークプレフィックスを格納する任意のデータ構造を用いて実装され得る。
様々な実施形態において、ネットワークプレフィックスのリストは、例えば、或るネットワークプレフィックスが割当プール内のどこにあるか、および、そのネットワークプレフィックスが割り当てられているか、予約されているか、または指定されているかを示すネットワークプレフィックス状態を含み得る。それに加えて、ネットワーキングアプリケーション257は、そのネットワークプレフィックスと関連付けられた他のタイプの情報(ネットワークプレフィックスの地理的特性(例えば、ネットワークプレフィックスと関連付けられた大陸、州等)および/またはネットワークプレフィックスと関連付けられたトラフィックポリシーを含む)を受信し得る。更に、ネットワーキングアプリケーション257は、そのネットワークプレフィックスが、割り当てられている、予約されている(例えば、非公開アドレス空間)、レガシー(例えば、行政機関に割り当てられている)等であるアドレス空間に含まれているか否かを示す情報を受信または決定し得る。
工程620において、ネットワーキングアプリケーション257は、そのネットワークプレフィックスのリストと関連付けられた或るサブネットを選択する。様々な実施形態において、ネットワーキングアプリケーション257は、決まったサイズを有する1以上のサブネット(例えば、/8サブネット、/16サブネット、/24サブネット等)を解析し、その解析に基づいてサブネットを選択する。例えば、ネットワーキングアプリケーション257は、/8サブネット(例えば、10.0.0.0/8)を解析して、その/8サブネットと関連付けられた中央値ネットワークプレフィックスを決定し得る。次に、ネットワーキングアプリケーション257は、中央値ネットワークプレフィックスと関連付けられたサブネットを、第2の圧縮パスの開始点として選択し得る。或いは、ネットワーキングアプリケーション257は、中央値ネットワークプレフィックスを決定して、そのネットワークプレフィックスから1ルーティングマスクビットを減算し、それに対応するサブネットを、第2の圧縮パスの開始点として用い得る。
一部の実施形態では、ネットワーキングアプリケーション257は、例えば、ネットワークプレフィックスにメタデータを関連付けることによって、特定の範囲のネットワークプレフィックスの圧縮を優先してもよく、および/または、特定の範囲のネットワークプレフィックスの圧縮を阻んでもよい。例えば、ネットワーキングアプリケーション257は、特定のインターネットサービスプロバイダ(ISP)、コンテンツプロバイダ、機関等と関連付けられたネットワークプレフィックスについては、そのネットワークプレフィックスと関連付けられた特定のタイプのルーティング情報が失われないように、圧縮を阻んでもよい。そのようなネットワークプレフィックスは、圧縮を適用せずに、フォワーディングテーブル230に渡され得る。それに加えて、ネットワーキングアプリケーション257は、特定のネットワークプレフィックスの範囲を、それらの範囲がRIRによってどのように割り当てられるかに基づいてグループ化し得る。例えば、1.0.0.0/8ネットワークプレフィックスは、大部分が、アジアの地域と関連付けられている。そのようなネットワークプレフィックスの範囲においては、トラフィックは、例えば、業務関係に基づいて、特定のISPに向かうよう影響され得るか、および/または、トラフィックは、特定のISPを迂回してルーティングされ得る。
次に、工程630において、ネットワーキングアプリケーション257は、工程610において受信されたネットワークプレフィックスのリストに含まれている或るネットワークプレフィックスを選択する。次に、工程640において、ネットワーキングアプリケーション257は、そのネットワークプレフィックスが、工程620において選択されたサブネットの範囲内にあるか否かを決定する。ネットワーキングアプリケーション257が、そのネットワークプレフィックスが選択されたサブネットの範囲内にあることを決定した場合には、方法600は工程644に進み、そこで、ネットワーキングアプリケーション257は、そのネットワークプレフィックスを候補リストに追加する。一方、ネットワーキングアプリケーション257が、そのネットワークプレフィックスが選択されたサブネットの範囲内にないことを決定した場合には、方法600は工程642に進み、そこで、ネットワーキングアプリケーション257は、そのネットワークプレフィックスを候補リストに追加しない。次に、方法600は工程650に進み、そこで、ネットワーキングアプリケーション257は、ネットワークプレフィックスのリストに含まれている最後のネットワークプレフィックスが処理されたか否かを決定する。ネットワーキングアプリケーション257が、ネットワークプレフィックスのリストに含まれている最後のネットワークプレフィックスがまだ処理されていないことを決定した場合には、方法600は工程630に戻り、そこで、ネットワーキングアプリケーション257は、別のネットワークプレフィックスを選択する。ネットワーキングアプリケーション257が、ネットワークプレフィックスのリストに含まれている最後のネットワークプレフィックスが処理されたことを決定した場合には、方法600は工程660に進む。
図7Aおよび図7Bに示されている例を参照すると、ネットワーキングアプリケーション257は、工程620において、10.0.1.0/18と関連付けられたサブネットを選択し得る。次に、工程630において、ネットワーキングアプリケーション257は、ネットワークプレフィックス10.0.9.0/24:Cを選択し、工程640において、ネットワークプレフィックス10.0.9.0/24:Cが、10.0.1.0/18と関連付けられたサブネットの範囲内にあることを決定し得る。その結果、工程644において、ネットワーキングアプリケーション257は、ネットワークプレフィックス10.0.9.0/24:Cを候補リストに追加する。次に、工程650において、ネットワーキングアプリケーション257は、最後のネットワークプレフィックスがまだ処理されていないことを決定し、方法600は工程630に戻る。工程630において、ネットワーキングアプリケーション257は、別のネットワークプレフィックス(例えば、10.0.11.0/24:A、10.0.8.0/23:A、または10.0.2.0/22:A)を選択し、工程640において、そのネットワークプレフィックスが、10.0.1.0/18と関連付けられたサブネットの範囲内にあるか否かを決定し得る。次に、方法600は工程642または工程644に進む。
一部の実施形態では、ネットワーキングアプリケーション257は、工程620〜工程650を繰り返して行う。例えば、ネットワーキングアプリケーション257は、工程620において、特定のサブネットを選択し、そのサブネットに関して工程630〜工程650を行い得る。ネットワークプレフィックスのリスト内の最後のネットワークプレフィックスに到達したら、ネットワーキングアプリケーション257は、そのサブネットと関連付けられたルーティングマスクから1ビットを減算し、そのより大きいサブネットに関して工程630〜工程650を再び行う。一部の実施形態では、この繰り返し処理は、そのネットワークプレフィックスのリストに関して実現可能な最も大きい合成スーパーネットが選択されて解析されるまで繰り返され得る。次に、方法600は工程660に進む。
次に、工程660において、ネットワーキングアプリケーション257は、候補リストに含まれているネットワークプレフィックスを、そのネットワークプレフィックスと関連付けられたルーティング情報に基づいてグループ化する。一部の実施形態では、ネットワーキングアプリケーション257は、各タイプのルーティング情報について、それぞれ異なるサブグループを生成する。例えば、図7Aおよび図7Bを参照すると、ネットワーキングアプリケーション257は、ルーティング情報Aについては第1のサブグループ、ルーティング情報Bについては第2のサブグループ、およびルーティング情報Cについては第3のサブグループを生成し得る。更に、この特定の例では、ネットワークプレフィックス10.0.11.0/24:A、10.0.8.0/23:A、および10.0.2.0/22:Aは第1のサブグループに追加され、ネットワークプレフィックス10.0.8.0/22:Bは第2のサブグループに追加され、ネットワークプレフィックス10.0.9.0/24:Cは第3のサブグループに追加される。
一部の実施形態では、ネットワークプレフィックスは、他のタイプの情報(例えば、そのネットワークプレフィックスの地理的特性および/またはそのネットワークプレフィックスと関連付けられたトラフィックポリシー等)に基づいてグループ化され得る。例えば、ネットワーキングアプリケーション257は、同じまたは類似のルーティング情報と関連付けられた、同じまたは類似の地理的位置と関連付けられた、および/または、同じまたは類似のトラフィックポリシーと関連付けられたネットワークプレフィックスをグループ化し得る。一部の実施形態では、図4および図5Eの積極的な圧縮技術に関して上述したように、類似性が閾値レベル(例えば、ルーティング情報、地理的情報、および/またはトラフィックポリシー間の類似性のパーセンテージ)を満たすか否かに基づいて、サブグループが決定され得る。
特定の例では、ネットワーキングアプリケーション257は、同じルーティング情報(例えば、ルーティング情報A)および同じ大陸(例えば、北アメリカ)の両方を共有しているネットワークプレフィックスのサブグループを生成し得る。それに加えて、この例では、ネットワーキングアプリケーション257は、同じサブグループに含まれるネットワークプレフィックスについて、それらのネットワークプレフィックスが類似のトラフィックポリシーと関連付けられることも要求し得る。他の実施形態では、ネットワーキングアプリケーション257は、同じルーティング情報および同じまたは類似のトラフィックポリシーの両方を共有しているネットワークプレフィックスのサブグループを生成し得る。
次に、工程670において、ネットワーキングアプリケーション257は、工程660において生成されたサブグループに基づいて、合成スーパーネットを生成する。一部の実施形態では、ネットワーキングアプリケーション257は、ネットワークプレフィックスの数が最も多いサブグループに基づいて、合成スーパーネットを生成する。例えば、図7Bに示されているように、ネットワーキングアプリケーション257は合成スーパーネット10.0.1.0/18:Aを生成し得るものであり、これは、ネットワークプレフィックスエントリの数を2だけ減らすことを可能にする。具体的には、ルーティング情報Aと関連付けられたネットワークプレフィックス10.0.11.0/24:A、10.0.8.0/23:A、および10.0.2.0/22:Aは、フォワーディングテーブル230から除去され、またはフォワーディングテーブル230にインストールされず、これらのネットワークプレフィックスをカバーする単一の合成スーパーネットエントリが生成され得る。
工程680において、ネットワーキングアプリケーション257は、合成スーパーネット(例えば、10.0.1.0/18:A)と、残りの圧縮されていないネットワークプレフィックスエントリ(例えば、10.0.8.0/22:Bおよび10.0.9.0/24:C)とをフォワーディングテーブル230にインストールする。従って、様々な実施形態において、合成スーパーネット(工程610において受信されたネットワークプレフィックスのリストに初期状態で存在していなかったスーパーネット)が生成され、および/または、フォワーディングテーブル230にインストールされる。更に、図7Aおよび図7Bに示されている例では、第2の圧縮パスの開始時に存在していた5つのネットワークプレフィックスエントリではなく、3つのみのネットワークプレフィックスエントリ(即ち、合成スーパーネットエントリ、および圧縮されていないネットワークプレフィックスエントリと関連付けられた2つのエントリ)がフォワーディングテーブル230にインストールされる。次に、方法600は工程690に進み、そこで、ネットワーキングアプリケーション257は、別のサブネットを圧縮するか否かを決定する。ネットワーキングアプリケーション257が、更なるサブネットを圧縮することを決定した場合には、方法600は工程620に戻る。ネットワーキングアプリケーション257が、更なるサブネットを圧縮しないことを決定した場合には、方法600は終了する。
図示を明確にするために、図5A〜図5E、図7A、および図7Bに示されている木構造500は、限られた数のエントリを含んでいる。しかし、様々な実施形態において、任意の数のエントリの有する木構造500および/またはネットワークプレフィックスのリストが、ネットワーキングアプリケーション257によって第1の圧縮パスおよび/または第2の圧縮パスを行うために処理され得る。一部の実施形態では、第2の圧縮パスは、第1の圧縮パスの結果に対して行われる。他の実施形態では、第2の圧縮パスは、図4および図5A〜図5Eに関して説明した第1の圧縮パスにおいてネットワーキングアプリケーション257が圧縮しなかったネットワークプレフィックスのリスト、木構造500、フォワーディングテーブル230等に対して行われ得る。
図6の技術をフォワーディングテーブル230に関して説明したが、様々な実施形態において、この技術の一部または全てはオフラインで行われ得る。例えば、一部の実施形態では、工程610においてネットワークプレフィックスのリストが受信され、工程620〜690によってオフラインで圧縮され得る。更に、一部の実施形態では、この技術は、ネットワークプレフィックスのリストを最初に圧縮するためにオフラインで行われてもよく、更なるネットワークプレフィックスがネットワーキングアプリケーション257によって受信された際に、継続的に行われてもよい。
図8は、本発明の様々な実施形態による、サブネットの一部と関連付けられたネットワークプレフィックスエントリを示す。図示されるように、工程670において生成された合成スーパーネットエントリは、サブネット10.0.2.0/22:A、サブネット10.0.8.0/23:A、およびサブネット10.0.11.0/24:Aと関連付けられたアドレス空間を含む。更に図示されているように、サブネット10.0.8.0/22:Bおよびサブネット10.0.9.0/24:Cと関連付けられた圧縮されてないネットワークプレフィックスは、別々のエントリとして残っている。
要約すると、第1の圧縮パスにおいて、ネットワーキングアプリケーションは、ネットワークプレフィックスを受信し、そのネットワークプレフィックスと関連付けられた部分一致を見出すために、ルーティングテーブルおよび/またはフォワーディングテーブルに対する探索を行う。部分一致が存在する場合には、ネットワーキングアプリケーションは、そのネットワークプレフィックスと関連付けられたルーティング情報を、部分一致(例えば、より短いネットワークプレフィックス)と関連付けられたルーティング情報と比較する。次に、そのネットワークプレフィックスと関連付けられたルーティング情報と、部分一致と関連付けられたルーティング情報との間の類似性に基づいて、ネットワーキングアプリケーションは、そのネットワークプレフィックスをフォワーディングテーブルから除去し、それに対応するルーティング情報を部分一致と関連付けられたエントリに集約することによって、フォワーディングテーブルが圧縮されるべきか否かを決定する。
更に、第2の圧縮パスにおいて、ネットワーキングアプリケーションは、或るサブネットを選択し、ネットワークプレフィックスのリストに含まれているどのネットワークプレフィックスが、選択されたサブネットの範囲内にあるかを決定する。次に、ネットワーキングアプリケーションは、結果のネットワークプレフィックスを、ルーティング情報に基づいてグループ化し、ネットワークプレフィックスの或るサブグループ(例えば、ネットワークプレフィックスの数が最も多いサブグループ)を選択する。最後に、ネットワーキングアプリケーションは、そのネットワークプレフィックスのサブグループと関連付けられた合成スーパーネットを生成し、その合成スーパーネットをフォワーディングテーブルにインストールする。
本開示の技術の少なくとも1つの長所は、フォワーディングテーブルによって記録されている宛先ノードと関連付けられたルーティング情報を捨てることなく、フォワーディングテーブルに含まれるエントリの数を低減できることである。その結果、フォワーディングテーブルにより多くのルートが格納され得るようになり、および/または、フォワーディングテーブルのメモリ要件が低減され得る。
説明の目的で、様々な実施形態の説明を示したが、これらは網羅的であることを意図したものではなく、開示された実施形態に限定することは意図しない。当業者には、記載された実施形態の範囲および趣旨から逸脱することなく、多くの修正および変形が自明である。
本実施形態の態様は、システム、方法、またはコンピュータプログラム製品として具現化され得る。従って、本開示の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウエア、常駐ソフトウェア、マイクロコード等を含む)、または、ソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態をとり得るものであり、それらの全てを、本明細書においては一般的に「モジュール」、または「システム」と称する。更に、本開示の態様は、具現化されたコンピュータ可読プログラムコードを有する1以上のコンピュータ可読媒体において具現化されたコンピュータプログラム製品の形態をとり得る。
1以上のコンピュータ可読媒体の任意の組合せが用いられ得る。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であり得る。コンピュータ可読記憶媒体は、例えば、電子、磁気、光、電磁、赤外線、もしくは半導体のシステム、装置、もしくはデバイス、またはそれらの任意の適切な組合せであり得るが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例(網羅的ではないリスト)としては、1以上のワイヤを有する電気的接続、ポータブルコンピュータのディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ(CD−ROM)、光ストレージ装置、磁気ストレージ装置、またはそれらの任意の適切な組合せが挙げられる。本明細書の文脈において、コンピュータ可読記憶媒体は、指示を実行するシステム、装置、またはデバイスによって用いられる、またはそれらに関連して用いられるためのプログラムを収容または格納可能な、任意の有体の媒体であり得る。
上記において、本開示の態様を、本開示の実施形態による方法、装置(システム)およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して説明した。フローチャートおよび/またはブロック図の各ブロック、並びに、フローチャートおよび/またはブロック図のブロックの組合せは、コンピュータプログラムの指示によって実装され得ることが理解されよう。これらのコンピュータプログラム指示は、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに供給されてマシンを生成し得るものであり、そのコンピュータまたは他のプログラマブルデータ処理装置のプロセッサによって実行される指示が、フローチャートおよび/またはブロック図の1または複数のブロックにおいて指定されている機能/動作の実装を可能にするようになっている。そのようなプロセッサは、汎用プロセッサ、専用プロセッサ、特定用途向けプロセッサ、またはフィールドプログラマブルであり得るが、それらに限定されない。
図面中のフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、および処理を示すものである。この点に関して、フローチャートまたはブロック図の各ブロックは、指定されている論理的機能を実装するための1以上の実行可能な指示を含むモジュール、セグメント、またはコードの一部を表し得る。なお、幾つかの別の実装例においては、ブロック内に記されている機能が、図面に記されている順序から外れて生じ得る。例えば、続けて示されている2つのブロックが、含まれる機能に応じて、実際には略並列に実行される場合もあり、または、それらのブロックが逆の順序で実行される場合もある。また、ブロック図および/またはフローチャートの各ブロック、並びに、ブロック図および/またはフローチャートのブロックの組合せは、指定された機能もしくは動作を行う専用ハードウェアに基づくシステムによって、または、専用ハードウェアとコンピュータ指示との組合せによって実装され得る。
上記は本開示の実施形態に向けられているが、本開示の基本的な範囲から逸脱することなく、本開示の他のおよび更なる実施形態も考案され得るものであり、本開示の範囲は添付の特許請求によって決定される。
以下、本発明の好ましい実施形態を項分け記載する。
実施形態1
プロセッサによって指示が実行された際に、該プロセッサに、
ネットワークプレフィックスのリストから、或るサブネットの範囲内にある複数のネットワークプレフィックスを選択する工程と、
前記複数のネットワークプレフィックスをルーティング情報に基づいてソートして、ネットワークプレフィックスの1以上のサブグループを生成する工程と、
ネットワークプレフィックスの前記1以上のサブグループに含まれているネットワークプレフィックスの第1のサブグループを選択する工程と、
ネットワークプレフィックスの前記第1のサブグループに基づいて、合成スーパーネットを生成する工程と
を行わせる指示を含むことを特徴とする、非一過性のコンピュータ可読記憶媒体。
実施形態2
ネットワークプレフィックスの前記1以上のサブグループに含まれているネットワークプレフィックスの各前記サブグループが、それぞれ異なる組のルーティング情報と関連付けられる、実施形態1記載の非一過性のコンピュータ可読記憶媒体。
実施形態3
各前記異なる組のルーティング情報が、1以上のネクストホップを含む、実施形態2記載の非一過性のコンピュータ可読記憶媒体。
実施形態4
ネットワークプレフィックスの前記1以上のサブグループを生成するために、前記複数のネットワークプレフィックスが、前記複数のネットワークプレフィックスと関連付けられた地理的領域および前記複数のネットワークプレフィックスと関連付けられたトラフィックポリシーのうちの少なくとも1つに従ってソートされる、実施形態1記載の非一過性のコンピュータ可読記憶媒体。
実施形態5
前記合成スーパーネットが、ネットワークプレフィックスの前記リストに含まれていないネットワークプレフィックスに対応する、実施形態1記載の非一過性のコンピュータ可読記憶媒体。
実施形態6
ネットワークプレフィックスの前記第1のサブグループに含まれている各ネットワークプレフィックスが、第1の組のルーティング情報と関連付けられており、
前記合成スーパーネットを前記第1の組のルーティング情報と関連付ける工程を更に含む、
実施形態1記載の非一過性のコンピュータ可読記憶媒体。
実施形態7
前記合成スーパーネットをフォワーディングテーブルのエントリに書き込み、該エントリを前記第1の組のルーティング情報と関連付ける工程を更に含む、実施形態6記載の非一過性のコンピュータ可読記憶媒体。
実施形態8
ネットワークプレフィックスの前記第1のサブグループを前記フォワーディングテーブルから除去する工程を更に含む、実施形態7記載の非一過性のコンピュータ可読記憶媒体。
実施形態9
ネットワークプレフィックスの前記第1のサブグループがルーティングテーブルから前記フォワーディングテーブルに書き込まれるべきではないことを決定する工程を更に含む、実施形態7記載の非一過性のコンピュータ可読記憶媒体。
実施形態10
ネットワークプレフィックスのリストから、或るサブネットの範囲内にある複数のネットワークプレフィックスを選択する工程と、
前記複数のネットワークプレフィックスをソートして、ネットワークプレフィックスの1以上のサブグループを生成する工程と、
ネットワークプレフィックスの前記1以上のサブグループに含まれているネットワークプレフィックスの第1のサブグループを選択する工程と、
ネットワークプレフィックスの前記第1のサブグループに基づいて、合成スーパーネットを生成する工程と
を含むことを特徴とする方法。
実施形態11
ネットワークプレフィックスの前記1以上のサブグループに含まれているネットワークプレフィックスの各前記サブグループが、それぞれ異なる組のルーティング情報と関連付けられる、実施形態10記載の方法。
実施形態12
ネットワークプレフィックスの前記第1のサブグループが、ネットワークプレフィックスの前記1以上のサブグループのうちの、ネットワークプレフィックスの数が最も多い前記第1のサブグループに基づいて選択される、実施形態10記載の方法。
実施形態13
ネットワークプレフィックスの前記リストを解析して中央値ネットワークプレフィックスを決定し、該中央値ネットワークプレフィックスに基づいて、前記サブネットを決定する工程を更に含む、実施形態10記載の方法。
実施形態14
前記合成スーパーネットが、ネットワークプレフィックスの前記リストに含まれていないネットワークプレフィックスに対応する、実施形態10記載の方法。
実施形態15
ネットワークプレフィックスの前記第1のサブグループに含まれている各ネットワークプレフィックスが、第1の組のネクストホップと関連付けられており、
前記合成スーパーネットを前記第1の組のネクストホップと関連付ける工程を更に含む、
実施形態10記載の方法。
実施形態16
前記合成スーパーネットをフォワーディングテーブルのエントリに書き込み、該エントリを前記第1の組のネクストホップと関連付ける工程を更に含む、実施形態15記載の方法。
実施形態17
ネットワークプレフィックスの前記第1のサブグループをフォワーディングテーブルから除去する工程、および、ネットワークプレフィックスの前記第1のサブグループが前記フォワーディングテーブルに書き込まれるべきではないことを決定する工程のうちの少なくとも1つを更に含む、実施形態10記載の方法。
実施形態18
ネットワークプレフィックスの前記1以上のサブグループに含まれているネットワークプレフィックスの第2のサブグループであって、前記合成スーパーネットとは異なる組のネクストホップと関連付けられているネットワークプレフィックスの前記第2のサブグループを、前記フォワーディングテーブルに書き込む工程を更に含む、実施形態17記載の方法。
実施形態19
ネットワーキング装置であって、
ネットワーキングアプリケーションを格納する第1のメモリと、
フォワーディングテーブルを格納する第2のメモリと、
前記第1のメモリおよび前記第2のメモリに結合されたプロセッサと
を含み、
前記ネットワーキングアプリケーションが、前記プロセッサによって実行された際に、該プロセッサを、
ネットワークプレフィックスのリストから、或るサブネットの範囲内にある複数のネットワークプレフィックスを選択する工程と、
前記複数のネットワークプレフィックスを、該複数のネットワークプレフィックスと関連付けられたルーティング情報に基づいてソートして、ネットワークプレフィックスの複数のサブグループを生成する工程と、
前記ネットワークプレフィックスの複数のサブグループに含まれているネットワークプレフィックスの第1のサブグループを選択する工程と、
ネットワークプレフィックスの前記第1のサブグループに基づいて、合成スーパーネットを生成する工程と、
前記合成スーパーネットを前記フォワーディングテーブルに書き込む工程と
を行うよう構成する
ことを特徴とするネットワーキング装置。
実施形態20
前記合成スーパーネットが、ネットワークプレフィックスの前記リストに含まれていないネットワークプレフィックスに対応し、
前記ネットワーキングアプリケーションが、前記プロセッサを、ネットワークプレフィックスの前記第1のサブグループを前記フォワーディングテーブルから除去する工程、または、ネットワークプレフィックスの前記第1のサブグループが前記フォワーディングテーブルに書き込まれるべきではないことを決定する工程を行うよう更に構成する、
実施形態19記載のネットワーキング装置。
100 ネットワークインフラ
105 通信ネットワーク
110 コンテンツサーバ
115 エンドポイント装置
120 制御サーバ
130 フィルソース
218 ファイル
220 ルーティングテーブル
230 フォワーディングテーブル
232 CAM
240 ネットワーキング装置
244 CPU
254 システムメモリ
257 ネットワーキングアプリケーション
317 制御アプリケーション
500 木構造
510 エントリ

Claims (21)

  1. プロセッサによって指示が実行された際に、該プロセッサに、
    ネットワークプレフィックスのリストから、或るサブネットの範囲内にある複数のネットワークプレフィックスを選択する工程と、
    前記複数のネットワークプレフィックスをルーティング情報に基づいてソートして、ネットワークプレフィックスの1以上のサブグループを生成する工程と、
    ネットワークプレフィックスの前記1以上のサブグループに含まれているネットワークプレフィックスの第1のサブグループを選択する工程と、
    ットワークプレフィックスの前記第1のサブグループに関連するルーティング情報間の類似性が、ある閾値レベルを超えると決定する工程であって、ネットワークプレフィックスの前記第1のサブグループに含まれる第1のネットワークプレフィックスに関連するルーティング情報は、ネットワークプレフィックスの前記第1のサブグループに含まれる第2のネットワークプレフィックスに関連するルーティング情報とは異なる工程と、
    前記決定に応答し、ネットワークプレフィックスの前記第1のサブグループに基づいて、合成スーパーネットを生成する工程と、
    前記合成スーパーネットをフォワーディングテーブルのエントリに書き込む工程と
    を行わせる指示を含むことを特徴とする、非一過性のコンピュータ可読記憶媒体。
  2. ネットワークプレフィックスの前記1以上のサブグループに含まれているネットワークプレフィックスの各前記サブグループが、それぞれ異なる組のルーティング情報と関連付けられる、請求項1記載の非一過性のコンピュータ可読記憶媒体。
  3. 各前記異なる組のルーティング情報が、1以上のネクストホップを含む、請求項2記載の非一過性のコンピュータ可読記憶媒体。
  4. プロセッサによって指示が実行された際に、該プロセッサに、
    ネットワークプレフィックスのリストから、或るサブネットの範囲内にある複数のネットワークプレフィックスを選択する工程と、
    前記複数のネットワークプレフィックスをルーティング情報に基づいてソートして、ネットワークプレフィックスの1以上のサブグループを生成する工程であって、ネットワークプレフィックスの前記1以上のサブグループを生成するために、前記複数のネットワークプレフィックスが、前記複数のネットワークプレフィックスと関連付けられた地理的領域および前記複数のネットワークプレフィックスと関連付けられたトラフィックポリシーのうちの少なくとも1つに従ってソートされる工程と、
    ネットワークプレフィックスの前記1以上のサブグループに含まれているネットワークプレフィックスの第1のサブグループを選択する工程と、
    ットワークプレフィックスの前記第1のサブグループに関連するルーティング情報間の類似性が、ある閾値レベルを超えると決定する工程であって、ネットワークプレフィックスの前記第1のサブグループに含まれる第1のネットワークプレフィックスに関連するルーティング情報は、ネットワークプレフィックスの前記第1のサブグループに含まれる第2のネットワークプレフィックスに関連するルーティング情報とは異なる工程と、
    前記決定に応答し、ネットワークプレフィックスの前記第1のサブグループに基づいて、合成スーパーネットを生成する工程と、
    前記合成スーパーネットをフォワーディングテーブルのエントリに書き込む工程と
    を行わせる指示を含むことを特徴とする、非一過性のコンピュータ可読記憶媒体。
  5. 前記合成スーパーネットが、ネットワークプレフィックスの前記リストに含まれていないネットワークプレフィックスに対応する、請求項1記載の非一過性のコンピュータ可読記憶媒体。
  6. ネットワークプレフィックスの前記第1のサブグループに含まれている各ネットワークプレフィックスが、第1の組のルーティング情報と関連付けられており、
    前記合成スーパーネットを前記第1の組のルーティング情報と関連付ける工程を更に含む、
    請求項1記載の非一過性のコンピュータ可読記憶媒体。
  7. 前記エントリを前記第1の組のルーティング情報と関連付ける工程を更に含む、請求項6記載の非一過性のコンピュータ可読記憶媒体。
  8. ネットワークプレフィックスの前記第1のサブグループを前記フォワーディングテーブルから除去する工程を更に含む、請求項7記載の非一過性のコンピュータ可読記憶媒体。
  9. ネットワークプレフィックスの前記第1のサブグループがルーティングテーブルから前記フォワーディングテーブルに書き込まれるべきではないことを決定する工程を更に含む、請求項7記載の非一過性のコンピュータ可読記憶媒体。
  10. ネットワークプレフィックスのリストから、或るサブネットの範囲内にある複数のネットワークプレフィックスを選択する工程と、
    前記複数のネットワークプレフィックスをソートして、ネットワークプレフィックスの1以上のサブグループを生成する工程と、
    ネットワークプレフィックスの前記1以上のサブグループに含まれているネットワークプレフィックスの第1のサブグループを選択する工程と、
    ットワークプレフィックスの前記第1のサブグループに関連するルーティング情報間の類似性が、ある閾値レベルを超えると決定する工程であって、ネットワークプレフィックスの前記第1のサブグループに含まれる第1のネットワークプレフィックスに関連するルーティング情報は、ネットワークプレフィックスの前記第1のサブグループに含まれる第2のネットワークプレフィックスに関連するルーティング情報とは異なる工程と、
    前記決定に応答し、ネットワークプレフィックスの前記第1のサブグループに基づいて、合成スーパーネットを生成する工程と、
    前記合成スーパーネットをフォワーディングテーブルのエントリに書き込む工程と
    を含むことを特徴とする方法。
  11. ネットワークプレフィックスの前記1以上のサブグループに含まれているネットワークプレフィックスの各前記サブグループが、それぞれ異なる組のルーティング情報と関連付けられる、請求項10記載の方法。
  12. ネットワークプレフィックスのリストから、或るサブネットの範囲内にある複数のネットワークプレフィックスを選択する工程と、
    前記複数のネットワークプレフィックスをソートして、ネットワークプレフィックスの1以上のサブグループを生成する工程であって、ネットワークプレフィックスの第1のサブグループが、ネットワークプレフィックスの前記1以上のサブグループのうちの、ネットワークプレフィックスの数が最も多い前記第1のサブグループに基づいて選択される工程と、
    ネットワークプレフィックスの前記1以上のサブグループに含まれているネットワークプレフィックスの前記第1のサブグループを選択する工程と、
    ットワークプレフィックスの前記第1のサブグループに関連するルーティング情報間の類似性が、ある閾値レベルを超えると決定する工程であって、ネットワークプレフィックスの前記第1のサブグループに含まれる第1のネットワークプレフィックスに関連するルーティング情報は、ネットワークプレフィックスの前記第1のサブグループに含まれる第2のネットワークプレフィックスに関連するルーティング情報とは異なる工程と、
    前記決定に応答し、ネットワークプレフィックスの前記第1のサブグループに基づいて、合成スーパーネットを生成する工程と、
    前記合成スーパーネットをフォワーディングテーブルのエントリに書き込む工程と
    を含むことを特徴とする方法。
  13. ネットワークプレフィックスのリストを解析してネットワークプレフィックスのリスト内の中央値ネットワークプレフィックスを決定する工程と、
    ネットワークプレフィックスの第1のサブグループを選択する開始点として、該中央値ネットワークプレフィックスに関連付けられたサブネットを決定する工程と、
    ットワークプレフィックスの前記リストから、或るサブネットの範囲内にある複数のネットワークプレフィックスを選択する工程と、
    前記複数のネットワークプレフィックスをソートして、ネットワークプレフィックスの1以上のサブグループを生成する工程と、
    ネットワークプレフィックスの前記1以上のサブグループに含まれているネットワークプレフィックスの前記第1のサブグループを選択する工程と、
    ットワークプレフィックスの前記第1のサブグループに関連するルーティング情報間の類似性が、ある閾値レベルを超えると決定する工程であって、ネットワークプレフィックスの前記第1のサブグループに含まれる第1のネットワークプレフィックスに関連するルーティング情報は、ネットワークプレフィックスの前記第1のサブグループに含まれる第2のネットワークプレフィックスに関連するルーティング情報とは異なる工程と、
    前記決定に応答し、ネットワークプレフィックスの前記第1のサブグループに基づいて、合成スーパーネットを生成する工程と、
    前記合成スーパーネットをフォワーディングテーブルのエントリに書き込む工程と
    を含むことを特徴とする方法。
  14. 前記合成スーパーネットが、ネットワークプレフィックスの前記リストに含まれていないネットワークプレフィックスに対応する、請求項10記載の方法。
  15. ネットワークプレフィックスの前記第1のサブグループに含まれている各ネットワークプレフィックスが、第1の組のネクストホップと関連付けられており、
    前記合成スーパーネットを前記第1の組のネクストホップと関連付ける工程を更に含む、
    請求項10記載の方法。
  16. 前記合成スーパーネットをフォワーディングテーブルのエントリに書き込み、該エントリを前記第1の組のネクストホップと関連付ける工程を更に含む、請求項15記載の方法。
  17. ネットワークプレフィックスの前記第1のサブグループをフォワーディングテーブルから除去する工程、および、ネットワークプレフィックスの前記第1のサブグループが前記フォワーディングテーブルに書き込まれるべきではないことを決定する工程のうちの少なくとも1つを更に含む、請求項10記載の方法。
  18. ネットワークプレフィックスの前記1以上のサブグループに含まれているネットワークプレフィックスの第2のサブグループであって、前記合成スーパーネットとは異なる組のネクストホップと関連付けられているネットワークプレフィックスの前記第2のサブグループを、前記フォワーディングテーブルに書き込む工程を更に含む、請求項17記載の方法。
  19. ネットワーキング装置であって、
    ネットワーキングアプリケーションを格納する第1のメモリと、
    フォワーディングテーブルを格納する第2のメモリと、
    前記第1のメモリおよび前記第2のメモリに結合されたプロセッサと
    を含み、
    前記ネットワーキングアプリケーションが、前記プロセッサによって実行された際に、該プロセッサを、
    ネットワークプレフィックスのリストから、或るサブネットの範囲内にある複数のネットワークプレフィックスを選択する工程と、
    前記複数のネットワークプレフィックスを、該複数のネットワークプレフィックスと関連付けられたルーティング情報に基づいてソートして、ネットワークプレフィックスの複数のサブグループを生成する工程と、
    前記ネットワークプレフィックスの複数のサブグループに含まれているネットワークプレフィックスの第1のサブグループを選択する工程と、
    ットワークプレフィックスの前記第1のサブグループに関連するルーティング情報間の類似性が、ある閾値レベルを超えると決定する工程であって、ネットワークプレフィックスの前記第1のサブグループに含まれる第1のネットワークプレフィックスに関連するルーティング情報は、ネットワークプレフィックスの前記第1のサブグループに含まれる第2のネットワークプレフィックスに関連するルーティング情報とは異なる工程と、
    前記決定に応答し、ネットワークプレフィックスの前記第1のサブグループに基づいて、合成スーパーネットを生成する工程と、
    前記合成スーパーネットを前記フォワーディングテーブルのエントリに書き込む工程と
    を行うよう構成する
    ことを特徴とするネットワーキング装置。
  20. 前記合成スーパーネットが、ネットワークプレフィックスの前記リストに含まれていないネットワークプレフィックスに対応し、
    前記ネットワーキングアプリケーションが、前記プロセッサを、ネットワークプレフィックスの前記第1のサブグループを前記フォワーディングテーブルから除去する工程、または、ネットワークプレフィックスの前記第1のサブグループが前記フォワーディングテーブルに書き込まれるべきではないことを決定する工程を行うよう更に構成する、
    請求項19記載のネットワーキング装置。
  21. 前記類似性がある閾値レベルを超えると決定する工程が、ネットワークプレフィックスの前記第1のサブグループに関連するネクストホップ(NH)および自律システム番号(ASN)の少なくとも1つを比較する工程を含む、請求項1記載の非一過性のコンピュータ可読記憶媒体。
JP2019508253A 2016-08-15 2017-08-14 フォワーディングテーブルの圧縮 Active JP6808018B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/237,541 US10263890B2 (en) 2016-08-15 2016-08-15 Synthetic supernet compression
US15/237,541 2016-08-15
PCT/US2017/046823 WO2018035064A1 (en) 2016-08-15 2017-08-14 Compressing forwarding tables

Publications (2)

Publication Number Publication Date
JP2019525660A JP2019525660A (ja) 2019-09-05
JP6808018B2 true JP6808018B2 (ja) 2021-01-06

Family

ID=59700229

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019508253A Active JP6808018B2 (ja) 2016-08-15 2017-08-14 フォワーディングテーブルの圧縮

Country Status (12)

Country Link
US (2) US10263890B2 (ja)
EP (1) EP3497892B1 (ja)
JP (1) JP6808018B2 (ja)
KR (1) KR102212247B1 (ja)
CN (1) CN109804605B (ja)
AU (2) AU2017312955B2 (ja)
BR (1) BR112019003145A2 (ja)
CA (1) CA3033779C (ja)
DK (1) DK3497892T3 (ja)
MX (1) MX2019001810A (ja)
SG (1) SG11201901260RA (ja)
WO (1) WO2018035064A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9806897B2 (en) 2013-09-17 2017-10-31 Cisco Technology, Inc. Bit indexed explicit replication forwarding optimization
US10218524B2 (en) 2013-09-17 2019-02-26 Cisco Technology, Inc. Bit indexed explicit replication for layer 2 networking
WO2018038532A1 (ko) * 2016-08-23 2018-03-01 한국전자통신연구원 무선랜에서 저전력 모드를 지원하는 통신 노드의 동작 방법
US10630743B2 (en) 2016-09-23 2020-04-21 Cisco Technology, Inc. Unicast media replication fabric using bit indexed explicit replication
US10637675B2 (en) * 2016-11-09 2020-04-28 Cisco Technology, Inc. Area-specific broadcasting using bit indexed explicit replication
US10164794B2 (en) 2017-04-28 2018-12-25 Cisco Technology, Inc. Bridging of non-capable subnetworks in bit indexed explicit replication
CN111639752B (zh) * 2020-05-29 2023-09-26 北京百度网讯科技有限公司 用于训练超网络的方法、装置、设备以及存储介质
US11595302B2 (en) * 2020-09-23 2023-02-28 Ciena Corporation Controlling routing behavior during router table-memory exhaustion events
WO2022150052A1 (en) * 2021-01-05 2022-07-14 Vmware, Inc. Compression of route tables using key values
US11770338B2 (en) * 2021-01-28 2023-09-26 Arista Networks, Inc. Increasing multi-path size using hierarchical forwarding equivalent classes
CN113194030B (zh) * 2021-05-06 2021-12-24 中国人民解放军国防科技大学 一种基于网络前缀切分的多路径报文转发方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963924B1 (en) * 1999-02-01 2005-11-08 Nen-Fu Huang IP routing lookup scheme and system for multi-gigabit switching routers
WO2004017597A1 (en) * 2002-08-14 2004-02-26 Nokia Corporation Layered compression architecture for multi-hop header compression
US7453883B1 (en) * 2003-04-14 2008-11-18 Cisco Technology, Inc. Method for compressing route data in a router
US7487255B2 (en) * 2003-08-14 2009-02-03 Hewlett-Packard Development Company, L.P. Routing cache management with route fragmentation
JP2005184482A (ja) * 2003-12-19 2005-07-07 Kddi Corp Ipアドレスに地理範囲情報を有するパケットの経路制御装置、経路制御プログラム及び経路制御方法
FI20060563A0 (fi) * 2006-06-07 2006-06-07 Nokia Corp Staattista reititystä käyttäville verkoille tarkoitettu pakettienluokitusmenetelmä
US7903666B1 (en) * 2008-03-31 2011-03-08 Extreme Networks, Inc. Method and system for compressing route entries in a route table based on equal-cost multi-paths (ECMPs) matches
US7936764B1 (en) 2008-04-09 2011-05-03 Extreme Networks, Inc. Method for optimizing IP route table size through IP route aggregation
US8717793B2 (en) * 2009-05-26 2014-05-06 Arizona Board Of Regents, For And On Behalf Of Arizona State University Longest prefix match internet protocol content addressable memories and related methods
US8780926B2 (en) * 2009-12-01 2014-07-15 Polytechnic Institute Of New York University Updating prefix-compressed tries for IP route lookup
US9077669B2 (en) * 2010-06-14 2015-07-07 Dynamic Invention Llc Efficient lookup methods for ternary content addressable memory and associated devices and systems
US20130003732A1 (en) * 2011-06-29 2013-01-03 Brocade Communications Systems, Inc. Abstracting accepting interface to optimize parent and child entry lookup for bidirectional pim
US9008092B2 (en) * 2011-10-07 2015-04-14 Cisco Technology, Inc. Route prefix aggregation using reachable and non-reachable addresses in a computer network
US8848707B2 (en) * 2012-09-26 2014-09-30 Avaya Inc. Method for IP longest prefix match using prefix length sorting
CN103780490B (zh) * 2012-10-17 2018-03-30 中兴通讯股份有限公司 一种更新路由查找树的方法及装置
CN104348733B (zh) * 2013-07-26 2018-07-03 华为技术有限公司 内容名压缩方法及装置
CN105409169B (zh) * 2014-05-30 2019-01-18 华为技术有限公司 一种多路径转发规则的构造方法、装置及系统
JP6446891B2 (ja) * 2014-07-29 2019-01-09 富士通株式会社 通信制御装置、通信制御方法および通信制御プログラム
US10798000B2 (en) * 2014-12-22 2020-10-06 Arista Networks, Inc. Method and apparatus of compressing network forwarding entry information
CN105208622B (zh) * 2015-08-26 2019-05-10 江苏林洋能源股份有限公司 一种高效动态自动维护的路由表结构的路由选择方法及路由表管理方法
US20170155587A1 (en) * 2015-11-30 2017-06-01 Netflix, Inc Forwarding table compression

Also Published As

Publication number Publication date
KR20190033631A (ko) 2019-03-29
WO2018035064A1 (en) 2018-02-22
MX2019001810A (es) 2019-08-21
EP3497892A1 (en) 2019-06-19
AU2017312955A1 (en) 2019-03-07
CN109804605B (zh) 2021-06-04
US10263890B2 (en) 2019-04-16
CN109804605A (zh) 2019-05-24
DK3497892T3 (da) 2021-12-13
US10778581B2 (en) 2020-09-15
CA3033779C (en) 2021-05-25
SG11201901260RA (en) 2019-03-28
EP3497892B1 (en) 2021-10-06
AU2017312955B2 (en) 2020-04-02
US20190109788A1 (en) 2019-04-11
BR112019003145A2 (pt) 2019-06-11
KR102212247B1 (ko) 2021-02-04
JP2019525660A (ja) 2019-09-05
US20180048566A1 (en) 2018-02-15
AU2020204340A1 (en) 2020-07-16
CA3033779A1 (en) 2018-02-22

Similar Documents

Publication Publication Date Title
JP6808018B2 (ja) フォワーディングテーブルの圧縮
EP2869537B1 (en) Using interest messages with payload to configure network nodes in named data networks
EP2869535B1 (en) Carrying instructions in packets in a named data network
CN105376160B (zh) 在信息中心网络上基于声誉的指令处理
US20170302552A1 (en) Network monitoring and control system and method
US8737210B2 (en) Load balancing SCTP associations using VTAG mediation
EP2996309B1 (en) Interest keep alives at intermediate routers in a ccn
EP2863614A1 (en) Method and apparatus for a named data network within an autonomous system
US10148572B2 (en) Method and system for interest groups in a content centric network
EP3384642B1 (en) Forwarding table compression
EP3043527B1 (en) Resource allocation using ccn manifests
JP6858328B2 (ja) パーソナルユーザデバイスおよびデータ分配デバイスを用いたストレージシステムの実現
EP3446460B1 (en) Content routing in an ip network that implements information centric networking

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200304

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200803

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200930

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201023

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201208

R150 Certificate of patent or registration of utility model

Ref document number: 6808018

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250