CN101834802A - 转发数据包的方法及装置 - Google Patents
转发数据包的方法及装置 Download PDFInfo
- Publication number
- CN101834802A CN101834802A CN201010183334.9A CN201010183334A CN101834802A CN 101834802 A CN101834802 A CN 101834802A CN 201010183334 A CN201010183334 A CN 201010183334A CN 101834802 A CN101834802 A CN 101834802A
- Authority
- CN
- China
- Prior art keywords
- packet
- forwarding
- address
- destination address
- fib table
- 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.)
- Granted
Links
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/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
- 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/7453—Address table lookup; Address filtering using hashing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开一种转发数据包的方法及装置,涉及通信领域。以解决现有技术在转发数据包时,需要查找较长的IP地址的情况下,需要增加TCAM的个数,或者需要多次访问外部RAM而造成的成本较高、性能较低的问题。本发明提供的技术方案包括:从所接收到的数据包的目的地址中取出第一预定字段作为键值;根据所述键值查找预先设置的TCAM表项,获取所述TCAM表项返回的索引值;根据所述索引值和所述数据包的目的地址中的第二预定字段,按照预定算法查找预先设置的FIB表项,获取所述数据包的转发地址。本发明提供的技术方案可以应用在路由器对于IPv6地址的查表中。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种转发数据包的方法及装置。
背景技术
在路由器和交换机的设计中,必须要对数据进行查表处理,以便找到数据包的下一个节点。例如,在通常的路由设备中,转发引擎接收到IP报文后,通过提取报文的目的IP地址,完成转发信息库(Forward Information Base,FIB)表的查找,得到下一跳IP地址的索引。目前常用的查表规则是最长前缀匹配(LongestPrefix Match,LPM)规则。
在互联网协议版本4(Internet Protocol Version 4,IPv4)向互联网协议版本6(Internet Protocol Version 6,IPv6)过渡的过程中,现有技术实现IPv6的LPM查表的技术有两类:一是采用专用的三重内容寻址存储器(Ternary ContentAddressable Memory,TCAM),可以快速查找到相应的内容;二是采用专门的查找算法(如Trie算法或B-tree算法),利用片外便宜的同步动态随机存取存储器(Synchronous Dynamic Random Access Memory,SDRAM)或者静态随机存取存储器(Static Random Access Memory,SRAM)来存储表项FIB。其中,Trie算法的原理是将IP地址分成多个段,每个段去访问一次外部随机存取存储器(RandomAccess Memory,RAM),IP地址的位数越多,分段就越多,访问外部RAM的次数就越多;B-tree算法的基本原理是采用完整的IP地址多次访问外部RAM,直到查找到相应的内容。
在实现本发明的过程中,发明人发现,由于IPv6的IP地址比IPv4的IP地址增加了很多位(IPv4是32位,IPv6是128位),因此,如果采用上述第一种方法来实现IPv6的LPM查表,势必要增加TCAM芯片的个数,而目前TCAM芯片很贵,功耗也很大。如果采用上述第二种方法来实现IPv6的LPM查表,访问外部RAM的次数将会大大增加,从而使查表性能降低。
发明内容
本发明的实施例提供一种转发数据包的方法及装置,能够在查找较长的IP地址的情况下,提高查表性能、降低查表成本。
为达到上述目的,本发明的实施例采用如下技术方案:
一种转发数据包的方法,包括:
从所接收到的数据包的目的地址中取出第一预定字段作为键值;
根据所述键值查找预先设置的TCAM表项,获取所述TCAM表项返回的索引值;
根据所述索引值和所述数据包的目的地址中的第二预定字段,按照预定算法查找预先设置的FIB表项,获取所述数据包的转发地址。
一种转发数据包的装置,包括:
提取单元,用于从所接收到的数据包的目的地址中取出第一预定字段作为键值;
第一查找单元,用于根据由所述提取单元提取的键值查找预先设置的TCAM表项,获取所述TCAM表项返回的索引值;
第二查找单元,用于根据由所述第一查找单元获取的索引值和所述数据包的目的地址中的第二预定字段,按照预定算法查找预先设置的FIB表项,获取所述数据包的转发地址。
本发明实施例提供的转发数据包的方法及装置,首先对数据包的目的地址中的第一预定字段采用TCAM的查表方法,获取第二预定字段查表的索引值,再通过该索引值采用算法查表,获取最终数据包的转发地址。由于不增加TCAM的个数,所以成本不会增加;由于第二预定字段是原目的地址中的一部分,较原目的地址短,所以采用算法查表不会造成访问RAM的次数较多、而造成性能下降的问题。本发明实施例提供的转发数据包的方法及装置,将TCAM查表与算法查表结合起来,与现有技术相比,能够在查找较长的IP地址的情况下,提高查表性能、降低查表成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的转发数据包的方法流程图;
图2为本发明实施例提供的转发数据包的装置结构示意图一;
图3为本发明实施例提供的转发数据包的装置结构示意图二;
图4为本发明实施例提供的转发数据包的装置中第二查找单元203的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术在转发数据包时,需要查找较长的IP地址的情况下,需要增加TCAM的个数,或者需要多次访问外部RAM而造成的成本较高、性能较低的问题,本发明实施例提供一种转发数据包的方法及装置。
如图1所示,本发明实施例提供的转发数据包的方法,包括:
步骤101,从所接收到的数据包的目的地址中取出第一预定字段作为键值;
在本发明实施例中,所述数据包的目的地址为目的IP地址,或者为目的IP地址与预定网络号的组合。其中,所述目的IP地址一般为128位的IPv6地址,所述预定网络号为虚拟专用网络(Virtual Private Network,VPN)的标识号,一般为16位。当它与目的IP地址组合时,数据包中的目的地址为144位。本发明实施例中的第一预定字段为目的地址的前预定长度的字段,假设目的地址为128位的IPv6地址,则选择前64位作为键值进行查表。当然,也可以选择前32位或者前16位,或者其它任意合理的字段作为键值,此处不再赘述。
步骤102,根据所述键值查找预先设置的TCAM表项,获取所述TCAM表项返回的索引值;
在本发明实施例中,所述预先设置的TCAM表项可以采用片内TCAM实现,也可以采用片外TCAM实现。TCAM是一种专门用来查找表项的硬件装置,其存放表项的容量较小,但性能较高,采用TCAM可以快速地找到目标内容。本实施例中只使用目标IP地址的前64位作为键值来查找表项,而不是像现有技术中,采用整个目标IP地址来查找表项,这样,就不用额外地增加TCAM的个数以增大表项容量。采用上述方法,如果命中TCAM表项,该TCAM表项会返回一个索引值,用于后续的查表。
步骤103,根据所述索引值和所述数据包的目的地址中的第二预定字段,按照预定算法查找预先设置的FIB表项,获取所述数据包的转发地址。
在本发明实施例中,所述第二预定字段为所述数据包的目的地址中除了第一预定字段以外的剩余字段。如步骤101所述,如果第一预定字段为目标IP地址的前64位,则第二预定字段为目标IP地址剩余的后64位。TCAM表项返回的索引值,与目的IP地址的后64位一起采用预定算法来实现对FIB表项的查找,以获取最终的数据包转发地址,即下一跳IP地址的索引。所述FIB表是预先设置的,存储在RAM中,该RAM可以采用片内的RAM实现,也可以采用片外的RAM实现,也可以是片内RAM和片外RAM混合实现。所述预定算法可以是Trie算法,也可以是B-Tree算法。
本发明实施例中,具体有两种方法来实现对FIB表的查找:方法一,将TCAM表项返回的索引值和目的IP地址后64位一起构成一个新的键值(称为第二键值),用该键值查找整个FIB表项,获取最终的数据包转发地址。此方法中,TCAM表项所返回的索引值一般为16bit。方法二,TCAM表项返回的索引值作为一个参数,来限定FIB表项的查找范围。此时,直接将目的IP地址的后64位作为键值(称为第三键值),到上述查找范围内查找FIB表项,获取最终的数据包转发地址。
进一步地,在本发明实施例中,如果第一次查表时没有命中所述TCAM表项,则将整个目的IP地址的字段作为键值,直接到RAM中采用Trie算法,或者B-Tree算法去查找FIB表项,获取数据包的转发地址。
本发明实施例提供的转发数据包的方法,首先对数据包的目的地址中的第一预定字段采用TCAM的查表方法,获取第二预定字段查表的索引值,再通过该索引值采用算法查表,获取最终数据包的转发地址。由于不增加TCAM的个数,所以成本不会增加;由于第二预定字段是原目的地址中的一部分,较原目的地址短,所以采用算法查表不会造成访问RAM的次数较多、而造成性能下降的问题。本发明实施例提供的转发数据包的方法,将TCAM查表与算法查表结合起来,与现有技术相比,能够在查找较长的IP地址的情况下,提高查表性能、降低查表成本。
如图2所示,本发明实施例还提供一种转发数据包的装置,包括:
提取单元201,用于从所接收到的数据包的目的地址中取出第一预定字段作为键值;在本发明实施例中,所述数据包的目的地址为目的IP地址,或者为目的IP地址与预定网络号的组合。所述预定字段为目的地址的前预定长度的字段。
第一查找单元202,用于根据由所述提取单元201提取的键值查找预先设置的TCAM表项,获取所述TCAM表项返回的索引值;在本发明实施例中,所述预先设置的TCAM表项可以采用片内TCAM实现,也可以采用片外TCAM实现。
第二查找单元203,用于根据由所述第一查找单元202获取的索引值和所述数据包的目的地址中的第二预定字段,按照预定算法查找预先设置的FIB表项,获取所述数据包的转发地址。在本发明实施例中,所述TCAM表项的返回结果为查找所述FIB表项的索引值;所述预先设置的FIB表项存储于片内随机存取存储器中,或者,存储于片外随机存取存储器中。
进一步地,如图3所示,所述装置还包括:
第三查找单元204,用于当没有命中所述TCAM表项时,根据所述目的地址的完整字段按照预定算法查找预先设置的FIB表项,获取所述数据包的转发地址。
需要说明的是,当没有命中所述TCAM表项、并且第二查找单元支持两种模式(完整IPv6模式和IPv6剩余地址模式)时,也可以用第二查找单元来根据所述目的地址的完整字段按照预定算法查找预先设置的FIB表项。
进一步地,如图4所示,所述第二查找单元203包括:
生成单元2031,用于将由所述第一查找单元202获取的索引值和所述数据包的目的地址中的第二预定字段相结合,构成第二键值;第一查找子单元2032,用于根据由所述生成单元2031生成的第二键值按照所述预定算法查找所述FIB表项,获取所述数据包的转发地址;或者,
获取单元2033,用于根据由所述第一查找单元202获取的索引值获取所述FIB表项的查找范围;第二查找子单元2034,用于将所述数据包的目的地址中的第二预定字段作为第三键值,在由所述获取单元2033所获取的FIB表项的查找范围内按照所述预定算法查找所述FIB表项,获取所述数据包的转发地址。
在本发明实施例中,所述预定算法为Trie算法,或者B-tree算法。
以上所述装置各单元的具体实现方式可以参见步骤101~步骤103所述的方法部分,此处不再赘述。
本发明实施例提供的转发数据包的装置,首先对数据包的目的地址中的第一预定字段采用TCAM的查表方法,获取第二字段查表的索引值,再通过该索引值采用算法查表,获取最终数据包的转发地址。由于不增加TCAM的个数,所以成本不会增加;由于第二预定字段是原目的地址中的一部分,较原目的地址短,所以采用算法查表不会造成访问RAM的次数较多、而造成性能下降的问题。本发明实施例中,根据“IPv6可聚合全局单播地址”的层次化特点,N条掩码大于64的IPv6路由,最终可聚合成1条48bit长度或64bit长度的IPv6路由。这样,针对这N条路由,在第一查表单元只需要占用一个表项(N:1收敛),在第二查表单元仍需要N个表项,但每个表项都比完整的128bit IPv6表项要短(例如剩余表项是64bit)。本发明实施例提供的转发数据包的装置,将TCAM查表装置与算法查表装置结合起来,与现有技术相比,能够在查找较长的IP地址的情况下,提高查表性能、降低查表成本。
本发明提供的技术方案可以应用在路由器对于IPv6地址的查表中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述程序可以存储于计算机可读存储介质中,如ROM/RAM、磁碟或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种转发数据包的方法,其特征在于,包括:
从所接收到的数据包的目的地址中取出第一预定字段作为键值;
根据所述键值查找预先设置的TCAM表项,获取所述TCAM表项返回的索引值;
根据所述索引值和所述数据包的目的地址中的第二预定字段,按照预定算法查找预先设置的FIB表项,获取所述数据包的转发地址。
2.根据权利要求1所述的转发数据包的方法,其特征在于,所述第二预定字段为所述数据包的目的地址中除了第一预定字段以外的剩余字段。
3.根据权利要求1所述的转发数据包的方法,其特征在于,所述方法还包括:
如果没有命中所述TCAM表项,根据所述目的地址的完整字段按照预定算法查找预先设置的FIB表项,获取所述数据包的转发地址。
4.根据权利要求1所述的转发数据包的方法,其特征在于,所述根据所述索引值和所述数据包的目的地址中的第二预定字段,按照预定算法查找预先设置的FIB表项,获取所述数据包的转发地址的方法包括:
将所述索引值和所述数据包的目的地址中的第二预定字段相结合,构成第二键值;根据所述第二键值按照所述预定算法查找所述FIB表项,获取所述数据包的转发地址;或者,
根据所述索引值获取所述FIB表项的查找范围;将所述数据包的目的地址中的第二预定字段作为第三键值,在所述FIB表项的查找范围内按照所述预定算法查找所述FIB表项,获取所述数据包的转发地址。
5.根据权利要求1所述的转发数据包的方法,其特征在于,
所述预先设置的TCAM表项采用片内TCAM实现,或者,采用片外TCAM实现。
6.根据权利要求1所述的转发数据包的方法,其特征在于,
所述预先设置的FIB表项存储于片内随机存取存储器中,或者,存储于片外随机存取存储器中。
7.根据权利要求1所述的转发数据包的方法,其特征在于,所述数据包的目的地址包括:
目的IP地址,或者,所述目的IP地址与预定网络号的组合。
8.根据权利要求1所述的转发数据包的方法,其特征在于,
从所述目的地址中取出的第一预定字段为所述目的地址的前预定长度的字段。
9.根据权利要求1或3所述的转发数据包的方法,其特征在于,所述预定算法包括:
Trie算法,或者B-tree算法。
10.一种转发数据包的装置,其特征在于,包括:
提取单元,用于从所接收到的数据包的目的地址中取出第一预定字段作为键值;
第一查找单元,用于根据由所述提取单元提取的键值查找预先设置的TCAM表项,获取所述TCAM表项返回的索引值;
第二查找单元,用于根据由所述第一查找单元获取的索引值和所述数据包的目的地址中的第二预定字段,按照预定算法查找预先设置的FIB表项,获取所述数据包的转发地址。
11.根据权利要求10所述的转发数据包的装置,其特征在于,所述装置还包括:
第三查找单元,用于当没有命中所述TCAM表项时,根据所述目的地址的完整字段按照预定算法查找预先设置的FIB表项,获取所述数据包的转发地址。
12.根据权利要求10所述的转发数据包的装置,其特征在于,所述第二查找单元包括:
生成单元,用于将由所述第一查找单元获取的索引值和所述数据包的目的地址中的第二预定字段相结合,构成第二键值;第一查找子单元,用于根据由所述生成单元生成的第二键值按照所述预定算法查找所述FIB表项,获取所述数据包的转发地址;或者,
获取单元,用于根据由所述第一查找单元获取的索引值获取所述FIB表项的查找范围;第二查找子单元,用于将所述数据包的目的地址中的第二预定字段作为第三键值,在由所述获取单元所获取的FIB表项的查找范围内按照所述预定算法查找所述FIB表项,获取所述数据包的转发地址。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010183334.9A CN101834802B (zh) | 2010-05-26 | 2010-05-26 | 转发数据包的方法及装置 |
US13/110,694 US8879555B2 (en) | 2010-05-26 | 2011-05-18 | Method and apparatus for forwarding packets by obtaining addresses of the packets using a preset forwarding information base entry |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010183334.9A CN101834802B (zh) | 2010-05-26 | 2010-05-26 | 转发数据包的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101834802A true CN101834802A (zh) | 2010-09-15 |
CN101834802B CN101834802B (zh) | 2012-08-08 |
Family
ID=42718735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010183334.9A Active CN101834802B (zh) | 2010-05-26 | 2010-05-26 | 转发数据包的方法及装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8879555B2 (zh) |
CN (1) | CN101834802B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103457855A (zh) * | 2012-06-04 | 2013-12-18 | 中兴通讯股份有限公司 | 无类域间路由表建立、以及报文转发的方法和装置 |
CN103825824A (zh) * | 2014-03-04 | 2014-05-28 | 华为技术有限公司 | 一种报文处理方法及装置 |
WO2014201902A1 (zh) * | 2013-06-19 | 2014-12-24 | 中兴通讯股份有限公司 | 基于tcam的查表处理方法及装置 |
WO2015032216A1 (zh) * | 2013-09-09 | 2015-03-12 | 中兴通讯股份有限公司 | 路由查找方法及装置、B-Tree树结构的构建方法 |
CN104753788A (zh) * | 2013-12-25 | 2015-07-01 | 深圳市中兴微电子技术有限公司 | 一种基于索引分配的数据转发方法及装置 |
WO2016029684A1 (zh) * | 2014-08-25 | 2016-03-03 | 深圳市中兴微电子技术有限公司 | 报文处理转发装置、方法和计算机存储介质 |
CN105516001A (zh) * | 2014-09-22 | 2016-04-20 | 中兴通讯股份有限公司 | 控制软复位后数据恢复的方法、装置及分组传送网设备 |
CN107547407A (zh) * | 2017-09-15 | 2018-01-05 | 新华三技术有限公司 | 报文传输方法、装置和实现装置 |
WO2018192587A1 (zh) * | 2017-04-21 | 2018-10-25 | 中兴通讯股份有限公司 | 一种查表方法及装置、计算机存储介质 |
CN110932972A (zh) * | 2020-01-23 | 2020-03-27 | 飞诺门阵(北京)科技有限公司 | 一种数据传输方法、装置及电子设备 |
CN111190545A (zh) * | 2019-12-27 | 2020-05-22 | 芯启源(南京)半导体科技有限公司 | 一种基于软件实现的trie结构进行LPM规则压缩存储的方法 |
CN111324382A (zh) * | 2018-12-13 | 2020-06-23 | 华为技术有限公司 | 指令处理方法和芯片 |
US11706097B2 (en) | 2020-01-23 | 2023-07-18 | Novnet Computing System Tech Co., Ltd. | Task processing method applied to network topology, electronic device and storage medium |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130077530A1 (en) * | 2011-09-28 | 2013-03-28 | Cisco Technology, Inc. | Scaling IPv6 on Multiple Devices Virtual Switching System with Port or Device Level Aggregation |
US8798066B2 (en) * | 2012-09-27 | 2014-08-05 | Avaya Inc. | Method for IPv6 longest prefix match |
US10659362B1 (en) * | 2016-06-03 | 2020-05-19 | Arista Networks, Inc. | Traffic forwarding in large-scale networks |
CN109921995B (zh) * | 2017-12-13 | 2021-08-13 | 华为技术有限公司 | 一种配置地址表的方法、fpga和应用该fpga的网络设备 |
US10397115B1 (en) * | 2018-04-09 | 2019-08-27 | Cisco Technology, Inc. | Longest prefix matching providing packet processing and/or memory efficiencies in processing of packets |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1441579A (zh) * | 2003-03-28 | 2003-09-10 | 清华大学 | 支持多nexthop的TCAM高速查找方法及其系统 |
CN101021858A (zh) * | 2007-01-29 | 2007-08-22 | 华为技术有限公司 | 一种数据存储方法及装置及数据查找、添加、删除方法 |
US20090150603A1 (en) * | 2007-12-07 | 2009-06-11 | University Of Florida Research Foundation, Inc. | Low power ternary content-addressable memory (tcams) for very large forwarding tables |
CN101494603A (zh) * | 2009-01-13 | 2009-07-29 | 南京邮电大学 | 一种128位因特网地址并行高速路由寻址方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5940597A (en) * | 1995-01-11 | 1999-08-17 | Sony Corporation | Method and apparatus for periodically updating entries in a content addressable memory |
FR2761843B1 (fr) * | 1997-03-12 | 2002-05-03 | Mannesmann Ag | Procede d'exploitation de reseaux virtuels prives dans un reseau commun de commutation de paquets de donnees et dispositif pour la mise en oeuvre de ce procede |
US6553002B1 (en) * | 1997-08-29 | 2003-04-22 | Ascend Communications, Inc. | Apparatus and method for routing data packets through a communications network |
US7356033B2 (en) * | 2002-11-21 | 2008-04-08 | Lucent Technologies Inc. | Method and apparatus for performing network routing with use of power efficient TCAM-based forwarding engine architectures |
US7702882B2 (en) * | 2003-09-10 | 2010-04-20 | Samsung Electronics Co., Ltd. | Apparatus and method for performing high-speed lookups in a routing table |
US7564841B2 (en) * | 2004-03-05 | 2009-07-21 | Samsung Electronics Co., Ltd. | Apparatus and method for performing forwarding table searches using consecutive symbols tables |
US7440460B2 (en) * | 2004-03-05 | 2008-10-21 | Samsung Electronics Co., Ltd. | Apparatus and method for forwarding mixed data packet types in a high-speed router |
JP4336625B2 (ja) * | 2004-06-17 | 2009-09-30 | 株式会社日立製作所 | パケット転送装置 |
US7707217B2 (en) * | 2005-01-24 | 2010-04-27 | 3Com Corporation | Trie search engines and ternary CAM used as pre-classifier |
JP4556761B2 (ja) * | 2005-05-06 | 2010-10-06 | 株式会社日立製作所 | パケット転送装置 |
US7792812B1 (en) * | 2006-03-31 | 2010-09-07 | Netlogic Microsystems, Inc. | Search engine devices that support high speed parallel decoding of digital search tries |
US7706375B2 (en) * | 2007-02-06 | 2010-04-27 | Alcatel Lucent | System and method of fast adaptive TCAM sorting for IP longest prefix matching |
US8483096B2 (en) * | 2008-07-22 | 2013-07-09 | The Regents Of The University Of California | Scalable commodity data center network architecture |
US7936754B2 (en) * | 2008-12-12 | 2011-05-03 | At&T Intellectual Property I, L.P. | Methods and apparatus to dynamically store network routes for a communication network |
US7986696B1 (en) * | 2009-02-12 | 2011-07-26 | Compass Electro-Optical Systems | Method and apparatus for longest prefix matching |
-
2010
- 2010-05-26 CN CN201010183334.9A patent/CN101834802B/zh active Active
-
2011
- 2011-05-18 US US13/110,694 patent/US8879555B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1441579A (zh) * | 2003-03-28 | 2003-09-10 | 清华大学 | 支持多nexthop的TCAM高速查找方法及其系统 |
CN101021858A (zh) * | 2007-01-29 | 2007-08-22 | 华为技术有限公司 | 一种数据存储方法及装置及数据查找、添加、删除方法 |
US20090150603A1 (en) * | 2007-12-07 | 2009-06-11 | University Of Florida Research Foundation, Inc. | Low power ternary content-addressable memory (tcams) for very large forwarding tables |
CN101494603A (zh) * | 2009-01-13 | 2009-07-29 | 南京邮电大学 | 一种128位因特网地址并行高速路由寻址方法 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103457855B (zh) * | 2012-06-04 | 2018-08-10 | 中兴通讯股份有限公司 | 无类域间路由表建立、以及报文转发的方法和装置 |
CN103457855A (zh) * | 2012-06-04 | 2013-12-18 | 中兴通讯股份有限公司 | 无类域间路由表建立、以及报文转发的方法和装置 |
WO2014201902A1 (zh) * | 2013-06-19 | 2014-12-24 | 中兴通讯股份有限公司 | 基于tcam的查表处理方法及装置 |
US9871727B2 (en) | 2013-09-09 | 2018-01-16 | Sanechips Technology Co., Ltd. | Routing lookup method and device and method for constructing B-tree structure |
WO2015032216A1 (zh) * | 2013-09-09 | 2015-03-12 | 中兴通讯股份有限公司 | 路由查找方法及装置、B-Tree树结构的构建方法 |
CN104426770A (zh) * | 2013-09-09 | 2015-03-18 | 中兴通讯股份有限公司 | 路由查找方法及装置、B-Tree树结构的构建方法 |
CN104753788A (zh) * | 2013-12-25 | 2015-07-01 | 深圳市中兴微电子技术有限公司 | 一种基于索引分配的数据转发方法及装置 |
WO2015131720A1 (zh) * | 2014-03-04 | 2015-09-11 | 华为技术有限公司 | 报文处理方法及装置 |
CN103825824A (zh) * | 2014-03-04 | 2014-05-28 | 华为技术有限公司 | 一种报文处理方法及装置 |
WO2016029684A1 (zh) * | 2014-08-25 | 2016-03-03 | 深圳市中兴微电子技术有限公司 | 报文处理转发装置、方法和计算机存储介质 |
CN105516001A (zh) * | 2014-09-22 | 2016-04-20 | 中兴通讯股份有限公司 | 控制软复位后数据恢复的方法、装置及分组传送网设备 |
WO2018192587A1 (zh) * | 2017-04-21 | 2018-10-25 | 中兴通讯股份有限公司 | 一种查表方法及装置、计算机存储介质 |
CN107547407A (zh) * | 2017-09-15 | 2018-01-05 | 新华三技术有限公司 | 报文传输方法、装置和实现装置 |
CN107547407B (zh) * | 2017-09-15 | 2021-03-09 | 新华三技术有限公司 | 报文传输方法、装置和实现装置 |
CN111324382A (zh) * | 2018-12-13 | 2020-06-23 | 华为技术有限公司 | 指令处理方法和芯片 |
US11442735B2 (en) | 2018-12-13 | 2022-09-13 | Huawei Technologies Co., Ltd. | Search instruction to access a TCAM and memory to return a program counter value from the TCAM |
CN111324382B (zh) * | 2018-12-13 | 2023-03-03 | 华为技术有限公司 | 指令处理方法和芯片 |
CN111190545A (zh) * | 2019-12-27 | 2020-05-22 | 芯启源(南京)半导体科技有限公司 | 一种基于软件实现的trie结构进行LPM规则压缩存储的方法 |
CN111190545B (zh) * | 2019-12-27 | 2022-09-27 | 芯启源(南京)半导体科技有限公司 | 一种基于软件实现的trie结构进行LPM规则压缩存储的方法 |
CN110932972B (zh) * | 2020-01-23 | 2020-06-05 | 飞诺门阵(北京)科技有限公司 | 一种数据传输方法、装置及电子设备 |
CN110932972A (zh) * | 2020-01-23 | 2020-03-27 | 飞诺门阵(北京)科技有限公司 | 一种数据传输方法、装置及电子设备 |
US11706097B2 (en) | 2020-01-23 | 2023-07-18 | Novnet Computing System Tech Co., Ltd. | Task processing method applied to network topology, electronic device and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN101834802B (zh) | 2012-08-08 |
US20110292943A1 (en) | 2011-12-01 |
US8879555B2 (en) | 2014-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101834802B (zh) | 转发数据包的方法及装置 | |
US20190116220A1 (en) | Neighbor Discovery for IPV6 Switching Systems | |
CN101621414B (zh) | 一种网络资源及拓扑的发现方法及装置 | |
US9537771B2 (en) | Exact match hash lookup databases in network switch devices | |
US20130034096A1 (en) | Routing table establishment method and device and routing table lookup method and device | |
US7630367B2 (en) | Approach for fast IP address lookups | |
CN101505279B (zh) | 一种路由查找方法和装置 | |
CN108989209B (zh) | Bier mpls网络设备、及其报文转发方法和介质 | |
CN107547407B (zh) | 报文传输方法、装置和实现装置 | |
US8848707B2 (en) | Method for IP longest prefix match using prefix length sorting | |
US9729447B2 (en) | Apparatus and method for processing alternately configured longest prefix match tables | |
US9183322B2 (en) | Increasing internet protocol version 6 host table scalability in top of rack switches for data center deployments | |
EP3280104B1 (en) | Ip routing lookup | |
CN102291472A (zh) | 一种网络地址查找方法及装置 | |
US9654397B2 (en) | Method for looking up data in hash tables and associated network device | |
US20190199633A1 (en) | Method and apparatus for forwarding in information centric networking | |
US20230041395A1 (en) | Method and Device for Processing Routing Table Entries | |
CN102164080B (zh) | 路由地址查询方法和装置 | |
EP4047889A1 (en) | Method and apparatus for processing forwarding entry | |
US20130077530A1 (en) | Scaling IPv6 on Multiple Devices Virtual Switching System with Port or Device Level Aggregation | |
US20060149853A1 (en) | Maskable content addressable memory | |
EP3269101B1 (en) | Generating a hash table in accordance with a prefix length | |
CN104394081B (zh) | 一种数据处理方法及装置 | |
CN107204926B (zh) | 预处理cache的路由快速查找方法 | |
EP3319279B1 (en) | Ip routing lookup |
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 |