使用硬件辅助散列表的ccn路由的制作方法_5

文档序号:9923777阅读:来源:国知局
包括用于在转发散列表中执行最长前缀匹配查询的指令(查询机构824)。内容处理系统818可以包括用于将表项插入到转发散列表中的指令(插入机构822)。内容处理系统818可以包括用于响应于在插入或查询转发散列表时确定冲突,并解决查询冲突的指令(冲突解决指令826)。
[0063]内容处理系统818可以另外包括用于将字符串表中的表项与包存储器中的名称组成进行比较的指令(字符串比较机构828)。内容处理系统818可以包括用于分配唯一表项标识符以将一个表项链接到另一表项的指令(链接机构830)。
[0064]数据832可以包括通过本申请中描述的方法和/或过程作为输入请求的或作为输出生成的任何数据。具体地,数据832可以存储至少:具有HSVLI的包;转发散列表,字符串表和如本申请中描述的单独的冲突表;以及父标识符(PEID)和转发散列表中的每个表项的唯一表项标识符(EID)。
[0065]在此详细描述中描述的数据结构和代码通常存储于计算机可读存储介质上,计算机可读存储介质可以是可以存储代码和/或数据以由计算机系统使用的任何装置或介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁和光存储装置(诸如磁盘驱动器、磁带、CD (光盘)、DVD (数字通用盘或数字视频盘))或能够存储计算机可读介质的现在已知或以后开发的其它介质。
[0066]在详细描述部分描述的方法和过程可以体现为代码和/或数据,这些代码和/或数据可以存储在如上文描述的计算机可读存储介质中。当计算机系统读、执行计算机可读存储介质上存储的代码和/或数据时,计算机系统执行体现为数据结构和代码并存储于计算机可读存储介质中的方法和过程。
[0067]而且,上面描述的方法和过程可以包括于硬件模块或设备中。这些模块或设备可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、在特定时间执行特定软件模块或一段代码的专用或共用处理器,和现在已知或以后开发的其它可编程逻辑器件。当硬件模块或设备被激活时,他们执行其中包括的方法和过程。
【主权项】
1.一种用于转发包的计算机实现的方法,所述方法包括: 通过计算机接收具有分层结构可变长度标识符(HSVLI)的包,所述包包括从最概括级到最具体级排序的连续名称组成; 通过以下步骤,通过从指示名称组成、所述名称组成的转发信息和将一个表项链接到另一表项的多个表项标识符的表项的第一数据结构选择表项,执行用于转发所述包的最长前缀匹配查询,这些步骤有: 响应于确定名称组成的大小小于或等于预定阈值,基于所述名称组成选择表项; 响应于确定所述大小大于所述预定阈值: 压缩所述名称组成,以获得压缩密钥;以及 基于所述压缩密钥,选择表项;以及 响应于确定与所选的表项关联的查询冲突,解决所述查询冲突,从而促进转发具有可变长度名称的包。2.一种存储指令的非暂态计算机可读存储介质,所述指令在由计算机执行时引起所述计算机执行用于转发包的方法,所述方法包括: 通过计算机接收具有分层结构可变长度标识符(HSVLI)的包,所述包包括从最概括级到最具体级排序的连续名称组成; 通过以下步骤,通过从指示名称组成、所述名称组成的转发信息和将一个表项链接到另一表项的多个表项标识符的表项的第一数据结构选择表项,执行用于转发所述包的最长前缀匹配查询,这些步骤有: 响应于确定名称组成的大小小于或等于预定阈值,基于所述名称组成选择表项; 响应于确定所述大小大于所述预定阈值: 压缩所述名称组成,以获得压缩密钥;以及 基于所述压缩密钥,选择表项;以及 响应于确定与所选的表项关联的查询冲突,解决所述查询冲突,从而促进转发具有可变长度名称的包。3.一种用于转发内容的计算机系统,所述系统包括: 处理器; 存储装置,所述存储装置耦连到所述处理器,并存储指令,所述指令在由计算机执行时引起所述计算机执行方法,所述方法包括: 通过计算机接收具有分层结构可变长度标识符(HSVLI)的包,所述包包括从最概括级到最具体级排序的连续名称组成; 通过以下步骤,通过从指示名称组成、所述名称组成的转发信息和将一个表项链接到另一表项的多个表项标识符的表项的第一数据结构选择表项,执行用于转发所述包的最长前缀匹配查询,这些步骤有: 响应于确定名称组成的大小小于或等于预定阈值,基于所述名称组成选择表项; 响应于确定所述大小大于所述预定阈值: 压缩所述名称组成,以获得压缩密钥;以及 基于所述压缩密钥,选择表项;以及 响应于确定与所选的表项关联的查询冲突,解决所述查询冲突,从而促进转发具有可变长度名称的包。4.根据权利要求3所述的计算机系统,其中,所述方法还包括: 响应于确定所述名称组成的大小小于或等于所述预定阀值,基于所述名称组成在所述第一数据结构中创建表项;以及 响应于确定所述名称组成的大小大于所述预定阀值: 对所述名称组成执行第一压缩函数,以获得压缩密钥;以及 在所述第一数据结构中基于所述压缩密钥创建表项;以及 响应于基于所创建表项确定插入冲突,解决所述插入冲突。5.根据权利要求4所述的计算机系统,其中,所述方法还包括: 基于所述名称组成在第二数据结构中创建表项,其中,所述第二数据结构指示所述名称组成和对应索引; 将所述第一数据结构中所述名称组成的表项中的字符串标识符设置成所述第二数据结构中所创建表项的对应索弓I。6.根据权利要求4所述的计算机系统,其中,解决所述插入冲突包括: 在所述第一数据结构中在创建表项中包括冲突指示符; 对所述名称组成执行第二压缩函数,以获得新查询密钥; 基于所述新查询密钥在第三数据结构中创建表项,其中,所述第三数据结构指示所述新查询密钥和所述名称组成的转发信息。7.根据权利要求6所述的计算机系统,其中,解决所述查询冲突还包括: 确定所选择的表项包括所述冲突指示符; 对所述名称组成执行所述第二压缩函数,以获得所述新查询密钥;以及 基于所述新查询密钥在所述第三数据结构中选择表项。8.根据权利要求5所述的计算机系统,其中,所述方法还包括: 响应于基于所述压缩密钥选择所述第一数据结构中的表项,确定所选择表项的字符串标识符; 从所述第二数据结构基于确定的字符串标识符检索所述名称组成; 将所述HSVLI的名称组成与从所述第二数据结构中检索的名称组成进行比较。9.根据权利要求3所述的计算机系统,其中,所述多个表项标识符包括父标识符和表项标识符,其中,所述表项标识符对于所述第一数据结构中的每个表项是唯一的,并且其中,选择所述表项还包括: 对于每个名称组成,从最概括级的组成开始,基于所述父标识符选择所述表项,其中:对于最概括级名称组成,所述表项的父标识符对应于预定初始值;以及对于每个后续的名称组成,所述表项的父标识符对应于与之前最概括级的名称组成对应的表项的表项标识符。10.根据权利要求3所述的计算机系统,其中,所述第一数据结构是包括密钥和结果的表项的散列表,其中: 如果所述大小小于或等于所述预定阈值,所述密钥直接基于所述名称组成;以及 如果所述大小大于所述预定阈值,所述密钥基于所述压缩密钥。
【专利摘要】一个实施例提供一种促进转发具有可变长度名称的包的系统。操作中,所述系统接收具有分层结构可变长度标识符(HSVLI)的包,所述包包括从最概括级到最具体级排序的连续名称组成。所述系统通过从表项的第一数据结构选择表项,执行最长前缀匹配查询。所述表项指示名称组成,所述名称组成的转发信息和将一个表项链接到另一表项的多个表项标识符。如果名称组成的大小小于或等于预定阈值,所述系统基于所述名称组成选择表项。如果所述大小更大,所述系统基于压缩密钥选择表项,所述压缩密钥可以是名称组成的散列。所述系统还解决与所选择表项关联的冲突。
【IPC分类】H04L12/743, H04L12/745
【公开号】CN105704041
【申请号】CN201510868120
【发明人】M·E·莫斯科, I·索利斯
【申请人】帕洛阿尔托研究中心公司
【公开日】2016年6月22日
【申请日】2015年12月1日
【公告号】EP3035613A1, US20160173445
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1