CN1655533B - 基于最长前缀匹配算法的过滤器 - Google Patents
基于最长前缀匹配算法的过滤器 Download PDFInfo
- Publication number
- CN1655533B CN1655533B CN2005100077574A CN200510007757A CN1655533B CN 1655533 B CN1655533 B CN 1655533B CN 2005100077574 A CN2005100077574 A CN 2005100077574A CN 200510007757 A CN200510007757 A CN 200510007757A CN 1655533 B CN1655533 B CN 1655533B
- Authority
- CN
- China
- Prior art keywords
- prefix
- longest
- address
- filtered fields
- potential
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims abstract description 31
- 238000001914 filtration Methods 0.000 claims abstract description 13
- 239000000284 extract Substances 0.000 claims abstract description 3
- 230000008878 coupling Effects 0.000 claims description 20
- 238000010168 coupling process Methods 0.000 claims description 20
- 238000005859 coupling reaction Methods 0.000 claims description 20
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 3
- 230000008901 benefit Effects 0.000 abstract description 4
- 238000013459 approach Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 235000012364 Peperomia pellucida Nutrition 0.000 description 1
- 240000007711 Peperomia pellucida Species 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 208000023368 generalized pustular psoriasis Diseases 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
- H04L12/4625—Single bridge functionality, e.g. connection of two networks over a single bridge
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/46—Cluster building
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/167—Adaptation for transition between two IP versions, e.g. between IPv4 and IPv6
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Networks Using Active Elements (AREA)
- Noise Elimination (AREA)
- Complex Calculations (AREA)
Abstract
本发明提出了关于最长前缀匹配的方法和关于IP地址查找的系统。所述方法和系统具体涉及IPv6,包括对一个IP地址查找最长前缀匹配(LPM)。本发明方法导致使用过滤器进行LPM。在本发明的实施例中,采用部分地址过滤以进一步降低过滤要求。与现有技术方法相比,减少过滤操作的次数具有使LPM算法更快和实现成本更低的优点。还描述了“理想偏移过滤器”,其从正在处理的IP地址中提取固定大小滑动窗口的比特。
Description
技术领域
本发明涉及基于计算机的通信网络,更具体的是,涉及用于例如上述网络的路由决策的执行最长前缀匹配(LPM)查找的系统和方法。
背景技术
通信网络,例如因特网,使用包报头中的寻址信息将包在网络之间向目的节点转发。典型地,路由信息实际上是分层的,这样目的地址包括托管(host)目的节点的网络和任何子网络的地址。这种分层路由信息类似于10位数字的电话号码,其中前三位数字表示服务地区的地区代码,第二个三位数字表示该地区中的一个特定交换机,后面的四位数字代表一个该交换机服务的终端用户。因此,当呼叫被呼叫发起者发出后,该呼叫者连接的交换机仅需要确定地区代码,以将该呼叫接到该国家的适当地区。类似地,路由器通常查看IP地址中的分层路由信息以确定下一跳,而不关心目的节点的详细地址。与电话号码不同的是,IP地址中前缀的长度并不是固定的,这使得查找更加复杂。
当对因特网服务的期望增加时,提高带宽的需求也随之增加。有很多因素影响数据流过因特网的速度,例如线路速率,数据服务质量等。一个规定性能的主要因素是路由决策所花费的时间。对于线路速率是典型的瓶颈的低速拨号业务来说,当改善路由决策不会显著地增加总的业务传输时,路由决策的速度变成限制快速传输媒体(如光链路)带宽的因素,因此,本算法就应运而生了。
当因特网用户的数量增加时,对唯一地址的需求也在增加。因此,提供最多223个唯一地址的IPv4 32位地址空间也在迅速地耗尽。虽然已经提出了例如网络地址转换的技术,以扩展IPv4地址空间的可用性,但这些解决方案却破坏了透明的端到端连接。具有128位地址字段的IPv6已被部分引入,以改善地址空间问题。
增加地址报头的最终结果是每一个路由器必须潜在地查看非常长的地址,以做出路由决策。此外,能够对更多节点寻址意味着IPv6路由表可潜在地包含比IPv4可能包含的更多的路由。
如前所述,分层寻址方案使路由器能够将节点分组成网络。这减少了路由器的转发表中记录的数量,因为路由器可基于只匹配地址的网络部分、前缀做出路由决策,而无需整个地址。
前缀匹配包含将部分地址与路由表中的记录进行比较。当然,一个精确的路由算法可以快速给出最佳的路由信息,但典型地,这种查找要求路由表不切实际地大,且难于更新。确定最长前缀匹配的技术已经发展成为一个解决方案。
当路由器以较高速度转发时,转发算法的时间效率能对系统性能产生重大的影响。更有效率的算法,例如本发明提供的算法,会允许达到更高的系统吞吐量。
应当注意,本算法虽是针对IPv6的,但没有理由认为它不能用于IPv4或者任何其他需要LPM查找的应用。
涉及IP路由查找的现有技术包括美国专利6,018,524,其于2000年1月25日公开,发明人为特纳(Turner)等。特纳等人的专利公开了一种使用哈希表对前缀长度进行折半查找的算法。为了方便使用哈希表的折半查找,必须在哈希表中插入标记,以指示路由表中较长前缀长度的记录存在。标记提供表中存在较长前缀的指示,该较长前缀可提供更好的匹配,还可包含用于较短前缀的下一跳信息,该较短前缀已被发现导致当前查找失败。这些标记占据哈希表的重要部分,能占据哈希表内容的10%到60%(典型地为30%),导致更频繁的哈希冲突。在IPv6的情况下,使用该算法需要多达7次的哈希查找,不包括冲突。还有其它方案能稍微降低哈希查找的次数,但是是以额外的处理和额外的表作为代价。
第二个现有技术的方案在达玛普里卡尔(Dharmapurikar)等人的题为“Longest Prefix Matching Using Bloom Filter(使用Bloom过滤器的最长前缀匹配)”的论文中描述。该论文于2003年8月25-29日在德国卡尔斯鲁厄(Karlsruhe)的SIGCOMM03上发表。论文描述了使用一组过滤器(哈希功能)来确定地址应归入哪一组前缀长度。然后在哈希表中按线性顺序搜索该组长度。为了确定哪些前缀长度可用于某个特定地址,对于路由表中的每一个前缀长度都必须使用一个过滤器。考虑到IPv6的任何可能的路由表,必须有128个过滤器。为了有效地进行过滤,该算法限于具有大的晶体管/门数量的硬件实现,以获得期望的并行处理的水平。
执行哈希查找是个代价高的操作,特别是对于IPv6。哈希功能需要应用到关键字上,并且一部分结果用于索引存储器中的记录。由于哈希并不是一对一的映射,因此必须进行冲突检测,这需要在每一个哈希表的记录中存储最初的16字节(128比特)IPv6地址或者一部分地址。冲突可以用许多方法解决,但典型地这些方法都需要另外的存储器存取,以及每个哈希记录中的附加信息。总之,每个哈希查找必须承担大概20个字节的纯开销。作为使用哈希表的性能结果,其目标是降低哈希查找的次数,以及降低哈希记录的数量。
目前大多数其他的IP转发算法是基于树的。因此,它们的性能特点直接取决于地址中的比特数和路由表中记录的数量。由于IPv6地址的长度,现有基于树的IPv4转发算法不能在存储器存储量和存储器存取方面较好地按比例增加到IPv6规模的地址。使用这些算法会导致路由表数据结构的大小激增,以及执行查找所需的存储器等待时间增加。此外,现有的查找算法没有利用IPv6地址的一些用于简化IPv6转发的特性,例如分层寻址。事实上,这些IPv6寻址特性更可能降低现有IPv4查找算法的性能而不是增加。
发明内容
本发明寻求克服现有技术的限制,采用一种不同的方法以降低执行最长前缀匹配所需哈希查找的次数。使用部分地址过滤以降低哈希查找的次数。与最接近的现有技术相比较,减少过滤器和过滤操作的数量具有使LPM算法更快及实现成本更低的优点。为进一步地改善性能,一些实施例使用其它的过滤器,例如理想偏移过滤器,其从正在处理的IP地址中提取固定大小的滑动窗口来进一步地缩小查找结果。
因此,根据本发明的第一个方面,提供了一种执行最长前缀匹配的方法,包括下述步骤:a)将关键字过滤成多个过滤字段,每一个过滤字段与各自的过滤表相关联;b)在各自的过滤表中对每一个过滤字段执行最长前缀匹配(LPM)操作,其中每个LPM操作产生一个指示一组潜在匹配所述关键字的前缀的长度的结果;c)交叉所述结果,以进一步减少潜在前缀长度组;d)基于先前指示的潜在前缀长度执行一系列的哈希查找,从最长的潜在前缀长度开始,向逐步更短的潜在前缀长度进行,直到找到匹配前缀,所述匹配前缀是匹配所述关键字的最长前缀。
根据本发明的第二个方面,提供一种执行最长前缀匹配的系统,包括:多个过滤字段,每个过滤字段都通过过滤关键字产生,并与过滤表相关联;用于在各自的过滤表中对每一个过滤字段执行最长前缀匹配(LPM)操作的装置,其中,每个LPM操作产生一个指示一组用于匹配所述关键字的最长前缀的潜在前缀长度的结果;用于交叉所述结果以减少潜在前缀长度组的装置;以及基于先前指示的潜在前缀长度执行一系列哈希查找的装置,从最长的潜在前缀长度开始,向逐步更短的潜在前缀长度进行,直到找到匹配前缀,所述匹配前缀是匹配所述关键字的最长前缀。
附图说明
参考附图,对本发明进行更为详细的描述,其中:
图1示出了基本的比特交织过滤器;
图2提供了根据本发明的查找算法和数据结构的示意图;
图3说明了包括部分过滤器的过程的变形;
图4示出了用于选择理想比特分组的固定大小的滑动窗口;
图5示出了另一个实施例,其中过滤器基于理想偏移。
具体实施方式
本发明利用了一种称为过滤的过程,其一般的操作是从某一字段中选择一些比特并将其按原始顺序串连,形成过滤字段。由于保持了比特的顺序,因此地址中包含的前缀信息被传递到过滤字段中,每一个过滤字段都有自己更小的前缀。因此,相关过滤字段表中过滤字段的最长前缀匹配在逻辑上是原始查找关键字的部分匹配。该部分匹配指示一组前缀长度,对于这些前缀长度,可能有匹配查找关键字的前缀。可使用任意数量的过滤字段,每一个过滤字段都与自己的过滤字段表相关联。每一个过滤字段可以使用不同的方法从查找关键字中提取比特。
实现这一过程的一种具体的过滤器称为比特交织过滤器。比特交织是选取一个地址并将其分成过滤字段的过程,这样该地址的第一个比特变成第一个过滤字段的第一个比特,地址的第二个比特变成第二个过滤字段的第一个比特,地址的第三个比特变成第一个过滤字段的第二个比特,地址的第四个比特变成第二个过滤字段的第二个比特,等等。图1示出了这个比特交织过程。阴影区域表示关键字和产生的过滤字段的前缀部分。
本发明能分解成四个步骤。图2示出了本发明的总体视图和执行本算法所包括的步骤。
如图2所示,本算法的第一步是过滤字段的提取步骤。其采用多个过滤字段的提取方法过滤查找关键字或IP地址,以产生一组过滤字段。每个过滤字段就像用于其关联过滤表的小关键字。
第二步包括使用步骤1得到的过滤字段,在各自的过滤表中并行地对每个字段执行LPM查找。可以使用任何LPM算法以执行这些查找,包括直线排列查找或任意树查找。查找算法的选择取决于过滤字段的大小和数量。每个查找的结果是一个比特字段,在IPv6的情况下,是128比特长,其中每个比特指示一个前缀长度,对于该前缀长度,有潜在匹配查找关键字的前缀。作为这些查找的结果,确定了几组潜在前缀长度。这几组潜在前缀长度可以通过找到这些组的交集进一步减少,以产生确定的一组前缀长度。这最后一组潜在前缀长度可包含一个或多个设置比特(set bit),这些比特可进一步分类。其中一个设置比特潜在地指示最长匹配前缀的长度,任何高于该比特的比特都是误报(false positive),所有低于该比特的比特指示更短的匹配前缀以及其它的误报。重要的是注意过滤过程从来不会导致漏报(false negative),在漏报中,实际的匹配前缀不会在最后一组潜在前缀长度中指示其长度。
在交叉的结果之后,进行一系列的哈希查找,在这个过程中使用可能的前缀长度,在通过长度逻辑聚集前缀的哈希表中,查找匹配关键字的前缀。为简化,如图2所示,采用线性查找从最长的潜在前缀长度开始确定匹配前缀。线性查找持续到出现第一次匹配,这就是最长匹配前缀。应当理解,也可以使用其他的查找算法代替线性查找。
除了执行LPM查找算法以外,本发明还包括插入和删除路由规则的过程。插入新的路由就像查找地址一样简单和快速。首先,将路由加入对应前缀长度的哈希表中。然后过滤前缀,过滤字段用作关联过滤表中的关键字。然后根据相关的LPM算法更新过滤字段表,与关键字相关的记录有适当的比特组(bit set),以指示新路由的前缀长度的存在。
删除路由规则比插入稍微复杂一些。幸运的是,这个过程可以分成两个部分:一部分能很快发生,并且确保路由立即从所考虑的地方除去,另一部分作为内务功能不经常发生,以减少过滤误报的次数。为删除路由,只需要将其从哈希表中除去。这将保证查找时绝不会找到该路由。如果删除的路由是某个特定前缀长度的唯一实例,则过滤表可以在常规地址查找中错误指示潜在命中该前缀长度。由于该算法用于处理例如上述的误报,因此误报只对查找性能有轻微的负面影响。为减少误报的次数,过滤表必须更新。这是处理稍微加强的工作,但可以有几种方式来完成,每种方式都有其优点。最明显的优点是只周期性地重建过滤表,周期可用路由更新的次数或者时间表示。不过,这涉及遍历(traverse)整个路由规则表。
其它执行更新的选择包括使用计数过滤器计算引起某个特定长度出现在过滤表中的前缀的数量,或遍历按层表示的树,以及只查看给定长度的路由。所幸的是,这个复杂的工作仅需要尽最大的努力进行即可。
本发明可以有几种变形,每一种都有自己的性能特点。每一种变形都是由过滤器的数量和定义确定。通过替换部分算法(例如哈希查找、线性查找等)的其他变形也是可以的。
一个变形包括部分地址过滤。在IPv6中,过滤每一个比特会导致或者过滤字段太多,或者过滤字段太大。在部分地址过滤方案中,仅对一部分IPv6地址(例如前64个比特)进行过滤。这可通过4个16比特的过滤器产生四个字段来进行。这些过滤器从比特位置0、1、2和3开始,并选择每第四个比特。图3示出了这种过滤器的实例。
另一个变形包括理想偏移过滤器,其在2003年11月24日递交的待决美国专利申请中有更为详尽的描述。该待决美国专利申请的内容在此作为参考引入本申请中。图4示出了固定大小的滑动窗口,用于选择理想的比特分组以最佳地将地址分组,以减少组内前缀长度的数量。在这个实施例中,来自滑动窗口的比特用作额外的过滤器。这个方案进一步有两个方面,第一是只利用滑动窗口的理想位置的统计值构建过滤器。在这种情况下,如图5所示,滑动窗口的位置是固定的。第二是基于当前的路由表动态地确定窗口的理想位置。
本申请提出的算法可以采用硬件、软件或软硬件结合轻易地实现。可供选择的例子包括ASICS、FPGAs、GPPs和NPs。显然,本领域的技术人员也可以采用其他的平台来实现。
本发明可以使最长前缀匹配的实现有很低的成本和特别高的速度,可有效地改变关键字长度和前缀的数量。当应用于IPv6时,本发明利用了IPv6地址的特性,避免了IPv6的可伸缩性问题。
通过对本发明的具体实施例的描述和说明,很显然,本领域的技术人员在不偏离基本思想的前提下,可以进行许许多多的变化。不过应当理解,这些变化将落入所附权利要求限定的本发明的范围之内。
Claims (21)
1.一种执行最长前缀匹配的方法,包括下述步骤:
a)将关键字过滤成多个过滤字段,每一个过滤字段都与各自的过滤表相关联;
b)在各自的过滤表中,对每一个过滤字段进行最长前缀匹配操作,其中每个最长前缀匹配操作产生一个指示潜在匹配所述关键字的前缀的长度的结果;
c)交叉所述结果,以获得一组潜在前缀长度;以及
d)基于先前指示的潜在前缀长度,执行一系列的哈希查找,从最长的潜在前缀长度开始,向逐步更短的潜在前缀长度进行,直到找到匹配前缀,所述匹配前缀就是匹配所述关键字的最长前缀。
2.根据权利要求1所述的方法,其中每次过滤可以使用不同的方法进行过滤字段的提取。
3.根据权利要求1所述的方法,其中所述关键字是IP地址。
4.根据权利要求3所述的方法,其中所述哈希查找用于路由决策。
5.根据权利要求3所述的方法,其中所述多个过滤字段通过从所述IP地址中提取比特构建。
6.根据权利要求5所述的方法,其中所述提取的比特被串连成过滤字段,每个过滤字段作为用于所述关联过滤表的关键字。
7.根据权利要求1所述的方法,其中所述对每个过滤字段和关联过滤表的最长前缀匹配操作是并行执行的。
8.根据权利要求7所述的方法,其中使用查找表执行最长前缀匹配操作。
9.根据权利要求7所述的方法,其中使用树查找执行最长前缀匹配操作。
10.根据权利要求1所述的方法用于执行将新路由插入哈希表中。
11.根据权利要求1所述的方法用于从哈希表中删除路由。
12.根据权利要求11所述的方法,其中更新所述哈希表以删除路由。
13.根据权利要求3所述的方法,其中只有部分IP地址被过滤成过滤字段。
14.根据权利要求3所述的方法,其中所述IP地址长度为128比特。
15.根据权利要求3所述的方法,其中所述IP地址长度为32比特。
16.一种执行最长前缀匹配的系统,包括:
多个过滤字段,每个过滤字段通过过滤关键字构建,并与各自的过滤表相关联;
用于在各自的过滤表中对每一个过滤字段进行最长前缀匹配操作的装置,其中每个最长前缀匹配操作产生指示匹配所述关键字的最长前缀的潜在前缀长度的结果;
用于交叉所述结果以获得一组潜在前缀长度的装置;以及
用于在多个逻辑哈希表中采用线性方式查找最长前缀匹配的装置,其中每个哈希表与特定前缀长度相关联,所述查找使用所述一组潜在前缀长度进行,从最长的潜在前缀长度开始,向逐步更短的潜在前缀长度进行,直到找到匹配前缀。
17.根据权利要求16所述的系统,其中所述过滤字段由比特交织过滤器形成。
18.根据权利要求16所述的系统,其中所述关键字是IP地址。
19.根据权利要求16所述的系统,其中所述最长前缀匹配操作在查找表中执行。
20.根据权利要求18所述的系统,其中所述IP地址长度为符合IPv6的128比特。
21.根据权利要求18所述的系统,其中所述IP地址长度为符合IPv4的32比特。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/773,225 US7433355B2 (en) | 2004-02-09 | 2004-02-09 | Filter based longest prefix match algorithm |
US10/773,225 | 2004-02-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1655533A CN1655533A (zh) | 2005-08-17 |
CN1655533B true CN1655533B (zh) | 2010-04-28 |
Family
ID=34679389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005100077574A Expired - Fee Related CN1655533B (zh) | 2004-02-09 | 2005-02-16 | 基于最长前缀匹配算法的过滤器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7433355B2 (zh) |
EP (1) | EP1562337B1 (zh) |
CN (1) | CN1655533B (zh) |
AT (1) | ATE429755T1 (zh) |
DE (1) | DE602005014026D1 (zh) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8095508B2 (en) | 2000-04-07 | 2012-01-10 | Washington University | Intelligent data storage and processing using FPGA devices |
US7382787B1 (en) | 2001-07-30 | 2008-06-03 | Cisco Technology, Inc. | Packet routing and switching device |
US20090006659A1 (en) * | 2001-10-19 | 2009-01-01 | Collins Jack M | Advanced mezzanine card for digital network data inspection |
US7453883B1 (en) * | 2003-04-14 | 2008-11-18 | Cisco Technology, Inc. | Method for compressing route data in a router |
US20070277036A1 (en) | 2003-05-23 | 2007-11-29 | Washington University, A Corporation Of The State Of Missouri | Intelligent data storage and processing using fpga devices |
US10572824B2 (en) | 2003-05-23 | 2020-02-25 | Ip Reservoir, Llc | System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines |
US7602785B2 (en) * | 2004-02-09 | 2009-10-13 | Washington University | Method and system for performing longest prefix matching for network address lookup using bloom filters |
US7505459B2 (en) * | 2004-03-30 | 2009-03-17 | Teknovus, Inc. | Method and apparatus for switching packets in a passive optical network |
US7403526B1 (en) * | 2004-05-17 | 2008-07-22 | Cisco Technology, Inc. | Partitioning and filtering a search space of particular use for determining a longest prefix match thereon |
US7917299B2 (en) | 2005-03-03 | 2011-03-29 | Washington University | Method and apparatus for performing similarity searching on a data stream with respect to a query string |
CN100396057C (zh) * | 2005-10-21 | 2008-06-18 | 清华大学 | 基于有状态过滤引擎的高速分组检测方法 |
US7702629B2 (en) | 2005-12-02 | 2010-04-20 | Exegy Incorporated | Method and device for high performance regular expression pattern matching |
US7954114B2 (en) | 2006-01-26 | 2011-05-31 | Exegy Incorporated | Firmware socket module for FPGA-based pipeline processing |
US7860106B2 (en) * | 2006-02-13 | 2010-12-28 | Wind River Systems, Inc. | System and method for routing table computation and analysis |
JP4825724B2 (ja) * | 2006-06-09 | 2011-11-30 | 株式会社リコー | ネットワーク機器 |
US7885268B2 (en) * | 2006-11-10 | 2011-02-08 | Broadcom Corporation | Method and system for hash table based routing via table and prefix aggregation |
US7660793B2 (en) | 2006-11-13 | 2010-02-09 | Exegy Incorporated | Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors |
US8326819B2 (en) | 2006-11-13 | 2012-12-04 | Exegy Incorporated | Method and system for high performance data metatagging and data indexing using coprocessors |
US8640215B2 (en) * | 2007-03-23 | 2014-01-28 | Microsoft Corporation | Secure isolation of application pools |
US8046492B1 (en) * | 2007-11-06 | 2011-10-25 | Juniper Networks, Inc. | Offset independent filtering |
US8250080B1 (en) * | 2008-01-11 | 2012-08-21 | Google Inc. | Filtering in search engines |
US8374986B2 (en) | 2008-05-15 | 2013-02-12 | Exegy Incorporated | Method and system for accelerated stream processing |
US8018940B2 (en) * | 2008-08-13 | 2011-09-13 | Alcatel Lucent | Network address lookup based on bloom filters |
US7990973B2 (en) * | 2008-08-13 | 2011-08-02 | Alcatel-Lucent Usa Inc. | Hash functions for applications such as network address lookup |
CN101556610B (zh) * | 2009-05-04 | 2011-12-21 | 中兴通讯股份有限公司 | 网络处理器使用的建表和查表方法 |
US8675661B1 (en) * | 2009-05-07 | 2014-03-18 | Sprint Communications Company L.P. | Allocating IP version fields to increase address space |
US8769057B1 (en) | 2009-05-07 | 2014-07-01 | Sprint Communications Company L.P. | Employing a hierarchy of servers to resolve fractional IP addresses |
CN101778142B (zh) * | 2009-12-11 | 2012-10-24 | 东南大学 | 比特串和哈希函数组合的网络地址前缀保留的匿名化方法 |
CN101827137B (zh) * | 2010-04-13 | 2013-01-30 | 西安邮电学院 | 一种基于哈希表和扩展存储器的高性能IPv6地址查找方法 |
US8880507B2 (en) | 2010-07-22 | 2014-11-04 | Brocade Communications Systems, Inc. | Longest prefix match using binary search tree |
US8880494B2 (en) * | 2011-07-28 | 2014-11-04 | Brocade Communications Systems, Inc. | Longest prefix match scheme |
US9633093B2 (en) | 2012-10-23 | 2017-04-25 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
US10133802B2 (en) | 2012-10-23 | 2018-11-20 | Ip Reservoir, Llc | Method and apparatus for accelerated record layout detection |
US10146845B2 (en) | 2012-10-23 | 2018-12-04 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
CN103078754B (zh) * | 2012-12-29 | 2016-09-28 | 大连环宇移动科技有限公司 | 一种基于计数型bloom filter的网络数据流统计方法 |
CN103220223B (zh) * | 2013-04-26 | 2016-04-20 | 北京百度网讯科技有限公司 | 网络数据流分类方法和系统 |
US9444731B2 (en) | 2013-05-24 | 2016-09-13 | Cisco Technology, Inc. | Methods and systems for data packet routing |
US9647941B2 (en) * | 2013-10-04 | 2017-05-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Hierarchical hashing for longest prefix matching |
WO2015056818A1 (en) * | 2013-10-14 | 2015-04-23 | Inha-Industry Partnership Institute | Counting bloom filter |
CN103581023A (zh) * | 2013-11-06 | 2014-02-12 | 盛科网络(苏州)有限公司 | 实现最长掩码匹配的方法及装置 |
WO2015164639A1 (en) | 2014-04-23 | 2015-10-29 | Ip Reservoir, Llc | Method and apparatus for accelerated data translation |
US9596181B1 (en) * | 2014-10-20 | 2017-03-14 | Juniper Networks, Inc. | Two stage bloom filter for longest prefix match |
US9654397B2 (en) * | 2015-03-13 | 2017-05-16 | Mediatek Inc. | Method for looking up data in hash tables and associated network device |
US9979650B1 (en) | 2015-03-30 | 2018-05-22 | Juniper Networks, Inc. | Forwarding packets using a probabilistic filter and a grouping technique |
US10942943B2 (en) | 2015-10-29 | 2021-03-09 | Ip Reservoir, Llc | Dynamic field data translation to support high performance stream data processing |
US9985885B1 (en) | 2015-12-11 | 2018-05-29 | Amazon Technologies, Inc. | Aggregating common portions of forwarding routes |
US9992111B2 (en) * | 2016-01-21 | 2018-06-05 | Cisco Technology, Inc. | Router table scaling in modular platforms |
WO2018119035A1 (en) | 2016-12-22 | 2018-06-28 | Ip Reservoir, Llc | Pipelines for hardware-accelerated machine learning |
US10803040B2 (en) | 2017-08-28 | 2020-10-13 | International Business Machines Corporation | Efficient and accurate lookups of data by a stream processor using a hash table |
CN111259203B (zh) * | 2020-01-08 | 2023-08-25 | 上海兆芯集成电路股份有限公司 | 数据压缩器以及数据压缩方法 |
EP3859552B1 (en) | 2020-01-30 | 2021-11-17 | Ovh | Method and system for handling content of data packet/frames using an adapted bloom filter |
US11502957B2 (en) * | 2020-05-14 | 2022-11-15 | Mellanox Technologies, Ltd. | Avoiding markers for longest prefix match based on binary search tree algorithm |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6018524A (en) * | 1997-09-09 | 2000-01-25 | Washington University | Scalable high speed IP routing lookups |
JP3166700B2 (ja) * | 1998-03-12 | 2001-05-14 | 日本電気株式会社 | ルータ及び最長一致検索装置 |
US6212184B1 (en) * | 1998-07-15 | 2001-04-03 | Washington University | Fast scaleable methods and devices for layer four switching |
US6499081B1 (en) * | 1999-02-23 | 2002-12-24 | Netlogic Microsystems, Inc. | Method and apparatus for determining a longest prefix match in a segmented content addressable memory device |
US6560610B1 (en) * | 1999-08-10 | 2003-05-06 | Washington University | Data structure using a tree bitmap and method for rapid classification of data in a database |
US6490592B1 (en) * | 1999-12-30 | 2002-12-03 | Nortel Networks Limited | Method of and apparatus for generating a tree data structure supporting longest match lookup |
US6947931B1 (en) * | 2000-04-06 | 2005-09-20 | International Business Machines Corporation | Longest prefix match (LPM) algorithm implementation for a network processor |
US6675163B1 (en) * | 2000-04-06 | 2004-01-06 | International Business Machines Corporation | Full match (FM) search algorithm implementation for a network processor |
JP2001326679A (ja) | 2000-05-15 | 2001-11-22 | Fujitsu Ltd | 情報装置、テーブル検索装置、テーブル検索方法、及び記録媒体 |
US7031320B2 (en) * | 2000-12-22 | 2006-04-18 | Samsung Electronics Co., Ltd. | Apparatus and method for performing high-speed IP route lookup and managing routing/forwarding tables |
US7443841B2 (en) * | 2002-10-30 | 2008-10-28 | Nortel Networks Limited | Longest prefix matching (LPM) using a fixed comparison hash table |
US7219184B2 (en) * | 2002-12-10 | 2007-05-15 | Isic Corporation | Method and apparatus for longest prefix matching in processing a forwarding information database |
US7444515B2 (en) * | 2003-08-14 | 2008-10-28 | Washington University | Method and apparatus for detecting predefined signatures in packet payload using Bloom filters |
-
2004
- 2004-02-09 US US10/773,225 patent/US7433355B2/en not_active Expired - Fee Related
-
2005
- 2005-02-03 EP EP05300090A patent/EP1562337B1/en active Active
- 2005-02-03 AT AT05300090T patent/ATE429755T1/de not_active IP Right Cessation
- 2005-02-03 DE DE602005014026T patent/DE602005014026D1/de active Active
- 2005-02-16 CN CN2005100077574A patent/CN1655533B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1562337B1 (en) | 2009-04-22 |
CN1655533A (zh) | 2005-08-17 |
EP1562337A1 (en) | 2005-08-10 |
ATE429755T1 (de) | 2009-05-15 |
DE602005014026D1 (de) | 2009-06-04 |
US20050175010A1 (en) | 2005-08-11 |
US7433355B2 (en) | 2008-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1655533B (zh) | 基于最长前缀匹配算法的过滤器 | |
US6633548B2 (en) | Method and apparatus for ternary content addressable memory (TCAM) table management | |
US7809701B2 (en) | Method and system for performing exact match searches using multiple hash tables | |
JP4727594B2 (ja) | コンテンツ・ベースの情報検索アーキテクチャー | |
EP1168723B1 (en) | Method and apparatus for longest matching prefix determination in a communication network | |
US6691124B2 (en) | Compact data structures for pipelined message forwarding lookups | |
EP2159708B1 (en) | Method for selecting hash function, method for storing and searching routing table and devices thereof | |
EP2040184B1 (en) | Database and database processing methods | |
US6434144B1 (en) | Multi-level table lookup | |
US6581106B1 (en) | Fast address lookup in routing tables | |
US20030091043A1 (en) | Methods and systems for fast packet forwarding | |
WO2001005116A2 (en) | Routing method and apparatus | |
US20040044868A1 (en) | Method and apparatus for high-speed longest prefix match of keys in a memory | |
US20040210588A1 (en) | Methods and apparatus for address lookup | |
US20030023581A1 (en) | Method and system for performing a longest prefix match search | |
US20050114393A1 (en) | Dynamic forwarding method using binary search | |
US20080123663A1 (en) | Method and apparatus for managing ternary content addressable memory entries for use in a data packet routing device | |
US20080175241A1 (en) | System and method for obtaining packet forwarding information | |
US6615311B2 (en) | Method and system for updating a content addressable memory (CAM) that prioritizes CAM entries according to prefix length | |
US9444731B2 (en) | Methods and systems for data packet routing | |
KR100378599B1 (ko) | 주소 메모리 블록의 간섭 인덱싱에 기반한 라우팅 테이블검색 방법 | |
KR100459542B1 (ko) | 인터넷 프로토콜 주소 룩-업 장치 | |
KR100460188B1 (ko) | 인터넷 프로토콜 주소 룩-업 방법 | |
CN111222017A (zh) | 一种利用tcam实现浮动字符串匹配的系统 | |
KR100572693B1 (ko) | 인터넷 프로토콜 패킷 룩업 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100428 |