使用等同匹配网络名称的集合同步的制作方法_3

文档序号:9263504阅读:来源:国知局
的根散列值的散列播发。兴趣采用以下形式:“/a/b/adv/〈ix)0thaSh>”。本地节点206接收所播发的兴趣,且执行check_advertised_collect1n程序222以基于相同集合前缀(“/a/b”)确定节点206是否含有与所播发清单指示相同集合的清单。接着,本地节点206确定其本地清单的根散列是否不同于远程清单的根散列。不同散列值指示集合需要与彼此同步。本地节点206接着通过发送对于清单的一组兴趣来执行retrieve_manifest程序224。所述组兴趣基于组块协议划分成信息块。所述兴趣在request_manifest_in_chunks 消息 226 中发送且具有以下形式:“/a/b/data/〈roothash>/C0”、“/a/b/data/<roothash>/Cl”、“/a/b/data/<roothash>/C2” 等,其中“CO” 表不清单的第一信息块,以此类推。在一些实施例中,播发节点可包含需要传送其清单的信息块的编号。在sencLmanifest_in_chunks消息228中,远程节点202响应于所述组兴趣而发回所请求的清单。所请求的内容对象采用以下形式:“/a/b/data/〈roothash>/C0+有效负载”,其中有效负载含有清单的所请求信息块。
[0059]拥有远程清单的本地节点206执行determine_set_difference程序230。在一些实施例中,此程序的结果为通过名称识别的内容对象的列表。在其它实施例中,结果为通过其对应摘要识别的内容对象的列表。本地节点206接着对于确定为不同的每一内容对象发射request_set_difference兴趣234。所述兴趣采用以下形式:“/a/b/data/name130.3”。本地节点206在远程节点202发射send_set_difference内容对象236时接收所请求的内容对象,其中所请求的内容对象采用以下形式:“/a/b/data/name 130.3+有效负载”。因此,本地节点206请求并接收确定为不同的所有内容对象,使得本地清单的内容与远程清单的内容得以同步。在一些实施例中,本地节点206执行下文相对于图4描述的sync_based_on_mod_t ime 程序 240。
[0060]图3呈现根据本发明的实施例的说明用于使与远程清单及本地清单相关联的内容同步的方法的流程图300。在以下描述中,本地节点描绘为图2中的节点106,且远程节点描绘为图2中的节点102。本地节点接收对应于远程节点处的远程清单的播发(操作302)。清单表示节点处的内容对象的集合。本地节点确定远程清单与本地清单指示相同内容对象集合(操作304,对应于图2中的check_advertised_collect1n程序222)。在一些实施例中,本地节点通过比较清单的集合名称或来确定清单是否指示相同集合。本地节点接着确定其本地清单的根散列值是否不同于远程清单的根散列值(操作306)。清单的根散列值为用于所述清单的唯一识别符,且包括所述清单中表示的内容对象的摘要的累加散列值。如果本地清单的根散列值相同(决策308),则程序返回。
[0061]如果本地清单的根散列值与远程清单的根散列值不相同(决策308),则此指示表示相同集合的本地清单与远程清单不同步且需要调和。本地节点通过发送对于远程清单的请求及响应于所述请求接收远程清单(操作310,对应于图2中的retrieve_manifest程序224)来下载或传送远程清单。
[0062]本地节点确定远程清单中识别的哪些内容对象不同于本地清单中识别的内容对象(操作312,对应于图2中的determine_set_difference操作230)。在一些实施例中,本地节点通过比较本地清单中识别的内容对象的摘要与远程清单中识别的相同名称的内容对象的摘要来确定集合差异。本地节点发射对应于所确定的不同内容对象集合的一组兴趣(操作234),且接收返回的所请求内容对象(操作236)。这对应于图2中所示的resolve_set_difference操作232。因此,本地清单的内容与远程清单的内容得以同步。
[0063]如果本地节点已改变,则本地节点播发新根散列值。其可紧接着进行此操作,或基于网络或其它时点考虑调度下一播发。举例来说,本地系统可至少每秒播发其根散列一次,但不大于每秒四次。因此,在调和期间,由于根散列归因于更新而改变,系统可播发每秒至多四个改变。否则,其可以稳定状态每秒播发一次。
[0064]图4呈现根据本发明的实施例的说明用于基于修改时间使与远程清单及本地清单相关联的内容同步的方法的流程图400。注意,内容的同步还可基于与内容对象相关联的序号,其中较大序号指示内容对象的较为新近版本。内容的同步还可基于内容对象的名称的排序,其中隐式排序次序指示内容对象的较为新近版本。流程图400描绘基于内容对象的修改时间的示例性方法,其描绘为图2中的sync_based_on_mod_time操作240。基于先前确定的集合差异,本地节点接收包含修改时间的所请求内容对象集合,所述修改时间指示修改对应内容对象的时间(操作402)。对于每一内容对象,本地节点确定远程清单中的内容对象的修改时间比本地清单中的对应内容对象更为新近还是较不新近(操作404)。如果来自远程清单的内容对象的修改时间更为新近(决策406),则系统用来自远程清单的内容对象的值更新本地清单中的内容对象的值(操作408)。在一些实施例中,本地节点可通过在更新本地清单中的内容对象的值之前将(较不新近)内容对象的对应值及修改时间插入到本地清单中的历史字段中来确定是否保持本地清单中的其(较不新近)内容对象的值。如果在集合中还存在需要检索的内容对象(决策410),则系统返回到操作404。如果不存在,则系统已完成检索必要的内容对象。
[0065]如果来自远程清单的内容对象的修改时间不如本地清单中的对应内容对象新近(操作406),则系统通过将(较不新近)内容对象的对应值及修改时间插入到本地清单中的历史字段中(操作414)来确定是否保存来自远程清单的(较不新近)内容对象的值(决策412)。如果在需要检索的集合中还存在内容对象(决策410),则系统返回到操作404。如果没有,则系统已完成检索必要内容对象。因此,确定为不同的所有内容对象已经更新,且可能保留或保存在本地清单的历史字段中,使得本地清单的内容与远程清单的内容同步。
[0066]图5呈现根据本发明的实施例的说明用于发射对应于清单的播发的方法的流程图500。图5中的节点描述为本地节点,因为其将数据包发射到远程节点。注意,图5中的本地节点对应于图2中的节点202,其在先前已称为远程节点202。须强调,例如内容中心网络(CCN)等网络中的任何节点可称为远程节点或本地节点。
[0067]本地节点发射对应于清单的播发,其中清单表示节点处的内容对象的集合(操作502,对应于图2中的send_advertisement消息220)。此播发为类似于信标的兴趣,且基于所使用的“/adv”名称空间,不请求返回任何内容。在从远程节点接收到对于清单的请求之后,本地节点即刻将所述清单发射到远程节点(操作504,对应于接收图2中的reqUest_manifest_in_chunks 兴趣 226 及 send_manifest_in_chunks 消息 228)。在从远程节点接收到对于本地清单中识别的内容对象的请求之后,本地节点即刻将所请求的内容对象发射到请求远程节点(操作506,对应于接收图2中的兴趣234及send_set_different消息236)。
[0068]图6A呈现根据本发明的实施例的描绘集合中所表示的清单120及内容对象的格式的表。清单120包括通过集合名称124及以下各者中的一或多者识别的内容对象的有序列表:内容对象名称130.1到130.η ;摘要132.1到132.η ;以及一修改时间134.1到134.no摘要132.1到132.η包括分别由名称130.1到130.η识别的内容对象的散列值。清单120还包含根散列122,其为基于集合的个别内容对象的散列值132.1到132.η的累加散列值。清单120的根散列122为用于清单120的唯一识别符。
[0069]如关于图1所描述,清单120可指示用于集合中表示的每一内容对象的名称及对应摘要。在一些实施例中,清单120还可包含用于集合中表示的每一内容对象的修改时间。修改时间字段的使用取决于基础应用程序或所执行的服务。注意,清单120指示集合名称124。图6Β到6Ε中所描绘的清单还包含集合名称,但因为示范性清单包括相同数据集合,因此集合名称未包含在图6Β到6Ε中。
[0070]图6Β到6Ε描绘两个节点,节点102及节点106,其各自含有清单。在此实例中,节点102为远程节点,且节点106为本地节点。本地节点106含有清单160,且远程节点102含有清单140。清单140与160含有相同名称集合或路由前缀,且因此表示相同内容对象或数据的集合。时间由标记Tl、Τ2等指示,且相对于这些时间标记描绘清单140及160的内容。
[0071]须强调,清单由在图6Α中说明为根散列122的
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1