首页> 中国专利> 使用自认证名称分发无名称对象的系统

使用自认证名称分发无名称对象的系统

摘要

本发明公开了内容复制系统,其可以在内容中心网络(CCN)中多个复制服务器上缓存无名称内容对象。操作中,CCN客户端可以通过传播对数据集合的兴趣从一个或多个内容托管服务获得无名称内容对象,并接收包括数据集合的清单的内容对象。所述清单可以包括数据集合的一组其它内容对象的内容对象散列(COH)值。客户端然后确定托管所述数据集合的内容托管服务的名称前缀,并生成对所述数据集合的内容对象的另一兴趣。此兴趣的名称包括内容托管服务的名称前缀,还包括各个内容对象的COH值。客户端通过CCN传播新兴趣以获得数据集合的各个内容对象。

著录项

  • 公开/公告号CN105279216A

    专利类型发明专利

  • 公开/公告日2016-01-27

    原文格式PDF

  • 申请/专利权人 帕洛阿尔托研究中心公司;

    申请/专利号CN201510368175.2

  • 发明设计人 M·E·莫斯科;

    申请日2015-06-29

  • 分类号G06F17/30;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人姜甜

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 13:52:34

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-31

    授权

    授权

  • 2017-07-07

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20150629

    实质审查的生效

  • 2017-05-17

    专利申请权的转移 IPC(主分类):G06F17/30 登记生效日:20170426 变更前: 变更后: 申请日:20150629

    专利申请权、专利权的转移

  • 2016-01-27

    公开

    公开

说明书

技术领域

本申请一般涉及内容中心网络(CCN)。更具体地,本申请涉及在各个内容托管服务上复制无名称内容对象。

背景技术

互联网和电子商务的繁荣继续引发网络行业的革命性变化。当今,从在线观看电影到每日新闻发送、零售和即时消息,相当大量的信息交互是在线进行的。日益增长的互联网应用也正变成移动的。然而,当前的互联网基于大型的基于位置的寻址方案工作。最普遍存在的协议即互联网协议(IP)以基于位置的地址为基础。即,内容的消费者可以只接收通过从与物理对象或位置紧密关联的地址(例如IP地址)显式请求内容的内容。具有针对特定组织的IP地址的URL的请求使请求到达该组织的服务器,而不到达另一组织的服务器。

最近,行业中已经提出内容中心网络(CCN)架构。CCN将新方法引入到内容传输。代替在应用等级以内容得以通过的端对端连接查看网络流量,内容是基于其唯一的名称请求或返回的,网络负责将内容从提供者路由到消费者。

使用内容中心网络,兴趣消息包括内容对象的名称,客户端可以通过CCN传播兴趣,以从托管内容对象的任何CCN节点获得内容对象。向广告兴趣名称的至少前缀的CCN节点转发兴趣。如果此CCN节点可以提供内容对象,则此节点可以(沿兴趣的相反路径)返回满足兴趣的内容对象。

发布者通常想在各个托管服务器上复制其内容。不幸的是,在CCN中这样做要求这些托管服务器广告内容的名称或名称前缀,使得CCN路由器可以知道如何向第三方服务器转发此内容的兴趣。如果托管服务器存储大量发布者的内容对象,则托管服务器的相邻节点可能需要更新其转发表以包括与由托管服务器存储的内容对象关联的每个名称前缀的表项。这对CCN路由器造成很大的负担。更糟糕的是,如果CCN路由器不实现足够大的转发表,则可能的情况是,这些CCN路由器可能不能将兴趣转发到托管服务器以实现所有内容对象都可从该托管服务器上得到。

发明内容

一个实施例提供一种可以从一个或多个内容托管服务获得无名称内容对象的客户端。操作中,客户端可以传播对数据集合的兴趣,并接收包括所述数据集合的清单的内容对象。所述清单可以包括所述数据集合的一组其它内容对象的内容对象散列(COH)值。客户端然后确定托管所述数据集合的至少一部分的内容托管服务的名称前缀,并生成对所述数据集合的各个内容对象的第二兴趣。第二兴趣的名称包括内容托管服务的名称前缀,并且还包括各个内容对象的COH值。客户端通过内容中心网络(CCN)传播第二兴趣以获得所述数据集合的各个内容对象。

在CCN中,每项内容是分别被命名的,每项数据被绑定到将该数据与任何其它项数据相区分的唯一名称,所述任何其它项数据诸如相同数据的其它形式或来自其它源的数据。此唯一名称允许网络装置通过传播指示唯一名称的请求或兴趣来请求数据,并且该网络装置可以获得与数据的存储位置、网络位置、应用和传输装置无关的数据。以下词语描述CCN架构的元件:

内容对象(ContentObject):单一一项命名数据,其绑定到唯一名称。内容对象是“永久的”,这意味着内容对象可以在计算装置内或者在不同的计算装置中移动,但不会改变。如果内容对象的任何组份变化,则出现变化的实体创建包括更新内容的新内容对象,并且将新内容对象绑定到新唯一名称。

唯一名称(UniqueName):CCN中的名称通常是与位置无关的,唯一地标识内容对象。数据转发装置不管内容对象的网络地址或物理位置如何,可以使用名称或名称前缀将向生成或存储内容对象的网络节点转发。在一些实施例中,名称可以是层级结构的可变长度标识符(HSVLI)。HSVLI可以分成几个层级组份,这些组份可以以各种方式构造。例如,个别的名称组份parc,home,ccn,和test.txt可以以左对齐的前缀为主的方式构造,形成名称“/parc/home/ccn/test.txt.”。因此,名称“/parc/home/ccn”可以是“/parc/home/ccn/test.txt.”的“父”或“前缀”。附加组份可以用来区分内容项目的不同形式,诸如合作文档。

在一些实施例中,名称可以包括标识符,诸如从内容对象的数据(例如检验和值)和/或从内容对象的名称的元素导出的散列值。基于散列的名称的描述在发明人IgnacioSolis于2013年3月20日提交的名称为“ORDERED-ELEMENTNAMINGFORNAME-BASEDPACKETFORWARDING”的美国专利申请号13/847,814中描述。名称还可以是平面标识。后文中“名称”用来指名称数据网络中的一条数据的任何名称,诸如层级名称或名称前缀、平面名称、固定长度的名称、任意长度的名称或标识(例如多协议标识交换(MPLS)标识)。

兴趣(Interest):指示对一条数据的请求的包,包括该条数据的名称(或名称前缀)。数据消费者可以在CCN中传播请求或兴趣,CCN路由器可以向可以提供所请求数据以满足请求或兴趣的存储装置(例如缓存服务器)或数据生产者播送。

对CCN架构的描述在发明人VanL.Jacobson和DianaK.Smetters于2008年12月18日提交的名称为“CONTROLLINGTHESPREADOFINTERESTSANDCONTENTINACONTENTCENTRICNETWORK”的美国专利申请号12/338,175中有描述。

在一些实施例中,所述数据集合的其它内容对象不包括名称,是基于其内容对象散列值访问的。

在一些实施例中,所述清单包括根清单,所述根清单规定托管所述数据集合的至少一部分的一个或多个内容托管服务的名称前缀。

在这些实施例的一些变形中,所述根清单包括所述根清单的签名。

在这些实施例的一些变形中,在确定内容托管服务的名称前缀时,客户端从所述根清单获得名称前缀。

在一些实施例中,所述清单包括非根清单。

在这些实施例的一些变形中,所述非根清单不包括名称。

在这些实施例的一些变形中,所述非根清单不包括所述非根清单的签名。

在这些实施例的一些变形中,在获得所述内容托管服务的名称前缀时,客户端从与所述数据集合关联的根清单获得名称前缀。

在一些实施例中,所述数据集合的其它内容对象包括一组非根清单或者一组数据内容对象。

一个实施例提供一种内容托管服务器,所述内容托管服务器可以存储无名称内容对象,并且可以处理包括内容对象散列(COH)值的兴趣以返回其散列值与COH值匹配的无名称内容对象。操作中,服务器可以接收其名称包括内容托管服务的名称前缀并且还包括由内容托管服务托管的内容对象的COH值的兴趣。服务器获得其散列与COH值匹配的内容对象,并沿从其接收兴趣的接口返回满足兴趣的内容对象。

在一些实施例中,内容对象不包括名称。

在一些实施例中,内容对象不包括签名。

在一些实施例中,内容对象包括元数据和/或有效载荷。

在一些实施例中,内容对象包括数据集合的清单,使得所述清单包括数据集合的一组其它内容对象的COH值。

附图说明

图1图解说明根据实施例促进在多个内容托管服务上复制无名称对象的示例性网络环境。

图2A图解说明根据实施例的包括内容的示例性数据集合,内容已经分割成多个内容对象和内容对象的清单层级。

图2B图解说明根据实施例的示例性根清单。

图2C图解说明根据实施例的示例性非根清单。

图3呈现一个流程图,该流程图图解说明根据实施例用于通过一个或多个内容托管服务发布无名称对象的数据集合的示例性方法。

图4呈现一个流程图,该流程图图解说明根据实施例通过内容中心网络请求无名称对象的数据集合的示例性方法。

图5呈现一个流程图,该流程图图解说明根据实施例处理请求无名称对象的兴趣消息的示例性方法。

图6图解说明根据实施例促进在多个内容托管服务上复制无名称对象的示例性设备。

图7图解说明根据实施例促进在多个内容托管服务上复制无名称对象的示例性计算机系统。

在图中,相同的附图标记指相同的附图元件。

具体实施方式

给出以下描述使得本领域技术人员能够制造和使用实施例,以下描述是在特定应用和其需求的背景下提供的。对所公开实施例的各种改进对本领域技术人员是非常显然的,在不偏离本发明的精神和范围下,本文中定义的通用原理可以应用于其它实施例和应用。因此,本发明不局限于所显示的实施例,而是给予与本文中公开的原理和特征一致的最宽范围。

本发明的实施例提供一种内容复制系统,其解决了在不广告共同的名称前缀的多个复制服务器上缓存内容对象的问题。为了解决此问题,内容复制系统使发布者可以创建无名称内容对象,无名称内容对象由内容对象散列(COH)自认证名称寻址。

这些无名称内容对象是真正没有固定位置的对象,原因是他们不包括名称,因此没有暗含的路由。发布者可以在各个复制服务器(或托管服务)上托管这些无名称内容对象,即便这些复制服务器向其它CCN节点只广告他们自己的名称前缀。发布者可以创建无名称内容对象的清单(或无名称内容对象集合的清单层级),并且可以向请求这些内容对象的客户端提供清单(或根清单),以致客户端可以生成直接从(若干)复制服务器请求无名称内容对象的兴趣。清单(或根清单)包括托管无名称内容对象的复制服务器的名称前缀,并包括可以用来唯一地识别无名称内容对象或其它非根清单的内容对象散列(COH)值。

例如,发布者可能想在任何托管服务(例如复制服务器)上存储内容对象的集合,托管服务可以针对特定的地理位置缓存并提供这些内容对象。这些托管服务可以包括分布于全球的缓存服务器集群,每个集群可以具有唯一的名称前缀以允许负载平衡器将请求重新引导到特定的集群或地理区域。然而,如果内容对象有使用发布者的名称前缀嵌入到其中的名称(和其签名),则这些内容对象可只被广告发布者的名称前缀的节点或服务托管。问题是这些服务中有一些可以托管很大一组发布者的内容对象,并且只可以存储每个发布者的小量的内容对象。将所有这些发布者的名称前缀映射到这些服务上会对相邻路由器带来不期望的负担。在许多情况下,路由器不可能在所有这些名称前缀的路由表中创建表项,因为这样做可能要求有比可用的更多的路由表表项。

一种选择是发布者改变这些内容对象的名称,使得每个复制内容对象具有带托管服务的前缀的名称,托管服务缓存复制内容对象。这可以将兴趣具体地重新引导到期望的托管服务(例如特定地理区域的复制服务器)。然而,这样做引起具有新名称的复制内容对象变成与原始内容对象完全不同的内容对象,原因是这两个内容对象具有不同的名称和不同的签名。

另一种可能的解决方案是“封装”,这涉及将发布者的内容对象(其名称包括发布者的名称前缀)封装到其名称包括复制服务器的名称前缀的内容对象中。例如,具有名称前缀“/marc”的发布者可以将内容对象“/marc/foo”封装到名称为“/alice/foo”的内容对象中,以允许复制服务器(具有名称前缀“/alice”)托管内容对象“/marc/foo”。执行负载平衡的网络节点(例如路由器或网关)可以通过生成并传播对“/alice/foo”的新兴趣,将对“/marc/foo”的兴趣重新引导到复制服务器“/alice”。同样,当复制服务器返回内容对象时,此网络节点可以从内容对象“/alice/foo”解封装内容对象“/marc/foo”,返回解封装的内容对象。

然而,“封装”导致此网络节点上的附加计算开销,原因是网络节点需要通过生成新兴趣重新引导兴趣,需要保持被重新引导的兴趣的状态信息。此网络节点还需要能够检测哪些内容对象包括封装的内容对象,并且在将解封装的内容对象返回客户端之前,需要花费宝贵的处理时间来将内容对象“/marc/foo”从复制内容对象“/alice/foo”解封装。更糟糕的是,允许内容对象的名称改变可能容忍将恶意或不期望内容注入到兴趣的返回路径中的“偏离路径(off-path)”攻击。

因此,本发明的实施例使用命名和签名的根“清单”(和无名称和无签名的非根清单的集合)来识别集合中的无名称内容对象,以及可以从其中获得数据集合的名称前缀。对“清单”(也称作“聚合签名对象”)的描述在美国专利申请号14/231,515(发明人ErsinUzun、MarcE.Mosko、MichaelF.Plass和GlennC.Scott于2014年3月31日申请的名称为“AGGREGATESIGNINGOFDATAINCONTENTCENTRICNETWORKING”,律师案号为PARC-20140190US01)中描述。

图1图解说明根据实施例促进在多个内容托管服务上复制无名称对象的示例性网络环境100。计算环境100可以包括内容中心网络102,内容中心网络102包括可以基于其名称或名称前缀转发兴趣的多个边缘节点104和路由节点106。同样,边缘节点104和路由节点106可以基于内容对象的名称(对于命名内容对象)或者基于内容对象的散列(对于无名称内容对象)返回满足兴趣的内容对象。

例如,网络102可以由互联网服务提供商(ISP)管理,并且可以包括向多个客户端装置提供网络接入的边缘节点104.1。网络102还可以包括向可以托管或缓存各个内容生产者的内容对象的多个内容托管服务(例如直接地或者通过回送网络)提供网络接入的边缘节点104.2和104.3。发布者108(例如内容生产者)可以在内容托管服务110上(例如内容传送网络或复制服务器)以及内容托管服务120上存储无名称内容对象的集合。替代性地,内容托管服务110和/或120可以各自对应于由ISP运营的混杂缓存服务,使得每个缓存服务使用不同的名称前缀(例如与具体的地理位置关联的名称前缀)托管无名称内容对象。

注意,内容托管服务110和120不必广告与集合关联的名称前缀。同样,在向内容托管服务110和/或120提供集合之前,发布者108不必改变内容对象的名称前缀以匹配与内容托管服务110和/或120关联的名称前缀。而是,发布者108可以生成清单层级,使得根清单可以包括集合的一组内容托管服务(例如服务110和120)的名称前缀以及一组无名称内容对象的内容对象散列(COH)值(例如对于其它清单或者对于集合中的数据对象)。

装置114可以通过生成和传播包括集合的名称的兴趣(诸如与发布者108关联的名称前缀、与集合关联的名称前缀)来请求集合。当装置114传播兴趣时,边缘节点104和/或路由节点106可以将兴趣转发到发布者108,在此时发布者108可以将根清单返回装置114。替代性地,如果网络102中的CCN节点(例如边缘节点104.1)已经缓存根清单,则此CCN节点可以不必将兴趣转发给发布者108,就将根清单返回装置114。

装置114可以使用根清单选择内容托管服务110,由内容托管服务110请求集合的个别无名称内容对象,并使用COH自认证名称生成对集合中的每个无名称内容对象的请求。例如,装置114可以生成包括所选的内容托管服务的名称前缀并包括各个无名称内容对象的COH自认证名称的兴趣。边缘节点104和/或路由节点106可以使用兴趣的名称中的名称前缀将兴趣转发到适当的内容托管服务,内容托管服务可以使用COH自认证名称来选择需要返回装置114的无名称内容对象。

在一些实施例中,发布者可以将大的数据对象(例如电影流)分割成数据片段的大的集合,并创建这些片段中每个片段的无名称内容对象。发布者还可以创建集合的清单层级,这允许客户端从在集合的根清单中命名的任何内容托管服务获得内容对象的任何复制品。

在一些实施例中,如果现有(例如原始)根清单不包括托管集合中的一个或多个无名称内容对象的内容托管服务的名称前缀,则内容托管服务可以通过引用或通过包含创建合并现有的根清单的新根清单。装置114(或任何其它消费者)可以使用新根清单(因此还有内容托管服务的名称前缀)来获得集合,原因是集合中的无名称内容对象仍具有与COH自认证名称匹配作为现有的可信根清单的散列值。如果装置114需要验证集合的真实性,则装置114仍可以使用原始根清单(由发布者签名的)来确保所接收的内容对象全部具有与原始根清单或者由根清单直接地或者间接地引用的非根清单中指定的COH自认证名称匹配的散列值。

图2A图解说明根据实施例的示例性数据集合202,示例性数据集合202包括已经分割成多个无名称内容对象204的数据,并包括无名称内容对象的清单层级。具体地,发布者可以将数据分割成n个无名称内容对象204,并且可以创建清单层级206,208,210。清单层级可以包括一级或多级根清单,使得较低等级的清单(例如根清单)通过其COH自认证名称引用下一等级的清单(例如清单208)。尽管清单层级206,208,210描绘完整的树,但实际上,清单层级可以包括保持按顺序遍历顺序的任何树结构。例如,清单层级204中的任何清单可以包括针对无名称内容对象204、针对其它清单或者针对内容对象204和其它清单的COH自认证名称。同样,清单层级204中的个别清单可以各自包括任意数目的COH自认证名称,或者替代性地,发布者可以生成所有清单,以包括相同数目的COH名称。

例如,发布者可以为n个内容对象204创建一组p个清单206。如果发布者生成包括m个无名称内容对象的COH自认证名称的每个清单,则发布者生成总共包括所有n个内容对象204的COH值的p=n/m个清单。

例如,底层数据可以包括2GB视频流。发布者可以将视频流分割成n=2百万个无名称内容对象,并且可以生成p=100,000个第一等级清单206,第一等级清单206各自包括40个无名称内容对象204的COH值。发布者可以向集合添加非根清单206,并继续生成非根清单206的另一等级的清单。发布者可以反复创建附加层的清单,直到发布者生成集合的根清单。如果所有的清单包括相等数目的COH值,则最后一组层级清单可以包括logmn个清单等级。

在一些实施例中,发布者可以向要托管集合的各个内容托管服务提供无名称内容对象204(包括分割的数据对象)和非根清单。发布者可以托管根清单,和/或可以向已经(或将要)广告集合的名称前缀的任何CCN节点提供根清单。这允许客户端从发布者或者与集合的名称前缀关联的任何CCN节点获得根清单,客户端使用根清单从内容托管服务访问非根清单和内容对象204。

在一些实施例中,客户端通过首先从发布者(或者缓存根清单210的任何其它CCN节点)获得根清单210来获得内容对象204,并且使用根清单210中的名称前缀和COH自认证名称获得下一等级的非根清单208。客户端然后使用根清单210中的名称前缀和清单208中的COH自认证名称来获得下一等级的非根清单。客户端可以继续处理清单(例如以宽度优先顺序),直到客户端已经获得无名称内容对象204。

图2B图解说明根据实施例的示例性根清单220。具体地,根清单220可以包括名称222、有效载荷224和签名226。名称222包括集合的名称(或名称前缀)。如果集合是通过将大的数据对象分割产生的,则名称222包括产生集合的数据对象的名称。同样,签名226包括基于名称222和生成并使用发布者的数字证书签名的加密签名。

根清单220的有效载荷224可以包括可以用来从内容托管服务请求集合中的无名称内容对象的一组托管前缀226。内容托管服务可以托管分割的内容对象以及无名称非根清单。有效载荷224还可以包括一组内容对象散列(COH)值234,内容托管服务可以使用它与无名称内容对象的散列值匹配。

图2C图解说明根据实施例的示例性非根清单230。具体地,非根清单230可以包括有效载荷232,有效载荷232包括一组内容对象散列(COH)值234,内容托管服务可以使用它来匹配无名称内容对象的散列值。在一些实施例中,非根清单230是无名称内容对象,内容托管服务可以存储无名称内容对象以及集合的其它内容对象。因此,与任何无名称内容对象一样,非根清单230不需要包括名称或签名。

图3呈现一个流程图,该流程图图解说明根据实施例用于通过一个或多个内容托管服务发布无名称对象的数据集合的示例性方法300。操作中,发布者可以将一条数据分割成无名称内容对象的数据集合(操作302),生成数据集合的层级清单(操作304)。发布者可以确定要托管数据集合的至少一部分的一组内容托管服务(操作306),并生成包括每个内容托管服务的名称前缀的根清单(操作308)。

发布者然后向根清单中引用的每个内容托管服务提供数据集合(或其一部分)(操作310)。这些内容托管服务可以是由发布者或第三方服务运营的复制服务器,或者可以包括自愿托管数据集合的任何CCN装置。发布者可以向这些托管者提供构成数据的无名称内容对象以及这些无名称内容对象的清单(例如无名称非根清单的层级)。

在一些实施例中,如果发布者接收对一项数据的兴趣(例如其名称或名称前缀与该项数据匹配的兴趣)(操作312),则发布者返回满足兴趣的根清单(操作314)。例如,发布者可以通过从其接收兴趣的接口返回根清单,在此时,根清单沿着在相反方向行进的兴趣的路径朝传播兴趣的客户端转发。客户端可以使用根清单选择从其获得数据集合的内容托管服务,使用内容托管服务的名称前缀和根清单(以及在数据集合的任何非根清单)中指定的内容对象散列值,生成获得数据集合的兴趣。

图4呈现一个流程图,该流程图图解说明根据实施例通过内容中心网络请求无名称对象的数据集合的示例性方法400。操作中,客户端可以传播其名称包括数据集合的名称前缀的兴趣(操作402)。数据集合可以包括单个无名称内容对象,或者可以包括与共同的名称前缀关联的多个无名称内容对象。内容中心网络的其它网络节点使用兴趣的名称来将兴趣转发到任何目标节点,所述任何目标节点广告与兴趣的名称或名称前缀匹配的名称。此目标节点可以包括缓存来自各个发布者或内容生产者的内容对象的数据集合的发布者,或者任何对等网络节点(例如路由器)。

回想起,数据集合包括多个无名称内容对象以及包括名称和签名的根清单。因此,当兴趣到达与数据集合的名称前缀关联的网络节点(例如发布者或对等节点)时,此网络节点可以返回包括满足兴趣的根清单的内容对象。此内容对象然后沿由兴趣行进但在相反方向上的路径转发,此时客户端接收包括数据集合的根清单的内容对象(操作404)。

根清单包括一个或多个无名称内容对象的内容对象散列值,诸如数据对象或非根清单,还包括托管数据集合的至少一部分的一个或多个内容托管服务的名称前缀。客户端然后从根清单获得数据集合的内容托管服务的名称前缀(操作406),从清单中选择内容对象散列(COH)自认证名称(操作408)。客户端然后通过生成并传播包括内容托管服务的名称前缀并且还包括COH值(例如附加到内容托管服务的名称前缀)的兴趣获得其散列与所选的COH值匹配的无名称内容对象(操作410)。

在一些实施例中,已经广告当前名称前缀的(若干)内容托管服务可以不缓存散列值与所选的COH值匹配的无名称内容对象,这是可行的。如果是这种情况,则客户端可能需要使用不同的名称前缀以到达可以缓存无名称内容对象的其它内容托管服务。例如,在客户端未能获得兴趣的内容对象时(例如以他们出现在根清单中的顺序),客户端可以使用根清单中的第一名称前缀生成COH值的兴趣,并继续使用根清单中的其它名称前缀。因此,如果客户端不从操作410接收满足兴趣的内容对象(例如在预定的超时周期中)(操作412),则客户端可以从数据集合的根清单中选择另一内容托管服务的名称前缀(操作414),并且可以返回操作410,以使用此新的名称前缀生成并传播对COH值的另一兴趣。

如果客户端确实接收与COH值对应的无名称内容对象,则内容对象可以继续传播对清单中引用的其它无名称内容对象的兴趣。例如,客户端可以确定清单中是否存在更多的COH值(操作416)。如果存在,则客户端可以从清单中选择另一COH自认证名称(操作418),并返回操作410,以生成并传播对此其它COH自认证名称的另一兴趣。在一些实施例中,客户端可以使用根清单中的第一名称前缀生成此其它COH自认证名称的兴趣。替代性地,客户端可以使用曾用来请求数据集合中的最后一个无名称内容对象的相同的名称前缀生成对其它COH的兴趣。

回想起,数据集合中的一些无名称内容对象可以包括非根清单。这些非根清单包括对数据集合中内容对象的附加COH自认证名称,但可以不包括其它内容托管服务的附加名称前缀。因此,客户端可以重复操作408-416,以使用来自每个附加非根清单的COH名称和来自根清单的名称前缀,处理它接收(可以形成清单层级)的每个附加非根清单。例如,如果客户端确定在当前清单中没有更多的COH名称(操作416),则客户端可以继续确定是否存在非根清单要处理(操作420)。如果存在,则客户端可以返回操作408以处理此下一非根清单。

在一些实施例中,CCN节点可以通过向与兴趣的名称前缀关联的内容托管服务转发兴趣,来处理无名称内容对象的兴趣。内容托管服务可以包括例如复制一个或多个发布者的数据集合的复制服务器(或服务器的集合),或者存储并托管一个或多个无名称内容对象的任何第三方服务(例如由互联网服务提供商(ISP)运营的混杂的缓存服务)。第三方服务可以直接从发布者、从另一第三方服务接收无名称内容对象,或者可以在无名称内容对象在沿到达请求这些无名称内容对象的客户端装置(例如CCN路由节点或网关)的返回路径途中缓存无名称内容对象。

在一些实施例中,发布者向第三方服务提供集合的一个或多个无名称内容对象,发布者可以生成包括第三方服务的名称前缀的内容对象集合的根清单。在此情况下,第三方服务还可以从集合的发布者接收根清单,根清单包括集合的名称前缀。第三方服务可以向可能希望从第三方服务或根清单中列出的任何其它服务器获得内容对象的集合的任何实体提供此根清单。

然而,第三方服务可能不总是从发布者接收集合。在一些变形中,第三方服务可以为集合创建其自己的根清单,使得根清单包括与第三方服务关联的名称前缀。第三方服务可以通过引用或包括合并现有的根清单(例如原始根清单)。消费者可以使用第三方服务的名称前缀来请求集合,原因是集合中的无名称内容对象仍具有与现有的可信根清单中的COH值匹配的散列值。在接收集合之后,消费者可以使用原始(可信)根清单来验证集合。因此,即使第三方服务不是集合的官方(可信)来源,并且即使第三方服务之前并不包括于原始的根清单中,第三方服务可以使用其自己的名称前缀托管无名称内容对象。

如果通过引用合并现有的根清单,则第三方服务可以生成新的根清单,新的根清单具有包括根清单的名称前缀的有效载荷以及现有的根清单的内容对象散列(COH)自认证名称。注意,根清单的名称前缀可以包括第三方服务自己的名称前缀(如果本地托管)、发布者的名称前缀和/或托管现有的根清单的任何其它第三方服务的名称前缀。另一方面,如果通过包含合并现有的根清单,则第三方服务可以生成具有有效载荷以及现有的根清单(其包括集合的其它名称前缀和COH值)的新的根清单,所述有效载荷包括第三方服务的名称前缀。

例如,客户端可以使用原始根清单来下载集合,并验证集合的真实性。如果客户端(或其用户)想重新发布(托管)集合,则客户端可以生成并发布具有客户端签署的签名的其自己的根清单,并合并原始清单,使得其它客户端可以验证由本地客户端提供的无名称内容对象的真实性。客户端可以与他人共享此新的根清单,诸如通过电子邮件、网络链接或点对点跟踪器。其它客户端可以从本地客户端通过此新的根清单下载集合(或其一部分),即便本地客户端的名称前缀不列入“官方”或“可信”根清单中。

内容托管服务的服务器可以通过将兴趣的内容对象散列(COH)自认证名称与缓存的内容对象的散列匹配来处理兴趣,而不管兴趣的名称前缀为何。图5呈现一个流程图,该流程图图解说明根据实施例处理请求无名称对象的兴趣消息的示例性方法500。操作中,内容托管服务的服务器可以接收兴趣,该兴趣的名称包括内容托管服务的名称前缀,并且还包括无名称内容对象的COH值(自认证名称)(操作502)。服务器然后从本地内容存储获得其散列与兴趣中的COH值匹配的无名称内容对象,而不考虑兴趣的名称前缀(操作504)。服务器然后返回满足兴趣的匹配的无名称内容对象(操作506)。

在一些实施例中,服务器通过服务器从其接收兴趣的接口返回无名称内容对象。同样,其它CCN节点基于无名称内容对象的散列沿由兴趣行进的路径在相反方向转发无名称内容对象。例如,当CCN节点接收无名称内容对象时,CCN节点可以通过在转发兴趣表(PIT)中执行查询以将无名称内容对象的散列与未决兴趣中的COH值匹配,确定用来转发无名称内容对象的接口,而不管这些未决兴趣的名称前缀如何。

图6图解说明根据实施例促进在多个内容托管服务上复制无名称对象的示例性设备600。设备600可以包括可以通过有线或无线通信信道彼此通信的多个模块。设备600可以使用一个或多个集成电路实现,并且可以包括比图6中所示的那些模块更少或更多的模块。进一步地,设备600可以集成在计算机系统中,或者实现为能够与其它计算机系统和/或装置通信的单独的装置。具体地,设备600可以包括通信模块602、集合管理模块604、清单生成模块606和清单处理模块608。

在一些实施例中,通信模块602可以传播和/或接收CCN兴趣和内容对象。集合管理模块604可以通过生成数据的无名称内容对象并将这些无名称内容对象插入到集合中,向集合添加数据。清单生成模块606可以生成无名称内容对象的清单(例如清单层级),并可以将这些清单添加到集合。清单处理模块608可以处理数据集合的清单,以基于其散列值生成并传播请求集合中的无名称内容对象的兴趣。

图7图解说明根据实施例促进在多个内容托管服务上复制无名称对象的示例性计算机系统702。计算机系统702包括处理器704、存储器706和存储装置708。存储器706可以包括用作管理存储器的易失性存储器(例如RAM),并且可以用来存储一个或多个内存池。而且,计算机系统702可以耦连到显示装置710、键盘712和定位装置714。存储装置708可以存储操作系统716、内容复制系统718和数据728。

内容复制系统718可以包括指令,这些指令在由计算机系统702执行时可以引起计算机系统702执行本申请中描述的方法和/或处理。具体地,内容复制系统718可以包括用于传播和/或接收CCN兴趣和内容对象的指令(通信模块720)。而且,内容复制系统718可以包括用于通过生成数据的无名称内容对象并将这些无名称内容对象插入到集合中从而向集合添加数据的指令(集合管理模块722)。内容复制系统718还可以包括用于生成无名称内容对象的清单(例如清单层级),并将这些清单添加到集合的指令(清单生成模块724)。内容复制系统718还可以包括用于处理数据集合的清单以基于其散列值生成并传播请求集合中的无名称内容对象的兴趣的指令(清单处理模块726)。

数据728可以包括通过本申请中描述的方法和/或过程作为输入请求的或作为输出生成的任何数据。具体地,数据728可以至少存储无名称内容对象、无名称内容对象的清单层级的集合。

在此具体实施方式中描述的数据结构和代码通常存储于计算机可读存储介质上,计算机可读存储介质可以是可以存储代码和/或数据以由计算机系统使用的任何装置或介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁和光存储装置(诸如磁盘驱动器、磁带、CD(压缩光盘)、DVD(数字通用盘或数字视频盘))或能够存储现在已知或以后开发的计算机可读介质的其它介质。

在具体实施方式部分描述的方法和过程可以体现为代码和/或数据,这些代码和/或数据可以存储在如上文描述的计算机可读存储介质中。当计算机系统读、执行计算机可读存储介质上存储的代码和/或数据时,计算机系统执行体现为数据结构和代码并存储于计算机可读存储介质中的方法和过程。

而且,上面描述的方法和过程可以包括于硬件模块中。例如,硬件模块可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、和现在已知或以后开发的其它可编程逻辑器件。当硬件模块被激活时,他们执行其中包括的方法和过程。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号