一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

信息中心网络的集中路径计算的制作方法

2022-05-21 12:09:08 来源:中国专利 TAG:

信息中心网络的集中路径计算
1.相关申请的交叉引用
2.本技术要求于2019年10月14日提交的第16/601,352号美国申请的优先权,该申请通过引用整体并入本文。
技术领域
3.本公开总体涉及改进混合信息中心网络协议中用于路由的路径计算。


背景技术:

4.已提出信息中心网络(“icn”)作为解决基于互联网协议(“ip”)的网络中固有的问题的网络协议。并非客户端通过ip地址与主机通信,在icn下,客户端通过内容名称请求数据;客户端发送表示要完成的命名内容的请求的外向兴趣分组,而这些请求进而由缓存命名内容的节点来完成。可以从缓存了所请求内容的任何网络节点提供所请求的数据,因此通信与客户端和主机之间的连接解耦,并且与数据位置解耦。
5.理论上提出的icn采用完全替代基于ip的网络的形式。然而,这种实现方式目前在规模上是不可行的,因为互联网在基础上是基于ip网络实现的。因此,已经提出了在现有的基于ip的网络基础设施的顶部上实现icn功能的建议。例如,此类建议包括命名数据网络(“ndn”)或内容中心网络(“ccn”),其中icn的实现方式是通过在节点处缓存待定兴趣表(“pit”)来实现的。pit缓存有关未完成的兴趣分组的信息,以便接收与某些数量的兴趣分组请求的命名内容匹配的数据分组的节点可以将数据分组返回给(一个或多个)客户端,每个请求通过由pit描绘的“兴趣路径”源自于这些客户端。
6.然而,在这种情况下,pit的实现方式并不固有地提供用于将数据分组返回给(一个或多个)客户端的机制。这仍然是一个悬而未决的问题,受到额外的限制,例如存储容量、可扩展性和延迟,以及兴趣路径为次优的可能性。将命名数据分组返回给请求它们的(一个或多个)客户端的改进解决方案是期望的。
附图说明
7.下面参照附图进行详细描述。在图中,附图标记的(一个或多个)最左侧数字标识附图标记首次出现的图。在不同的图中使用相同的附图标记表示相似或相同的项。附图中描绘的系统不是按比例绘制的,并且图中的组件可以被描绘为彼此不按比例绘制。
8.图1示出了混合信息中心网络(hicn)使能网络中缓存的路由信息的示例系统架构图,其中缓存的路由信息描绘了对于所请求的命名数据的传输而言为次优的兴趣路径。
9.图2a示出了示例hicn使能网络的系统架构图,其中客户端节点请求命名数据并且pce计算所请求的命名数据的路径。图2b示出了图2b的系统架构图,其中这些计算的路径中的每一条以虚线示出。
10.图3示出了用于基于网络拓扑和兴趣信息在hicn使能网络中计算命名内容的路径的示例方法的流程图。
11.图4示出了用于在hicn使能网络中由路由器节点处理兴趣分组路由的示例方法的流程图。
12.图5是示出hicn使能网络的配置的计算系统图,其中在网络下层上建立的虚拟网络上层将客户端节点与内容服务器相连接。
13.图6示出了用于路由器的示例计算机架构,该路由器能够执行用于实现本文描述的功能的程序组件。
14.图7示出了用于服务器的示例计算机架构,该服务器能够执行用于实现本文描述的功能的程序组件。
具体实施方式
15.概述
16.本发明的方面在独立权利要求中阐述并且优选特征在从属权利要求中阐述。一个方面的特征可以单独地或与其他方面相结合地应用于任何方面。
17.本公开描述了用于在实现为虚拟网络上层的混合信息中心网络协议中实现用于路由的集中路径计算的技术,该虚拟网络上层连接内容消费者客户端节点与内容生产者和存储服务器之间的流量。一种方法包括从网络上层的转发路由器节点接收兴趣分组报头。该方法还包括确定兴趣分组的兴趣路径和网络上层的一个或多个目的地路由器节点。该方法还包括计算网络上层上的一条或多条路径。该方法还包括确定网络上层上的一条或多条计算的路径的寻址方法。该方法还包括执行以下各项中的至少一项:将每条计算的路径编码到数据分组报头中;以及将每条计算的路径编码为网络上层的每条相应路径上的每个路由器节点的状态条目。该方法还包括将计算的路径信息返回给转发路由器节点。
18.另外,另一种方法包括通过第一路由器节点从网络上层的第二路由器节点接收兴趣分组,兴趣分组操作用于请求特定命名内容。该方法还包括通过第一路由器节点确定第二路由器节点是否对所请求的命名内容具有缓存兴趣。该方法还包括通过第一路由器节点确定是否应将兴趣分组转发到网络上层的多于一个其他路由器节点。该方法还包括通过第一路由器节点在所述兴趣分组的报头中插入指示第一路由器节点在兴趣分组的兴趣路径中的信息条目;以及将兴趣分组转发到网络上层的一个或多个其他路由器节点。
19.此外,本文描述的技术可以由具有存储计算机可执行指令的非暂时性计算机可读介质的系统和/或设备来执行,这些计算机可执行指令在由一个或多个处理器执行时执行上述方法。
20.本文所述的方法可以通过包括用于实现每个步骤的模块的装置来实现。此外,本文还包括与所描述的装置步骤相对应的方法以及计算机程序、计算机程序产品和计算机可读介质,它们在由计算机执行时使计算机执行本文所描述的方法的步骤。
21.示例实施例
22.用于实现icn的混合信息中心网络(“hicn”)提议通过提供除了ip路由器节点之外还具有icn路由器节点的hicn使能网络来实现命名数据分组的传输。ip路由器节点是至少实现由例如tcp/ip堆栈报头封装的数据分组组成的ipv4和ipv6流量的常规路由的物理或虚拟网络节点,而icn路由器节点是至少实现由例如icn堆栈报头封装的流量的路由的物理或虚拟网络节点。由于ip报头和icn堆栈报头可能是不可互操作的,因此根据hicn的icn路
由器可以进一步实现对由ip报头封装的数据分组和由icn报头封装的数据分组的路由,并且可以进一步实现由ip报头指定的ip地址和由icn报头指定的内容名称之间的映射。
23.根据本公开的hicn的实现方式可以在网络下层上提供虚拟网络上层。网络下层是具有形成网络拓扑的任意数量的物理和/或虚拟节点的物理或虚拟网络。网络下层可以包括任意数量的如上所述的ip路由器节点,它们可以支持合适的ip路由算法。根据本公开的示例,ip路由算法可以包括分段路由算法,该分段路由算法可以包括通过多协议标签交换的分段路由(“sr-mpls”)和通过ipv6的分段路由(“srv6”)中的至少一种。
24.与常规的路由算法(例如距离矢量或链路状态)相比,分段路由算法可以由中央控制器实现,该中央控制器计算数据分组通过网络的路径,然后将路径信息写入数据分组中,使得网络的路由器节点可以基于路径信息转发数据分组,而不是网络的路由器节点递增地计算数据分组的路径。计算路径的中央控制器可以是例如路径计算元件(“pce”)。
25.作为网络元件的pce可以是网络的物理或虚拟节点、连接到网络的物理或虚拟计算系统、在网络的物理或虚拟计算节点上运行的服务或网络节点可访问的任何其他专用计算系统或服务。访问pce的网络节点可以充当路径计算客户端(“pcc”)。独立于pcc进行操作,pce可以为网络中的源自于源节点以及去往目的地节点的两种数据分组确定从源节点到目的地节点的端到端路径。
26.根据sr-mpls的实现方式,路径信息可以作为标签堆栈被写入数据分组。根据srv6的实现方式,路径信息可以作为ipv6报头格式被写入数据分组,例如分段路由报头(“srh”)。
27.pce的元件可以包括:物理或虚拟计算模块,可操作用于通过本领域技术人员已知的任何合适的寻路算法并基于pce所在的网络层的拓扑来计算如上所述的从数据分组的源节点到数据分组的目的地节点的端到端路径;数据库,可操作用于存储和更新有关网络层拓扑的信息;以及通信模块,可操作用于接收关于网络层拓扑的信息。pce的模块可以是存储在pce的一个或多个物理和/或虚拟非暂时性计算机可读介质中并且可由pce的一个或多个物理和/或虚拟处理器执行以执行其各自功能的计算机可执行指令。
28.pce的数据库可以称为例如流量工程数据库(“ted”)。pce可以在接收到诸如拓扑信息、资源信息(例如,带宽容量和可用性)、流量工程的度量以及来自各个网络节点或其他信息源的其他类型的信息之类的信息时更新ted。
29.icn路由器的实现方式可以建立虚拟网络上层,该虚拟网络上层在构成网络下层的节点上提供通过虚拟网络拓扑连接的虚拟节点。icn路由器可以映射到物理网络的路由器节点的逻辑接口,并且不能直接对应于物理网络的路由器节点。因此,hicn使能网络可能具有与网络下层拓扑不同的网络上层拓扑。
30.根据icn路由的提议,不是在路由器或在诸如pce的节点处采用算法路径计算,而是可以基于缓存的信息来执行命名内容的路由。根据icn路由实现方式的基于缓存的路由的一个方面是icn路由器节点在转发来自请求客户端的出站兴趣分组时缓存指向网络拓扑中接收兴趣分组的方向的指针。待决兴趣表(“pit”)可以缓存在每个icn路由器节点处,该节点接收兴趣分组并将其向前转发。pit缓存指向(一个或多个)客户端的状态条目,从这些客户端转发未完成的兴趣分组。诸如转发信息库(“fib”)之类的附加数据结构可以存储用于路由目的的每个可达网络节点的接口(端口)标识符,并且也可以缓存在每个icn路由器
节点处。
31.根据icn路由实现方式的基于缓存的路由的另一方面是icn路由器节点可能对缓存命名内容的本地副本感兴趣或不感兴趣。可以根据icn路由建议根据各种标准指定具有缓存兴趣或不具有缓存兴趣的icn路由器节点的标准,包括例如根据命名内容的名称和/或根据icn路由器节点的本地存储容量或可用性。此类标准的细节无需在此重复。出于本公开的目的,应该仅仅理解icn路由器节点是否对缓存任何给定命名内容的本地副本具有缓存兴趣。
32.兴趣分组可能最终到达内容服务器,该内容服务器可以存储或生成满足兴趣分组请求的命名内容。包含命名内容的数据分组可以通过hicn使能网络返回到客户端节点,其中接收数据分组的路由器节点可以将数据分组与缓存在pit处的请求的命名内容进行匹配,从而可以在每个请求源自于(一个或多个)客户端的(一个或多个)方向上返回数据分组。因此,pit中的状态条目描绘了用于路由命名内容的“兴趣路径”,而无需算法路径计算。
33.除了pit之外,内容服务器通过hicn使能网络发送的命名内容可以缓存在其各个icn路由器节点处,以增加命名内容的可用性并减少请求命名内容的延迟,因为从缓存检索命名内容会比从内容服务器检索更快。但是,缓存的命名内容需要向请求内容的客户端通告其可用性。一种建议的方法是所谓的“面包屑”路由,这是一种基于缓存的路由的名称,其中路由到网络节点的数据分组会导致“轨迹”,指的是指向数据分组从其路由的节点以及指向数据分组将被路由到的节点的信息缓存在节点处,以便后续请求相同命名内容的兴趣分组可以通过在缓存的“轨迹”之后的搜索来转发,以到达命名内容最终所在的节点。因此,命名内容在hicn使能网络上的传输可能会导致有关附加路径的信息被缓存在icn路由器节点上,从而为命名内容的路由请求启用非路径路由,而无需算法路径计算。
34.包括描绘兴趣路径的pit中的状态条目并且包括面包屑轨迹的如本文所述的缓存的路由信息,可能限于数据分组实际采用的路径,同时省略关于数据分组没有采用的替代路径的信息。图1示出了hicn使能网络中缓存的路由信息的示例系统架构图,其中缓存的路由信息描绘了对于所请求的命名数据的传输而言为次优的兴趣路径。如图1所示,在虚拟网络上层100上,上层拓扑可以包括第一icn路由器节点102、第二icn路由器节点104、第三icn路由器节点106和第四icn路由器节点108。每个icn路由器节点102到108可以相互连接,并且每个icn路由器节点可以充当网络上层100外部的节点的入口路由器并且可以充当网络上层100上数据的出口路由器。每个这样的连接在图1中以实线示出。
35.网络上层100可以载送源自网络下层110的节点的流量,包括兴趣分组和构成兴趣分组所请求的命名内容的数据分组。在网络下层110中,客户端节点112可以通过与网络上层100的连接发送请求特定命名内容的兴趣分组。网络下层110还包括第一内容服务器114、第二内容服务器116和第三内容服务器118,其中每个内容服务器可以存储和/或生成各种命名内容,这些命名内容可以包括或不包括客户端节点112所请求的命名内容。第二icn路由器节点104可以映射到第一内容服务器114的逻辑接口。第三icn路由器节点106可以映射到第二内容服务器116的逻辑接口。第四icn路由器节点108可以映射到第三内容服务器118的逻辑接口。
36.在图1所示的示例中,客户端节点112可以通过作为入口路由器的第一icn路由器节点102连接到网络上层100。客户端节点112可以通过网络上层100发送兴趣分组以发现哪
些内容服务器具有兴趣分组所请求的命名内容。由客户端节点112发送的兴趣分组可以由第一icn路由器节点102转发到其他icn路由器节点,但不转发到所有其他icn路由器节点。
37.本领域技术人员通常会认识到广播兴趣分组(即,将兴趣分组寻址到网络中的所有节点)由于可能导致网络拥塞和中断,因此是不可取的,因此存在在icn使能网络上选择性转发兴趣分组的各种建议,无需在此处重复。为了本公开的目的,应该仅仅理解从icn路由器节点转发兴趣分组通常是选择性的,而不考虑这种选择性转发的任何特定标准(例如,根据命名内容的名称)。
38.在图1所示的示例中,第一icn路由器节点102向第二icn路由器节点104转发兴趣分组,而不向第三icn路由器节点106或第四icn路由器节点108转发兴趣分组。第二icn路由器节点104接收兴趣分组,然后确定兴趣分组所请求的命名内容没有在第一内容服务器114处存储或生成,并且没有在第二icn路由器节点104处缓存。第二icn路由器节点104可以决定在其到达第二icn路由器节点104时缓存所请求的命名内容,或者可以决定不缓存所请求的命名内容(例如基于本地缓存策略、本地资源容量等)。无论如何,第二icn路由器节点104然后将兴趣分组转发到第三icn路由器节点106,而不将兴趣分组转发到第四icn路由器节点108。第二icn路由器节点104还更新本地缓存的pit以指示请求命名内容的兴趣分组是从第一icn路由器节点102转发并转发到第三icn路由器节点106,从而缓存随后到达的数据分组的兴趣路径信息。
39.第三icn路由器节点106接收兴趣分组,然后确定兴趣分组所请求的命名内容没有在第二内容服务器116处存储或生成并且没有在第三icn路由器106处缓存。第三icn路由器节点106可以决定在其到达第三icn路由器节点106时缓存所请求的命名内容,或者可以决定不缓存所请求的命名内容(例如基于本地缓存策略、本地资源容量等)。无论如何,第三icn路由器节点106然后将兴趣分组转发到第四icn路由器节点108。第三icn路由器节点106还更新本地缓存的pit以指示请求命名内容的兴趣分组是从第二icn路由器节点104转发的并转发到第四icn路由器节点108。
40.第四icn路由器节点108接收兴趣分组,然后确定兴趣分组所请求的命名内容在第三内容服务器118处存储或生成,或者在第四icn路由器节点108处缓存。第四icn路由器节点108将所请求的命名内容的数据分组返回到第三icn路由器节点106,从第三icn路由器节点106沿着每个icn路由器节点处缓存的兴趣路径接收兴趣分组,如图1中由指向第四icn路由器节点108的虚线表示。如图1所示,网络上层100提供了第四icn路由器节点108和第一icn路由器节点102之间的连接。此外,在网络下层110中,第四icn路由器节点108可以在物理上比任何其他路由器节点在物理上到第一icn路由器节点102更靠近第一icn路由器节点102。然而,由于兴趣分组的兴趣路径朝向向其转发兴趣分组的前一个icn路由器节点指向回每个icn路由器节点,因此第四icn路由器节点108不知道兴趣分组最初源自第一icn路由器节点102。因此,icn路由器节点可以通过缓存的路由信息经由次优路径将请求的命名内容返回给请求客户端节点,如图1中通过指向客户端节点112的虚线所示。
41.因此,根据本公开的示例,为了进一步提高hicn使能网络中的路由性能和数据分组的传输,可以根据缓存的路由信息和算法路径计算两者来执行数据分组的路由。路径计算可以由充当中央控制器的任何合适的计算系统来执行,例如在实现诸如mpls和srv6的路由方法中使用的pce。路径计算可以至少基于网络上层拓扑的知识来执行,并且还可以基于
网络下层拓扑的知识来执行。
42.网络上层拓扑的知识和网络下层拓扑的知识可以存储在pce的数据库(例如ted)中。这样的信息可以通过边界网关协议(“bgp”)的实现方式(即,导致网络拓扑信息被通告为例如网络层可达性信息(“nlri”))的各种网关协议之一来通告。nlri的通告可以由通过内部网关协议(“igf”)与各个icn节点对等的pce来执行,或者,根据诸如边界网关协议-链路状态(“bgp-ls”)之类的实现方式,可以由与和pce通信的各个icn节点(例如bgp扬声器)相邻的路由器来执行。pce可以通过pce的通信模块接收nlri,并且可以使用接收到的nlri来构建和更新数据库。
43.根据本公开的示例,根据hicn使能网络实现的兴趣分组报头可以包括关于沿着兴趣分组的兴趣路径的icn路由器节点的信息。这样的信息还可以包括关于各种命名内容的每个这样的icn路由器节点的缓存兴趣的信息。根据在hicn使能网络上实现的数据分组封装,可以以诸如类型-长度-值(“tlv”)格式的报头格式载送这样的信息。tlv通常可以指的是对特定类型字段的值进行编码的任何编码格式,其中字段的类型被编码在类型字段中,值的长度被编码在长度字段中,并且值被编码在值字段中。
44.例如,对于根据rfc 8609定义的ccn的示例实现方式的hicn使能网络,报头tlv可以包括逐跳报头tlv,其可以编码关于沿着兴趣分组的兴趣路径的中间icn路由器节点的信息,并且可以包括有关这些中间icn路由器节点的缓存兴趣的信息。
45.替代地,可以根据各种提议的对ipv6报头的扩展tlv来格式化报头tlv,例如,由加利福尼亚州圣何塞的cisco systems inc.的带内操作、管理和维护(“ioam”)协议定义的tlv。通常,如本文所述的信息条目可以根据任何分组封装格式来格式化,该分组封装格式使得能够实现关于沿着分组的路径的节点的信息,并且使得这样的条目能够由转发分组的每个节点在每跳的基础上更新。
46.根据本公开的示例,icn路由器节点可以在转发这些兴趣分组之前将信息条目插入到接收到的兴趣分组的报头中。这些信息条目可以包括以诸如如上所述的tlv格式的定义格式的信息,该信息指示icn路由器节点在兴趣分组的兴趣路径中并且指示icn路由器节点对兴趣分组所请求的命名内容的缓存兴趣。
47.例如,在icn路由器节点对所请求的命名内容具有缓存兴趣的情况下,icn路由器节点可以将这样的信息条目插入到所接收的兴趣分组的报头中。
48.此外,在icn路由器节点将兴趣分组转发到多于一个其他icn路由器节点的情况下,icn路由器节点可以将这样的信息条目插入到所接收的兴趣分组的报头中。
49.此类信息条目在由具有所请求的命名内容的icn路由器作为兴趣分组的一部分转发到hicn使能网络的pce时,可以使pce能够执行兴趣分组的以下路径计算中的任何或所有:
50.从具有兴趣分组所请求的命名内容的icn路由器节点到请求客户端节点是否存在比兴趣分组的兴趣路径更优的端到端路径,如果是,计算端到端路径;
51.从具有所请求的命名内容的icn路由器节点到具有缓存命名内容的兴趣的其他icn路由器是否存在比兴趣路径更优的端到端路径,这些路径与到请求客户端节点的端到端路径不冗余,并且彼此不冗余,如果是,计算每个这样的端到端路径;和
52.是单播寻址还是多播寻址对于在如上所述计算的每个端到端路径上传输命名内
容更优化。
53.图2a示出了示例hicn使能网络200的系统架构图,其中客户端节点请求命名数据并且pce计算所请求的命名数据的路径。
54.如图2a所示,在虚拟网络上层上,上层拓扑可以包括第一icn路由器节点202、第二icn路由器节点204、第三icn路由器节点206、第四icn路由器节点208、第五icn路由器节点210和第六icn路由器节点212。如图所示,icn路由器节点之间的连接可以包括第一icn路由器节点202和第二icn路由器节点204之间的连接,第二icn路由器节点204和第三icn路由器节点206之间的连接,第二icn路由器节点204和第六icn路由器节点212之间的连接,第三icn路由器节点206和第四icn路由器节点208之间的连接,第三icn路由器节点206和第六icn路由器节点212之间的连接,第四icn路由器节点208和第五icn路由器节点210之间的连接,第四icn路由器节点208和第六icn路由器节点212之间的连接,以及第五icn路由器节点210和第六icn路由器节点212之间的连接。每个这样的连接在图2a中以实线示出。每个icn路由器节点可以充当网络上层之外的节点的入口路由器,并且可以充当网络上层上数据的出口路由器。任意数量的icn路由器节点可以映射到可以存储和/或生成各种命名内容的内容服务器的相应逻辑接口。
55.客户端节点214可以通过作为入口路由器的第一icn路由器节点202连接到网络上层。客户端节点214可以通过网络上层发送兴趣分组以请求某些命名内容。由客户端节点214发送的兴趣分组可以由第一icn路由器节点202通过如上所述的上层拓扑中的可用连接转发到其他icn路由器节点。
56.在图2a所示的示例中,第一icn路由器节点202对兴趣分组所请求的命名内容不具有缓存兴趣,并且第一icn路由器节点202只能将兴趣分组转发给第二icn路由器节点204。因此,第一icn路由器节点202将兴趣分组转发到第二icn路由器节点204,而不在兴趣分组的报头中插入信息条目。
57.第二icn路由器节点204接收兴趣分组,然后确定兴趣分组所请求的命名内容在第二icn路由器节点204处不可用(即,未在相应的内容服务器处存储或生成,未在本地缓存等)。然而,第二icn路由器节点204对所请求的命名内容具有缓存兴趣(例如,由于本地缓存策略、本地资源容量或可用性等)。因此,第二icn路由器节点204在兴趣分组的报头中插入信息条目,该信息条目指示第二icn路由器节点204在兴趣分组的兴趣路径中并且指示第二icn路由器节点204对兴趣分组所请求的命名内容的缓存兴趣。然后第二icn路由器节点204将兴趣分组转发到第三icn路由器节点206。第二icn路由器节点204还更新本地缓存的pit以指示请求命名内容的兴趣分组是从第一icn路由器节点202转发的并且转发到第三icn路由器节点206,从而缓存随后到达的数据分组的兴趣路径信息。然而,第二icn路由器节点204不将兴趣分组转发到第六icn路由器节点212(例如,由于带宽容量或可用性或其他度量或策略信息)。
58.第三icn路由器节点206接收兴趣分组,然后确定兴趣分组所请求的命名内容未在第三icn路由器106处存储或生成(即,未在相应的内容服务器处存储或生成,未在本地缓存等)。第三icn路由器206也对所请求的命名内容不具有缓存兴趣(例如,由于本地缓存策略、本地资源容量或可用性等)。第三icn路由器206还确定它不会将兴趣分组转发到多个接收节点(例如,由于带宽容量或可用性,或其他度量或策略信息)。因此,第三icn路由器节点
206不在兴趣分组的报头中插入信息条目。第三icn路由器节点206然后将兴趣分组转发到第四icn路由器节点208。第三icn路由器节点206还更新本地缓存的pit以指示请求命名内容的兴趣分组是从第二icn路由器节点204转发的并且转发到第四icn路由器节点208。然而,第三icn路由器节点206不将兴趣分组转发到第六icn路由器节点212(例如,由于带宽容量或可用性,或其他度量或策略信息)。
59.第四icn路由器节点208接收兴趣分组,然后确定兴趣分组所请求的命名内容在第四icn路由器节点208处不可用(即,未在相应的内容服务器处存储或生成,未在本地缓存等)。然而,第四icn路由器节点208对所请求的命名内容具有缓存兴趣(例如,由于本地缓存策略、本地资源容量或可用性等)。因此,第四icn路由器节点208在兴趣分组的报头中插入信息条目,该信息条目指示第四icn路由器节点208在兴趣分组的兴趣路径中并且指示第四icn路由器节点208对兴趣分组请求的命名内容具有缓存兴趣。第四icn路由器节点208然后将兴趣分组转发到第五icn路由器节点210。第四icn路由器节点208还更新本地缓存的pit以指示请求命名内容的兴趣分组是从第三icn路由器节点206转发的并且转发到第五icn路由器节点210,从而缓存随后到达的数据分组的兴趣路径信息。然而,第四icn路由器节点208不将兴趣分组转发到第六icn路由器节点212(例如,由于带宽容量或可用性或其他度量或策略信息)。
60.第五icn路由器节点210接收兴趣分组,然后确定兴趣分组所请求的命名内容在第五icn路由器节点210处不可用(即,未在相应的内容服务器处存储或生成,未在本地缓存等)。然而,第五icn路由器节点210对所请求的命名内容具有缓存兴趣(例如,由于本地缓存策略、本地资源容量或可用性等)。因此,第五icn路由器节点210在兴趣分组的报头中插入信息条目,该信息条目指示第五icn路由器节点210在兴趣分组的兴趣路径中,并且指示第五icn路由器节点210对兴趣分组请求的命名内容的缓存兴趣。第五icn路由器节点210然后将兴趣分组转发到第六icn路由器节点212。第五icn路由器节点210还更新本地缓存的pit以指示请求命名内容的兴趣分组是从第四icn路由器节点208转发的并且转发到第六icn路由器节点212,从而缓存随后到达的数据分组的兴趣路径信息。
61.第六icn路由器节点212接收到兴趣分组,然后确定兴趣分组请求的命名内容在相应的内容服务器处存储或生成,或者缓存在第六icn路由器节点212处。第六icn路由器节点212转发兴趣分组到网络上层的中央控制器216,例如pce,以请求控制器216为兴趣分组计算一条或多条路径。
62.如果控制器216确定存在比兴趣分组的兴趣路径更优的端到端路径,则控制器216可以计算从第六icn路由器节点212到第一icn路由器节点202的端到端路径。在这种情况下,兴趣分组的兴趣路径将导致命名内容依次通过以下节点返回:第六icn路由器节点212;第五icn路由器节点210;第四icn路由器节点208;第三icn路由器节点206;第二icn路由器节点204;和第一icn路由器节点202,即兴趣分组将在五跳中到达。控制器216可以确定,在从第六icn路由器节点212到第一icn路由器节点202的更优路径上,命名内容将依次通过以下节点返回:第六icn路由器节点212;第二icn路由器节点204;和第一icn路由器节点202,通过了解第二icn路由器节点204和第六icn路由器节点212之间的连接,这可以从至少上层拓扑信息和可选地存储在控制器216的数据库(例如ted)中的下层拓扑信息中辨别。通过这个更优的路径,命名内容可以通过三跳而不是五跳返回到客户端节点214,同时还被缓存在
具有缓存兴趣的节点处。
63.另外,控制器216可以从兴趣分组的报头中的信息条目确定第二icn路由器节点204、第四icn路由器节点208和第五icn路由器节点210,每个都对所请求的命名内容具有缓存兴趣。控制器216可以确定没有从第六icn路由器节点212到第二icn路由器节点204的路径比上面确定的到第一icn路由器节点202的路径更优。控制器216可以进一步确定,在从第六icn路由器节点212经过第五icn路由器节点210和第四icn路由器节点208的路径上,命名内容将被返回到第四icn路由器节点208和第五icn路由器节点210,这两者都对命名内容具有缓存兴趣。通过这个更优的路径,命名内容可以被缓存在两个具有缓存兴趣的节点上。
64.因此,控制器216为命名内容确定到第一icn路由器节点202和第二icn路由器节点204的第一路径,以及到第四icn路由器208和第五icn路由器210的第二路径。这些相应的路径中的每一个都比其各自目的地的兴趣路径更优;比其各自目的地的每条其他路径更优;并且,同时,这些路径对于它们各自的目的地来说彼此之间不是冗余的(即,没有路径包含任何其他路径的目的地)。图2b示出图2a的系统架构图,这些计算的路径中的每一条以虚线示出。
65.另外,控制器216可以确定多播寻址比单播寻址更优,以用于在如上所述计算的每条路径上传输命名内容。由于命名内容将从第六icn路由器节点212转发到两个不同的目的地,因此将命名内容的数据分组多播寻址到这两个目的地中的每一个可能比将数据分组一次单播寻址到单个目的地更优。
66.控制器216可以根据为hicn使能网络实现的合适的封装格式在报头中编码每条计算的路径。例如,对于实现mpls的hicn使能网络,可以将计算的路径编码为标签堆栈。对于实现srv6的hicn使能网络,可以将计算的路径编码为srh报头中的段信息。编码信息还可以包括根据如上所述的寻址方法的寻址。
67.替代地或附加地,控制器216可以将每条计算的路径编码为每条相应路径上的每个icn路由器节点的pit和fib中的状态条目。这些状态条目可以修改相应pit和fib中现有状态条目中的兴趣路径信息。例如,由于第四icn路由器节点208的pit和fib的状态条目先前引用了指向回第三icn路由器节点206的兴趣路径,控制器216可以移除这些状态条目,以便根据计算的路径转发到第四icn路由器节点208的数据分组不被转发到第三icn路由器节点206。
68.因此,控制器216将计算的路径信息返回给第六icn路由器节点212。第六icn路由器节点212可以将所请求的命名内容的数据分组的一个副本从第六icn路由器节点212转发到在计算的路径信息中编码的每个下一跳目的地。在这种情况下,第六icn路由器节点212将数据分组的一个副本转发到第二icn路由器节点204,并且将数据分组的另一个副本转发到第五icn路由器节点210。数据分组的第一副本将被缓存在第二icn路由器节点204,并且由第二icn路由器节点204根据在报头中编码的路径信息和/或更新的本地pit/fib路由信息转发到第一icn路由器节点202,在第一icn路由器节点202处数据分组由客户端节点214接收。数据分组的第二副本将被缓存在第五icn路由器节点210,并且由第五icn路由器节点210根据在报头中编码的路径信息和/或更新的本地pit/fib路由信息转发到第四icn路由器节点208,其中数据分组被缓存在第四icn路由器节点208并且不再进一步转发。
69.图3示出了用于基于网络拓扑和兴趣信息在hicn使能网络中计算命名内容的路径
的示例方法300的流程图。该方法可以在逻辑上定义在网络下层上的虚拟网络上层的中央控制器的一个或多个处理器上执行。控制器可以包括一个或多个处理器和一个或多个存储计算机可执行指令的非暂时性计算机可读介质,这些计算机可执行指令在由一个或多个处理器执行时,使一个或多个处理器执行方法300。控制器可以例如是与如上所述的本公开一致的pce。
70.在302,通过网络上层的控制器从网络上层的路由器节点接收兴趣分组报头。如图2a所示,步骤302可以在第六icn路由器节点212接收到兴趣分组并将兴趣分组转发给控制器216之后执行。在本公开的控制器是pce的示例中,路由器节点可以根据用于pce-pcc通信的任何合适协议作为pcc与pce通信。
71.接收到的兴趣分组可以源自网络上层之外的客户端节点,该客户端节点请求在路由器节点处存储、生成、缓存或以其他方式可用的特定命名内容通过网络上层转发到客户端节点。根据如上所述的本公开,接收到的兴趣分组报头可以包括关于沿着兴趣分组的兴趣路径的路由器节点的信息条目,并且还可以包括关于每个这样的路由器节点对各种命名内容的缓存兴趣的信息条目。
72.在304,通过控制器确定兴趣分组的兴趣路径和网络上层的一个或多个目的地路由器节点。网络上层的一个或多个目的地路由器节点包括网络上层的来源路由器节点,兴趣路径源自该来源路由器节点。网络上层的一个或多个目的地路由器节点还可以包括网络上层的一个或多个其他缓存路由器节点,这些节点对兴趣分组所请求的命名内容具有缓存兴趣。这些确定中的每一个都可以基于如上所述的兴趣分组报头的信息条目来进行。
73.在306,通过控制器计算网络上层上的一条或多条路径,该一条或多条路径非冗余地包含一个或多个目的地路由器节点中的每一个,并且该一条或多条路径都并非不优于至少根据网络上层的拓扑的兴趣路径。非冗余地包含每个上述路由器节点可以意味着在所有一条或多条路径中,每个上述路由器节点仅包含在一条路径中并且仅包含一次。路径并非不优于至少根据网络上层的拓扑的兴趣路径可能意味着该路径在网络上层的节点上包括的跳数不比兴趣路径多。该路径可能更优于根据网络上层的拓扑的兴趣路径,这意味着该路径包括比兴趣路径更少的跳。可以通过关于网络上层的路由器节点的拓扑和度量来确定最优性,其可以按照如上所述的根据本公开的方式来构建和更新。此外,还可以通过与网络下层的节点相对应的网络下层的节点的拓扑和度量来确定最优性,其可以按照如上所述的根据本公开的方式来构建和更新。例如,可以结合网络上层的拓扑考虑网络下层的节点的接近度、网络下层的拓扑连接、网络下层的连接的带宽容量和可用性等。
74.在308,通过控制器确定网络上层上的一条或多条计算的路径的寻址方法。寻址方法可选自ip网络、icn网络和此类网络协议支持的已知寻址方法。例如,寻址方法可以选自单播寻址、多播寻址、广播寻址等。可以根据计算的路径数量、这些路径的比较拓扑以及这些因素来选择最合适或最佳的寻址方法。例如,如果为所有目标路由器节点计算单条路径,单播寻址可能比多播寻址更合适;如果计算多条路径,多播寻址可能比单播寻址更合适。
75.在310,通过控制器执行以下各项中的至少一项:
76.在数据分组报头中编码每条计算的路径;和
77.将每条计算的路径编码为每条相应路径上的网络上层的每个路由器节点的状态条目。
78.可以根据如上所述的本公开的示例的格式来执行每种类型的编码。
79.在312,通过控制器将计算的路径信息返回给网络上层的路由器节点。路由器节点和网络上层的其他路由器节点然后可以根据计算的路径信息路由所请求的命名内容的数据分组。
80.图4示出了用于由hicn使能网络中的路由器节点处理兴趣分组路由的示例方法400的流程图。该方法可以在逻辑上定义在网络下层上的虚拟网络上层的路由器节点的一个或多个处理器上执行。控制器可以包括一个或多个处理器和一个或多个存储计算机可执行指令的非暂时性计算机可读介质,这些计算机可执行指令在由一个或多个处理器执行时,使一个或多个处理器执行方法400。
81.在402,通过网络上层的路由器节点从网络上层的另一个路由器节点接收兴趣分组。兴趣分组可操作用于请求特定命名内容。兴趣分组的报头可以具有支持信息条目的格式,该信息条目指示网络上层的特定路由器节点在感兴趣分组的兴趣路径中并且指示网络上层的特定路由器节点对所请求的命名内容的缓存兴趣。
82.在404,通过路由器节点确定路由器节点是否对所请求的命名内容具有缓存兴趣(例如,基于本地缓存策略、本地资源容量等)。
83.在406,通过路由器节点确定是否应将兴趣分组转发到网络上层的一个以上其他路由器节点。如上所述,应该仅仅理解来自icn路由器节点的兴趣分组的转发通常是选择性的,而不考虑这种选择性转发的任何特定标准。
84.在408,在路由器节点具有缓存兴趣或兴趣分组应该被转发到多于一个其他路由器节点的情况下,通过路由器节点将信息条目插入到兴趣分组的报头中,该信息条目指示路由器节点在兴趣分组的兴趣路径中。在路由器节点具有缓存兴趣的情况下,信息条目进一步指示路由器节点对兴趣分组所请求的命名内容的缓存兴趣。
85.在410,通过路由器节点将兴趣分组转发到网络上层的一个或多个其他路由器节点。
86.图5是示出hlcn使能网络500的配置的计算系统图,其中在网络下层上建立的虚拟网络上层将客户端节点与内容服务器相连接。
87.hicn使能网络500的网络资源可以是位于形成网络下层502的地理区域上的物理节点的集合,在该网络下层502上逻辑地定义了虚拟网络上层504。网络上层504利用网络资源来实现互连icn路由器节点506(1)-506(n)的数据平面拓扑,其中n是大于“1”的任何整数。网络上层504可以是分布式网络,用户可以通过该分布式网络经由客户端节点508连接到路由器节点506(1)-506(n)中的任何一个,以请求可以在内容服务器510(1)-510(n)中的任一个处存储和/或生成的命名内容,其中n是大于“1”的任何整数。
88.hicn使能网络500可以经由数据平面拓扑的路由器节点506(1)-506(n)提供对托管在网络下层502中的内容服务器510(1)-510(n)的访问。在一些示例中,hicn使能网络500可以由托管在hicn使能网络500上可访问的各种服务并定义管理这些服务的使用和可用性的各种策略的服务提供商来管理和维护。
89.如上所述,控制器512可以是网络下层502或网络上层504的物理或虚拟节点、连接到网络下层502或网络上层504的物理或虚拟计算系统、在网络下层502或网络上层504的物理或虚拟计算节点上运行的服务、或网络下层502和/或网络上层504的节点可访问的任何
其他专用计算系统或服务。
90.控制器512的元件可以包括物理或虚拟计算模块514;数据库516;和通信模块518,每个如上所述。pce的模块可以是存储在pce的一个或多个物理和/或虚拟非暂时性计算机可读介质中并且可由pce的一个或多个物理和/或虚拟处理器执行以执行它们各自的功能的计算机可执行指令。
91.如上所述,pce的数据库可以是ted,其跟踪诸如拓扑信息、资源信息(例如,带宽容量和可用性)、流量工程的度量以及来自各个网络节点或来自其他信息源的其他类型的信息之类的信息。
92.在一些情况下,网络上层502可以永久或按需提供计算资源,例如vm实例和存储。在其他类型的功能中,由网络上层502提供的计算资源可用于实现上述各种服务。由虚拟网络上层502提供的计算资源可以包括各种类型的计算资源,例如像vm实例这样的数据处理资源、数据存储资源、网络资源、数据通信资源、网络服务等。
93.由网络上层502提供的每种类型的计算资源可以是通用的或者可以在许多特定配置中可用。例如,数据处理资源可以以多种不同配置作为物理计算机或vm实例使用。vm实例可以被配置为执行应用,包括web服务器、应用程序服务器、媒体服务器、数据库服务器、上述网络服务中的一些或全部、和/或其他类型的程序。数据存储资源可以包括文件存储设备、块存储设备等。网络上层502还可以被配置为提供本文未具体提及的其他类型的计算资源。
94.由网络上层502提供的计算资源在一个实施例中可以由位于物理空间上的一个或多个服务器启用以提供如上所述的mcn使能网络。服务器可以安装在空间中以操作计算机系统和相关组件,通常包括冗余和备用电源、通信、冷却和安全系统。服务器也可以位于地理上不同的位置。
95.图6示出了能够执行用于实现上述功能的程序组件的路由器600的示例计算机架构。图6所示的计算机架构示出了由模块化组件组装而成的计算设备,并且可以用于执行本文呈现的任何软件组件。在一些示例中,路由器600可以运行或虚拟化如上所述的icn路由器节点。
96.安装在路由器600中的一个或多个硬件模块602可以是物理卡或模块,多个组件或设备可以通过系统总线或其他电气通信路径连接到其上。在一个说明性配置中,一个或多个中央处理单元(“cpu”)604与芯片组606相结合操作。cpu 604可以是标准可编程处理器,其执行硬件模块02的操作所必需的算术和逻辑操作。
97.cpu 604通过操作区分和改变离散的物理状态的开关元件从一个离散的物理状态转换到下一个来执行操作。开关元件通常包括维持两个二元状态之一的电子电路,例如触发器,以及基于一个或多个其他开关元件的状态的逻辑组合提供输出状态的电子电路,例如逻辑门。这些基本的开关元件可以组合以创建更复杂的逻辑电路,包括寄存器、加法器-减法器、算术逻辑单元、浮点单元等。
98.芯片组606提供cpu 604和硬件模块602上的其余组件和设备之间的接口。芯片组606可以提供到用作硬件模块602中的主存储器的ram 608的接口。芯片组606可以进一步提供到诸如只读存储器(“rom”)610或非易失性ram(“nvram”)的计算机可读存储介质的接口,计算机可读存储介质用于存储有助于启动硬件模块602和在各种组件和设备之间传输信息
的基本例程。rom 610或nvram还可以根据本文描述的配置存储硬件模块602的操作所必需的其他软件组件。
99.硬件模块602可以使用通过网络(例如hlcn使能网络500)到远程计算设备和计算机系统的逻辑连接来在网络环境中操作。芯片组606可以包括用于通过nic 612提供网络连接的功能,例如千兆以太网适配器。nic612能够通过网络608将硬件模块602连接到其他计算设备。应当理解,硬件模块602中可以存在多个nic 612,将计算机连接到其他类型的网络和远程计算机系统。
100.硬件模块602可以连接到为硬件模块602提供非易失性存储的存储设备618。存储设备618可以存储操作系统620、程序622、bios 624和数据,它们已在此更详细地描述。存储设备618可以通过连接到芯片组606的存储控制器614连接到硬件模块602。存储设备618可以由一个或多个物理存储单元组成。存储控制器614可以通过串行连接scsi(“sas”)接口、串行高级技术附件(“sata”)接口、光纤通道(“fc”)接口或其他类型的接口与物理存储单元接口连接,以用于在计算机和物理存储单元之间物理连接和传输数据。
101.硬件模块602可以通过转换物理存储单元的物理状态来将数据存储在存储设备618上以反映正在存储的信息。在本说明书的不同实施例中,物理状态的具体转变可以取决于各种因素。这样的因素的示例可以包括但不限于用于实现物理存储单元的技术、存储设备618是否被表征为主要或次要存储等。
102.例如,硬件模块602可以通过经由存储控制器614发出指令来将信息存储到存储设备618,以改变磁盘驱动单元内特定位置的磁特性、光存储单元中的特定位置的反射或折射特性、或固态存储单元中特定电容器、晶体管或其他分立组件的电气特性。在不脱离本说明书的范围和精神的情况下,物理介质的其他变换是可能的,提供前述示例只是为了便于本描述。硬件模块602可以通过检测物理存储单元内的一个或多个特定位置的物理状态或特性来进一步从存储设备618读取信息。
103.除了上述大容量存储设备618之外,硬件模块602可以访问其他计算机可读存储介质以存储和检索信息,例如程序模块、数据结构或其他数据。本领域技术人员应当理解,计算机可读存储介质是提供数据的非暂时性存储并且可以由硬件模块602访问的任何可用介质。在一些示例中,由网络上层的路由器节点和/或其中包括的任何组件可以由类似于硬件模块602的一个或多个设备支持。另外说明,由网络上层的路由器节点和/或其中包括的任何组件执行的一些或全部操作可以由一个或多个硬件模块600执行,该硬件模块600在一个或多个网络上的一个或多个逻辑结构平面上以网络化、分布式布置操作。
104.作为示例而非限制,计算机可读存储介质可以包括以任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机可读存储介质包括但不限于ram、rom、可擦除可编程rom(“eprom”)、电可擦除可编程rom(“eeprom”)、闪存或其他固态存储技术、光盘rom(“cd-rom”)、数字多功能盘(“dvd”)、高清dvd(“hd-dvd”)、蓝光或其他光存储、磁盒、磁带、磁盘存储或其他磁存储设备或任何其他可用于以非暂时性方式存储所需信息的介质。
105.如上所述,存储设备618可以存储用于控制硬件模块602的操作的操作系统620。根据一个实施例,操作系统包括linux或netbsd操作系统及其衍生系统。根据另一个实施例,操作系统包括来自加利福尼亚州圣何塞的cisco systems inc.的cisco ios操作系统。应该理解,也可以使用其他操作系统。存储设备618可以存储硬件模块600使用的其他系统或
应用程序和数据。
106.在一个实施例中,存储设备618或其他计算机可读存储介质被编码有计算机可执行指令,这些计算机可执行指令在被加载到计算机中时,将计算机从通用计算系统转换为能够实现本文描述的实施例的专用计算机。如上所述,这些计算机可执行指令通过指定cpu 604如何在状态之间转换来转换硬件模块602。根据一个实施例,硬件模块602可以访问存储计算机可执行指令的计算机可读存储介质,这些指令在由硬件模块602执行时,执行上文关于图1至图4所描述的各种过程。硬件模块602还可以包括计算机可读存储介质,其上存储有用于执行本文描述的任何其他计算机实现的操作的指令。
107.图7示出了能够执行用于实现上述功能的程序组件的服务器700的示例计算机架构。图7所示的计算机架构示出了常规的服务器计算机、工作站、网络设备或其他计算设备,并且可以用于执行本文所呈现的任何软件组件。在一些示例中,服务器700可以对应于本文描述的网络节点。
108.服务器700包括基板702或“母板”,其是印刷电路板,多个组件或设备可以通过系统总线或其他电气通信路径连接到该印刷电路板。在一种说明性配置中,一个或多个中央处理单元(“cpu”)704与芯片组706相结合地操作。cpu 704可以是执行服务器700操作所必需的算术和逻辑操作的标准可编程处理器。
109.cpu 704通过操作区分和改变离散的物理状态的开关元件从一个离散的物理状态转换到下一个离散的物理状态来执行操作。开关元件通常包括维持两个二元状态之一的电子电路,例如触发器,以及基于一个或多个其他开关元件的状态的逻辑组合提供输出状态的电子电路,例如逻辑门。这些基本的开关元件可以组合以创建更复杂的逻辑电路,包括寄存器、加法器-减法器、算术逻辑单元、浮点单元等。
110.芯片组706提供cpu 704与基板702上的其余组件和设备之间的接口。芯片组706可以提供到用作服务器700中的主存储器的ram 708的接口。芯片组706可以进一步提供到诸如只读存储器(“rom”)710或非易失性ram(“nvram”)之类的计算机可读存储介质的接口,该计算机可读存储介质用于存储有助于启动服务器700和在各种组件和设备之间传输信息的基本例程。rom 710或nvram还可以根据本文描述的配置存储服务器700的操作所必需的其他软件组件。
111.服务器700可以使用通过网络(例如hicn使能网络500)到远程计算设备和计算机系统的逻辑连接在网络环境中操作。芯片组706可以包括用于通过nic 712提供网络连接的功能,例如千兆以太网适配器。nic 712能够通过网络500将服务器700连接到其他计算设备。应当理解,多个nic712可以存在于服务器700中,将服务器节点连接到其他类型的网络和远程计算机系统。
112.服务器700可以连接到为计算机提供非易失性存储的存储设备718。存储设备718可以存储操作系统720、程序722和数据,它们已经在本文中更详细地描述。存储设备718可以通过连接到芯片组706的存储控制器714连接到服务器700。存储设备718可以由一个或多个物理存储单元组成。存储控制器714可以通过串行连接scsi(“sas”)接口、串行高级技术连接(“sata”)接口、光纤通道(“fc”)接口或其他类型的接口与物理存储单元接口连接,以用于在计算机和物理存储单元之间物理连接和传输数据。
113.服务器700可以通过转换物理存储单元的物理状态来将数据存储在存储设备718
上以反映正在存储的信息。在本说明书的不同实施例中,物理状态的具体转变可以取决于各种因素。这样的因素的示例可以包括但不限于用于实现物理存储单元的技术、存储设备718是否被表征为主要或次要存储等。
114.例如,服务器700可以通过经由存储控制器714发出指令来将信息存储到存储设备718,以改变磁盘驱动单元内特定位置的磁特性、光存储单元中的特定位置的反射或折射特性、或固态存储单元中特定电容器、晶体管或其他分立元件的电气特性。在不脱离本描述的范围和精神的情况下,物理介质的其他变换是可能的,提供前述示例只是为了便于本描述。服务器700可以通过检测物理存储单元内的一个或多个特定位置的物理状态或特性来进一步从存储设备718读取信息。
115.除了上述大容量存储设备718之外,服务器700可以访问其他计算机可读存储介质以存储和检索信息,例如程序模块、数据结构或其他数据。本领域技术人员应当理解,计算机可读存储介质是提供数据的非暂时性存储并且可由服务器700访问的任何可用介质。在一些示例中,由虚拟网络上层和/或其中包括的任何组件执行的操作可以由类似于服务器700的一个或多个设备支持。另外说明,由虚拟网络上层和/或其中包括的任何组件执行的一些或所有操作可以由在基于云的布置中操作的一个或多个服务器700执行。
116.作为示例而非限制,计算机可读存储介质可以包括以任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机可读存储介质包括但不限于ram、rom、可擦除可编程rom(“eprom”)、电可擦除可编程rom(“eeprom”)、闪存或其他固态存储技术、光盘rom(“cd-rom”)、数字多功能光盘(“dvd”)、高清dvd(“hd-dvd”)、蓝光或其他光存储、磁盒、磁带、磁盘存储或其他磁性存储设备或任何其他可用于以非暂时性方式存储所需信息的介质。
117.如上简述的,存储设备718可以存储用于控制服务器700的操作的操作系统720。根据一个实施例,操作系统包括linux操作系统。根据另一个实施例,操作系统包括来自华盛顿州雷德蒙德的微软公司的server操作系统。根据进一步的实施例,操作系统可以包括unix操作系统或其变体之一。应该理解,也可以使用其他操作系统。存储设备718可以存储服务器700使用的其他系统或应用程序和数据。
118.在一个实施例中,存储设备718或其他计算机可读存储介质被编码有计算机可执行指令,这些计算机可执行指令在被加载到服务器700中时,将计算机从通用计算系统转换为能够实现这里描述的实施例的专用计算机。如上所述,这些计算机可执行指令通过指定cpu 704如何在状态之间转换来转换服务器700。根据一个实施例,服务器700可以访问存储计算机可执行指令的计算机可读存储介质,这些计算机可执行指令在由服务器700执行时,执行上文关于图1-4所描述的各种过程。服务器700还可以包括计算机可读存储介质,其上存储有用于执行本文描述的任何其他计算机实现的操作的指令。
119.服务器700还可以包括一个或多个输入/输出控制器716,以用于接收和处理来自多个输入设备(例如,键盘、鼠标、触摸板、触摸屏、电子笔或其他类型的输入设备)的输入。类似地,输入/输出控制器716可以向显示器(例如,计算机监视器、平板显示器、数字投影仪、打印机或其他类型的输出设备)提供输出。应当理解,服务器700可能不包括图7中所示的所有组件,可以包括未在图7中明确示出的其他组件,或者可以使用与图7中所示的架构完全不同的架构。
120.服务器700可以支持在操作系统720中执行的虚拟化层724。在一些示例中,虚拟化层724可以由管理程序支持,该管理程序提供在服务器700上运行的一个或多个虚拟机以执行本文所述的功能。虚拟化层724通常可以支持执行本文描述的技术的至少一部分(例如,执行虚拟网络上层的功能)的虚拟资源。
121.总之,本公开描述了用于在被实现为虚拟网络上层的混合信息中心网络协议中实现用于路由的集中路径计算的技术。一种方法包括从网络上层的转发路由器节点接收兴趣分组报头。该方法还包括确定兴趣分组的兴趣路径和网络上层的一个或多个目的地路由器节点。该方法还包括计算网络上层上的一条或多条路径。该方法还包括确定网络上层上的一条或多条计算的路径的寻址方法。该方法还包括执行以下各项中的至少一项:将每条计算的路径编码到数据分组报头中;以及将每条计算的路径编码为网络上层的每个相应路径上的每个路由器节点的状态条目。该方法还包括将计算的路径信息返回给转发路由器节点。
122.虽然本发明是针对具体实施例进行描述的,但应理解本发明的范围不限于这些具体实施例。由于为适合特定操作要求和环境而改变的其他修改和改变对于本领域技术人员来说将是显而易见的,因此本发明不被认为限于为公开目的而选择的示例,并且涵盖不构成背离本发明的真正精神和范围的所有改变和修改。
123.尽管本技术描述了具有特定结构特征和/或方法行为的实施例,但是应当理解,权利要求不一定限于所描述的特定特征或行为。相反,具体特征和动作仅仅是说明性的落入本技术的权利要求范围内的一些实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献