路由转发、建立路由表、和获取内容的方法及其装置制造方法

文档序号:7987211阅读:785来源:国知局
路由转发、建立路由表、和获取内容的方法及其装置制造方法
【专利摘要】本发明公开了一种路由转发、建立路由表、和获取内容的方法及其装置。该路由转发的方法包括:接收内容请求包,该内容请求包携带请求内容的内容名和该请求内容的容器信息;确定FIB中是否存在与该请求内容的内容名匹配的转发表项;当该FIB中不存在与该请求内容的内容名匹配的转发表项时,确定该FIB中是否存在与该容器信息中的容器标识匹配的转发表项;当该FIB中存在与该请求内容的容器信息中的容器标识匹配的转发表项时,根据该匹配的转发表项中的接口,发送该内容请求包。本发明实施例通过在内容名的基础上增加容器信息,能减少路由转发对内容名的依赖,从而可能减少路由表中的路由表项,为解决由内容名引起的路由扩展等问题提供可能。
【专利说明】路由转发、建立路由表、和获取内容的方法及其装置
【技术领域】
[0001]本发明实施例涉及通信领域,并且更具体地,涉及一种路由转发、建立路由表、和获取内容的方法及其装置。
【背景技术】
[0002]虽然互联网协议(Internet Protocol,简称为“IP”)已经取得极大的成功,推动互联网无处不在,但是IP诞生之初将“终端”置于核心位置,以目的IP地址和源IP地址标识的一个个IP包承载着两个终端之间的会话,因此IP是一种以终端为中心的网络协议。而今天人们使用互联网,主要功能不是为了终端之间的会话,而是获取信息,如网络新闻、搜索引擎,网络音乐、网络视频、博客、微博、社交网站、网络论坛等应用其实都是以各种信息的生产、传播和共享为主要目的,且人们在获取这些信息时往往并不关心从哪里获取信息,这是一种全新的以信息或内容为中心的新模式。为了解决互联网应用以信息为中心模式和IP以终端为中心模式的不匹配问题,研究界开始试图重新定义互联网沙漏模型的腰部,研究直接面向信息和内容的未来互联网新架构。
[0003]在所有信息为中心的网络(Information Centric Network,简称为“ICN”)架构中,命名数据网络(Named Data Network,简称为“NDN”)的影响较大,NDN是由VanJacobson领导的内容为中心网络(Content Centric Networking,简称为“CCN”)研究发展而来。NDN和CCN认为未来网络应该以直接基于内容的命名和路由为基础,采用和URL类似的结构化内容命名,在NDN路由器中通过内容存储表(Content Store,简称为“CS”)实现缓存功能,并通过请求内容的内容名与转发信息表(Forwarding Information Base,简称为“FIB”)的内容名前缀的最长匹配查找确定下一跳。NDN也在致力于基于当前的IP路由器和以太网转发引擎来实现基于内容名的转发。因此路由表容量问题是NDN研究关注的重要问题。虽然NDN试图通过名字的聚合来解决这一问题,但由于内容的名字空间远超IP的地址空间,因此,NDN面临相当严峻的路由扩展性问题。具体来说,当前Google已经索引的统一资源定位符/网址(Uniform Resource Locator,简称为“URL”)超过1012个,这样,即使NDN的FIB中只放顶级域名,根据今天的网络规模,也要达到2 X IO8条路由。如果再加入部分二、三级的名字前缀,估计路由表的规模会达到6X IO8条路由,这个数目几乎是当前网络中边界网关协议(BorderGateway Protocol,简称为“BGP”)路由条目的两百倍,而BGP路由用了大约十年时间才扩展了十倍,所以很难期忘当前的硬件如转发引擎在短期内能支持如此规模的NDN路由表。
[0004]针对NDN的上述路由扩展性问题,NDN的内容命名机制提出的一种可能的解决方案是在内容名前面增加拓扑相关的前缀,然后再通过拓扑聚合减小路由表的大小,但这样的命名机制明显存在命名的不持久性问题,特别是在移动互联网迅速发展的今天,无论从移动性、多宿、业务、和安全角度等,都期望内容命名做到位置无关。另外一种解决方案在内容名的基础上引入了路由标签的概念,路由标签用于定义内容的位置,用户或路由节点通过查询名字解析系统可获得内容名对应的路由标签集合。然而,在兴趣包转发流程中,内容名只是用于缓存的查找,真正决定兴趣包转发路由的是路由标签,因此,该技术方案完全弱化了内容路由的概念,而路由标签本质上是一个位置信息,这和IP并没有本质区别。因此该技术方案更像是一个增加了内容缓存功能的IP路由器,而不是真正意义上的内容路由。另外,该技术过于强调两个名字空间的分离和映射系统的作用,使其完全依赖于名字解析系统,从而丧失了 NDN原有的基于内容路由的很多灵活性。因此,如何在解决由内容名引起的路由扩展性等问题的同时而不破坏内容路由的灵活性,是当前NDN系统和其它ICN系统研究亟待解决的问题。

【发明内容】

[0005]本发明实施例提供了 一种路由转发的方法、内容请求的处理方法、建立路由表的方法、获取内容的方法和发布内容的方法,以及路由器、建立路由表的装置、用户设备和发布内容的装置,通过在内容名的基础上增加内容的容器信息以扩展ICN系统中的内容的属性,能够减少路由转发对内容名的依赖。
[0006]第一方面,本发明实施例提供了一种路由转发的方法,该方法包括:接收内容请求包,该内容请求包携带请求内容的内容名和该请求内容的容器信息,该请求内容的容器信息包括用于标识存储该请求内容的容器的容器标识;确定转发信息表FIB中是否存在与该请求内容的内容名匹配的转发表项;当该FIB中不存在与该请求内容的内容名匹配的转发表项时,确定该FIB中是否存在与该请求内容的容器信息中的容器标识匹配的转发表项,该FIB中的转发表项包括预设的容器标识以及与该预设的容器标识对应的接口 ;当该FIB中存在与该请求内容的容器信息中的容器标识匹配的转发表项时,根据该匹配的转发表项中的接口,发送该内容请求包。
[0007]结合第一方面,在第一种可能的实现方式中,该容器是用于存储一组内容的存储空间。
[0008]结合第一方面或结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,该容器包括至少一个路由节点,通过该至少一个路由节点中的一个或多个路由节点,该请求内容能够在该容器内被路由到,或该请求内容能够通过该容器被路由到。
[0009]结合第一方面或结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,该请求内容的内容名对应一个或多个归属容器,该请求内容的归属容器是能够直接路由到该请求内容的容器。
[0010]结合第一方面或结合第一方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第四种可能的实现方式中,该容器为一个或多个第一其它容器的接入容器;和/或一个或多个第二其它容器为该容器的接入容器;其中,该接入容器为在拓扑关系上包括另一容器,且存在将该内容请求包路由到该另一容器的转发表项的容器。
[0011]结合第一方面或结合第一方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第五种可能的实现方式中,该容器信息还包括与该容器标识对应的解析标识,该解析标识用于标识与该容器标识对应的容器是否可解析;该确定该FIB中是否存在与该请求内容的容器信息中的容器标识匹配的转发表项,包括:根据该解析标识,解析获得该请求内容的所有可解析容器的接入容器的容器标识;将该请求内容的容器信息中的容器标识以及该请求内容的所有可解析容器的接入容器的容器标识与该FIB中的预设的容器标识进行匹配,以确定该FIB中是否存在与该请求内容的容器信息中的容器标识以及该接入容器的容器标识匹配的转发表项。
[0012]结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,该方法还包括:将该解析获得的该请求内容的所有可解析容器的接入容器的容器信息添加到该请求内容的容器信息中。
[0013]结合第一方面或结合第一方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第七种可能的实现方式中,该容器信息还包括与该容器标识对应的解析标识,该解析标识用于标识与该容器标识对应的容器是否可解析;该方法还包括:当该FIB中不存在与该请求内容的容器信息中的容器标识匹配的转发表项时,根据该解析标识,解析获得该容器的接入容器的容器标识;将该解析获得的接入容器的容器标识与该FIB中的预设的容器标识进行匹配,以确定该FIB中是否存在与该解析获得的接入容器的容器标识匹配的转发表项。
[0014]结合第一方面的第七种可能的实现方式,在第八种实现方式中,该方法还包括:将该解析获得的接入容器的容器信息添加到该请求内容的容器信息中。
[0015]结合第一方面或结合第一方面的第一种至第八种可能的实现方式中的任一种可能的实现方式,在第九种可能的实现方式中,该FIB中的转发表项包括内容名前缀和该内容名前缀对应的接口 ;该确定转发信息表FIB中是否存在与该请求内容的内容名匹配的转发表项,包括:根据该请求内容的内容名的前缀与该FIB中的转发表项中的内容名前缀是否匹配,确定该FIB中是否存在与该请求内容的内容名匹配的转发表项;该方法还包括:当确定该FIB中存在与该请求内容的内容名匹配的转发表项时,根据该匹配的转发表项中的接口,发送该内容请求包。
[0016]结合第一方面或结合第一方面的第一种至第九种可能的实现方式中的任一种可能的实现方式,在第十种可能的实现方式中,该方法还包括:在该确定FIB中是否存在与该请求内容的内容名匹配的转发表项之`前,确定内容存储表CS中是否存在与该请求内容的内容名匹配的内容;当该CS中存在与该请求内容的内容名匹配的内容时,将该匹配的内容发送至该内容请求包的发送端;当该CS中不存在与该请求内容的内容名匹配的内容时,执行该确定FIB中是否存在与该请求内容的内容名匹配的转发表项的步骤。
[0017]结合第一方面的第十种可能的实现方式,在第十一种可能的实现方式中,该方法还包括:当该CS中不存在与该请求内容的内容名匹配的内容时,确定驻留信息表PIT中是否存在与该请求内容的内容名匹配的PIT表项;当该PIT中存在与该请求内容的内容名匹配的PIT表项时,将该内容请求包的发送端对应的接口添加到该匹配的PIT表项;当该PIT中不存在与该请求内容的内容名匹配的PIT表项时,执行该确定FIB中是否存在与该请求内容的内容名匹配的转发表项的步骤。
[0018]结合第一方面或结合第一方面的第一种至第十一种可能的实现方式中的任一种可能的实现方式,在第十二种可能的实现方式中,该方法还包括:当该FIB中不存在与该请求内容的容器信息中的容器标识匹配的转发表项时,根据默认接口发送该内容请求包,或将该内容请求包丢弃。
[0019]结合第一方面或结合第一方面的第一种至第十二种可能的实现方式中的任一种可能的实现方式,在第十三种可能的实现方式中,该FIB包括全局容器转发表项,该全局容器转发表项包括全局容器的容器标识以及与该全局容器的容器标识对应的第一接口,该第一接口是由本节点连接到达该全局容器的下一跳路由节点的接口,该全局容器是可全局路由的容器,该全局容器包括拓扑相关的全局容器和/或拓扑无关的全局容器。
[0020]结合第一方面的第十三种可能的实现方式,在第十四种可能的实现方式中,该FIB还包括用于基于拓扑相关容器进行路由的拓扑相关容器转发表项,通过该拓扑相关容器转发表项,使得该本节点归属的容器的下级容器的路由作为该本节点的内部路由不扩散出该本节点归属的容器;其中,该拓扑相关容器是与其它容器形成拓扑关系的容器,该拓扑关系包括:一个上级容器包括一个或多个下级容器,和/或一个下级容器被一个或多个上级容器所包括。
[0021]结合第一方面的第十四种可能的实现方式,在第十五种可能的实现方式中,该拓扑相关容器转发表项包括相对于该本节点的归属容器为下级容器的容器标识以及与该下级容器的容器标识对应的第二接口,该第二接口为由该本节点连接到达该下级容器的接口 ;该通过该拓扑相关容器转发表项,使得该本节点归属的容器的下级容器的路由作为该本节点的内部路由不扩散出该本节点归属的容器,包括:通过该拓扑相关容器转发表项中的该下级容器的容器标识以及与该下级容器的容器标识对应的第二接口,使得该本节点归属的容器的下级容器的路由作为该本节点的内部路由不扩散出该本节点归属的容器。
[0022]结合第一方面的第十四种或第十五种可能的实现方式,在第十六种可能的实现方式中,该拓扑相关容器对应的容器标识具有能够反映该拓扑相关容器的级别的性质,从而表不该拓扑相关容器与其它容器之间形成的该拓扑关系。
[0023]结合第一方面的第十二种至第十六种可能的实现方式中的任一种可能的实现方式,在第十七种可能的实现方式中,该FIB还包括拓扑无关小容器转发表项,该拓扑无关小容器转发表项包括拓扑无关小容器的容器标识以及与该拓扑无关小容器的容器标识对应的第三接口,该第三接口为由本节点连接到达该拓扑无关小容器的下一跳路由节点的接□。
[0024]第二方面,本发明实施例提供了一种内容请求的处理方法,该方法包括:接收内容请求包,该内容请求包携带请求内容的内容名和该请求内容的容器信息,该请求内容的容器信息包括用于标识存储该请求内容的容器的容器标识,该容器包括至少一个路由节点,通过该至少一个路由节点中的一个或多个路由节点,该请求内容能够在该容器内被路由到,或该请求内容能够通过该容器被路由到;根据该请求内容的内容名和该请求内容的容器信息,确定该内容请求包的转发路由。
[0025]结合第二方面,在第一种可能的实现方式中,该容器是用于存储一组内容的存储空间。
[0026]结合第二方面或结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,该请求内容的内容名对应一个或多个归属容器,该请求内容的归属容器是能够直接路由到该请求内容的容器。
[0027]结合第二方面或结合第二方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,该容器为一个或多个第一其它容器的接入容器;和/或一个或多个第二其它容器为该容器的接入容器;其中,该接入容器为在拓扑关系上包括另一容器,且存在将该内容请求包路由到该另一容器的转发表项的容器。[0028]结合第二方面或结合第二方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第四种可能的实现方式中,该根据该请求内容的内容名和该请求内容的容器信息确定该内容请求包的转发路由,包括:确定转发信息表FIB中是否存在与该请求内容的内容名匹配的转发表项;当该FIB中不存在与该请求内容的内容名匹配的转发表项时,确定该FIB中是否存在与该请求内容的容器信息中的容器标识匹配的转发表项,该FIB中的转发表项包括预设的容器标识和与该预设的容器标识对应的接口 ;当该FIB中存在与该请求内容的容器信息中的容器标识匹配的转发表项时,根据该匹配的转发表项中的接口,发送该内容请求包。
[0029]结合第二方面或结合第二方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第五种可能的实现方式中,该请求内容的内容名和该请求内容的容器信息形成以该请求内容的内容名为根节点的树,该根节点的子节点代表该请求内容的归属容器的容器信息,第一节点代表的容器信息对应的容器为该第一节点的父节点代表的容器信息对应的容器的接入容器,该第一节点是该树中除根节点和该根节点的子节点外的其它节点。
[0030]结合第二方面或结合第二方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第六种可能的实现方式中,该请求内容的内容名和该请求内容的容器信息形成以该请求内容的内容名为入口顶点的有向无环图,从该入口顶点发起的有向边的终点代表该请求内容的归属容器的容器信息,该有向无环图中的第二顶点代表的容器信息对应的容器是第一顶点代表的容器信息对应的容器的接入容器,该第一顶点是该有向无环图中除入口顶点外的其它顶点,该第二顶点是从该第一顶点发起的有向边的终点。
[0031]第三方面,本发明实施例提供了一种建立路由表的方法,该方法包括:生成本节点的路由表,以根据该路由表生成转发信息表FIB,该路由表包括全局容器路由表项,该全局容器路由表项包括全局容器的容器标识以及与该全局容器的容器标识对应的第一接口,该第一接口是由该本节点连接到达该全局容器的下一跳路由节点的接口,该全局容器是可全局路由的容器,该全局容器包括拓扑相关的全局容器和/或拓扑无关的全局容器。
[0032]结合第三方面,在第一种可能的实现方式中,该FIB表用于当该本节点接收到内容请求包时,将该内容请求包携带的请求内容的内容名和容器信息中的容器标识与该FIB中的转发表项进行匹配,以确定该内容请求包的转发路由。
[0033]结合第三方面或结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,该路由表还包括用于基于拓扑相关容器进行路由的拓扑相关容器路由表项,通过该拓扑相关容器路由表项,使得该本节点归属的容器的下级容器的路由作为该本节点的内部路由不扩散出该本节点归属的容器;其中,该拓扑相关容器是与其它容器形成拓扑关系的容器,该拓扑关系包括:一个上级容器包括一个或多个下级容器,和/或一个下级容器被一个或多个上级容器所包括。
[0034]结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,该拓扑相关容器路由表项包括相对于该本节点的归属容器为下级容器的下级容器标识以及与该下级容器标识对应的第二接口,该第二接口为由该本节点连接到达该下级容器的接口 ;该通过该拓扑相关容器路由表项,使得该本节点归属的容器的下级容器的路由作为该本节点的内部路由不扩散出该本节点归属的容器,包括:通过该拓扑相关容器路由表项中的下级容器标识以及与该下级容器标识对应的第二接口,使得该本节点归属的容器的下级容器的路由作为该本节点的内部路由不扩散出该本节点归属的容器。
[0035]结合第三方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中,该拓扑相关容器对应的容器标识具有能够反映该拓扑相关容器的级别的性质,从而表示该拓扑相关容器与其它容器之间的该拓扑关系。
[0036]结合第三方面或结合第三方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第五种可能的实现方式中,该路由表还包括拓扑无关小容器路由表项,该拓扑无关小容器路由表项包括拓扑无关小容器的容器标识以及与该拓扑无关小容器的容器标识对应的第三接口,该第三接口为由该本节点连接到达该拓扑无关小容器的下一跳路由节点的接口。
[0037]第四方面,本发明实施例提供了一种获取内容的方法,该方法包括:生成内容请求包,该内容请求包携带请求内容的内容名和该请求内容的容器信息,该请求内容的容器信息包括用于标识存储该请求内容的容器的容器标识;将该内容请求包发送至网络设备,以便该网络设备根据该请求内容的内容名和该请求内容的容器信息确定该内容请求包的转发路由。
[0038]结合第四方面,在第一种可能的实现方式中,该容器包括至少一个路由节点,通过该至少一个路由节点中的一个或多个路由节点,该请求内容能够在该容器内被路由到,或该请求内容能够通过该容器被路由到。
[0039]结合第四方面,在第一种可能的实现方式中,该请求内容的内容名对应一个或多个归属容器,该请求内容的归属容器是能够直接路由到该请求内容的容器。
[0040]结合第四方面或结合第四方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,该容器信息还包括与该容器标识对应的解析标识,该解析标识用于标识与该容器标识对应的容器是否可解析。
[0041]结合第四方面或结合第四方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第四种可能的实现方式中,在该生成内容请求包之前,该方法还包括:获取该请求内容的容器信息;该生成内容请求包,包括:根据该获取得到的该请求内容的容器信息,生成内容请求包。
[0042]结合第四方面的第四种可能的实现方式,在第五种可能的实现方式中,该方法还包括:根据该请求内容的容器信息,确定该请求内容的容器信息对应的容器的接入容器,并将该接入容器的容器信息添加到该请求内容的容器信息中;该生成内容请求包,包括:根据该添加了该接入容器的容器信息的该请求内容的容器信息,生成内容请求包。
[0043]结合第四方面的第四种可能的实现方式,在第六种可能的实现方式中,该方法还包括:根据该请求内容的容器信息,确定该请求内容的所有可解析容器的接入容器,并将该所有可解析容器的接入容器的容器信息添加到该请求内容的容器信息中;该生成内容请求包,包括:根据该添加了该所有可解析容器的接入容器的容器信息的该请求内容的容器信息,生成内容请求包。
[0044]第五方面,本发明实施例提供了一种发布内容的方法,该方法包括:确定内容的容器集以及该容器集中每个容器的容器信息,该容器集包括至少一个存储该内容的容器;发布该内容和该内容的信息,该内容的信息包括该内容的内容名和该容器集中每个容器的容器信息,以便用户设备根据该内容的信息生成内容请求包并发送到网络设备以及由路由节点根据该内容请求包携带的该内容的信息确定该内容请求包的转发路由。
[0045]结合第五方面,在第一种可能的实现方式中,该容器包括至少一个路由节点,通过该至少一个路由节点中的一个或多个路由节点,该请求内容能够在该容器内被路由到,或该请求内容能够通过该容器被路由到。
[0046]结合第五方面,在第二种可能的实现方式中,该内容的内容名对应一个或多个归属容器,该内容的归属容器是能够直接路由到该内容的容器。
[0047]结合第五方面或结合第五方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,该方法还包括:将该容器集中的至少一个容器和该至少一个容器的接入容器注册到解析系统,以便用户或路由节点通过查询该解析系统获得该至少一个容器的接入容器。
[0048]结合第五方面的第三种可能的实现方式,在第四种可能的实现方式中,该容器信息包括:容器标识和解析标识,该解析标识用于标识容器是否可解析。
[0049]第六方面,本发明实施例提供了一种路由器,该路由器包括:接收模块,用于接收内容请求包,该内容请求包携带请求内容的内容名和该请求内容的容器信息,该请求内容的容器信息包括用于标识存储该请求内容的容器的容器标识;第一确定模块,用于确定转发信息表FIB中是否存在与该接收模块接收的该内容请求包携带的该请求内容的内容名匹配的转发表项;第二确定模块,用于当该第一确定模块确定该FIB中不存在与该请求内容的内容名匹配的转发表项时,确定该FIB中是否存在与该请求内容的容器信息中的容器标识匹配的转发表项,该FIB中的转发表项包括预设的容器标识以及与该预设的容器标识对应的接口 ;发送模块,用于当该第二确定模块确定该FIB中存在与该请求内容的容器信息中的容器标识匹配的转发表项时,根据该匹配的转发表项中的接口,发送该内容请求包。
[0050]结合第六方面,在第一种可能的实现方式中,该容器是用于存储一组内容的存储空间。
[0051]结合第六方面或结合第六方面的第一种可能的实现方式,在第二种可能的实现方式中,该容器包括至少一个路由节点,通过该至少一个路由节点中的一个或多个路由节点,该请求内容能够在该容器内被路由到,或该请求内容能够通过该容器被路由到。
[0052]结合第六方面或结合第六方面的第一种可能的实现方式,在第三种可能的实现方式中,该请求内容的内容名对应一个或多个归属容器,该请求内容的归属容器是能够直接路由到该请求内容的容器。
[0053]结合第六方面或结合第六方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第四种可能的实现方式中,该容器为一个或多个第一其它容器的接入容器;和/或一个或多个第二其它容器为该容器的接入容器;其中,该接入容器为在拓扑关系上包括另一容器,且存在将该内容请求包路由到该另一容器的转发表项的容器。
[0054]结合第六方面或结合第六方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第五种可能的实现方式中,该容器信息还包括与该容器标识对应的解析标识,该解析标识用于标识与该容器标识对应的容器是否可解析;该第二确定模块包括:第一解析单元,用于根据该解析标识,解析获得该请求内容的所有可解析容器的接入容器的容器标识;第一确定单元,具体用于将该请求内容的容器信息中的容器标识以及该第一解析单元解析获得的该请求内容的所有可解析容器的接入容器的容器标识与该FIB中的预设的容器标识进行匹配,以确定该FIB中是否存在与该请求内容的容器信息中的容器标识以及该接入容器的容器标识匹配的转发表项。
[0055]结合第六方面的第五种可能的实现方式,在第六种可能的实现方式中,该路由器还包括:第一添加模块,用于将该第一解析单元解析获得的该请求内容的所有可解析容器的接入容器的容器信息添加到该请求内容的容器信息中。
[0056]结合第六方面或结合第六方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第七种可能的实现方式中,该容器信息还包括与该容器标识对应的解析标识,该解析标识用于标识与该容器标识对应的容器是否可解析;该路由器还包括:第一解析模块,用于当该第二确定模块确定该FIB中不存在与该请求内容的容器信息中的容器标识匹配的转发表项时,根据该解析标识,解析获得该容器的接入容器的容器标识;该第二确定模块还用于将该第一解析模块解析获得的接入容器的容器标识与该FIB中的预设的容器标识进行匹配,以确定该FIB中是否存在与该解析获得的接入容器的容器标识匹配的转发表项。
[0057]结合第六方面的第七种可能的实现方式,在第八种可能的实现方式中,该路由器还包括:第二添加模块,用于将该第一解析模块解析获得的接入容器的容器信息添加到该请求内容的容器信息中。
[0058]结合第六方面或结合第六方面的第一种至第八种可能的实现方式中的任一种可能的实现方式,在第九种可能的实现方式中,该FIB中的转发表项包括内容名前缀和该内容名前缀对应的接口 ;该第一确定模块具体用于根据该请求内容的内容名的前缀与该FIB中的转发表项中的内容名前缀是否匹配,确定该FIB中是否存在与该请求内容的内容名匹配的转发表项;该发送模块还用于当该第一确定模块确定该FIB中存在与该请求内容的内容名匹配的转发表项时,根据该匹配的转发表项中的接口,发送该内容请求包。
`[0059]结合第六方面或结合第六方面的第一种至第九种可能的实现方式中的任一种可能的实现方式,在第十种可能的实现方式中,该路由器还包括:第三确定模块,用于在该第一确定模块确定FIB中是否存在与该请求内容的内容名匹配的转发表项之前,确定内容存储表CS中是否存在与该请求内容的内容名匹配的内容;该发送模块还用于当该第三确定模块确定该CS中存在与该请求内容的内容名匹配的内容时,将该匹配的内容发送至该内容请求包的发送端;该第一确定模块还用于当该第三确定模块确定该CS中不存在与该请求内容的内容名匹配的内容时,执行该确定FIB中是否存在与该请求内容的内容名匹配的转发表项的步骤。
[0060]结合第六方面的第十种可能的实现方式,在第十一种可能的实现方式中,该路由器还包括:第四确定模块,用于当该第三确定模块确定该CS中不存在与该请求内容的内容名匹配的内容时,确定驻留信息表PIT中是否存在与该请求内容的内容名匹配的PIT表项;更新模块,用于当该第四确定模块确定该PIT中存在与该请求内容的内容名匹配的PIT表项时,将该内容请求包的发送端对应的接口添加到该匹配的PIT表项;该第一确定模块还用于当该第四确定模块确定该PIT中不存在与该请求内容的内容名匹配的PIT表项时,执行该确定FIB中是否存在与该请求内容的内容名匹配的转发表项的步骤。
[0061]结合第六方面或结合第六方面的第一种至第十一种可能的实现方式中的任一种可能的实现方式,在第十二种可能的实现方式中,该发送模块还用于当该FIB中不存在与该请求内容的容器信息中的容器标识匹配的转发表项时,根据默认接口发送该内容请求包;或该路由器还包括丢弃模块,用于当该FIB中不存在与该请求内容的容器信息中的容器标识匹配的转发表项时,将该内容请求包丢弃。
[0062]结合第六方面或结合第六方面的第一种至第十二种可能的实现方式中的任一种可能的实现方式,在第十三种可能的实现方式中,该FIB包括全局容器转发表项,该全局容器转发表项包括全局容器的容器标识以及与该全局容器的容器标识对应的第一接口,该第一接口是由本节点连接到达该全局容器的下一跳路由节点的接口,该全局容器是可全局路由的容器,该全局容器包括拓扑相关的全局容器和/或拓扑无关的全局容器。
[0063]结合第六方面的第十三种可能的实现方式,在第十四种可能的实现方式中,该FIB还包括用于基于拓扑相关容器进行路由的拓扑相关容器转发表项,通过该拓扑相关容器转发表项,使得该本节点归属的容器的下级容器的路由作为该本节点的内部路由不扩散出该本节点归属的容器;其中,该拓扑相关容器是与其它容器形成拓扑关系的容器,该拓扑关系包括:一个上级容器包括一个或多个下级容器,和/或一个下级容器被一个或多个上级容器所包括。
[0064]结合第六方面的第十四种可能的实现方式,在第十五种可能的实现方式中,该拓扑相关容器转发表项包括相对于该本节点的归属容器为下级容器的容器标识以及与该下级容器的容器标识对应的第二接口,该第二接口为由该本节点连接到达该下级容器的接口 ;该通过该拓扑相关容器转发表项,使得该本节点归属的容器的下级容器的路由作为该本节点的内部路由不扩散出该本节点归属的容器,包括:通过该拓扑相关容器转发表项中的该下级容器的容器标识以及与该下级容器的容器标识对应的第二接口,使得该本节点归属的容器的下级容器的路由作为该本节点的内部路由不扩散出该本节点归属的容器。
[0065]结合第六方面的第十四种或第十五种可能的实现方式,在第十六种可能的实现方式中,该拓扑相关容器对应的容器标识具有能够反映该拓扑相关容器的级别的性质,从而表不该拓扑相关容器与其它容器之间形成的该拓扑关系。
[0066]结合第六方面的第十三种至第十六种可能的实现方式中的任一种可能的实现方式,在第十七种可能的实现方式中,该FIB还包括拓扑无关小容器转发表项,该拓扑无关小容器转发表项包括拓扑无关小容器的容器标识以及与该拓扑无关小容器的容器标识对应的第三接口,该第三接口为由本节点连接到达该拓扑无关小容器的下一跳路由节点的接□。
[0067]第七方面,本发明实施例提供了一种路由器,该路由器包括:接收模块,用于接收内容请求包,该内容请求包携带请求内容的内容名和该请求内容的容器信息,该请求内容的容器信息包括用于标识存储该请求内容的容器的容器标识,该容器包括至少一个路由节点,通过该至少一个路由节点中的一个或多个路由节点,该请求内容能够在该容器内被路由到,或该请求内容能够通过该容器被路由到;确定模块,用于根据该接收模块接收的该内容请求包携带的该请求内容的内容名和该请求内容的容器信息,确定该内容请求包的转发路由。
[0068]结合第七方面,在第一种可能的实现方式中,该容器是用于存储一组内容的存储空间。[0069]结合第七方面或结合第七方面的第一种可能的实现方式,在第二种可能的实现方式中,该请求内容的内容名对应一个或多个归属容器,该请求内容的归属容器是能够直接路由到该请求内容的容器。
[0070]结合第七方面或结合第七方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,该容器为一个或多个第一其它容器的接入容器;和/或一个或多个第二其它容器为该容器的接入容器;其中,该接入容器为在拓扑关系上包括另一容器,且存在将该内容请求包路由到该另一容器的转发表项的容器。
[0071]结合第七方面或结合第七方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第四种可能的实现方式中,该确定模块包括:第一确定单元,用于确定转发信息表FIB中是否存在与该请求内容的内容名匹配的转发表项;第二确定单元,用于当该第一确定单元确定该FIB中不存在与该请求内容的内容名匹配的转发表项时,确定该FIB中是否存在与该请求内容的容器信息中的容器标识匹配的转发表项,该FIB中的转发表项包括预设的容器标识和与该预设的容器标识对应的接口 ;发送单元,用于当该第二确定单元确定该FIB中存在与该请求内容的容器信息中的容器标识匹配的转发表项时,根据该匹配的转发表项中的接口,发送该内容请求包。
[0072]结合第七方面或结合第七方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第五种可能的实现方式中,该请求内容的内容名和该请求内容的容器信息形成以该请求内容的内容名为根节点的树,该根节点的子节点代表该请求内容的归属容器的容器信息,第一节点代表的容器信息对应的容器为该第一节点的父节点代表的容器信息对应的容器的接入容器,该第一节点是该树中除根节点和该根节点的子节点外的其它节点。
[0073]结合第七方面或结合第七方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第六种可能的实现方式中,该请求内容的内容名和该请求内容的容器信息形成以该请求内容的内容名为入口顶点的有向无环图,从该入口顶点发起的有向边的终点代表该请求内容的归属容器的容器信息,该有向无环图中的第二顶点代表的容器信息对应的容器是第一顶点代表的容器信息对应的容器的接入容器,该第一顶点是该有向无环图中除入口顶点外的其它顶点,该第二顶点是从该第一顶点发起的有向边的终点。
[0074]第八方面,本发明实施例提供了一种建立路由表的装置,该装置包括:生成模块,用于生成本节点的路由表,以根据该路由表生成转发信息表FIB,该路由表包括全局容器路由表项,该全局容器路由表项包括全局容器的容器标识以及与该全局容器的容器标识对应的第一接口,该第一接口是由该本节点连接到达该全局容器的下一跳路由节点的接口,该全局容器是可全局路由的容器,该全局容器包括拓扑相关的全局容器和/或拓扑无关的全局容器;
[0075]存储模块,用于存储该生成模块生成的路由表。
[0076]结合第八方面,在第一种可能的实现方式中,该FIB表用于当该本节点接收到内容请求包时,将该内容请求包携带的请求内容的内容名和容器信息中的容器标识与该FIB中的转发表项进行匹配,以确定该内容请求包的转发路由。
[0077]结合第八方面或结合第八方面的第一种可能的实现方式,在第二种可能的实现方式中,该路由表还包括用于基于拓扑相关容器进行路由的拓扑相关容器路由表项,通过该拓扑相关容器路由表项,使得该本节点归属的容器的下级容器的路由作为该本节点的内部路由不扩散出该本节点归属的容器;其中,该拓扑相关容器是与其它容器形成拓扑关系的容器,该拓扑关系包括:一个上级容器包括一个或多个下级容器,和/或一个下级容器被一个或多个上级容器所包括。
[0078]结合第八方面的第二种可能的实现方式,在第三种可能的实现方式中,该拓扑相关容器路由表项包括相对于该本节点的归属容器为下级容器的下级容器标识以及与该下级容器标识对应的第二接口,该第二接口为由该本节点连接到达该下级容器的接口 ;该通过该拓扑相关容器路由表项,使得该本节点归属的容器的下级容器的路由作为该本节点的内部路由不扩散出该本节点归属的容器,包括:通过该拓扑相关容器路由表项中的下级容器标识以及与该下级容器标识对应的第二接口,使得该本节点归属的容器的下级容器的路由作为该本节点的内部路由不扩散出该本节点归属的容器。
[0079]结合第八方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中,该拓扑相关容器对应的容器标识具有能够反映该拓扑相关容器的级别的性质,从而表示该拓扑相关容器与其它容器之间的该拓扑关系。
[0080]结合第八方面或结合第八方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第五种可能的实现方式中,该路由表还包括拓扑无关小容器路由表项,该拓扑无关小容器路由表项包括拓扑无关小容器的容器标识以及与该拓扑无关小容器的容器标识对应的第三接口,该第三接口为由该本节点连接到达该拓扑无关小容器的下一跳路由节点的接口。
[0081]第九方面,本发明实施例提供了一种用户设备,该用户设备包括:生成模块,用于生成内容请求包,该内容请求包携带请求内容的内容名和该请求内容的容器信息,该请求内容的容器信息包括用于标识存储该请求内容的容器的容器标识;发送模块,用于将该生成模块生成的该内容请求包发送至网络设备,以便该网络设备根据该请求内容的内容名和该请求内容的容器信息确定该内容请求包的转发路由。
[0082]结合第九方面,在第一种可能的实现方式中,该容器包括至少一个路由节点,通过该至少一个路由节点中的一个或多个路由节点,该请求内容能够在该容器内被路由到,或该请求内容能够通过该容器被路由到。
[0083]结合第九方面,在第二种可能的实现方式中,该请求内容的内容名对应一个或多个归属容器,该请求内容的归属容器是能够直接路由到该请求内容的容器。
[0084]结合第九方面或结合第九方面的第二种或第二种可能的实现方式,在第三种可能的实现方式中,该容器信息还包括与该容器标识对应的解析标识,该解析标识用于标识与该容器标识对应的容器是否可解析。
[0085]结合第九方面或结合第九方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第四种可能的实现方式中,该用户设备还包括:获取模块,用于在该生成模块生成内容请求包之前,获取该请求内容的容器信息;该生成模块具体用于根据该获取模块获取的该请求内容的容器信息,生成内容请求包。
[0086]结合第九方面的第四种可能的实现方式,在第五种可能的实现方式中,该用户设备还包括:第一确定模块,用于根据该获取模块获取的该请求内容的容器信息,确定该容器的接入容器;第一更新模块,用于将该第一确定模块确定的该接入容器的容器信息添加到该请求内容的容器信息中;该生成模块具体用于根据该第一更新模块更新后的该请求内容的容器信息,生成内容请求包。
[0087]结合第九方面的第四种可能的实现方式,在第六种可能的实现方式中,该用户设备还包括:第二确定模块,用于根据该获取模块获取的该请求内容的容器信息,确定该请求内容的所有可解析容器的接入容器;第二更新模块,用于将该第二确定模块确定的该所有可解析容器的接入容器的容器信息添加到该请求内容的容器信息中;该生成模块具体用于根据该第二更新模块更新后的该请求内容的容器信息,生成内容请求包。
[0088]第十方面,本发明实施例提供了一种发布内容的装置,该装置包括:确定模块,用于确定内容的容器集以及该容器集中每个容器的容器信息,该容器集包括至少一个存储该内容的容器;发布模块,用于发布该内容和该内容的信息,该内容的信息包括该内容的内容名和该确定模块确定的该容器集中每个容器的容器信息,以便用户根据该内容的信息生成内容请求包并发送到网络设备并由路由节点根据该内容请求包携带的该内容的信息确定该内容请求包的转发路由。
[0089]结合第十方面,在第一种可能的实现方式中,该容器包括至少一个路由节点,通过该至少一个路由节点中的一个或多个路由节点,该请求内容能够在该容器内被路由到,或该请求内容能够通过该容器被路由到。
[0090]结合第十方面,第二种可能的实现方式中,该内容的内容名对应一个或多个归属容器,该内容的归属容器是能够直接路由到该内容的容器。
[0091]结合第十方面或结合第十方面的第一种或第二种可能的实现方式,第三种可能的实现方式中,该装置还包括:注册模块,用于将该容器集中的至少一个容器和该至少一个容器的接入容器注册到解析系统,以便用户或路由节点通过查询该解析系统获得该至少一个容器的接入容器。
[0092]结合第十方面的第三种可能的实现方式,第四种可能的实现方式中,该容器信息包括:容器标识和解析标识,该解析标识用于标识容器是否可解析。
[0093]基于上述技术方案,本发明实施例的路由转发的方法、内容请求的处理方法、建立路由表的方法、获取内容的方法和发布内容的方法,以及路由器、建立路由表的装置、用户设备和发布内容的装置,通过在内容名的基础上增加内容的容器信息以扩展ICN系统中的内容的属性,能够减少路由转发对内容名的依赖,从而可能减少路由表中的路由表项,为解决由内容名引起的路由扩展性和移动性等问题提供可能性。
【专利附图】

【附图说明】
[0094]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0095]图1是根据本发明实施例的路由转发的方法的示意性流程图。
[0096]图2(a)是根据本发明实施例的内容名和容器集之间形成的树型结构示意图。
[0097]图2(b)是根据本发明实施例的内容名和容器集之间形成的有向无环图的结构示意图。[0098]图3是根据本发明实施例的路由转发的方法的另一示意性流程图。
[0099]图4是根据本发明实施例的路由转发的方法的再一示意性流程图。
[0100]图5是根据本发明实施例的路由转发的方法的再一示意性流程图。
[0101]图6是根据本发明实施例的路由转发的方法的再一示意性流程图。
[0102]图7是根据本发明另一实施例的路由转发的方法的示意性流程图。
[0103]图8是根据本发明实施例的内容请求包和数据包的示意图。
[0104]图9是根据本发明再一实施例的路由转发的方法的示意性流程图。
[0105]图10是根据本发明再一实施例的路由转发的方法的示意性流程图。
[0106]图11是根据本发明再一实施例的路由转发的方法的示意性流程图。
[0107]图12是根据本发明实施例的网络架构的示意图。
[0108]图13是根据本发明实施例的内容请求的处理方法的示意性流程图。
[0109]图14是根据本发明实施例的内容请求的处理方法的另一示意性流程图。
[0110]图15是根据本发明实施例的建立路由表的方法的示意性流程图。
[0111]图16是根据本发明实施例的获取内容的方法的示意性流程图。
[0112]图17是根据本发明实施例的获取内容的方法的另一示意性流程图。
[0113]图18是根据本发明实施例的获取内容的方法的再一示意性流程图。
[0114]图19是根据本发明实施例的发布内容的方法的示意性流程图。
[0115]图20是根据本发明实施例的发布内容的方法的另一示意性流程图。
[0116]图21是根据本发明实施例的路由器的示意性框图。
[0117]图22是根据本发明实施例的路由器的第二确定模块的示意性框图。
[0118]图23是根据本发明实施例的路由器的另一示意性框图。
[0119]图24是根据本发明实施例的路由器的再一示意性框图。
[0120]图25是根据本发明实施例的路由器的再一示意性框图。
[0121]图26是根据本发明另一实施例的路由器的示意性框图。
[0122]图27是根据本发明另一实施例的路由器的确定模块的示意性框图。
[0123]图28是根据本发明实施例的建立路由表的装置的示意性框图。
[0124]图29是根据本发明实施例的用户设备的示意性框图。
[0125]图30是根据本发明实施例的用户设备的另一示意性框图。
[0126]图31是根据本发明实施例的用户设备的再一示意性框图。
[0127]图32是根据本发明实施例的用户设备的再一示意性框图。
[0128]图33是根据本发明实施例的发布内容的装置的示意性框图。
[0129]图34是根据本发明实施例的发布内容的装置的另一示意性框图。
[0130]图35是根据本发明再一实施例的路由器的示意性框图。
[0131]图36是根据本发明再一实施例的路由器的示意性框图。
[0132]图37是根据本发明再一实施例的路由器的另一示意性框图。
[0133]图38是根据本发明另一实施例的建立路由表的装置的示意性框图。
[0134]图39是根据本发明另一实施例的用户设备的示意性框图。
[0135]图40是根据本发明另一实施例的发布内容的装置的示意性框图。【具体实施方式】
[0136]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0137]应理解,在本发明实施例中,用户设备(User Equipment,简称为“UE”)可称之为终端(Terminal )、移动台(Mobile Station,简称为 “MS”)、移动终端(Mobile Terminal)等,该用户设备可以经无线接入网(Radio AccessNetwork,简称为“RAN”)与一个或多个核心网进行通信,例如,用户设备可以是移动电话(或称为“蜂窝”电话)、具有移动终端的计算机等,例如,用户设备还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语音和/或数据。还应理解,本发明实施例中的技术方案可应用于各种以信息为中心的网络体系。
[0138]图1是本发明实施例的路由转发的方法100的示意性流程图,图1的方法可以由路由节点执行,为了便于描述,下面将执行方法100的路由节点称为本节点。如图1所示,方法100包括:
[0139]S110,接收内容请求包,该内容请求包携带请求内容的内容名和该请求内容的容器信息,该请求内容的容器信息包括用于标识存储该请求内容的容器的容器标识;
[0140]S120,确定转发信息表FIB中是否存在与该请求内容的内容名匹配的转发表项;
[0141]S130,当该FIB中不存在与该请求内容的内容名匹配的转发表项时,确定该FIB中是否存在与该请求内容的容器信息中的容器标识匹配的转发表项,该FIB中的转发表项包括预设的容器标识以及与该预设的容器标识对应的接口 ;
[0142]S140,当该FIB中存在与该请求内容的容器信息中的容器标识匹配的转发表项时,根据该匹配的转发表项中的接口,发送该内容请求包。
[0143]因此,本发明实施例的路由转发的方法,通过在内容名的基础上增加内容的容器信息以扩展ICN系统中的内容的属性,能够减少路由转发对内容名的依赖,从而可能减少路由表中的路由表项,为解决由内容名引起的路由扩展性和移动性等问题提供可能性。
[0144]在本发明实施例中,容器是用于存储一组内容的存储空间,其中,该一组内容可以是一个内容或多个内容。例如,一个国家的整个网络可以看成是一个国家级的容器,该容器是位于该国网络内的所有内容的存储空间;类似地,一个省的整个网络可看成是一个省级的容器,该省级容器是位于该省网络内的所有内容的存储空间。此外,公司或组织的整个网络也可看成是位于该公司或组织的网络内所有内容的存储空间,移动设备,如飞机、火车或轮船等的网络可以看成是该移动设备网络内所有内容的存储空间,手机、主机或其他存储内容的电子设备的网络也可以看成该网络内所有内容的存储空间,本发明实施例不限于此。相对应的,容器的容器标识可以是任意内容标识前缀,如fanlingyuan.com/blog,也可以是公司或组织,如:huawe1.com、tsinghua.edu,还可以是移动网络,如飞机、火车、轮船,如airchina/cal314,还可以是手机、主机或其它存储内容的电子设备,如chinamobile/fanlingyuan,还可以是网络域,如cn、cn/gd、cn/sd,等等。一个容器可以对应一个容器标识,也可以对应两个以上容器标识,本发明实施例对此不作限定,但为了便于描述,以下均以容器与容器标识一一对应为例进行说明,并且以容器标识指代容器。[0145]此外,一个容器可以在拓扑关系上包括另一个容器,例如,一个省级网络是国家网络的一部分,因此,可认为该国家容器在拓扑关系上包括该省级容器。容器还可以包括接入容器,接入容器为在拓扑关系上包括另一容器,且存在将该内容请求包路由到该另一容器的转发表项的容器。也就是说,一个容器的接入容器是在拓扑关系上包括该容器且存在将内容请求包路由到该容器的容器。具体地,当容器B包括容器A,且容器B中存在将该内容请求包路由到容器A的转发表项,则定义容器B是容器A的接入容器,容器B为容器A提供接入服务。一个容器可以为一个或多个其它容器提供接入服务,一个或多个其它容器可以为同一个容器提供接入服务,换言之,一个容器可以是一个或多个其它容器的接入容器,一个或多个其它容器可以是同一个容器的接入容器。
[0146]在网络架构中,容器包括至少一个路由节点,该至少一个路由节点中的一个或多个路由节点负责内容请求包的转发,该容器称为该至少一个路由节点归属的容器。通过容器的接入容器中包括的至少一个路由节点中的一个或多个路由节点,可以将该内容请求包路由到达该容器。例如,国家级容器“cn”在拓扑关系上包括省级容器“cn/gd”和“cn/sd”,且通过国家级容器“cn”中包括的一个或多个路由节点,可以将内容请求包路由到达省级容器“cn/gd”和“cn/sd”等,则国家级容器“cn”为省级容器“cn/gd”和“cn/sd”等提供接入服务;容器huawe1.com/cn”和“huawe1.com/us”在拓扑关系上包括容器“huawe1.com”,且通过容器“huawe1.com/cn”和“huawe1.com/us”中包括的一个或多个路由节点,可以将内容请求包路由到达容器“huawe1.com”,则容器“huawe1.com/cn”和“huawe1.com/us”为容器“huawe1.com”提供接入服务,但本发明实施例不限于此。
[0147]在SllO中,本节点接收到的内容请求包可能是由其它路由节点发送的,也可能是由用户设备发送的,本发明实施例对此不作限定。该内容请求包携带的该请求内容的容器信息中包括的容器标识对应的容器组成该请求内容的容器集,该容器集可以包括一个或多个容器。可选地,该容器集中的一个或多个容器是一个或多个第一其它容器的接入容器;和/或一个或多个第二其它容器为该容器的接入容器,这里的“第一其他容器”以及“第二其他容器”可以是容器集中的容器,也可以是不在容器集中的其他容器。
[0148]具体地,该容器集可以包括该请求内容的归属容器,该请求内容的归属容器是能够直接路由到该请求内容的容器,其中,该请求内容的归属容器中存在该请求内容的内容名对应的转发表项,该请求内容的内容名与该请求内容的归属容器相对应。该请求内容可以有一个或多个归属容器,相应地,该请求内容的内容名可以对应一个或多个归属容器,该请求内容能够在该请求内容的内容名对应的归属容器中被路由到。
[0149]该请求内容的归属容器的接入容器也可以看成是存储该请求内容的容器,其中,该请求内容能够通过该归属容器的接入容器被间接路由到。可选地,在SllO中,该容器集还可以包括该请求内容的归属容器的接入容器,或进一步包括该接入容器的接入容器,通过该归属容器的接入容器或通过该接入容器的接入容器中包括的一个或多个路由节点,该请求内容能够通过该接入容器被路由到。例如,内容“fanlingyuan.com/myson/2012/June01/happy.jpg” 的归属容器为 “chinamobile/fanlingyuan”,而容器“chinamobile/fanlingyuan”的接入容器为“cloudsrv.com”,在这种情形下,该内容可以通过容器“cloudsrv.com”中包括的一个或多个路由节点到达容器“chinamobile/fanlingyuan ”,并通过容器“ chinamobile/fanlingyuan ”中包括的一个或多个路由节点,在容器“chinamobile/fanlingyuan”中被路由到。类似地,从容器的角度来看,容器存储的内容包括在该容器中可以直接路由到的内容,以及包括可以通过该容器被间接路由到的内容。可选地,该容器集还可以包括存储该内容的所有容器,本发明实施例不限于此。
[0150]然而,有些容器的位置可能经常变化,如飞机或轮船等,相应地,这些容器的接入容器也会随之变化。当请求内容的容器集中包括这些容器的接入容器时,无法保证该容器集的持久性,也不能很好地支持内容的移动性。因此,当该容器集中的至少一个容器的接入容器经常变化时,内容发布商可以将该至少一个容器与其接入容器的映射关系注册到解析系统,当该至少一个容器的接入容器发生变化时,该至少一个容器可以将该变化通知解析系统,这样解析系统可以实时更新该至少一个容器与其接入容器的映射关系。同时,内容请求包中携带的请求内容的容器集中可以只包括该至少一个容器而不包括该至少一个容器的接入容器,以保证该请求内容的容器集的持久性。并且,内容请求包可以携带该至少一个容器的解析标识表示该至少一个容器可解析,这样,用户设备或路由节点就可以根据该解析标识,来查询解析系统对该至少一个容器进行解析,以获得该至少一个容器的接入容器。从而始终能够通过该至少一个容器的接入容器中的路由节点,路由到达该至少一个容器,从而很好地支持内容的移动性,但本发明实施例不限于此。
[0151]应理解,在本发明实施例中,该请求内容的归属容器和该归属容器的接入容器以及该接入容器的接入容器均可以看成是存储该请求内容的容器,然而,只有包括路由节点的容器才是该路由节点归属的容器,而该容器的接入容器并不是该路由节点归属的容器。例如,容器“cn/gd”包括路由节点R12和R13,容器“cn/gd”的接入容器“cn”包括路由节点Rl和R2,当一个内容的归属容器是“ cn/gd”时,容器“ cn ”和“ cn/gd”均为存储该内容的容器,而路由节点R12和R13归属的容器是“cn/gd”,但本发明实施例不限于此。
[0152]在SllO中,该请求内容的容器信息可以携带该容器集中每个容器的容器标识,可选地,该容器信息还可以包括与该容器标识对应的解析标识,该解析标识用于标识与该容器标识对应的容器是否可解析。具体地,该内容请求包可以携带可解析容器的解析标识,而默认缺省该解析标识的容器不可解析。可选地,该内容请求包也可以携带所有容器的解析标识,并使用不同的解析标识表示容器可解析或不可解析,例如,解析标识“resolvable=yes”表示该容器可解析,而“resolvable=no”表示该容器不可解析,但本发明实施例不限于此。
[0153]请求内容的内容名和该请求内容的容器集之间的关系可以用树来表示。如图2 (a)所示,该请求内容的内容名作为树的根节点,该请求内容的容器集中的容器作为该根节点的子孙,其中,根节点的子节点代表该请求内容的归属容器,树中任意节点代表的容器X与其子节点代表的容器Y的关系为容器Y是容器X的接入容器。例如,在图2(a)中,容器A、容器B和容器C是该请求内容的归属容器,容器A的接入容器为容器D,容器B的接入容器为容器D和容器E,值得注意的是,由于容器D同时是容器A和容器B的接入容器,因此在该树型结构中出现两个容器D。
[0154]相对应地,该请求内容的内容名和该请求内容的容器信息之间的关系也可以用上述树型结构来表示。具体地,请求内容的内容名和该请求内容的容器信息形成以该请求内容的内容名为根节点的树,该根节点的子节点代表该请求内容的归属容器的容器信息,第一节点代表的容器信息对应的容器为该第一节点的父节点代表的容器信息对应的容器的接入容器,该第一节点是该树中除根节点和该根节点的子节点外的其它节点。
[0155]从图2(a)可以看出,树的表示方法简单明了,然而,当两个以上的容器具有相同的接入容器时,树的表示方法会出现重复的节点,如图2(a)中的容器D。当这种重复大量存在时,树的表示方法存在效率不高的问题。可选地,为了避免重复节点,请求内容的内容名和该请求内容的容器集之间的关系还可以用有向无环图表示。如图2(b)所示,请求内容的内容名作为有向无环图的入口顶点,该请求内容的容器集中的容器作为该有向无环图的其它顶点,其中,由入口顶点发出的所有有向边的终点代表该内容的归属容器,从有向无环图内除入口顶点之外的其它顶点发出的有向边的终点代表的容器是该有向边的起点代表的容器的接入容器,例如,图2(b)中从容器B发出的两条有向边的终点指向容器D和容器E,表示容器B的接入容器为容器D和容器E。
[0156]相对应地,请求内容的内容名和该请求内容的容器信息之间也可以用有向无环图来表示,具体地,请求内容的内容名和该请求内容的容器信息形成以该请求内容的内容名为入口顶点的有向无环图,从该入口顶点发起的有向边的终点代表该请求内容的归属容器的容器信息,该有向无环图中的第二顶点代表的容器信息对应的容器是第一顶点代表的容器信息对应的容器的接入容器,该第一顶点是该有向无环图中除入口顶点外的其它顶点,该第二顶点是从该第一顶点发起的有向边的终点。
[0157]可选地,还可以用其它方法表示请求内容的内容名与该请求内容的容器集之间或请求内容的内容名与该请求内容的容器信息之间的关系,本发明实施例不限于此。
[0158]当请求内容的内容名和该请求内容的容器信息之间的关系用树表示时,在内容请求包中,采用树的深度遍历将该请求内容的内容名和该请求内容的容器信息排成序列,且该树中的任意两个节点之间以分隔符分隔,其中,该树的第η层节点与该第η层节点的前一个节点以第η-1分割符分隔,1〈η Sm,m为该树的深度。具体地,可以采用树的深度遍历将请求内容的内容名和该请求内容的容器信息在H中排成序列,节点之间采用“I”作为分隔符;其中根节点与其孩子节点分隔符“ I ”数量为I;随着树的深度的增加,分隔符“ I ” 的数量也逐级增加。例如,Namel= {huawe1.com/products/index, html huawe1.com/cn I huawe1.com/us | cn/gd}表不内容 “huawe1.com/products/index, html ” 的归属容器是“huawe1.com/cn”,“huawe1.com/us”和“cn/gd”,这三个容器均为该内容名的孩子节点。又如,Name2= {fanlingyuan.com/blog/2012/June01/main.html |hosting.com| | cn/gd| cn/bei j jing | | us/ca | cloudsrv.com}表不内容 “fanlingyuan.com/blog/2012/June01/main.html”的归属容器为“hosting, com”和“cloudsrv.com”,而“hosting, com”在全球有三个数据中心,分别位于容器“cn/gd” “cn/bei j jing” 和 “us/ca” 中,即 “cn/gd” “cn/bei j jing”和“us/ca”这三个容器为“hosting, com”提供接入服务,这三个容器是容器“hosting, com”的孩子节点。
[0159]可选地,还有很多能把树型结构表示成文本形式的方法,例如XML格式或者用“ O ”来取代“ I ”作为分割符等,本发明不限于一种具体的表示方法。
[0160]可选地,当采用有向无环图表示请求内容的内容名和该请求内容的容器信息之间的关系时,在内容请求包中,将该有向无环图的入口顶点所代表的内容名和该有向无环图中入口顶点外的其它顶点所代表的该请求内容的容器信息排成序列,该有向无环图的所有顶点之间均以分隔符分隔,并在该有向无环图的所有作为有向边的起点的顶点后携带接入参数,该接入参数用于指示从该顶点发起的有向边的终点在该序列中的序号。
[0161]具体地,可以将请求内容的内容名和该请求内容的容器信息在{}中排成序列,其中请求内容的内容名排在序列的第一位,请求内容的容器信息排列在内容名之后;请求内容的内容名和各容器的容器信息之间采用“I”作为分隔符;分隔符“I”数量固定为I,并在请求内容的内容名和该请求内容的容器信息后增加指向其它顶点的参数,如,in=nl,n2,...其中nl,n2为下一个顶点在序列的中的序号,其中,请求内容的内容名在序列中的序号为O。如果在容器信息后没有携带in参数,则默认该容器信息为出口顶点° 例如,Namel={fanlingyuan.com/blog/2012/June01/main.html; in=l, 2 |hosting.com;in=3, 4|cloudsrv.com;in=4, 5|cn/gd|cn/beijing|us/ca},内容“fanlingyuan.com/blog/2012/June01/main.html” 后携带参数“in=l, 2”,其中 I 和 2 分别是容器“hosting.com”和“cloudsrv.com”在容器序列中的序号,表示这两个容器是该内容的归属容器。而“hosting, com” 后携带参数 “in=3, 4” 表示 “hosting, com” 的接入容器是 “cn/gd” 和 “cn/bei jing”, “cloudsrv.com” 携带参数“in=4, 5” 表不 “cloudsrv.com” 的接入容器是 “cn/bei jing” 和 “us/ca”,其中 “cn/bei jing” 同时为 “hosting, com” 和 “cloudsrv.com” 提供接入服务,但本发明实施例不限于此。
[0162]在S120中,本节点将该请求内容的内容名与本节点的FIB中的转发表项匹配,在S130中,当FIB中不存在与该请求内容的内容名匹配的转发表项时,本节点可以将该请求内容的容器集中的每个容器的容器标识按照一定优先策略,依次与FIB中的转发表项进行匹配。这里的匹配均指最长匹配。当FIB中存在与该请求内容的容器集中的某一容器的容器标识匹配的转发表项时,本节点可以根据该匹配的转发表项中的接口,发送该内容请求包,并停止匹配过程。可选地,本节点也可以继续执行匹配过程,直到将容器集中的所有容器的容器标识与FIB中的预设的容器标识匹配完毕,在这种情况下,可能在FIB中存在与有两个以上容器的容器标识匹配的转发表项,本节点可以分别根据该匹配的转发表项中的接口,发送该内容请求包,以增加路由到该请求内容的概率。在实际应用中,具体的匹配方法可以根据需要进行动态配置,本发明实施例不限于此。
[0163]可选地,如图3所示,在方法100中,S130,该确定该FIB中是否存在与该请求内容的容器信息中的容器标识匹配的转发表项,包括:
[0164]S131,根据该解析标识,解析获得该请求内容的所有可解析容器的接入容器的容器标识;
[0165]S132,将该请求内容的容器信息中的容器标识以及该请求内容的所有可解析容器的接入容器的容器标识与该FIB中的预设的容器标识进行匹配,以确定FIB中是否存在与该请求内容的容器信息中的容器标识以及该接入容器的容器标识匹配的转发表项。
[0166]当本节点根据该容器集中容器的解析标识,确定该容器是可解析容器时,可以通过查询解析系统获得该容器的接入容器,并进一步判断该接入容器是否为可解析容器,当该接入容器仍为可解析容器时,继续查询解析系统获得该接入容器的接入容器,如此进行迭代解析过程,直到解析得到的接入容器不可解析,至此该完全解析过程结束,本节点获得了该请求内容的所有可解析容器的接入容器。然后本节点将该请求内容的容器信息中的容器标识,以及该所有可解析容器的接入容器的容器标识,按照一定优先策略依次与FIB中包括的预设的容器标识匹配。[0167]下面将以内容请求包中用树表示内容名和容器信息之间的关系、以及该内容请求包只携带可解析容器的解析标识为例,对步骤S131和S132进行详细描述。假设本节点接收到的内容请求包的初始形式如下:Name= {fanlingyuan.com/blog/2012/June01/main.html I chinamobile/fanlingyuan;resolvable=yes}。根据角军析标识 “resolvable=yes,,,本节点可以获知容器“chinamobile/fanlingyuan”可解析,于是,本节点向解析系统查询,得到其接入容器“airchina/cal314;resolvable=yes” 和 “cloudsrv.com”,由于容器“airchina/cal314”依然可以解析,则本节点继续向解析系统查询,得到其接入容器为“cn/bei jing”,由于“cn/bei jing”不可解析,该完全解析过程执行完毕,本节点得到该请求内容的所有可解析容器“chinamobile/fanlingyuan”、“airchina/cal314”,以及该所有可解析容器的接入容器“airchina/cal314”、“cloudsrv.com” 和 “airchina/cal314”。然后,本节点将该请求内容的容器信息中的容器标识“ chinamobile/fanlingyuan ”,以及该请求内容的所有可解析容器的接入容器的容器标识“airchina/cal314”、“cloudsrv.com”和“airchina/cal314”,依次与FIB的转发表项进行匹配。
[0168]可选地,本节点还可以将通过解析系统获得的该所有可解析容器的接入容器的容器信息添加到该内容请求包中,以供后续的路由节点使用,这样后续的路由节点就可以不执行解析过程而直接将该请求内容的容器信息中的容器标识与FIB中的转发表项进行匹配,因此,可选地,该方法100还包括:
[0169]S145,将该解析获得的该所有可解析容器的接入容器的容器信息添加到该请求内容的容器信息中。
[0170]例如,本节点可以将上述例子中解析得到的接入容器插入内容请求包的容器信息中,从而得到最终的内容请求包:Name= {fanlingyuan.com/blog/2012/JuneOl/main.html|chinamobile/fanlingyuan;resolvable=yes| airchina/cal314;resolvable=yes cn/beijing |cloudsrv.com}。
[0171]此外,可选地,对于通过解析系统获得的接入容器来说,解析得到的该接入容器的容器信息还可以包括缓冲性和老化时间(Time To Live, TTL),来表示用户设备或网络侧可以将该解析结果缓存且对该解析结果缓存的时间为老化时间,以便与其它用户设备和路由节点共享。这里的网络侧可以包括本节点,也可以包括其他路由节点,本发明实施例不限于此。其中,可缓存的接入容器可以通过“cachabIe=yes"和“TTL=T”来表示,其中,T表示本节点对该解析结果的缓存时间,即本节点对可解析容器与该接入容器的映射关系缓存的时间为T,例如“TTL=lhour”表示该解析结果的缓存时间为一小时,可选地,T也可以设置为其它时间,T也可以用分或秒作为单位,本发明实施例对此不作限定。不可缓存的容器可以通过缓冲性缺省和“TTL=0”来表示。可选地,缓存性和老化时间也可以采用其它方式表示,本发明实施例不限于此。
[0172]可选地,在本发明实施例中,本节点也可以首先将该内容请求包携带的容器集中的容器标识与FIB中的转发表项进行匹配,当该FIB中不存在与该容器集中的任意容器标识匹配的转发表项时,本节点可以执行上述完全解析和匹配过程。具体地,当该FIB中不存在与该内容请求包携带的容器标识匹配的转发表项时,根据该内容请求包携带的解析标识,确定可解析容器的接入容器的容器信息;当该可解析容器的接入容器可解析时,对该可解析容器的接入容器进行解析;当该解析获得的接入容器可解析时,对该解析获得的接入容器进行进一步解析,直到该进一步解析获得的接入容器不可解析,以获得该请求内容的所有可解析容器的接入容器的容器标识;将该所有可解析容器的接入容器的容器标识与该FIB中预设的容器标识进行匹配,以确定该FIB中是否存在与该所有可解析容器的接入容器的容器标识中的至少一个容器标识匹配的转发表项;当该FIB中存在与该所有可解析容器的接入容器的容器标识中的至少一个容器标识匹配的转发表项时,根据该匹配的转发表项中的端口,发送该内容请求包。
[0173]可选地,本节点也可以只对该请求内容的部分可解析容器进行解析,以获得其接入容器,然后将该请求内容的容器信息中的容器标识和该部分解析获得的接入容器的容器标识与FIB中的转发表项匹配。当FIB中存在与上述容器标识匹配的转发表项时,本节点可以根据匹配的转发表项中的接口,发送该内容请求包。可选地,当FIB中不存在与上述容器标识匹配的转发表项时,本节点可以对上述部分没有被解析的可解析容器进行解析,并将解析获得的接入容器与FIB中的转发表项匹配,但本发明实施例不限于此。
[0174]因此,本发明实施例的路由转发的方法,通过在内容名的基础上增加内容的容器信息以扩展ICN系统中的内容的属性,能够减少路由转发对内容名的依赖,从而可能减少路由表中的路由表项,为解决由内容名引起的路由扩展性和移动性等问题提供可能性。
[0175]上述实施例中,本节点先对该请求内容的容器集进行完全解析以获得该请求内容的所有可解析容器的接入容器,然后执行匹配过程。可选地,本节点也可以先执行匹配过程,当该容器集中的所有容器在FIB中均不存在与之匹配的转发表项时,本节点对容器集中的可解析容器进行解析。因此,可选地,如图4所示,作为另一实施例,该方法100还包括:
[0176]S150,当该FIB中不存在与该请求内容的容器信息中的容器标识匹配的转发表项时,根据该解析标识,解析获得该容器的接入容器的容器标识;
[0177]S155,将该解析获得的接入容器的容器标识与该FIB中的预设的容器标识进行匹配,以确定该FIB中是否存在与该解析获得的接入容器的容器标识匹配的转发表项。
[0178]其中,流程S150、S155可以循环执行。即,当FIB中均不存在与该容器集中的所有容器匹配的转发表项时,本节点根据容器信息中的解析标识,确定该容器集中的可解析容器,将该解析获得的接入容器的容器标识与该FIB中的预设的容器标识进行匹配,以确定该FIB中是否存在与该解析获得的接入容器的容器标识匹配的转发表项;当该FIB中不存在与该解析获得的接入容器的容器标识匹配的转发表项且该解析获得的接入容器可解析时,对该解析获得的接入容器进行进一步解析,直到该进一步解析获得的接入容器不可解析或该FIB中存在与该进一步解析获得的接入容器的容器标识匹配的转发表项;当该FIB中存在与该解析或该进一步解析获得的接入容器的容器标识匹配的转发表项时,根据该匹配的转发表项中的端口,发送该内容请求包。具体地,本节点首先将内容请求包携带的容器集中的每个容器的容器标识依次与FIB中的转发表项进行匹配。当FIB中均不存在与该容器集中的所有容器匹配的转发表项时,本节点根据容器信息中的解析标识,确定该容器集中的可解析容器,并通过查询解析系统获得该解析容器的接入容器;然后,本节点将该接入容器与FIB中的转发表项进行匹配,当FIB中仍不存在与该接入容器匹配的转发表项时,本节点根据该接入容器的解析标识确定该接入容器是否可解析,并在该接入容器可解析时对其继续进行解析,直到在FIB中找到与该解析获得的接入容器匹配的转发表项,或该解析获得的接入容器不可解析。
[0179]可选地,作为另一实施例,该方法100还包括:
[0180]S160,将该解析获得的接入容器的容器信息添加到该请求内容的容器信息中。
[0181]其中,本节点可以将上述每次解析获得的接入容器的容器信息均添加到该请求内容的容器信息中。
[0182]下面将以内容请求包中用有向无环图表示内容名和容器信息之间的关系、以及该内容请求包只携带可解析容器的解析标识为例,详细描述流程S150、S155和S160的循环执行过程。本节点接收到的内容请求包的初始形式为:Name= {fanlingyuan.com/blog/2012/June01/main.html;in=l|chinamobile/fanlingyuan;resolvable=yes},本节点首先将容器标识“chinamobile/fanlingyuan”与FIB中的转发表项进行匹配,结果表明在FIB中也没有与该容器标识匹配的转发表项。而根据解析标识“res0lvable=yes”,本节点发现容器“chinamobile/fanlingyuan”可解析,于是,本节点查询解析系统对该容器进行解析,得到其接入容器“airchina/cal314;resolvable=yes” 和 “cloudsrv.com”,本节点可以将其插入该请求内容的容器信息,结果为Name= {fanlingyuan.com/blog/2012/JuneOl/main.html;in=l|chinamobile/fanlingyuan;resolvable=yes;in=2, 3|airchina/cal314;resolvable=yes | cloudsrv.com}。并且,本节点依次将容器标识 “airchina/cal314”和“cloudsrv.com”与FIB中的转发表项进行匹配,匹配结果表明在FIB中仍没有与这两个容器标识匹配的转发表项,而容器“airchina/cal314”可解析,于是本节点继续对容器“airchina/cal314”进行解析,得到其接入容器“cn/bei jing”,本节点将其插入请求内容的容器信息,内容请求包变为:Name= {fanlingyuan.com/blog/2012/June01/main.html;in=l|chinamobile/fanlingyuan;resolvable=yes;in=2, 3|airchina/cal314;resolvable=yes; in=4 | cloudsrv.com | cn/bei jing},并将容器标识“cn/bei jing” 与 FIB 中的转发表项进行匹配。由于容器“cn/beijing”不可解析,因此,无论在FIB中是否存在与该容器标识匹配的转发表项,上述循环过程均结束,而进入下一步骤。
[0183]可选地,在本发明实施例中,本节点也可以对内容请求包携带的可解析容器按照树的深度遍历进行迭代解析和匹配,具体地,本节点可以对内容请求包携带的某一可解析容器进行迭代解析和匹配,直到该迭代解析得到的接入容器不可解析或该FIB中存在与该迭代解析得到的接入容器匹配的转发表项;当该迭代解析得到的接入容器不可解析且该FIB中不存在与该迭代解析得到的接入容器匹配的转发表项时,本节点可以对内容请求包携带的另一可解析容器进行迭代解析和匹配过程,但本发明实施例不限于此。
[0184]因此,本发明实施例的路由转发的方法,通过在内容名的基础上增加内容的容器信息以扩展ICN系统中的内容的属性,能够减少路由转发对内容名的依赖,从而可能减少路由表中的路由表项,为解决由内容名引起的路由扩展性和移动性等问题提供可能性。此夕卜,在多数情况下,本节点只需进行部分解析就可能获得在FIB中存在与接入容器匹配的转发表项,因此,本实施例的转发流程与上述实施例中的先完全解析后再进行匹配的实施例相比,可以减少对容器的解析次数以及对解析系统的查询次数。
[0185]在S120中,本节点将该请求内容的内容名与FIB中的转发表项进行匹配。可选地,FIB中的转发表项可以包括内容名前缀和与该内容名前缀对应的接口,相对应地,S120包括:[0186]S121,根据该请求内容的内容名的前缀与该FIB中的转发表项中的内容名前缀是否匹配,确定该FIB中是否存在与该请求内容的内容名匹配的转发表项;
[0187]该方法100还包括:
[0188]S165,当确定该FIB中存在与该请求内容的内容名匹配的转发表项时,根据该匹配的转发表项中的接口,发送该内容请求包。
[0189]可选地,本节点还可以通过CS对该请求内容进行缓存,以便当该路由节点接收到对相同的内容的请求时,可以直接将CS中存储的该请求内容发送至该内容请求包的发送端,从而使得该内容请求过程更简单快速。因此,可选地,作为另一实施例,如图5所示,该方法100还包括:
[0190]S170,在该确定FIB中是否存在与该请求内容的内容名匹配的转发表项之前,确定内容存储表CS中是否存在与该请求内容的内容名匹配的内容;
[0191]S175,当该CS中存在与该请求内容的内容名匹配的内容时,将该匹配的内容发送至该内容请求包的发送端;
[0192]S130a,当该CS中不存在与该请求内容的内容名匹配的内容时,执行该确定FIB中是否存在与该请求内容的内容名匹配的转发表项的步骤。
[0193]因此,本发明实施例的路由转发的方法,通过在内容名的基础上增加内容的容器信息以扩展ICN系统中的内容的属性,能够减少路由转发对内容名的依赖,从而可能减少路由表中的路由表项,为解决由内容名引起的路由扩展性和移动性等问题提供可能性。
[0194]可选地,本节点还可以兼容现有技术中的NDN的路由转发方法,通过在驻留信息表(Pending Information Table,简称为“PIT”)中存储该内容请求包的发送端的路由信息,并且相同的内容请求只查找一次,在返回该请求内容时通过PIT中的信息确定该请求内容的下一跳接口,这样既可避免对相同的请求内容的重复查找,又可以确定返回的请求内容的下一跳接口。因此,可选地,作为另一实施例,如图6所示,该方法100还包括:
[0195]S180,当该CS中不存在与该请求内容的内容名匹配的内容时,确定驻留信息表PIT中是否存在与该请求内容的内容名匹配的PIT表项;
[0196]S185,当该PIT中存在与该请求内容的内容名匹配的PIT表项时,将该内容请求包的发送端对应的接口添加到该匹配的pit表项;
[0197]S130b,当该PIT中不存在与该请求内容的内容名匹配的PIT表项时,执行该确定FIB中是否存在与该请求内容的内容名匹配的转发表项的步骤。
[0198]下面结合图7的例子详细描述本发明实施例的路由转发的方法。本节点接收到内容请求包,该内容请求包携带请求内容的内容名和容器信息,首先本节点执行步骤①,该CS中的内容表项可以包括预设的内容名和与该预设的内容名对应的内容,本节点可以将该请求内容的内容名与CS中的预设的内容名进行匹配,以确定该CS中是否存在与该请求内容的内容名匹配的内容;当CS中不存在与之匹配的内容时,本节点执行步骤②,PIT中的PIT表项可以包括内容名前缀和与该内容名前缀对应的请求接口,该请求接口表示携带以该内容名前缀为前缀的内容名的内容请求包的发送端对应的接口,本节点将该请求内容的内容名的前缀与pit表项中的内容名前缀进行匹配,以确定该PIT中是否存在与该请求内容的内容名匹配的PIT表项;当PIT中不存在与该请求内容的内容名匹配的PIT表项时,本节点执行步骤③,该FIB的转发表项包括内容名前缀和与该内容名前缀对应的接口,或FIB的转发表项包括预设的容器标识和与该预设的容器标识对应的接口,本节点将该请求内容的内容名的前缀与转发表项中的内容名前缀进行匹配,以确定在FIB中是否存在与该请求内容的内容名匹配的转发表项;当该FIB中不存在与该请求内容的内容名匹配的转发表项时,本节点执行步骤④和⑤,对该请求内容的容器集进行完全解析,获得该请求内容的所有可解析容器和该所有可解析容器的接入容器,然后本节点执行步骤⑥,将该请求内容的容器集中的容器的容器标识和该所有可解析容器的接入容器的容器标识,按照一定的优先策略,依次查找匹配FIB中的转发表项。当存在至少一个容器标识在FIB中存在与之匹配的转发表项时,根据该匹配的转发表项中的接口转发该内容请求包,否则,本节点将该内容请求包丢弃或根据默认接口发送该内容请求包,对该内容请求包的路由转发流程至此结束。
[0199]因此,本发明实施例的路由转发的方法,通过在内容名的基础上增加内容的容器信息以扩展ICN系统中的内容的属性,能够减少路由转发对内容名的依赖,从而可能减少路由表中的路由表项,为解决由内容名引起的路由扩展性和移动性等问题提供可能性。
[0200]可选地,可选地,作为另一实施例,该方法100还包括:
[0201]S190,当该FIB中不存在与该请求内容的容器信息中的容器标识匹配的转发表项时,根据默认接口发送该内容请求包,或将该内容请求包丢弃。
[0202]当本节点执行上述实施例的S132后执行S190,则本节点在该FIB中不存在与该请求内容的容器信息中的容器标识以及与该请求内容的所有可解析容器的接入容器的容器信息匹配的转发表项;而当本节点执行上述实施例的S155之后执行S190,则本节点在该FIB中不存在与该请求内容的容器信息中的容器标识匹配的转发表项,且解析获得的接入容器不可解析时,根据默认接口发送该内容请求包,或将该内容请求包丢弃。
[0203]因此,本发明实施例的路由转发的方法,通过在内容名的基础上增加内容的容器信息以扩展ICN系统中的内容的属性,能够减少路由转发对内容名的依赖,从而可能减少路由表中的路由表项,为解决由内容名引起的路由扩展性和移动性等问题提供可能性。
[0204]应理解,在本发明实施例中,请求内容的内容名和请求内容的容器信息中的容器标识与FIB的转发表项的匹配均为最长匹配,而请求内容的内容名与CS的匹配以及该请求内容的内容名与PIT的匹配可以是最长匹配,也可以是精确匹配,本发明实施例对此不作限定。此外,请求内容的容器信息只是用于在请求内容的内容名匹配FIB失败,或匹配CS和FIB失败,或匹配CS、PIT以及FIB均失败时,匹配FIB的转发表项以确定该内容请求包的转发路由,因此,容器信息只是起辅助路由的作用。在一些使用请求内容的内容名就可以找到该请求内容的情况下,内容请求包可以只携带请求内容的内容名,从而保留NDN等ICN系统直接以内容名进行路由的便利性。
[0205]此外,在本发明实施例中,在家庭网络,企业网,Adhoc等本地路由的场景下,解析系统的介入也不是必需的。例如,在家庭内的无线网络中,手机中存储内容名为 “fanlingyuan.com/my son/2012/JuneO 1/happy, jpg” 的内容,该内容名的前缀“fanlingyuan.com/myson”和与其对应的接口被保存在家庭内部的无线路由节点的FIB中,当电脑端用户想获取该内容时,向网络端发送内容请求包,形式如下:{fanlingyuan.com/myson/2012/JuneO1/happy, jpg|chinamobile/fanlingyuan;resolvable=yes},虽然该内容请求包携带了 一个可解析容器的容器信息,但由于该请求内容的内容名可以与无线路由节点的FIB中的“fanlingyuan.com/myson”匹配,因此可以根据该匹配的转发表项中的接口发送该内容请求包,而不需要对容器进行匹配,也不需要对容器进行解析,因此,在这种情况下,可以不对可解析容器进行解析,内容请求包也可以只携带请求内容的内容名而不携带该请求内容的容器信息。
[0206]此外,如图8所示,本发明实施例只对内容请求包的内容属性进行扩展,内容请求包携带请求内容的内容名和容器信息,并可以携带现有技术中的选择项和随机数;而数据包仍可以携带现有的NDN等ICN体系中的内容名,不携带任何容器的容器信息,且数据包仍然携带签名信息,例如,发布者ID、密钥定位和失效时间等。由于数据包中的签名仍然是基于数据包中完整的内容名、数据本身以及用户的私有密钥计算得到的,而内容请求包中携带的请求内容的容器信息不会出现在数据包中,也不会参与签名的计算,因此,不影响现有的NDN等ICN系统的安全性。
[0207]下面将结合图9至图11所示的具体例子对本发明实施例提供的路由转发的方法进行详细描述。
[0208]图9是根据本发明一个实施例的路由转发的方法200的示意性流程图,如图9所示,该方法200,包括:
[0209]S201、接收内容请求包。
[0210]该内容请求包可以只携带请求内容的内容名,也可以携带请求内容的内容名和该请求内容的容器信息,该请求内容的容器信息对应的容器组成容器集,该容器集包括至少一个容器。该请求内容的容器信息包括该容器集中每个容器的容器标识,可选地,该容器信息还可以包括该容器集中每个容器的解析标识,或包括该容器集中的可解析容器的解析标识,本发明实施例不限于此。
[0211]S202、将该请求内容的内容名与FIB的转发表项匹配。
[0212]具体地,可以将该请求内容的内容名的前缀与FIB的转发表项中的内容名前缀进行匹配,如果在FIB中存在与该请求内容的内容名的前缀匹配的内容名前缀,则执行S207,否则执行S203。
[0213]S203、判断该内容请求包是否携带该请求内容的容器信息。
[0214]如果该内容请求包携带该请求内容的容器信息,则执行S204,否则执行S208。
[0215]S204、根据容器信息中的解析标识,确定该容器集中是否存在可解析容器。
[0216]如果该容器集中存在至少一个可解析容器,则执行S205和S206,否则直接执行S206。
[0217]S205、完全解析该容器集中的可解析容器。
[0218]对容器集中的至少一个可解析容器进行完全解析,即首先获得该至少一个可解析容器的接入容器,并将该接入容器的容器信息添加到内容请求包中;然后判断该接入容器是否可解析,如果可解析,则继续对该接入容器进行解析,以获得该接入容器的接入容器,并将该接入容器的接入容器的容器信息添加到该请求内容的容器信息中,直到解析获得的接入容器不可解析,这样就获得了该请求内容的所有可解析容器的接入容器,以及更新后的请求内容的容器信息。
[0219]S206、将该请求内容的容器信息中的容器标识与FIB中的转发表项匹配。
[0220]具体地,将容器信息对应的容器集中的每个容器的容器标识按照一定策略,依次与FIB中的预设的容器标识进行匹配。其中,当执行S204后直接执行S206时,S206中的容器信息具体为本路由节点接收到的内容请求包中携带的该请求内容的容器信息,而当执行S205后执行S206时,S206中地容器信息具体为更新后的该请求内容的容器信息如果存在至少一个容器标识在FIB中有与之匹配的转发表项,则执行S207,否则执行S208。
[0221]S207、根据该匹配的转发表项中的接口,发送该内容请求包。
[0222]对该内容请求包的路由结束转发流程至此结束。应理解,虽然这里仍将发送的内容请求包称为该内容请求包,但由于此时的内容请求包中可能添加了上述完全解析过程中获得的可解析容器的接入容器的容器信息,因此,此时的内容请求包可能与步骤201中接收到的内容请求包有所差别。
[0223]S208、根据默认接口发送该内容请求包,或将该内容请求包丢弃。
[0224]因此,本发明实施例的路由转发的方法,通过在内容名的基础上增加内容的容器信息以扩展ICN系统中的内容的属性,能够减少路由转发对内容名的依赖,从而可能减少路由表中的路由表项,为解决由内容名引起的路由扩展性和移动性等问题提供可能性。
[0225]图10是根据本发明另一实施例的路由转发的方法300的示意性流程图,其中,步骤301?303与方法200中的步骤201?203的实现过程基本相同,此处不再赘述。现将后续涉及容器解析的步骤做如下详细介绍。
[0226]S304、将该容器集中每个容器的容器标识依次与FIB中的转发表项匹配。
[0227]如果存在一个以上容器的容器标识在FIB中有与之匹配的转发表项,则执行S307,否则执行S305。
[0228]S305、判断该容器集中是否存在可解析容器。
[0229]如果该容器集中存在至少一个可解析容器,则执行S306和S304,否则执行S308。
[0230]S306、对该至少一个可解析容器分别进行解析,以获得该至少一个可解析容器的接入容器。
[0231]执行S306之后执行S304,即将该至少一个可解析容器的接入容器的容器标识分别与FIB中的转发表项进行匹配,如果该至少一个可解析容器的接入容器的容器标识中存在一个或多个接入容器的容器标识在FIB中存在与之匹配的转发表项,则执行步骤S307,否则,继续执行S305和S306,如此往复循环执行流程S305、S306和S304,直到FIB中存在与该解析过程中获得的接入容器的容器标识匹配的转发表项,或该解析过程获得的接入容器不可解析。
[0232]S307、根据该匹配的转发表项中的接口,发送该内容请求包。
[0233]对该内容请求包的路由转发流程至此结束。
[0234]S308、根据默认接口发送该内容请求包,或将该内容请求包丢弃。
[0235]对该内容请求包的路由转发流程至此结束。
[0236]因此,本发明实施例的路由转发的方法,通过在内容名的基础上增加内容的容器信息以扩展ICN系统中的内容的属性,能够减少路由转发对内容名的依赖,从而可能减少路由表中的路由表项,为解决由内容名引起的路由扩展性和移动性等问题提供可能性。此夕卜,与上述实施例中的方法200相比,方法300在大多数情况下都可以减少对容器的解析次数,从而可以节省开销,加快对内容请求包的转发速度。
[0237]图11是根据本发明再一实施例的路由转发的方法400的示意性流程图。如图11所示,该方法400,包括:[0238]S401、接收到达的包。
[0239]该到达的包可以是内容请求包或数据包,其中,该内容请求包可以携带请求内容的内容名和容器信息,而数据包则只携带内容的内容名而不携带容器信息。
[0240]S402、判断接收到的包是数据包还是内容请求包。
[0241]如果该包是内容请求包,则执行S403 ;如果该包是数据包,则执行S414。
[0242]S403、将请求内容的内容名与CS中的内容进行匹配。
[0243]本节点将该请求内容的内容名与CS中预设的内容名进行匹配,以确定该CS中是否存在与该内容名匹配的内容。当在CS中存在与该请求内容的内容名匹配的内容时,则执行S404,本节点对该内容请求包的路由转发流程至此结束;否则执行S405。
[0244]S404、将CS中的请求内容发送至该内容请求包的发送端。
[0245]S405、将该请求内容的内容名与PIT中的PIT表项进行匹配。
[0246]本节点将该请求内容的内容名的前缀与PIT表项中的内容名前缀进行匹配,以确定PIT中是否存在与该请求内容的内容名匹配的PIT表项。如果在PIT中存在与该内容名匹配的PIT表项,说明已经存在对该请求内容的查找,则执行S408,对该内容请求包的路由转发流程至此结束,这样可以对相同的内容只查找一次,从而避免重复查找;否则执行S406。
[0247]S406,将请求内容的内容名与FIB中的转发表项匹配;
[0248]本节点将该请求内容的内容名的前缀与转发表项中的内容名前缀进行匹配,以确定在FIB中是否存在与该内容名匹配的转发表项,如果在FIB中存在与该内容名匹配的转发表项,则执行S407和S408,否则执行S409。
[0249]S407、根据该匹配的转发表项中的接口,发送该内容请求包。
[0250]S408、更新 PIT。
[0251]具体地,如果在执行S407后执行S408,则更新PIT具体为将该请求内容的内容名的前缀以及该内容请求包的发送端对应的接口添加到PIT表中,成为新的PIT表项;而如果在执行S405后执行S408,则更新PIT具体为将该内容请求包的发送端对应的接口添加到与该请求内容的内容名匹配的PIT表项中
[0252]S409、判断该内容请求包是否携带该请求内容的容器信息。
[0253]如果该内容请求包携带该请求内容的容器信息,则执行S410,否则执行S413。
[0254]S410、将该容器信息中的容器标识与FIB中的转发表项进行匹配。
[0255]本节点将该容器信息对应的容器集中每个容器的容器标识与转发表项中的预设的容器标识进行匹配,以确定FIB中是否存在与该容器信息中的容器标识匹配的转发表项。如果该容器集中存在至少一个容器在FIB中有与之匹配的转发表项,则执行S407和S408,否则执行S411。
[0256]S411、判断该请求内容的容器集中是否存在可解析容器。
[0257]该容器信息还可以包括容器的解析标识,本节点根据该解析标识,判断该容器集中是否存在可解析容器。如果该容器集中存在至少一个可解析容器,则执行S412和S410,否则执行S413。
[0258]S412、分别对该至少一个可解析容器进行解析,以获得该至少一个可解析容器的接入容器;[0259]然后执行S410,即将该至少一个可解析容器的接入容器的容器标识按照一定的优先策略依次查找匹配FIB中的转发表项。如果在FIB中也没有与该可至少一个可解析容器的接入容器的容器标识匹配的转发表项,则继续执行S411,步骤S410、S411和S412将如此循环执行,直到在FIB中查找得到与解析得到的接入容器的容器标识匹配的转发表项,或解析得到的接入容器不可解析,然后执行步骤S413。
[0260]S413、根据默认接口发送该内容请求包,或将该内容请求包丢弃。
[0261 ] 对该内容请求包的路由转发流程至此结束。
[0262]S414、将内容的内容名与PIT表的PIT表项匹配。
[0263]如果在PIT表中存在与该内容名匹配的PIT表项,则执行S416、S417和S418,否则执行S415。
[0264]S415、将该数据包丢弃。
[0265]对该数据包的路由转发流程至此结束。
[0266]S416、根据匹配的PIT表项中的接口发送该数据包。
[0267]S417、将该数据包保存到CS表。
[0268]这样本节点可以将该数据包中的内容进行缓存,使得本节点在该内容的缓存期间接收到对该数据包的内容的请求时,本节点可以直接返回该数据包中的内容,从而避免了对该数据包中的内容的再次查找。
[0269]S418、移除该匹配的PIT表项。
[0270]其中,步骤S416、S417和S418可以以任意的顺序执行,本发明实施例对这三个步骤的执行顺序不作限定,本节点对该数据包的转发流程至此结束。
[0271]应理解,上述过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0272]还应理解,图9至图11的例子是为了帮助本领域技术人员更好地理解本发明实施例,而非要限制本发明实施例的范围。本领域技术人员根据所给出的图9至图11的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
[0273]因此,本发明实施例的路由转发的方法,通过在内容名的基础上增加内容的容器信息以扩展ICN系统中的内容的属性,能够减少路由转发对内容名的依赖,从而可能减少路由表中的路由表项,为解决由内容名引起的路由扩展性和移动性等问题提供可能性。
[0274]从上述实施例可以看到,本发明实施例通过在内容名的基础上增加内容的容器信息以扩展ICN系统中的内容的属性,能够减少路由转发对内容名的依赖,从而可能解决由于内容名而造成的路由扩展问题。具体地,为了减少路由表中的路由表项,本发明实施例将所有容器分为三种类型:拓扑相关容器、拓扑无关大容器和拓扑无关小容器,并分别对上述三种不同类型的容器采取不同的路由策略。
[0275]首先,对拓扑相关容器采用逐级嵌套分级聚合的方法,其中,拓扑相关容器是与其它容器形成拓扑关系的容器,该拓扑关系包括:一个上级容器包括一个或多个下级容器,和/或一个下级容器被一个或多个上级容器所包括。具体地,形成拓扑关系的所有容器可以分成不同的级别,每个容器都处于某一特定的级别,当两个容器的级别相差一级时,级别较低的容器称为级别较高的容器的下级容器,而级别较高的容器称为该级别较低的容器的上级容器,该级别较低的容器可以由其上级容器为其提供接入服务,即该级别较高的容器是其下级容器的接入容器。应理解,这里的下级容器和上级容器是相对的,例如,容器A可以是容器B的下级容器,也可以是容器C的上级容器,但本发明实施例不限于此。
[0276]可选地,拓扑相关容器对应的容器标识可以具有能够反映该拓扑相关容器的级别的性质,从而表示该拓扑相关容器与其它容器之间形成的该拓扑关系。具体地,级别较低的容器的容器标识中可以包含其上级容器的容器标识,例如,市级容器深圳的容器标识“cn/gd/sz”中包含其上级容器广东的容器标识“cn/gd”,但本发明实施例不限于此。
[0277]如图12所示,整个中国网络就可以看成一个国家级的拓扑相关容器“cn”,“cn”里汇聚了省级的容器如广东省“cn/gd”,北京市“cn/beijing”,等等,而“cn/gd”又汇聚了下级拓扑相关容器如深圳“cn/gd/sz”等等,依此类推。类似地,美国网络也可以看成一个国家级容器“us”,容器“us”又包括下级拓扑相关容器“us/ca”。此外,大的ISP也可以按照拓扑容器分级聚合,如中国电信作为一个大的容器“ct”,其汇聚了“ct/gd”,“ct/sd”等省级容器,“ct/gd”又汇聚了“ct/gd/sz”等市级容器,本发明实施例不限于此。由于FIB表的最长匹配特性,美国这个容器“us”中,只需要一条到“cn”的路由就可以匹配所有以“cn”为前缀的容器,因此,可将如“cn”、“us”或“ct”等在拓扑关系中级别最高的拓扑相关容器作为全局容器,其路由可以作为全局路由进行扩散。其中,全局容器是可全局路由的容器,其路由作为全局路由是指所有路由节点的路由表中均有这些全局容器的路由表项。全局容器不存在接入容器。
[0278]可选地,根据实际部署的需要,除了上述在拓扑相关中处于最高级别的拓扑相关容器之外,一些级别较高的拓扑相关容器,如省级容器“cn/gd”、“cn/Sd”或“us/ca”等,也可以作为拓扑相关的全局容器,其路由可以作为全局路由进行扩散,但本发明实施例不限于此。本发明实施例将上述作为全局容器的拓扑相关容器称为拓扑相关的全局容器。
[0279]可选地,全局容器还可以包括拓扑无关的全局容器,该拓扑无关的全局容器包括拓扑无关大容器,拓扑无关大容器是指在现有网络中数量极少的访问量大的拓扑无关容器,如大ISP、大公司、大的门户网站,例如“sina.com”,“google, com”,“baidu.com”等,它们拥有高于普通容器千倍、万倍的访问量,它们可以作为拓扑无关的全局容器,其路由也可以作为全局路由进行扩散。
[0280]可选地,上述拓扑无关大容器也可以由级别较高的拓扑相关容器为其提供接入服务,因而可以将这些拓扑无关大容器作为其接入容器包括的路由节点的局域路由。但是将这些拓扑无关大容器作为全局容器可以大大提高全网的路由表的匹配效率,同时又能方便这些大公司自主灵活的调整路由,以便更好的提供多宿、负荷分担、Anycast等服务,此外,由于这些容器数量很少,不会使核心路由表的大小发生大的增长,但本发明实施例不限于此。
[0281]综上所述,本节点的路由表包括全局容器路由表项,该全局容器路由表项包括全局容器的容器标识以及与该全局容器的容器标识对应的第一接口,该第一接口是由本节点连接到达该全局容器的下一跳路由节点的接口,该全局容器是可全局路由的容器,该全局容器包括拓扑相关的全局容器和/或拓扑无关的全局容器。以图12中的容器“cn/gd/sz”中包括的路由节点R121为例,该路由节点的路由表中包括容器“cn”和“us”的路由表项,而由于路由节点R121需要通过路由节点R12才能到达容器“cn”的路由节点Rl和R2,以及到达容器“us”,因此,与容器标识“cn”和“us”对应的第一接口为R121连接R12的接口。[0282]对于上述拓扑相关的全局容器的下级容器,由上述拓扑相关的全局容器为其提供接入服务,相应地,其路由可以作为该拓扑相关的全局容器中包括的路由节点的内部路由,无需扩散出该拓扑相关的全局容器。具体地,该下级容器的路由可以只被包括在该拓扑相关的全局容器包括的路由节点的路由表中。一般地,对于在拓扑关系中除上述拓扑相关的全局容器之外的任意拓扑相关容器,为其下级容器提供接入服务,相应地,其下级容器的路由都可以作为该拓扑相关容器的内部路由,无需扩散出该拓扑相关容器。为了便于描述,以下的拓扑相关容器是指在拓扑关系中除上述拓扑相关的全局容器之外的其他拓扑相关容器。以本节点的角度来看,本节点的路由表可以包括基于拓扑相关容器进行路由的拓扑相关容器路由表项,通过该拓扑相关容器路由表项,使得该本节点归属的容器的下级容器的路由作为该本节点的内部路由不扩散出该本节点归属的容器。其中,不扩散出本节点归属的容器是指在本节点的归属容器之外的路由节点的路由表中,不存在本节点归属的容器的下级容器的路由表项,因此,本节点归属的容器外的路由节点需要借助本节点归属的容器辅助路由到该下级容器。例如,路由节点Rl和R2的路由表可以包括作为Rl和R2归属的容器“cn”的下级容器“Cn/sd”、“Cn/gd”等省级容器的路由表项,它们的路由可以作为路由节点Rl和R2的局域路由,无需扩散出容器“cn”。类似地,路由节点R12和R13的路由表可以包括作为R12和R13归属的容器“cn/gd”的下级容器“cn/gd/sz”的路由表项,其路由也可以作为R12和R13的局域路由,无需扩散出容器“cn/gd”。因此,容器“cn”的路由节点Rl和R2只能通过进入容器“cn/gd”才能在路由节点R12和R13的路由表中找到“cn/gd/sz ”的路由。
[0283]具体地,本节点的路由表可以包括本节点归属的容器的下级容器的路由,该下级容器的路由表项包括该下级容器的容器标识以及与该下级容器的容器标识对应的第二接口,该第二接口为由该本节点连接到达该下级容器的接口。例如,路由节点R12的路由表的路由表项可以包括容器标识“cn/gd/sz”以及R12连接到达R121的接口。
[0284]拓扑无关小容器是指访问量小的拓扑无关容器,这类容器在网络中大量存在,如小公司、组织,家庭网络,个人数码设备等,这也是导致现有的NDN等ICN系统中路由扩展性问题的主要因素之一。本发明实施例中这类容器可以由拓扑相关容器为其提供接入服务,相应地,这类容器的路由可以限制在其接入容器的内部,无需扩散出其接入容器,从而可以大大减少核心路由表的大小。例如,如图12所示,容器“hostsrv.com”在两个地方有自己的企业网,可以看作两个拓扑相关容器“cn/gd”和“us/ca”为其提供接入服务,因此,只有这两个容器包括的路由节点的路由表中存在容器“hostsrv.com”的路由表项,而这两个容器以外的容器只能通过拓扑相关容器“cn/gd”和“us/ca”辅助路由才能到达容器“hostsrv.com”。因此,本节点的路由表还可以包括拓扑无关小容器路由表项,该拓扑无关小容器路由表项包括拓扑无关小容器的容器标识以及与该拓扑无关小容器的容器标识对应的第三接口,该第三接口为由本节点连接到达该拓扑无关小容器的下一跳路由节点的接口。例如,路由节点R4的路由表可以包括容器标识“hostsrv.com”以及由R4连接到达R6的接口。
[0285]综上所述,在本发明实施例中,核心路由表的路由表项数目基本上等于“拓扑相关的全局容器的路由数目”加“拓扑无关的全局容器的路由数目”。由于这两种路由的数量都比较少,使得总的路由表的大小甚至可以小于今天因特网路由器中核心路由表的表项数目。因此,本发明实施例通过在内容名的基础上增加内容的容器信息以扩展ICN系统中的内容属性,并将拓扑无关小容器的路由限制在为其提供接入服务的拓扑相关容器内,且将拓扑相关容器的下级容器的路由限制在该拓扑相关容器内,从而使得核心路由表的表项数目大大减少,有效解决NDN等现有ICN系统中的路由扩展性问题。
[0286]由于FIB表是路由表的子集,因此,本发明实施例中,FIB表的转发表项也具有与路由表相类似的特征。具体地,该FIB包括全局容器转发表项,该全局容器转发表项包括全局容器的容器标识以及与该全局容器的容器标识对应的第一接口,该第一接口是由本节点连接到达该全局容器的下一跳路由节点的接口,该全局容器是可全局路由的容器,该全局容器包括拓扑相关的全局容器和/或拓扑无关的全局容器。
[0287]可选地,该FIB还包括用于基于拓扑相关容器进行路由的拓扑相关容器转发表项,通过该拓扑相关容器转发表项,使得该本节点归属的容器的下级容器的路由作为该本节点的内部路由不扩散出该本节点归属的容器;其中,该拓扑相关容器是与其它容器形成拓扑关系的容器,该拓扑关系包括:一个上级容器包括一个或多个下级容器,和/或一个下级容器被一个或多个上级容器所包括。可选地,该拓扑相关容器转发表项包括相对于该本节点的归属容器为下级容器的容器标识以及与该下级容器的容器标识对应的第二接口,该第二接口为由该本节点连接到达该下级容器的接口 ;该通过该拓扑相关容器转发表项,使得该本节点归属的容器的下级容器的路由作为该本节点的内部路由不扩散出该本节点归属的容器具体为:通过该拓扑相关容器转发表项中的该下级容器的容器标识以及与该下级容器的容器标识对应的第二接口,使得该本节点归属的容器的下级容器的路由作为该本节点的内部路由不扩散出该本节点归属的容器。可选地,该拓扑相关容器对应的容器标识具有能够反映该拓扑相关容器的级别的性质,从而表示该拓扑相关容器与其它容器之间形成的该拓扑关系。
[0288]可选地,该FIB还包括拓扑无关小容器转发表项,该拓扑无关小容器转发表项包括拓扑无关小容器的容器标识以及与该拓扑无关小容器的容器标识对应的第三接口,该第三接口为由本节点连接到达该拓扑无关小容器的下一跳路由节点的接口。
[0289]下面将以表I和表2为例分别描述根据本发明实施例中路由表和FIB的形式。表I是容器“cn/gd”的路由节点R12的路由表的一种可能形式,该路由表的路由表项包括三列,其中,第一列是容器标识或内容名前缀,第二列是该容器标识或内容名前缀的路由属性,该路由属性包括全局或局域。第三列是由本节点到达该容器标识对应的容器的下一跳路由节点,可选地,第三列也可以是该下一跳路由节点对应的接口,但本发明实施例不限于此。
[0290]表2是路由节点Rl2的FIB的一种可能形式,该FIB的转发表项包括两列,其中,第一列是容器标识或内容名前缀(prefix),第二列为该容器标识或内容名前缀对应的接口,其中容器标识对应的接口是由本节点连接到达该容器标识对应的容器的下一跳路由节点的接口。在本发明实施例中,一个容器标识或内容名前缀可以对应一个或多个接口,但本发明实施例不限于此。
[0291]表I路由表的形式举例
【权利要求】
1.一种路由转发的方法,其特征在于,包括: 接收内容请求包,所述内容请求包携带请求内容的内容名和所述请求内容的容器信息,所述请求内容的容器信息包括用于标识存储所述请求内容的容器的容器标识; 确定转发信息表FIB中是否存在与所述请求内容的内容名匹配的转发表项; 当所述FIB中不存在与所述请求内容的内容名匹配的转发表项时,确定所述FIB中是否存在与所述请求内容的容器信息中的容器标识匹配的转发表项,所述FIB中的转发表项包括预设的容器标识以及与所述预设的容器标识对应的接口 ; 当所述FIB中存在与所述请求内容的容器信息中的容器标识匹配的转发表项时,根据所述匹配的转发表项中的接口,发送所述内容请求包。
2.根据权利要求1所述的方法,其特征在于,所述容器是用于存储一组内容的存储空间。
3.根据权利要求1或2所述的方法,其特征在于,所述容器包括至少一个路由节点,通过所述至少一个路由节点中的一个或多个路由节点,所述请求内容能够在所述容器内被路由到,或所述请求内容能够通过所述容器被路由到。
4.根据权利要求1或2所述的方法,其特征在于,所述请求内容的内容名对应一个或多个归属容器,所述请求内容的归属容器是能够直接路由到所述请求内容的容器。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述容器为一个或多个第一其它容器的接入容器;和/或 一个或多个第二其它容器为`所述容器的接入容器; 其中,所述接入容器为在拓扑关系上包括另一容器,且存在将所述内容请求包路由到所述另一容器的转发表项的容器。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述容器信息还包括与所述容器标识对应的解析标识,所述解析标识用于标识与所述容器标识对应的容器是否可解析; 所述确定所述FIB中是否存在与所述请求内容的容器信息中的容器标识匹配的转发表项,包括: 根据所述解析标识,解析获得所述请求内容的所有可解析容器的接入容器的容器标识; 将所述请求内容的容器信息中的容器标识以及所述请求内容的所有可解析容器的接入容器的容器标识与所述FIB中的预设的容器标识进行匹配,以确定所述FIB中是否存在与所述请求内容的容器信息中的容器标识以及所述接入容器的容器标识匹配的转发表项。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括: 将所述解析获得的所述请求内容的所有可解析容器的接入容器的容器信息添加到所述请求内容的容器信息中。
8.根据权利要求1至5中任一项所述的方法,其特征在于,所述容器信息还包括与所述容器标识对应的解析标识,所述解析标识用于标识与所述容器标识对应的容器是否可解析; 所述方法还包括: 当所述FIB中不存在与所述请求内容的容器信息中的容器标识匹配的转发表项时,根据所述解析标识,解析获得所述容器的接入容器的容器标识; 将所述解析获得的接入容器的容器标识与所述FIB中的预设的容器标识进行匹配,以确定所述FIB中是否存在与所述解析获得的接入容器的容器标识匹配的转发表项。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括: 将所述解析获得的接入容器的容器信息添加到所述请求内容的容器信息中。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述FIB中的转发表项包括内容名前缀和所述内容名前缀对应的接口; 所述确定转发信息表FIB中是否存在与所述请求内容的内容名匹配的转发表项,包括: 根据所述请求内容的内容名的前缀与所述FIB中的转发表项中的内容名前缀是否匹配,确定所述FIB中是否存在与所述请求内容的内容名匹配的转发表项; 所述方法还包括: 当所述FIB中存在与所述请求内容的内容名匹配的转发表项时,根据所述匹配的转发表项中的接口,发送所述内容请求包。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述方法还包括: 在所述确定FIB中是否存在与所述请求内容的内容名匹配的转发表项之前,确定内容存储表CS中是否存在与所述请求内容的内容名匹配的内容; 当所述CS中存在与所述请求内容的内容名匹配的内容时,将所述匹配的内容发送至所述内容请求包的发送端; 当所述CS中不存在与所述请求内容的内容名匹配的内容时,执行所述确定FIB中是否存在与所述请求内容的内容名匹配的转发表项的步骤。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括: 当所述CS中不存在与所述请求内容的内容名匹配的内容时,确定驻留信息表PIT中是否存在与所述请求内容的内容名匹配的PIT表项; 当所述PIT中存在与所述请求内容的内容名匹配的PIT表项时,将所述内容请求包的发送端对应的接口添加到所述匹配的PIT表项; 当所述PIT中不存在与所述请求内容的内容名匹配的PIT表项时,执行所述确定FIB中是否存在与所述请求内容的内容名匹配的转发表项的步骤。
13.根据权利要求1至12中任一项所述的方法,其特征在于,所述方法还包括: 当所述FIB中不存在与所述请求内容的容器信息中的容器标识匹配的转发表项时,根据默认接口发送所述内容请求包,或将所述内容请求包丢弃。
14.根据权利要求1至13中任一项所述的方法,其特征在于,所述FIB包括全局容器转发表项,所述全局容器转发表项包括全局容器的容器标识以及与所述全局容器的容器标识对应的第一接口,所述第一接口是由本节点连接到达所述全局容器的下一跳路由节点的接口,所述全局容器是可全局路由的容器,所述全局容器包括拓扑相关的全局容器和/或拓扑无关的全局容器。
15.根据权利要求14所述的方法,其特征在于,所述FIB还包括用于基于拓扑相关容器进行路由的拓扑相关容器转发表项,通过所述拓扑相关容器转发表项,使得所述本节点归属的容器的下级容器的路由作为所述本节点的内部路由不扩散出所述本节点归属的容器; 其中,所述拓扑相关容器是与其它容器形成拓扑关系的容器,所述拓扑关系包括:一个上级容器包括一个或多个下级容器,和/或一个下级容器被一个或多个上级容器所包括。
16.根据权利要求15所述的方法,其特征在于,所述拓扑相关容器转发表项包括相对于所述本节点的归属容器为下级容器的容器标识以及与所述下级容器的容器标识对应的第二接口,所述第二接口为由所述本节点连接到达所述下级容器的接口 ; 所述通过所述拓扑相关容器转发表项,使得所述本节点归属的容器的下级容器的路由作为所述本节点的内部路由不扩散出所述本节点归属的容器,包括: 通过所述拓扑相关容器转发表项中的所述下级容器的容器标识以及与所述下级容器的容器标识对应的第二接口,使得所述本节点归属的容器的下级容器的路由作为所述本节点的内部路由不扩散出所述本节点归属的容器。
17.根据权利要求15或16所述的方法,其特征在于,所述拓扑相关容器对应的容器标识具有能够反映所述拓扑相关容器的级别的性质,从而表示所述拓扑相关容器与其它容器之间形成的所述拓扑关系。
18.根据权利要求14至17中任一项所述的方法,其特征在于,所述FIB还包括拓扑无关小容器转发表项,所述拓扑无关小容器转发表项包括拓扑无关小容器的容器标识以及与所述拓扑无关小容器的容器标识对应的第三接口,所述第三接口为由本节点连接到达所述拓扑无关小容器的下一跳路由节点的接口。
19.一种内容请求的处理方法,其特征在于,包括: 接收内容请求包,所述内容请求包携带请求内容的内容名和所述请求内容的容器信息,所述请求内容的容器信息包括`用于标识存储所述请求内容的容器的容器标识,所述容器包括至少一个路由节点,通过所述至少一个路由节点中的一个或多个路由节点,所述请求内容能够在所述容器内被路由到,或所述请求内容能够通过所述容器被路由到; 根据所述请求内容的内容名和所述请求内容的容器信息,确定所述内容请求包的转发路由。
20.根据权利要求19所述的处理方法,其特征在于,所述容器是用于存储一组内容的存储空间。
21.根据权利要求19或20所述的处理方法,其特征在于,所述请求内容的内容名对应一个或多个归属容器,所述请求内容的归属容器是能够直接路由到所述请求内容的容器。
22.根据权利要求19至21中任一项所述的处理方法,其特征在于,所述容器为一个或多个第一其它容器的接入容器;和/或 一个或多个第二其它容器为所述容器的接入容器; 其中,所述接入容器为在拓扑关系上包括另一容器,且存在将所述内容请求包路由到所述另一容器的转发表项的容器。
23.根据权利要求19至22中任一项所述的处理方法,其特征在于,所述根据所述请求内容的内容名和所述请求内容的容器信息确定所述内容请求包的转发路由,包括: 确定转发信息表FIB中是否存在与所述请求内容的内容名匹配的转发表项; 当所述FIB中不存在与所述请求内容的内容名匹配的转发表项时,确定所述FIB中是否存在与所述请求内容的容器信息中的容器标识匹配的转发表项,所述FIB中的转发表项包括预设的容器标识和与所述预设的容器标识对应的接口; 当所述FIB中存在与所述请求内容的容器信息中的容器标识匹配的转发表项时,根据所述匹配的转发表项中的接口,发送所述内容请求包。
24.根据权利要求19至23中任一项所述的处理方法,其特征在于,所述请求内容的内容名和所述请求内容的容器信息形成以所述请求内容的内容名为根节点的树,所述根节点的子节点代表所述请求内容的归属容器的容器信息,第一节点代表的容器信息对应的容器为所述第一节点的父节点代表的容器信息对应的容器的接入容器,所述第一节点是所述树中除根节点和所述根节点的子节点外的其它节点。
25.根据权利要求19至23中任一项所述的处理方法,其特征在于,所述请求内容的内容名和所述请求内容的容器信息形成以所述请求内容的内容名为入口顶点的有向无环图,从所述入口顶点发起的有向边的终点代表所述请求内容的归属容器的容器信息,所述有向无环图中的第二顶点代表的容器信息对应的容器是第一顶点代表的容器信息对应的容器的接入容器,所述第一顶点是所述有向无环图中除入口顶点外的其它顶点,所述第二顶点是从所述第一顶点发起的有向边的终点。
26.—种建立路由表的方法,其特征在于,包括: 生成本节点的路由表,以根据所述路由表生成转发信息表FIB,所述路由表包括全局容器路由表项,所述全局容器路由表项包括全局容器的容器标识以及与所述全局容器的容器标识对应的第一接口,所述第一接口是由所述本节点连接到达所述全局容器的下一跳路由节点的接口,所述全局容器是可全局路由的容器,所述全局容器包括拓扑相关的全局容器和/或拓扑无关的全局容器。
27.根据权利要求26所述的方法,其特征在于,所述FIB表用于当所述本节点接收到内容请求包时,将所述内容请求包携带的请求内容的内容名和容器信息中的容器标识与所述FIB中的转发表 项进行匹配,以确定所述内容请求包的转发路由。
28.根据权利要求26或27所述的方法,其特征在于,所述路由表还包括用于基于拓扑相关容器进行路由的拓扑相关容器路由表项,通过所述拓扑相关容器路由表项,使得所述本节点归属的容器的下级容器的路由作为所述本节点的内部路由不扩散出所述本节点归属的容器; 其中,所述拓扑相关容器是与其它容器形成拓扑关系的容器,所述拓扑关系包括:一个上级容器包括一个或多个下级容器,和/或一个下级容器被一个或多个上级容器所包括。
29.根据权利要求28所述的方法,其特征在于,所述拓扑相关容器路由表项包括相对于所述本节点的归属容器为下级容器的下级容器标识以及与所述下级容器标识对应的第二接口,所述第二接口为由所述本节点连接到达所述下级容器的接口 ; 所述通过所述拓扑相关容器路由表项,使得所述本节点归属的容器的下级容器的路由作为所述本节点的内部路由不扩散出所述本节点归属的容器,包括: 通过所述拓扑相关容器路由表项中的下级容器标识以及与所述下级容器标识对应的第二接口,使得所述本节点归属的容器的下级容器的路由作为所述本节点的内部路由不扩散出所述本节点归属的容器。
30.根据权利要求28或29所述的方法,其特征在于,所述拓扑相关容器对应的容器标识具有能够反映所述拓扑相关容器的级别的性质,从而表示所述拓扑相关容器与其它容器之间的所述拓扑关系。
31.根据权利要求26至30中任一项所述的方法,其特征在于,所述路由表还包括拓扑无关小容器路由表项,所述拓扑无关小容器路由表项包括拓扑无关小容器的容器标识以及与所述拓扑无关小容器的容器标识对应的第三接口,所述第三接口为由所述本节点连接到达所述拓扑无关小容器的下一跳路由节点的接口。
32.—种获取内容的方法,其特征在于,包括: 生成内容请求包,所述内容请求包携带请求内容的内容名和所述请求内容的容器信息,所述请求内容的容器信息包括用于标识存储所述请求内容的容器的容器标识; 将所述内容请求包发送至网络设备,以便所述网络设备根据所述请求内容的内容名和所述请求内容的容器信息确定所述内容请求包的转发路由。
33.根据权利要求32所述的方法,其特征在于,所述容器包括至少一个路由节点,通过所述至少一个路由节点中的一个或多个路由节点,所述请求内容能够在所述容器内被路由到,或所述请求内容能够通过所述容器被路由到。
34.根据权利要求32所述的方法,其特征在于,所述请求内容的内容名对应一个或多个归属容器,所述请求内容的归属容器是能够直接路由到所述请求内容的容器。
35.根据权利要求32至34中任一项所述的方法,其特征在于,所述容器信息还包括与所述容器标识对应的解析标识,所述解析标识用于标识与所述容器标识对应的容器是否可解析。
36.根据权利要求32至25中任一项所述的方法,其特征在于,在所述生成内容请求包之前,所述方法还包括:` 获取所述请求内容的容器信息; 所述生成内容请求包,包括: 根据所述获取得到的所述请求内容的容器信息,生成内容请求包。
37.根据权利要求36所述的方法,其特征在于,所述方法还包括: 根据所述请求内容的容器信息,确定所述请求内容的容器信息对应的容器的接入容器,并将所述接入容器的容器信息添加到所述请求内容的容器信息中; 所述生成内容请求包,包括: 根据所述添加了所述接入容器的容器信息的所述请求内容的容器信息,生成内容请求包。
38.根据权利要求36所述的方法,其特征在于,所述方法还包括: 根据所述请求内容的容器信息,确定所述请求内容的所有可解析容器的接入容器,并将所述所有可解析容器的接入容器的容器信息添加到所述请求内容的容器信息中; 所述生成内容请求包,包括: 根据所述添加了所述所有可解析容器的接入容器的容器信息的所述请求内容的容器信息,生成内容请求包。
39.一种发布内容的方法,其特征在于,包括: 确定内容的容器集以及所述容器集中每个容器的容器信息,所述容器集包括至少一个存储所述内容的容器; 发布所述内容和所述内容的信息,所述内容的信息包括所述内容的内容名和所述容器集中每个容器的容器信息,以便用户设备根据所述内容的信息生成内容请求包并发送到网络设备以及由路由节点根据所述内容请求包携带的所述内容的信息确定所述内容请求包的转发路由。
40.根据权利要求39所述的方法,其特征在于,所述容器包括至少一个路由节点,通过所述至少一个路由节点中的一个或多个路由节点,所述请求内容能够在所述容器内被路由到,或所述请求内容能够通过所述容器被路由到。
41.根据权利要求39所述的方法,其特征在于,所述内容的内容名对应一个或多个归属容器,所述内容的归属容器是能够直接路由到所述内容的容器。
42.根据权利要求39至41中任一项所述的方法,其特征在于,所述方法还包括: 将所述容器集中的至少一个容器和所述至少一个容器的接入容器注册到解析系统,以便用户或路由节点通过查询所述解析系统获得所述至少一个容器的接入容器。
43.根据权利要求42所述的方法,其特征在于,所述容器信息包括:容器标识和解析标识,所述解析标识用于标识容器是否可解析。
44.一种路由器,其特征在于,包括: 接收模块,用于接收内容请求包,所述内容请求包携带请求内容的内容名和所述请求内容的容器信息,所述请求内容的容器信息包括用于标识存储所述请求内容的容器的容器标识; 第一确定模块,用于确定转发信息表FIB中是否存在与所述接收模块接收的所述内容请求包携带的所述请求内容的内容名匹配的转发表项;` 第二确定模块,用于当所述第一确定模块确定所述FIB中不存在与所述请求内容的内容名匹配的转发表项时,确定所述FIB中是否存在与所述请求内容的容器信息中的容器标识匹配的转发表项,所述FIB中的转发表项包括预设的容器标识以及与所述预设的容器标识对应的接口; 发送模块,用于当所述第二确定模块确定所述FIB中存在与所述请求内容的容器信息中的容器标识匹配的转发表项时,根据所述匹配的转发表项中的接口,发送所述内容请求包。
45.根据权利要求44所述的路由器,其特征在于,所述容器是用于存储一组内容的存储空间。
46.根据权利要求44或45所述的路由器,其特征在于,所述容器包括至少一个路由节点,通过所述至少一个路由节点中的一个或多个路由节点,所述请求内容能够在所述容器内被路由到,或所述请求内容能够通过所述容器被路由到。
47.根据权利要求44或45所述的路由器,其特征在于,所述请求内容的内容名对应一个或多个归属容器,所述请求内容的归属容器是能够直接路由到所述请求内容的容器。
48.根据权利要求44至47中任一项所述的路由器,其特征在于,所述容器为一个或多个第一其它容器的接入容器;和/或 一个或多个第二其它容器为所述容器的接入容器; 其中,所述接入容器为在拓扑关系上包括另一容器,且存在将所述内容请求包路由到所述另一容器的转发表项的容器。
49.根据权利要求44至48中任一项所述的路由器,其特征在于,所述容器信息还包括与所述容器标识对应的解析标识,所述解析标识用于标识与所述容器标识对应的容器是否可解析; 该第二确定模块包括: 第一解析单元,用于根据所述解析标识,解析获得所述请求内容的所有可解析容器的接入容器的容器标识; 第一确定单元,具体用于将所述请求内容的容器信息中的容器标识以及所述第一解析单元解析获得的所述请求内容的所有可解析容器的接入容器的容器标识与所述FIB中的预设的容器标识进行匹配,以确定所述FIB中是否存在与所述请求内容的容器信息中的容器标识以及所述接入容器的容器标识匹配的转发表项。
50.根据权利要求49所述的路由器,其特征在于,所述路由器还包括: 第一添加模块,用于将所述第一解析单元解析获得的所述请求内容的所有可解析容器的接入容器的容器信息添加到所述请求内容的容器信息中。
51.根据权利要求44至48中任一项所述的路由器,其特征在于,所述容器信息还包括与所述容器标识对应的解析标识,所述解析标识用于标识与所述容器标识对应的容器是否可解析; 所述路由器还包括: 第一解析模块,用于当所述第二确定模块确定所述FIB中不存在与所述请求内容的容器信息中的容器标识匹配的转发表项时,根据所述解析标识,解析获得所述容器的接入容器的容器标识; 所述第二确定模块 还用于将所述第一解析模块解析获得的接入容器的容器标识与所述FIB中的预设的容 器标识进行匹配,以确定所述FIB中是否存在与所述解析获得的接入容器的容器标识匹配的转发表项。
52.根据权利要求51所述的路由器,其特征在于,所述路由器还包括: 第二添加模块,用于将所述第一解析模块解析获得的接入容器的容器信息添加到所述请求内容的容器信息中。
53.根据权利要求44至52中任一项所述的路由器,其特征在于,所述FIB中的转发表项包括内容名前缀和所述内容名前缀对应的接口; 所述第一确定模块具体用于根据所述请求内容的内容名的前缀与所述FIB中的转发表项中的内容名前缀是否匹配,确定所述FIB中是否存在与所述请求内容的内容名匹配的转发表项; 所述发送模块还用于当所述第一确定模块确定所述FIB中存在与所述请求内容的内容名匹配的转发表项时,根据所述匹配的转发表项中的接口,发送所述内容请求包。
54.根据权利要求44至53中任一项所述的路由器,其特征在于,所述路由器还包括: 第三确定模块,用于在所述第一确定模块确定FIB中是否存在与所述请求内容的内容名匹配的转发表项之前,确定内容存储表CS中是否存在与所述请求内容的内容名匹配的内容; 所述发送模块还用于当所述第三确定模块确定所述CS中存在与所述请求内容的内容名匹配的内容时,将所述匹配的内容发送至所述内容请求包的发送端; 所述第一确定模块还用于当所述第三确定模块确定所述CS中不存在与所述请求内容的内容名匹配的内容时,执行所述确定FIB中是否存在与所述请求内容的内容名匹配的转发表项的步骤。
55.根据权利要求54所述的路由器,其特征在于,所述路由器还包括: 第四确定模块,用于当所述第三确定模块确定所述CS中不存在与所述请求内容的内容名匹配的内容时,确定驻留信息表PIT中是否存在与所述请求内容的内容名匹配的PIT表项; 更新模块,用于当所述第四确定模块确定所述PIT中存在与所述请求内容的内容名匹配的PIT表项时,将所述内容请求包的发送端对应的接口添加到所述匹配的PIT表项; 所述第一确定模块还用于当所述第四确定模块确定所述PIT中不存在与所述请求内容的内容名匹配的PIT表项时,执行所述确定FIB中是否存在与所述请求内容的内容名匹配的转发表项的步骤。
56.根据权利要求44至55中任一项所述的路由器,其特征在于,所述发送模块还用于当所述FIB中不存在与所述请求内容的容器信息中的容器标识匹配的转发表项时,根据默认接口发送所述内容请求包;或 所述路由器还包括丢弃模块,用于当所述FIB中不存在与所述请求内容的容器信息中的容器标识匹配的转发表项时,将所述内容请求包丢弃。
57.根据权利要求44至56中任一项所述的路由器,其特征在于,所述FIB包括全局容器转发表项,所述全局容器转发表项包括全局容器的容器标识以及与所述全局容器的容器标识对应的第一接口,所述第一接口是由本节点连接到达所述全局容器的下一跳路由节点的接口,所述全局容器是可全局路由的容器,所述全局容器包括拓扑相关的全局容器和/或拓扑无关的全局容器。`
58.根据权利要求57所述的路由器,其特征在于,所述FIB还包括用于基于拓扑相关容器进行路由的拓扑相关容器转发表项,通过所述拓扑相关容器转发表项,使得所述本节点归属的容器的下级容器的路由作为所述本节点的内部路由不扩散出所述本节点归属的容器; 其中,所述拓扑相关容器是与其它容器形成拓扑关系的容器,所述拓扑关系包括:一个上级容器包括一个或多个下级容器,和/或一个下级容器被一个或多个上级容器所包括。
59.根据权利要求58所述的路由器,其特征在于,所述拓扑相关容器转发表项包括相对于所述本节点的归属容器为下级容器的容器标识以及与所述下级容器的容器标识对应的第二接口,所述第二接口为由所述本节点连接到达所述下级容器的接口 ; 所述通过所述拓扑相关容器转发表项,使得所述本节点归属的容器的下级容器的路由作为所述本节点的内部路由不扩散出所述本节点归属的容器,包括: 通过所述拓扑相关容器转发表项中的所述下级容器的容器标识以及与所述下级容器的容器标识对应的第二接口,使得所述本节点归属的容器的下级容器的路由作为所述本节点的内部路由不扩散出所述本节点归属的容器。
60.根据权利要求58或59所述的路由器,其特征在于,所述拓扑相关容器对应的容器标识具有能够反映所述拓扑相关容器的级别的性质,从而表示所述拓扑相关容器与其它容器之间形成的所述拓扑关系。
61.根据权利要求57至60中任一项所述的路由器,其特征在于,所述FIB还包括拓扑无关小容器转发表项,所述拓扑无关小容器转发表项包括拓扑无关小容器的容器标识以及与所述拓扑无关小容器的容器标识对应的第三接口,所述第三接口为由本节点连接到达所述拓扑无关小容器的下一跳路由节点的接口。
62.一种路由器,其特征在于,包括: 接收模块,用于接收内容请求包,所述内容请求包携带请求内容的内容名和所述请求内容的容器信息,所述请求内容的容器信息包括用于标识存储所述请求内容的容器的容器标识,所述容器包括至少一个路由节点,通过所述至少一个路由节点中的一个或多个路由节点,所述请求内容能够在所述容器内被路由到,或所述请求内容能够通过所述容器被路由到; 确定模块,用于根据所述接收模块接收的所述内容请求包携带的所述请求内容的内容名和所述请求内容的容器信息,确定所述内容请求包的转发路由。
63.根据权利要求62所述的路由器,其特征在于,所述容器是用于存储一组内容的存储空间。
64.根据权利要求62或63所述的路由器,其特征在于,所述请求内容的内容名对应一个或多个归属容器,所述请求内容的归属容器是能够直接路由到所述请求内容的容器。
65.根据权利要求62至64中任一项所述的路由器,其特征在于,所述容器为一个或多个第一其它容器的接入容器;和/或 一个或多个第二其它容器为所述容器的接入容器; 其中,所述接入容器为在拓扑关系上包括另一容器,且存在将所述内容请求包路由到所述另一容器的转发表项的容器。
66.根据权利要求62至65中任一项所述的路由器,其特征在于,所述确定模块包括:` 第一确定单元,用于确定转发信息表FIB中是否存在与所述请求内容的内容名匹配的转发表项; 第二确定单元,用于当所述第一确定单元确定所述FIB中不存在与所述请求内容的内容名匹配的转发表项时,确定所述FIB中是否存在与所述请求内容的容器信息中的容器标识匹配的转发表项,所述FIB中的转发表项包括预设的容器标识和与所述预设的容器标识对应的接口; 发送单元,用于当所述第二确定单元确定所述FIB中存在与所述请求内容的容器信息中的容器标识匹配的转发表项时,根据所述匹配的转发表项中的接口,发送所述内容请求包。
67.根据权利要求62至66中任一项所述的路由器,其特征在于,所述请求内容的内容名和所述请求内容的容器信息形成以所述请求内容的内容名为根节点的树,所述根节点的子节点代表所述请求内容的归属容器的容器信息,第一节点代表的容器信息对应的容器为所述第一节点的父节点代表的容器信息对应的容器的接入容器,所述第一节点是所述树中除根节点和所述根节点的子节点外的其它节点。
68.根据权利要求62至66中任一项所述的路由器,其特征在于,所述请求内容的内容名和所述请求内容的容器信息形成以所述请求内容的内容名为入口顶点的有向无环图,从所述入口顶点发起的有向边的终点代表所述请求内容的归属容器的容器信息,所述有向无环图中的第二顶点代表的容器信息对应的容器是第一顶点代表的容器信息对应的容器的接入容器,所述第一顶点是所述有向无环图中除入口顶点外的其它顶点,所述第二顶点是从所述第一顶点发起的有向边的终点。
69.一种建立路由表的装置,其特征在于,包括: 生成模块,用于生成本节点的路由表,以根据所述路由表生成转发信息表FIB,所述路由表包括全局容器路由表项,所述全局容器路由表项包括全局容器的容器标识以及与所述全局容器的容器标识对应的第一接口,所述第一接口是由所述本节点连接到达所述全局容器的下一跳路由节点的接口,所述全局容器是可全局路由的容器,所述全局容器包括拓扑相关的全局容器和/或拓扑无关的全局容器; 存储模块,用于存储所述生成模块生成的路由表。
70.根据权利要求69所述的装置,其特征在于,所述FIB表用于当所述本节点接收到内容请求包时,将所述内容请求包携带的请求内容的内容名和容器信息中的容器标识与所述FIB中的转发表项进行匹配,以确定所述内容请求包的转发路由。
71.根据权利要求69或70所述的装置,其特征在于,所述路由表还包括用于基于拓扑相关容器进行路由的拓扑相关容器路由表项,通过所述拓扑相关容器路由表项,使得所述本节点归属的容器的下级容器的路由作为所述本节点的内部路由不扩散出所述本节点归属的容器; 其中,所述拓扑相关容器是与其它容器形成拓扑关系的容器,所述拓扑关系包括:一个上级容器包括一个或多个下级容器,和/或一个下级容器被一个或多个上级容器所包括。
72.根据权利要求71所述的装置,其特征在于,所述拓扑相关容器路由表项包括相对于所述本节点的归属容器为下级容器的下级容器标识以及与所述下级容器标识对应的第二接口,所述第二接口为由所述本节点连接到达所述下级容器的接口 ;` 所述通过所述拓扑相关容器路由表项,使得所述本节点归属的容器的下级容器的路由作为所述本节点的内部路由不扩散出所述本节点归属的容器,包括: 通过所述拓扑相关容器路由表项中的下级容器标识以及与所述下级容器标识对应的第二接口,使得所述本节点归属的容器的下级容器的路由作为所述本节点的内部路由不扩散出所述本节点归属的容器。
73.根据权利要求71或72所述的装置,其特征在于,所述拓扑相关容器对应的容器标识具有能够反映所述拓扑相关容器的级别的性质,从而表示所述拓扑相关容器与其它容器之间的所述拓扑关系。
74.根据权利要求69至73中任一项所述的装置,其特征在于,所述路由表还包括拓扑无关小容器路由表项,所述拓扑无关小容器路由表项包括拓扑无关小容器的容器标识以及与所述拓扑无关小容器的容器标识对应的第三接口,所述第三接口为由所述本节点连接到达所述拓扑无关小容器的下一跳路由节点的接口。
75.一种用户设备,其特征在于,包括: 生成模块,用于生成内容请求包,所述内容请求包携带请求内容的内容名和所述请求内容的容器信息,所述请求内容的容器信息包括用于标识存储所述请求内容的容器的容器标识; 发送模块,用于将所述生成模块生成的所述内容请求包发送至网络设备,以便所述网络设备根据所述请求内容的内容名和所述请求内容的容器信息确定所述内容请求包的转发路由。
76.根据权利要求75所述的用户设备,其特征在于,所述容器包括至少一个路由节点,通过所述至少一个路由节点中的一个或多个路由节点,所述请求内容能够在所述容器内被路由到,或所述请求内容能够通过所述容器被路由到。
77.根据权利要求75所述的用户设备,其特征在于,所述请求内容的内容名对应一个或多个归属容器,所述请求内容的归属容器是能够直接路由到所述请求内容的容器。
78.根据权利要求75至77中任一项所述的用户设备,其特征在于,所述容器信息还包括与所述容器标识对应的解析标识,所述解析标识用于标识与所述容器标识对应的容器是否可解析。
79.根据权利要求75至78中任一项所述的用户设备,其特征在于,所述用户设备还包括: 获取模块,用于在所述生成模块生成内容请求包之前,获取所述请求内容的容器信息; 所述生成模块具体用于根据所述获取模块获取的所述请求内容的容器信息,生成内容请求包。
80.根据权利要求79所述的用户设备,其特征在于,所述用户设备还包括: 第一确定模块,用于根据所述获取模块获取的所述请求内容的容器信息,确定所述容器的接入容器; 第一更新模块,用于将所述第一确定模块确定的所述接入容器的容器信息添加到所述请求内容的容器信息中;` 所述生成模块具体用于根据所述第一更新模块更新后的所述请求内容的容器信息,生成内容请求包。
81.根据权利要求79所述的用户设备,其特征在于,所述用户设备还包括: 第二确定模块,用于根据所述获取模块获取的所述请求内容的容器信息,确定所述请求内容的所有可解析容器的接入容器; 第二更新模块,用于将所述第二确定模块确定的所述所有可解析容器的接入容器的容器信息添加到所述请求内容的容器信息中; 所述生成模块具体用于根据所述第二更新模块更新后的所述请求内容的容器信息,生成内容请求包。
82.—种发布内容的装置,其特征在于,包括: 确定模块,用于确定内容的容器集以及所述容器集中每个容器的容器信息,所述容器集包括至少一个存储所述内容的容器; 发布模块,用于发布所述内容和所述内容的信息,所述内容的信息包括所述内容的内容名和所述确定模块确定的所述容器集中每个容器的容器信息,以便用户根据所述内容的信息生成内容请求包并发送到网络设备并由路由节点根据所述内容请求包携带的所述内容的信息确定所述内容请求包的转发路由。
83.根据权利要求82所述的装置,其特征在于,所述容器包括至少一个路由节点,通过所述至少一个路由节点中的一个或多个路由节点,所述请求内容能够在所述容器内被路由到,或所述请求内容能够通过所述容器被路由到。
84.根据权利要求82所述的装置,其特征在于,所述内容的内容名对应一个或多个归属容器,所述内容的归属容器是能够直接路由到所述内容的容器。
85.根据权利要求82至84中任一项所述的装置,其特征在于,所述装置还包括: 注册模块,用于将所述容器集中的至少一个容器和所述至少一个容器的接入容器注册到解析系统,以便用户或路由节点通过查询所述解析系统获得所述至少一个容器的接入容器。
86.根据权利要求85所述的装置,其特征在于,所述容器信息包括:容器标识和解析标识,所述解析标识用于标识`容器是否可解析。
【文档编号】H04W88/02GK103874157SQ201210535249
【公开日】2014年6月18日 申请日期:2012年12月12日 优先权日:2012年12月12日
【发明者】范灵源, 姚春凤, 严哲峰 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1