用于IP查找和更新的动态树位图制造技术

技术编号:5411442 阅读:249 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种数据结构和方法,用于使用动态树位图结构(DTBM)来进行IP查找、插入和删除,该DTBM利用用于每个节点的子代指针的阵列,而不是典型的使用指向子代阵列的一个指针的TBM方法。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术整体涉及基于IP的数据网络、通信和计算机系统;更具体而言,涉及一种用于通过动态树位图(DTBM,dynamic tree bitmap)来表示动态IP路由器表的方法和系统。
技术介绍
随着光网络提供的带宽越来越高,需要更有效的方法来在高性能因特网路由器中进行IP查找和分组分类。通常,路由器被连接到几个不同的网络,并且通常利用含在分组报头中的信息以及分类规则表,将输入分组分类成流。该表被称作“路由器表”(等效于规则表)。当计算机与因特网上的另一计算机通信时,IP数据分组被通过一系列路由器而从源导向目的地,其中,所述一系列路由器读取目的地址,并且将分组重新传输到由该目的地址指示的其目的地或者到另一路由器,该另一路由器将进一步转发该分组直到该分组到达其目的地。在路由器与目的地之间的这些中间步骤的每一步被称为“下一跳”。输出接口和下一跳的组合被称为“路由”。由于通常存在超过一个的路由最终将分组导向其目的地,因此,在路由数据分组之前,路由器必须获知可以向其转发该分组的地址集合。通常,用于给定IP地址的合适的路由被编码于部分的或全部的该IP地址本身中。路由器的下一步骤是找到对应于该地址集合中的任何地址的路由。显然,由于存在一系列地址,因此,该路由器可以找到与该分组的地址相匹配的超过一个的路由。该路由器的任务是找到以下地址所定义的最佳路由,即该地址具有最多的与该分组的目的地址一样的位(bit)。通常使用分组的目的地址来完成分组分类。每个路由器表规则均是一-->对表单(F,NH),其中,F是过滤器,并且NH是下一跳。过滤器是目的地址前缀,其与具有该前缀的所有目的地址相匹配。关联的规则表被称为LMPT,并且W被用于指明前缀的最大可能长度。例如,过滤器10*匹配于从位序列(bit sequence)10开始的所有目的地址。通过使用路由查找表,路由器必然确定输出接口端口,由此而从连接到该接口的节点转发分组以及该分组的下一跳。通常,路由器表前缀的长度不能超过目的地址的长度W。对于网际协议第4版本(IPv4)来说,转发判定是基于在每个分组的报头中所携带的32位目的地址,并且W被认为是32位的。路由器的每个端口处的查找引擎使用适当的路由数据结构,以便为该分组的目的地址确定合适的输出链路。类似地,对于网际协议第6版本(IPv6)来说,转发判定是基于在每个分组的报头中所携带的128位目的地址,并且W被认为是128位的。常规地,路由器查找操作以线性方式实现。为了匹配而检查查找表中的每个条目。即使在找到匹配之后,该操作也必须持续贯穿该表以确定找到最佳匹配。由于因特网路由器表可以含有与给定目的地址d相匹配的若干规则,因此,打破僵局者(tie breaker)被用于从与该目的地址匹配的规则集合中选择规则。通常,通过选择与这样的最长前缀相关联的下一跳来打破僵局,其中,该最长前缀经由最长前缀匹配而与分组的目的地址相匹配。近年来已经较多地研究了用于最长前缀匹配的数据结构。三态内容可寻址存储器(TCAM)使用并行性来获得O(1)查找。TCAM的每个存储单元可以被设置成三种状态“0”、“1”和“?”(随意)中的一个。路由器表的前缀按照前缀长度的降序被存储在TCAM中。假设TCAM的每个字具有32个单元,则前缀10*被存储在TCAM字中作为10???...?,其中,?指明“随意”,并且在给定序列中存在30个?。为了进行最长前缀匹配,针对每个TCAM条目以及由TCAM仲裁逻辑所报告的第一(即,最长)匹配条目,对该目的地址进行并行匹配。因而,使用TCAM和按长度排序的线性列表,可以在O(1)时间内确定最长匹配前缀。可以在O(q)时间内插-->入或删除前缀,其中q是该表中不同前缀长度的数目。尽管TCAM为静态和动态路由器表提供了简单和有效的解决方案,然而,该解决方案相对于其它当前解决方案来说,需要专门化的硬件、更多的成本,并且使用更多的动力和板空间。在针对该问题的大量的一系列解决方案中,很少能达到性能、效率和成本的良好平衡。动态IP路由器表在本领域中是已知的,并且若干数据结构已经被提出用于动态LMPT。(参见美国专利No.7,031,320(下文称为‘320专利))。特别地,该‘320专利教导使用用于路由表的跳跃列表(skiplist),其中查找、插入、删除和更新必须从头节点开始(第8栏,第22-26行)。每个节点具有单个指针或多个指针,并且最左边的节点被称为头节点。另外,每个前缀长度具有其自己的散列表(hash table),以便存储匹配于对应前缀长度的路由条目。每个散列表仅存储精确匹配于其前缀长度的路由条目(第9栏,第17-27行)。每个节点具有范围从32到24的路由条目,并且如果存在对应于范围从32到24(且包括32和24)的每个前缀长度的路由条目,那么对应节点将具有指向九(9)个不同散列表的九(9)个指针。尽管这些结构可以改进插入/删除的复杂性,然而,该改进是以查找的复杂性为代价的。用于动态LMPT的树位图(TBM)数据结构已经由Eatherton等人之前在“Tree bitmap:hardware/software IP lookups with incrementalupdates”(SIGCOMM Comput.Commun.Rev.,34(2):97-122,2004)中提出,以便改进查找的复杂性。(另外参见美国专利申请No.2005/0157712)。尽管该数据结构导致了快速查找,然而,插入和删除造成过多的存储器访问。在插入和删除操作上TBM的糟糕性能的原因在于以下事实:在TBM中,节点的子代被存储在使用可变大小的存储块的邻近存储器中。这对插入和删除操作有两个不利后果。首先,需要复杂的存储器管理系统来分配和解除分配可变大小的存储块。其次,对前缀的插入和删除可能显著地改变节点所具有的子代的数目,从而导致糟糕的性能。这需要解除分配旧的存储块以及分配新的存储块。因此,在最差情况下,-->每个插入和删除可能需要超过3000次存储器访问。涉及使用内容可寻址存储器的硬件解决方案以及涉及修改网际协议的解决方案(即,向每个分组附加信息)也已经被提出以便提高路由分组的效率。不幸的是,专门化的硬件解决方案昂贵并且难以有效地使特定的需要个性化。因此,需要一种数据结构和方法,其在不顾此失彼的情况下提供非常高的查找和更新速率,达到性能、效率和成本的良好平衡。
技术实现思路
本专利技术提供了用于通过动态树位图(DTBM)来表示动态IP路由器表的方法和系统,所述动态树位图(DTBM)支持非常高的查找和更新速率。通过启用高速路由查找和更新操作,作为性能瓶颈的路由器被减少并且在某些情况下被消除。如本专利技术所涵盖的,通过使用一种被称为动态树位图(DTBM)的新型数据结构来构造动态路由表,所述动态树位图(DTBM)使用每个节点的子代指针的阵列(an array of child pointers)而不是在邻近存储器中的常规存储。作为树位图(TBM)的有效替代,在新颖的DTBM中,每个节点均具有子代指针的阵列。该变化极大地简化了存储器管理并且导致非常快的插入和删除,同时不必牺牲查找速度。本专利技术所需要的附加存储器都很好地处于市售SRAM的容量之内。相应地,本专利技术的本文档来自技高网
...

【技术保护点】
一种计算机可读介质,在其上存储有数据结构,所述数据结构包括: 用于表示Trie的前缀位图; 下一跳阵列; 子代指针的阵列;以及 非空子代数的计数; 其中所述前缀位图、所述下一跳阵列、所述子代指针的阵列以及所述非 空子代数的计数表示了所述Trie的节点。

【技术特征摘要】
【国外来华专利技术】US 2006-7-27 60/833,7211.一种计算机可读介质,在其上存储有数据结构,所述数据结构包括:用于表示Trie的前缀位图;下一跳阵列;子代指针的阵列;以及非空子代数的计数;其中所述前缀位图、所述下一跳阵列、所述子代指针的阵列以及所述非空子代数的计数表示了所述Trie的节点。2.一种使用数据结构来实现数据分组的目的地址的最长前缀匹配的方法,所述数据结构包括:用于表示子Trie的前缀位图、下一跳阵列、子代指针的阵列,以及非空子代数的计数,其中所述前缀位图、所述下一跳阵列、所述子代指针的阵列以及所述非空子代数的计数表示了所述子Trie的节点,所述方法包括:实现用于搜索Trie的查找。3.根据权利要求3所述的方法,其中所述数据结构是动态树位图(DTBM)结构,其中每个节点存储了内部位图(IBM),并且其中实现查找包括:通过标识子Trie中所存储的前缀,找到目的地址的最长前缀的长度来检索下一跳信息;使用所述目的地址来游走通过所述DTBM结构;以及使用在每个节点处存储的IBM来定位当前最长的匹配前缀。4.一种使用步幅为s的动态树位图(DTBM)数据结构来插入前缀的方法,所述DTBM包括:用于表示子Trie的前缀位图、下一跳阵列、子代指针的阵列,以及非空子代数的计数,其中所述前缀位图、所述下一跳阵列、所述子代指针的阵列以及所述非空子代数的计数表示了所述子Trie的节点,其中每个节点存储了内部位图(IBM),所述方法包括:游走通过所述DTBM每次一个节点,以便找到合适的节点来插入所述前缀,其中所述游走消耗所述前缀的s位;如果在所述游走期间,所述前缀剩下少于s位,则少于s位的所述前缀的剩余位被用于将所述前缀插入所遇到的最后的节点;以及如果不存在合适的节点,则将新的节点添加到所述DTBM,直到在所述前缀中剩下少于s位,其中少于s位的所述前缀的剩余位被用于将所述前缀插入所遇到的最后的节点。5.一种使用动态树位图(DTBM)数据结构来删除前缀的方法,所述动态树位图(DTBM)数据结构包括:用于表示子Trie的前缀位图、下一跳阵列、子代指针的阵列,以及非空子代数的计数,其中所述前缀位图、所述下一跳阵列、所述子代指针的阵列以及所述非空子代数的计数表示了所述子Trie的节点,其中每个节点存储了内部位图(IBM),所述方法包括:为了含有所述前缀的节点而搜索所述DTBM;以及如果在所述DTBM中找到所述前缀,则将其从节点Z移除。6.根据权利要求5所述的方法,其中如果节点Z的IBM是零并且节点Z没有子代,那么删除节点Z连同其连续先辈,所述连续先辈具有等于1的计数和等于零的IBM。7.一种使用动态树位图(DTBM)数据...

【专利技术属性】
技术研发人员:SK萨尼陆海斌
申请(专利权)人:佛罗里达大学研究基金公司
类型:发明
国别省市:US[美国]

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

1