利用对前缀长度进行两个搜索阶段的IP路由缓存制造技术

技术编号:16923171 阅读:42 留言:0更新日期:2017-12-31 17:11
本申请涉及利用对前缀长度进行两个搜索阶段的IP路由缓存。数据包在网元中被接收。网元具有高速缓冲存储器,其中缓存条目表示被储存在主存储器中的地址的一部分。目的地址和缓存条目各自包括二进制数。做出缓存条目的和目的地址的M个最高有效位是相同的第一确定。做出缓存条目的和目的地址的附加的M+L个最高有效位是相同的第二确定。路由信息随后被从高速缓冲存储器中检索出来,并且包根据该路由信息进行处理。

【技术实现步骤摘要】
利用对前缀长度进行两个搜索阶段的IP路由缓存版权声明本专利文件的公开内容的一部分包含受版权保护的材料。版权所有者不反对专利文件或专利公开内容中的任何一个的复制,如其在专利与商标局专利文档或记录中出现的,但是除此之外无论如何保留所有的版权权利。专利技术背景1.专利
本专利技术涉及数字信息的传输。更具体地,本专利技术涉及包(packets)在数据交换网络中的路由中的缓存操作(operations)。2.相关技术的描述本文中所使用的某些首字母缩略词和缩写的含义在表1中给出。表1-首字母缩略词和缩写DIP目的互联网协议地址DRAM动态随机存取存储器HCA主机通道适配器IP互联网协议LPM最长前缀匹配MSB最高有效位NIC网络接口卡RIF路由器接口SRAM静态随机存取存储器TCAM三元内容可寻址存储器现代互联网路由器基于在被称为路由表的转发信息的数据库中搜索包目的IP地址(DIP)来确定数据路由。路由表只储存被称为前缀的前导部分的一些,而不是储存完整DIP。前缀包括DIP的一定数目的最高有效位(themostsignificantbits)。出于在路由表中的DIP搜索的目的,其余位被视为“无关”位。然而,它们指定子网络或子网。属于子网络的计算机通过它们的IP地址中的公共前缀来寻址。最具体的匹配表条目(entries)(具有最长子网掩码的匹配表条目)被称为最长前缀匹配(LPM)。这是路由表中的条目,其中目的地址的前导地址位的最大数与表条目中的那些匹配。搜索用于LPM的路由表是路由吞吐量中的瓶颈。已经提出了各种基于硬件的解决方案。然而,实现这样的解决方案所需的电路变得复杂。此外,互联网流量的增量和对于降低延迟的需求导致具有高功耗和散热的相对昂贵的路由器电路。例如,由SorayaKasnavi等人于2008年在ComputerNetworks52第303–326页中发表的文献“ACache-BasedInternetProtocolAddressLookupArchitecture”提出了具有基于硬件的LPM匹配方法的三元内容可寻址存储器(TCAM)。然而,TCAM存储器虽然减少了哈希(hash)查找的数量但仍是昂贵的。缓解IP查找的性能的一个选项是实现缓存。与在主数据库上运行的LPM算法相反,缓存可向查找结果提供对缓存数据库的单一访问。只有导致缓存缺失的搜索需要通过LPM算法的IP地址搜索。缓存假定在短时间段内相同的IP地址被搜索多次。众所周知,通常在网络中且特别是在互联网上的流量不是均匀分布的。相反,流量已被显示为遵循可用齐夫(Zipf)分布的幂律建模的重尾分布。这样的分布按照前缀、按照IP地址且按照流来观察,显示出在所有情况下,大多数流量集中在所有元素的一小部分上。这种分配可运用在良好构建的缓存方案中。已经针对LPM缓存提出了许多解决方案。其中一些在缓存和外部设备或网元(例如,DRAM、路由器或其他网络设备)上采用相同的算法。其他方案使缓存与在外部设备中使用的算法无关。在一种配置中,SRAM充当用于外部设备的缓存。用于缓存的最简单的解决方案是找到精确匹配,使得每个IP地址被缓存为SRAM上的条目。这在许多情况下可能已经足够了。然而,由缓存覆盖的IP地址的数量可使用LPM特征得以大幅增加。通常,任何不具有兼容的较长前缀的前缀都可被直接缓存并用于匹配。然而,对于具有较长兼容前缀的前缀(prefixes)来说,缓存可以引起“缓存隐藏”问题,除非所有较长兼容前缀也已被缓存。未在缓存中的一个这样的较长兼容前缀的包将根据储存在缓存中的较短前缀被错误地路由。存在处理缓存隐藏的不同的方法。在一个解决方案中,当前缀被放置在缓存中时,所有较长兼容前缀也被放置。然而,实现起来是复杂的,特别是从缓存中逐出是复杂的。在更简单的方式中,路由表中存在的最长前缀的长度用于缓存。这在由C.Kim等人在第十届国际无源和有源网络测量(PAM)的会议记录(the10thInternationalConferenceonPassiveandActiveNetworkMeasurement)中所发表的文献“RevisitingRouteCaching:theWorldShouldBeFlat”中进行了探索,但假设长于/24的前缀不在表中,或者使用小的附加表来处理。该解决方案在缓存上为包创建了/24条目,并有效地缓存了每个条目256个子网地址(2(32-24)=28=256)。然而,方案的直接实现是不切实际的,因为表中可存在高达/32的前缀。如由Y.Liu、S.O.Amin和L.Wang于2013年1月在ACMSIGCOMMComputerCommunicationReview中发表的文献“EfficientFibCachingUsingMinimalNon-OverlappingPrefixes”中所提出的,另一种方式涉及路由表的扩展,以确保它不具有兼容前缀。例如,如果/24前缀与/32前缀兼容,则产生与/32前缀在最后位中不兼容的/25、/26、...、/31位前缀。那些前缀包括除了/32前缀之外所有可能的DIP地址在/24前缀中的模式。因此,出于路由的目的,当存在/32前缀时,它们等同于/24前缀。专利技术概述根据本专利技术的公开实施例,缓存操作使用2阶段LPM搜索来进行优化。在第一阶段中,缓存条目的可选个数(M)的最高有效位与掩码DIP进行比较。在匹配时,在第二阶段中,检索值L,并且DIP和缓存条目的(M+L)个最高有效位进行比较。如果第二阶段中的匹配构成缓存命中,则转发信息从缓存中被检索出来。根据本专利技术的实施例提供了一种方法,其通过经由数据网络接收具有目的地址的包并提供高速缓冲存储器来执行,在该高速缓冲存储器中缓存条目表示储存在主存储器中的地址的一部分。目的地址和缓存条目各自包括二进制数。该方法进一步通过做出缓存条目之一的和目的地址的M个最高有效位相同的第一确定并做出缓存条目之一的和目的地址的附加的M+L个最高有效位相同的第二确定来执行。该方法通过从高速缓冲存储器检索路由信息并根据路由信息处理包而响应于第二确定来进一步执行。该方法的一个方面包括经由数据网络接收新的包,以及使用新的包,利用数目M的新值迭代做出第一确定和做出第二确定的步骤。在该方法的另一方面中,缓存条目在高速缓冲存储器中表示为哈希表。做出第一确定和做出第二确定的步骤包括对哈希表的哈希查找。根据该方法的又一方面,缓存条目在高速缓冲存储器中表示为多路哈希表。在该方法的一个方面中,缓存条目在高速缓冲存储器中表示为第一哈希表和第二哈希表。做出第一确定和做出第二确定的步骤包括分别对第一哈希表和第二哈希表的哈希查找。根据该方法的再一方面,分配数目M通过使用数目M的不同测试值由以下操作来执行:确定覆盖地址空间所需的缓存条目数,并向所述不同测试值中的对应于确定的缓存条目最低数的测试值分配数目M。根据该方法的其他方面,分配数目M通过确定覆盖地址空间所需的缓存条目数使用数目M的不同测试值来执行,并且当选择条目数等于缓存大小时,向对应于地址空间的最大覆盖区域的不同测试值之一分配数目M。该方法的附加方面包括在新的包被接收的同时迭代地调整数目M。根据该方法的另一方面,调整数目M通过以下操作来执行:在预定的时间间本文档来自技高网...
利用对前缀长度进行两个搜索阶段的IP路由缓存

【技术保护点】
一种方法,包括以下步骤:经由数据网络接收具有目的地址的包;提供其中具有缓存条目的高速缓冲存储器,所述缓存条目表示主存储器的地址的一部分,所述目的地址和所述缓存条目各自包括具有最高有效位的二进制数;分配数目M;做出所述缓存条目之一的M个最高有效位和所述目的地址的M个最高有效位是相同的第一确定;做出所述缓存条目之一的附加的M+L个最高有效位和所述目的地址的附加的M+L个最高有效位是相同的第二确定;响应于所述第二确定,从所述高速缓冲存储器中检索路由信息;以及根据所述路由信息处理所述包。

【技术特征摘要】
2016.06.19 US 15/186,4771.一种方法,包括以下步骤:经由数据网络接收具有目的地址的包;提供其中具有缓存条目的高速缓冲存储器,所述缓存条目表示主存储器的地址的一部分,所述目的地址和所述缓存条目各自包括具有最高有效位的二进制数;分配数目M;做出所述缓存条目之一的M个最高有效位和所述目的地址的M个最高有效位是相同的第一确定;做出所述缓存条目之一的附加的M+L个最高有效位和所述目的地址的附加的M+L个最高有效位是相同的第二确定;响应于所述第二确定,从所述高速缓冲存储器中检索路由信息;以及根据所述路由信息处理所述包。2.根据权利要求1所述的方法,还包括以下步骤:经由所述数据网络接收新的包,并使用所述新的包作为所述包,以所述数目M的新值迭代做出第一确定和做出第二确定的所述步骤。3.根据权利要求1所述的方法,其中,所述缓存条目在所述高速缓冲存储器中被表示为哈希表,并且做出第一确定和做出第二确定的所述步骤包括对所述哈希表的哈希查找。4.根据权利要求3所述的方法,其中,所述缓存条目在所述高速缓冲存储器中被表示为多路哈希表。5.根据权利要求3所述的方法,其中,所述缓存条目在所述高速缓冲存储器中被表示为第一哈希表和第二哈希表,并且做出第一确定和做出第二确定的所述步骤包括分别对所述第一哈希表和所述第二哈希表进行哈希查找。6.根据权利要求1所述的方法,其中,分配数目M是通过以下操作执行的:以所述数目M的不同测试值确定覆盖地址空间所需的缓存条目的数目;以及将所述数目M分配给所述不同测试值中的对应于所确定的缓存条目的最低数目的测试值。7.根据权利要求1所述的方法,其中,分配数目M是通过以下操作执行的:以所述数目M的不同测试值确定覆盖地址空间所需的缓存条目的数目;以及当选择等于缓存大小的条目的数目时,将所述数目M分配给所述不同测试值中的对应于所述地址空间的最大覆盖范围的测试值。8.根据权利要求1所述的方法,还包括在新的包被接收的同时迭代地调整所述数目M。9.根据权利要求8所述的方法,其中,调整所述数目M通过以下步骤执行:在预定义的时间间隔期间,将所述数目M分配给测试值;测量所述测试值下的所述高速缓冲存储器中的命中率;以不同测试值迭代分配和测量命中率的所述步骤;以及将所述数目M重新分配给所述不同测试值中的对应于最高命中率的测试值。10.一种装置,包括:网元,所述网元可操作用于经由数据...

【专利技术属性】
技术研发人员:费马·克拉夫齐克佩德罗·雷维列戈萨尔瓦托·蓬塔雷利埃维夫·科菲尔阿米尔·罗伊特施泰因吉尔·利维
申请(专利权)人:迈络思科技TLV有限公司
类型:发明
国别省市:以色列,IL

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1