用于可重构一体化内容流的系统和方法_2

文档序号:9616293阅读:来源:国知局
名绑定在一起的内容有效载荷。可选地,所有的内容对象都具有由内容对象的SHA-256摘要组成的隐式终端名称组成。在一个实施例中,隐式摘要不在线上传输,但需要时在每一跳上计算。注意,内容对象与内容组成是不同的。内容对象具有根据CCN协议特别定义的结构,其大小通常是网络包的大小(对于广域网大约1500字节,对于局域网8000字字,具有碎片),而内容组成是用来指任何类型的文件的通用词语,它可以是网页的嵌入式对象。例如,网页可以包括许多个嵌入式对象,诸如图像、视频文件或交互式组件。每个嵌入式对象是一个内容组成,可以跨越多个内容对象。
[0035]如之前提到的,HSVLI指示一项内容,是分层结构的,包括从最概括级到最具体级排序的连续组成。相应的HSVLI的长度是不固定的。在内容中心网络中,与传统的IP网络不同,包可以由HSVLI标识。例如,“abcd/bob/papers/ccn/news”可以是内容的名称,标识相应的(若干)包,即,来自名称为“ABCD”的机构的名字为“Bob”的用户的报纸“ccn”集的“news”文章。为了请求一项内容,节点通过内容的名称表达(例如广播)对该内容的兴趣。对一项内容的兴趣可以是根据内容的名称或标识符对内容集的查询。内容如果在网络上可用,贝从存储该内容的任何节点发送回请求节点。路由架构智能地将兴趣传播到可能具有信息的潜在节点,然后携带可用内容沿与兴趣消息行进的路径相反的路径返回。基本上,内容对象遵循兴趣消息留下的碎肩痕迹(breadcrumbs),因此到达请求节点。
[0036]图1图解说明根据本发明的实施例的网络的示例性架构。在此示例中,网络180包括节点100-145。网络中的每个节点耦连到一个或多个其它节点。网络连接185是这种连接的一个示例。网络连接显示为实线,但每条线还可以代表子网络或超级网络,子网络或超级网络可以将一个节点耦连到另一节点。网络180可以是内容中心的、局域网、超级网络或子网络。这些网络中的每一个网络可以互联,使得一个网络中的节点可以到达其它网络中的节点。网络连接可以是宽带、无线、电话、卫星或任何类型的网络连接。节点可以是计算机系统、代表用户的端点和/或可以生成兴趣或发起内容的装置。
[0037]根据本发明的实施例,消费者可以生成对一项内容的兴趣,向网络180中的节点转发该兴趣。该项内容可以由发布者或内容提供者存储在网络180中的节点上,发布者或内容提供者可以位于网络内部或外部。例如,在图1中,对一项内容的兴趣在节点105上发起。如果内容在该节点上不可用,贝兴趣流向親连到第一节点的一个或多个节点。例如,在图1中,兴趣流向节点115(兴趣流150),节点115也没有可用的内容。接着,兴趣从节点115流向节点125 (兴趣流155),节点125也没有该内容。兴趣然后流向节点130 (兴趣流160),节点130具有可用的内容。内容对象流然后反向折回其路径(内容流165、170和175),直到到达节点105,在此传送内容。诸如认证的其它过程可以包括于内容流中。
[0038]在网络180中,在内容持有者(节点130)和兴趣生成节点(节点105)之间的路径中的任何数目的中间节点(节点100-145)可以在内容在网络上行进时参与缓存内容的本地副本。通过隐式地共享对本地缓存内容的访问,缓存降低了位于其它订阅者附近的第二订阅者的网络负载。
[0039]在CCN中,清单(也称作目录)用来表示数据的集合。例如,CCN节点可以包含视频集合,视频集合包括大量的视频文件,视频集合的清单可以是标识与视频文件对应的内容对象的排序列表。注意,由于内容对象的大小限制,视频文件可以跨越多个内容对象。而且,CCN节点可以存储网页的内容,网页的清单标识网页的不同组成,诸如标记文档和嵌入式对象(包括Javascript、图像文件、音频文件、视频文件等)。
[0040]在清单中,每个内容对象由其名称和相应摘要标识,其中,摘要是内容对象的散列值(通常是使用诸如散列函数SHA-256的加密散列函数计算的)。在一些实施例中,每个内容对象还由指示内容被修改的时间的修改时间标识。图2呈现对传统清单(现有技术)的格式进行图解说明的图。
[0041]在图2中,清单200包括由集合名称204和一个或多个下列项标识的内容对象的排序列表:内容对象名称230.1-230.η ;摘要232.1-232.η和修改时间234.1-234.η。摘要232.1-232.η包括分别由名称230.1-230.η标识的内容对象的散列值。清单200还包括根散列202,它是基于集合中各个内容对象的散列值232.1-232.η的相加散列值。清单200的根散列202是清单200的唯一标识符。
[0042]如图2中所示,清单200可以指示集合中表示的每个内容对象的名称和相应摘要。可选地,清单200还可以包括集合中表示的每个内容对象的修改时间。修改时间字段的使用取决于所执行的底层应用或服务。除了排序列表之外,清单还可以被构造为同步树,其包含内容对象以及内容对象的嵌套集合。
[0043]在传统的CCN中,当内容请求者请求内容集合(诸如网页)时,请求者需要发布兴趣消息的初始集合来读一项内容。图3Α呈现对网页中包括的各个组成进行图解说明的图。在图3Α中,网页300包括标记文档302和由标记文档302引用的许多个对象,标记文档 302 诸如 JavaScript 文件 304 (Filel.js)和 306(File2.js)和嵌入式图像 308(图像 1)和310 (图像N)。为了下载整个网页300,请求者首先需要请求标记文档302,然后需要解析标记文档302来得到关于嵌入式对象的信息,以便请求这些对象,诸如JavaScript文件304和306或图像308和310。
[0044]图3B呈现对下载带嵌入式对象的网页的传统过程进行图解说明的图。在图3B中,请求者312正在从一个或多个响应者314上下载包括多个嵌入式对象的网页。操作中,请求者312通过向响应者314发布请求标记文档的兴趣消息集合316来开始下载过程。一接收标记文档,请求者312解析标记文档,然后一个接一个地请求嵌入式对象(可以是JavaScript文件或图像)。这导致交错请求和下载嵌入式对象,因此增加了延迟。而且,因为请求者312不知道请求一个嵌入式对象要多少块的先验知识,它可能发送估计数目的兴趣来请求对象,此数目可能太少或者太多。例如,在图3B中,标记文档的兴趣集合316包括四个兴趣,每个兴趣有相同的名称前缀,但有不同的块数(诸如/foo/page/sO,/foo/page/si,...,/foo/page/s3)。然而,所发布的兴趣的数目小于标记文档302中包括的分段(块)的数目。一旦接收初始分段,请求者312发布对剩下的标记文档302的附加兴趣。一旦接收标记文档302的所有分段(包括内容对象集合318和内容对象集合320),请求者312读标记文档,并请求嵌入式对象(操作322)。
[0045]为了请求JavaScript文件304 (Filel.js),请求者312发送兴趣消息集合324。事先不知道Filel.js的大小,请求者312可能通过发布太多的兴趣打开太大的窗口。在图3B中,请求者312请求Filel.js的四个兴趣,每个有相同的名称前缀但有不同的块数(诸如 /foo/Filel.js/sO, /foo/Filel.js/sl,..., /foo/Filel.js/s3)。然而,Filel.js只包含两个片断,并返回只包括两个内容对象的内容对象集合326。因此,从请求者312发送的Filel.js的额外的两个兴趣被浪费,本可以用来请求有用的内容,诸如用来开始下载JavaScript文件306(File2.js)。类似地,请求者312可以再次发布对JavaScript文件306(File2.js)的四个兴趣,其只有一个分段,意味着三个兴趣浪费。对于包括许多小对象的内容集合,这种过度请求可能显著地降低网络的总吞吐量(throughput)。
[0046]为了降低下载延迟并提高吞吐量,在一些实施例中,系统将所有必需的内容(包括标记文档和所有的嵌入式对象)对象聚合到单个的命名流中,并允许请求者使用单个命名流(也称作一体化流)下载所有必需的内容。在一些实施例中,内容集合的此单个命名流(一体化流)包括一体化清单,之后是嵌入式对象。注意,为了促进用一体化流进行下载,需要改变传统的清单(如图2中所示)以获得一体化清单。更具体地,一体化清单需要规定每个嵌入式对象中包含的分段的数目。
[0047]图4呈现对根据本发明的实施例的示例性一体化清单的格式进行图解说明的图。在图4中,内容集合(可以包括网页的所有内容)400包括清单402、标记文档404、JavaScript 文件(Filel.js)406、JavaScript 文件(File2.js)408 和其它组成。清单 402包括内容组成的排序列表,每个表项对应于一个内容组成,其可以是标记文档或嵌入式对象。每个表项包括对内容组成的CCN名称进行规定的内容对象字段、列出一体化流中的内容组成的块序列的块数字段和列出所有块的散列值的块-散列字段。
[0048]例如,在图4中,清单402中包括的表项410对应于标记文档404。更具体地,表项410包括对象名称字段412.1、块数字段414.1和块散列字段416.1。对象名称字段412.1规定标记文档404的CCN基本名称(/foo/markup)。块数字段414.1规定占据一体化流的块s3-s9(总共七个块,每个块是单个的内容对象)的标记文档404(由CCN名称412.1标识)。注意,在一些实施例中,每个块(或每个内容对象)的CCN名称可以构造为内容组成的CCN基本名称加上块数。例如,假定标记文档404有七个块,标记文档404的第一块可以具有CCN名称/foo/markup/s0,最后一块可以具有CCN名称/foo/markup/s6。块散列字段416.1列出所有七个块的内容对象散列值(诸如0xl2AB、0x7798等)。注意,在图4所示的示例中,内容对象散列值显示为2字节散列,便于查看简单。实际上,内容对象的内容对象散列
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1