CN103609081B - 通过解析进行路由 - Google Patents
通过解析进行路由 Download PDFInfo
- Publication number
- CN103609081B CN103609081B CN201280028007.3A CN201280028007A CN103609081B CN 103609081 B CN103609081 B CN 103609081B CN 201280028007 A CN201280028007 A CN 201280028007A CN 103609081 B CN103609081 B CN 103609081B
- Authority
- CN
- China
- Prior art keywords
- pointer
- label
- message
- news
- network node
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling 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/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5058—Service discovery by the service manager
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/106—Mapping addresses of different types across networks, e.g. mapping telephone numbers to data network addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4541—Directories for service discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/59—Network arrangements, protocols or services for addressing or naming using proxies for addressing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning 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)
Abstract
各种示例性实施方式涉及包括以下一者或多者的方法及相关网络节点:接收请求消息,请求消息包括指针;确定网络节点是否与指针相关联;以及,如果网络节点与指针相关联,则:确定与指针相关联的标签,修改请求消息以产生修改后的消息,修改后的消息包括标签,以及将修改后的消息发送到至少一个其它网络节点。各种示例性实施方式额外地或替换地涉及包括以下一者或多者的方法及相关网络节点:接收公布消息,其中公布消息包括指针;生成与指针相关联的标签;修改公布消息以产生修改后的消息,其中修改后的消息包括标签;以及,将修改后的消息发送到至少一个其它网络节点。
Description
技术领域
在此公开的各种示例性实施方式一般涉及网络路由。
背景技术
从产生以来,因特网从允许一般的计算机到计算机通信的系统逐渐扩大到向全世界的用户提供大量服务和内容的设施。作为该进化的一部分,随时间推移新增了复杂的基础设施,以更好地支持服务和以内容为中心的应用程序。
如今,域名系统(DNS)起着目录服务的作用,确定被请求内容的位置。不同主机利用DNS创建域名来作为别名。接下来用户联系不同的DNS服务器,以检索主机的地址,主机的地址由域名来标识,其中被请求的内容存储在主机上,并由主机提供。随后,用户通过检索的地址来联系主机,以取得或使用内容。
发明内容
各种示例性实施方式涉及编码有指令的机器可读的存储介质,这些指令由计算机用于在网络中请求内容,机器可读的存储介质包括以下一者或多者:用于确定请求的内容项的指令;用于确定与内容项相关联的指针的指令;用于生成包括指针的请求消息的指令;用于将请求消息发送到至少一个网络节点的指令;以及用于从至少一个网络节点接收内容项的指令。
在此描述了用于确定与内容项相关联的指针的指令包括用于基于内容项生成指针的指令的各种替换实施方式。在此描述了用于基于内容项生成指针的指令包括用于基于内容项生成散列(hash)值的指令的各种替换实施方式。在此描述了用于基于内容项生成散列值的指令包括用于基于内容项的名称生成散列值的指令的各种替换实施方式。在此描述了用于生成包括指针的请求消息的指令包括用于将指针插入消息中以作为目标地址的指令的各种替换实施方式。
各种示例性实施方式涉及编码有指令的机器可读的存储介质,这些指令用于由计算机在网络中公布内容,机器可读的存储介质包括以下一者或多者:用于确定将公布的内容项的指令;用于基于内容项生成指针的指令;用于生成包括指针的公布消息的指令;以及用于将公布消息发送到至少一个网络节点的指令。
各种替换实施方式还包括以下一者或多者:用于从至少一个网络节点接收请求消息的指令,请求消息包括指针并表明请求设备;用于确定指针与内容项相关联的指令;以及用于将内容项发送至请求设备的指令。
在此描述了指针被包括在请求消息的地址字段中的各种替换实施方式。在此描述了用于基于内容项生成指针的指令包括用于基于内容项生成散列值的指令的各种替换实施方式。在此描述了用于基于内容项生成散列值的指令包括用于基于内容项的名称生成散列值的指令的各种替换实施方式。
各种示例性实施方式涉及一种由网络节点在网络中对内容请求进行路由的方法,该方法包括以下一者或多者:在网络节点处接收请求消息,请求消息包括指针;确定网络节点是否与指针相关联;以及,如果网络节点与指针相关联,则:确定与指针相关联的标签;修改请求消息以产生修改后的消息,修改后的消息包括标签;以及,将修改后的消息发送到至少一个其它网络节点。
各种示例性实施方式涉及一种在网络中对内容请求进行路由的解析系统,该解析系统包括以下一者或多者:用于存储路由信息的路由表;用于存储多个相关性记录的相关性存储器,其中每个相关性记录标识了指针和至少一个标签;用于接收请求消息的接收器接口,请求消息包括被请求的指针;用于发送消息的发射器接口;搜索消息修改器,该搜索消息修改器用于:定位识别了对被请求的指针的相关性记录,选择由相关性记录所标识的至少一个标签中的被选择的标签,以及修改请求消息以产生修改后的消息,修改后的消息包括被选择的标签;以及消息路由器,该消息路由器用于:基于路由信息和修改后的消息来确定网络节点,并将修改后的消息通过发射器接口转发至网络节点。
各种示例性实施方式涉及编码有指令的机器可读的存储介质,这些指令用于由网络节点在网络中路由内容请求,机器可读的存储介质包括以下一者或多者:用于在网络节点处接收请求消息的指令,请求消息包括指针;用于确定网络节点是否与指针相关联的指令;以及,用于在网络节点与指针相关联时执行以下操作的指令:确定与指针相关联的标签;修改请求消息以产生修改后的消息,修改后的消息包括标签;以及,将修改后的消息发送到至少一个其它网络节点。
在此描述了各种替换实施方式,其中,确定网络节点是否与指针相关联的步骤包括以下一者或多者:确定与网络节点相关联的前缀;以及确定前缀是否与指针的至少一部分相匹配。在此描述了确定网络节点是否与指针相关联的步骤还包括确定前缀是否是网络中指针的最长的匹配前缀的各种替换实施方式。在此描述了指针包括在请求消息的地址字段中、并且标签包括在修改后的消息的地址字段中的各种替换实施方式。在此描述了请求消息和修改后的消息中的至少一个是网络层分组的各种替换实施方式。在此描述了将修改后的消息发送到至少一个其它网络节点的步骤包括将修改后的消息发送到与不同前缀相关联的不同节点的各种替换实施方式,其中不同前缀与标签的至少一部分相匹配。在此描述了指针与多个标签相关联、并且确定与指针相关联的标签的步骤包括选择多个标签中的一个标签的各种替换实施方式。在此描述了指针是内容项的名称的散列的各种替换实施方式。
各种替换实施方式还包括以下一者或多者:在网络节点处接收公布消息,公布消息包括指针和标签;从公布消息提取指针和标签;将指针和标签一起保留在存储器中;其中,确定与指针相关联的标签的步骤包括从存储器读取指针和标签。
各种示例性实施方式涉及一种由网络节点在网络中对内容进行公布的方法,该方法包括以下一者或多者:在网络节点处接收公布消息,其中,公布消息包括指针;生成与指针相关联的标签;修改公布消息以产生修改后的消息,其中修改后的消息包括标签;以及,将修改后的消息发送到至少一个其它网络节点。
各种示例性实施方式涉及一种在网络中对内容请求进行公布的公布系统,该公布系统包括以下一者或多者:用于存储路由信息的路由表;用于接收公布消息的接收器接口,公布消息包括指针;用于发送消息的发射器接口;用于生成与指针相关联的标签的标签计算器;用于修改公布消息以产生修改后的消息的公布消息修改器,其中修改后的消息包括标签;以及,消息路由器,该消息路由器用于:基于路由信息和修改后的消息来确定网络节点,并将修改后的消息通过发射器接口转发至网络节点。
各种示例性实施方式涉及编码有指令的机器可读的存储介质,这些指令由计算机用于公布网络中的内容,机器可读的存储介质包括以下一者或多者:用于在网络节点处接收公布消息的指令,其中,公布消息包括指针;用于生成与指针相关联的标签的指令;用于修改公布消息以产生修改后的消息的指令,其中修改后的消息包括标签;以及,用于将修改后的消息发送到至少一个其它网络节点的指令。
在此描述了各种替换实施方式,其中,生成与指针相关联的标签的步骤包括以下一者或多者:确定与网络节点相关联的前缀;以及在标签中包括指针的至少一部分和前缀的至少一部分。在此描述了指针包括在公布消息和修改后的消息中的至少一个的地址字段中的各种替换实施方式。在此描述了将修改后的消息发送到至少一个其它网络节点的步骤包括基于指针来选择至少一个其它网络节点的各种替换实施方式。在此描述了各种替换实施方式,其中,基于指针来选择至少一个其它网络节点的步骤包括以下一者或多者:确定与至少一个其它网络节点相关联的前缀;以及确定前缀与指针的至少一部分相匹配。在此描述了指针是内容项的名称的散列的各种替换实施方式。在此描述了公布消息和修改后的消息中的至少一个是网络层分组的各种替换实施方式。
附图说明
为了更好地理解各种示例性实施方式,对附图进行参考,其中:
图1示出了用于分发内容的示例性网络;
图2示出了用于公布内容的示例性消息交换;
图3示出了用于请求内容的示例性消息交换;
图4示出了用于传输内容的示例性消息交换;
图5示出了用于对内容被路由的消息进行处理的示例性网络节点;
图6示出了用于对公布消息进行处理和传输的示例性系统;
图7示出了用于对接收到的公布消息进行处理和对搜索消息进行解析的示例性系统;
图8示出了用于对内容被路由的消息进行处理的示例性方法;
图9示出了用于对公布消息进行处理和传输的示例性方法;
图10示出了用于对接收到的公布消息进行处理和对搜索消息进行解析的示例性方法。
具体实施方式
域名系统(DNS)服务器的使用使数据的移动变得简单;如果要在不同的主机上访问内容,要么必须将不同的域名发送给用户,要么DNS记录必须更新至点,而非新主机。DNS范例中存在固有的各种附加限制。
另一方面,内容中心网络(CCN)解决了DNS范例中的许多问题。在CCN范例下,可以从网络中基于内容的名称来请求内容。但是,CCN具有诸多问题,必须要解决这些问题,以使实际应用成为可能。例如,CCN范例经常遭遇可扩展性差的问题。因此,需要可扩展的系统,其中可以通过内容的名称或其它典型特征,而不是通过存储该内容的主机来请求消息。
现在参考附图,公开了各种示例性实施方式的各个方面,在这些附图中同样的数字指代同样的组件或步骤。
图1示出了用于分发内容的示例性网络100。例如,网络100可以是计算机的分组交换网络,例如因特网。就此而言,网络100可以包括多个因特网服务提供商(ISP),如ISPA110、ISP B120及ISP C。网络100还可以包括多个内容服务器,如服务器140,以及终端用户系统,如系统150。
ISP 110、120和130可以包括一个或多个用于在网络100中路由消息的设备。此外,ISP 110、120和130可以直接,或通过一个或多个中间节点互相通信。很明显,网络100的结构是简化的例子,网络100可以包括很多其他的ISP(未示出)。此外,所示的连接是示例性的,其它的拓扑结构也是可以的。例如,ISP A100和ISP B120可以仅通过ISP C130进行通信。
ISP 110、120和130中的一个或多个设备可以访问一个或多个存储设备,如存储设备135。存储设备135可以包括机器可读的存储介质,例如只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质,光储存介质,闪存设备,和/或类似的存储介质。下面参考附图2至4对存储设备135的运行进行更详细的描述。.
服务器140可以是这样的设备:其适于接收内容请求,并随后将请求的内容传输至请求设备。因此,服务器140可以是个人计算机,笔记本,平板电脑,服务器,刀片,移动电话,和/或其它可以在网络上提供内容的设备。
服务器140可以包括或具有对存储设备145的访问权限。存储设备145可以包括机器可读的存储介质,例如只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质,光储存介质,闪存设备,和/或类似的存储介质。存储设备145可以存储一个或多个内容项,如内容项147。内容项147可以是任何数据,如文本文件,超文本标记语言(html)文件,音频文件,视频文件,等。
设备150可以是适于从网络100请求和接收内容项的设备。因此,设备150可以是个人计算机,笔记本,平板电脑,服务器,刀片,移动电话,和/或其它可以在网络上消费内容的设备。
每个ISP可以与一个或多个前缀相关联,每个前缀指示连接至ISP的一个或多个设备的设备地址的一部分。例如,ISP A 110与地址前缀0x68xx相关联。因此,连接至ISP A的一个或多个设备可以携带有以0x68开始的地址。举例来说,服务器140的地址是0x687c;地址0x687c携带有前缀0x68xx。相似地,设备150的地址是0x1088,该地址与ISP B120的前缀0x10xx相匹配,设备150连接至ISP B 120。此外,ISP C 130可以连接至一个或多个设备,这些设备与前缀0x20xx相匹配,该前缀与ISP C 130相关联。
在对用户网络100的组件进行了描述之后,现在参考图2至4对网络100的运行进行描述。
图2示出了用于公布内容的示例性消息交换200。服务器140可以从确定它应该公布内容项147开始。例如,用户可以指示应该可以在网络100上获得内容项147。服务器可以接下来前进至计算用于内容项147的“指针”。这里使用的术语指针指的是内容项的持久性标识,其不基于内容项的位置。在各种实施方式中,服务器140可以对内容项145的名称或其它特征执行散列函数,以生成指针。例如,服务器可以使用SHA-1算法来处理内容项147的名称“XYZ”,以产生散列值“0x2077”。
服务器140可以继续运行,构建“公布消息”。这里使用的术语公布消息可以是传输至另一个设备的任意消息,该消息指示对被标识的内容项进行公布的要求。根据各种实施方式,公布消息可以实现为网络层(或“层3”)分组,该分组包括报头,报头将分组标识为公布消息。服务器140可以构建包括指针“0x2077”的公布消息210。在各种实施方式中,指针可以包括在分组报头的目标地址字段和/或特殊指针字段中。在构建公布消息210后,服务器140可以将公布消息210转发至ISP A 110以进一步处理。
接收到公布消息210后,ISP A 110(或它里面的设备)可以将公布消息21标识为对公布数据的请求。ISP A 110接下来可以计算数据的“标签”。这里使用的术语标签指的是内容项的位置依赖标识。在各种实施方式中,ISP A 110可以基于内容项的指针和ISP110的地址前缀而生成标签。例如,ISP A 110可以简单地用指针中的多个高位比特来替换它自己的前缀。因此,ISP A 110可以基于其前缀(“0x68xx”)的高位比特及指针(“0x2077”)的剩余比特来生成标签“0x6877”。
在生成内容项的标签之后,ISP A 110可以修改公布消息,使其包括标签。例如,ISP A 110可以将标签插入到分组报头的特定标签字段中。ISP A 110接下来可以基于指针来路由公布消息220。在各种实施方式中,通过使用路由表或类似数据结构,ISP A 110可以基于指针“0x2077”的最长已知前缀匹配来定位下一跳。例如,ISP A 110可以确定ISP C130是指针“0x2077”的最长已知前缀匹配。就此而言,ISP A 110可以将公布消息220转发至ISP C 130。
在各种可替换实施方式中,替代地,服务器140可以生成指针和标签。服务器140可以基于服务器140和/或ISP A 110的前缀,以同前面按照ISP A 110所描述的方式相类似的方式来生成标签。在这些实施方式中,ISP A 110可以简单地将公布消息转发至ISP C 130。对本领域技术人员而言,很明显,可以对示例性网络100的组件和运行进行各种额外的修改,使得服务器140能够计算指针。
接收到公布消息220后,ISP C 130(或它里面的设备)可以确定它是指针“0x2077”的最长前缀匹配。例如,ISP C 130可以确定没有其它已知设备与更长的匹配前缀相关联。由此,ISP C 130可以视为内容项147的解析器。ISP C 130接下来可以将指针和标签之间的相关性存储230在存储器设备135中。此时,内容项147已被公布,并可以被参与网络100中的其它设备请求。
图3示出了用于请求内容的示例性消息交换300。在内容项147被公布后的某一时刻,设备150可以确定它应该请求内容项147。例如,用户可以指示特定的文件应该被下载。设备150可以从确定内容项147的指针开始。在各种实施方式中,指针可以通过例如网页或其它设备(未示出)被提供给设备150。在各种实施方式中,设备150可以额外地,或者替代地计算指针。例如,设备150可以使用SHA-1算法来处理内容项147的名称“XYZ”,以产生散列值“0x2077”,该散列值是内容项147的指针。
设备150继续运行,生成“搜索消息”。这里使用的术语搜索消息可以是传输至另一个设备的任意消息,该消息指示对被标识的内容项进行接收的要求。根据各种实施方式,搜索消息可以实现为网络层(或“层3”)分组,该分组包括报头,报头将分组标识为搜索消息。服务器150构建包括指针“0x2077的搜索消息310。在各种实施方式中,指针可以包括在分组报头的目标地址字段和/或特殊指针字段中。在构建搜索消息310后,服务器150可以将搜索消息310转发至ISP A 110以进一步处理。
接收到搜索消息310后,ISP B 120(或其中的设备)可以确定它是搜索消息,并且应该被路由至与指针的最长前缀匹配相关联的设备。在各种实施方式中,通过使用路由表或类似数据结构,ISP B 120可以基于指针“0x2077”的最长已知前缀匹配来定位下一跳。例如,ISP B 120可以确定ISP C 130是指针“0x2077”的最长已知前缀匹配。由此,ISP A 120可以将搜索消息320转发至ISP C 130。
接收到搜索消息320后,ISP C 130(或其中的设备)可以确定它是指针“0x2077”的最长前缀匹配。例如,ISP C 130可以确定没有其它已知设备与更长的匹配前缀相关联。由此,ISP C 130是指针“0x2077”的解析器。ISP C 130在存储器设备135中查找指针“0x2077”,并检索到结果340,结果340指示标签“0x6877”应该被使用。随后,ISP C 130修改搜索消息320,使其包括标签。例如,ISP C 110可以将标签插入到分组报头的特殊标签字段中,和/或替换地址字段中的指针(如果存在的话)。ISP C 130可以接下来基于标签而不是指针来转发搜索消息350。相应地,ISP C 130可以确定ISP A 110是标签“0x6877”的最长已知前缀匹配,并相应地转发搜索消息350。
接收到搜索消息350后,ISP A 110(或其中的设备)可以再一次基于指针的最长已知前缀匹配将搜索消息360转发至服务器140。或者,ISP A 110可以存储服务器140和指针“0x6877”和/或标签“0x2077”之间的对应关系。在这种情况下,ISP A 110可以基于该对应关系而不是标签的最长已知前缀匹配来转发消息。在各种实施方式中,服务器140可以不知道内容项147的标签。在这些实施方式中,ISP A 110可以在将标签转发至服务器140之前将标签从搜索消息360移除。
一旦服务器140接收到搜索消息360,服务器140可以对搜索消息360进行处理,并传输被请求的内容项145。
图4示出了用于传输内容的示例性消息交换400。在服务器140接收到对内容项(如消息360)的请求之后,举例来说,服务器140可以使用请求消息中包括的文件名、指针或标签来标识被请求的文件。在使用指针的情况下,服务器140可以存储指针和它之前已公布的内容项之间的对应关系。在使用标签的情况下,服务器140可以使用低位比特(例如,未被ISP A 110改变的比特)来标识所请求的内容项。不管使用何种方法,服务器140从存储器145对内容项147进行检索410。
服务器140接收到420内容项147之后,服务器140可以构建“响应消息”430,用于将内容项147传输至设备150。在此所用的术语响应消息可以是传输至另一个设备的任意消息,该消息包括被请求的内容项。根据各种实施方式,搜索消息可以实现为网络层(或“层3”)分组,该分组包括报头,报头将分组标识为响应消息。响应消息430可以包括请求设备150的地址,或“0x1088”。该地址可以已经包括在请求消息中。在构建响应消息430后,服务器140可以将响应消息430传送至ISP A 110。
接收到消息430后,ISP B 110(或其中的设备)可以确定该消息是响应消息,应该被路由至与指针的最长前缀匹配相关联的设备。在各种实施方式中,通过使用路由表或类似数据结构,ISP A 110可以基于地址“0x1088”的最长已知前缀匹配来定位下一跳。例如,ISP A 110可以确定ISP B 120是地址“0x1088”的最长已知前缀匹配。由此,ISP A 110可以将响应消息440转发至ISP C 120。
同样,接收到消息440后,ISP B 120(或其中的设备)可以确定该消息是响应消息,应该被路由至同指针的最长前缀匹配相关联的设备。相应地,ISP B 120可以将响应消息450转发至设备150。此后,设备150可以从响应450提取内容项147,并显示、或者使用内容项147。
显然,尽管此处的实施例描述了由ISP执行的功能,这些功能可以由被ISP控制、或与ISP相关联的一个或多个计算机和/或其它设备执行。此外,每个ISP中可以采用各种结构来提供这些功能。例如,指针和/或标签可以存储在ISP的一个或多个边界路由器中,ISP的集中式数据库中,和/或由内部路由器形成的分布式散列表中。这些实施方式的细节对本领域技术人员而言是很明显的。
此外,显然,尽管网络100的ISP110,120和130中的每一个被描述为执行特定功能,在各种实施方式中,ISP中的每一个还可以执行按照ISP 110、120和130而描述的功能。例如,ISP A 110可以额外地用作同前缀“0x68xx”相匹配的指针的解析器,或者ISP B 120可以额外地用作由设备150公布的内容的公布器。在各种实施方式中,ISP 110、120和130中的每一个能够执行任意在此所描述的功能。
图5示出了用于对内容被路由的消息进行处理的示例性网络节点500。节点500可以对应于ISP,例如ISP 110、120,130,或它们的一个或多个节点。在各种实施方式中,节点500可以是路由器或其它网络设备。节点500可以包括接收器500,消息解释器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来发射这些消息的硬件和/或编码在机器可读存储介质上的可执行指令。因此,消息路由器可以检查每个消息的地址字段,或者,在各种实施方式中,如果分组指示它应该基于这些值中的一个被路由,则检查指针或标签字段。消息路由器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),磁盘存储介质,光储存介质,闪存设备,和/或类似的存储介质。举例来说,标签和指针之间的这些关联性可以是一对一的关系,或一对多的关系。
搜索消息修改器750可以包括被配置为确定指针的合适标签、并随后修改搜索消息使其包括标签的硬件和/或编码在机器可读存储介质上的可执行指令。首先,搜索消息修改器750可以定位相关性存储器740中的相关性记录,该相关性记录同搜索消息携带的指针相关联。接下来,搜索消息修改器750可以从相关性记录读取标签。如果相关性记录包含多个标签,则消息修改器可以选择合适的标签,举例来说,该选择基于到服务器的距离、或是服务器的当前负荷,服务器与标签中的每一个相关联。一旦搜索消息修改器750确定将要使用的标签,搜索消息修改器就可以将标签插入到消息中,并指示该消息应该基于标签被路由。例如,搜索消息修改器750可以将标签插入到消息的地址字段中,或将标签插入到消息的特定标签字段中,并在另一个字段中指示该标签应该被用于路由消息。
修改消息之后,搜索消息修改器750可以将消息转发至另一个设备、或节点中的另一个组件,系统700部署在节点中。在系统700对应于节点500的公布模块550的各种实施方式中,搜索消息修改器750可以将修改后的消息传送至消息路由器560。
图8示出了用于对内容被路由的消息进行处理的示例性方法800。举例来说,方法800可以由网络节点500的组件执行,例如,组件是消息解释器520、公布模块540、解析模块550、和/或消息路由器560。
方法800可以从步骤810开始,并前进至步骤820,在步骤820中节点500可以接收消息。然后,在步骤830中,节点500可以确定它是否应该转发接收到的消息。在各种实施方式中,如果消息是响应消息,或者如果在另一个已知节点处存在更长的前缀匹配,则节点500可以确定消息应该被转发。如果消息应该被转发,则方法前进至步骤840。
在步骤840中,节点500确定消息是否是公布消息,举例来说,该确定可以通过检查消息报头的消息类型字段来实现。如果消息是公布消息,方法800前进至步骤850。在步骤850中,节点500可以对消息执行公布处理。例如,节点500可以计算标签,将标签插入到公布消息中,并将消息转发至另一个设备。下面参考图9对进行公布处理的示例性方法进行更详细的描述。方法800在步骤880结束。
另一方面,如果节点500在步骤840中确定消息不是公布消息,则方法前进至步骤860。在步骤860中,节点500可以简单地基于指针、标签或地址的最长前缀匹配而将消息转发至另一个设备,消息指示上述指针、标签或地址应该用于路由目的。方法800接下来前进至步骤880,在此结束。
如果节点在步骤830中确定消息不应该被原样转发,则方法800前进至步骤870。例如,如果节点500确定节点500是正被用于路由消息的指针的最长前缀匹配,则节点500可以确定消息不应该被以其当前状态转发。在步骤870中,节点500可以对消息执行额外的解析处理。例如,如果消息是公布消息,则节点500可以存储消息所携带的指针和标签,以备后用。作为另一个例子,如果消息是搜索消息,则节点500可以查找标签,将标签插入到消息中,并基于标签来转发消息。下面参考图10对进行解析处理的示例性方法进行更详细的描述。方法800接下来在步骤880结束。
图9示出了用于对公布消息进行处理和传输的示例性方法900。方法900可以对应于方法800的步骤850。方法900可以由系统600的组件执行,例如,组件是指针提取器610,标签计算器620,和/或公布消息修改器640。
方法900可以从步骤910开始,并前进至步骤920,在步骤920中系统600可以确定公布消息是否已经包括标签。如果公布消息包括标签,则另一个系统已经执行了公布器功能。如果这样的话,方法900跳至步骤970。否则,方法900可以前进至步骤930。
在步骤930中,系统600从公布消息提取指针。接下来,在步骤940中,系统600可以生成标签。例如,系统600可以组合指针和与系统600相关联的前缀,以生成标签。接下来,在步骤950中,系统600可以选择性地将标签和指针一起存储在存储器设备中,以备后用。在各种实施方式中,方法900可以不包括步骤950。
在步骤960中,系统600可以修改公布消息,举例来说,该修改可以通过将标签插入到消息中来实现。系统600接下来可以在步骤970中基于指针的最长已知前缀将消息转发至另一个设备。在各种实施方式中,步骤970可以由系统600外的组件执行,例如,组件是节点500的消息路由器560。方法900接下来可以在步骤980结束。
图10示出了用于对接收到的公布消息进行处理和对搜索消息进行解析的示例性方法1000。方法1000可以对应于方法800的步骤870。方法1000可以由系统700的组件执行,例如,组件是消息分类器710、标签和指针提取器720、相关性管理器730、和/或搜索消息修改器750。
方法100从步骤1010开始,并前进至步骤1020,在步骤1020中系统700确定接收到的消息是否是公布消息。如果消息是公布消息,则方法1000前进至步骤1030,在步骤1030中系统700从消息提取指针和标签。随后,系统700将指针和标签一起存储在存储器设备中,以备在步骤1040中使用。方法1000接下来前进至步骤1090,在此结束。
但是,如果在步骤1050中系统700确定接收到的消息不是公布消息,则方法1000前进至步骤1050。可替换地,系统700可以在方法前进至步骤1050之前确保接收到的消息是搜索消息。在步骤1050中,系统700从接收到的消息提取指针。接下里,在步骤1060中,系统700为提取的指针查找先前存储的标签。一旦定位了该标签,方法1000前进至步骤1070,在步骤1070中系统700对接收到的消息进行修改。例如,系统700可以将标签插入到消息中,并指示该消息应该基于标签而不是指针从该点向前路由。接下来,在步骤1080中,系统700可以基于标签的最长已知前缀将消息转发至另一个设备。在各种实施方式中,步骤1080可以由系统700外的组件执行,例如,组件是节点500的消息路由器560。方法1000接下来可以在步骤1090结束。
根据前面的描述,显然,本发明的各种示例性实施方式可以在硬件和/或固件中实施。此外,各种示例性实施方式可以实施为存储在机器可读的存储介质上的指令,这些指令可以被至少一个处理器读取和执行,以完成在此具体描述的操作。机器可读的存储介质可以包括以可被机器读取的形式存储信息的任何机构,例如,机器是个人计算机或笔记本电脑,服务器,或其它计算设备。因此,机器可读的存储介质可以包括只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质,光储存介质,闪存设备,和/或类似的存储介质。
本领域技术人员可以理解,本文中的任何框图代表体现本发明原理的说明性电路的概念视图。类似地,可以理解的是,任何流程图,流程图表,状态转换图,虚拟码等均代表各种程序,这些程序随后可以被呈现在机器可读的介质中,并由计算机或处理器执行,而不管该计算机或处理器是否被明确地示出。
尽管各种示例性实施方式是通过对其某些示例性方面进行特定参考而描述,可以理解的是,本发明能够有其它实施方式,并且其细节能够包括在各种明显的方面进行的修改。对于本领域技术人员而言,显然,可以在保持本发明的精神和范围的情况下实现变更和修改。因此,前面的公开内容,描述和附图仅用于说明目的,不对本发明构成限制,本发明仅被权利要求所限定。
Claims (20)
1.一种由网络节点在网络中路由内容请求的方法,该方法包括:
在所述网络节点处接收(820)请求内容项的请求消息,该请求消息包括指针,其中所述指针不基于所述内容项的位置;
确定(830)所述网络节点是否与所述指针相关联,其中确定(830)所述网络节点是否与所述指针相关联的步骤包括:
确定与所述网络节点相关联的前缀;以及
确定所述前缀是否与所述指针的至少一部分相匹配,并且其中确定(830)所述网络节点是否与所述指针相关联的步骤还包括确定所述前缀是否是用于网络中的指针的最长的匹配前缀;以及
如果所述网络节点与所述指针相关联,则:
确定(1060)与所述指针相关联的标签,
修改(1070)所述请求消息以产生修改后的消息,该修改后的消息包括所述标签,以及
将所述修改后的消息传送(1080)到至少一个其它网络节点,其中将所述修改后的消息传送(1080)到至少一个其它网络节点的步骤包括将所述修改后的消息传送到与不同前缀相关联的不同节点,其中所述不同前缀是标签的最长已知匹配前缀。
2.如权利要求1所述的方法,其中所述指针被包括在所述请求消息的地址字段中,并且所述标签被包括在所述修改后的消息的地址字段中。
3.如权利要求1或2所述的方法,其中所述请求消息和所述修改后的消息中的至少一者是网络层分组。
4.如权利要求1或2所述的方法,其中:
所述指针与多个标签相关联;并且
确定(1060)与所述指针相关联的标签的步骤包括选择多个标签中的标签。
5.如权利要求3所述的方法,其中:
所述指针与多个标签相关联;并且
确定(1060)与所述指针相关联的标签的步骤包括选择多个标签中的标签。
6.如权利要求1、2以及5中任意一项所述的方法,该方法还包括:
在所述网络节点处接收(820)公布消息,所述公布消息包括指针和标签;
从所述公布消息提取(1030)所述指针和所述标签;以及
将所述指针和所述标签一起保留(1040)在存储器中;
其中确定(1060)与所述指针相关联的标签的步骤包括从存储器读取所述指针和所述标签。
7.如权利要求3所述的方法,该方法还包括:
在所述网络节点处接收(820)公布消息,所述公布消息包括指针和标签;
从所述公布消息提取(1030)所述指针和所述标签;以及
将所述指针和所述标签一起保留(1040)在存储器中;
其中确定(1060)与所述指针相关联的标签的步骤包括从存储器读取所述指针和所述标签。
8.如权利要求4所述的方法,该方法还包括:
在所述网络节点处接收(820)公布消息,所述公布消息包括指针和标签;
从所述公布消息提取(1030)所述指针和所述标签;以及
将所述指针和所述标签一起保留(1040)在存储器中;
其中确定(1060)与所述指针相关联的标签的步骤包括从存储器读取所述指针和所述标签。
9.如权利要求1、2以及5中任意一项所述的方法,其中所述指针是内容项的名称的散列。
10.如权利要求3所述的方法,其中所述指针是内容项的名称的散列。
11.如权利要求4所述的方法,其中所述指针是内容项的名称的散列。
12.如权利要求6所述的方法,其中所述指针是内容项的名称的散列。
13.一种用于在网络中路由内容请求的解析系统,该解析系统包括:
用于存储路由信息的路由表(530);
用于存储多个相关性记录的相关性存储器(740),其中每个相关性记录标识了指针和至少一个标签,其中所述指针不基于内容项的位置;
用于接收(820)请求内容项的请求消息的接收器接口(510),所述请求消息包括被请求的指针;
用于传送消息的发射器接口(570);
搜索消息修改器(750),用于:
定位(1060)标识了所述被请求的指针的相关性记录,
选择(1060)由所述相关性记录所标识的至少一个标签中的被选择的标签,并且
修改(1070)所述请求消息以产生修改后的消息,该修改后的消息包括所述被选择的标签;以及
消息路由器(560),用于:
基于所述路由信息和所述修改后的消息来确定网络节点,并且
将所述修改后的消息通过所述发射器接口转发(1080)至所述网络节点;
其中,在将所述修改后的消息转发(1080)到所述网络节点的过程中,所述消息路由器(560)被配置为将所述修改后的消息传送到与不同前缀相关联的不同节点,其中所述不同前缀是标签的最长已知匹配前缀。
14.如权利要求13所述的解析系统,该系统还包括消息解释器(520),该消息解释器(520)被配置为:
确定与所述解析系统相关联的前缀;并且
确定所述前缀是否是用于网络中的指针的最长的匹配前缀。
15.如权利要求13或14所述的解析系统,其中所述被请求的指针被包括在所述请求消息的地址字段中,并且所述标签被包括在所述修改后的消息的地址字段中。
16.如权利要求13或14所述的解析系统,其中:
所述接收器接口(510)还被配置为接收(820)公布消息,所述公布消息包括指针和标签;并且
所述解析系统还包括解析模块(550),该解析模块(550)被配置为:
从所述公布消息提取(1030)所述指针和所述标签;并且
将所述指针和所述标签一起存储(1040)在所述相关性存储器中。
17.如权利要求15所述的解析系统,其中:
所述接收器接口(510)还被配置为接收(820)公布消息,所述公布消息包括指针和标签;并且
所述解析系统还包括解析模块(550),该解析模块(550)被配置为:
从所述公布消息提取(1030)所述指针和所述标签;并且
将所述指针和所述标签一起存储(1040)在所述相关性存储器中。
18.如权利要求13、14以及17中任意一项所述的解析系统,其中所述被请求的指针是内容项的名称的散列。
19.如权利要求15所述的解析系统,其中所述被请求的指针是内容项的名称的散列。
20.如权利要求16所述的解析系统,其中所述被请求的指针是内容项的名称的散列。
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 |
---|---|
CN103609081A CN103609081A (zh) | 2014-02-26 |
CN103609081B true CN103609081B (zh) | 2017-02-15 |
Family
ID=46208816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280028007.3A Active CN103609081B (zh) | 2011-06-06 | 2012-05-22 | 通过解析进行路由 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10069720B2 (zh) |
EP (1) | EP2719118B1 (zh) |
JP (1) | JP5918361B2 (zh) |
KR (1) | KR101481936B1 (zh) |
CN (1) | CN103609081B (zh) |
WO (1) | WO2012170194A1 (zh) |
Families Citing this family (4)
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 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1533088A (zh) * | 2003-03-21 | 2004-09-29 | ��˹��ŵ�� | 用于借助本地用户识别来启动远程内容递送的装置和方法 |
CN101170425A (zh) * | 2006-10-25 | 2008-04-30 | 摩达网股份有限公司 | 在内容网络中针对内容标签的广告管理方法与装置 |
Family Cites Families (15)
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 |
US7586853B2 (en) * | 2001-10-17 | 2009-09-08 | British Telecommunications Plc | 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 |
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 |
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 |
-
2011
- 2011-06-06 US US13/154,082 patent/US10069720B2/en active Active
-
2012
- 2012-05-22 WO PCT/US2012/038939 patent/WO2012170194A1/en unknown
- 2012-05-22 EP EP12725964.6A patent/EP2719118B1/en active Active
- 2012-05-22 KR KR20137032371A patent/KR101481936B1/ko active IP Right Grant
- 2012-05-22 JP JP2014514480A patent/JP5918361B2/ja active Active
- 2012-05-22 CN CN201280028007.3A patent/CN103609081B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1533088A (zh) * | 2003-03-21 | 2004-09-29 | ��˹��ŵ�� | 用于借助本地用户识别来启动远程内容递送的装置和方法 |
CN101170425A (zh) * | 2006-10-25 | 2008-04-30 | 摩达网股份有限公司 | 在内容网络中针对内容标签的广告管理方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2012170194A1 (en) | 2012-12-13 |
JP5918361B2 (ja) | 2016-05-18 |
US20120311073A1 (en) | 2012-12-06 |
JP2014519294A (ja) | 2014-08-07 |
KR101481936B1 (ko) | 2015-01-13 |
CN103609081A (zh) | 2014-02-26 |
US10069720B2 (en) | 2018-09-04 |
EP2719118B1 (en) | 2018-10-24 |
EP2719118A1 (en) | 2014-04-16 |
KR20140007953A (ko) | 2014-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9276751B2 (en) | System and method for circular link resolution with computable hash-based names in content-centric networks | |
US9729669B2 (en) | Method and system for fast and large-scale longest prefix matching | |
US9978025B2 (en) | Ordered-element naming for name-based packet forwarding | |
CN101529809B (zh) | 链路状态协议控制的网络中路由选择信息的分布式存储 | |
US9019971B2 (en) | Systems, methods and algorithms for named data network routing with path labeling | |
US9473576B2 (en) | Service discovery using collection synchronization with exact names | |
EP2214356B1 (en) | System for forwarding a packet with a hierarchically structured variable-length identifier | |
US9178806B2 (en) | High-speed content routing | |
CN102630378B (zh) | 基于描述文件的个体化数据通信方法及设备 | |
CN105279216A (zh) | 使用自认证名称分发无名称对象的系统 | |
CN106559340A (zh) | 具有小多径或单径转发状态的以信息为中心的网络 | |
CN104115472A (zh) | 用于内容导向网络中可扩展路由的方法 | |
CN101409706A (zh) | 一种边缘网络中的数据分发方法、数据分发系统及相关设备 | |
CN103618801B (zh) | 一种p2p资源共享的方法、设备及系统 | |
CN103609081B (zh) | 通过解析进行路由 | |
CN103873602A (zh) | 一种网络资源命名方法与生成装置 | |
US20070091828A1 (en) | Registration, look-up, and routing with flat addresses at enormous scales | |
EP2930903A2 (en) | Secure collection synchronization using matched network names | |
US9455835B2 (en) | System and method for circular link resolution with hash-based names in content-centric networks | |
CN102378407B (zh) | 一种物联网中的对象名字解析系统及其解析方法 | |
US20100306303A1 (en) | Distributed storage system, connection information notifying method, and recording medium in which distributed storage program is recorded | |
CN109495525B (zh) | 网络组件、解析内容标识的方法和计算机可读存储介质 | |
Pfeifer et al. | Exploiting host name locality for reduced stretch p2p routing | |
JP2012177841A (ja) | 配信システム、管理装置、プログラム及び管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |