CN1134177C - 一种分段式ip路由线速率查表方法 - Google Patents
一种分段式ip路由线速率查表方法 Download PDFInfo
- Publication number
- CN1134177C CN1134177C CNB001295438A CN00129543A CN1134177C CN 1134177 C CN1134177 C CN 1134177C CN B001295438 A CNB001295438 A CN B001295438A CN 00129543 A CN00129543 A CN 00129543A CN 1134177 C CN1134177 C CN 1134177C
- Authority
- CN
- China
- Prior art keywords
- prefix
- list item
- memory
- segment
- section
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种分段式IP路由线速率查表方法,本发明采用了将路由转发表项分别存放在多段存储器内,其中,高前缀表项存储的存储器为CAM存储器,多段同时查表的方法,在对多段产生的查表结果进行判决输出时,按照存放路由转发表项存储器段的高低,从高段到低段顺序进行判决,若高段读出的表项有效,则输出查表结果,判决输出结束,无须进行低段的判决,减少了骨干路由器中的线速率查表时间,提高了路由器的性能。
Description
本发明涉及计算机通信领域,具体地说涉及计算机通信领域中骨干路由器的线速率查表方法。
IP(互连网协议)路由线速查表技术是核心骨干路由器关键技术之一。由于目前IP骨干路由器采用了无类域间路由(CIDR)技术,对IP路由的查表可能会匹配多个不同前缀长度的目的IP地址,查找结果应输出最长匹配(Longest Prefix Match)的表项。实际中,为了保证骨干路由器的性能,要求骨干路由器的查表速度足够快,例如,对于端口速率为2.5Gb/s的骨干路由器,最小线速查表时间只有150ns,如果线速查表时间小于150ns,则路由器将不能线速转发IP数据包,路由器的性能将大大下降。此外,由于路由转发表的不断更新,路由转发表的更新速度也要越快越好,否则,在转发表更新期间将不能正确转发'数据包。在1998年4月的IEEE信息通信会刊第1241至1248页题为“一种存储器存取速度的硬件路由查表方法”(P.Gupta,S.Lin,N.McKeown“Routing Lookups in Hardware atMemory Access Speeds.”InfoCom’98,PP1241-1248,April,1998)的文章给出的基于存储器硬件的查表RLMS(Routing Lookups atMemory Speed)方法是目前较好的、具有代表性的方法。RLMS方法将路由表项分为两段,前缀长度小于等于24的为一段,大于24的为另一段。然而,由于RLMS方法只将前缀分为两段,这使得低段的表项更新数大,而高段要等低段查出结果后才能查高段内容。因此,RLMS方法在线速率查表和表项更新方面存在以下不足:(1)表项更新单元数多,在最坏情况下,即前缀长度等于8时,更新一个表项需要操作大于65536个存储器单元数;(2)当前缀长度大于24时,需要2个存储器读周期,使查表速度变慢,性能下降。上述这些缺陷限制了RLMS方法在骨干路由器上的实际应用。
针对上述现有技术的问题,本发明的目的是,提供一种查表速度快,且表项更新速度快的分段式IP路由线速率查表方法。
为达到上述目的,本发明采用的技术方案是:一种分段式'路由线速率查表方法,该方法包括下述步骤:
(1)将路由转发表项分别存放在多段存储器内,其中,高前缀表项存储的存储器为CAM存储器;
(2)当目的IP地址到来时,多段存储器同时进行读操作,同时得到相应的多个读出结果;
(3)对上述步骤(2)得到的多个读出结果进行判决,最后输出具有最长匹配的查表结果。
上面所述对多个读出结果进行判决,最后输出具有最长匹配的查表结果是按照下述方法进行的:按照存放路由转发表项存储器段的高低,从高段到低段顺序进行判决,若高段读出的表项有效,则输出查表结果,判决输出结束,否则进入下一个存储器段的判决,以此类推,直至对最低段进行判决,若最低段读出的表项无效,最后输出查表无效的结果。
从上述本发明采用的技术方案可以看出,由于本发明采用了多段同时查表的方法,在对多段产生的查表结果进行判决输出时,按照存放路由转发表项存储器段的高低,从高段到低段顺序进行判决,若高段读出的表项有效,则输出查表结果,判决输出结束,无须进行低段的判决,因此减少了骨干路由器中的线速率查表时间,而且转发表的表项更新时间大大缩小,进而使加快了查表速度和表项更新速度,提高了路由器的性能。
下面结合附图和实施例对本发明作进详细说明。
图1是本发明实施例采用的3段存储器组成示意图;
图2是本发明实施例采用的3段存储器依前缀长度的查表时间曲线图;
图3是本发明实施例采用的3段存储器依前缀长度的更新表项数曲线图;
图4是本发明实施例采用的3段存储器低段存储器内部数据存放结构示意图;
图5是本发明实施例采用的3段存储器中段存储器内部数据存放结构示意图;
图6是本发明实施例采用的3段存储器高段CAM内部数据存放结构示意图;
图7是本发明实施例采用的3段存储器低段、中段、高段存储器查表和判断流程图;
图8是本发明实施例采用的4段存储器最低段、低段、中段、高段存储器查表和判断流程图;
图9是本发明实施例采用的3段存储器查表结果判决输出流程图;
图10是本发明实施例采用的4段存储器查表结果判决输出流程图。
RLMS方法是只将前缀分为两段,这使得低段的表项更新数大,而高段要等低段查出结果后才能查高段内容。本发明采用的方法是:
(1)将路由转发表项分别存放在多段存储器内,其中,高前缀表项存储的存储器为CAM存储器;
(2)当目的IP地址到来时,多段存储器同时进行读操作,同时得到相应的多个读出结果;
(3)对上述步骤(2)得到的多个读出结果进行判决,最后输出具有最长匹配的查表结果。
本发明按前缀长度可将存储器分成3段、4段或N段,即多段,对N段来说需要N-1个RAM(随机存储器)和1个CAM,将高前缀表项,例如前缀大于24的表项,基于CAM(内容存取存储器)压缩,低前缀,例如小于等于24的表项分为多段基于RAM穷尽的分段前缀扩展式直接存储,其中N-1个RAM存储器的容量为2的X次幂,这里X为对应的前缀长度。以3段为例,前缀为8~16的表项为低段(SegLow),其存储器容量为64K;前缀为17~24的表项为中段(SegMid),其存储器容量为16M;前缀为25~32的表项为高段(SegUp),其CAM容量为8K。表项在低段和中段存储器中采用前缀扩展直接存储方式,高段则采用CAM优先级存储方式。高段在CAM中按前缀长度由大到小的存储在CAM中由低到高的存储器内。低段和中段的前缀扩展存储按如下规则进行:
低段进行216-P扩展,即前缀为8到16时进行2的16减P次幂扩展;中段进行224-P扩展,即前缀为17到24时进行2的24减P次幂扩展。
其中,P为对应段内的前缀。在每段存储器内长前缀覆盖短前缀,从而实现了最长匹配功能。若分为4段,则选前缀为8的为最低段,需内存容量为256;前缀为16的为低段,需内存容量为64K,中段和高段同3段方式,其存储规则也同3段一样。其中,最低段无须扩展存储,而只将256个前缀为8的表项存放在其256个存储单元内即可。
下面以本发明采用3段存储器为例,进一步阐述本发明。
参考图1,DA为目的IP地址,将路由转发表项分别存放在3段存储器内。当DA到来时,3段存储器,即低段64KRAM101,中段16M的RAM102,高段8K的CAM103同时产生读操作,读出的结果在控制逻辑104内判决并通过选择器105输出查表结果。如果采用存取时间为30ns的RAM和读时间为60ns的CAM时,本发明的查表时间参考附图2,其中,横坐标Prefix为前缀长度,从图中可以看到前缀为8到24的查表时间仅为30ns而前缀大于24的也只需60ns。本方法的表项更新也很快,最多只需操作256个存储器单元,参考附图3,当更新前缀为8时,需要更新的表项数为256,而前缀为16和24时,需要更新的表项数仅为单个表项。
3段存储器的内部存储格式参考附图4、5、6。其中,附图4为低段64KRAM的数据存放格式,F0为标志位,当F0为0时,对应的RAM单元为有效表项,当F0为1时,对应的RAM单元为无效表项;P为16减前缀长度的二进制编码,NextHop为下一跳的地址。附图5为中段16M RAM的数据存放格式,S0为标志位,当S0为0时,对应的RAM单元为有效表项,当S0为1时,对应的RAM单元为无效表项;P为24减前缀长度的二进制编码,NextHop为下一跳的地址。附图6为高段8K的CAM数据存放格式,T0为标志位,当T0为0时,对应的CAM存储单元为有效表项,当T0为1时,对应的CAM存储单元为无效表项;P为32减前缀长度的二进制编码,NextHop为下一跳的地址。
本发明查表的过程参考附图7。当目的IP地址到达时,在步骤701,32位的目的IP地址到达地址总线,然后用目的地址的低16位和低24位以及目的地址的32位同时对低段,中段存储器和高段CAM同时进行读操作,步骤702、703、704同时进行,即在步骤702,读低段64K的RAM,在步骤703读中段16M的RAM和在步骤704读中段8K的CAM,并根据F0,S0和T0由705判断和输出查表结果。
附图8为4段存储器存储路由转发表项的方式,其原理同3段方式,只是多706读最低段,当然,步骤702、703、704、706同时进行,如果采用多段存储器存储路由转发表项的方式,其原理和操作与采用3段、4段方式类似。
查表结果判决输出流程参考附图9,首先在步骤901判断高段读出的表项是否有效,若为有效表项则在步骤902输出查表结果,若为无效表项则进入中段判决;以此类推,在步骤903判断中段读出的表项是否有效,若为有效表项则在步骤904输出查表结果,若为无效表项则进入低段判决;在步骤905判断低段读出的表项是否有效,若为有效表项则在步骤906输出查表结果,最后,若为无效表项则在步骤907输出查表无效的结果。附图10为4段方式的判决,原理同图9,只是加上最低段的判决908和最低段的输出909。
各表项的前缀字段,参考附图4、5、6,也采用压缩存储,方法为:
低段前缀按16减P存储,这样每个表项存放低段前缀只需4比特空间;
中段前缀按24减P存储,每个表项存放中段前缀只需3比特空间;
表项删除或更新时,根据每个表项中存放的前缀长度可以判定是保留还是删除或更新。
对于高段表项,利用CAM的删除和更新指令操作相应表项。
Claims (5)
1、一种分段式IP路由线速率查表方法,其特征在于,该方法包括下述步骤:
(1)将路由转发表项分别存放在多段存储器内,其中,高前缀表项存储的存储器为CAM存储器;
(2)当目的IP地址到来时,多段存储器同时进行读操作,同时得到相应的多个读出结果;
(3)对上述步骤(2)得到的多个读出结果进行判决,最后输出具有最长匹配的查表结果。
2、根据权利要求1所述的分段式IP路由线速率查表方法,其特征在于:所述路由转发表项分别存放在多段存储器内是将路由转发表项分别存放在3段存储器内,具体为:前缀为8~16的表项存储在低段存储器内,前缀为17~24的表项存储在中段存储器内,前缀为25~32的表项存储在高段存储器内。
3、根据权利要求1所述的分段式IP路由线速率查表方法,其特征在于:所述路由转发表项分别存放在多段存储器内是将路由转发表项分别存放在4段存储器内,具体为:前缀为8的表项存储在最低段存储器内,前缀为16的表项存储在低段存储器内,前缀为17~24的表项存储在中段存储器内,前缀为25~32的表项存储在高段存储器内。
4、根据权利要求2或3所述的分段式IP路由线速率查表方法,其特征在于,所述低段和中段存储器中采用前缀扩展直接存储方式,高段则采用CAM优先级存储方式,其中,高段在CAM中按前缀长度由大到小的存储在CAM中地址由低到高的存储器内,低段和中段的前缀扩展存储按如下规则进行:
低段进行216-P扩展,即前缀为8到16时进行2的16减P次幂扩展,中段进行224-P扩展,即前缀为17到24时进行2的24减P次幂扩展,上述P为对应段内的前缀,在每段存储器内长前缀覆盖短前缀。
5、根据权利要求1所述的分段式IP路由线速率查表方法,其特征在于:所述对多个读出结果进行判决最后输出具有最长匹配的查表结果是按照下述方法进行的:按照存放路由转发表项存储器段的高低,从高段到低段顺序进行判决,若高段读出的表项有效,则输出查表结果,判决输出结束,否则进入下一个存储器段的判决,以此类推,直至对最低段进行判决,若最低段读出的表项无效,最后输出查表无效的结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB001295438A CN1134177C (zh) | 2000-09-28 | 2000-09-28 | 一种分段式ip路由线速率查表方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB001295438A CN1134177C (zh) | 2000-09-28 | 2000-09-28 | 一种分段式ip路由线速率查表方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1286576A CN1286576A (zh) | 2001-03-07 |
CN1134177C true CN1134177C (zh) | 2004-01-07 |
Family
ID=4593576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB001295438A Expired - Fee Related CN1134177C (zh) | 2000-09-28 | 2000-09-28 | 一种分段式ip路由线速率查表方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1134177C (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1330190C (zh) * | 2001-08-14 | 2007-08-01 | 中兴通讯股份有限公司 | 一种基于用户ip地址路由的路由选择方法 |
CN1319325C (zh) * | 2003-04-16 | 2007-05-30 | 华为技术有限公司 | 一种采用哈希链表查找路由表项的方法 |
CN100466627C (zh) * | 2006-06-01 | 2009-03-04 | 华为技术有限公司 | 地址前缀查找方法和装置以及报文转发方法和系统 |
CN101883055B (zh) * | 2010-07-19 | 2013-11-20 | 福建星网锐捷网络有限公司 | 路由转发表容量扩展实现方法、装置及交换设备 |
CN102984071B (zh) * | 2012-12-31 | 2015-02-25 | 武汉烽火网络有限责任公司 | 分段地址路由的路由表组织方法及查找路由的方法 |
-
2000
- 2000-09-28 CN CNB001295438A patent/CN1134177C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1286576A (zh) | 2001-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Panigrahy et al. | Reducing TCAM power consumption and increasing throughput | |
CA2400343C (en) | Apparatus and method for performing high-speed ip route lookup and managing routing/forwarding tables | |
CN108337172B (zh) | 大规模OpenFlow流表加速查找方法 | |
US7885268B2 (en) | Method and system for hash table based routing via table and prefix aggregation | |
US7415472B2 (en) | Comparison tree data structures of particular use in performing lookup operations | |
EP1551141B1 (en) | Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware | |
US6658482B1 (en) | Method for speeding up internet protocol address lookups with efficient use of memory | |
Gupta et al. | Routing lookups in hardware at memory access speeds | |
US6430527B1 (en) | Prefix search circuitry and method | |
Shah et al. | Fast incremental updates on Ternary-CAMs for routing lookups and packet classification | |
US7774538B2 (en) | Method for ternary contents address memory table management | |
Bando et al. | Flashtrie: Hash-based prefix-compressed trie for IP route lookup beyond 100Gbps | |
US7289979B2 (en) | Parallel asymmetric binary search on lengths | |
CN100536435C (zh) | 一种基于二叉树的流分类查找方法 | |
EP1419621A1 (en) | Methods and systems for fast packet forwarding | |
US20030231628A1 (en) | Router device and routing method | |
WO2004036589A1 (en) | Virtual content addressable memory with high speed key insertion and deletion and pipelined key search | |
CN101620623A (zh) | 内容可寻址存储器表项管理方法和装置 | |
CN1134177C (zh) | 一种分段式ip路由线速率查表方法 | |
Kaxiras et al. | IPStash: a set-associative memory approach for efficient IP-lookup | |
CN1885820A (zh) | 一种路由转发表地址查找引擎装置 | |
Le et al. | Scalable high throughput and power efficient ip-lookup on fpga | |
US6671771B2 (en) | Hash CAM having a reduced width comparison circuitry and its application | |
CN110995876B (zh) | 一种ip存储与查找的方法及装置 | |
US6343289B1 (en) | Efficient search and organization of a forwarding database or the like |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20040107 Termination date: 20091028 |