用于信息中心联网(ICN)编码视频流的模糊检索序列的制作方法

文档序号:17120635发布日期:2019-03-15 23:46阅读:429来源:国知局
用于信息中心联网(ICN)编码视频流的模糊检索序列的制作方法

本发明的实施例涉及信息中心联网(icn)网络领域,并且更具体地说,涉及在icn网络中内容对象的安全分发。



背景技术:

信息中心联网(icn)是用于内容的分发的网络组织和基础结构的类型。此网络组织背离于标准客户端服务器网络基础结构,其将存储和服务对于内容的请求的责任分发到icn网络中的节点的集合。icn利用如下系统,其中内容对象能够由icn网络的任何客户端使用网络范围或“全局”内容对象名称获得。因此,与其中客户端必须知道内容位于其上的服务器(即,服务器地址)以请求此类内容的常规客户端服务器网络相比,获得以内容对象形式的内容是位置独立的。

在icn网络中,客户端将标识内容对象的兴趣发送到icn网络中的任何节点。接收来自客户端的兴趣的节点或内容节点随后检查该内容节点本地的任何内容库是否包含该兴趣中所标识的内容对象。如果内容对象不是本地的,则内容节点可随后通告兴趣或者标识内容对象的源以代表客户端检索内容对象。一旦内容节点代表客户端检索内容对象,内容节点便能够提供内容对象的副本到客户端。内容节点可随后在本地内容库中存储内容对象的副本,这预料其中来自连接到内容节点的任何其它客户端的对内容对象提出的又一请求的情况。

然而,管理对icn网络中的内容对象的访问和控制能够是有问题的。一些内容对象可被加密以保护它们不被未经授权访问这些内容对象的客户端访问。例如,对于视频内容和输送,对数字权利管理(drm)的支持被限制到对于所有消费者/客户端在共同时间点对视频内容的基本加密。然而,通过这样的保护方案,获得加密密钥的任何消费者能够无关紧要地与其它未经授权的消费者共享此密钥,从而准许他们对加密内容进行访问。因此,此保护方案对于其中例如发布者想向大量的潜在消费者销售或租赁数字视频内容的鲁棒drm系统是不可行的。



技术实现要素:

在一个实施例中,一种方法由作为内容节点操作的网络装置实现以用于通过信息中心联网(icn)网络安全地分发内容对象。方法实现独特的模糊检索序列。方法包括:从客户端装置接收对内容对象的块的兴趣,其中通过模糊块标识符来标识块;将模糊块标识符转换成用于内容对象的通用块标识符;以及将内容对象的块发送到客户端装置。

在另一实施例中,一种网络装置执行用于通过icn网络安全地分发内容对象的方法。网络装置充当icn网络中的内容节点。方法实现独特的模糊检索序列。网络装置包括在其中存储有模糊序列检索器的非暂态存储介质和耦合到非暂态存储介质的处理器。处理器执行模糊序列检索器。模糊序列检索器从客户端装置接收对内容对象的块的兴趣,其中通过模糊块标识符来标识块,将模糊块标识符转换成用于内容对象的通用块标识符,并且将内容对象的块发送到客户端装置。

在一个实施例中,一种计算装置实现用于实现网络功能虚拟化(nfv)的多个虚拟机,其中来自多个虚拟机的虚拟机被配置成执行用于通过icn网络安全地分发内容对象的方法。方法实现独特的模糊检索序列。计算装置包括在其中存储有模糊序列检索器的非暂态存储介质和耦合到非暂态存储介质的处理器。处理器执行来自多个虚拟机的虚拟机。该虚拟机执行模糊序列检索器。模糊序列检索器从客户端装置接收对内容对象的块的兴趣,其中通过模糊块标识符来标识块,将模糊块标识符转换成用于内容对象的通用块标识符,并且将内容对象的块发送到客户端装置。

在又一实施例中,一种控制平面装置被配置成实现用于软件定义的网络(sdn)的至少一个集中控制平面。控制平面装置执行用于通过icn网络安全地分发内容对象的方法。方法实现独特的模糊检索序列。控制平面装置包括在其中存储有模糊序列检索器的非暂态存储介质和耦合到非暂态存储介质的处理器。处理器执行模糊序列检索器。模糊序列检索器从客户端装置接收对内容对象的块的兴趣,其中通过模糊块标识符来标识块,将模糊块标识符转换成用于内容对象的通用块标识符,并且将内容对象的块发送到客户端装置。

附图说明

通过参考用于说明本发明的实施例的下面的描述和附图,可最好地理解本发明。在附图中:

图1是信息中心联网(icn)网络的一个实施例的图。

图2是在icn网络中客户端获得内容对象的过程的一个实施例的流程图。

图3是用于服务于对内容对象的请求的icn网络中的内容节点的过程的一个实施例的流程图。

图4是客户端装置的一个实施例的图。

图5a图示了根据本发明的一些实施例,在示范网络内的网络装置(nd)之间的连接性及nd的三个示范实现。

图5b图示了根据本发明的一些实施例,实现专用网络装置的示范方式。

图5c图示了根据本发明的一些实施例的各种示范方式,其中虚拟网络元件(vne)可以这些方式被耦合。

图5d图示了根据本发明的一些实施例,在每个nd上带有单个网络元件(ne)的网络,并且在此直接方案内,对比传统分布式方案(通常由传统路由器使用)和用于保持可达性和转发信息(也称为网络控制)的集中方案。

图5e图示了根据本发明的一些实施例的简单情况,其中nd中的每个nd实现单个ne,但集中控制平面已抽象化不同nd中的多个ne到(以表示)一个或多个虚拟网络中的一个虚拟网络中的单个ne。

图5f图示了根据本发明的一些实施例的情况,其中多个vne在不同nd上被实现并且被耦合到彼此,并且其中集中控制平面已使这些多个vne抽象化,使得它们在虚拟网络中的一个内作为单个vne出现。

图6图示了根据本发明的一些实施例的带有集中控制平面(ccp)软件的通用控制平面装置。

具体实施方式

下面的描述对用于提供用于保护信息中心联网(icn)网络中的内容的机制的方法和系统进行了描述。方法和系统为作为要以设定的顺序被消费的块的集合发布的内容对象(诸如由icn网络提供的编码视频流和类似内容)实现模糊检索序列。方法适用于能够在应用层被划分并且要求有序输送以便被有用地消费的任何内容。示例将包括被划分成大量的块的视频或被划分成页的书。方法提供一种机制,通过所述机制发布者能够在每个消费者或客户端基础上控制对这样的内容对象的访问。方法牵涉到在客户端、发布者与icn中的内容节点之间实行的过程的集合。发布者提供清单密钥到内容节点,并且与客户端协商对内容对象的访问,包括生成要由客户端使用的块标识符的列表形式的独特的模糊检索序列。此独特的模糊检索序列被提供到客户端,其中预期客户端以模糊序列中提供的顺序使用块标识符来请求块,以便使内容以正确的序列被输送。如果内容对象也被加密,则内容密钥可被同时提供到客户端。客户端能够随后使用内容密钥和独特的模糊检索序列,以从icn中的内容节点以对采用模糊检索序列指定的序列中所请求的内容对象的各个块的一系列兴趣请求的形式检索内容对象。客户端装置使用所请求的块的模糊块标识符,根据模糊检索序列发送对内容对象的每个块的兴趣。内容节点使用清单密钥,其是客户标识和与发布者共享的秘密的组合,用来将兴趣请求中的模糊块标识符转换成非模糊的或通用块标识符,使得对于在模糊块列表中的给定相对位置(对应于内容中的期望的位置,例如书页码或视频中的点),内容节点能够正确地推导要输送到客户端的正确块。

在下面的描述中,阐明了许多具体细节(诸如逻辑实现、操作码、用来指定操作数的部件、资源划分/共享/复制实现、系统组件的类型和相互关系以及逻辑划分/集成选择)以便提供本发明的更详尽的理解。然而,本领域技术人员将领会,可无需这样的具体细节来实践本发明。在其它实例中,控制结构、门电平电路和全软件指令序列未被详细示出以便不使本发明模糊。通过包括的描述,本领域技术人员将能够在不进行过度实验的情况下实现适当的功能性。

说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可包括特定特征、结构或特性,但每个实施例可不一定包括特定特征、结构或特性。另外,这样的短语不一定指相同的实施例。此外,在结合实施例描述具体特征、结构或特性时,认为结合无论是否明确描述的其它实施例来实现这样的特征、结构或特性是在本领域技术人员的认知之内的。

括号内的文本和带虚线边的框(例如,大虚线、小虚线、点虚线及点)可在本文中用于图示添加另外的特征到本发明的实施例的可选操作。然而,这样的记号不应被视为意味这些记号是仅有的选项或可选操作,和/或带有实线边的框在本发明的某些实施例中不是可选的。

在下面的描述和权利要求中,可使用术语“耦合”和“连接”及其衍生词。应理解的是,这些术语不旨在作为彼此的同义词。“耦合”被用于指示可与彼此直接物理或电接触或可不与彼此直接物理或电接触的两个或多于两个元件与彼此协作或相互作用。“连接”被用于指示在与彼此耦合的两个或多于两个元件之间通信的建立。

电子装置使用机器可读介质(也被称为计算机可读介质)存储和传送(在内部进行和/或通过网络与其它电子装置进行)代码(由软件指令组成,并且有时被称为计算机程序代码或计算机程序)和/或数据,所述机器可读介质诸如机器可读存储介质(例如,磁盘、光盘、只读存储器(rom)、闪速存储器装置、相变存储器)和机器可读传输媒体(也被称为载体)(例如,电、光、无线电、声或其它形式的传播的信号——诸如载波、红外信号)。因此,电子装置(例如,计算机)包括硬件和软件(诸如一个或多个处理器的集合,其耦合到一个或多个机器可读存储介质,所述一个或多个机器可读存储介质用来存储用于在处理器的集合上执行的代码和/或用来存储数据)。例如,电子装置可包括包含代码的非易失性存储器,因为即使当电子装置关闭时(当移除电源时),非易失性存储器能够存留代码/数据,并且当电子装置开启时,通常从更慢的非易失性存储器复制要由那个电子装置的一个或多个处理器执行的代码的那个部分到那个电子装置的易失性存储器(例如,动态随机存取存储器(dram)、静态随机存取存储器(sram))。典型的电子装置还包括与其它电子装置建立网络连接(以使用传播信号来传送和/或接收代码和/或数据)的一个或多个物理网络接口或其集合。可使用软件、固件和/或硬件的不同组合来实现本发明的实施例的一个或多个部分。

网络装置(nd)是将网络上的其它电子装置(例如,其它网络装置、终端用户装置)通信地互连的电子装置。一些网络装置是“多服务网络装置”,其为多个联网功能(例如,路由选择、桥接、交换、层2聚合、会话边界控制、服务质量和/或订户管理)提供支持和/或为多个应用服务(例如,数据、语音和视频)提供支持。

概述

在本文中使用时,术语“消费者”指由联系发布者(即,由发布者操作的服务器或类似装置)的用户所操作的将消费经由内容网络输送的内容(例如,以内容对象的形式)的客户端装置。“发布者”是提供被包装用于经由icn分发和在icn网络上被变得可用的内容的原始源的“发布者装置”的管理者。icn网络的“受信任部分”是在内容节点之间和/或在内容节点与发布者装置之间发生的连接和通信。icn网络的“不受信任部分”是在消费者与内容节点之间的网络的连接和通信。“受信任部分”可使用加密和或类似安全的连接,并且可根据定义的协议管理内容对象。客户端装置或消费者和内容节点可在无加密或安全通信的情况下进行通信。

现有技术icn网络具有由本发明的实施例克服的缺点。当前的icn网络具有访问控制问题,特别是关于在每个消费者或客户端装置基础上对内容的访问的控制。icn的前提是客户端能够在不信任源的情况下信任内容,然而,这是单向关系,因为没有发布者信任客户端并且强制商业关系的机制。用于保护放置在公共域中的内容的主要方法是通过使用加密,但在icn基础结构中,这要求向内容的所有接收者散布共用密钥以使得它们能够解密内容。这是由于缺乏诸如在标准客户端服务器关系中的内容的集中分发,其中可利用对消费者特定的密钥以输送内容。在icn基础结构中,内容不是由单个源提供,并且内容在任何内容节点可用来被提供到请求客户端装置和/或消费者。一旦共用密钥已由客户端装置或消费者接收(或截取),则相比内容的破解的(即,解密的)副本,它可被恶意消费者更容易得多和更加不可跟踪地共享,因为与不得不重新分发解密副本(这可要求相当大开销以达到广泛分发)相对比,任何客户端能够从icn网络请求内容并且使用密钥访问它。

实施例克服了现有技术的这些限制。实施例识别出如果进一步的保护能够以不是一对多不变共享的秘密的形式被应用到内容,则它将是有用的。实施例致力于解决需要独特地保护内容和强制访问权利的问题,以使得简单地共享通过受信任的手段获得的建钥材料不足以允许第三方对视频内容的“有用”访问。因此,实施例提供尝试保护免于内容的“收获和再发布”(其在没有不允许数字收获的不可篡改硬件的情况下可以是难处理的问题)的备选方案。

实施例基于仅在如果内容能够以正确的序列被消费时内容才将具有价值的概念,高水平地解决了问题。这应用于其中内容(例如,被包装为内容对象)具有相当大的大小(例如,许多兆字节或更多的数据,诸如视频内容),使得内容以整体的“块”或部分被输送的情形。在现有技术中,内容可以以可预测的块的序列被输送,诸如从开始到结束。例如,自适应媒体输送(例如,mpegdash)通常一次在两秒以及十秒的内容块之间进行获取和播放,这意味着内容的这些块的乱序呈现和/或输送将快速地使得内容不可观看。

如果能够每消费者独特地使对块按序排列的真正顺序变得模糊,并且真正顺序从未在icn网络的受信任与不受信任部分之间被清楚地呈现,则不能与未经授权的消费者共享正确序列信息。因此,实施例的解决方案集中于为每个消费者提供独特的“个性化的”块“序列”,其使真正的重放(playback)顺序(所述真正的重放顺序从未在内容网络的不受信任部分中被透露)变得模糊。

实施例可对于icn网络中的内容对象(例如,视频)利用自适应编码。块标识符和编码可被添加到icn名称结构以使一些实施例能实现。实施例通过聚焦于针对icn编码的假定的自适应视频来解决此问题。对于实施例,可预期内容对象名称是以发布者/内容_名称/块/编码的形式,由此使块和编码信息成为icn基础结构的一部分。“块”标识内容对象的特定块,编码定义内容被编码在其中的视频配置文件(即,加密的类型和/或序列),并且发布者和内容名称分别是发布者装置和内容对象的全局标识符。

如果使用内容加密,则对于内容的每个项(即,对于每个内容对象),在内容的所有消费者与发布者之间有共享的秘密。这是在icn中一般采用的强制访问权利的一种机制,所述机制是内容的加密。通过icn外的手段直接从发布者获得共享的秘密。对于访问控制使用独特的模糊序列的过程不依赖被加密的内容对象,相反,它是用于额外安全性的选项。实施例可利用在发布者与内容节点之间的共享的秘密,因此,在内容网络与发布者装置之间也存在信任关系。

实施例利用允许区分客户端请求与在内容网络内已被中继的请求(例如,受信任和不受信任的请求)的机制。内容命名将不一定是直观或透明的,因此,可在消费者与内容节点之间利用某种形式的转换,并且icn的更正规化的内容命名结构,以及特别是内容对象的自适应编码可在消费者与内容节点之间被利用。

如果完全独立于发布者使用icn,则发布者可不能获得针对通过消费者的内容对象访问的分析。为提供这样的反馈和分析到发布者,过程和系统实施例可支持在消费者与发布者之间的对话,例如入口。这样的对话服务于多个意图,包括允许消费者获得与将允许他们获取icn发布的内容对象的某一“人类友好的”内容对象标识(例如,未结构化的名称或图标)对应的icn命名信息、允许发布者获得针对内容访问的分析、在消费者与发布者之间的任何商业关系的施行,其中成功的协议/合约导致访问凭据从发布者分发到消费者以及类似的目的。

方法和过程确保密钥信息(例如,内容重放的权威的明码正确序列)从未被发布者向未经授权的消费者透露。这样的密钥信息仅经由一次解密客户请求一个“块”来在内容节点被递增地显露。独特的模糊检索序列对每个消费者被独特地编码,因此,共享独特的模糊检索序列或密钥的副本将不会导致由其它消费者对正确重放序列的检索。

在示例实施例中,操作被管理的视频服务的icn网络提供商将会处于既充当发布者又充当内容网络运营商的位置,因此,对于在多参与者环境(其中将会很可能采用实施例)中icn技术采用而言的许多潜在组织上的障碍将看起来通过此类情形而得以解决。

图1是信息中心联网(icn)网络的一个实施例的图。为在描述实施例的相关方面中的清晰起见,图示的icn网络是简化表示。图示的icn网络包括客户端装置103、发布者装置105、内容节点107和内容库109。本领域技术人员将理解,可使用任何数量的中间联网装置并且通过任何类型的通信媒体将这些组件互连。这些组件可以是局域网(lan)、广域网(wan)或类似网络拓扑的部分。具体地说,将理解的是,在icn网络中可有任何数量的内容节点107,并且客户端装置103可联系最接近的或带有最快连接的内容节点107或者基于类似准则来联系内容节点107。

客户端装置103可以是任何类型的计算装置,包括个人计算机、手持式装置、控制台装置或类似计算装置。这个客户端装置是在此范例中的消费者,其中客户端装置103执行软件,并且由用户引导以访问由发布者经由发布者装置105初始提供的内容。发布者装置105可以是单个计算装置、计算装置的集合、服务器、云系统或类似系统。内容的任何数量的发布者可具有连接到icn网络的发布装置105。为清晰起见,提供了带有单个发布者和发布者装置105的示例。发布者装置105执行软件,所述软件分发内容已被编码到其中的内容对象。内容对象在icn网络中变得可用,并且当由内容节点107访问时可被缓存,且在已访问内容对象的那些内容节点107本地的内容库109中或icn网络已以其它方式确定预定位和分发内容对象所在的内容库109中可访问。

icn网络中的内容节点107也可以是包括网络装置的任何类型的计算装置。内容节点107可以是专用联网装置或通用计算装置,其执行软件来为icn网络实现兴趣请求的服务,并且为可连接到内容节点107的客户端装置103促进内容对象在内容库109中的检索和本地存储。icn网络能够包括任何数量和任何种类的内容节点107,所述内容节点107带有附着到这些内容节点107或这些内容节点107可访问的可变大小和配置的内容库109。内容库109可以是与主管内容节点107进行通信的计算装置、联网装置或存储装置。内容库109存储任何数量的内容对象。内容节点107和内容库109通常服务于对通过全局独特的内容对象名称标识的内容对象的兴趣(即,请求)。如以上所讨论的这些内容对象名称可具有“人类可读)格式或任何其它类型的格式。在一些实施例中,内容对象名称在内容节点和内容库具有发布者/内容_名称/块/编码格式。然而,客户端可在发出对内容对象的兴趣时使用内容对象名称的备选、简化或缩写版本,在此情况下内容节点可被配置成将这个接收的内容对象名称转换成实际内容对象名称,其中接收的兴趣可包括不是全局独特的内容对象名称的版本。

如与针对独特的模糊检索序列的实施例有关的icn网络进行操作使得当发布者经由它的发布者装置105具有要被发布到icn网络的新内容时,它将内容编码和/或加密为内容对象。内容对象随后经由发布者装置被变得可用,或者备选地被分发到icn网络内的内容节点107和内容库109。发布者经由发布者装置105与受信任的内容节点107建立安全关联,并且与内容节点107共享它的“清单密钥”。“清单密钥”是加密或解密检索序列所必需的加密密钥。清单密钥可与内容对象关联,或者简单地与发布者关联,并且应用到所有模糊检索序列。这些清单密钥和内容对象可连同带有以上引用的格式的内容对象名称被存储在内容库109中。这在图示中被示出为(步骤)1。

在此后的任何时间点,消费者经由客户端装置103可协商对经由发布者装置105来自发布者的内容(即,以内容对象的形式)的访问,并且在过程中直接或间接提供标识用户/订户的独特令牌,以使发布者能够对用户/订户进行认证。作为响应,发布者装置105向客户端装置103发送任何加密密钥的副本或关联的信息,所述关联的信息与期望的内容被编码在其中的内容对象的加密以及更具体地说与此类内容对象到“块”的细分的加密有关。客户端装置103也被提供了独特的模糊检索序列,所述独特的模糊检索序列是内容对象的块的序列,如果由客户端顺序地请求所述内容对象的块的序列,则所述内容对象的块的序列将由内容网络正确转换成所要求的重放序列。这个独特的模糊检索序列是使用具有对消费者独特的信息的一个或多个令牌进行的块的基本序列的算法变换序列,并且于是每个条目使用用于加密的发布者“清单密钥”被加密。例如,每个块号可通过对消费者因特网协议(ip)地址应用xor函数而被逻辑导出,并且随后用清单密钥被加密。这在图示中被示出为(步骤)2。

在消费者经由客户端装置103已获得独特的模糊检索序列之后,消费者从icn网络请求内容对象以及更具体地说采用给定编码的此内容对象的块。这被示出为图示的(步骤)3。消费者经由客户端装置103发送包括内容对象名称和客户端令牌的兴趣,具体地说提供到发布者的那些客户端令牌。因此,在使用以上参考格式的情况下,内容名称为/发布者/内容_名称/模糊_块_号/编码连同在消费者经由客户端装置103与发布者经由发布者装置105进行的初始协商期间使用的令牌。内容对象号和这些令牌的提供使接收兴趣的内容节点107能够确定独特的模糊检索序列,并且一旦定位了带有内容对象名称的内容对象,便响应于接收到的兴趣来实现它。

在接收兴趣并且检查内容对象名称时,内容节点107认识到此兴趣是针对其中模糊检索序列的转换要被应用的内容对象。基于接收的兴趣的内容对象名称中的发布者,内容节点查找发布者的清单密钥,并且使用它解密适当的模糊块号,并且随后进行对消费者独特的逆算法变换以确定要返回到消费者的适当块。这被图示为(步骤)4。

内容节点107能够随后确定标识的块是否在本地被缓存(例如,在内容库109中),或者需要从icn网络中的更深处获取,包括如果在更接近处不可获得,则从发布者装置105处获取。这被图示为(步骤)5。内容对象的所请求的块一旦被定位便被输送到消费者。所请求的块根据独特的模糊检索序列被编码。这被示出为(步骤)6。随后由客户端装置103发送在下一个块(或块的集合)中的下一个兴趣。块能够具有任何大小,并且客户端装置和消费者能够根据独特的模糊检索序列,请求任何数量的块。客户端装置103和消费者能够继续以对于消费者适合的任何速率请求块,直至内容对象的所有块已被收到,或者直至消费者缩减对内容对象的访问。如果不符合独特的模糊检索序列的兴趣被接收到,则由内容节点提供的块将不处于适当序列中和/或不是适当地可解码的,由此使得它成为无用数据。

将参考其它图的示范实施例来描述流程图中的操作。然而,应当理解的是,能够通过与参考其它图来讨论的那些实施例不同的本发明的实施例来执行流程图的操作,并且参考这些其它图来讨论的本发明的实施例能够执行与参考流程图来讨论的那些操作不同的操作。

图2是icn网络中的客户端获得内容对象的过程的一个实施例的流程图。在流程图中阐明了当独特的模糊检索过程在客户端装置被实现时用于独特的模糊检索过程的过程。在客户端装置执行是来自发布者的内容的消费者的软件时用于该客户端装置的过程以向发布者装置请求对特定内容对象的访问而开始(框201)。更广义地说,这是由消费者对来自发布者的内容的请求,然而,通过实现,客户端装置通过网络或类似通信信道启动与发布者装置的通信。

响应于启动通信和请求访问来自发布者的内容对象,客户端装置经由发布者装置接收来自发布者的用于内容对象的加密密钥和独特的模糊检索序列(框203)。可使用在每个消费者基础上产生独特的检索序列的任何算法来生成独特的模糊检索过程。如以下所讨论的,此类算法能够利用诸如客户端装置的ip地址的消费者的令牌或独特的标识符作为输入以确定性地生成检索序列。

一旦客户端装置接收经由发布者装置来自发布者的独特的模糊检索序列和加密密钥,消费者经由客户端装置便能够将对于内容对象的各个块的兴趣发送到icn网络中(框205)。兴趣能够指定内容对象且更具体地说内容对象的块的集合。如在本文中使用的“集合”能够指任何整数数量的项,包括一个项,这将是常见的情况。内容对象名称或其衍生物能够被指定。兴趣也包括由消费者经由客户端装置提供到发布者的任何令牌或类似信息,利用所述令牌或类似信息来生成独特的模糊检索序列,使得内容节点的功能实际上是无状态的。以这种方式,在icn网络中服务于兴趣的内容节点将具有充分的信息来根据独特的模糊检索序列,正确地标识和提供所请求的内容对象的块。

响应于发送兴趣,消费者经由客户端装置接收根据独特的模糊检索序列是下一个的块或接下来的块的集合(框207)。此外,这些块根据独特的模糊检索系统被编码,使得编码对消费者和/或客户端装置是特定的。因此,客户端装置能够通过使用由发布者提供的加密密钥连同独特的模糊检索序列,解密接收到的块以供消费者利用(即,算法的反转)(框209)。发送对内容对象的进一步的块的兴趣和根据独特的模糊检索序列接收这些块的过程能够继续,直至整个内容对象已被传送到消费者,或者消费者不再寻求获得内容对象(例如,用户停止观看视频)(框211)。

图3是icn网络中的内容节点服务于对内容对象的请求的过程的一个实施例的流程图。在一个实施例中,内容节点将具有发布者的清单密钥的先验知识。在其它实施例中,发布者可经由发布者装置提供用于内容对象的清单密钥和/或其它加密密钥(然而,通常加密密钥经由icn架构被分发)(框301)。在一些实施例中,发布装置可也由于已收到其它客户端兴趣而已提供内容对象的副本或其任何部分。在此情况下,内容对象或其某一部分(例如,内容对象的块的集合)可被存储在内容节点本地的内容库中。

客户端装置可联系icn网络和其中的任何网络节点以获得内容对象。icn网络中的任何内容节点能够接收该兴趣(框305)。接收到的兴趣能够包括内容对象名称。内容对象名称可以是完整内容对象名称或其任何衍生物。收到的兴趣可也包括任何客户端令牌或类似信息,将利用所述任何客户端令牌或类似信息在内容节点实现独特的模糊检索序列。通过使用提供的信息,内容节点确定用于由从客户端装置接收的兴趣所标识的内容对象的独特的模糊检索序列。具体地说,接收对内容对象的兴趣的内容节点使用客户端令牌和发布者清单密钥将模糊的块请求转换成对带有通用块标识符的块的请求(框307),并且在本地内容库中检查内容对象和/或具体地说所请求的块(框309)。内容节点使用通用或非模糊的块标识符,定位要被提供到客户端装置的内容对象的块。块能够在内容节点本地被定位,或者从icn网络和/或发布者装置被检索。

一旦块被检索到,它便被发送到发送了对内容对象的指定块的兴趣的客户端装置(框311)。此过程可继续,直至内容对象被完全转移或者直至消费者停止发送请求到icn网络(框313)。每个收到的兴趣能够指定对于给定内容对象的单个块或任何数量的块。为清晰和简明起见,提供了请求单个块的示例。然而,本领域技术人员将理解,实施例能够将对块或内容对象的类似分段进行的任何编组包含到独特的模糊检索过程中。

另外的考虑事项

如果以对每个“内容名称”项独特的形式首先使原始序列号模糊,则安全性得以增强。如果内容对象始终被解密/变换成可预测的序列1、2、3、4等,则用来确定发布者清单密钥的暴力攻击的作业被简化。订户的ip地址的使用(如转换成网络全局型)充满了多个问题(例如,当使用网络地址转换(nat)的链时),但却是通常由网络经由反欺骗机制监管的几个标识符之一,因此是要被用作到内容序列模糊过程中的输入的合乎期望的“独特令牌”。要求是icn网络需要“看到”与发布者所“看到”的相同ip地址。

变型

通过在清单和加密密钥上使用密钥调度,使得发送到消费者的给定清单具有有限的寿命并且破解清单或加密密钥仅损害以恶意消费者可获取的那个密钥编码的清单,能够实现防止重放攻击的额外保护。可存在被内容模糊序列考虑在内的时间分量,使得模糊序列仅在固定时间段内有效。任何数量和组合的额外模糊步骤能够被应用到使用消费者供应的令牌的算法变换,以使对清单密钥的非法入侵进一步变复杂。

架构

图4是附着到icn的用于内容的消费者的客户端装置的一个实施例的图。客户端装置401能够是任何类型的计算装置,并且通过示例且非限制的方式来提供图示的客户端装置400。客户端装置能够是台式、膝上型、手持式、控制台装置或类似计算装置。客户端装置能够包括中央处理单元403或类似处理装置。在其它实施例中,计算装置能够包括任何数量或种类的处理装置。处理装置能够包括任何类型的处理装置,包括cpu、图形处理器、专用集成电路(asic)、片上系统(soc)及类似处理器。处理器能够使用总线或类似互连与客户端装置401的其它组件进行通信。

客户端装置401能够包括非暂态存储介质405。非暂态存储介质能够是任何类型的存储装置,包括光、磁、固态或任何类似存储介质。客户端装置401能够包括任何数量和种类的此类装置。非暂态存储介质405能够存储与客户端装置401和客户端装置401的任何用户相关的代码、操作系统、数据和任何信息。存储的信息能够包括消费者软件407,所述消费者软件407能够是消费从icn网络获得的内容的软件的任何类型的可执行代码。例如,消费者软件407能够经由本地连接的显示器或者通过在客户端装置401本地的或远离客户端装置401的类似机构,为用户处理和播放视频内容。

客户端装置401能够包括任何数量的接口以与其它装置和组件连接。具体地说,客户端装置401能够包括使得客户端装置401能够与icn网络的内容节点进行通信的网络接口409。网络接口409能够是有线和/或无线接口。客户端装置401的组件通过示例的方式被提供。客户端装置401能够包括为清晰起见已被忽略的任何数量的额外组件。

图5a图示了根据本发明的一些实施例,在示范网络内的网络装置(nd)之间的连接性及nd的三个示范实现。图5a示出nd500a-h和以在500a-500b、500b-500c、500c-500d、500d-500e、500e-500f、500f-500g和500a-500g之间以及在500h与500a、500c、500d和500g中的每个之间的线的方式的它们的连接性。这些nd是物理装置,并且在这些nd之间的连通性能够是无线的或有线的(经常被称为链路)。从nd500a、500e和500f延伸的额外线路图示了这些nd充当网络的入口和出口点(并且因此这些nd有时被称为边缘nd;而其它nd可被称为核心nd)。

图5a中的示范nd实现中的两个是:1)使用定制专用集成电路(asic)和专用操作系统(os)的专用网络装置502;和2)使用普通现货(cots)处理器和标准os的通用网络装置504。

专用网络装置502包括联网硬件510,所述联网硬件510包括一个或多个计算资源512(其通常包括一个或多个处理器的集合)、一个或多个转发资源514(其通常包括一个或多个asic和/或网络处理器)和物理网络接口(ni)516(有时被称为物理端口)以及非暂态机器可读存储介质518(具有存储在其中的联网软件520)。物理ni是nd中的硬件,通过它进行网络连接(例如,以无线方式通过无线网络接口控制器(wnic)或者通过将电缆插入连接到网络接口控制器(nic)的物理端口),诸如通过由在nd500a-h之间的连接性示出的那些网络连接。在操作期间,可由联网硬件510执行联网软件520以实例化一个或多个联网软件实例522的集合。一个或多个联网软件实例522中的每个和执行该网络软件实例的联网硬件510的该部分(无论它是专用于该联网软件实例的硬件和/或由该联网软件实例与联网软件实例522中的其它联网软件实例暂时共享的硬件的时间片)形成单独的虚拟网络元件530a-r。一个或多个虚拟网络元件(vne)530a-r中的每个包括控制通信和配置模块532a-r(有时被称为本地控制模块或控制通信模块)以及一个或多个转发表534a-r,使得给定虚拟网络元件(例如,530a)包括控制通信和配置模块(例如,532a)、一个或多个转发表(例如,534a)的集合及执行虚拟网络元件(例如,530a)的联网硬件510的该部分。

专用网络装置502经常在物理上和/或在逻辑上被视为包括:1)nd控制平面524(有时被称为控制平面),其包括执行一个或多个控制通信和配置模块532a-r的一个或多个计算资源512;以及2)nd转发平面526(有时被称为转发平面、数据平面或媒体平面),其包括利用一个或多个转发表534a-r和物理ni516的一个或多个转发资源514。通过示例的方式,在nd是路由器(或在实现路由选择功能性)的情况下,nd控制平面524(执行一个或多个控制通信和配置模块532a-r的一个或多个计算资源512)通常负责参与控制要如何路由数据(例如,分组)(例如,用于数据的下一跳(hop)和用于该数据的外出物理ni)和在一个或多个转发表534a-r中存储该路由选择信息,并且nd转发平面526负责在物理ni516上接收该数据和基于一个或多个转发表534a-r,将该数据转发出物理ni516中的适当的物理ni。在一些实施例中,计算资源512执行模糊序列检索器536a-r,其实现如本文中以上所描述的内容节点的功能。

图5b图示了根据本发明的一些实施例,实现专用网络装置502的示范方式。图5b示出包括卡538(通常可热插拔)的专用网络装置。虽然在一些实施例中,卡538具有两种类型(作为nd转发平面526操作的一个或多个卡(有时被称为线路卡)和操作以实现nd控制平面524的一个或多个卡(有时被称为控制卡)),但备选实施例可组合功能性到单个卡上和/或包括额外的卡类型(例如,一个额外类型的卡被称为服务卡、资源卡或多应用卡)。服务卡能够提供专业化处理(例如,层4到层7服务(例如,防火墙、因特网协议安全性(ipsec)、安全套接层(ssl)/传输层安全性(tls)、侵入检测系统(ids)、端到端(p2p))、ip上的语音(voip)会话边界控制器、移动无线网关(网关通用分组无线电服务(gprs)支持节点(ggsn)、演进分组核心(epc)网关))。通过示例的方式,服务卡可被用于端接ipsec隧道,并且执行随员认证(attendantauthentication)和加密算法。这些卡通过图示为底板536的一个或多个互连机构被耦合在一起(例如,耦合线路卡的第一全网状和耦合所有卡的第二全网状)。

返回图5a,通用网络装置504包括硬件540,其包括一个或多个处理器542(其经常是cots处理器)的集合和一个或多个网络接口控制器544(nic;也称为网络接口卡)(其包括物理ni546)以及非暂态机器可读存储介质548,所述非暂态机器可读存储介质548具有在其中存储的软件550。在操作期间,一个或多个处理器542执行软件550以实例化一个或多个应用564a-r的一个或多个集合。尽管一个实施例未实现虚拟化,但备选实施例可使用不同形式的虚拟化。例如,在一个此类备选实施例中,虚拟化层554表示操作系统的内核(或在基本操作系统上执行的填充码(shim)),其允许创建称为软件容器的多个实例562a-r,每个软件容器可用于执行应用564a-r的集合中的一个(或多个);其中所述多个软件容器(也被称为虚拟化引擎、虚拟私有服务器或囚室(jail))是用户空间(通常是虚拟存储器空间),其彼此是分离的且与在其中操作系统被运行的内核空间是分离的;以及其中在给定用户空间中运行的应用的集合除非明确被允许,否则不能访问其它过程的存储器。在另一此类备选实施例中,虚拟化层554表示管理程序(有时被称为虚拟机监视器(vmm))或者在主机操作系统的顶部上执行的管理程序,并且应用564a-r的集合中的每个集合被运行在称为虚拟机(其可在一些情况下被视为软件容器的严密隔离形式)的实例562a-r内的宾客操作系统的顶部上,虚拟机在管理程序的顶部上运行-与在“裸机”主机电子装置上运行相对,宾客操作系统和应用可不知道它们正在虚拟机上运行,或者通过准虚拟化(para-virtualization),操作系统和/或应用可知晓用于优化目的的虚拟化的存在。在仍有的其它备选实施例中,应用中的一个、一些或所有被实现为一个或多个特型内核(unikernel),所述一个或多个特型内核能够通过仅为应用直接编译提供由应用需要的具体os服务的库的有限集合(例如,从包括os服务的驱动程序/库的库操作系统(libos))而被生成。由于特型内核能够被实现以直接在硬件540上运行,直接在管理程序上运行(在此情况下,特型内核有时被描述为在libos虚拟机内运行)或在软件容器中运行,实施例能够通过直接在由虚拟化层554表示的管理程序上运行的特型内核、由实例562a-r表示的软件容器内运行的特型内核或者作为特型内核和上述技术的组合(例如,均直接在管理程序上被运行的特型内核和虚拟机,在不同软件容器中被运行的特型内核和应用的集合)来被充分地实现。

一个或多个应用564a-r的所述一个或多个集合的例示及虚拟化如果被实现,则被统称为一个或多个软件实例552。应用564a-r的每个集合、如果被实现的对应的虚拟化构造(例如,实例562a-r)以及执行它们的硬件540的那个部分(无论是专用于该执行的硬件和/或暂时共享的硬件的时间片)形成一个或多个单独的虚拟网络元件560a-r。在一些实施例中,处理器542将模糊序列检索器564a-r作为实现在软件容器560a-r内如上面本文中所描述的内容节点的功能的应用执行。

一个或多个虚拟网络元件560a-r执行与一个或多个虚拟网络元件530a-r类似的功能性-例如,与一个或多个控制通信和配置模块532a以及一个或多个转发表534a类似(硬件540的此虚拟化有时被称为网络功能虚拟化(nfv))。因此,nfv可被用于合并许多网络设备类型到能够位于数据中心、nd和客户场所设备(cpe)中的工业标准高容量服务器硬件、物理交换机和物理存储设备上。尽管本发明的实施例被图示有每个实例562a-r与一个vne560a-r对应,但备选实施例可在更精细级别粒度实现此对应关系(例如,线路卡虚拟机虚拟化线路卡,控制卡虚拟机虚拟化控制卡等);应理解的是,本文中参考实例562a-r与vne的对应性描述的技术也适用于其中使用此类更精细级别的粒度和/或特型内核的实施例。

在某些实施例中,虚拟化层554包括提供与物理以太网交换机类似的转发服务的虚拟交换机。具体而言,此虚拟交换机在实例562a-r与一个或多个nic544之间以及可选地在实例562a-r之间转发业务;另外,此虚拟交换机可在根据策略不被允许与彼此进行通信的vne560a-r之间强制网络隔离(例如,通过重视(honoring)虚拟局域网(vlan))。

在图5a中的第三示范nd实现是混合网络装置506,其包括在单个nd中或在nd内的单个卡中的定制asic/专用os和cots处理器/标准os。在此类混合网络装置的某些实施例中,平台vm(即,实现专用网络装置502的功能性的vm)能够提供准虚拟化到在混合网络装置506中存在的联网硬件。

无论nd的以上示范实现如何,当考虑由nd实现的多个vne中的单个vne(例如,仅vne其中之一是给定虚拟网络的部分)时,或者在仅单个vne当前由nd实现的情况下,缩略术语网络元件(ne)有时被用于指该vne。此外,在所有以上示范实现中,vne中的每个(例如,一个或多个vne530a-r、vne560a-r和在混合网络装置506中的那些)在物理ni(例如,516、546)上接收数据,并且将该数据转发出物理ni中的适当物理ni(例如,516、546)。例如,实现ip路由器功能性的vne基于ip分组中的ip报头信息中一些ip报头信息转发ip分组;其中ip报头信息包括源ip地址、目的地ip地址、源端口、目的地端口(其中,“源端口”和“目的地端口”在本文中指协议端口,与nd的物理端口相对)、传输协议(例如,用户数据报协议(udp)、传输控制协议(tcp)及差分服务代码点(dscp)值。

图5c图示了根据本发明的一些实施例,在其中可耦合vne的各种示范方式。图5c示出在nd500a中实现的vne570a.1-570a.p(以及可选地vne570a.q-570a.r)和nd500h中的vne570h.1。在图5c中,在vne570a.1-p能够从nd500a外部接收分组并且将分组转发到nd500a的外部的意义上,vne570a.1-p与彼此分离;vne570a.1与vne570h.1耦合,并且因此,它们在其相应nd之间传递分组;vne570a.2-570a.3可以可选地在它们本身之间转发分组而不将它们转发到nd500a外部;并且vne570a.p可以可选地是在vne链中的第一个vne,vne链包括其后跟随vne570a.r的vne570a.q(这有时被称为动态服务链,其中vne系列中的每个vne提供不同服务-例如,一个或多个层4-7网络服务)。尽管图5c图示了在vne之间的各种示范关系,但备选实施例可支持其它关系(例如,更多/更少vne、更多/更少动态服务链、带有一些共同vne和一些不同vne的多个不同动态服务链)。

例如,图5a的nd可形成因特网或专用网络的部分;并且其它电子装置(未显示;诸如终端用户装置,包括工作站、膝上型计算机、上网本、平板、掌上型计算机、移动电话、智能电话、平板手机、多媒体电话、因特网协议上的语音(voip)电话、终端、便携式媒体播放器、gps单元、可佩戴装置、游戏系统、机顶盒、游戏系统、因特网使能的家用电器)可被耦合到网络(直接或通过诸如接入网的其它网络),以通过网络(例如,因特网或在因特网上覆盖的(例如,遂穿通过的)虚拟专用网(vpn))(直接或通过服务器)与彼此进行通信,和/或访问内容和/或服务。此类内容和/或服务通常由属于服务/内容提供商的一个或多个服务器(未示出)或参与端到端(p2p)服务的一个或多个终端用户装置(未示出)提供,并且可包括例如公共网页(例如,免费内容、店面、搜索服务)、私人网页(例如,提供电子邮件服务的用户名/密码访问的网页)和/或通过vpn的企业网络。例如,终端用户装置可被耦合(例如,通过耦合到接入网(以有线或无线方式)的客户场所设备)到边缘nd,所述边缘nd被耦合(例如通过一个或多个核心nd)到其它边缘nd,所述其它边缘nd被耦合到充当服务器的电子装置。然而,通过计算和存储虚拟化,作为图5a中的nd进行操作的电子装置中的一个或多个也可托管一个或多个此类服务器(例如,在通用网络装置504的情况下,软件实例562a-r中的一个或多个可作为服务器操作;对于混合网络装置506将同样如此;在专用网络装置502的情况下,一个或多个此类服务器也能够被运行在由一个或多个计算资源512执行的虚拟化层上);在此情况下,服务器可被说成是与该nd的vne位于一起。

虚拟网络是提供网络服务(例如,l2和/或l3服务)的物理网络的逻辑抽象(诸如图5a中的物理网络)。虚拟网络能够被实现为覆盖网络(overlaynetwork)(有时被称为网络虚拟化覆盖),其通过底层网络(underlaynetwork)(例如,l3网络,诸如使用隧道(例如,通用路由选择封装(gre)、层2隧穿协议(l2tp)、ipsec)来创建覆盖网络的因特网协议(ip)网络)提供网络服务(例如,层2(l2,数据链路层)和/或层3(l3,网络层)服务)。

网络虚拟化边缘(nve)位于底层网络的边缘,并且参与实现网络虚拟化;nve的面向网络侧使用底层网络来将帧隧穿到其它nve并且从其它nve隧穿帧;nve的面向外面侧发送数据到在网络外的系统和从在网络外的系统接收数据。虚拟网络实例(vni)是在nve上的虚拟网络的具体实例(例如,在nd上的ne/vne、在nd上的ne/vne的一部分,其中该ne/vne通过仿真被分割成多个vne);一个或多个vni能够被实例化在nve上(例如,作为在nd上的不同vne)。虚拟接入点(vap)是nve上的用于连接外部系统到虚拟网络的逻辑连接点;vap能够是通过逻辑接口标识符(例如,vlanid)标识的物理或虚拟端口。

网络服务的示例包括:1)以太网lan仿真服务(类似于因特网工程任务组(ietf)多协议标签交换(mpls)或以太网vpn(evpn)服务的基于以太网的多点服务),其中通过底层网络上的lan环境来跨网络(例如,nve为不同的此类虚拟网络提供单独的l2vni(虚拟交换实例)并且提供跨底层网络的l3(例如,ip/mpls)隧穿封装)互连外部系统;和2)虚拟化ip转发服务(从服务定义角度而言,类似于ietfipvpn(例如,边界网关协议(bgp)/mplsipvpn)),其中通过底层网络上的l3环境跨网络(例如,nve为不同的此类虚拟网络提供单独的l3vni(转发和路由选择实例)和跨底层网络的l3(例如,ip/mpls)隧穿封装)互连外部系统。网络服务也可包括服务能力的质量(例如,业务分类标记,业务调节和调度)、安全性能力(例如,用来保护客户场所免于源于网络的攻击,以避免受损的路由通知的过滤器)和管理能力(例如,完全检测和处理)。

图5d图示了根据本发明的一些实施例,在图5a的nd中的每个nd上带有单个网络元件的网络,并且在此直接方案内,对比用于保持可达性和转发信息(也被称为网络控制)的集中方案和传统分布式方案(通常由传统路由器使用)。具体而言,图5d图示了带有与图5a的nd500a-h相同的连接性的网络元件(ne)570a-h。

图5d图示了分布式方案572跨ne570a-h分布对于生成可达性和转发信息的责任;换而言之,邻居发现和拓扑发现的过程是分布式的。

例如,在使用专用网络装置502的情况下,nd控制平面524的一个或多个控制通信和配置示范532a-r通常包括可达性和转发信息模块以实现与其它ne进行通信以交换路由的一个或多个路由选择协议(例如,诸如边界网关协议(bgp)的外部网关协议、一个或多个内部网关协议(igp)(例如,开放最短路径优先(ospf)、中间系统到中间系统(is-is)、路由选择信息协议(rip)、标签分布协议(ldp)、资源预留协议(rsvp)(包括rsvp业务工程(te):对用于lsp隧道的rsvp的扩展和推广的多协议标签交换(gmpls)信令rsvp-te)),并且随后基于一个或多个路由选择度量来选择那些路由。因此,ne570a-h(例如,执行一个或多个控制通信和配置模块532a-r的一个或多个计算资源512)通过分布式地确定在网络内的可达性和计算它们相应的转发信息,执行其对于参与控制要如何路由数据(例如,分组)(例如,用于数据的下一跳和用于该数据的外出物理ni)的责任。路由和邻接性被存储在nd控制平面524上的一个或多个路由选择结构(例如,路由选择信息库(rib)、标签信息库(lib)、一个或多个邻接结构)。nd控制平面524通过基于一个或多个路由选择结构的信息(例如,邻接性和路由信息)将nd转发平面526编程。例如,nd控制平面524将邻接性和路由信息编程到nd转发平面526上的一个或多个转发表534a-r中(例如,转发信息库(fib)、标签转发信息库(lfib)和一个或多个邻接结构)。对于层2转发,nd能够存储被用于基于数据中的层2信息来转发该数据的一个或多个桥接表。尽管以上示例使用专用网络装置502,但相同的分布式方案572能够在通用网络装置504和混合网络装置506上被实现。

图5d图示了将做出有关从底层系统发送业务到何处的判定的系统去耦的集中方案574(也称为软件定义联网(sdn)),所述底层系统将业务转发到选择的目的地。图示的集中方案574具有对于在集中控制平面576(有时被称为sdn控制模块、控制器、网络控制器、openflow控制器、sdn控制器、控制平面节点、网络虚拟化管理机构或管理控制实体)中生成可达性和转发信息的责任,并且因此邻居发现和拓扑发现的过程被集中。集中控制平面576具有南向接口582,其带有包括ne570a-h(有时称为交换机、转发元件、数据平面元件或节点)的数据平面580(有时被称为基础结构层、网络转发平面或转发平面(其不应与nd转发平面混淆))。集中控制平面576包括网络控制器578,其包括确定在网络内的可达性并且通过南向接口582(其可使用openflow协议)将转发信息分发到数据平面580的ne570a-h的集中可达性和转发信息模块579。因此,网络智能被集中在通常与nd分离的电子装置上执行的集中控制平面576中。

例如,在专用网络装置502在数据平面580中被使用的情况下,nd控制平面524的一个或多个控制通信和配置模块532a-r中的每个通常包括提供南向接口582的vne侧的控制代理。在此情况下,nd控制平面524(执行一个或多个控制通信和配置模块532a-r的一个或多个计算资源512)执行其对于参与控制要如何通过控制代理路由数据(例如,分组)(例如,用于数据的下一跳和用于该数据的外出物理ni)的责任,所述控制代理与集中控制平面576进行通信以从集中可达性和转发信息模块579接收转发信息(以及在一些情况下的可达性信息)(应理解的是,在本发明的一些实施例中,除与集中控制平面576进行通信外,一个或多个控制通信和配置模块532a-r也可在确定可达性和/或计算转发信息中起到一定的作用-尽管比在分布式方案的情况下更少;此类实施例一般被视为落在集中方案574之下,但也可被视为混合方案)。

尽管以上示例使用专用网络装置502,但相同的集中方案574能够通过通用网络装置504(例如,vne560a-r中的每个通过与集中控制平面576进行通信以从集中可达性和转发信息模块579接收转发信息(以及在一些情况下的可达性信息),执行其对于控制要如何路由数据(例如,分组)(例如,用于数据的下一跳和用于该数据的外出物理ni)的责任;应理解的是,在本发明的一些实施例中,除与集中控制平面576进行通信外,vne560a-r也可在确定可达性和/或计算转发信息中起到一定的作用-尽管比在分布式方案的情况下更少)和混合网络装置506来被实现。实际上,sdn技术的使用能够增强通常在通用网络装置504或混合网络装置506实现中使用的nfv技术,因为nfv能够通过提供sdn软件能够在其上运行的基础结构来支持sdn,并且nfv和sdn均目的在于利用商品(commodity)服务器硬件和物理交换机。

图5d也示出集中控制平面576具有到应用层586(其中驻留有一个或多个应用588)的北向接口584。集中控制平面576具有形成用于一个或多个应用588的虚拟网络592(有时被称为逻辑转发平面、网络服务或覆盖网络(其中数据平面580的ne570a-h是底层网络))的能力。因此,集中控制平面576保持所有nd和配置的ne/vne的全局视图,并且它有效地映射虚拟网络到底层nd(包括在物理网络通过硬件(nd、链路或nd组件)故障、添加或移除而更改时保持这些映射)。在一些实施例中,集中控制平面576执行模糊序列检索器581,其实现如本文中以上所描述的内容节点的功能。在其它实施例中,模糊序列检索器被实现为应用588。

尽管图5d示出与集中方案574分离的分布式方案572,但在本发明的某些实施例中网络控制的工作可以不同方式被分发或者上述两者被组合。例如:1)实施例可一般使用集中方案(sdn)574,但具有委托到ne的某些功能(例如,分布式方案可被用于实现故障监视、性能监视、保护交换和用于邻居和/或拓扑发现的基元中的一个或多个);或者2)本发明的实施例可经由集中控制平面和分布协议两者来执行邻居发现和拓扑发现,并且结果被比较以使得其中它们不一致的例外情况出现。此类实施例一般被视为落在集中方案574下,但也可被视为混合方案。

尽管图5d图示了其中nd500a-h中的每个实现单个ne570a-h的简单情况,但应理解的是,参考图5d描述的网络控制方案也对其中nd500a-h中的一个或多个实现多个vne(例如,vne530a-r、vne560a-r、在混合网络装置506中的那些vne)的网络起作用。备选或另外,网络控制器578也可在单个nd中仿真多个vne的实现。具体而言,网络控制器578可将在单个nd中vne/ne的实现呈现为在虚拟网络592中的多个vne(全部在一个或多个虚拟网络592中的相同的一个中,每个在一个或多个虚拟网络592的不同一些虚拟网络或某一组合中)而不是(或还)在单个nd中实现多个vne。例如,网络控制器578可使nd在底层网络中实现单个vne(ne),并且随后在逻辑上在集中控制平面576内划分该ne的资源,以在一个或多个虚拟网络592中呈现不同的vne(其中,在覆盖网络中的这些不同vne共享在底层网络中在nd上单个vne/ne实现的资源)。

另一方面,图5e和5f分别图示了网络控制器578可呈现为虚拟网络592中的不同一些虚拟网络的部分的ne和vne的示范抽象。图5e图示了根据本发明的一些实施例的简单情况,其中nd500a-h中的每个实现单个ne570a-h(参见图5d),但集中控制平面576已将不同nd中的多个ne(ne570a-c和g-h)抽象成(以表示)图5d的一个或多个虚拟网络592之一中的单个ne570i。图5e示出在此虚拟网络中,ne507i被耦合到ne570d和570f,所述ne570d和570f均仍被耦合到ne570e。

图5f图示了根据本发明的一些实施例的情况,其中多个vne(vne570a.1和vne570h.1)在不同nd(nd500a和nd500h)上被实现并且彼此耦合,并且其中集中控制平面576已抽象化这些多个vne,使得它们在图5d的虚拟网络592之一内作为单个vne570t出现。因此,ne或vne的抽象能够横越多个nd。

尽管本发明的一些实施例将集中控制平面576实现为单个实体(例如,在单个电子装置上运行的软件的单个实例),但为了冗余和/或可缩放性目的,备选实施例可跨多个实体扩展功能性(例如,在不同电子装置上运行的软件的多个实例)。

类似于网络装置实现,运行集中控制平面576的一个或多个电子装置和因此包括集中可达性和转发信息模块579的网络控制器578可以以多种方式被实现(例如,专用装置、通用(例如,cots)装置或混合装置)。这些一个或多个电子装置将类似地包括一个或多个计算资源、一个或多个物理nic的集合和在其上存储有集中控制平面软件的非暂态机器可读存储介质。例如,图6图示了包括硬件640的通用控制平面装置604,所述硬件640包括一个或多个处理器642(其经常是cots处理器)的集合和一个或多个网络接口控制器644(nic;也称为网络接口卡)(其包括物理ni646)及在其中存储有集中控制平面(ccp)软件650的非暂态机器可读存储介质648。

在使用计算虚拟化的实施例中,一个或多个处理器642通常执行软件以实例化虚拟化层654(例如,在一个实施例中,虚拟化层654表示操作系统的内核(或在基本操作系统上执行的填充码),其允许创建称为软件容器(表示单独的用户空间并且也被称为虚拟化引擎、虚拟私有服务器或囚室)的多个实例662a-r,每个软件容器可被用于执行一个或多个应用的集合;在另一实施例中,虚拟化层654表示管理程序(有时被称为虚拟机监视器(vmm))或者在主机操作系统的顶部上被执行的管理程序,并且应用在由管理程序运行的称为虚拟机(其可在一些情况下被视为软件容器的严密隔离形式)的实例662a-r内的宾客操作系统的顶部上被运行;在另一实施例中,应用被实现为特型内核,其能够通过仅为应用直接编译提供应用需要的具体os服务的库的有限集合(例如,从包括os服务的驱动程序/库的库操作系统(libos))而被生成,并且特型内核能够直接在硬件640上运行、直接在由虚拟化层654表示的管理程序上运行(在此情况下,特型内核有时被描述为在libos虚拟机内运行)或者在由实例662a-r之一表示的软件容器中运行)。同样地,在其中使用计算虚拟化的实施例中,在操作期间,ccp软件650的实例(图示为ccp实例676a)在虚拟化层654上被执行(例如,在实例662a内)。在其中未使用计算虚拟化的实施例中,ccp实例676a作为特型内核或者在主机操作系统的顶部上、在“裸机”通用控制平面装置604上被执行。ccp实例676a的例示以及如果被实现的实例662a-r和虚拟化层654被统称为(一个或多个)软件实例652。

在一些实施例中,ccp实例676a包括网络控制器实例678。网络控制器实例678包括集中可达性和转发信息模块实例679(其是提供网络控制器578的上下文到操作系统和与各种ne进行通信的中间件层)和在中间件层上的ccp应用层680(有时被称为应用层)(提供各种网络操作所要求的智能,诸如协议、网络情况感知和用户接口)。在更抽象的层次,集中控制平面576内的此ccp应用层680以一个或多个虚拟网络视图(网络的一个或多个逻辑视图)进行工作,并且中间件层提供从虚拟网络到物理视图的转换。在一些实施例中,处理器642执行模糊序列检索器681,其实现如本文中以上所描述的内容节点的功能。

集中控制平面576基于ccp应用层680计算和对于每个流的中间件层映射,传送相关消息到数据平面580。流可被定义为分组(其报头匹配给定模式的比特)的集合;在此意义上,传统的ip转发也是基于流的转发,其中例如由目的地ip地址定义流;然而,在其它实现中,用于流定义的给定模式的比特可包括分组报头中的更多字段(例如,10个或更多个)。数据平面580的不同nd/ne/vne可接收不同消息,并且因此接收不同转发信息。数据平面580处理这些消息,并且在适当ne/vne的转发表(有时被称为流表)中编程适当的流信息和对应动作,并且随后ne/vne将进入的分组映射到转发表中表示的流,并且基于转发表中的匹配转发分组。

诸如openflow的标准定义用于消息的协议及用于处理分组的模型。用于处理分组的模型包括报头解析、分组分类和进行转发判定。报头解析描述如何基于公知的协议集合来解释分组。一些协议字段被用于构建将在分组分类中被使用的匹配结构(或关键字)(例如,第一关键字字段能够是源媒体接入控制(mac)地址,并且第二关键字字段能够是目的地mac地址)。

分组分类涉及在存储器中执行查找,以通过基于转发表条目的匹配结构或关键字来确定转发表中的哪个条目(也被称为转发表条目或流条目)最佳地匹配分组来将分组进行分类。可能的是,在转发表条目中表示的许多流能够对应/匹配分组;在此情况下,系统通常被配置成根据定义的方案(例如,选择匹配的第一个转发表条目)从许多转发表条目中确定一个转发表条目。转发表条目包括匹配准则的特定集合(值或通配符的集合,或者分组的什么部分应与特定值/值/通配符进行比较的指示,正如由针对分组报头中的特定字段或针对某一其它分组内容的匹配能力所定义的)和由数据平面在接收匹配分组时采取的一个或多个动作的集合。例如,动作可以是将报头推送到分组上(对于使用特定端口的分组),使分组满溢,或者只是丢弃分组。因此,用于带有特定传送控制协议(tcp)目的地端口的ipv4/ipv6分组的转发表条目能够包含指定应丢弃这些分组的动作。

进行转发判定并且执行动作基于在分组分类期间标识的转发表条目,通过在分组上执行在匹配的转发表条目中标识的动作的集合而发生。

然而,在未知分组(例如,如在openflow用语中使用的“匹配缺失”或“缺失的分组”)到达数据平面480时,通常将分组(或分组报头和内容的子集)转发到集中控制平面476。集中控制平面476随后将转发表条目编程到数据平面480中以容纳属于未知分组的流的分组。一旦特定转发表条目已由集中控制平面476编程到数据平面480中,带有匹配凭据的下一分组便将匹配该转发表条目,并且采取与该匹配的条目关联的动作的集合。

网络接口(ni)可以是物理的或虚拟的;并且在ip的上下文中,接口地址是被指派到ni的ip地址,而无论它是物理ni还是虚拟ni。虚拟ni可与物理ni关联、与另一虚拟接口关联或者自己独立成立(例如,环回接口、点对点协议接口)。ni(物理的或虚拟的)可以被编号(带有ip地址的ni)或未被编号(无ip地址的ni)。环回接口(以及它的环回地址)是经常用于管理目的的ne/vne(物理的或虚拟的)的特定类型的虚拟ni(和ip地址);其中,此类ip地址被称为节点的环回地址。被指派到nd的一个或多个ni的一个或多个ip地址被称为该nd的ip地址;在更高粒度级别,被指派到一个或多个ni(其被指派到在nd上实现的ne/nve)的一个或多个ip地址可被称为那个ne/vne的ip地址。

例如,尽管附图中的流程图示出由本发明的某些实施例执行的操作的具体顺序,应当理解的是,此类顺序是示范的(例如,备选实施例可以不同的顺序执行操作、组合某些操作、重叠某些操作等)。

虽然已根据几个实施例描述本发明,但那些本领域的技术人员将认识到本发明不限于所描述的实施例,通过在随附权利要求的精神和范围内的修改和变化能够实践本发明。描述因此将被视为是说明性的而不是限制性的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1