JP5918361B2 - 解決による経路指定 - Google Patents

解決による経路指定 Download PDF

Info

Publication number
JP5918361B2
JP5918361B2 JP2014514480A JP2014514480A JP5918361B2 JP 5918361 B2 JP5918361 B2 JP 5918361B2 JP 2014514480 A JP2014514480 A JP 2014514480A JP 2014514480 A JP2014514480 A JP 2014514480A JP 5918361 B2 JP5918361 B2 JP 5918361B2
Authority
JP
Japan
Prior art keywords
message
pointer
label
network node
content item
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
JP2014514480A
Other languages
English (en)
Other versions
JP2014519294A (ja
Inventor
バルベツロ,マツテオ
メモン,グラーム
リマク,イフイカ
Original Assignee
アルカテル−ルーセント
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 アルカテル−ルーセント filed Critical アルカテル−ルーセント
Publication of JP2014519294A publication Critical patent/JP2014519294A/ja
Application granted granted Critical
Publication of JP5918361B2 publication Critical patent/JP5918361B2/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/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5058Service discovery by the service manager
    • 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/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/106Mapping addresses of different types across networks, e.g. mapping telephone numbers to data network addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4541Directories for service discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/59Network arrangements, protocols or services for addressing or naming using proxies for addressing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

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

Description

本明細書において開示される様々な例示的実施形態は、一般にネットワークルーティングに関する。
インターネットはその創造以来、一般のコンピュータ対コンピュータの通信を可能にするシステムから、無数のサービスおよびコンテンツを世界中のユーザに提供するための機能へと徐々に拡大してきている。この進化の一部として、サポートサービスおよびコンテンツ中心の用途を向上するために高度なインフラストラクチャが追加された。
今日ではドメインネームシステム(DNS)は、要求されたコンテンツの場所を決定するためのディレクトリサービスとして働く。様々なホストがDNSによって別名として「ドメイン名」を確立する。次いでユーザは様々なDNSサーバにコンタクトし、要求されたコンテンツが記憶されサービスされる、ドメイン名によって識別される、ホストのアドレスを取り出す。その後にユーザは、コンテンツを取り込むまたは消費するために、取り出されたアドレスを通じてホストにコンタクトする。
様々な例示的実施形態はコンピュータによってネットワーク内のコンテンツを要求するための命令で符号化された機械可読記憶媒体に関し、機械可読記憶媒体は以下の1つまたは複数を含む:要求するコンテンツアイテムを決定するための命令、コンテンツアイテムに関連付けられたポインタを決定するための命令、ポインタを含む要求メッセージを生成するための命令、要求メッセージを少なくとも1つのネットワークノードに送信するための命令、および少なくとも1つのネットワークノードからコンテンツアイテムを受信するための命令。
コンテンツアイテムに関連付けられたポインタを決定するための命令が、コンテンツアイテムに基づいてポインタを生成するための命令を含む、様々な代替実施形態が述べられる。コンテンツアイテムに基づいてポインタを生成するための命令が、コンテンツアイテムに基づいてハッシュ値を生成するための命令を含む、様々な代替実施形態が述べられる。コンテンツアイテムに基づいてハッシュ値を生成するための命令が、コンテンツアイテムの名前に基づいてハッシュ値を生成するための命令を含む、様々な代替実施形態が述べられる。ポインタを含む要求メッセージを生成するための命令が、宛先アドレスとしてメッセージにポインタを挿入するための命令を含む、様々な代替実施形態が述べられる。
様々な例示的実施形態は、コンピュータによってネットワーク内のコンテンツを発行するための命令で符号化された機械可読記憶媒体に関し、機械可読記憶媒体は以下の1つまたは複数を含む:発行するコンテンツアイテムを決定するための命令、コンテンツアイテムに基づいてポインタを生成するための命令、ポインタを含む発行メッセージを生成するための命令、および発行メッセージを少なくとも1つのネットワークノードに送信するための命令。
様々な代替実施形態はさらに以下の1つまたは複数を含む:少なくとも1つのネットワークノードから要求メッセージを受信するための命令であって、要求メッセージがポインタを含み、要求元装置を示す、受信するための命令、ポインタがコンテンツアイテムに関連付けられていることを判定するための命令、およびコンテンツアイテムを要求元装置に送信するための命令。
ポインタが要求メッセージのアドレスフィールドに含まれる、様々な代替実施形態が述べられる。コンテンツアイテムに基づいてポインタを生成するための命令が、コンテンツアイテムに基づいてハッシュ値を生成するための命令を含む、様々な代替実施形態が述べられる。コンテンツアイテムに基づいてハッシュ値を生成するための命令が、コンテンツアイテムの名前に基づいてハッシュ値を生成するための命令を含む、様々な代替実施形態が述べられる。
様々な例示的実施形態は、ネットワークノードによりネットワークにおいてコンテンツ要求を経路指定する方法に関し、方法は以下の1つまたは複数を含む:ネットワークノードにおいて要求メッセージを受信するステップであって、要求メッセージがポインタを含む、受信するステップ、ネットワークノードがポインタに関連付けられているかどうかを判定するステップ、およびネットワークノードがポインタに関連付けられている場合は、ポインタに関連付けられたラベルを決定し、ポインタを含む変更されたメッセージを生成するように要求メッセージを変更し、変更されたメッセージを少なくとも1つの他のネットワークノードに送信するステップ。
様々な例示的実施形態は、ネットワーク内でコンテンツ要求を経路指定するための解決システムに関し、解決システムは以下の1つまたは複数を含む:ルーティング情報を記憶するためのルーティングテーブルと、複数の相関関係レコードを記憶するための相関関係記憶装置であって、各相関関係レコードがポインタおよび少なくとも1つのラベルを識別する、相関関係記憶装置と、要求メッセージを受信するための受信器インターフェースであって、要求メッセージが要求されたポインタを含む、受信器インターフェースと、メッセージを送信するための送信器インターフェースと、検索メッセージ変更部であって、要求されたポインタを識別する相関関係レコードの位置を特定し、相関関係レコードによって識別された少なくとも1つのラベルの選択されたラベルを選択し、選択されたラベルを含む変更されたメッセージを生成するように要求メッセージを変更するための、検索メッセージ変更部と、メッセージルータであって、ルーティング情報および変更されたメッセージに基づいてネットワークノードを決定し、変更されたメッセージを送信器インターフェースを通じてネットワークノードに転送するための、メッセージルータ。
様々な例示的実施形態は、ネットワークノードによりネットワークにおいてコンテンツ要求を経路指定するための命令で符号化された機械可読記憶媒体に関し、機械可読記憶媒体は以下の1つまたは複数を含む:ネットワークノードにおいて要求メッセージを受信するための命令であって、要求メッセージがポインタを含む、受信するための命令、ネットワークノードがポインタに関連付けられているかどうかを判定するための命令、およびネットワークノードがポインタに関連付けられている場合は、ポインタに関連付けられたラベルを決定し、ラベルを含む変更されたメッセージを生成するように要求メッセージを変更し、変更されたメッセージを少なくとも1つの他のネットワークノードに送信するための命令。
ネットワークノードがポインタに関連付けられているかどうかを判定するステップが以下の1つまたは複数を含む、様々な代替実施形態が述べられる:ネットワークノードに関連付けられたプレフィックスを決定するステップ、およびプレフィックスがポインタの少なくとも一部分と一致するかどうかを判定するステップ。ネットワークノードがポインタに関連付けられているかどうかを判定するステップが、プレフィックスがネットワーク内においてポインタに対する最長の一致するプレフィックスであるかどうかを判定するステップをさらに含む、様々な代替実施形態が述べられる。ポインタが要求メッセージのアドレスフィールドに含まれ、ラベルが変更されたメッセージのアドレスフィールドに含まれる、様々な代替実施形態が述べられる。要求メッセージおよび変更されたメッセージの少なくとも1つがネットワーク層パケットである、様々な代替実施形態が述べられる。変更されたメッセージを少なくとも1つの他のネットワークノードに送信するステップが、変更されたメッセージを異なるプレフィックスに関連付けられた異なるノードに向けて送信するステップを含み、異なるプレフィックスがラベルの少なくとも一部分と一致する、様々な代替実施形態が述べられる。ポインタが複数のラベルに関連付けられ、ポインタに関連付けられラベルを決定するステップが、複数のラベルからラベルを選択するステップを含む、様々な代替実施形態が述べられる。ポインタがコンテンツアイテムに対する名前のハッシュである、様々な代替実施形態が述べられる。
様々な代替実施形態は以下の1つまたは複数を含む:ネットワークノードにおいて発行メッセージを受信するステップであって、発行メッセージがポインタおよびラベルを含む、受信するステップと、発行メッセージからポインタおよびラベルを抽出するステップと、ポインタおよびラベルを一緒にメモリに保持するステップ。ここで、ポインタに関連付けられたラベルを決定するステップはメモリからポインタおよびラベルを読み出すステップを含む。
様々な例示的実施形態は、ネットワークノードによりネットワークにおいてコンテンツを発行する方法に関し、方法は以下の1つまたは複数を含む:ネットワークノードにおいて発行メッセージを受信するステップであって、発行メッセージがポインタを含む、受信するステップと、ポインタに関連付けられるようにラベルを生成するステップと、変更されたメッセージを生成するように発行メッセージを変更するステップであって、変更されたメッセージがラベルを含む、変更するステップと、変更されたメッセージを少なくとも1つの他のネットワークノードに送信するステップ。
様々な例示的実施形態は、ネットワーク内でコンテンツを発行するための発行システムに関し、発行システムは以下の1つまたは複数を含む:ルーティング情報を記憶するためのルーティングテーブルと、発行メッセージを受信するための受信器インターフェースであって、発行メッセージがポインタを含む、受信器インターフェースと、メッセージを送信するための送信器インターフェースと、ポインタに関連付けるためのラベルを生成するためのラベル計算器と、変更されたメッセージを生成するように発行メッセージを変更するための発行メッセージ変更部であって、変更されたメッセージがラベルを含む、発行メッセージ変更部と、メッセージルータであって、ルーティング情報および変更されたメッセージに基づいてネットワークノードを決定し、変更されたメッセージを送信器インターフェースを通じてネットワークノードに転送するための、メッセージルータ。
様々な例示的実施形態は、ネットワークノードによりネットワークにおいてコンテンツを発行するための命令で符号化された機械可読記憶媒体に関し、機械可読記憶媒体は以下の1つまたは複数を含む:ネットワークノードにおいて発行メッセージを受信するための命令であって、発行メッセージがポインタを含む、受信するための命令、ポインタに関連付けられるラベルを生成するための命令、変更されたメッセージを生成するように発行メッセージを変更するための命令であって、変更されたメッセージがラベルを含む、変更するための命令、および変更されたメッセージを少なくとも1つの他のネットワークノードに送信するための命令。
ポインタに関連付けられるべきラベルを生成するステップが以下の1つまたは複数を含む様々な代替実施形態が述べられる:ネットワークノードに関連付けられたプレフィックスを決定するステップ、およびラベル内にポインタの少なくとも一部分およびプレフィックスの少なくとも一部分を含めるステップ。ポインタが発行メッセージおよび変更されたメッセージの少なくとも1つのアドレスフィールドに含まれる、様々な代替実施形態が述べられる。変更されたメッセージを少なくとも1つの他のネットワークノードに送信するステップが、ポインタに基づいて少なくとも1つの他のネットワークノードを選択するステップを含む、様々な代替実施形態が述べられる。ポインタに基づいて少なくとも1つの他のネットワークノードを選択するステップが、以下の1つまたは複数を含む様々な代替実施形態が述べられる:少なくとも1つの他のノードに関連付けられたプレフィックスを決定するステップ、およびプレフィックスがポインタの少なくとも一部分と一致することを判定するステップ。ポインタがコンテンツアイテムに対する名前のハッシュである、様々な代替実施形態が述べられる。発行メッセージおよび変更されたメッセージの少なくとも1つがネットワーク層パケットである、様々な代替実施形態が述べられる。
様々な例示的実施形態をより良く理解するために添付の図面を参照する。
コンテンツを分配するための例示のネットワークを示す図である。 コンテンツを発行するための例示のメッセージ交換を示す図である。 コンテンツを要求するための例示のメッセージ交換を示す図である。 コンテンツを届けるための例示のメッセージ交換を示す図である。 コンテンツ経路指定されたメッセージを処理するための例示のネットワークノードを示す図である。 発行メッセージを処理し送信するための例示のシステムを示す図である。 受信した発行メッセージを処理し、検索メッセージを解決するための例示のシステムを示す図である。 コンテンツ経路指定されたメッセージを処理するための例示の方法を示す図である。 発行メッセージを処理し送信するための例示の方法を示す図である。 受信した発行メッセージを処理し、検索メッセージを解決するための例示の方法を示す図である。
ドメインネームシステム(DNS)サーバの使用は、データのレプリケーションおよび移動を不便にし、コンテンツが異なるホストにおいてアクセスされる場合は、ユーザに異なるドメイン名を通信しなければならず、またはDNSレコードは代わりに新しいホストを指し示すように更新されなければならない。DNSパラダイムにおいては様々な他の制限が本質的にある。
一方、コンテンツを中心とするネットワーク(CCN)は、DNSパラダイムにおける多くの問題を解決する。CCNパラダイムの下ではコンテンツは、その名前に基づいてネットワークから要求することができる。しかしCCNは、実用的な応用を可能にするには対処しなければならないいくつかの問題を呈する。例えばCCNパラダイムはしばしばスケーラビリティが乏しいことによる影響を受ける。したがって、コンテンツが存在するホストによってではなく、その名前または他の規定する特性によってコンテンツを要求できる、スケーラブルなシステムの必要性がある。
次に図面を参照すると、同様な番号は同様な構成要素またはステップを指し、様々な例示的実施形態の広範な態様が開示される。
図1は、コンテンツを分配するための例示のネットワーク100を示す。例えばネットワーク100は、インターネットなどのコンピュータのパケット交換型ネットワークとすることができる。したがってネットワーク100は、ISP A110、ISP B120、およびISP Cなどの複数のインターネットサービスプロバイダ(ISP)を含むことができる。ネットワーク100はまた、サーバ140などのいくつかのコンテンツサーバ、およびシステム150などのエンドユーザシステムを含むことができる。
ISP110、120、130は、ネットワーク100内でメッセージを経路指定するための1つまたは複数の装置を含むことができる。さらにISP110、120、130は直接に、または1つまたは複数の中間ノードを通して、互いに通信することができる。ネットワーク100の構成は簡略化された例であり、ネットワーク100は数多くの他のISP(図示せず)を含み得ることが明らかであろう。さらに示される接続は例示であり、他のトポロジーが可能である。例えばISP A110およびISP B120は、ISP C130を通じてのみ通信してもよい。
ISP110、120、130内の1つまたは複数の装置は、記憶装置135などの1つまたは複数の記憶装置へのアクセスを有することができる。記憶装置135は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、および/または同様な記憶媒体などの、機械可読記憶媒体を含むことができる。記憶装置135の動作については、図2−4に関連して以下でさらに詳しく述べる。
サーバ140は、コンテンツに対する要求を受信し、その後に要求されたコンテンツを要求元装置に転送するように構成された装置とすることができる。したがってサーバ140は、パーソナルコンピュータ、ラップトップ、タブレット、サーバ、ブレード、携帯電話、および/またはネットワークを通してコンテンツを供給できる他の装置とすることができる。
サーバ140は、記憶装置145を含むかあるいはそれへのアクセスを有することができる。記憶装置145は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、および/または同様な記憶媒体などの、機械可読記憶媒体を含むことができる。記憶装置145は、コンテンツアイテム147などの1つまたは複数のコンテンツアイテムを記憶することができる。コンテンツアイテム147は、例えばテキストファイル、htmlファイル、音声ファイル、動画ファイルなどの任意のデータとすることができる。
装置150は、ネットワーク100に対してコンテンツアイテムを要求し受信するように構成された装置とすることができる。したがって装置150は、パーソナルコンピュータ、ラップトップ、タブレット、サーバ、ブレード、携帯電話、および/またはネットワークを通してコンテンツを消費し得る任意の他の装置とすることができる。
各ISPは1つまたは複数のアドレスプレフィックスに関連付けることができ、各プレフィックスはISPにアタッチされた1つまたは複数の装置のデバイスアドレスの一部分を表す。例えばISP A110はアドレスプレフィックス0x68xxに関連付けられる。したがってISP Aにアタッチされた1つまたは複数の装置は、0x68で始まるアドレスをもつことができる。例としてサーバ140のアドレスは0x687cであり、アドレス0x687cはプレフィックス0x68xxをもつ。同様に装置150はアドレス0x1088を有し、これは装置150がアタッチされたISP B120の0x10xxというプレフィックスと一致する。さらにISP C130は、ISP C130に関連付けられた、0x20xxというプレフィックスと一致する1つまたは複数の装置に接続することができる。
加入者ネットワーク100の構成要素について述べたので、次に図2−4を参照してネットワーク100の動作について述べる。
図2は、コンテンツを発行するための例示のメッセージ交換200を示す。サーバ140は、コンテンツアイテム147を発行すべきであることを決定することによって開始する。例えばユーザは、コンテンツアイテム147がネットワーク100を通して利用可能にされるべきであることを示すことができる。次いでサーバは、コンテンツアイテム147に対する「ポインタ」の計算に進むことができる。本明細書で用いられるポインタという用語は、コンテンツアイテムの場所に基づかない、コンテンツアイテムに対する永続的な識別子を指す。様々な実施形態ではサーバ140は、コンテンツアイテム145の名前または他の特性に対してハッシュ機能を行ってポインタを生成することができる。例えばサーバは、SHA−1アルゴリズムを用いて、コンテンツアイテム147の名前「XYZ」を処理してハッシュ値「0x2077」を生成することができる。
サーバ140は、「発行メッセージ」を構築することによって先に進むことができる。本明細書で用いられる発行メッセージとは、識別されたコンテンツアイテムを発行したいとの要望を示す、他の装置に送信するための任意のメッセージとすることができる。様々な実施形態によれば発行メッセージは、パケットを発行メッセージとして識別するヘッダを含む、ネットワーク層(または「レイヤ3」)パケットとして実現することができる。サーバ140は、ポインタ「0x2077」を含む発行メッセージ210を構築することができる。様々な実施形態ではポインタは、パケットヘッダの宛先アドレスフィールドおよび/または専用ポインタフィールド内に含めることができる。サーバ140は、発行メッセージ210が構築された後に、さらなる処理のために発行メッセージ210をISP A110に転送することができる。
ISP A110(またはその中の装置)は、発行メッセージ210を受信した後に、データを発行する要求として発行メッセージ210を識別することができる。次いでISP A110はデータに対する「ラベル」を計算する。本明細書で用いられるラベルという用語は、コンテンツアイテムに対する場所に依存する識別子を指す。様々な実施形態ではISP A110は、コンテンツアイテムのポインタ、およびISP110のアドレスプレフィックスに基づいてラベルを生成することができる。例えばISP A110は、単にポインタ内のいくつかの上位ビットをそれ自体のプレフィックスで置き換えることができる。それによりISP A110は、そのプレフィックス(「0x68xx」)の上位ビットと、ポインタ(「0x2077」)の残りのビットとに基づいて、ラベル「0x6877」を生成することができる。
ISP A110は、コンテンツアイテムに対するラベルを生成した後に、ラベルを含むように発行メッセージ210を変更することができる。例えばISP A110は、パケットヘッダの専用ラベルフィールド内にラベルを挿入することができる。次いでISP A110は、ポインタに基づいて発行メッセージ220を経路指定することができる。様々な実施形態では、ルーティングテーブルまたは同様なデータ構造体を用いて、ISP A110は、ポインタ「0x2077」に対する最長の知られているプレフィックス一致に基づいて次のホップの位置を特定することができる。例えばISP A110は、ISP C130が、ポインタ「0x2077」に対する最長の知られているプレフィックス一致であると判定することができる。したがってISP A110は、発行メッセージ220をISP C130に転送することができる。
様々な代替実施形態ではサーバ140は、代わりにポインタおよびラベルを生成することができる。サーバ140は、ISP A110に関して述べたのと同様なやり方で、サーバ140および/またはISP A110のプレフィックスに基づいてラベルを生成することができる。これらの実施形態ではISP A110は単に、発行メッセージをISP C130に向けて転送するだけでよい。当業者には、サーバ140がポインタを計算できるようにするための、例示のネットワーク100の構成要素および動作に対する様々な他の変更が明らかであろう。
ISP C130(またはその中の装置)は、発行メッセージ220を受信するとすぐに、それがポインタ「0x2077」に対する最長のプレフィックス一致であることを判定することができる。例えばISP C130は、より長い一致するプレフィックスに関連付けられた他の知られている装置はないことを判定することができる。したがってISP C130は、コンテンツアイテム147に対するリゾルバであると見なすことができる。次いでISP C130は、ポインタとラベルの間の相関関係を記憶装置135に記憶(230)することができる。この時点でコンテンツアイテム147は発行され、ネットワーク100に参加する他の装置から要求することができる。
図3は、コンテンツを要求するための例示のメッセージ交換300を示す。コンテンツアイテム147が発行された後のある時点で、装置150はそれがコンテンツアイテム147を要求すべきであることを決定することができる。例えばユーザは、特定のファイルがダウンロードされるべきであることを示すことができる。装置150は、コンテンツアイテム147に対するポインタを判定することによって開始することができる。様々な実施形態ではポインタは、例えばWebページまたは他の装置(図示せず)によって装置150に供給することができる。様々な実施形態では装置150は、追加としてまたは代替としてポインタを算出することができる。例えば装置150は、SHA−1アルゴリズムを用いてコンテンツアイテム147の名前「XYZ」を処理して、コンテンツアイテム147に対するポインタである、ハッシュ値「0x2077」を生成することができる。
装置150は、「検索メッセージ」を生成することによって先に進む。本明細書で用いられる検索メッセージとは、識別されたコンテンツアイテムを受信したいとの要望を示す、他の装置に送信するための任意のメッセージとすることができる。様々な実施形態によれば検索メッセージは、パケットを検索メッセージとして識別するヘッダを含む、ネットワーク層(または「レイヤ3」)パケットとして実現することができる。装置150はポインタ「0x2077」を含む検索メッセージ310を構築する。様々な実施形態ではポインタは、パケットヘッダの宛先アドレスフィールドおよび/または専用ポインタフィールド内に含むことができる。装置150は、検索メッセージ310が構築された後に、さらなる処理のために検索メッセージ310をISP A110に転送することができる。
ISP B120(またはその中の装置)は、検索メッセージ310を受信するとすぐに、それが検索メッセージであり、ポインタに対する最長のプレフィックス一致に関連付けられた装置に経路指定されるべきであると判定することができる。様々な実施形態ではISP B120は、ルーティングテーブルまたは同様なデータ構造体を用いて、ポインタ「0x2077」に対する最長の知られているプレフィックス一致に基づいて、次のホップの位置を特定することができる。例えばISP B120は、ISP C130がポインタ「0x2077」に対する最長の知られているプレフィックス一致であると判定することができる。したがってISP B120は、検索メッセージ320をISP C130に転送することができる。
ISP C130(またはその中の装置)は、検索メッセージ320を受信するとすぐに、それがポインタ「0x2077」に対する最長のプレフィックス一致であると判定することができる。例えばISP C130は、より長い一致するプレフィックスに関連付けられた他の知られている装置はないと判定することができる。したがってISP C130は、ポインタ「0x2077」に対するリゾルバである。ISP C130は、記憶装置135内でポインタ「0x2077」を探索し(330)、ラベル「0x6877」が用いられるべきであることを示す結果340を取り出す。その後にISP C130は、ラベルを含むように検索メッセージ320を変更する。例えばISP C110はラベルを、パケットヘッダの専用ラベルフィールドに挿入する、かつ/または(もしあれば)アドレスフィールド内のポインタを置き換えることができる。次いでISP C130は、今度はポインタの代わりにラベルに基づいて、検索メッセージ350を転送することができる。したがってISP C130は、ISP A110がラベル「0x6877」に対する最長の知られているプレフィックス一致であると判定し、それにしたがって検索メッセージ350を転送することができる。
ISP A110(またはその中の装置)は、検索メッセージ350を受信するとすぐに、やはりポインタとの最長の知られているプレフィックス一致に基づいて、検索メッセージ360をサーバ140に転送することができる。代替としてISP A110は、サーバ140と、ポインタ「0x6877」および/またはラベル「0x2077」との対応を記憶することができる。このような場合はISP A110は、ラベルの最長のプレフィックス一致ではなく、この対応に基づいてメッセージを転送することができる。様々な実施形態ではサーバ140は、コンテンツアイテム147に対するラベルについての知識をもたなくてもよい。これらの実施形態ではISP A110は、サーバ140に転送する前に検索メッセージ360からラベルを除去することができる。
サーバ140が検索メッセージ360を受信した後に、サーバ140はメッセージ360を処理し、要求されたコンテンツアイテム145を届けることができる。
図4は、コンテンツを届けるための例示のメッセージ交換400を示す。サーバ140がメッセージ360などのコンテンツアイテムに対する要求を受信した後に、サーバ140は、例えば要求メッセージに含まれるファイル名、ポインタ、またはラベルを用いることによって、要求されたファイルを識別することができる。ポインタの場合はサーバ140は、それが前に発行したポインタとコンテンツアイテムの間の対応を記憶することができる。ラベルの場合はサーバ140は、下位ビット(例えば、ISP A110によって変更されなかったビット)を用いて、要求されたコンテンツアイテムを識別することができる。用いられる方法に関わらずサーバ140は、記憶装置145からコンテンツアイテム147を取り出す(410)。
サーバ140がコンテンツアイテム147を受信した(420)後に、サーバ140は、コンテンツアイテム147を装置150に届けるための「応答メッセージ」430を構築することができる。本明細書で用いられる応答メッセージは、要求されたコンテンツアイテムを含む、他の装置に送信するための任意のメッセージとすることができる。様々な実施形態によれば検索メッセージは、パケットを応答メッセージとして識別するヘッダを含む、ネットワーク層(または「レイヤ3」)パケットとして実現することができる。応答メッセージ430は、要求元装置150のアドレスすなわち「0x1088」を含むことができる。このようなアドレスは、要求メッセージに含めておくことができる。応答メッセージ430が構築された後に、サーバ140はメッセージ430をISP A110に送信することができる。
ISP A110(またはその中の装置)は、メッセージ430を受信するとすぐに、そのメッセージが応答メッセージであり、ポインタに対する最長のプレフィックス一致に関連付けられた装置に経路指定されるべきであると判定することができる。様々な実施形態ではISP A110は、ルーティングテーブルまたは同様なデータ構造体を用いて、アドレス「0x1088」に対する最長の知られているプレフィックス一致に基づいて次のホップの位置を特定することができる。例えばISP A110は、ISP B120がアドレス「0x1088」に対する最長の知られているプレフィックス一致であると判定することができる。したがってISP A110は、応答メッセージ440をISP B120に転送することができる。
同様にISP B120(またはその中の装置)は、メッセージ440を受信するとすぐに、そのメッセージが応答メッセージであり、ポインタに対する最長のプレフィックス一致に関連付けられた装置に経路指定されるべきであると判定することができる。それにしたがってISP B120は、応答メッセージ450を装置150に転送することができる。その後に装置150は、応答450からコンテンツアイテム147を抽出し、コンテンツアイテム147を表示あるいは使用することができる。
本明細書の例はISPによって行われる機能について述べているが、これらの機能はISPの制御下あるいはISPに関連付けられた1つまたは複数のコンピュータ、および/または他の装置によって行い得ることが明らかであろう。さらにこのような機能をもたらすために、各ISP内で様々な構成を利用できる。例えばポインタおよび/またはラベルは、ISPの1つまたは複数の境界ルータに、ISPの集中型データベースに、および/または内部ルータによって形成された分散型ハッシュテーブルに記憶することができる。このような実装形態の詳細は当業者には明らかであろう。
またネットワーク100のISP110、120、130はそれぞれ特定の機能を行うものとして述べられたが、様々な実施形態ではISPのそれぞれはまた他のISP110、120、130に関連して述べられた機能を行い得ることが明らかであろう。例えばISP A110は他に、プレフィックス「0x68xx」に一致するポインタに対するリゾルバとして働くことができ、またはISP B120は他に、装置150によって発行されたコンテンツアイテムに対する発行者として働くことができる。様々な実施形態では各ISP110、120、130は、本明細書で述べられるいずれ機能を行うことも可能となり得る。
図5は、コンテンツ経路指定されたメッセージを処理するための例示のネットワークノード500を示す。ノード500は、ISP110、120、130などのISP、またはそれらの1つまたは複数のノードに対応することができる。様々な実施形態ではノード500は、ルータまたは他のネットワーク装置とすることができる。ノード500は、受信器510、メッセージインタープリタ520、ルーティングテーブル530、発行モジュール540、解決モジュール550、メッセージルータ560、および送信器570を含むことができる。
受信器510は、他のノードからメッセージを受信するように構成された、ハードウェアおよび/または機械可読記憶媒体上に符号化された実行可能命令を備える、インターフェースとすることができる。例えば受信器510は、ネットワークインターフェース、または例えばイーサネット(登録商標)および/またはWiFiインターフェースなどのネットワークインターフェースの一部とすることができる。このような他のノードは、ノード500と同様な装置を含むことができる。さらに受信器510は、ノード500の単一の構成要素として示されるが、ノード500は複数の異なる装置からメッセージを受信するためのいくつかのインターフェースを含み得ることが理解されるべきである。
メッセージインタープリタ520は、受信器510を通じてメッセージを受け取り、メッセージの内容を解釈するように構成された、ハードウェアおよび/または機械可読記憶媒体上の実行可能命令を含むことができる。まずメッセージインタープリタ520は、ノード500がメッセージの受信者であるかどうかを判定することができる。メッセージインタープリタ520は、メッセージの受信者を調べる、またはルーティングテーブル530を用いてノード500がメッセージに含まれるポインタまたはラベルに対する最長のプレフィックス一致であるかどうかを判定することができる。例えばメッセージがアドレスフィールド内にポインタ「0x2077」を含む、あるいはメッセージがポインタ「0x2077」に基づいて経路指定されるべきであることを示す場合は、メッセージインタープリタはルーティングテーブル530を参照し、他のノードがポインタに対するより長いプレフィックス一致を有すると判定することができる。
メッセージに対するより長いプレフィックス一致がノード500に知られている場合は、メッセージインタープリタ520はさらに、例えばメッセージに対する適切なヘッダフィールドを調べることによって、メッセージが発行メッセージであるか他のメッセージであるかを判定することができる。メッセージが発行メッセージの場合は、メッセージインタープリタ520はさらなる処理のためにメッセージを発行モジュール540に渡すことができる。そうでない場合はメッセージインタープリタ520は、適切なノードに転送できるようにメッセージを直接、メッセージルータ560に渡す。一方、メッセージインタープリタ520が、ノード500がメッセージに対する最長のプレフィックス一致であると判定した場合は、メッセージインタープリタ520はさらなる処理のためにメッセージを解決モジュール550に渡すことができる。
ルーティングテーブル530は、メッセージの経路指定に関するデータを記憶することができる任意の機械可読媒体とすることができる。したがってルーティングテーブル530は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、および/または同様な記憶媒体などの、機械可読記憶媒体を含むことができる。様々な実施形態ではルーティングテーブルは、いくつかのプレフィックス、および関連する次のホップ装置またはポートを含むことができる。
発行モジュール540は、適切なときに発行メッセージに対して発行動作を行うように構成された、ハードウェアおよび/または機械可読記憶媒体上の実行可能命令を含むことができる。例えば発行モジュール540は、発行されたコンテンツアイテムに対するラベルを計算し、ラベルを発行メッセージに挿入し、変更されたメッセージを転送することができる。例示の発行モジュールについては、図6に関連して以下でより詳しく述べる。
解決モジュール550は、ポインタとラベルの間の相関関係を記憶し、記憶された相関関係に基づいて適切な検索メッセージを再経路指定するように構成された、ハードウェアおよび/または機械可読記憶媒体上の実行可能命令を含むことができる。例示の解決モジュールについては、以下で図7に関連してより詳しく述べる。
メッセージルータ560は、様々なメッセージに対して適切な次のホップを決定し、それにしたがってこれらのメッセージを送信器570を通じて送信するように構成された、ハードウェアおよび/または機械可読記憶媒体上の実行可能命令を含むことができる。したがってメッセージルータは、各メッセージのアドレスフィールド、または様々な実施形態ではパケットがそれらの値の1つに基づいて経路指定されるべきことを示す場合はポインタまたはラベルフィールドを、調べることができる。次いでメッセージルータ560は、ルーティングテーブル530に基づいて各メッセージの次のホップを決定することができる。例えば様々な実施形態ではメッセージルータ560は、ルーティングテーブル530を読み出して、メッセージを経路指定するために用いられるアドレス、ラベル、および/またはポインタに対する最長の知られているプレフィックス一致である次のホップを決定することができる。最後にメッセージルータ560は、メッセージを送信器570を通じて適切な次のホップに転送することができる。
送信器570は、他のノードからメッセージを送信するように構成された、ハードウェアおよび/または機械可読記憶媒体上に符号化された実行可能命令を備える、インターフェースとすることができる。例えば送信器570は、ネットワークインターフェース、または例えばイーサネットおよび/またはWiFiインターフェースなどのネットワークインターフェースの一部とすることができる。このような他のノードは、ノード500と同様な装置を含むことができる。さらに、受信器510はノード500の単一の構成要素として示されるが、ノード500は複数の異なる装置からメッセージを送信するためのいくつかのインターフェースを含み得ることが理解されるべきである。さらに、受信器510および送信器570は同じインターフェース装置の一部であってもよいことが理解されるべきである。
図6は、発行メッセージを処理し送信するための例示のシステム600を示す。システム600はノード500の発行モジュール540に対応することができ、異なるノード内に配備することができ、または独立のノードとして配備することができる。システム600は、ポインタ抽出部610、ラベル計算器620、発行コンテンツ記憶装置630、および発行メッセージ変更部640を含むことができる。
ポインタ抽出部610は、発行メッセージからポインタを抽出するように構成された、ハードウェアおよび/または機械可読記憶媒体上の実行可能命令を含むことができる。このようなポインタはメッセージの専用ポインタフィールドまたは他のフィールドに配置することができる。ポインタ抽出部610は、このような発行メッセージを、他の装置から、またはシステム600が配備されているノードの他の構成要素から受信することができる。システム600がノード500の発行モジュール540に対応する様々な実施形態では、ポインタ抽出部610は発行メッセージをメッセージインタープリタ520から受け取ることができる。
ラベル計算器620は、ポインタ抽出部610によって位置を特定されたポインタと関連して用いられるラベルを決定するように構成された、ハードウェアおよび/または機械可読記憶媒体上の実行可能命令を含むことができる。例えばラベル計算器は、ポインタ、およびシステム600および/またはシステム600が配備されたノードに関連付けられたプレフィックスに基づいて、ラベルを生成することができる。様々な実施形態ではラベル計算器は、ポインタの上位ビットを適切なプレフィックスで置き換えることによってラベルを生成することができる。したがってラベルは後に、システム600および/またはシステム600が配備されたノードの位置を特定するために用いることができる。様々な実施形態ではラベル計算器は、後で用いるためにラベル、ポインタ、および/または発行元装置を一緒に発行コンテンツ記憶装置に記憶することができる。
発行コンテンツ記憶装置630は、ラベル、ポインタ、および/または発行元装置の間の関連を記憶することができる任意の機械可読媒体とすることができる。したがって発行コンテンツ記憶装置630は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、および/または同様な記憶媒体などの、機械可読記憶媒体を含むことができる。
発行メッセージ変更部640は、発行メッセージにラベルを挿入するように構成された、ハードウェアおよび/または機械可読記憶媒体上の実行可能命令を含むことができる。例えば発行メッセージ変更部640は、ラベル計算器620によって生成されたラベルを、メッセージヘッダ内の専用ラベルフィールドに挿入することができる。発行メッセージ変更部640は、メッセージを変更した後に、他の装置またはシステム600が配備されたノード内の他の構成要素にメッセージを転送することができる。システム600がノード500の発行モジュール540に対応する様々な実施形態では、発行メッセージ変更部640は変更されたメッセージをメッセージルータ560に渡すことができる。
図7は、受信した発行メッセージを処理し、検索メッセージを解決するための例示のシステム700を示す。システム700は、ノード500の解決モジュール550に対応することができ、異なるノード内に配備することができ、または独立のノードとして配備することができる。システム700は、メッセージ分類部710、ラベルおよびポインタ抽出部720、相関関係マネージャ730、相関関係記憶装置740、および検索メッセージ変更部750を含むことができる。
メッセージ分類部710は、受け取ったメッセージのメッセージタイプを判定するように構成された、ハードウェアおよび/または機械可読記憶媒体上の実行可能命令を含むことができる。メッセージ分類部は、他の装置から、またはシステム700が配備されたノードの他の構成要素からメッセージを受け取ることができる。システム700がノード500の解決モジュール550に対応する様々な実施形態では、メッセージ分類部710は、メッセージインタープリタ520から発行メッセージを受け取ることができる。メッセージ分類部710は、メッセージの少なくとも一部分を読み出して、それが発行メッセージであるか検索メッセージであるかを判定することができる。例えばメッセージ分類部710は、メッセージからメッセージタイプフィールドを読み出すことができる。メッセージが発行メッセージの場合は、メッセージ分類部720はメッセージをラベルおよびポインタ抽出部720に渡すことができる。一方、メッセージが検索メッセージの場合は、メッセージ分類部はメッセージを検索メッセージ変更部750に渡すことができる。
ラベルおよびポインタ抽出部720は、発行メッセージからラベルおよびポインタの対を抽出するように構成された、ハードウェアおよび/または機械可読記憶媒体上の実行可能命令を含むことができる。例えばラベルおよびポインタ抽出部720は、発行メッセージの専用ラベルおよびポインタフィールドからデータを読み出すことができる。次いでラベルおよびポインタ抽出部は、この情報を相関関係マネージャ730に渡すことができる。
相関関係マネージャ730は、後で用いるためにラベルおよびポインタを相関関係記憶装置に記憶するように構成された、ハードウェアおよび/または機械可読記憶媒体上の実行可能命令を含むことができる。様々な実施形態では相関関係マネージャ730は単に、ラベルおよびポインタを一緒に相関関係レコードに記憶することができる。様々な代替実施形態では、ポインタは複数のラベルに関係付けることができ(コンテンツアイテムに対する複数の場所を示す)、相関関係マネージャは各相関関係レコードにいくつかのラベルを記憶することができる。
相関関係記憶装置740は、ラベルとポインタの間の関連を記憶することができる任意の機械可読媒体とすることができる。したがって相関関係記憶装置740は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、および/または同様な記憶媒体などの、機械可読記憶媒体を含むことができる。このようなポインタとラベルの間の関連は、例えば1対1の関係、または1対多数の関係とすることができる。
検索メッセージ変更部750は、ポインタに対する適切なラベルを決定し、その後にラベル含むように検索メッセージを変更するように構成された、ハードウェアおよび/または機械可読記憶媒体上の実行可能命令を含むことができる。まず検索メッセージ変更部750は検索メッセージによって運ばれるポインタに関連付けられた、相関関係記憶装置740内の相関関係レコードの位置を特定することができる。次に検索メッセージ変更部750は、相関関係レコードからラベルを読み出すことができる。相関関係レコードが複数のラベルを含んでいる場合は、検索メッセージ変更部は、例えばそれぞれのラベルに関連付けられたサーバまでの距離、またはそのサーバ上の現在のロードに基づいて適切なラベルを選択することができる。使用するラベルを検索メッセージ変更部750が決定した後に、検索メッセージ変更部はラベルをメッセージに挿入し、メッセージがラベルに基づいて経路指定されるべきであることを示す。例えば検索メッセージ変更部750は、メッセージのアドレスフィールドにラベルを挿入することができ、またはメッセージの専用ラベルフィールドにラベルを挿入し、メッセージを経路指定するためにラベルが用いられるべきであることを別のフィールドにおいて示すことができる。
メッセージを変更した後に検索メッセージ変更部750は、他の装置またはシステム700が配備されたノード内の他の構成要素にメッセージを転送することができる。システム700がノード500の解決モジュール550に対応する様々な実施形態では、検索メッセージ変更部750は変更されたメッセージをメッセージルータ560に渡すことができる。
図8は、コンテンツ経路指定されたメッセージを処理するための例示の方法800を示す。方法800は例えば、メッセージインタープリタ520、発行モジュール540、解決モジュール550、および/またはメッセージルータ560などのネットワークノード500の構成要素によって行うことができる。
方法800は、ステップ810で開始しステップ820に進むことができ、ノード500はメッセージを受信することができる。次いでステップ830ではノード500は、受信したメッセージが転送されるべきかどうかを判定することができる。様々な実施形態ではノード500は、メッセージが応答メッセージである場合、またはより長いプレフィックス一致が別の知られているノードにおいて存在する場合は、メッセージを転送するべきであると判定する。メッセージが転送されるべきである場合は、方法800はステップ840に進む。
ステップ840ではノード500は、例えばメッセージヘッダのメッセージタイプフィールドを調べることによって、メッセージが発行メッセージであるかどうかを判定する。メッセージが発行メッセージの場合は、方法800はステップ850に進む。ステップ850ではノード500は、メッセージに対して発行処理を行うことができる。例えばノード500は、ラベルを計算し、ラベルを発行メッセージに挿入し、メッセージを他の装置に転送することができる。発行処理のための例示の方法については、図9に関連して以下でより詳しく述べる。次いで方法800はステップ880で終了する。
一方、ノード500がステップ840で、メッセージが発行メッセージではないと判定した場合は、方法はステップ860に進むことができる。ステップ860ではノード500は単に、経路指定目的のために用いられるべきであることをメッセージが示す、ポインタ、ラベル、またはアドレスに対する最長のプレフィックス一致に基づいて、メッセージを他の装置に転送することができる。次いで方法800はステップ880に進んで終了する。
ステップ830においてノード500が、メッセージはそのまま転送されるべきでないと判定した場合は、方法800はステップ870に進む。例えばノード500が、ノード500はメッセージを経路指定するために用いられているポインタに対する最長のプレフィックス一致であると判定した場合は、ノード500はメッセージはその現在の状態で転送されるべきでないと判定することができる。ステップ870ではノード500は、メッセージに対して追加の解決処理を行うことができる。例えばメッセージが発行メッセージの場合は、ノード500は将来の使用のためにメッセージによって運ばれるポインタおよびラベルを記憶することができる。他の例としてメッセージが検索メッセージの場合は、ノード500はラベルを探索し、ラベルをメッセージに挿入し、ラベルに基づいてメッセージを転送することができる。解決処理のための例示の方法については、図10に関連して以下でより詳しく述べる。次いで方法800はステップ880で終了する。
図9は、発行メッセージを処理し送信するための例示の方法900を示す。方法900は方法800のステップ850に対応することができる。方法900は、ポインタ抽出部610、ラベル計算器620、および/または発行メッセージ変更部640などのシステム600の構成要素によって行うことができる。
方法900はステップ910で開始しステップ920に進むことができ、システム600は、発行メッセージがすでにラベルを含むかどうかを判定することができる。発行メッセージがラベルを含む場合は、他のシステムがすでに発行者機能を行っている。この場合は方法900はステップ970にスキップすることができる。そうでない場合は方法900はステップ930に進むことができる。
ステップ930でシステム600は、発行メッセージからポインタを抽出する。次いでステップ940でシステム600は、ラベルを生成することができる。例えばシステム600は、システム600に関連付けられたポインタおよびプレフィックスを組み合わせてラベルを生成することができる。次にステップ950では、任意選択でシステム600は、後で用いるためにラベルおよびポインタを一緒に記憶装置に記憶することができる。様々な実施形態では方法900はステップ950を含まなくてもよい。
ステップ960ではシステム600は、例えばラベルをメッセージに挿入することによって発行メッセージを変更することができる。次いでシステム600はステップ970で、ポインタに対する最長の知られているプレフィックスに基づいて、別の装置にメッセージを転送することができる。様々な実施形態ではステップ970は、例えばノード500のメッセージルータ560などの、システム600の外部の構成要素によって行うことができる。次いで方法900はステップ980で終了することができる。
図10は、受信した発行メッセージを処理し、検索メッセージを解決するための例示の方法1000を示す。方法1000は、方法800のステップ870に対応することができる。方法1000は、メッセージ分類部710、ラベルおよびポインタ抽出部720、相関関係マネージャ730、および/または検索メッセージ変更部750などのシステム700の構成要素によって行うことができる。
方法1000はステップ1010で開始しステップ1020に進み、システム700は受け取ったメッセージが発行メッセージかどうかを判定する。メッセージが発行メッセージである場合は、方法1000はステップ1030に進み、システム700はメッセージからポインタおよびラベルを抽出する。その後にステップ1040でシステム700は、後で用いるためにポインタおよびラベルを一緒に記憶装置に記憶する。次いで方法1000はステップ1090に進んで終了する。
しかしステップ1050でシステム700が、受け取ったメッセージは発行メッセージではないと判定した場合は、方法1000は代わりにステップ1050に進む。代替としてシステム700は、ステップ1050に進む前に、受け取ったメッセージが検索メッセージであることを確実にすることができる。ステップ1050でシステム700は、受け取ったメッセージからポインタを抽出する。次にステップ1060でシステム700は、抽出したポインタに対して、前に記憶したラベルを探索する。そのようなラベルの位置を一度特定すると、方法1000はステップ1070に進み、システム700は受け取ったメッセージを変更する。例えばシステム700は、メッセージにラベルを挿入し、メッセージは、これから先はポインタではなくラベルに基づいて経路指定されるべきであることを示すことができる。次いでステップ1080でシステム700は、ラベルに対する最長の知られているプレフィックスに基づいて、別の装置にメッセージを転送することができる。様々な実施形態ではステップ1080は、例えばノード500のメッセージルータ560などの、システム700の外部の構成要素によって行うことができる。次いで方法1000はステップ1090で終了することができる。
上記の説明から本発明の様々な例示的実施形態は、ハードウェアおよび/またはファームウェアにおいて実現できることが明らかであろう。さらに様々な例示的実施形態は、少なくとも1つのプロセッサによって読み出され実行されて本明細書で詳しく述べられた動作を行うことができる、機械可読記憶媒体上に記憶された命令として実施することができる。機械可読記憶媒体は、パーソナルまたはラップトップコンピュータ、サーバ、または他のコンピューティングデバイスなどの機械によって読み出しが可能な形にて情報を記憶するための、任意の機構を含むことができる。したがって機械可読記憶媒体は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、および同様な記憶媒体を含むことができる。
当業者には、本明細書のいずれのブロック図も、本発明の原理を具体化する例示の回路の概念図を表すことが理解されるべきである。同様にいずれのフローチャート、フロー図、状態遷移図、擬似コードなどは、機械可読媒体内に実質的に表すことができる様々な処理を表し、コンピュータまたはプロセッサが明示的に示されていても示されていなくても、コンピュータまたはプロセッサによってそのように実行されることが理解されよう。
様々な例示的実施形態について、それらのいくつかの例示の態様を具体的に参照して詳しく述べてきたが、本発明は他の実施形態も可能であり、その詳細は様々な明らかな点において変更が可能であることが理解されるべきである。当業者には容易に明らかなように、本発明の趣旨および範囲内のままで、変形および変更を行うことができる。したがって上記の開示、説明、および図は説明のためのみであり、いかなる形においても、特許請求の範囲によって規定される本発明を限定するものではない。

Claims (15)

  1. ネットワークノードによりネットワークにおいてコンテンツ要求を経路指定する方法であって、
    ネットワークノードにおいて、コンテンツアイテムを要求する要求メッセージを受信するステップ(820)であって、要求メッセージがコンテンツアイテムのポインタを含む、受信するステップと、
    ネットワークノードがポインタに関連付けられているかどうかを判定するステップ(830)と、
    ネットワークノードがポインタに関連付けられている場合は、
    ポインタに関連付けられたラベルを決定し(1060)、
    ラベルを含む変更されたメッセージを生成するように要求メッセージを変更し(1070)、
    変更されたメッセージを少なくとも1つの他のネットワークノードに送信する(1080)ステップと
    を含
    ラベルは、コンテンツアイテムのポインタと、コンテンツアイテムに関連するネットワークノードに関係付けられたプレフィックスとに基づいて生成される、方法。
  2. ネットワークノードがポインタに関連付けられているかどうかを判定するステップ(830)が、
    ネットワークノードに関連付けられたプレフィックスを決定するステップと、
    プレフィックスがポインタの少なくとも一部分と一致するかどうかを判定するステップと
    を含む、請求項1に記載の方法。
  3. ネットワークノードがポインタに関連付けられているかどうかを判定するステップ(830)が、プレフィックスがネットワーク内においてポインタに対する最長の一致するプレフィックスであるかどうかを判定するステップをさらに含む、請求項2に記載の方法。
  4. ポインタが要求メッセージのアドレスフィールドに含まれ、ラベルが変更されたメッセージのアドレスフィールドに含まれる、請求項1から3のいずれか一項に記載の方法。
  5. 要求メッセージおよび変更されたメッセージの少なくとも1つがネットワーク層パケットである、請求項1から4のいずれか一項に記載の方法。
  6. 変更されたメッセージを少なくとも1つの他のネットワークノードに送信するステップ(1080)が、変更されたメッセージを異なるプレフィックスに関連付けられた異なるノードに向けて送信するステップを含み、異なるプレフィックスがラベルの少なくとも一部分と一致する、請求項1から5のいずれか一項に記載の方法。
  7. ポインタが複数のラベルに関連付けられ、
    ポインタに関連付けられたラベルを決定するステップ(1060)が、複数のラベルからラベルを選択するステップを含む、
    請求項1から6のいずれか一項に記載の方法。
  8. ネットワークノードにおいて発行メッセージを受信するステップ(820)であって、発行メッセージがポインタおよびラベルを含む、受信するステップと、
    発行メッセージからポインタおよびラベルを抽出するステップ(1030)と、
    ポインタおよびラベルを一緒にメモリに保持するステップ(1040)と
    をさらに含み、
    ポインタに関連付けられたラベルを決定するステップ(1060)が、ポインタおよびラベルをメモリから読み出すステップを含む、
    請求項1から7のいずれか一項に記載の方法。
  9. ポインタがコンテンツアイテムに対する名前のハッシュである、請求項1から8のいずれか一項に記載の方法。
  10. ネットワーク内でコンテンツ要求を経路指定するための解決システムであって、
    ルーティング情報を記憶するためのルーティングテーブル(530)と、
    複数の相関関係レコードを記憶するための相関関係記憶装置(740)であって、各相関関係レコードがポインタおよび少なくとも1つのラベルを識別する、相関関係記憶装置と、
    コンテンツアイテムを要求する要求メッセージを受信する(820)ための受信器インターフェース(510)であって、要求メッセージがコンテンツアイテムの要求されたポインタを含む、受信器インターフェースと、
    メッセージを送信するための送信器インターフェース(570)と、
    検索メッセージ変更部(750)であって、
    要求されたポインタを識別する相関関係レコードの位置を特定し(1060)、
    相関関係レコードによって識別された少なくとも1つのラベルの選択されたラベルを選択し(1060)、
    選択されたラベルを含む変更されたメッセージを生成するように要求メッセージを変更する(1070)
    ための、検索メッセージ変更部と、
    メッセージルータ(560)であって、
    ルーティング情報および変更されたメッセージに基づいてネットワークノードを決定し、
    変更されたメッセージを送信器インターフェースを通じてネットワークノードに転送する(1080)ための、メッセージルータと
    を備え、
    ラベルは、コンテンツアイテムのポインタと、コンテンツアイテムに関連するネットワークノードに関係付けられたプレフィックスとに基づいて生成される、解決システム。
  11. 解決システムに関連付けられたプレフィックスを決定し、
    プレフィックスが要求されたポインタの少なくとも一部分と一致するかどうかを判定する
    ように構成された、メッセージインタープリタ(520)をさらに備える、請求項10に記載の解決システム。
  12. 要求されたポインタが要求メッセージのアドレスフィールドに含まれ、ラベルが変更されたメッセージのアドレスフィールドに含まれる、請求項10または11に記載の解決システム。
  13. 変更されたメッセージをネットワークノードに転送するステップ(1080)において、メッセージルータ(560)が変更されたメッセージを異なるプレフィックスに関連付けられた異なるノードに向けて送信するように構成され、異なるプレフィックスが選択されたラベルの少なくとも一部分と一致する、請求項10から12のいずれか一項に記載の解決システム。
  14. 受信器インターフェース(510)が発行メッセージを受信する(820)ようにさらになされ、発行メッセージがポインタおよびラベルを含み、
    解決システムが、
    発行メッセージからポインタおよびラベルを抽出(1030)し、
    ポインタおよびラベルを一緒に相関関係記憶装置に記憶(1040)する
    ように構成された解決モジュール(550)をさらに備える、請求項10から13のいずれか一項に記載の解決システム。
  15. 要求されたポインタがコンテンツアイテムに対する名前のハッシュである、請求項10から14のいずれか一項に記載の解決システム。
JP2014514480A 2011-06-06 2012-05-22 解決による経路指定 Active JP5918361B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/154,082 2011-06-06
US13/154,082 US10069720B2 (en) 2011-06-06 2011-06-06 Routing by resolution
PCT/US2012/038939 WO2012170194A1 (en) 2011-06-06 2012-05-22 Routing by resolution

Publications (2)

Publication Number Publication Date
JP2014519294A JP2014519294A (ja) 2014-08-07
JP5918361B2 true JP5918361B2 (ja) 2016-05-18

Family

ID=46208816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014514480A Active JP5918361B2 (ja) 2011-06-06 2012-05-22 解決による経路指定

Country Status (6)

Country Link
US (1) US10069720B2 (ja)
EP (1) EP2719118B1 (ja)
JP (1) JP5918361B2 (ja)
KR (1) KR101481936B1 (ja)
CN (1) CN103609081B (ja)
WO (1) WO2012170194A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9276850B2 (en) * 2012-07-18 2016-03-01 Electronics And Telecommunications Research Institute Packet processing device for IP-based information-centric network
US9407549B2 (en) * 2013-10-29 2016-08-02 Palo Alto Research Center Incorporated System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers
US10798186B2 (en) 2016-06-09 2020-10-06 International Business Machines Corporation Dynamic generation of network routing configuration with service requirements
US11245625B2 (en) 2019-08-07 2022-02-08 Arista Networks, Inc. Generating entries in a content addressable memory of a network device

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052683A (en) * 1998-02-24 2000-04-18 Nortel Networks Corporation Address lookup in packet data communication networks
US6675163B1 (en) 2000-04-06 2004-01-06 International Business Machines Corporation Full match (FM) search algorithm implementation for a network processor
WO2003034669A1 (en) * 2001-10-17 2003-04-24 British Telecommunications Public Limited Company Network location management system
CA2411806A1 (en) 2001-11-16 2003-05-16 Telecommunications Research Laboratory Wide-area content-based routing architecture
US7315541B1 (en) * 2002-04-03 2008-01-01 Cisco Technology, Inc. Methods and apparatus for routing a content request
US20040186768A1 (en) 2003-03-21 2004-09-23 Peter Wakim Apparatus and method for initiating remote content delivery by local user identification
KR100555749B1 (ko) * 2004-01-27 2006-03-03 삼성전자주식회사 애드 혹 네트워크에서 데이터 전송 경로 설정 장치 및 방법
JP2006031522A (ja) 2004-07-20 2006-02-02 Dainippon Printing Co Ltd コンテンツ中継配信サーバ、コンテンツ中継配信コンピュータプログラム
JP4515319B2 (ja) * 2005-04-27 2010-07-28 株式会社日立製作所 コンピュータシステム
US7805470B2 (en) * 2005-06-23 2010-09-28 Emc Corporation Methods and apparatus for managing the storage of content in a file system
CN101170425A (zh) 2006-10-25 2008-04-30 摩达网股份有限公司 在内容网络中针对内容标签的广告管理方法与装置
JP4910881B2 (ja) 2007-05-23 2012-04-04 ブラザー工業株式会社 通信システム、ノード装置、ノード処理プログラム、及びメッセージ送受信方法
US8156243B2 (en) 2008-03-31 2012-04-10 Amazon Technologies, Inc. Request routing
US7995504B2 (en) * 2008-05-12 2011-08-09 Microsoft Corporation Locality-based routing table generation
US9456054B2 (en) 2008-05-16 2016-09-27 Palo Alto Research Center Incorporated Controlling the spread of interests and content in a content centric network
CN101667958B (zh) * 2008-09-01 2012-08-29 华为技术有限公司 选择哈希函数的方法、存储及查找路由表的方法及装置
US8204060B2 (en) 2009-01-30 2012-06-19 Palo Alto Research Center Incorporated Method and system for facilitating forwarding a packet in a content-centric network

Also Published As

Publication number Publication date
US10069720B2 (en) 2018-09-04
EP2719118A1 (en) 2014-04-16
KR20140007953A (ko) 2014-01-20
WO2012170194A1 (en) 2012-12-13
JP2014519294A (ja) 2014-08-07
CN103609081A (zh) 2014-02-26
CN103609081B (zh) 2017-02-15
KR101481936B1 (ko) 2015-01-13
EP2719118B1 (en) 2018-10-24
US20120311073A1 (en) 2012-12-06

Similar Documents

Publication Publication Date Title
US9729669B2 (en) Method and system for fast and large-scale longest prefix matching
EP2214356B1 (en) System for forwarding a packet with a hierarchically structured variable-length identifier
EP2214357B1 (en) Method and system for facilitating forwarding a packet in a content-centric network
US20150248455A1 (en) Content name resolution for information centric networking
US20140289325A1 (en) Ordered-element naming for name-based packet forwarding
KR20160076445A (ko) 정보 중심 네트워크들에서 링크 상태 정보를 사용한 효율적인 이름 기반 콘텐츠 라우팅을 위한 시스템 및 방법
JP2015529061A (ja) 高速コンテンツルーティング
JP2016007054A (ja) ネットワークにおけるコンテンツにアクセスする方法および対応するシステム
EP2869536A1 (en) System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers
EP2928118B1 (en) System and method for dynamic name configuration in content-centric networks
US10742596B2 (en) Method and system for reducing a collision probability of hash-based names using a publisher identifier
US9401864B2 (en) Express header for packets with hierarchically structured variable-length identifiers
KR20170064996A (ko) 콘텐트 중심 네트워크에서의 명시적 콘텐트 삭제 명령어들
JP5918361B2 (ja) 解決による経路指定
JP2015198451A (ja) ネットワーク名を使用する、複数オブジェクトのインタレスト
CN109495525B (zh) 网络组件、解析内容标识的方法和计算机可读存储介质
KR102437289B1 (ko) 정보 중심 네트워크에서 프로듀서 이동성 지원을 위한 패킷 경로 설정 방법 및 장치
KR20140011658A (ko) Icn 기반 컨텐츠 배송 시스템 및 방법
US10033642B2 (en) System and method for making optimal routing decisions based on device-specific parameters in a content centric network
CN105321097B (zh) 使消费者状态与内容中心网络中的兴趣相关联
Hwang et al. Resource name-based routing in the network layer
KR20200049607A (ko) 정보 중심 네트워크(icn)에서 플로우 스위칭 장치 및 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150908

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151204

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: 20160329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160407

R150 Certificate of patent or registration of utility model

Ref document number: 5918361

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250