未决兴趣表行为的制作方法

文档序号:10626997阅读:214来源:国知局
未决兴趣表行为的制作方法
【专利摘要】一个实施例提供一种促进有效聚合来自多个前辈的相同内容的多个兴趣消息的系统。操作中,中间节点从前辈节点接收第一兴趣消息。第一兴趣消息指示内容对象的名称和与第一兴趣关联的生存期。中间节点识别未决兴趣表中与第一兴趣对应的表项并确定表项还未过期。中间节点确定是否已经从前辈节点接收指示与第一兴趣消息相同的内容对象名称的第二兴趣消息。如果接收,则转发第一兴趣。如果没有接收,则将与前辈节点关联的信息增加到表项。中间节点确定与表项关联的前辈生存期,并且还确定与表项关联的最大生存期。
【专利说明】
未决兴趣表行为
技术领域
[0001]本申请一般涉及数字内容的分发。更具体地,本申请涉及用于高效地聚合来自多个前辈的相同内容的多个兴趣消息的系统和方法。
【背景技术】
[0002]互联网和电子商务的激增继续产生大量的数字内容。设计出内容中心网络(CCN)架构来促进访问并处理这些数字内容。CCN包括实体或节点,诸如网络客户端、转发器(例如路由器)和内容生产者,他们通过发送对各种内容项目的兴趣包并接收返回的内容对象包来彼此通信。CCN兴趣和内容对象由其唯一的名称标识,该唯一的名称通常是分层结构的可变长度标识符(HSVLI) ASVLI可以包括从最概括级到最具体级排序的连续名称组成。当兴趣包通过网络从内容请求节点路由到内容生产节点时,每个中间CCN路由器在其与兴趣对应的未决兴趣表(PIT)中增加表项,并将兴趣转发到下一CCN路由器。当匹配的内容对象包从内容生产节点往回发送到请求节点时,它遵循兴趣的相反路径。每个中间CCN路由器沿相应的PIT表项中列出的请求接口转发内容对象,并随后去掉PIT表项,指示兴趣已经得到满足。
[0003]中间CCN节点可以接收对相同内容对象的多个兴趣(例如“相似兴趣”)。发送节点可以基于估计的包的往返时间为相似兴趣分配生存期。中间节点可以接收初始兴趣,在其PIT中增加相应表项。一旦接收第二或随后(“后来的”)相似兴趣,中间节点可以通过将请求接口加入到现有PIT表项,并在初始兴趣的生存期期满之前抑制后来兴趣的转发,将后来的兴趣聚合在与初始兴趣相同的PIT表项。结果,具有长生存期的现有PIT表项可以阻挡具有较短生存期的后续相似兴趣的转发,造成网络不高效。此外,基于可变网络度量的兴趣生存期可能不是可靠的,可能导致另外的网络不高效。因此,需要的是一种PIT聚合机构,其不会阻挡其它请求者,并且不要求测量往返时间。

【发明内容】

[0004]一个实施例提供一种促进有效聚合来自多个前辈的相同内容的多个兴趣消息的系统。操作中,系统通过中间节点从前辈节点接收与第一兴趣消息对应的包,其中,第一兴趣消息指示内容对象的名称和与第一兴趣消息关联的生存期。中间节点识别未决兴趣表中与第一兴趣消息对应的表项。响应于确定表项还未到期,中间节点如下操作:响应于确定已经从所述前辈节点接收指示与所述第一兴趣消息相同的内容对象名称的第二兴趣消息,中间节点转发所述第一兴趣消息;响应于确定还未从所述前辈节点接收指示与所述第一兴趣消息相同的内容对象名称的第二兴趣消息,中间节点将与所述前辈节点关联的信息增加到所述表项;中间节点确定与所述表项关联的前辈生存期;以及中间节点确定与所述表项关联的最大生存期。
[0005]在一些实施例中,与所述第一兴趣消息关联的生存期基于以下的一个或多个:往返时间以及订阅时间。
[0006]在一些实施例中,所述未决兴趣表中的表项指不以下的一个或多个:名称;最大生存期;以及一个或多个前辈节点的前辈信息,其中,所述前辈信息包括前辈标识符和前辈生存期。
[0007]在一些实施例中,中间节点通过确定在当前时间之后表项的最大生存期的期满出现,确定表项还未到期。
[0008]在一些实施例中,中间节点通过基于当前时间和第一兴趣消息的生存期确定新到期时间,确定与表项关联的前辈生存期。响应于确定在前辈生存期期满之后新到期时间出现,中间节点将与表项关联的前辈生存期设置为新到期时间。
[0009]在一些实施例中,中间节点通过响应于确定在最大生存期期满之后与表项关联的前辈生存期的期满出现,确定与表项关联的最大生存期,将与表项关联的最大生存期设置为前辈生存期。
[0010]在一些实施例中,中间节点接收与未决兴趣表中的匹配表项对应的内容对象对应的包。中间节点基于匹配表项确定有效前辈节点,并且基于前辈信息将内容对象转发到有效前辈节点。中间节点从匹配表项中去掉前辈信息,并且响应于确定对于匹配表项没有任何前辈信息剩余,从未决兴趣表中去掉匹配表项。
[0011]在一些实施例中,中间节点通过选择在当前时间之后出现前辈生存期期满的前辈节点,确定有效的前辈节点。
【附图说明】
[0012]图1A图解说明根据本发明的实施例促进有效聚合来自多个前辈的相同内容的多个兴趣消息的示例性网络。
[0013]图1B图解说明根据本发明的实施例由中间节点保存的示例性未决兴趣表。
[0014]图2呈现图解说明根据本发明的实施例中间节点执行的有效聚合来自多个前辈的相同内容的多个兴趣消息的方法的流程图。
[0015]图3呈现图解说明根据本发明的实施例由中间节点执行的更新其未决兴趣表中的表项的方法的流程图。
[0016]图4呈现图解说明根据本发明的实施例由中间节点执行的处理匹配的内容对象的方法的流程图。
[0017]图5A图解说明根据本发明的实施例与网络中的中间节点的示例性通信。
[0018]图5B呈现根据本发明的实施例描述图5A的示例性通信包括未决兴趣表中的示例性表项的状态的表。
[0019]图6图解说明根据本发明的实施例促进有效聚合来自多个前辈的相同内容的多个兴趣消息的示例性计算机和通信系统。
[0020]在图中,相同的附图标记指相同的附图元件。
【具体实施方式】
[0021]给出以下描述使得本领域技术人员能够制造和使用实施例,以下描述是在特定应用和其需求的背景下提供的。对所公开实施例的各种改进对本领域技术人员是非常显然的,在不偏离本发明的精神和范围下,本文中定义的通用原理可以应用于其它实施例和应用。因此,本发明不局限于所显示的实施例,而是给予与本文中公开的原理和特征一致的最宽范围。
[0022]挺述
[0023]在本发明的实施例中,有效处理对相同数据的多个兴趣(“类似兴趣”)的问题是通过保存未决兴趣表(PIT)来解决的,未决兴趣表包括对从前一跳节点接收的每个相似兴趣的生存期以及兴趣的单独的聚合生存期。在处理相似兴趣的现有方法中,中间节点可以在单个PIT表项中聚合相似兴趣。然而,具有长生存期的现有PIT表项可能会阻挡或抑制具有短生存期的后来的相似兴趣,导致网络的不高效。以前的解决方案依赖于中间节点跟踪每个未决的相似兴趣的兴趣生存期,通过基于每个未决相似兴趣的生存期以粒度水平执行计算来应对链接延迟,并基于计算结构执行重传(例如发送随后的相似兴趣)。此外,以前的方法可能要求中间节点缓存兴趣包,保存每个未决兴趣的定时器或抑制较少的兴趣。然而,中间节点(例如CCN转发器或路由器)执行这些任务既不是高效的也不是有效的。
[0024]本发明的实施例通过以下方式解决这些效率低下的问题:由中间节点基于是否已经从相同的前一跳(前辈)节点接收相似兴趣(例如,可以由相同的内容对象满足的兴趣),保存未决兴趣表(PIT)。如果已经接收,则中间节点转发兴趣。如果没有接收,则中间节点通过将前辈信息增加到相应的PIT表项来聚合兴趣,而不转发兴趣。PIT表项可以包括兴趣的名称、聚合生存期(“最大生存期”)以及一个或多个前辈的前辈信息(“前辈表项”)。每个前辈表项可以包括由前辈发送的兴趣的生存期(“前辈生存期”)。随后,中间节点通过延长前辈生存期和/或修改最大生存期来确定是否更新相应的PIT表项。以此方式,中间节点可以聚合从前辈接收的对现有PIT表项的第一相似兴趣,并转发任何后续的相似兴趣。此外,基于所接收兴趣的生存期更新PIT表项的最大生存期可以延长兴趣的最大生存期。通过保存每个前辈的兴趣生存期和兴趣的聚合生存期,本发明的实施例提供这样一种系统,在此系统中,长生存期的现有PIT表项不会干扰(例如不会抑制)从前辈接收的具有较短生存期的后来的相似兴趣,因此促进来自多个前辈的相同内容的多个兴趣的有效聚合。
[0025]—旦接收与现有PIT表项匹配的内容对象,中间节点识别有效的前辈表项(例如前辈生存期还没期满)。中间节点将内容对象转发到每个相应的前辈,随后从PIT表项去掉有效的前辈表项。如果任何无效(例如期满的)前辈表项仍在PIT表项中,则中间节点不去掉他们,直到表项的最大生存期期满。如果匹配的内容对象满足所有的前辈表项(例如PIT表项没有任何前辈表项),则中间节点不管兴趣的最大生存期是否期满,都去掉PIT表项。
[0026]在CCN中,每项内容是分别被命名的,每项数据被绑定到将该数据与任何其它项数据相区分的唯一名称,诸如相同数据的其它形式或来自其它源的数据。此唯一名称允许网络装置通过传播指示唯一名称的请求或兴趣来请求数据,可以获得与数据的存储位置、网络位置、应用和传输手段无关的数据。以下词语用来描述CCN架构:
?0027] 内容对象(Content Object):单--项命名数据,其绑定到唯一名称。内容对象是
“永久的”,这意味着内容对象可以在计算装置内或者在不同的计算装置中移动,但不会改变。如果内容对象的任何组成变化,则出现变化的实体创建包括更新内容的新内容对象,并且将新内容对象绑定到新唯一名称。
[0028]唯一名称(Unique Name):CCN中的名称通常是与位置无关的,唯一地标识内容对象。数据转发装置不管内容对象的网络地址或物理位置如何,可以使用名称或名称前缀将包向生成或存储内容对象的网络节点转发。在一些实施例中,名称可以是分层结构的可变长度标识符(HSVLI) ASVLI可以分成几个层次组成,这些组成可以以各种方式构造。例如,个别的名称组成pare,home,ccn和test.txt可以以左对齐的前缀为主的方式构造,形成名称 “/parc/home/ccn/test.txt”。因此,名称 “/parc/home/ccn” 可以是 “/parc/home/ccn/test, txt”的“父”或“前缀”。附加组成可以用来区分内容项目的不同形式,诸如合作文档。
[0029]在一些实施例中,名称可以包括不分层的标识符,诸如从内容对象的数据(例如验证和值)和/或从内容对象的名称的元素导出的散列值。基于散列的名称的描述在美国专利申请号13/847,814中描述。名称还可以是扁平标签。后文中“名称”用来指名称数据网络中的一条数据的任何名称,诸如层次名称或名称前缀、扁平名称、固定长度的名称、任意长度的名称或标签(例如多协议标签交换(MPLS)标签)。
[0030]兴趣(Interest):指示对一条数据的请求的包,包括该条数据的名称(或名称前缀)。数据消费者可以在信息中心网络中传播请求或兴趣,CCN路由器可以向可以提供所请求数据以满足请求或兴趣的存储装置(例如缓存服务器)或数据生产者播送。
[0031]本文中描述的方法不局限于CCN网络,还适用于其它架构。CCN架构的描述在美国专利申请号12/338,175中描述。
[0032]图1A图解说明根据本发明的实施例促进有效聚合来自多个前辈的相同内容的多个兴趣消息的示例性网络100。网络100可以包括内容请求装置116、内容生产装置118和节点102,104,106,108,110,112和114上的路由器或其它转发装置。节点可以是计算机系统,代表用户的端点和/或可以生成兴趣或发起内容的装置。节点还可以是边缘路由器(例如CCN节点102和114)或核心路由器(例如中间CCN路由器104-112)。每个CCN路由器可以保存其自己的未决兴趣表(PIT)(例如节点110的PIT 130)和其自己的转发信息库(FIB)(未显示)oPIT 130可以包括与未决兴趣关联的PIT表项131.1-131.n WIT表项(例如PIT表项131.1)可以包括名称132、聚合生存期或最大生存期134和前辈信息136。前辈信息136可以包括前辈标识符142.1-142.m和m个前辈表项的前辈生存期144.1-144.m。
[0033]操作中,节点114可以在内容项中向节点110发送兴趣150。兴趣150可以包括名称152和生存期154,生存期154可以用时间单位(例如毫秒)度量。在一些实施例中,生存期154是绝对时间。节点110可以接收兴趣150,更新PIT 130以指示从前辈节点114接收的兴趣150。如果PIT 130中对相似兴趣,存在有效的(例如未到期的)PIT表项,并且如果前辈节点还未列在PIT表项(例如兴趣150是从前辈节点114接收的第一相似的兴趣),则节点110通过增加对节点114的前辈信息来更新现有PIT表项。如果前辈节点已经列于PIT表项(例如兴趣150是第二或随后的从前辈节点114接收的相似兴趣),则节点110将兴趣150转发到下一跳节点(例如节点108)。中间节点110然后如关于图2和图3在下文描述的那样更新PIT表项。
[0034]图1B图解说明根据本发明的实施例由中间节点保存的示例性未决兴趣表(PIT)130oPIT 130中的每个表项包括名称132、最大生存期134和一个或多个前辈的前辈信息136。前辈信息136可以包括前辈标识符142和前辈生存期144。例如,PIT表项131.1指示对名称为“/a/b/c/dl”、最大生存期的值为395毫秒以及分别发送对相同内容对象的兴趣的四个前辈节点(例如节点114,112,106和108)的前辈信息的内容对象的未决兴趣。前辈节点114的前辈信息可以包括值为“PRED_IDnqde 114”的前辈标识符和值为220毫秒的前辈生存期。注意,PIT表项131.1的最大生存期(例如395ms)是与此PIT表项关联的所有前辈生存期的最大值(例如,对于前辈节点108,值为395ms的前辈生存期144)。在一些实施例中,生存期和最大生存期以绝对时间单位度量。
[0035]图2呈现根据本发明的实施例图解说明由中间节点执行的有效聚合来自多个前辈的相同内容的多个兴趣消息的方法200的流程图。操作中,系统通过中间节点从与兴趣消息对应的前辈节点接收包(操作202)。兴趣消息包括名称(可以对应于请求的内容对象)和兴趣的生存期。兴趣生存期可以由发送节点分配或确定。兴趣生存期可以基于往返时间,往返时间是基于网络度量确定的,例如估计的包在两个节点之间行进的往返时间。兴趣生存期还可以基于订阅时间,订阅时间是基于发送节点接收响应的兴趣时间长度确定的。基于订阅的生存期(例如以秒测量的)可以比基于往返时间的生存期(例如以毫秒测量的)更长。此夕卜,因为兴趣生存期不需要在每一跳被调整,所以兴趣生存期可以作为兴趣包的签名信息被包括。在一些实施例中,所接收兴趣的生存期、前辈生存期和PIT表项的最大生存期表示为绝对时间。如果兴趣消息不包括生存期字段,则中间节点可以使用默认值。
[0036]中间节点确定PIT中的表项是否存在与所接收兴趣相同的名称(判断204)。如果不存在,则中间节点转发兴趣(操作218)并通过增加与所接收兴趣对应的表项来更新其PIT(操作220)。如果存在与所接收兴趣相同名称的PIT表项,则系统确定现有的PIT表项是否是有效的(判断206)。例如,中间节点通过将当前时间与现有PIT表项的最大生存期比较,确定现有PIT表项是否期满。如果PIT表项无效(例如已经期满),则中间节点转发兴趣(操作218),通过增加与所接收兴趣对应的表项,更新其PIT(操作220)。
[0037]如果PIT表项有效(例如还未到期),则系统确定前辈是否列于PIT表项中(例如是否从相同的前辈接收对相同内容的兴趣)(判断208)。如果没有(指示此接收的兴趣是从前辈接收的第一个这种相似兴趣),则中间节点更新相应的PIT表项以包括前辈信息(操作210),不转发兴趣。前辈信息可以包括前辈标识符和前辈生存期。前辈标识符可以指示曾接收兴趣所通过的进入接口或前辈节点的地址。系统可以保存进入接口和前辈节点的(例如前一跳节点)地址之间的映射。
[0038]如果前辈列于PIT表项中(指示所接收的兴趣是来自前辈的第二或后来的兴趣),则中间节点转发所接收的兴趣(操作212)。在一些实施例中,中间节点可以应用数据传输规划算法(例如令牌桶算法),以便在多个前辈在近似相同的时间发送(或中间节点接收)后来的相似兴趣时,转发后来的兴趣。规划算法可以是中间节点本地的,与兴趣生存期不相关。随后,中间节点通过延长前辈的生存期(操作214)更新PIT表项,并且如关于图3在下文描述的,如果某些条件存在,还通过修改PIT表项的最大生存期更新PIT表项(操作216)。
[0039]图3呈现根据本发明的实施例图解说明由中间节点执行的更新其未决兴趣表(PIT)中的表项的方法300的流程图。假设中间节点具有现有的有效PIT表项(例如从判断204和206得到肯定条件),其包括名称、最大生存期和前辈彳目息,前辈?目息可以包括前辈标识符和前辈生存期。操作中,中间节点接收具有名称和生存期的兴趣。中间节点可以基于当前时间和所接收兴趣的生存期确定所接收兴趣的新的到期时间(操作302)。在一些实施例中,新的到期时间是通过将所接收兴趣的生存期加上当前时间以获得新的(例如绝对)到期时间来计算的。中间节点确定在前辈生存期期满之后是否出现新到期时间(如在与PIT表项关联的相应前辈表项中列出的)(判断304)。如果出现,则中间节点将PIT表项中的前辈生存期设置成新到期时间(操作306)。如果没有出现,则操作返回。
[0040]中间节点还确定在PIT表项的最大生存期期满之后前辈生存期是否期满(判断308)。如果期满,则中间节点将PIT表项的最大生存期设置成前辈生存期(操作310)。如果没有期满,则操作返回。
[0041]图4呈现根据本发明的实施例图解说明由中间节点执行的处理匹配的内容对象的方法的流程图40O。操作中,中间节点接收与内容对象对应的包(操作402)。中间节点确定PIT中是否存在与内容对象对应的表项(判断404)。例如,系统在PIT中执行查询,寻找匹配的PIT表项,例如,是否有与所接收的内容对象相同名称的PIT表项。如果匹配的PIT表项不存在,则中间节点可以丢弃内容对象或在预期有未来的内容对象(未显示)时,存储内容对象的副本,正如在美国专利号8,204,060中描述的。如果匹配的PIT表项确实存在,则中间节点确定PIT表项是否存在有效的前辈表项(判断406)。例如,对于PIT表项中的前辈表项,中间节点通过将当前时间与前辈生存期比较,来确定前辈表项是否已经期满。如果前辈表项还未到期,则被认为是有效的,如果已经期满,则被认为是无效的。如果前辈表项有效,则中间节点基于前辈信息将内容对象转发到有效前辈(操作408),前辈信息可以包括前辈标识符。如上文描述的,前辈标识符可以指示曾接收兴趣所通过的进入接口(因此是发送返回的内容对象要通过的接口)或者可以指示前辈节点的地址。系统可以保存进入接口和前辈节点(例如前一跳节点)之间的映射。可选地,中间节点可以在其缓存中存储内容对象的副本(操作410)。随后,中间节点从PIT表项去掉前辈表项(操作412),操作返回到判断406(例如确定是否存在有效前辈)。
[0042]如果对于PIT表项不存在任何有效的前辈表项,则中间节点确定对PIT表项是否存在任何更多的剩余前辈表项(判断414)。如果没有更多的剩余前辈表项,则中间节点从PIT去掉PIT表项(操作418),操作返回。如果存在任何剩余的前辈表项,则中间节点确定PIT表项是否仍是有效的(判断416)。例如,中间节点通过将当前时间与现有PIT表项的最大生存期比较,确定现有的PIT表项是否已经期满。如果PIT表项是无效的(例如已经期满),则中间节点从PIT中去掉PIT表项(操作418),操作返回。如果PIT表项是有效的(例如还没期满),则操作返回。在一些实施例中,当没有任何剩余前辈表项时,则在PIT中不存在无效的PIT表项(例如到期的最大生存期),原因是一旦最大生存期期满,则PIT表项(连同任何关联的前辈表项)从PIT中移除。
[0043]因此,前辈表项只有在有效的前辈表项由匹配的内容对象满足时或者(对于任何剩余的无效前辈表项)在PIT表项的最大生存期期满时被移除,导致从PIT中去掉PIT表项。当相应的PIT表项不再包含任何前辈表项时,还可以从PIT将其移除。此外,当PIT充满时,中间节点可以去掉PIT表项。当达到PIT容量时,中间节点可以基于特定于节点的驱逐算法(诸如至少最近使用过(LRU)算法)循环表项,其中,“使用过”是自从最后一次匹配请求以来的时间。
[0044]图5A图解说明根据本发明的实施例与网络中的中间节点的示例性通信500。通信500可以包括节点532( “节点A” )、节点534( “节点B” )、节点536( “节点C”)和节点538( “节点D”)之间的通信。例如,节点A和B可以创建并发送对与相同名称(例如“/a/b”)对应的内容的兴趣消息。节点C可以是接收并处理对来自前辈节点A和B的相同内容(对应于名称“a/b”)的多个兴趣消息的中间节点。节点D可以是满足对与名称“/a/b”对应的内容的兴趣。节点A,B,C和D下面的垂直线表示时间的流逝。具体的时间由例如“TI = O毫秒(ms)”,“T2 = 10ms”等表示。每个指示的时间Tx的详细描述在下面关于图5B提供。如果两个兴趣对应于对相同名称的内容的请求,或者如果他们可以由相同的内容对象满足,则他们可以是“相似的”。转发的包或兴趣可以导致失效,例如本地端口失效、链接失效或远程端口失效,如由失效560,562和564示出的。
[0045]图5B呈现根据本发明的实施例描述图5A的通信500(包括由中间节点C保存的未决兴趣表中的示例性表项的状态)的表550。对于图5A中描绘的每个时间Tx,表500包含时间540和与时间Tx出现的动作和/或通信对应的动作542以及与由中间节点C在时间Tx保存的相应PIT表项的状态对应的PIT表项544。以下缩写用在此使用示例中:1)表示兴趣:“名称,生存期”;以及2)表示PIT表项:“{名称,最大生存期,{前辈ID,前辈生存期}}”。此外,值“Α”用来指示节点A的前辈标识符,值“B”用来指示节点B的前辈标识符。在一些实施例中,所有描述的时间(例如图5Β的每个Tx)和所有的生存期(例如兴趣生存期、最大生存期和前辈生存期)以绝对时间表示。
[0046]操作中,在时间Τ1=0,节点A将兴趣502(/a/b,240ms)发送到节点C。在时间Τ3 =80,节点C接收兴趣502,确定对于此名称的兴趣,PIT表项不存在,增加相应的PIT表项,将前辈生存期设置成320(通过将兴趣生存期240加上当前接收的时间80以获得320),将兴趣的最大生存期设置成320(由T13 = 320终止的块示出)。这导致PIT表项544在时间T3 = 80时,值为{/&/13,320{4,320}}。节点(:然后转发兴趣502(这可以导致失效560)。在时间了2 = 10,节点A向节点C发送相似的兴趣504(/a/b,240ms)。在时间Τ4 = 90,节点C接收兴趣504,确定它是否是来自相同前辈(例如节点Α)的第二或随后的相似的兴趣,并转发兴趣504(这可能导致失效562)。节点C还通过将相应的前辈表项的前辈生存期延长到330(通过将兴趣生存期240加上当前所接收的时间90,以获得330),并将最大生存期修改为330,更新PIT表项。这导致PIT 表项 544在时间Τ4 = 90,值为{/a/b,330 {Α,330}}。
[0047]在时间T5 = 105,节点B将兴趣506(/a/b,80ms)发送到节点C。在时间T6 = 115,节点C接收兴趣506,确定对于此名称的兴趣,有效的PIT表项确实存在,确定兴趣506是从此前辈接收的第一相似兴趣,并通过增加前辈信息来更新PIT表项。例如,节点C将B的前辈生存期设置为195(通过将兴趣生存期80加上当前接收的时间115,得到195,由终止于T9 = 195模块示出的)。注意,节点C不会修改兴趣的最大生存期,原因是前辈生存期(195ms)在最大生存期(330ms)之前被设置成期满,节点C也不会转发兴趣506。实际上,节点C聚合PIT表项中的兴趣506,原因是兴趣506是从此前辈(例如节点A)接收的第一相似兴趣。这导致PIT表项544在时间1'6 = 115值为{/£1/13,330{4,330}{8,195}}。在时间了7 = 145,节点8向节点(:发送相似兴趣508(/a/b,80ms)。在时间T8 = 155,节点C接收兴趣508,确定来自相同前辈(例如节点B)的第二或随后的相似兴趣,并转发兴趣508(这可能导致失效564)。节点C还通过将相应前辈表项的前辈生存期延长到235(通过将兴趣生存期80加上当前接收时间155,以获得235)来更新PIT表项。注意,节点C并不会修改兴趣的最大生存期,原因是前辈生存期(235ms)被设置成在最大生存期(330ms)之后期满。这导致PIT表项544在时间T8= 155,值为{/a/b,330{八,330}{8,235}}。在时间110 = 235,达到对于节点8前辈生存期的期满,但对于节点郎勺前辈表项不会从?1!'表项544去除,在时间110 = 235,继续为值{/&/13,330{4,330}{8,235}}。
[0048]在时间!11 = 305,节点8向节点(:发送相似兴趣510(/&/13,801^)。在时间1'12 = 315,节点C接收兴趣510,确定兴趣510是来自相同前辈(例如节点B)的第二或随后的相似兴趣,转发兴趣510(这可以成功地达到节点D,并由内容对象520满足)。节点C还通过将对应的前辈表项的前辈生存期延长到395(通过将兴趣生存期80加上当前接收时间315,得到395)来更新PIT表项。注意,节点C还修改兴趣的最大生存期,原因是前辈生存期(395ms)被设置成在最大生存期(330ms)之后期满。这导致PIT表项544在时间T12 = 315,值为{/a/b,395{A,330}{8,395}}。在时间114 = 330,达到对于节点八前辈生存期的期满,但对于节点八前辈表项不会从?1!'表项544中去掉,在时间114 = 330,继续有值{/&/13,395{4,330}{8,395}}。
[0049]在时间T15 = 335,节点D接收兴趣510,在时间T16 = 350,节点D向节点C发送名称为“/a/b”的匹配内容对象520。在时间T17 = 370,节点C接收内容对象520,确定对于相应的PIT表项存在有效的前辈(例如,对于节点B前辈的生存期还未到期),将内容对象520转发到节点B。注意,因为对于节点A前辈的生存期已经期满,所以节点C并不向节点A转发内容对象520。同样,节点C并不从PIT表项中去掉节点A的前辈表项,原因是最大生存期还未到期。因此,这导致?1!'表项544在时间117 = 370,值为{/&/13,395{4,330}}。在时间1'18 = 380,节点8接收内容对象520,并基于本文中描述的方法对其PIT采取动作。因为由兴趣或内容对象遍历的每个节点基于其前辈节点保存其PIT,并且因为每个这种遍历的(例如中间)节点执行与本文中描述的相同操作,所以系统有效地聚合每个中间节点的未决兴趣表上的兴趣。最后,在时间T19 = 39 5,PIT表项的最大生存期期满,节点C从PIT去掉PIT表项(连同节点A的剩余的到期前辈表项)。
[0050]图6图解说明根据本发明的实施例促进有效聚合来自多个前辈的相同内容的多个兴趣消息的示例性计算机和通信系统。计算机和通信系统602包括处理器604、存储器606和存储装置608。存储器606可以包括充当管理存储器的易失性存储器(例如RAM),并且可以用来存储一个或多个内存池。而且,计算机和通信系统602可以耦连到显示装置610、键盘612和定位装置614。存储装置608可以存储操作系统616、内容处理系统618和数据632。
[0051 ]内容处理系统618可以包括指令,这些指令在由计算机和通信系统602执行时,可以引起计算机和通信系统602执行本申请中描述的方法和/或过程。具体地,内容处理系统618可以包括用于由中间节点从与第一兴趣消息对应的前辈节点接收包(通信机构620)和用于识别未决兴趣表中与第一兴趣消息对应的表项的指令(查询机构622)。内容处理系统618可以包括用于响应于确定表项还未到期(查询机构622),确定是否已经从前辈节点接收指示与第一兴趣消息相同的内容对象名称的第二兴趣消息的指令(查询机构622)。如果已经接收,则内容处理系统618可以包括用于转发第一兴趣消息的指令(通信机构620)。如果没有接收,则内容处理系统618可以包括用于将与前辈节点关联的信息加入到表项中的指令(聚合机构626)。内容处理系统618还可以包括用于确定与表项关联的前辈生存期的指令(前辈机构624)。内容处理系统618可以包括用于确定与表项关联的最大生存期的指令(期满机构624)。
[0052]内容处理系统618另外可以包括用于确定在当前时间之后出现表项的最大生存期期满的指令(期满机构624)。内容处理系统618可以包括用于基于当前时间和第一兴趣消息的生存期确定新到期时间,并且响应于确定在前辈生存期期满之后出现新期满,将与表项关联的前辈生存期设置成新到期时间的指令(前辈机构624)。内容处理系统618还可以包括用于响应于确定在最大生存期期满之后与表项关联的前辈生存期期满,将与表项关联的最大生存期设置成前辈生存期的指令(期满机构628)。
[0053]内容处理系统618还可以包括用于接收与对应于未决兴趣表中的匹配表项的内容对象对应的包的指令(通信机构620)。内容处理系统618可以包括用于基于匹配表项确定有效的前辈节点(查询机构622)以及基于前辈信息将内容对象转发到有效的前辈节点的指令(通信机构620)。内容处理系统618还可以包括用于从匹配表项中去掉前辈信息的指令(去除机构624)。内容处理系统618可以包括用于响应于确定对匹配表项没有任何前辈信息剩余(查询机构622),从未决兴趣表中去掉匹配表项的指令(去除机构630)。
[0054]数据632可以包括通过本申请中描述的方法和/或过程作为输入请求的或作为输出生成的任何数据。具体地,数据632可以存储至少:与兴趣消息对应的包;兴趣或内容对象的名称;与兴趣关联的生存期;基于往返时间的生存期;基于订阅时间的生存期;未决兴趣表(PIT);未决兴趣表中的表项;与PIT表项关联的最大生存期;与PIT表项关联的前辈表项;前辈表项的前辈标识符;前辈表项的前辈生存期;基于当前时间和兴趣的生存期的新到期时间;以及与内容对象对应的包。
[0055]在此详细描述中描述的数据结构和代码通常存储于计算机可读存储介质上,计算机可读存储介质可以是可以存储代码和/或数据以由计算机系统使用的任何装置或介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁和光存储装置(诸如磁盘驱动器、磁带、CD(光盘)、DVD(数字通用盘或数字视频盘))或能够存储计算机可读介质的现在已知或以后开发的其它介质。
[0056]在详细描述部分描述的方法和过程可以体现为代码和/或数据,这些代码和/或数据可以存储在如上文描述的计算机可读存储介质中。当计算机系统读、执行计算机可读存储介质上存储的代码和/或数据时,计算机系统执行体现为数据结构和代码并存储于计算机可读存储介质中的方法和过程。
[0057]而且,上面描述的方法和过程可以包括于硬件模块或设备中。硬件模块或设备可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、在特定时间执行特定软件模块或代码段的专用或共用处理器,和现在已知或以后开发的其它可编程逻辑器件。当硬件模块或设备被激活时,他们执行其中包括的方法和过程。
【主权项】
1.一种用于转发包的计算机实现的方法,所述方法包括:由中间节点从与第一兴趣消息对应的前辈节点接收包,其中,所述第一兴趣消息指示 内容对象的名称和与所述第一兴趣消息关联的生存期,识别未决兴趣表中与所述第一兴趣消息对应的表项;以及 响应于确定所述表项还未到期:响应于确定已经从所述前辈节点接收指示与所述第一兴趣消息相同的内容对象名称 的第二兴趣消息,转发所述第一兴趣消息;响应于确定还未从所述前辈节点接收指示与所述第一兴趣消息相同的内容对象名称 的第二兴趣消息,将与所述前辈节点关联的信息增加到所述表项;确定与所述表项关联的前辈生存期;以及 确定与所述表项关联的最大生存期。2.根据权利要求1所述的方法,其中,与所述第一兴趣消息关联的生存期基于以下的一 个或多个:往返时间;以及 订阅时间。3.根据权利要求1所述的方法,其中,所述未决兴趣表中的表项指示以下的一个或多 个:名称;最大生存期;以及一个或多个前辈节点的前辈信息,其中,所述前辈信息包括前辈标识符和前辈生存期。4.根据权利要求1所述的方法,还包括:接收与对应于所述未决兴趣表中的匹配表项的内容对象对应的包;基于所述匹配表项确定有效前辈节点;基于所述前辈信息将所述内容对象转发到所述有效前辈节点;从所述匹配表项去掉所述前辈信息;以及响应于确定所述匹配表项不保留任何前辈信息,从所述未决兴趣表去掉所述匹配表项。5.—种存储指令的非暂态计算机可读存储介质,所述指令在由计算机执行时引起所述 计算机执行一种方法,所述方法包括:由中间节点从与第一兴趣消息对应的前辈节点接收包,其中,所述第一兴趣消息指示 内容对象的名称和与所述第一兴趣消息关联的生存期,识别未决兴趣表中与所述第一兴趣消息对应的表项;以及 响应于确定所述表项还未到期:响应于确定已经从所述前辈节点接收指示与所述第一兴趣消息相同的内容对象名称 的第二兴趣消息,转发所述第一兴趣消息;响应于确定还未从所述前辈节点接收指示与所述第一兴趣消息相同的内容对象名称 的第二兴趣消息,将与所述前辈节点关联的信息增加到所述表项;确定与所述表项关联的前辈生存期;以及 确定与所述表项关联的最大生存期。6.根据权利要求5所述的存储介质,其中,所述未决兴趣表中的表项指示以下的一个或 多个:名称;最大生存期;以及一个或多个前辈节点的前辈信息,其中,所述前辈信息包括前辈标识符和前辈生存期。7.根据权利要求5所述的存储介质,其中,所述方法还包括:接收与对应于所述未决兴趣表中的匹配表项的内容对象对应的包;基于所述匹配表项确定有效前辈节点;基于所述前辈信息将所述内容对象转发到所述有效前辈节点;从所述匹配表项去掉所述前辈信息;以及响应于确定所述匹配表项不保留任何前辈信息,从所述未决兴趣表去掉所述匹配表项。8.—种用于促进转发包的计算机系统,所述系统包括:处理器;以及存储指令的存储装置,所述指令在由所述处理器执行时引起所述处理器执行一种方 法,所述方法包括:由中间节点从与第一兴趣消息对应的前辈节点接收包,其中,所述第一兴趣消息指示 内容对象的名称和与所述第一兴趣消息关联的生存期,识别未决兴趣表中与所述第一兴趣消息对应的表项;以及 响应于确定所述表项还未到期:响应于确定已经从所述前辈节点接收指示与所述第一兴趣消息相同的内容对象名称 的第二兴趣消息,转发所述第一兴趣消息;响应于确定还未从所述前辈节点接收指示与所述第一兴趣消息相同的内容对象名称 的第二兴趣消息,将与所述前辈节点关联的信息增加到所述表项;确定与所述表项关联的前辈生存期;以及 确定与所述表项关联的最大生存期。9.根据权利要求8所述的计算机系统,其中,与所述第一兴趣消息关联的生存期基于以 下的一个或多个:往返时间;以及 订阅时间。10.根据权利要求8所述的计算机系统,其中,所述未决兴趣表中的表项指示以下的一 个或多个:名称;最大生存期;以及一个或多个前辈节点的前辈信息,其中,所述前辈信息包括前辈标识符和前辈生存期。
【文档编号】H04L29/08GK105991763SQ201610116676
【公开日】2016年10月5日
【申请日】2016年3月1日
【发明人】M·E·莫斯科, I·索利斯, J·J·加西亚-鲁娜-阿塞韦斯
【申请人】帕洛阿尔托研究中心公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1