NDN映射表更新方法和装置、NDN兴趣包转发方法和装置及NDN与流程

文档序号:12865912阅读:709来源:国知局
本发明涉及通信
技术领域
:,特别涉及一种命名数据网络(named-datanetworking,ndn)映射表更新方法和装置、ndn兴趣包转发方法和装置及ndn。
背景技术
::ndn是一种典型的内容中心网络,由消费者驱动。具体地,消费者发出的兴趣(interest)包经过某个路由节点时,该路由节点在内容存储库(contentstore,cs)中查找该兴趣包请求的数据(data)包,如果cs中存在该兴趣包请求的数据包,则向消费者返回该数据包;如果cs中不存在该数据包,则在待定兴趣表(pendinginteresttable,pit)中记录接收该兴趣包的接口;另外,路由节点还根据转发信息表(forwardinginformationbase,fib)选择接口将兴趣包转发出去。兴趣包在ndn中被不断转发,直到该兴趣包被转发到cs中存在该兴趣包对应的数据包的路由节点,由该路由节点向消费者返回数据包;或者直到该兴趣包被转发到能够提供该兴趣包对应的数据包的生产者,由生产者向消费者返回数据包。路由节点按照pit中记录的接收兴趣包的接口,返回兴趣包所请求的数据包。由于ndn消费者驱动的通信机制,消费者只需要发出兴趣包而不用维持与生产者的任何连接信息,数据包沿着兴趣包的转发路径沿原路返回并缓存在它经过的每一个路由节点上。当消费者移动并接入了新的基站后,消费者只需要重新发送之前已经发送过但未能获取到所请求的数据包的兴趣包,就可以接收到所请求的数据包。这是因为之前一次发送兴趣包时,返回的数据包已经缓存在经过的路由节点上,所以重新发送兴趣包时,通常可以从附近路由节点的cs中获得该数据包。因此,ndn对消费者移动具有天然的支持,然而在生产者移动的问题上没有给出很好的解决方案。生产者移动问题简言之就是由于生产者移动后兴趣包不能被正确转发,造成兴趣包无法到达生产者处,进而导致数据包传输失败。现有ndn生产者移动性解决方案主要分为两大类:基于路由(routing)更新方式与基于标识-位置分离(identity-locationsplit)方式。基于标识-位置分离方式包括多种实现方式,例如,hermans和jiang等不同的学者都从移动ip(mobileip)技术中获得启发,采用一个家乡存储库(homerepository,hr)的移动代理来记录生产者的当前位置,每次生产者接入新的基站后,都需要到hr处更新自己的当前位置。而消费者发出的兴趣包都要先到达hr,然后由hr转交给生产者,这种方案不可避免的造成了三角路由的问题,增加了无谓的网络流量且增大了数据包的传输时延。为了解决hr带来的三角路由的问题,zhang等人在移动代理的基础上结合了ndn的特性,提出了一种新的基于标识-位置分离方式的移动性解决方案,具体地,生产者在接入新的基站后,向hr发送一个兴趣包,该兴趣包经过的路径上的各个路由节点在pit中记录接收该兴趣包的接口,在后续转发过程中,路由节点中可以采用该pit作为向生产者转发兴趣包的依据,该方案虽然在一定程度上避免了三角路由的问题,但是生产者在接入新的基站至向hr发送兴趣包之间的时间内,路由节点无法正常向该生产者转发兴趣包,造成兴趣包可能丢失,导致兴趣包响应率低,同时造成数据包传输时延较大。技术实现要素:为了解决现有技术中生产者在接入新的基站至向hr发送兴趣包之间的时间内,路由节点无法正常向该生产者转发兴趣包的问题,本发明实施例提供了一种ndn映射表更新方法和装置、ndn兴趣包转发方法和装置及ndn。第一方面,本发明实施例提供了一种命名数据网络映射表更新方法,所述方法包括:当第一基站的信号强度小于第二基站的信号强度时,生产者获取所述第二基站的标识,所述第一基站为所述生产者当前接入的基站,所述第二基站为所述生产者所在命名数据网络中所述第一基站之外的基站;根据所述第二基站的标识生成控制包,所述控制包的名字包括所述生产者的名字前缀以及所述第二基站的标识;将所述控制包发送至所述第一基站,所述控制包用于指示所述第一基站向交汇锚点发送另一控制包,所述另一控制包用于指示所述交汇锚点更新映射表,更新后的所述交汇锚点的映射表包括所述生产者的名字前缀、以及与所述生产者对应的第一位置信息和第二位置信息;其中,所述交汇锚点为第一转发路径与第二转发路径交汇的锚点,所述第一转发路径为所述生产者接入所述第一基站时顶级锚点发送至所述生产者的兴趣包的转发路径,所述第二转发路径为所述生产者接入所述第二基站时所述顶级锚点发送至所述生产者的兴趣包的转发路径,所述另一控制包的名字包括所述生产者的名字前缀和所述第二基站的名字前缀,所述第一位置信息为所述交汇锚点在所述第一转发路径上的下一级节点的名字前缀,所述第二位置信息为所述交汇锚点在所述第二转发路径上的下一级节点的名字前缀,所述顶级锚点为用于获取并转发请求所述生产者提供的数据包的兴趣包的节点。本发明实施例通过生产者在可能进行移动时,向第一基站发送可能移动后接入的第二基站的标识,第一基站将生产者的名字前缀和第二基站的名字前缀形成控制包发送给交汇锚点,使得交汇锚点可以根据该控制包更新映射表,在交汇锚点的映射表更新后,在交汇锚点映射表更新后,消费者发送的兴趣包在经过交汇锚点时,交汇锚点可以同时将该兴趣包转发到第一基站和第二基站,从而成功将兴趣包发送给生产者,这种处理方案使得生产者即使从第一基站移动到第二基站,也会不造成兴趣包丢失,从而提高了兴趣包响应率高,提高网络通信质量。另外,这种处理方案不会造成较大的数据包传输时延。在本发明实施例的一种实现方式中,所述方法还包括:在所述生产者接入基站时,所述生产者向所述基站发送所述生产者的名字前缀,以使所述基站向所述第一转发路径或所述第二转发路径上的上一级锚点发送用于生成映射表条目的控制包,所述用于生成映射表条目的控制包的名字包括所述生产者的名字前缀和所述基站的名字前缀,所述基站为所述第一基站或所述第二基站。在该实现方式中,生产者接入新的基站时,主动上报名字前缀,完成锚点的映射表中关于该生产者的条目的生成,从而便于后续兴趣包的转发。第二方面,本发明实施例还提供了一种命名数据网络映射表更新方法,所述方法包括:第一基站接收生产者发送的控制包,所述控制包的名字包括所述生产者的名字前缀以及第二基站的标识,所述第一基站为所述生产者当前接入的基站,所述第二基站为所述生产者探测到的信号强度大于所述第一基站的基站,所述第二基站为所述生产者所在命名数据网络中所述第一基站之外的基站;根据所述控制包中第二基站的标识确定所述第二基站的名字前缀;根据所述第二基站的名字前缀生成另一控制包,所述另一控制包的名字包括所述生产者的名字前缀和所述第二基站的名字前缀;向交汇锚点发送所述另一控制包,所述另一控制包用于指示所述交汇锚点更新映射表,更新后的所述交汇锚点的映射表包括所述生产者的名字前缀、以及与所述生产者对应的第一位置信息和第二位置信息;其中,所述交汇锚点为第一转发路径与第二转发路径交汇的锚点,所述第一转发路径为所述生产者接入所述第一基站时顶级锚点发送至所述生产者的兴趣包的转发路径,所述第二转发路径为所述生产者接入所述第二基站时所述顶级锚点发送至所述生产者的兴趣包的转发路径,所述第一位置信息为所述交汇锚点在所述第一转发路径上的下一级节点的名字前缀,所述第二位置信息为所述交汇锚点在所述第二转发路径上的下一级节点的名字前缀,所述顶级锚点为用于获取并转发请求所述生产者提供的数据包的兴趣包的节点。本发明实施例通过生产者在可能进行移动时,第一基站接收生产者发送的生产者可能移动后接入的第二基站的标识,第一基站将生产者的名字前缀和第二基站的名字前缀形成控制包发送给交汇锚点,使得交汇锚点可以根据该控制包更新映射表,在交汇锚点的映射表更新后,消费者发送的兴趣包在经过交汇锚点时,交汇锚点可以同时将该兴趣包转发到第一基站和第二基站,从而成功将兴趣包发送给生产者,这种处理方案使得生产者即使从第一基站移动到第二基站,也会不造成兴趣包丢失,从而提高了兴趣包响应率高,提高网络通信质量。另外,这种处理方案不会造成较大的数据包传输时延。在本发明实施例的一种实现方式中,所述方法还包括:在所述生产者接入所述第一基站时,接收所述生产者发送的所述生产者的名字前缀;根据所述生产者的名字前缀生成用于生成映射表条目的控制包,所述用于生成映射表条目的控制包的名字包括所述生产者的名字前缀和第一基站的名字前缀;向所述第一基站在第一转发路径上的上一级锚点发送所述用于生成映射表条目的控制包,以使所述第一基站在第一转发路径上的上一级锚点在映射表中添加所述生产者的名字前缀以及所述生产者对应的位置信息,所述生产者对应的位置信息为所述第一基站的名字前缀。在该实现方式中,生产者接入第一基站时,主动上报名字前缀,完成锚点的映射表中关于该生产者的条目的生成,从而便于后续兴趣包转发。第三方面,本发明实施例还提供了一种命名数据网络映射表更新方法,所述方法包括:锚点接收控制包,所述控制包的名字包括生产者的名字前缀和第二基站的名字前缀,所述第二基站为所述生产者探测到的信号强度大于第一基站的基站,所述第一基站为所述生产者当前接入的基站,所述第二基站为所述生产者所在命名数据网络中所述第一基站之外的基站;当所述控制包是发送给所述锚点的控制包时,根据所述控制包更新映射表,更新后的所述锚点的映射表包括所述生产者的名字前缀、以及与所述生产者对应的第一位置信息和第二位置信息;其中,所述第一位置信息为所述锚点在第一转发路径上的下一级节点的名字前缀,所述第二位置信息为所述锚点在第二转发路径上的下一级节点的名字前缀,所述第一转发路径为所述生产者接入所述第一基站时顶级锚点发送至所述生产者的兴趣包的转发路径,所述第二转发路径为所述生产者接入所述第二基站时所述顶级锚点发送至所述生产者的兴趣包的转发路径,所述顶级锚点为用于获取并转发请求所述生产者提供的数据包的兴趣包的节点。本发明实施例通过生产者在可能进行移动时,交汇锚点接收第一基站发送的控制包,交汇锚点根据该控制包内的生产者的名字前缀和第二基站的名字前缀更新映射表,在交汇锚点映射表更新后,消费者发送的兴趣包在经过交汇锚点时,交汇锚点可以同时将该兴趣包转发到第一基站和第二基站,从而成功将兴趣包发送给生产者,这种处理方案使得生产者即使从第一基站移动到第二基站,也会不造成兴趣包丢失,从而提高了兴趣包响应率高,提高网络通信质量。另外,这种处理方案不会造成较大的数据包传输时延。在本发明实施例的一种实现方式中,当所述控制包不是发送给所述锚点的控制包时,将所述控制包发送至所述锚点在第一转发路径上的上一级锚点。在该实现方式中,对于非交汇锚点而言,在接收到所述控制包时,执行转发动作,以使该控制包能够转发到交汇锚点。在本发明实施例的另一种实现方式中,当所述控制包是发送给所述锚点的控制包时,所述方法还包括:当所述生产者接入所述第二基站后,接收所述锚点在第二路径上的下一级锚点发送的用于更新映射表条目的控制包,所述用于更新映射表条目的控制包的名字包括所述生产者的名字前缀和所述锚点在第二转发路径上的下一级锚点的名字前缀;删除所述锚点的映射表中与所述生产者对应的第一位置信息。在该实现方式中,生产者发生移动,接入第二基站时,第一转发路径不再有效,因此交汇锚点删除映射表中关于该生产者对应的第一位置的名字前缀,避免后续再向第一转发路径转发兴趣包,造成不必要的资源消耗。在本发明实施例的另一种实现方式中,所述方法还包括:向所述锚点在第一转发路径中下一级锚点发送删除转发信息控制包,所述删除转发信息控制包用于删除所述第一转发路径中下一级锚点的映射表中所述生产者的名字前缀以及与所述生产者对应的位置信息。在该实现方式中,当交汇锚点删除了第一转发路径转发兴趣包时,第一转发路径上处于交汇锚点之后的锚点不再需要转发该生产者的兴趣包,因而可以将映射表中关于该生产者的条目删除,从而释放映射表的空间。在本发明实施例的另一种实现方式中,所述方法还包括:在所述生产者接入所述第一基站时,接收所述锚点在第一路径上的下一级节点发送的用于生成映射表条目的控制包,所述第一路径上的下一级节点发送的用于生成映射表条目的控制包的名字包括所述生产者的名字前缀和所述锚点在第一转发路径上的下一级节点的名字前缀;根据所述用于生成映射表条目的控制包更新映射表,更新后的所述锚点的映射表包括所述生产者的名字前缀以及与所述生产者对应的位置信息。在该实现方式中,生产者接入第一基站时,主动上报名字前缀,完成锚点的映射表中关于该生产者的条目的生成,从而便于后续兴趣包转发。在本发明实施例的另一种实现方式中,所述方法还包括:向所述锚点在第一路径上的上一级锚点发送用于生成映射表条目的控制包,所述锚点发送的用于生成映射表条目的控制包的名字包括所述生产者的名字前缀和所述锚点的名字前缀。在该实现方式中,生产者接入第一基站时,各个锚点依次执行映射表的条目添加以及向上一级锚点发送控制包的动作,从而便于后续兴趣包转发。第四方面,本发明实施例还提供了一种命名数据网络兴趣包转发方法,所述方法包括:锚点接收兴趣包;当在所述锚点的内容存储库中未找到所述兴趣包对应的数据,且在所述锚点的待定兴趣表中未查找到所述兴趣包对应的条目时,在映射表中查询与所述兴趣包对应的生产者对应的位置信息,所述映射表包括生产者的名字前缀以及与所述生产者对应的位置信息;根据所述生产者对应的位置信息在转发信息表中确定对应的接口;通过确定出的所述接口转发所述兴趣包。本发明实施例通过在接收到兴趣包时,先查找内容存储库,如果内容存储库中不存在该兴趣包对应的数据,则通过映射表进行转发,由于该映射表可能存在生产者接入不同基站时的对应的位置的名字前缀,因此通过映射表进行兴趣包转发,不但可以在生产者移动过程中能够准确的将兴趣包发送给生产者,且时延低,兴趣包响应率高,提高网络通信质量。另外,当生产者移动频繁时,该方案也不会造成转发路径较差,进而带来往返时延较大的问题。第五方面,本发明实施例提供了一种命名数据网络映射表更新装置,所述装置包括用于实现第一方面所述的方法的单元,例如获取单元、生成单元和发送单元。第六方面,本发明实施例提供了一种命名数据网络映射表更新装置,所述装置包括用于实现第二方面所述的方法的单元,例如接收单元、确定单元、生成单元和发送单元。第七方面,本发明实施例提供了一种命名数据网络映射表更新装置,所述装置包括用于实现第三方面所述的方法的单元,例如接收单元、更新单元和发送单元。第八方面,本发明实施例提供了一种命名数据网络兴趣包转发装置,所述装置包括用于实现第四方面所述的方法的单元,例如接收单元、查询单元、确定单元和发送单元。第九方面,本发明实施例还提供了一种命名数据网络映射表更新装置,所述装置包括:存储器、与存储器连接的处理器、收发器,所述存储器用于存储软件程序以及模块,当所述处理器用于运行或执行存储在所述存储器内的软件程序以及模块时,可以执行第一方面或第二方面或第三方面所述的方法。第十方面,本发明实施例还提供了一种命名数据网络兴趣包转发装置,所述装置包括:存储器、与存储器连接的处理器、收发器,所述存储器用于存储软件程序以及模块,当所述处理器用于运行或执行存储在所述存储器内的软件程序以及模块时,可以执行第四方面所述的方法。第十一方面,本发明实施例还提供了一种命名数据网络,所述命名数据网络包括多个路由节点、至少两个基站和接入所述基站上的生产者,所述多个路由节点沿着入口路由节点到所述基站接入路由节点之间设置有多个锚点,所述生产者用于执行如第一方面任一项所述的命名数据网络映射表更新方法,所述基站用于执行如第二方面任一项所述的命名数据网络映射表更新方法,所述锚点用于执行如第三方面任一项所述的命名数据网络映射表更新方法以及用于执行如第四方面所述的命名数据网络兴趣包转发方法。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种命名数据网络的网络架构示意图;图2a是本发明实施例提供的一种ndn映射表更新装置的硬件结构图;图2b是本发明实施例提供的一种ndn映射表更新装置的硬件结构图;图2c是本发明实施例提供的一种ndn映射表更新装置的硬件结构图;图2d是本发明实施例提供的一种ndn兴趣包转发装置的硬件结构图;图3为本发明实施例提供的一种ndn映射表更新方法的流程图;图4为本发明实施例提供的一种ndn兴趣包转发方法的流程图;图5为本发明实施例提供的一种ndn映射表更新装置的结构示意图;图6为本发明实施例提供的另一种ndn映射表更新装置的结构示意图;图7为本发明实施例提供的另一种ndn映射表更新装置的结构示意图;图8为本发明实施例提供的一种ndn兴趣包转发装置的结构示意图。具体实施方式在本文提及的“模块”是指存储在存储器中的能够实现某些功能的程序或指令;在本文中提及的“单元”是指按照逻辑划分的功能性结构,该“单元”可以由纯硬件实现,或者,软硬件的结合实现。图1示出了本发明实施例提供的一种命名数据网络的网络架构。如图1所示,该命名数据网络100包括多个路由节点101(包括路由节点a-e)和至少两个基站102(包括基站ar1-ar3),消费者104通过发送兴趣包请求相应地数据包,生产者103通过接入基站102,从而能够将数据包提供给消费者104。ndn中的用户角色可以包括前述生产者103和消费者104,消费者104是发送兴趣包的数据请求方,生产者103是具有数据包的数据提供方。消费者104和生产者103均为终端设备,其中,消费者和生产者均可以是计算机、服务器、移动终端等。本发明实施例主要针对生产者为移动终端的场景,该移动终端具体可以是手机、笔记本电脑、平板电脑、车载终端、可穿戴设备、具有无线通信功能的其他设备或连接到无线调制解调器的其它设备。在该命名数据网络中,兴趣包的作用是用来请求与之对应的数据包,兴趣包和对应的数据包通常拥有相同的名字,兴趣包和数据包的名字是其唯一标识。ndn中的路由节点101保存有三个数据结构:fib、pit以及cs。具体地,cs用于存储经过该路由节点的数据包,其存储模式是数据包的名字+数据,如下表所示:名字数据/pku/sece/netlab/1/1.mpg……cmcc/a.mpg……pit主要用于存储接收到的兴趣包的名字以及接收该兴趣包的接口,其存储模式是兴趣包的名字+接口列表,如下表所示:名字接口列表/cmcc/a.mpg0,1/pku/sece/netlab/1/1.mpg2fib主要用于路由转发,用于存储不同名字前缀对应的转发接口,其存储模式为名字前缀+接口列表,如下表所示:名字前缀接口列表/pku/sece/netlab/11,2其中,名字前缀是指兴趣包或者数据包名字的前缀。消费者104发出的兴趣包经过某个路由节点101时,该路由节点101在cs中查找该兴趣包请求的数据包,如果cs中存在该兴趣包请求的数据包,则向消费者104返回该数据包;如果cs中不存在该数据包,则在pit中查询是否存在该兴趣包对应的条目。如果pit中存在该兴趣包对应的条目,则将接收该兴趣包的接口添加到该条目中;如果pit中不存在该兴趣包对应的条目,则在pit中新增该兴趣包对应的条目,该条目包括接收该兴趣包的接口,路由节点101将兴趣包的名字在fib中进行匹配,选择接口将兴趣包转发出去。如果转发过程中,另一路由节点101的cs中存在该兴趣包请求的数据包时,则该另一路由节点101按照兴趣包转发路径返回数据包。如果转发过程中,各个路由节点101的cs中均不存在该兴趣包请求的数据包,则该兴趣包将被发往数据包的生产者103,由生产者103向消费者返回数据包。在数据包返回的过程中,如果路由节点101接收到该兴趣包请求的数据包时,路由节点101根据pit中该兴趣包对应的条目选择接口发送该数据包,从而实现将数据包发送至请求该数据包的消费者。其中,路由节点101在进行兴趣包转发时,采用最长前缀匹配机制,确定转发接口。例如,对于名字为/pku/sece/netlab/1/1.mpg的兴趣包,在进行转发时,如果fib中名字前缀包括/pku/sece/netlab和/pku/sece/netlab/1,则确定名字前缀/pku/sece/netlab/1对应的接口为转发接口。由于ndn消费者驱动的通信机制,ndn对消费者移动具有天然的支持,然而在生产者移动(例如图1所示,生产者103从一个基站102移动到另一个基站102)的问题上没有给出很好的解决方案。现有ndn生产者移动性方案主要分为两大类:基于路由更新方式与基于标识-位置分离方式。在基于路由更新方式中,生产者在移动后会重新向网络广播其内容名字前缀,路由节点根据基于名字的路由协议更新其fib表的信息,其后兴趣包可根据更新的fib表转发至生产者处。整个过程需要等待一个同步周期,具有较大的时延,而且fib表的更新带来了较大的开销,因而不适合解决生产者移动问题,尤其是在移动直播这种对延时非常敏感的场景。当网络存在大量不同名字前缀的生产者频繁移动时,问题会变得非常严重。基于标识-位置分离方式包括多种实现方式,例如,hermans和jiang等不同的学者都从移动ip技术中获得启发,采用一个hr的移动代理来记录生产者的当前位置,每次生产者接入新的基站后,都需要到hr处更新自己的当前位置。而消费者发出的兴趣包都要先到达hr,然后由hr转交给生产者,这种方案不可避免的造成了三角路由的问题,增加了无谓的网络流量且增大了数据包的传输时延。为了解决hr带来的三角路由的问题,zhang等人在移动代理的基础上结合了ndn的特性,提出了一种新的基于标识-位置分离方式的移动性解决方案,具体地,生产者在接入新的基站后,向hr发送一个兴趣包,该兴趣包经过的路径上的各个路由节点在pit中记录接收该兴趣包的接口,在后续转发过程中,路由节点中可以采用该pit作为向生产者转发兴趣包的依据,该方案虽然在一定程度上避免了三角路由的问题,但是生产者在接入新的基站至向hr发送兴趣包之间的时间内,路由节点无法正常向该生产者转发兴趣包,造成兴趣包可能丢失,导致兴趣包响应率低,同时造成数据包传输时延较大。可见,目前在对生产者移动的问题上现有技术还没有给出很好的解决方案,为此,本发明实施例提出了一种在ndn设置多级锚点,并在锚点内设置映射表的方案。具体地,该映射表用于存储生产者的名字前缀及其对应的位置信息,该位置信息用于指示发往该生产者的兴趣包的转发路径。具体锚点选择方式如下,选择ndn网络中兴趣包转发量较大的路由节点作为顶级锚点,顶级锚点用于获取请求所述生产者提供的数据包的兴趣包,并向生产者转发该兴趣包。然后在顶级锚点和基站之间选择若干连续的锚点,形成转发路径,顶级锚点和每个基站之间均能够形成一条转发路径。顶级锚点和这若干个连续的锚点之间具有一定的层级关系,在一条转发路径上越靠近基站的锚点的层级越低,该顶级锚点和这若干个连续的锚点设置有层级关联的内容名字前缀,后文简称名字前缀。顶级锚点的名字前缀最短,其他锚点的名字前缀是在其上一级锚点的名字前缀的基础上增加一层得到的。如图1所示,路由节点a-e均可以设定为锚点,其中a为顶级锚点,d、e为最下级锚点。这些锚点以及基站的名字前缀可以如下所述:a:/pku;b:/pku/sece;c:/pku/phbs;d:/pku/sece/netlab;e:/pku/sece/arclab;ar1:/pku/sece/netlab/1;ar2:/pku/sece/arclab/2;ar3:/pku/phbs/3。其中,名字前缀中的“/”用于分割名字前缀的各层。而映射表也正是根据这些锚点的名字前缀生成的。映射表包括生产者名字前缀以及对应的位置信息。例如,锚点a的映射表包括生产者的名字前缀以及对应的路由节点b的名字前缀。本发明实施例提供的锚点之间具有层级关系,这多层锚点所存储的映射表之间也具有层级关系,具体参见后文描述。锚点在接收到兴趣包时,可以利用映射表执行转发动作,具体过程如下:当锚点在接收到消费者发送的兴趣包时,先查找cs,确定cs中是否存在该兴趣包请求的数据包;如果cs中存在该兴趣包请求的数据包,则将查找的数据包返回给消费者;如果cs中不存在该兴趣包请求的数据包,则在pit查询是否存在该兴趣包对应的条目。如果pit中存在该兴趣包对应的条目,则将接收该兴趣包的接口添加到该条目中;如果pit中不存在该兴趣包对应的条目,则在pit中新增该兴趣包对应的条目,该条目包括接收该兴趣包的接口,同时锚点在映射表中查找与该兴趣包的名称匹配的位置信息,如果查找到匹配的位置信息,则采用该位置信息去fib中匹配对应的接口,实现兴趣包的转发。为了保证生产者移动时,锚点能够将兴趣包转发给生产者,需要配合本发明实施例提出的ndn映射表更新方法。具体地,ndn映射表更新方法具体参照图3对应的实施例部分的详细描述,ndn兴趣包转发方法具体参照图4对应的实施例部分的详细描述。下面先结合具体的硬件结构对实现本发明实施例提供的ndn映射表更新装置以及ndn兴趣包转发装置进行说明。图2a示出了实现本发明实施例提供的一种ndn映射表更新装置的硬件结构,该ndn映射表更新装置可以为前述ndn中的生产者,具体可以为移动终端,例如智能手机等。如图2a所示,该ndn映射表更新装置120包括:处理器11、收发器12、存储器13。处理器11包括一个或者一个以上处理核心,处理器11通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。收发器12、存储器13以及处理器11通过总线耦合。存储器13可用于存储软件程序以及模块。存储器可存储操作系统14、至少一个功能的应用程序模块15。应用程序模块15至少包括:获取模块151、生成模块152和发送模块153。可选地,处理器11用于执行应用程序模块15中的各个模块,实现如图3中由生产者所需要执行的步骤。此外,存储器13是一种计算机可读存储介质,可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随时存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。本领域技术人员可以理解,图2a中所示出的ndn映射表更新装置120的结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件或组合某些部件,或者不同的部件布置。图2b示出了实现本发明实施例提供的一种ndn映射表更新装置的硬件结构,该ndn映射表更新装置可以为前述ndn中的基站。如图2b所示,该ndn映射表更新装置220包括:处理器21、收发器22、存储器23。处理器21包括一个或者一个以上处理核心,处理器21通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。收发器22、存储器23以及处理器21通过总线耦合。存储器23可用于存储软件程序以及模块。存储器可存储操作系统24、至少一个功能的应用程序模块25。应用程序模块25至少包括:接收模块251、确定模块252、生成模块253和发送模块254。可选地,处理器21用于执行应用程序模块25中的各个模块,实现如图3中由基站所需要执行的步骤。此外,存储器23是一种计算机可读存储介质,可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随时存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。本领域技术人员可以理解,图2b中所示出的ndn映射表更新装置220的结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件或组合某些部件,或者不同的部件布置。图2c示出了实现本发明实施例提供的一种ndn映射表更新装置的硬件结构,该ndn映射表更新装置可以为前述ndn中的路由节点。如图2c所示,该ndn映射表更新装置320包括:处理器31、通信接口32、存储器33。处理器31包括一个或者一个以上处理核心,处理器31通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。通信接口32、存储器33以及处理器31通过总线耦合。存储器33可用于存储软件程序以及模块。存储器可存储操作系统34、至少一个功能的应用程序模块35。应用程序模块35至少包括:接收模块351、更新模块352和发送模块353。可选地,处理器31用于执行应用程序模块35中的各个模块,实现如图3中由锚点所需要执行的步骤。此外,存储器33是一种计算机可读存储介质,可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随时存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。本领域技术人员可以理解,图2c中所示出的ndn映射表更新装置320的结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件或组合某些部件,或者不同的部件布置。图2d示出了实现本发明实施例提供的一种ndn兴趣包转发装置的硬件结构,该ndn兴趣包转发装置可以为前述ndn中的路由节点。如图2d所示,该ndn兴趣包转发装置420包括:处理器41、通信接口42、存储器43。处理器41包括一个或者一个以上处理核心,处理器41通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。通信接口42、存储器43以及处理器41通过总线耦合。存储器43可用于存储软件程序以及模块。存储器可存储操作系统44、至少一个功能的应用程序模块45。应用程序模块45至少包括:接收模块451、查询模块452、确定模块453和发送模块454。可选地,处理器41用于执行应用程序模块45中的各个模块,实现如图4中由锚点所需要执行的步骤。此外,存储器43是一种计算机可读存储介质,可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随时存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。本领域技术人员可以理解,图2d中所示出的ndn兴趣包转发装置420的结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件或组合某些部件,或者不同的部件布置。图3为本发明实施例提供的一种ndn映射表更新方法的交互图,如图3所示,该方法包括:s501:生产者接入第一基站时,向第一基站发送该生产者的名字前缀。相应地,第一基站接收该生产者发送的该生产者的名字前缀。其中,第一基站为生产者第一次接入该ndn时所接入的基站。生产者的名字前缀与ndn网络中锚点的名字前缀无关,例如生产者的名字前缀可以是/cmcc,锚点的名字前缀可以是/pku/sece/netlab,消费者发送的兴趣包的名字与该生产者的名字前缀相关,例如/cmcc/a.mpg。s502:第一基站根据接收到的生产者的名字前缀生成第一控制包,并向第一转发路径上的上一级锚点发送第一控制包,第一控制包的名字包括所述生产者的名字前缀和第一基站的名字前缀,所述第一转发路径为所述生产者接入第一基站时发送至所述生产者的兴趣包的转发路径。进一步地,第一控制包的名字还包括第一基站在第一转发路径上的上一级锚点的名字前缀以及控制信息。在本发明实施例中,控制包采用兴趣包的方式实现,由于兴趣包较小,使得该方法产生的流量开销小。采用兴趣包的格式形成控制包,只需将信息携带在兴趣包的名字里即可。例如,第一控制包格式可以为:/<d>/<control_info>/cmcc/<seperator>/<ar1>,其中<d>为上一级锚点的名字前缀,<control_info>为控制信息,/cmcc为生产者的名字前缀,<ar1>为第一基站的名字前缀。该控制信息用于表示控制包的作用,例如生成映射表条目、更新映射表条目、删除映射表条目、传递标识等。这里,第一控制包中的控制信息用于表示第一控制包的作用是生成映射表条目。其中,<seperator>用于分割前后两个字段,例如,此处的<seperator>用于分割/cmcc和<ar1>,由于/cmcc和<ar1>均为名字前缀,如果不设置<seperator>,可能会导致这两个字段无法正确识别。具体地,在步骤s502中,第一基站生成第一控制包的过程如下:第一基站确定第一基站在第一转发路径上的上一级锚点的名字前缀;然后根据确定出的上一级锚点的名字前缀、生产者的名字前缀和第一基站的名字前缀生成第一控制包。其中,第一基站在第一转发路径上的上一级锚点的名字前缀,可以根据第一基站的名字前缀得到,例如第一基站的名字前缀为/pku/sece/netlab/1,则根据ndn中锚点的名字前缀划分规则,可以确定第一基站在第一转发路径上的上一级锚点的名字前缀为/pku/sece/netlab。s503:第一基站在第一转发路径上的上一级锚点根据接收到的第一控制包,在映射表中添加生产者的名字前缀以及该生产者对应的位置信息,同时第一基站在第一转发路径上的上一级锚点向更上一级锚点发送第二控制包,第二控制包的名字包括生产者的名字前缀和发送该第二控制包的锚点的名字前缀。第一转发路径上的各个锚点按照从下级向上级的顺序,依次执行步骤503,直到第一转发路径上的顶级锚点在其映射表中添加生产者的名字前缀以及该生产者对应的位置信息。其中,生产者对应的位置信息为第一基站的名字前缀,或者发送第二控制包的锚点的名字前缀。进一步地,当顶级锚点在其映射表中添加生产者的名字前缀以及该生产者对应的位置信息后,还可以通过广播的形式向其他路由节点发送生产者的名字前缀,以使其他路由节点能够将用于请求该生产者提供的数据包的兴趣包发送到该顶级锚点。进一步地,第二控制包的名字还包括更上一级锚点的名字前缀以及控制信息。例如,第二控制包的名字的格式可以为:/<b>/<control_info>/cmcc/<seperator>/<d>,其中<b>为更上一级锚点的名字前缀,<control_info>为控制信息,/cmcc为生产者的名字前缀,<d>为第一基站在第一转发路径上的上一级锚点的名字前缀。该控制信息用于标识第二控制包的作用是生成映射表条目。具体地,第一转发路径上的各个锚点在收到第一控制包后,根据第一控制包或第二控制包中的控制信息,确定该第一控制包或第二控制包的作用为生成映射表条目;在确定第一控制包或第二控制包的作用后,确定映射表中是否存在该生产者对应的条目,如果不存在,则获取该第一控制包中生产者的名字前缀和第一基站的名字前缀,并生成映射表条目,或者获取第二控制包中生产者的名字前缀和发送该第二控制包的锚点的名字前缀,并生成映射表条目。如果存在,则参照步骤s510执行。由于生产者是第一次接入该ndn,因此第一转发路径上的锚点的映射表内不存在该生产者对应的条目。具体地,在步骤s503中,第一转发路径上的各个锚点生成第二控制包的过程如下:锚点确定该锚点在第一转发路径上的上一级锚点的名字前缀;然后根据确定出的上一级锚点的名字前缀、生产者的名字前缀和该锚点的名字前缀生成第二控制包。其中,锚点确定该锚点在第一转发路径上的上一级锚点的名字前缀,与第一基站在第一转发路径上的上一级锚点的名字前缀的确定方式相同,这里不再赘述。在步骤s503之后,第一转发路径上的每个锚点的映射表中都包括生产者的名字前缀以及对应的位置信息。例如,锚点d接收到的第二控制包为:/<d>/<control_info>/cmcc/<seperator>/<ar1>,则锚点d的映射表包括如下内容:生产者位置/cmcc/pku/sece/netlab/1当锚点d接收到兴趣包时,采用兴趣包的名字与生产者的名字前缀进行匹配,得到生产者的位置信息。例如,兴趣包的名字为/cmcc/a.mpg,则按照上表确定出的位置信息包括/pku/sece/netlab/1。在完成步骤s503后,如果消费者发送请求该生产者提供的数据包的兴趣包,则ndn中的锚点可以根据映射表查找生产者的位置信息,然后通过fib确定生产者的位置信息对应的转发接口,并最终将该兴趣包通过第一基站转发给生产者。具体可以参见图4提供的兴趣包转发方法。下面结合图1对步骤s501-503的流程进行举例说明:生产者p接入基站ar1,并告知ar1它的名字前缀。ar1将自己的名字前缀和p的名字前缀组成一个第一控制包发送给上一级锚点d,第一控制包的构成如下:/<d>/<control_info>/cmcc/<seperator>/<ar1>。d收到第一控制包后根据控制信息字段得知这是一个生成映射表条目的控制包,此时由于p是第一次进入该ndn网络,d的映射表中不存在p对应的条目,则d在映射表中生成条目</cmcc,<ar1>>。随后d会向上一级锚点b发出一个第二控制包,以在b处生成一个映射表条目</cmcc,<d>>。按上述流程一直循环到最上层锚点a,由a向外广播生产者的名字前缀。此时,如果消费者发送请求该生产者p提供的数据包的兴趣包(例如名称为/cmcc/a.mpg的兴趣包),该兴趣包会沿着a-b-d的路径向ar1处转发,ar1将该兴趣包发送给p,由p返回数据包。值得说明的是,本发明实施例提供的锚点之间具有层级关系,因而这多层锚点所存储的映射表之间也具有层级关系,具体地,上一级锚点中存储了以下一级锚点的名字前缀作为生产者的位置的条目。以图1所示的网络架构为例,锚点b存储了以锚点d的名字前缀作为生产者的位置信息的条目,锚点a中存储了以锚点b的名字前缀作为生产者的位置信息的条目。s504:生产者检测其当前能够探测到的各个基站的信号强度,当检测到第一基站的信号强度小于第二基站的信号强度时,生产者获取所述第二基站的标识。该第一基站为所述生产者当前接入的基站,第二基站为第一基站所在ndn中第一基站之外的的基站。在本发明实施例中,基站的标识可以采用服务集标识(servicesetidentifier,ssid)实现,具体生产者获取第二基站的标识可以包括:生产者根据信标帧获取第二基站的ssid。这里的第二基站不限定为某一个基站,因为生产者可能同时检测到多个信号强度高于第一基站的基站,当检测到多个信号强度高于第一基站的基站时,生产者针对每个信号强度高于第一基站的基站均执行依次步骤s504-507的过程。进一步地,该方法还可以包括:生产者检测第一基站和第二基站的信号强度。具体地,生产者可以根据接收的信号强度指示(receivedsignalstrengthindication,rssi)值来确定第一基站和第二基站的信号强度。s505:生产者根据所述第二基站的标识生成第三控制包,并将生成的第三控制包发送至所述第一基站,第三控制包的名字包括所述生产者的名字前缀以及所述第二基站的标识。进一步地,第三控制包的名字还包括控制信息。例如,第三控制包的名字的格式可以为/<control_info>/cmcc/<seperator>/<ssid>,其中<control_info>为控制信息,/cmcc为生产者的名字前缀,<ssid>为第二基站的标识。其中,第三控制包中的控制信息用于表示第三控制包的作用是传递标识。s506:第一基站根据接收到的第三控制包生成第四控制包,并将第四控制包发送至交汇锚点,第一基站生成的第四控制包的名字包括所述生产者的名字前缀和所述第二基站的名字前缀。在本发明实施例中,第一基站向交汇锚点发送第四控制包,既可以是第一基站直接将第四控制包发送到交汇锚点,也可以是第一基站通过其他锚点转发将第四控制包发送到交汇锚点。其中,交汇锚点为第一转发路径与第二转发路径交汇的锚点,第二转发路径为所述生产者接入所述第二基站时发送至所述生产者的兴趣包的转发路径。具体地,第一基站根据接收到的第三控制包生成第四控制包,可以包括:第一基站获取第三数据包中的第二基站的标识;根据第二基站的标识确定第二基站的名字前缀;根据第二基站的名字前缀生成第四控制包。其中,根据第二基站的标识确定第二基站的名字前缀可以包括:根据第二基站的标识以及邻居基站路由信息表,确定所述第二基站的名字前缀,所述邻居基站路由信息表包括基站的标识及其对应的名字前缀。其中,邻居基站路由信息表用于存储邻居基站的标识以及该邻居基站对应的名字前缀,其格式可以如下表:基站的标识名字前缀ssid/pku/sece/arclab/2当然基站的标识不限于ssid,还可以是其他能够识别基站身份的信息。进一步地,该第四控制包的名字还包括交汇锚点的名字前缀以及控制信息。例如,第四控制包的名字的格式可以为:/<b>/<control_info>/cmcc/<seperator>/<ar2>,其中<b>为交汇锚点的名字前缀,<control_info>为控制信息,/cmcc为生产者的名字前缀,<ar2>为第二基站的名字前缀。其中,第四控制包中的控制信息用于表示第四控制包的作用是更新映射表条目。由于第一基站生成第四控制包时需要用到交汇锚点的前缀,同时要将该第四控制包发送给交汇锚点,因此步骤s506还包括,确定交汇锚点的名字前缀。具体地,第一基站根据基站的标识确定出第二基站的名字前缀后,采用第一基站的名字前缀与第二基站的名字前缀进行匹配,确定出交汇锚点的名字前缀。其中,采用第一基站的名字前缀与第二基站的名字前缀进行匹配,确定出交汇锚点的过程如下:将第一基站的名字前缀与第二基站的名字前缀进行最长公共前缀匹配运算。其中,最长公共前缀匹配运算是指将两个名字前缀按照从前到后的顺序依次对每层进行匹配,得到的从第一层开始的连续的完全相同的各层即为最长公共前缀。例如,第一基站的名字前缀为/pku/sece/netlab/1,第二基站的名字前缀为/pku/sece/arclab/2,则根据匹配得到的交汇锚点的名字前缀为/pku/sece。s507:交汇锚点根据接收到的第四控制包更新映射表,更新后的所述交汇锚点的映射表包括所述生产者的名字前缀、以及与所述生产者对应的第一位置信息和第二位置信息。其中,所述第一位置信息为所述交汇锚点在所述第一转发路径上的下一级节点的名字前缀,所述第二位置信息为所述交汇锚点在所述第二转发路径上的下一级节点的名字前缀,也即所述第一位置信息为所述交汇锚点采用所述第一转发路径转发兴趣包到所述生产者时的下一级节点的名字前缀,所述第二位置信息为所述交汇锚点采用所述第二转发路径转发兴趣包到所述生产者时的下一级节点的名字前缀。所述交汇锚点在所述第一转发路径上的下一级节点为所述第一转发路径上的锚点或者所述第一基站,所述交汇锚点在所述第二转发路径上的下一级节点为所述第二转发路径上的锚点或者所述第二基站。具体地,交汇锚点在接收到第四控制包后,根据第四控制包中的控制信息,确定该第四控制包的作用为生成映射表条目;然后获取该第四控制包中生产者的名字前缀和第二基站的名字前缀,并根据生产者的名字前缀和第二基站的名字前缀对映射表进行更新。其中,根据生产者的名字前缀和第二基站的名字前缀对映射表进行更新,可以包括:根据第二基站的名字前缀和交汇锚点的名字前缀,确定第二转发路径是否存在处于交汇锚点和第二基站之间的锚点,如果没有,则将第二基站的名字前缀添加到生产者对应的位置信息里;如果有,则确定第二转发路径中交汇锚点的下一级锚点的名字前缀,将该锚点的名字前缀添加到生产者对应的位置信息里。其中,根据第二基站的名字前缀和交汇锚点的名字前缀,确定第二转发路径是否存在处于交汇锚点和第二基站之间的锚点,具体实现方式如下:比较第二基站的名字前缀和交汇锚点的名字前缀,如果第二基站的名字前缀仅比交汇锚点的名字前缀多一层,则确定第二转发路径不存在处于交汇锚点和第二基站之间的锚点,否则(不止多一层)说明第二转发路径存在处于交汇锚点和第二基站之间的锚点。这里名字前缀里的一层,通常是多一个“/”,如/pku/sece/netlab/1比/pku/sece/netlab多一层,/pku/sece/netlab/1比/pku/sece多两层。其中,确定第二转发路径中交汇锚点的下一级锚点,具体实现方式如下:从第二基站的名字前缀中确定出比交汇锚点的名字前缀多一层的名字前缀,确定出的名字前缀即为第二转发路径中交汇锚点的下一级锚点的名字前缀。例如,交汇锚点的名字前缀为/pku/sece,第二基站的名字前缀为/pku/sece/arclab/2,则确定出的第二转发路径中交汇锚点的下一级锚点的名字前缀为/pku/sece/arclab。其中,更新后的交汇锚点的映射表可以采用如下格式:生产者第一位置第二位置/cmcc/pku/sece/netlab/pku/sece/arclab其中,该映射表中每个生产者对应的位置不限于两个。即本发明实施例提供的映射表中记录的每个生产者对应的位置可以有多个,锚点在转发兴趣包时,可以同时向这个多个位置进行转发。这种一个生产者对应多个位置的情况只出现在交汇锚点的映射表中,但是交汇锚点并非固定的,不同的锚点都有成为交汇锚点的可能。以图1所示的网络架构为例,如果生产者在基站ar1和基站ar2间移动,则此时交汇锚点即为锚点b,如果生产者在基站ar2和基站ar3之间移动,则此时交汇锚点即为锚点a。在完成步骤s507后,当交汇锚点接收到兴趣包时,采用兴趣包的名字与生产者的名字前缀进行匹配,得到生产者的位置信息。例如,兴趣包的名字为/cmcc/a.mpg,则按照上表确定出的位置信息包括/pku/sece/netlab和/pku/sece/arclab。也就是说,如果消费者发送兴趣包,则该兴趣包可以同时通过第一基站和第二基站进行转发。由于此时生产者可能仍然处在第一基站下,也可能移动到第二基站,也可能移动到其他基站,这样做增加了在生产者移动时,能够将兴趣包转发到该生产者的概率。进一步地,锚点在对兴趣包进行转发时,还可以将从映射表中确定出的位置信息携带在该兴趣包中,用于指示后续节点如何转发。下面结合图1对步骤504-507的流程进行说明:随着生产者p的移动,生产者p探测到来自基站ar2的信号。当p检测到ar2的信号强度大于ar1的信号强度时,p从信标帧中获得ar2的bssid。p将bssid通过第三控制包发送给ar1,第三控制包的构成如下:/<control_info>/cmcc/<seperator>/<bssid>。ar1接收到该第三控制包后在其邻居基站路由表中进行匹配获得ar2的名字前缀(/pku/sece/arclab),ar1根据ar2的名字前缀和自己的名字前缀(/pku/sece/netlab/1)生成第四数据包,并将第四数据包发送给交汇节点b(/pku/sece),第四数据包的构成如下:/<b>/<control_info>/cmcc/<seperator>/<ar2>。b接收到第四数据包后,更新映射表的条目,更新后的映射表条目为</cmcc,<d>,<e>>。此时,如果消费者发送请求该生产者p提供的数据包的兴趣包,该兴趣包由a到达b后,会沿着b-d-ar1的路径转发,同时还会沿着b-e-ar2的路径转发,最终由ar1或ar2发送给p。s508:生产者接入第二基站时,向所述第二基站发送该生产者的名字前缀。同时,第二基站接收所述生产者发送的所述生产者的名字前缀。步骤s508的具体过程与步骤s501类似,区别仅在于s508是向第二基站发送,故不在赘述其详细过程。s509:第二基站根据所述生产者的名字前缀生成第五控制包,并向第二转发路径上的上一级锚点发送所述第五控制包,所述第五控制包的名字包括所述生产者的名字前缀和第二基站的名字前缀,所述第二转发路径为所述生产者接入第二基站时发送至所述生产者的兴趣包的转发路径。进一步地,第五控制包的名字还包括第二基站在第二转发路径上的上一级锚点的名字前缀以及控制信息。例如,第五控制包的名字的格式可以为:/<d>/<control_info>/cmcc/<seperator>/<ar2>,其中<d>为上一级锚点的名字前缀,<control_info>为控制信息,/cmcc为生产者的名字前缀,<ar2>为第二基站的名字前缀。第五控制包中的控制信息用于表示第五控制包的作用是生成映射表条目。步骤s509的具体过程与步骤s502类似,故不在赘述其详细过程。s510:第二基站在第二转发路径上的上一级锚点根据接收到的第五控制包,在映射表中添加生产者的名字前缀以及该生产者对应的位置信息,同时第二基站在第二转发路径上的上一级锚点向更上一级锚点发送第六控制包,第六控制包的名字包括生产者的名字前缀和发送该第六控制包的锚点的名字前缀。第二转发路径上的各个锚点按照从下级向上级的顺序,依次执行步骤510,直到第二转发路径上的交汇锚点的下一级锚点。值得说明的是,如果在第二转发路径上,第二基站和交汇锚点之间不存在锚点,则无需执行步骤s510。进一步地,第六控制包的名字还包括更上一级锚点的名字前缀以及控制信息。例如,第六控制包的名字的格式可以为:/<b>/<control_info>/cmcc/<seperator>/<d>,其中<b>为更上一级锚点的名字前缀,<control_info>为控制信息,/cmcc为生产者的名字前缀,<d>为第一基站在第一转发路径上的上一级锚点的名字前缀。该控制信息用于标识第六控制包的作用是生成映射表条目。具体地,在步骤s510中,第二转发路径上的锚点在收到第五控制包后,根据第五控制包或第六控制包中的控制信息,确定该第五控制包或第六控制包的作用为生成映射表条目;在确定第五控制包或第六控制包的作用后,确定映射表中是否存在该生产者对应的条目,如果不存在,则获取该第五控制包中生产者的名字前缀和第二基站的名字前缀,并生成映射表条目,或者获取第六控制包中生产者的名字前缀和发送该第六控制包的锚点的名字前缀,并生成映射表条目。如果存在,则说明该锚点为交汇锚点,具体处理参见步骤s511。步骤s510的具体过程与步骤s503类似,故不在赘述其详细过程。s511:交汇锚点接收所述第二路径上的下一级锚点发送的第六控制包,并根据第六控制包更新映射表。具体地,删除所述交汇锚点的映射表中与所述生产者对应的第一位置信息。所述第六控制包的名字包括所述生产者的名字前缀和所述第二转发路径上的下一级锚点的名字前缀。具体地,在步骤s511中,交汇锚点在收到第六控制包后,根据第六控制包中的控制信息,确定该第六控制包的作用为生成映射表条目;在确定第六控制包的作用后,确定交汇锚点的映射表中是否存在该生产者对应的条目。根据前述步骤容易知道,交汇锚点的映射表中存在生产者对应的条目,此时,交汇锚点删除所述交汇锚点的映射表中与所述生产者对应的第一位置信息。在该实施例中,删除所述交汇锚点的映射表中与所述生产者对应的第一位置信息的具体过程如下:将生产者对应的第二位置信息清空,并将原第一位置信息替换为原第二位置信息。其中,更新后的交汇锚点的映射表可以采用如下格式:生产者第一位置/cmcc/pku/sece/arclabs512:交汇锚点向所述第一转发路径中下一级锚点发送删除转发信息控制包,所述删除转发信息控制包用于删除所述第一转发路径中下一级锚点的映射表中所述生产者的名字前缀以及该生产者对应的位置信息。由于生产者已经接入第二基站内,所以第一转发路径上位于第一基站和交汇锚点之间的锚点的映射表中关于生产者的条目已经失效,可以对其进行删除。s513:交汇锚点在第一转发路径中的下一级锚点删除映射表中所述生产者的名字前缀以及该生产者对应的位置信息,同时交汇锚点在第一转发路径中的下一级锚点向更下一级锚点发送删除转发信息控制包。第一转发路径上的各个锚点按照从上级向下级的顺序,依次执行步骤513,直到第一转发路径中位于第一基站上一级的锚点。在完成步骤s513后,如果消费者发送请求该生产者提供的数据包的兴趣包,则ndn中的锚点可以根据映射表查找转发接口,并最终将该兴趣包通过第二基站转发给生产者。可选地,该方法还可以包括:锚点向外广播生产者的名字前缀。该广播为周期性地,间隔可以根据网络负载能力适当放宽,不会像基于路由更新方案那样频繁而使得路由聚合导致网络开销大。下面结合图1对步骤508-513的流程进行说明:当p接入到ar2后,告知ar2它的名字前缀。ar2执行步骤s501-504中ar1相同的操作,由于锚点d的映射表中已经存在p的条目,则操作循环至d处即停止,并且d会对映射表的条目进行更新,更新后的条目为</cmcc,<e>>。此时,如果消费者发送请求该生产者p提供的数据包的兴趣包(例如名称为/cmcc/a.mpg的兴趣包),该兴趣包会沿着a-b-e的路径向ar2处转发,ar2将该兴趣包发送给p,由p返回数据包。图4为本发明实施例提供的一种ndn兴趣包转发方法的流程图,该方法由前述ndn中的锚点执行。如图4所示,该方法包括:s601:锚点接收兴趣包。该兴趣包由消费者发送,用于请求生产者提供的数据包。s602:当在所述锚点的内容存储库中未找到所述兴趣包对应的数据,且在待定兴趣表中未查找到该兴趣包对应的条目时,在映射表中查询与所述兴趣包对应的生产者对应的位置信息,所述映射表包括生产者的名字前缀和该生产者对应的位置信息。其中,在映射表中查询与所述兴趣包对应的生产者对应的位置信息,包括:将兴趣包的名字与映射表中的生产者的名字前缀进行匹配,当兴趣包的名字包括生产者的名字前缀时,确定该生产者的名字前缀对应的位置信息。例如,兴趣包的名称为/cmcc/a.mpg,生产者的名字前缀为/cmcc,该生产者的名字前缀对应的位置信息为/pku/sece/arclab,则按照步骤s602确定出的位置信息即为/pku/sece/arclab。在本发明实施例中,该方法还包括:当锚点在接收到消费者发送的兴趣包时,先查找cs,确定cs中是否存在该兴趣包请求的数据包;如果cs中存在该兴趣包请求的数据包,则将查找的数据包返回给消费者;如果cs中不存在该兴趣包请求的数据包,则在pit查询是否存在该兴趣包对应的条目。如果pit中存在该兴趣包对应的条目,则将接收该兴趣包的接口添加到该条目中;如果pit中不存在该兴趣包对应的条目,则在pit中新增该兴趣包对应的条目,该条目包括接收该兴趣包的接口,同时锚点执行步骤s602-604。步骤s602中的映射表可以采用图3所示的方式进行更新。s603:根据生产者对应的位置信息在转发信息表中确定对应的接口。具体地,fib表的格式如前文所述,因此通过生产者对应的位置信息可以查询出与之对应的接口。具体地,采用生产者对应的位置信息在fib表中查询接口时,采用最长匹配方式进行查询。s604:通过确定出的所述接口转发所述兴趣包。可选地,在转发该兴趣包时,还可以将确定出的生产者的位置信息携带在该兴趣包中,以便指示后续节点的转发。图5示出了本发明一个实施例提供的ndn映射表更新装置的框图。该ndn映射表更新装置可以通过专用硬件电路,或者,软硬件的结合实现成为生产者的全部或一部分。该ndn映射表更新装置包括:获取单元701、生成单元702和发送单元703。其中,获取单元701用于当第一基站的信号强度小于第二基站的信号强度时,获取所述第二基站的标识,所述第一基站为生产者当前接入的基站,所述第二基站为所述生产者所在命名数据网络中所述第一基站之外的基站。生成单元702用于根据所述第二基站的标识生成控制包,所述控制包的名字包括所述生产者的名字前缀以及所述第二基站的标识。发送单元703用于将所述控制包发送至所述第一基站,所述控制包用于指示所述第一基站向交汇锚点发送另一控制包,所述另一控制包用于指示所述交汇锚点更新映射表,更新后的所述交汇锚点的映射表包括所述生产者的名字前缀、以及与所述生产者对应的第一位置信息和第二位置信息;其中,所述交汇锚点为第一转发路径与第二转发路径交汇的锚点,所述第一转发路径为所述生产者接入所述第一基站时顶级锚点发送至所述生产者的兴趣包的转发路径,所述第二转发路径为所述生产者接入所述第二基站时所述顶级锚点发送至所述生产者的兴趣包的转发路径,所述另一控制包的名字包括所述生产者的名字前缀和所述第二基站的名字前缀,所述第一位置信息为所述交汇锚点在所述第一转发路径上的下一级节点的名字前缀,所述第二位置信息为所述交汇锚点在所述第二转发路径上的下一级节点的名字前缀,所述顶级锚点为用于获取并转发请求所述生产者提供的数据包的兴趣包的节点。相关细节可结合参考图3的方法实施例。需要说明的是,上述生成单元702可以由处理器实现或者,处理器执行存储器中的程序指令来实现,上述获取单元701可以由接收机rx实现,或者处理器配合接收机来实现,上述发送单元703可以由发送机tx实现,或者处理器配合发送机来实现。图6示出了本发明一个实施例提供的ndn映射表更新装置的框图。该ndn映射表更新装置可以通过专用硬件电路,或者,软硬件的结合实现成为基站的全部或一部分。该ndn映射表更新装置包括:接收单元801、确定单元802、生成单元803和发送单元804。其中,接收单元801用于接收生产者发送的控制包,所述控制包的名字包括所述生产者的名字前缀以及第二基站的标识,所述第二基站为所述生产者探测到的信号强度大于第一基站的基站,所述第二基站为所述生产者所在命名数据网络中所述第一基站之外的基站,所述第一基站为所述生产者当前接入的基站。确定单元802用于根据所述控制包中第二基站的标识确定所述第二基站的名字前缀。生成单元803用于根据所述第二基站的名字前缀生成另一控制包,所述另一控制包的名字包括所述生产者的名字前缀和所述第二基站的名字前缀。发送单元804用于向交汇锚点发送所述另一控制包,所述另一控制包用于指示所述交汇锚点更新映射表,更新后的所述交汇锚点的映射表包括所述生产者的名字前缀、以及与所述生产者对应的第一位置信息和第二位置信息;其中,所述交汇锚点为第一转发路径与第二转发路径交汇的锚点,所述第一转发路径为所述生产者接入所述第一基站时顶级锚点发送至所述生产者的兴趣包的转发路径,所述第二转发路径为所述生产者接入所述第二基站时所述顶级锚点发送至所述生产者的兴趣包的转发路径,所述第一位置信息为所述交汇锚点在所述第一转发路径上的下一级节点的名字前缀,所述第二位置信息为所述交汇锚点在所述第二转发路径上的下一级节点的名字前缀,所述顶级锚点为用于获取并转发请求所述生产者提供的数据包的兴趣包的节点。相关细节可结合参考图3的方法实施例。需要说明的是,上述确定单元802和生成单元803可以由处理器实现或者,处理器执行存储器中的程序指令来实现,上述接收单元801可以由接收机rx实现,或者处理器配合接收机来实现,上述发送单元804可以由发送机tx实现,或者处理器配合发送机来实现。图7示出了本发明一个实施例提供的ndn映射表更新装置的框图。该ndn映射表更新装置可以通过专用硬件电路,或者,软硬件的结合实现成为路由节点的全部或一部分。该ndn映射表更新装置包括:接收单元901和更新单元902。其中,接收单元901用于接收控制包,所述控制包的名字包括生产者的名字前缀和第二基站的名字前缀,所述第二基站为所述生产者探测到的信号强度大于第一基站的基站,所述第一基站为所述生产者当前接入的基站,所述第二基站为所述生产者所在命名数据网络中所述第一基站之外的基站。更新单元902用于当所述控制包是发送给锚点的控制包时,根据所述控制包更新映射表,更新后的所述锚点的映射表包括所述生产者的名字前缀、以及与所述生产者对应的第一位置信息和第二位置信息;其中,所述第一位置信息为所述锚点在第一转发路径上的下一级节点的名字前缀,所述第二位置信息为所述锚点在第二转发路径上的下一级节点的名字前缀,所述第一转发路径为所述生产者接入所述第一基站时顶级锚点发送至所述生产者的兴趣包的转发路径,所述第二转发路径为所述生产者接入所述第二基站时所述顶级锚点发送至所述生产者的兴趣包的转发路径,所述顶级锚点为用于获取并转发请求所述生产者提供的数据包的兴趣包的节点。相关细节可结合参考图3的方法实施例。需要说明的是,上述更新单元902可以由处理器实现或者,处理器执行存储器中的程序指令来实现,上述接收单元901可以由通信接口实现,或者通信接口配合接收机来实现。图8示出了本发明一个实施例提供的ndn兴趣包转发装置的框图。该ndn兴趣包转发装置可以通过专用硬件电路,或者,软硬件的结合实现成为生产者的全部或一部分。该ndn兴趣包转发装置包括:接收单元1001、查询单元1002、确定单元1003和发送单元1004。其中,接收单元1001用于接收兴趣包。查询单元1002用于当在所述锚点的内容存储库中未找到所述兴趣包对应的数据,且在所述锚点的待定兴趣表中未查找到所述兴趣包对应的条目时,在映射表中查询与所述兴趣包对应的生产者对应的位置信息,所述映射表包括生产者的名字前缀以及与所述生产者对应的位置信息。确定单元1003用于根据所述生产者对应的位置信息在转发信息表中确定对应的接口。发送单元1004用于通过确定出的所述接口转发所述兴趣包。相关细节可结合参考图4的方法实施例。需要说明的是,上述查询单元1002、确定单元1003可以由处理器实现或者,处理器执行存储器中的程序指令来实现,上述接收单元1001可以由接收机rx实现,或者处理器配合接收机来实现,上述发送单元1004可以由发送机tx实现,或者处理器配合发送机来实现。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1