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

文档序号:9923777阅读:719来源:国知局
使用硬件辅助散列表的ccn路由的制作方法
【技术领域】
[0001]本申请一般涉及数字内容的分发。更具体地,本申请涉及在内容中心网络(CCN)中通过使用CCN路由器中的硬件辅助散列表转发包。
【背景技术】
[0002]互联网和电子商务的激增继续产生大量的数字内容。设计出内容中心网络(CCN)架构来促进访问并处理这些数字内容。CCN包括实体或节点,诸如网络客户端、转发器(例如路由器)和内容生产者,他们通过发送对各种内容项目的兴趣包并接收返回的内容对象包来彼此通信。CCN兴趣和内容对象由其唯一的名称标识,该唯一的名称通常是分层结构的可变长度标识符(HSVLI)。HSVLI可以包括从最概括级到最具体级排序的连续名称组成,并且可以包含不受限制的可变长度的任意数目的路径分段(例如名称组成)。
[0003]通常,CCN路由器保存确定转发包的方式的转发表。转发表可以是散列表,其中,密钥基于名称组成,结果包含名称组成的转发信息。CCN路由器中的网络处理器可以通过提供硬件辅助散列表提高转发效率和速度。这些硬件辅助散列表通常将密钥长度和结果长度限制为固定大小。这种限制对使用这些硬件辅助散列表来在CCN中转发包构成限制,其中,转发是基于不受限制的可以大于由硬件辅助散列表支持的固定长度的可变长度的名称组成执行的。

【发明内容】

[0004]—个实施例提供一种促进转发具有可变长度名称的包的系统。操作中,所述系统接收具有分层结构可变长度标识符(HSVLI)的包,所述包包括从最概括级到最具体级排序的连续名称组成。所述系统通过从表项的第一数据结构选择表项,执行最长前缀匹配查询。所述表项指示名称组成,所述名称组成的转发信息和将一个表项链接到另一表项的多个表项标识符。每个名称组成具有大小。如果名称组成的大小小于或等于预定阈值,所述系统基于所述名称组成选择表项。如果所述大小更大,所述系统压缩所述名称组成以获得压缩密钥,并基于压缩密钥选择表项。响应于确定与所选择表项关联的查询冲突,所述系统解决所述查询冲突,从而促进转发具有可变长度名称的包。
[0005]在一些实施例中,响应于确定所述名称组成的大小小于或等于预定阈值,所述系统基于所述名称组成在所述第一数据结构中创建表项。响应于确定所述名称组成的大小大于所述预定阈值,所述系统对所述名称组成执行第一压缩函数,以获得压缩密钥;并在所述第一数据结构中基于所述压缩密钥创建表项。响应于基于所创建的表项确定有插入冲突,所述系统解决所述插入冲突。
[0006]在一些实施例中,所述系统基于名称组成在第二数据结构中创建表项,其中,第二数据结构指示名称组成和相应索引。所述系统将第一数据结构中表项中的对于名称组成的字符串标识符字段设置成来自第二数据结构的索引。
[0007]在一些实施例中,所述系统通过在第一数据结构中创建的表项包括冲突指示符,解决插入冲突。所述系统对名称组成执行第二压缩函数,以获得新查询密钥。所述系统还基于新查询密钥在第三数据结构中创建表项,其中,第三数据结构指示新查询密钥和名称组成的转发信息。
[0008]在一些实施例中,所述系统通过确定所选表项包括冲突指示符,解决查询冲突。所述系统对名称组成执行第二压缩函数,获得新查询密钥,并基于新查询密钥选择第三数据结构中的表项。
[0009]在一些实施例中,响应于基于压缩密钥选择第一数据结构中的表项,所述系统确定所选表项的字符串标识符字段的索引,并基于确定的索引从第二数据结构中检索名称组成。所述系统将HSVLI的名称组成与从第二数据结构中检索的名称组成比较。
[0010]在一些实施例中,多个表项标识符包括父标识符和表项标识符,其中,表项标识符对第一数据结构中的每个表项是唯一的。对于每个名称组成,以最概括级的组成开始,所述系统基于父标识符选择表项,其中:对于最概括级名称组成,表项的父标识符对应于预定初始值;对于每个后续名称组成,表项的父标识符对应于与前一最概括级的名称组成对应的表项的表项标识符。
[0011]在一些实施例中,第一数据结构是包括密钥和结果的表项的散列表,其中:如果大小小于或等于预定阈值,则密钥直接基于名称组成;如果大小大于预定阈值,则密钥基于压缩密钥。
【附图说明】
[0012]图1图解说明根据本发明的实施例使用硬件辅助散列表促进转发具有可变长度名称的包的示例性计算环境。
[0013]图2呈现根据本发明的实施例对基于硬件辅助散列表将表项插入到转发表中的方法进行图解说明的流程图。
[0014]图3A呈现根据本发明的实施例对基于硬件辅助散列表在转发表中查询表项的方法进行图解说明的流程图。
[0015]图3B呈现根据本发明的实施例对基于硬件辅助散列表解决在转发表中遇到的查询冲突的方法进行图解说明的流程图。
[0016]图4A呈现根据本发明的实施例描绘具有密钥的散列表数据结构格式的表,该密钥包括大小为9字节的值。
[0017]图4B呈现根据本发明的实施例描绘具有密钥的散列表数据结构格式的表,该密钥包括大小为21字节的值。
[0018]图4C呈现根据本发明的实施例描绘具有密钥的散列表数据结构格式的表,该密钥包括大小为41字节的值。
[0019]图4D呈现根据本发明的实施例描绘具有密钥的散列表数据结构格式的表,该密钥包括大小大于41字节的字符串的散列值。
[0020]图5呈现根据本发明的实施例描绘示例性转发散列表的表。
[0021]图6呈现根据本发明的实施例描绘字符串表的格式的表。
[0022]图7呈现根据本发明的实施例描绘示例性字符串表的表。
[0023]图8图解说明根据本发明的实施例基于硬件辅助散列表促进转发具有可变长度名称的包的示例性计算机和通信系统。
[0024]在图中,相同的附图标记指相同的附图元件。
【具体实施方式】
[0025]给出以下描述使得本领域技术人员能够制造和使用实施例,以下描述是在特定应用和其需求的背景下提供的。对所公开实施例的各种改进对本领域技术人员是非常显然的,在不偏离本发明的精神和范围下,本文中定义的通用原理可以应用于其它实施例和应用。因此,本发明不局限于所显示的实施例,而是给予与本文中公开的原理和特征一致的最宽范围。
[0026]臟
[0027]本发明的实施例提供一种系统,其通过将名称组成映射到转发散列表,并执行转发散列表中的链接散列查询,解决了使用硬件辅助散列表(通常限制到固定长度的密钥)转发CCN包的问题。转发CCN包通常基于与包关联的名称,该名称可以是包括从最概括级到最具体级排序的连续名称组成的分层结构可变长度标识符。本系统可以映射用于插入的HSVLI的名称组成,在CCN路由器的转发散列表中基于每个名称组长的大小查询。当名称组成的大小很小时(例如小于或等于41字节),所述系统使用标准散列表函数创建散列表表项,其中,密钥是名称组成。当大小很大时(例如大于41字节),所述系统通过首先对名称组成应用压缩函数,并使用压缩值作为散列表的密钥来创建表项。所述系统还可以将未压缩的名称组成插入到特定索引的单独字符串表中,在表项的结果中指示该索引。如果在插入过程中出现冲突,所述系统可以在结果中设置指示冲突的标志,生成新的查询密钥,并使用新查询密钥在单独的表中创建表项。
[0028]而且,所述系统使用转发散列表执行链接散列查询,这确定包的转发信息。在插入过程中,所述系统给转发散列表中的每个结果分配唯一的索引密钥(例如,表项标识符(EID))。每个表项包括其自己的唯一索引密钥,还包括前一名称组成的唯一索引密钥的指针(例如,父表项标识符(PEID))。在CCN路由器中使用转发散列表的另一方法是在美国专利号8,243,735中描述的累积名称组成散列。
[0029]为转发包,所述系统使用每个表项结果的唯一索引密钥从最概括级到最具体级解析HSVLI的每个名称组成,以链接每个名称组成的转发散列表中的查询。与插入过程类似,如果大小小于或等于特定大小,则所述系统直接使用名称查询名称组成,如果大小更大,则所述系统使用压缩密钥查询名称组成。如果在
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1