CN110191057B - 路由查找方法及路由设备 - Google Patents

路由查找方法及路由设备 Download PDF

Info

Publication number
CN110191057B
CN110191057B CN201910209925.XA CN201910209925A CN110191057B CN 110191057 B CN110191057 B CN 110191057B CN 201910209925 A CN201910209925 A CN 201910209925A CN 110191057 B CN110191057 B CN 110191057B
Authority
CN
China
Prior art keywords
tcam
routing table
target
routing
address
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.)
Active
Application number
CN201910209925.XA
Other languages
English (en)
Other versions
CN110191057A (zh
Inventor
张宾
刘鹏辉
张伟哲
武化龙
张加佳
周颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peng Cheng Laboratory
Original Assignee
Peng Cheng Laboratory
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Peng Cheng Laboratory filed Critical Peng Cheng Laboratory
Priority to CN201910209925.XA priority Critical patent/CN110191057B/zh
Publication of CN110191057A publication Critical patent/CN110191057A/zh
Application granted granted Critical
Publication of CN110191057B publication Critical patent/CN110191057B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种路由查找方法及路由设备,包括多组TCAM芯片,每组芯片保存有一份路由表项分割,所有芯片组保存的路由表项分割组成路由表;路由设备确定出数据包的目标IP地址对应的分割号;再将家庭TCAM芯片组确定为目标TCAM芯片组,在目标TCAM芯片组中查找目标IP对应的路由表项。由于TCAM芯片内存储的路由表项可进行一次性并行访问,因此路由表项保存于TCAM芯片组可以实现路由设备高效率的查找路由表项。并且路由表中的路由表项分割后分配给各组TCAM芯片,降低了每组TACM芯片自身保存的路由表项的数量,提高了在TCAM芯片组中保存的路由表项中查找路由表项的效率,实现高效率的完成路由查找工作。

Description

路由查找方法及路由设备
技术领域
本发明涉及数据处理领域,具体为一种路由查找方法及路由设备。
背景技术
路由设备,例如路由器、三层交换机等,主要用于完成互联网中数据的转发工作。具体的,路由设备转发数据的过程中,需要先根据数据的目的IP地址及最长前缀匹配的原则,查找路由表以确定数据分组的正确下一跳接口。
但随着网络流量的不断增大,光纤通信技术的不断发展,网络处理设备对于线速转发要求变得越来越高,留给路由设备进行数据包处理转发的时间也越来越短,因此,如何在一个包含海量路由表项的路由表中,快速找到最佳匹配的路由表项是路由设备迫切需要解决的一个问题。
现有的路由查找方法,是路由设备通过线性表算法、二叉树键树算法和/或哈希算法在路由表中查找匹配的路由表项。其中,线性表算法、二叉树键树算法和哈希算法均比较复杂,或者是需要大量的内存访问操作,导致路由表项查找效率低下。此外,采用线性表算法、二叉树键树算法和哈希算法使用路由表压缩技术,将路由表按特定的分布规律压缩后存放在处理器的高速缓存中,使得路由表在更新时需要花费更多时间,依然造成了路由表项查找效率低下的问题。
发明内容
本发明提供了一种路由查找方法及路由设备,以实现高效率的完成路由表项的查找工作。
为达到上述目的,本发明提供了如下技术方案:
一种路由查找方法,包括:
路由设备提取数据包中的目标IP地址;其中,所述路由设备包括多组三态内容寻址存储器TCAM芯片,每一组TCAM芯片保存有一份路由表项分割,其中,所有TCAM芯片组保存的路由表项分割组成路由表;
所述路由设备确定出所述目标IP地址对应的分割号;其中,所述分割号对应唯一一组TCAM芯片;
所述路由设备确定家庭TCAM芯片组为目标TCAM芯片组;其中,所述家庭TCAM芯片组与所述目标IP地址对应的分割号相对应;
所述路由设备在所述目标TCAM芯片组保存的路由表项分割中,查找与所述目标IP地址对应的路由表项;
若所述路由设备在所述目标TCAM芯片组保存的路由表项分割中,查找到与所述目标IP地址对应的路由表项,则所述路由设备在所述目标路由表项分割中确定出所述数据包的下一跳地址。
可选的,所述路由设备确定出所述目标IP地址对应的路由分割号,包括:
所述路由设备确定出包括特定路由前缀的路由分割号,其中,所述特定路由前缀与所述目标IP地址相匹配。
可选的,所述一组TCAM芯片包括主TCAM芯片和从TCAM芯片;所述主TCAM芯片的空闲区域被划分为:基本路由表项区、固定存储区和可变存储区;其中,所述基本路由表项区用于存储本组TCAM芯片的路由表项分割;所述固定存储区和所述可变存储区用于存储另一组TCAM芯片的路由表项分割,所述另一组TCAM芯片为所述路由设备的多组TCAM芯片中除所述本组TCAM芯片之外的任意一组TCAM芯片;所述可变存储区还作为所述基本路由表项区的扩展区;
所述从TCAM芯片的空闲区域为补充存储区,用于存储所述主TCAM芯片中的可变存储区作为所述基本路由表项区的扩展区时,被覆盖的路由表项。
可选的,所述路由设备确定出家庭TCAM芯片组为目标TCAM芯片组之前,还包括:
所述路由设备判断计数器当前记录的值是否超过阈值;其中,所述计数器用于记录在所述路由设备包括的TCAM芯片组中保存的路由表项分割中,未查找到所述目标IP地址对应的路由表项的次数;
若所述路由设备判断出计数器当前记录的值未超过阈值,则所述路由设备判断家庭TCAM芯片组是否处于最空闲状态;
其中,所述路由设备判断出计数器当前记录的值超过阈值,或者所述路由设备判断出计数器当前记录的值未超过阈值、且所述路由设备判断家庭TCAM芯片组处于最空闲状态,则所述路由设备确定出家庭TCAM芯片组为目标TCAM芯片组。
可选的,所述方法还包括:
若所述路由设备在所述目标TCAM芯片组保存的路由表项分割中,未查找到与所述目标IP地址对应的路由表项,则所述路由设备将计数器记录的值加一,并返回执行所述路由设备判断所述计数器当前记录的值是否未超过阈值。
可选的,所述方法还包括:
所述路由设备判断出所述计数器当前记录的值未超过阈值、且所述目标TCAM芯片组当前未处于最空闲状态,则所述路由设备依次确定当前最空闲状态下的一组TCAM芯片作为目标TCAM芯片组,并执行所述路由设备在所述目标TCAM芯片组保存的路由表项分割中,查找与所述目标IP地址对应的路由表项步骤,直至所述路由设备判断出所述计数器当前记录的值超过阈值;
所述当前处于最空闲状态下的任意一组TCAM芯片,均与所述目标IP地址对应的分割号不对应。
可选的,所述方法还包括:
所述路由设备判断出计数器当前记录的值超过阈值,则所述路由设备更新所述路由设备中的TCAM芯片组保存的路由表项分割。
可选的,所述路由设备在所述目标TCAM芯片组保存的路由表项分割中,查找与所述目标IP地址对应的路由表项,包括:
若所述目标TCAM芯片组是所述家庭TCAM芯片组,则所述路由设备在所述家庭TCAM芯片组中的主TCAM芯片的基本路由表项区、以及所述可变存储区被扩展为所述基本路由表项区的区域分别保存的路由表项分割中,查找与所述目标IP地址对应的路由表项;
若所述目标TCAM芯片组不是所述家庭TCAM芯片组,则所述路由设备在所述目标TCAM芯片组中的主TCAM芯片的固定存储区和可变存储区分别保存的路由表项分割中,以及在所述目标TCAM芯片组中的从TCAM芯片的补充存储区保存的路由表项分割中,查找与所述目标IP地址对应的路由表项。
可选的,每一组TCAM芯片中的主TCAM芯片的容量大于从TCAM芯片的容量。
可选的,所述路由设备在所述目标路由表项分割中确定出所述数据包的下一跳地址之后,还包括:
所述路由设备按照数据包的时间戳的顺序,将所述数据包在输出端口输出;其中,所述输出端口依据所述数据包的下一跳地址信息确定。
一种路由设备,包括多组三态内容寻址存储器TCAM芯片,每一组TCAM芯片保存有一份路由表项分割,其中,所有TCAM芯片组保存的路由表项分割组成路由表;其中,所述路由设备还包括:
提取模块,用于提取数据包中的目标IP地址;
索引逻辑模块,用于确定出所述目标IP地址对应的分割号;其中,所述分割号对应唯一一组TCAM芯片;
自适应负载平衡逻辑模块,用于确定家庭TCAM芯片组为目标TCAM芯片组;其中,所述家庭TCAM芯片组与所述目标IP地址对应的分割号相对应;
查找模块,用于在所述目标TCAM芯片组保存的路由表项分割中,查找与所述目标IP地址对应的路由表项;并在所述目标TCAM芯片组保存的路由表项分割中,查找到与所述目标IP地址对应的路由表项,则在所述目标路由表项分割中确定出所述数据包的下一跳地址。
可选的,所述索引逻辑模块确定出所述目标IP地址对应的路由分割号,用于:确定出包括特定路由前缀的路由分割号,其中,所述特定路由前缀与所述目标IP地址相匹配。
可选的,所述一组TCAM芯片包括主TCAM芯片和从TCAM芯片;所述主TCAM芯片的空闲区域被划分为:基本路由表项区、固定存储区和可变存储区;其中,所述基本路由表项区用于存储本组TCAM芯片的路由表项分割;所述固定存储区和所述可变存储区用于存储另一组TCAM芯片的路由表项分割,所述另一组TCAM芯片为所述路由设备的多组TCAM芯片中除所述本组TCAM芯片之外的任意一组TCAM芯片;所述可变存储区还作为所述基本路由表项区的扩展区;
所述从TCAM芯片的空闲区域为补充存储区,用于存储所述主TCAM芯片中的可变存储区作为所述基本路由表项区的扩展区时,被覆盖的路由表项。
可选的,所述路由设备,还包括:
反馈逻辑模块,用于判断计数器当前记录的值是否超过阈值;其中,所述计数器用于记录在所述路由设备包括的TCAM芯片组中保存的路由表项分割中,未查找到所述目标IP地址对应的路由表项的次数;
所述自适应负载平衡逻辑模块,还用于判断家庭TCAM芯片组是否处于最空闲状态;
其中,所述反馈逻辑模块判断出计数器当前记录的值超过阈值,或者所述反馈逻辑模块判断出计数器当前记录的值未超过阈值、且所述自适应负载平衡逻辑模块判断家庭TCAM芯片组处于最空闲状态,则所述自适应负载平衡逻辑模块确定出家庭TCAM芯片组为目标TCAM芯片组。
可选的,所述反馈逻辑模块还用于:在所述查找模块在所述目标TCAM芯片组保存的路由表项分割中,未查找到与所述目标IP地址对应的路由表项,将计数器记录的值加一,并继续执行判断所述计数器当前记录的值是否未超过阈值。
可选的,所述计数器当前记录的值未超过阈值、且所述目标TCAM芯片组当前未处于最空闲状态,则所述自适应负载平衡逻辑模块,还用于:依次确定当前最空闲状态下的一组TCAM芯片作为目标TCAM芯片组,并将目标TCAM芯片组反馈至所述查找模块;
所述当前处于最空闲状态下的任意一组TCAM芯片,均与所述目标IP地址对应的分割号不对应。
可选的,所述路由设备,还包括:
更新模块,用于在所述反馈逻辑模块判断出计数器当前记录的值超过阈值,更新所述路由设备中的TCAM芯片组保存的路由表项分割。
可选的,所述查找模块执行在所述目标TCAM芯片组保存的路由表项分割中,查找与所述目标IP地址对应的路由表项,用于:
若所述目标TCAM芯片组是所述家庭TCAM芯片组,则在所述家庭TCAM芯片组中的主TCAM芯片的基本路由表项区、以及所述可变存储区被扩展为所述基本路由表项区的区域分别保存的路由表项分割中,查找与所述目标IP地址对应的路由表项;
若所述目标TCAM芯片组不是所述家庭TCAM芯片组,则在所述目标TCAM芯片组中的主TCAM芯片的固定存储区和可变存储区分别保存的路由表项分割中,以及在所述目标TCAM芯片组中的从TCAM芯片的补充存储区保存的路由表项分割中,查找与所述目标IP地址对应的路由表项。
可选的,每一组TCAM芯片中的主TCAM芯片的容量大于从TCAM芯片的容量。可选的,所述路由设备,还包括:
端口确定模块,用于按照数据包的时间戳的顺序,将所述数据包在输出端口输出;其中,所述输出端口依据所述数据包的下一跳地址信息确定。
经由上述技术方案可知,本发明公开了一种路由查找方法及路由设备,路由设备包括多组TCAM芯片,每一组TCAM芯片保存有一份路由表项分割,其中,所有TCAM芯片组保存的路由表项分割组成路由表;路由设备确定出数据包的目标IP地址对应的分割号;再将家庭TCAM芯片组确定为目标TCAM芯片组,在目标TCAM芯片组中查找目标IP对应的路由表项。由于,TCAM芯片内存储的路由表项可进行一次性并行访问,因此,路由表项保存于TCAM芯片组,可以实现路由设备高效率的查找路由表项。并且,路由表中的路由表项被分割成几份,分配各多组TCAM芯片,降低了每组TACM芯片自身保存的路由表项的数量,进一步提高了在TCAM芯片组中保存的路由表项分割中查找路由表项的效率,实现高效率的完成路由表项的查找工作。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种路由查找方法的流程图;
图2为本发明实施例公开的TCAM芯片组的示意图;
图3为本发明另一实施例公开的一种路由查找方法的流程图;
图4为本发明实施例公开的一种路由设备的结构示意图;
图5为本发明实施例公开的索引逻辑模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种路由查找方法及路由设备,以实现高效率的完成路由表项的查找工作。
首先需要说明的是,执行路由查找方法的路由设备中保存的路由表,其保存的所有路由表项可以被分割成若干份,得到若干份的路由表项分割,每一份路由表项分割设置有一个分割号。路由表的分割方式可以采用平均分配或者不平均分配。并且,每一份的路由表项分割被唯一分配为一组三态内容寻址存储器(ternary content addressablememory,TCAM)芯片,由其进行保存。基于此,路由设备则包括多组TCAM芯片,每一组TCAM芯片保存有一份路由表项分割,其中,所有TCAM芯片组保存的路由表项分割组成路由表。
例如:将路由表中的所有路由表项平均分成4份,分别分配给每一组TCAM芯片。具体的,路由表的分割结果如表1所示:
分割号 最小值 最大值 表项个数
1 0.0.0.0 70.89.255.255 14745
2 70.90.0.0 128.56.78.255 14745
3 128.56.79.0 192.65.132.255 14745
4 192.65.133.0 255.255.255.255 14747
表1
从表1中可以看到,四份路由表项分别对应有一个路由分割号,在为每组TCAM芯片分配一份路由表项后就构成了一个分割号对应一组TCAM芯片。
还需要说明的是,本实施例中提出的对路由表中的所有路由表项的分割方法,可以采用Preorder-Splitting算法。
基于上述内容,如图1所示,本发明实施例公开了一种路由查找方法,包括以下步骤:
S101、路由设备提取数据包中的目标IP地址。
互联网中的数据包需要进行转发时,每一个需要路由查询的数据包会到达路由设备。路由设备接收到数据包后,提取数据包中的目标IP地址。
其中,数据包中的目标IP地址指代数据包的需要转发的目的地址,即路由设备需要将接收的数据包转发的目标IP地址。
S102、路由设备确定出所述目标IP地址对应的分割号。
在步骤S102中,所述目标IP地址对应的分割号对应唯一一组TCAM芯片。
可选的,步骤S102的一种实施方式,包括:
路由设备确定出包括特定路由前缀的路由分割号,其中,所述特定路由前缀与所述目标IP地址相匹配。
具体的,路由设备通过目标IP地址查询索引表,得到包括特定路由前缀的路由分割号,其中,所述索引表里包括:多个路由分割号,以及每个路由分割号下包括的路由前缀。
S103、路由设备确定家庭TCAM芯片组为目标TCAM芯片组。
在步骤S103中,家庭TCAM芯片组与所述目标IP地址对应的分割号相对应,因此,家庭TCAM芯片组为:最有可能包含匹配目标IP地址的路由前缀的TCAM芯片组。
S104、路由设备在所述目标TCAM芯片组保存的路由表项分割中,查找与所述目标IP地址对应的路由表项。
其中,路由器的路由表被分割为多份路由表项分割,每一组TCAM芯片保存一份路由表项分割。家庭TCAM芯片组作为最有可能包含匹配目标IP地址的路由前缀的TCAM芯片组,其保存的路由表项分割中也是最有可能包含目标IP地址对应的路由表项。因此,在家庭TCAM芯片组保存的路由表项分割中,查找与所述目标IP地址对应的路由表项。
还需要说明的是,路由设备中的每一组TCAM芯片,都配有先进先出(First inputfist output,FIFO)队列,用于缓存TCAM芯片组上进行路由查找的数据包,FIFO队列具有相应的队列长度,状态等信息,在路由查询请求比较频繁的情况下,可以根据FIFO队列的队列长度和状态等信息,确定出TCAM芯片组的查找压力。
因此,在路由设备确定家庭TCAM芯片组为目标TCAM芯片组后,路由设备将数据包发送给家庭TCAM芯片组的FIFO队列,并在家庭TCAM芯片组保存的路由表项分割中,查找与所述目标IP地址对应的路由表项。
S105、若路由设备在所述目标TCAM芯片组保存的路由表项分割中,查找到与所述目标IP地址对应的路由表项,则路由设备在所述目标路由表项分割中确定出所述数据包的下一跳地址。
家庭TCAM芯片组保存的路由表项分割中,若查找到目标IP地址对应的路由表项,则依据目标IP地址,在所述目标路由表项分割中确定出所述数据包的下一跳地址。
另外,若家庭TCAM芯片组保存的路由表项分割未实时更新,可能会导致不能查找到与所述目标IP地址对应的路由表项,此时,可以更新家庭TCAM芯片组保存的路由表项分割,再次执行步骤与S104,直至在所述目标TCAM芯片组保存的路由表项分割中,查找到与所述目标IP地址对应的路由表项。
本实施例公开的路由查找方法中,路由设备包括多组TCAM芯片,每一组TCAM芯片保存有一份路由表项分割,其中,所有TCAM芯片组保存的路由表项分割组成路由表;路由设备确定出数据包的目标IP地址对应的分割号;再将家庭TCAM芯片组确定为目标TCAM芯片组,在目标TCAM芯片组中查找目标IP对应的路由表项。由于,TCAM芯片内存储的路由表项可进行一次性并行访问,因此,路由表项保存于TCAM芯片组,可以实现路由设备高效率的查找路由表项。并且,路由表中的路由表项被分割成几份,分配各多组TCAM芯片,降低了每组TACM芯片自身保存的路由表项的数量,进一步提高了在TCAM芯片组中保存的路由表项分割中查找路由表项的效率,实现高效率的完成路由表项的查找工作。
可选的,本发明的另一实施例中,步骤S105之后,还可以执行:
路由设备按照数据包的时间戳的顺序,将所述数据包在输出端口输出;其中,所述输出端口依据所述数据包的下一跳地址信息确定。
其中,路由设备不断接收数据包,在每接收到一个数据包后,除了提取数据包中的目标IP地址,还可以为数据包打上时间戳,如此,可以根据数据包的数据戳来确定数据包的接收顺序。
在步骤S105中,路由设备确定出数据包的下一跳地址后,路由设备依据按照数据包的时间戳表明的数据包的接收顺序,依次根据数据包的下一跳地址确定出数据包的输出端口,并在输出端口输出数据包。
具体的,路由设备先基于数据包的时间戳,将确定出下一跳地址的数据包进行排序,并得到排序后的数据包队列,并输出相应的SRAM索引。
还需要说明的是,本发明可以外置关联SRAM模块来存放路由前缀及其父路由前缀,以及可能的其它相关转发信息等。路由设备利用SRAM索引在SRAM模块中进一步找到数据包所需的输出端口,最终将数据包在输出端口上输出。
在本发明的另一实施例中,路由设备中的每一组TCAM芯片可以包括两个TCAM芯片,具体为主TCAM芯片和从TCAM芯片;可选地:所述主TCAM芯片的容量大于所述从TCAM芯片的容量。例如:TCAM#1P和TCAM#1S为一组TCAM芯片,其中TCAM#1P为主芯片,容量相对较大,TCAM#1S为从芯片,容量相对较小。
并且,每一组TCAM芯片除了保存自身分配的路由表项分割之外,还需要保存另一组TCAM芯片分配的路由表项分割。例如:路由设备包括4组TCAM芯片,其中,4组TCAM芯片以随机不重复的方式缓存其他一组TCAM芯片分配的路由表项分割。缓存对应关系举例如下:TCAM1->TCAM2,TCAM2->TCAM4,TCAM4->TCAM3,TCAM3->TCAM1。
还需要说明的是,如图2所示,在一组TCAM芯片中,主TCAM芯片的空闲区域被划分为:基本路由表项区、固定存储区(也可成为固定CACHE区)和可变存储区(也可以成为可变CACHE区)。
其中,所述基本路由表项区用于存储本组TCAM芯片的路由表项分割。该分区会随着路由表项的更新而不断扩大,可以覆盖可变CACHE区,但不能覆盖固定CACHE区。特别地,当可变CACHE区被扩大后的基本路由表项完全占用后,那么认为此时该组TCAM芯片已满,不可再扩展,系统需要重新初始化。
所述固定存储区和所述可变存储区用于存储另一组TCAM芯片的路由表项分割,所述另一组TCAM芯片为所述路由设备的多组TCAM芯片中除所述本组TCAM芯片之外的任意一组TCAM芯片。因此,可变CACHE区和固定CACHE区都可用于缓存另一组TCAM芯片的路由表项分割,两者不同的是,固定CACHE区只能用于缓存路由表项分割,而可变CACHE区除了可用于缓存路由表项分割外,还可以用来做基本路由表项区的扩展区,一般在基本路由表项区需要更新扩展时会使用到此区域。
从TCAM芯片的空闲区域为补充存储区,用于存储主TCAM芯片中的可变存储区作为所述基本路由表项区的扩展区时,被覆盖的路由表项。具体的,如果可变CACHE区已存放有路由表项,当基本路由表项区需要扩展时,其扩展的路由表项可以覆盖邻接的可变CACHE区已有的路由表项。特别地,此时可以先将主TCAM芯片中被覆盖的可变CACHE区中的路由表项复制到从TCAM芯片的补充CACHE区,然后再执行覆盖操作。
并且,路由设备为各组TCAM芯片分别定义了一个路由表项指示寄存器,用于指示该组TCAM芯片中分配的分割路由表项数目,随着路由表项的更新和增加,该寄存器的值也会增加,其最大值为基本路由表项区所能存放的路由表项数与可变CACHE区所能存放的路由表项数之和。
路由设备还为各组TCAM芯片分别定义了一个CACHE指示寄存器,用于指示CACHE更新起始位置。该寄存器初始值为路由表项指示寄存器的值,其值随着每次CACHE更新不断递增,最大值为TCAM芯片组中主TCAM芯片的总存储区域大小与从TCAM芯片的补充CACHE区大小之和(单位为路由表项个数)。
需要注意的是,当CACHE指示寄存器达到最大值时,下次更新则需要重新初始化为路由表项指示寄存器中的值。
另外,由于路由表项的更新会不断扩大,可以覆盖可变CACHE区,因此每次路由表更新完成后,路由设备需要比较CACHE指示寄存器的值和路由表项指示寄存器中的值。如果CACHE指示寄存器的值小于路由表项指示寄存器中的值,需要先将主TCAM芯片中被覆盖的可变CACHE区中的路由表项复制到从TCAM芯片的补充CACHE区(复制的路由表项数为CACHE指示寄存器的值和路由表项指示寄存器中的值之差),并重新调整CACHE指示寄存器的值为路由表项指示寄存器中的值。如果路由表项指示寄存器中的值达到最大,路由设备需要重新进行路由表项分割,同时调整更新CACHE指示寄存器的值和路由表项指示寄存器中的值。
基于上述内容,本发明另一实施例公开的路由查找方法,参见图2,包括:
S201、路由设备提取数据包中的目标IP地址。
S202、路由设备确定出所述目标IP地址对应的分割号。其中,所述分割号对应唯一一组TCAM芯片。
其中,步骤S201和步骤S202的具体执行过程,可参见上述实施例中步骤S101和步骤S102的内容,此处不再赘述。
S203、路由设备判断计数器当前记录的值是否超过阈值。
其中,所述计数器用于记录在路由设备包括的TCAM芯片组中保存的路由表项分割中,未查找到所述目标IP地址对应的路由表项的次数。
本步骤中的阈值可以根据实际需求进行设定。
路由设备接收到一个数据包,针对该数据包会定义一个计数器,用于计算该数据包的目标IP地址,在路由设备包括的TCAM芯片组中保存的路由表项分割中未被查找到的次数。
具体的,路由设备接收到数据包后,需要将其在多组TCAM芯片中的一组TCAM芯片中保存的路由表项分割进行查找,以确定其保存的路由表项分割中是否保存有对应数据包的路由表项。若在TCAM芯片组中保存的路由表项分割中未查找到,则计数器的记录的值加1。
因此,在路由设备选定目标TCAM芯片组之前,需要参考计数器当前记录的值。
若路由设备判断出计数器当前记录的值未超过阈值,则执行步骤S204、路由设备判断家庭TCAM芯片组是否处于最空闲状态。
其中,家庭TCAM芯片组与所述目标IP地址对应的分割号相对应。
需要说明的是,判断TCAM芯片组是否处于最空闲状态的方法包括:根据各TCAM芯片组的FIFO队列的队列长度进行判定,队列长度越短表示该TCAM芯片组越空闲,队列长度最短的TCAM芯片组即为处于最空闲状态的TCAM芯片组,其中,所述队列长度为FIFO队列中待进行路由查找的数据包的个数。
此外,各TCAM芯片组中可能存在多个芯片组的队列长度相同且最短,此时认定所述多个芯片组均为处于最空闲状态的TCAM芯片组。
在路由设备判断出计数器当前记录的值未超过阈值,则说明数据包在路由设备中进行路由查询的次数不多,可以继续在路由设备中寻找匹配的TCAM芯片组。因此,在路由设备中的多组TCAM芯片中寻找最空闲状态的TCAM芯片组。
若家庭TCAM芯片组处于最空闲状态,由于家庭TCAM芯片组是最有可能保存数据包中的目标IP地址对应的路由表项的TCAM芯片组,所以优先判断家庭TCAM芯片组是否处于最空闲状态。
若路由设备判断出家庭TCAM芯片组处于最空闲状态,则执行步骤S205~S208。
S205、路由设备确定出家庭TCAM芯片组为目标TCAM芯片组。
其中,步骤S205的具体过程可参见上述实施例中步骤S103的内容,此处不再赘述。
S206、路由设备在目标TCAM芯片组保存的路由表项分割中,查找与所述目标IP地址对应的路由表项。
本步骤中,家庭TCAM芯片组作为最有可能保存数据包中的目标IP地址对应的路由表项的TCAM芯片组,若目标TCAM芯片组是家庭TCAM芯片组,则需要在家庭TCAM芯片组中的主TCAM芯片的基本路由表项区、以及可变存储区被扩展为所述基本路由表项区的区域分别保存的路由表项分割中,查找与所述目标IP地址对应的路由表项。
并且,在家庭TCAM芯片组的基本路由表项区和被扩展为基本路由表项区的可变存储区的区域,查找路由表项时,可以关闭固定存储区、没有覆盖可变存储区,也可以关闭补充存储区,以便减少能耗。
S207、若路由设备在所述目标TCAM芯片组保存的路由表项分割中,查找到与所述目标IP地址对应的路由表项,则路由设备在所述目标路由表项分割中确定出所述数据包的下一跳地址。
其中,本步骤的具体实施过程,可参见上述实施例中步骤S105的内容,此处不再赘述。
S208、若路由设备在所述目标TCAM芯片组保存的路由表项分割中,未查找到与所述目标IP地址对应的路由表项,则路由设备将计数器记录的值加一,并返回执行步骤S203。
在目标TCAM芯片组保存的路由表项分割中,未查到目标TP地址对应的路由表项,则计数器的记录值需要加一。再返回执行步骤S20,再次判断计数器当前记录的值是否超过阈值、以及根据判断结果执行后续步骤。
还需要说明的是,在步骤S203的判断结果是:路由设备判断出计数器当前记录的值超过阈值,则执行步骤S205~S208。
若计数器当前记录的值超过阈值,则说明在路由设备的TCAM芯片组中已经进行多次路由表项的查找工作,为了不产生过多的能耗消耗,则直接将家庭TCAM芯片组确定为目标TCAM芯片组,并在该芯片组中进行路由表项的查找工作。
并且,在步骤S204的判断结果是:路由设备判断出家庭TCAM芯片组当前未处于最空闲状态,则执行步骤S209。
S209、路由设备依次确定当前最空闲状态下的一组TCAM芯片作为目标TCAM芯片组,并执行步骤S206。
当前处于最空闲状态下的任意一组TCAM芯片,均与所述目标IP地址对应的分割号不对应。
其中,计数器当前记录的值未超过阈值,且家庭TCAM芯片组未处于最空闲状态,为了减少家庭TCAM芯片组的查找压力,则在当前最空闲状态下的TCAM芯片组中,任意确定出一组TCAM芯片,并作为目标TCAM芯片组返回执行步骤S206。
在此种情况下,目标TCAM芯片组并非家庭TCAM芯片组,因此在其保存的路由表项分割中查找路由表项时,需要在目标TCAM芯片组中的主TCAM芯片的固定存储区和可变存储区分别保存的路由表项分割中,以及在所述目标TCAM芯片组中的从TCAM芯片的补充存储区保存的路由表项分割中,查找与所述目标IP地址对应的路由表项。
并且,除家庭TCAM芯片组之外的TCAM芯片组,在存储区(包括固定存储区、可能的可变存储区以及补充存储区)来查找目标IP地址对应的路由表项时,可以关闭基本路由表项区,以便进一步减少能耗。
可选地,本发明的另一实施例中,步骤S203的判断结果是:路由设备判断计数器当前记录的值超过阈值,还可以执行:
路由设备更新所述路由设备中的TCAM芯片组保存的路由表项分割。
其中,家庭TCAM芯片组更新基本路由表项区的路由表项,除家庭TCAM芯片组之外的其他TCAM芯片组更新存储区(包括固定存储区、可变存储区以及补充存储区)的路由表项。
具体的,在进行路由表项更新时,数据包所需的路由表项将通过RRC-ME算法生成所需的最小扩展前缀,同时添加到家庭TCAM芯片组中的基本路由表项区,同时以流水线的方式更新到其他TCAM芯片组上的存储区对应的路由表项。
RRC-ME算法处理如下,假设路由表中只存在两个路由前缀:1*和111*,那么假设存在路由查询1111,其最小扩展为111*,假设存在路由查询1000,其最小扩展前缀为10*,其与1*具有相同的下一跳信息,将其扩展前缀添加到家庭TCAM芯片组及对应的其它TCAM芯片组中的CACHE路由表项中;同理,假设存在路由查询1100,其最小扩展前缀为110*,其与1*具有相同的下一跳信息,将其扩展前缀添加到家庭TCAM芯片组及对应的其它CACHE路由表项中,由于最小扩展的路由前缀不相交,对于每个不同的地址查询请求,有且仅有一个可能的正确结果会被返回。利用RRC-ME算法更新CACHE仅需要一个TCAM芯片周期即可完成,这是一个显著优势,减少路由更新时所需的能耗。
需要注意的是,在家庭TCAM芯片组中的基本路由表项区更新数据包所需的路由表项时,同时更新该路由表项临近的K(例如K=10)个路由表项,使之更加符合实际观测时转发路由所表现出来的很强的时间局部性,可有效提高后续IP数据包的路由查询命中率。
采用流水线的方式更新其他TCAM芯片组上的存储区对应的路由表项,是指按照TCAM芯片组的顺序依次更新,如此可以确保一组TCAM芯片在进行更新操作的同时,其它TCAM芯片组仍然可以执行路由查找工作。
本发明另一实施例还公开了一种路由设备,包括:多组TCAM芯片,每一组TCAM芯片保存有一份路由表项分割,其中,所有TCAM芯片组保存的路由表项分割组成路由表。
可选地,路由设备中的每一组TCAM芯片包括主TCAM芯片和从TCAM芯片;可选地:所述主TCAM芯片的容量大于所述从TCAM芯片的容量。例如:图4中,TCAM#1P至TCAM#4P为主TCAM芯片,TCAM#1S至TCAM#4S为从TCAM芯片。
所述主TCAM芯片的空闲区域被划分为:基本路由表项区、固定存储区和可变存储区;其中,所述基本路由表项区用于存储本组TCAM芯片的路由表项分割;所述固定存储区和所述可变存储区用于存储另一组TCAM芯片的路由表项分割,所述另一组TCAM芯片为所述路由设备的多组TCAM芯片中除所述本组TCAM芯片之外的任意一组TCAM芯片;所述可变存储区还作为所述基本路由表项区的扩展区。
所述从TCAM芯片的空闲区域为补充存储区,用于存储所述主TCAM芯片中的可变存储区作为所述基本路由表项区的扩展区时,被覆盖的路由表项。
本实施例中,如图4所示,路由设备,包括:
提取模块401,用于提取数据包中的目标IP地址。
索引逻辑模块402,用于确定出所述目标IP地址对应的分割号;其中,所述分割号对应唯一一组TCAM芯片。
可选地,本发明的另一实施例中,索引逻辑模块402确定出所述目标IP地址对应的路由分割号,用于:确定出包括特定路由前缀的路由分割号,其中,所述特定路由前缀与所述目标IP地址相匹配。
本实施例中,索引逻辑模块402的具体工作过程,可参见上述对应的方法实施例内容,此处不再赘述。
可选地,如图5所示,索引逻辑模块402为每组TCAM芯片建立索引查找范围,形成索引表,该索引表主要用于存放路由表分割后的分布信息。索引逻辑模块402由一对比较寄存器组成,分别指示路由表的分割边限信息的最高值和最低值。在索引逻辑模块402输入为IP地址的编码信息,则索引逻辑模块402输出一个分割编号。
自适应负载平衡逻辑模块403,用于确定家庭TCAM芯片组为目标TCAM芯片组;其中,所述家庭TCAM芯片组与所述目标IP地址对应的分割号相对应。
查找模块404,用于在所述目标TCAM芯片组保存的路由表项分割中,查找与所述目标IP地址对应的路由表项;并在所述目标TCAM芯片组保存的路由表项分割中,查找到与所述目标IP地址对应的路由表项,则在所述目标路由表项分割中确定出所述数据包的下一跳地址。
本实施例中工的各个模块的具体工作过程,可参见上述对应的方法实施例内容,此处不再赘述。
本实施公开的路由设备中,包括多组TCAM芯片,每一组TCAM芯片保存有一份路由表项分割,其中,所有TCAM芯片组保存的路由表项分割组成路由表;索引逻辑模块402确定出数据包的目标IP地址对应的分割号;再由自适应负载平衡逻辑模块403将家庭TCAM芯片组确定为目标TCAM芯片组,由查找模块404在目标TCAM芯片组中查找目标IP对应的路由表项。由于,TCAM芯片内存储的路由表项可进行一次性并行访问,因此,路由表项保存于TCAM芯片组,可以实现路由设备高效率的查找路由表项。并且,路由表中的路由表项被分割成几份,分配各多组TCAM芯片,降低了每组TACM芯片自身保存的路由表项的数量,进一步提高了在TCAM芯片组中保存的路由表项分割中查找路由表项的效率,实现高效率的完成路由表项的查找工作。
可选地,本发明的另一实施例中,如图4所示,路由设备还包括:
反馈逻辑模块405,用于判断计数器当前记录的值是否超过阈值;其中,所述计数器用于记录在所述路由设备包括的TCAM芯片组中保存的路由表项分割中,未查找到所述目标IP地址对应的路由表项的次数。
自适应负载平衡逻辑模块403,还用于判断家庭TCAM芯片组是否处于最空闲状态。
其中,反馈逻辑模块405判断出计数器当前记录的值超过阈值,或者所述反馈逻辑模块405判断出计数器当前记录的值未超过阈值、且自适应负载平衡逻辑模块403判断家庭TCAM芯片组处于最空闲状态,则自适应负载平衡逻辑模块403确定出家庭TCAM芯片组为目标TCAM芯片组。
可选地,本发明的另一实施例中,反馈逻辑模块405还用于:在查找模块404在所述目标TCAM芯片组保存的路由表项分割中,未查找到与所述目标IP地址对应的路由表项,将计数器记录的值加一,并继续执行判断所述计数器当前记录的值是否未超过阈值。
可选地,本发明的另一实施例中,所述计数器当前记录的值未超过阈值、且所述目标TCAM芯片组当前未处于最空闲状态,则自适应负载平衡逻辑模块403,还用于:依次确定当前最空闲状态下的一组TCAM芯片作为目标TCAM芯片组,并将目标TCAM芯片组反馈至所述查找模块;所述当前处于最空闲状态下的任意一组TCAM芯片,均与所述目标IP地址对应的分割号不对应。
可选地,本发明的另一实施例中,路由设备还可以包括:
更新模块,用于在反馈逻辑模块405判断出计数器当前记录的值超过阈值,更新所述路由设备中的TCAM芯片组保存的路由表项分割。
可选地,本发明的另一实施例中,查找模块404执行在所述目标TCAM芯片组保存的路由表项分割中,查找与所述目标IP地址对应的路由表项,用于:
若所述目标TCAM芯片组是所述家庭TCAM芯片组,则在所述家庭TCAM芯片组中的主TCAM芯片的基本路由表项区、以及所述可变存储区被扩展为所述基本路由表项区的区域分别保存的路由表项分割中,查找与所述目标IP地址对应的路由表项。
若所述目标TCAM芯片组不是所述家庭TCAM芯片组,则在所述目标TCAM芯片组中的主TCAM芯片的固定存储区和可变存储区分别保存的路由表项分割中,以及在所述目标TCAM芯片组中的从TCAM芯片的补充存储区保存的路由表项分割中,查找与所述目标IP地址对应的路由表项。
可选地,本发明的另一实施例中,同样参见图4,路由设备还可以包括:
端口确定模块406,用于按照数据包的时间戳的顺序,将所述数据包在输出端口输出;其中,所述输出端口依据所述数据包的下一跳地址信息确定。
上述几个实施例中公开的各个模块的具体工作过程,可参见上述对应的方法实施例内容,此处不再赘述。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (18)

1.一种路由查找方法,其特征在于,包括:
路由设备提取数据包中的目标IP地址;其中,所述路由设备包括多组三态内容寻址存储器TCAM芯片,每一组TCAM芯片保存有一份路由表项分割,其中,所有TCAM芯片组保存的路由表项分割组成路由表;
所述路由设备确定出所述目标IP地址对应的分割号;其中,所述分割号对应唯一一组TCAM芯片;
所述路由设备判断计数器当前记录的值是否超过阈值,其中,所述计数器用于记录在所述路由设备包括的TCAM芯片组中保存的路由表项分割中,未查找到所述目标地址对应的路由表项的次数;
若计数器当前记录的值没有超过阈值,所述路由设备判断家庭TCAM芯片组是否处于最空闲状态;
若所述路由设备判断家庭TCAM芯片组处于最空闲状态,所述路由设备确定家庭TCAM芯片组为目标TCAM芯片组;其中,所述家庭TCAM芯片组与所述目标IP地址对应的分割号相对应;
所述路由设备在所述目标TCAM芯片组保存的路由表项分割中,查找与所述目标IP地址对应的路由表项;
若所述路由设备在所述目标TCAM芯片组保存的路由表项分割中,查找到与所述目标IP地址对应的路由表项,则所述路由设备在所述目标路由表项分割中确定出所述数据包的下一跳地址。
2.根据权利要求1所述的方法,其特征在于,所述路由设备确定出所述目标IP地址对应的路由分割号,包括:
所述路由设备确定出包括特定路由前缀的路由分割号,其中,所述特定路由前缀与所述目标IP地址相匹配。
3.根据权利要求1所述的方法,其特征在于,所述一组TCAM芯片包括主TCAM芯片和从TCAM芯片;
所述主TCAM芯片的空闲区域被划分为:基本路由表项区、固定存储区和可变存储区;其中,所述基本路由表项区用于存储本组TCAM芯片的路由表项分割;所述固定存储区和所述可变存储区用于存储另一组TCAM芯片的路由表项分割,所述另一组TCAM芯片为所述路由设备的多组TCAM芯片中除所述本组TCAM芯片之外的任意一组TCAM芯片;所述可变存储区还作为所述基本路由表项区的扩展区;
所述从TCAM芯片的空闲区域为补充存储区,用于存储所述主TCAM芯片中的可变存储区作为所述基本路由表项区的扩展区时,被覆盖的路由表项。
4.根据权利要求1所述的方法,其特征在于,还包括:
若所述路由设备在所述目标TCAM芯片组保存的路由表项分割中,未查找到与所述目标IP地址对应的路由表项,则所述路由设备将计数器记录的值加一,并返回执行所述路由设备判断所述计数器当前记录的值是否未超过阈值。
5.根据权利要求4所述的方法,其特征在于,还包括:
所述路由设备判断出所述计数器当前记录的值未超过阈值、且所述目标TCAM芯片组当前未处于最空闲状态,则所述路由设备依次确定当前最空闲状态下的一组TCAM芯片作为目标TCAM芯片组,并执行所述路由设备在所述目标TCAM芯片组保存的路由表项分割中,查找与所述目标IP地址对应的路由表项步骤,直至所述路由设备判断出所述计数器当前记录的值超过阈值;
所述当前处于最空闲状态下的任意一组TCAM芯片,均与所述目标IP地址对应的分割号不对应。
6.根据权利要求1所述的方法,其特征在于,还包括:
所述路由设备判断出计数器当前记录的值超过阈值,则所述路由设备更新所述路由设备中的TCAM芯片组保存的路由表项分割。
7.根据权利要求3所述的方法,其特征在于,所述路由设备在所述目标TCAM芯片组保存的路由表项分割中,查找与所述目标IP地址对应的路由表项,包括:
若所述目标TCAM芯片组是所述家庭TCAM芯片组,则所述路由设备在所述家庭TCAM芯片组中的主TCAM芯片的基本路由表项区、以及所述可变存储区被扩展为所述基本路由表项区的区域分别保存的路由表项分割中,查找与所述目标IP地址对应的路由表项;
若所述目标TCAM芯片组不是所述家庭TCAM芯片组,则所述路由设备在所述目标TCAM芯片组中的主TCAM芯片的固定存储区和可变存储区分别保存的路由表项分割中,以及在所述目标TCAM芯片组中的从TCAM芯片的补充存储区保存的路由表项分割中,查找与所述目标IP地址对应的路由表项。
8.根据权利要求3所述的方法,其特征在于,每一组TCAM芯片中的主TCAM芯片的容量大于从TCAM芯片的容量。
9.根据权利要求1所述的方法,其特征在于,所述路由设备在所述目标路由表项分割中确定出所述数据包的下一跳地址之后,还包括:
所述路由设备按照数据包的时间戳的顺序,将所述数据包在输出端口输出;其中,所述输出端口依据所述数据包的下一跳地址信息确定。
10.一种路由设备,其特征在于,包括多组三态内容寻址存储器TCAM芯片,每一组TCAM芯片保存有一份路由表项分割,其中,所有TCAM芯片组保存的路由表项分割组成路由表;其中,所述路由设备还包括:
提取模块,用于提取数据包中的目标IP地址;
索引逻辑模块,用于确定出所述目标IP地址对应的分割号;其中,所述分割号对应唯一一组TCAM芯片;
反馈逻辑模块,用于判断计数器当前记录的值是否超过阈值;其中,所述计数器用于记录在所述路由设备包括的TCAM芯片组中保存的路由表项分割中,未查找到所述目标IP地址对应的路由表项的次数;自适应负载平衡逻辑模块,用于在计数器当前记录的值没有超过阈值时判断家庭TCAM芯片组是否处于最空闲状态,若判断家庭TCAM芯片组处于最空闲状态,确定家庭TCAM芯片组为目标TCAM芯片组;其中,所述家庭TCAM芯片组与所述目标IP地址对应的分割号相对应;
查找模块,用于在所述目标TCAM芯片组保存的路由表项分割中,查找与所述目标IP地址对应的路由表项;并在所述目标TCAM芯片组保存的路由表项分割中,查找到与所述目标IP地址对应的路由表项,则在所述目标路由表项分割中确定出所述数据包的下一跳地址。
11.根据权利要求10所述的路由设备,其特征在于,所述索引逻辑模块确定出所述目标IP地址对应的路由分割号,用于:确定出包括特定路由前缀的路由分割号,其中,所述特定路由前缀与所述目标IP地址相匹配。
12.根据权利要求10所述的路由设备,其特征在于,所述一组TCAM芯片包括主TCAM芯片和从TCAM芯片;
所述主TCAM芯片的空闲区域被划分为:基本路由表项区、固定存储区和可变存储区;其中,所述基本路由表项区用于存储本组TCAM芯片的路由表项分割;所述固定存储区和所述可变存储区用于存储另一组TCAM芯片的路由表项分割,所述另一组TCAM芯片为所述路由设备的多组TCAM芯片中除所述本组TCAM芯片之外的任意一组TCAM芯片;所述可变存储区还作为所述基本路由表项区的扩展区;
所述从TCAM芯片的空闲区域为补充存储区,用于存储所述主TCAM芯片中的可变存储区作为所述基本路由表项区的扩展区时,被覆盖的路由表项。
13.根据权利要求10所述的路由设备,其特征在于,所述反馈逻辑模块还用于:在所述查找模块在所述目标TCAM芯片组保存的路由表项分割中,未查找到与所述目标IP地址对应的路由表项,将计数器记录的值加一,并继续执行判断所述计数器当前记录的值是否未超过阈值。
14.根据权利要求10所述的路由设备,其特征在于,所述计数器当前记录的值未超过阈值、且所述目标TCAM芯片组当前未处于最空闲状态,则所述自适应负载平衡逻辑模块,还用于:依次确定当前最空闲状态下的一组TCAM芯片作为目标TCAM芯片组,并将目标TCAM芯片组反馈至所述查找模块;
所述当前处于最空闲状态下的任意一组TCAM芯片,均与所述目标IP地址对应的分割号不对应。
15.根据权利要求10所述的路由设备,其特征在于,还包括:
更新模块,用于在所述反馈逻辑模块判断出计数器当前记录的值超过阈值,更新所述路由设备中的TCAM芯片组保存的路由表项分割。
16.根据权利要求12所述的路由设备,其特征在于,所述查找模块执行在所述目标TCAM芯片组保存的路由表项分割中,查找与所述目标IP地址对应的路由表项,用于:
若所述目标TCAM芯片组是所述家庭TCAM芯片组,则在所述家庭TCAM芯片组中的主TCAM芯片的基本路由表项区、以及所述可变存储区被扩展为所述基本路由表项区的区域分别保存的路由表项分割中,查找与所述目标IP地址对应的路由表项;
若所述目标TCAM芯片组不是所述家庭TCAM芯片组,则在所述目标TCAM芯片组中的主TCAM芯片的固定存储区和可变存储区分别保存的路由表项分割中,以及在所述目标TCAM芯片组中的从TCAM芯片的补充存储区保存的路由表项分割中,查找与所述目标IP地址对应的路由表项。
17.根据权利要求12所述的路由设备,其特征在于,每一组TCAM芯片中的主TCAM芯片的容量大于从TCAM芯片的容量。
18.根据权利要求10所述的路由设备,其特征在于,还包括:
端口确定模块,用于按照数据包的时间戳的顺序,将所述数据包在输出端口输出;其中,所述输出端口依据所述数据包的下一跳地址信息确定。
CN201910209925.XA 2019-03-19 2019-03-19 路由查找方法及路由设备 Active CN110191057B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910209925.XA CN110191057B (zh) 2019-03-19 2019-03-19 路由查找方法及路由设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910209925.XA CN110191057B (zh) 2019-03-19 2019-03-19 路由查找方法及路由设备

Publications (2)

Publication Number Publication Date
CN110191057A CN110191057A (zh) 2019-08-30
CN110191057B true CN110191057B (zh) 2020-08-11

Family

ID=67713630

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910209925.XA Active CN110191057B (zh) 2019-03-19 2019-03-19 路由查找方法及路由设备

Country Status (1)

Country Link
CN (1) CN110191057B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110691032A (zh) * 2019-09-12 2020-01-14 无锡江南计算技术研究所 一种融合自适应和确定性路由算法的分级路由方法及装置
CN111355674A (zh) * 2020-02-24 2020-06-30 盛科网络(苏州)有限公司 路由报文的处理方法及装置、存储介质和电子装置
US20220382783A1 (en) * 2021-05-25 2022-12-01 Google Llc High Bandwidth Content Addressable Memory (CAM) Based Hardware Architecture For Datacenter Networking

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101478488B (zh) * 2009-02-13 2013-06-05 华为技术有限公司 报文转发方法、转发引擎芯片和路由设备
US7940755B2 (en) * 2009-03-19 2011-05-10 Wisconsin Alumni Research Foundation Lookup engine with programmable memory topology
CN102185756A (zh) * 2011-03-15 2011-09-14 北京星网锐捷网络技术有限公司 Tcam共享存储方法及装置
CN103501268A (zh) * 2013-09-29 2014-01-08 杭州华三通信技术有限公司 一种tcam资源调度方法及装置
CN104468361A (zh) * 2014-12-15 2015-03-25 盛科网络(苏州)有限公司 带有优先级的tcam储存和查找方法及装置
CN104935517B (zh) * 2015-04-29 2019-03-15 新华三技术有限公司 表项管理方法及装置
CN105959224B (zh) * 2016-06-24 2019-01-15 西安电子科技大学 基于比特向量的高速路由查找装置及方法
CN108924047B (zh) * 2018-06-20 2021-10-12 新华三技术有限公司 一种流表项存储方法、装置、交换机和计算机可读介质

Also Published As

Publication number Publication date
CN110191057A (zh) 2019-08-30

Similar Documents

Publication Publication Date Title
CN110191057B (zh) 路由查找方法及路由设备
US7418505B2 (en) IP address lookup using either a hashing table or multiple hash functions
CN102377664B (zh) 一种基于tcam的区域匹配装置和方法
CN101604337B (zh) 一种哈希表项存储、查找装置及方法
US6430527B1 (en) Prefix search circuitry and method
CN101577662A (zh) 一种基于树形数据结构的最长前缀匹配方法和装置
CN103107945B (zh) 一种快速查找ipv6路由的系统及方法
US20080133494A1 (en) Method and apparatus for searching forwarding table
CN106789859B (zh) 报文匹配方法及装置
CN106302172A (zh) 同时支持哈希查找和路由查找的存储、查找方法和装置
US20140358886A1 (en) Internal search engines architecture
CN114884877B (zh) 一种哈希表和HOT相结合的IPv6路由查找方法
CN113377689B (zh) 一种路由表项查找、存储方法及网络芯片
CN101500012A (zh) 一种报文分类方法和系统
WO2016184069A1 (zh) 一种路由查询方法及装置
US8924640B2 (en) Dynamic allocation of records to clusters in a ternary content addressable memory
CN100476815C (zh) 网页标识抓取方法
CN112269784A (zh) 一种基于硬件实现的哈希表结构以及插入、查询和删除方法
CN116366548B (zh) 一种IPv6子网的路由匹配方法
CN101694664B (zh) 一种查找内容可寻址存储器表项的方法和装置
CN109039911B (zh) 一种基于hash查找方式共享ram的方法及系统
CN104301227B (zh) 基于tcam的高速低功耗ip路由表查找方法
CN104112025A (zh) 处理节点计算能力感知的虚拟资产数据划分方法
US11250003B2 (en) Search circuit
CN118227518B (zh) 一种表项存储、查找方法、装置、网络设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant