CN100574281C - 一种交换机路由表的管理方法 - Google Patents

一种交换机路由表的管理方法 Download PDF

Info

Publication number
CN100574281C
CN100574281C CNB2007100751848A CN200710075184A CN100574281C CN 100574281 C CN100574281 C CN 100574281C CN B2007100751848 A CNB2007100751848 A CN B2007100751848A CN 200710075184 A CN200710075184 A CN 200710075184A CN 100574281 C CN100574281 C CN 100574281C
Authority
CN
China
Prior art keywords
hash
index
route
route entry
collision
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
Application number
CNB2007100751848A
Other languages
English (en)
Other versions
CN101072178A (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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CNB2007100751848A priority Critical patent/CN100574281C/zh
Publication of CN101072178A publication Critical patent/CN101072178A/zh
Application granted granted Critical
Publication of CN100574281C publication Critical patent/CN100574281C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种交换机路由表的管理方法,其过程为:A、在软件层上建立散列表,该散列表记录有每条路由表项索引;B、通过查找上述散列表,获得所需路由表项索引;C、根据查找到的路由表项索引在硬件路由表中进行查找,根据查找结果进行相应地删除或插入。本发明通过在软件上维护一个记录每条路由表项索引的哈希表,在查找、插入、删除路由表项时先通过查软件上的哈希表来获取对应的TCAM表里路由表项的索引,找到对应表项,避免每次都是逐条去读硬件路由表项。本发明通过减少硬件路由表项的读写次数来而提高系统性能、降低成本。

Description

一种交换机路由表的管理方法
技术领域
本发明涉及计算机网络通信领域,具体涉及三层交换机的一种高效的路由表管理方法。
背景技术
在三层以太网交换机的运维过程中,对交换机的路由表表项的查找、删除、插入是非常频繁的,提高交换机路由表管理的效率对保证交换机的性能起着非常重要的作用。
目前对路由表的管理一般是采用TCAM(Ternary Content AddressMemory)作为存储介质来提高路由表的管理效率。这种方法虽然通过提高存储介质性能而提高了路由表的管理效率,但由于每次操作需要逐条在TCAM表中去查找,所以开销很大、成本较高。
发明内容
为了解决现有的采用TCAM作为存储介质来提高路由表管理效率的方法开销大、成本高的问题,本发明提供了一种交换机路由表的管理方法。
本发明的管理方法按以下步骤进行:
A、在软件层上建立散列表,该散列表记录有每条路由表项索引;
B、通过查找上述散列表,获得所需路由表项索引;
C、根据查找到的路由表项索引在硬件路由表中进行查找,根据查找结果进行相应地删除或插入。
上述A步骤中所述的散列表包括一个哈希表,以目的IP和掩码为钥匙依据哈希算法所获得的数值作为该条路由条目在哈希表的下标,该下标对应的哈希表中的内容为该目的IP和掩码所对应的路由条目在硬件TCAM路由表中所对应的表项索引。
上述A步骤中所述的散列表还包括一个哈希冲突表,用于记录由于目的IP和掩码依据哈希算法所获得的数值发生相同情况而导致冲突的路由表项;发生冲突时,以已经存入哈希表中的路由条目在硬件TCAM路由表中所对应的表项索引作为与该路由条目发生冲突的冲突路由条目在哈希冲突表中的下标,该下标对应的哈希冲突表中的内容为所述冲突路由条目在硬件TCAM路由表中所对应的表项索引。
发明效果:本发明通过在软件上维护一个记录每条路由表项索引(index)的哈希(Hash)表,在查找、插入、删除路由表项时先通过查软件上的哈希表来获取对应的TCAM表里路由表项的索引(index),找到对应表项,避免每次都是逐条去读硬件路由表项。本发明通过减少硬件路由表项的读写次数来而提高系统性能、降低成本。最好的情况是能一次根据哈希表找到到对应路由条目的索引,那么就只需要进行一次读硬件路由表项的操作;只有在最坏情况下才需要逐条去读硬件表项。本发明通过软硬件的配合来加快硬件TCAM路由表的插入、删除及查找的速度,提高了路由表的管理效率。
附图说明
图1是本发明的散列表与TCAM表的对应关系示意图;
图2是具体实施方式中本发明管理方法的B步骤中查找过程的流程图;
图3是具体实施方式中本发明管理方法的C步骤中删除或插入路由表项的过程流程图。
具体实施方式
以下将详细描述本发明的各较佳实施例。
本发明的交换机路由表的管理方法按以下步骤实施:
A、在软件层上建立散列表,该散列表记录有每条路由表项索引;
B、通过查找上述散列表,获得所需路由表项索引;
C、根据查找到的路由表项索引在硬件路由表中进行查找,根据查找结果进行相应地删除或插入。
上述A步骤中所述的散列表包括一个哈希表,以目的IP和掩码为钥匙依据哈希(Hash)算法所获得的数值作为该条路由条目在哈希表的下标,该下标对应的哈希表中的内容为该目的IP和掩码所对应的路由条目在硬件TCAM路由表中所对应的表项索引。
以下举例说明如何建立上述哈希表:以目的IP和掩码为Hash算法的钥匙(key)定义Hash算法。如图1所示,如果路由条目a的IP地址和掩码所对应的TCAM表里的内容为“Index2”,而由Hash算法根据该IP地址和掩码所Hash出来的数值为“value1”,那么,该路由条目a在哈希表中的索引下标设为“value1”,对应的在哈希表里第“value1”条表项的内容被填入“Index2”。
上述A步骤中所述的散列表还包括一个哈希冲突表,用于记录由于目的IP和掩码依据哈希算法所获得的数值发生相同情况而导致冲突的路由表项;发生冲突时,以已经存入哈希表中的路由条目在硬件TCAM路由表中所对应的表项索引作为与该路由条目发生冲突的冲突路由条目在哈希冲突表中的下标,该下标对应的哈希冲突表中的内容为所述冲突路由条目在硬件TCAM路由表中所对应的表项索引。
以下举例说明如何建立上述哈希冲突表:同样地,以目的IP和掩码为Hash算法的钥匙(key)定义Hash算法。如图1所示,如果路由条目b所对应的IP地址和掩码所Hash出来的数值与上述路由条目a的Hash数值相同,即也为“value1”,而路由条目b的IP地址和掩码所对应的TCAM表里的内容为“Index4”,那么,“Index2”(即,路由条目a的IP地址和掩码所对应的TCAM表里的内容)被设为路由条目b在哈希冲突表中的索引下标,对应的在哈希冲突表里第“Index2”条表项的内容被填入“Index4”。
在哈希冲突表中,由于没有出现上述冲突会有一些空余,那么,以该路由条目在硬件TCAM路由表中所对应的表项索引作为哈希冲突表的下标,该下标对应的哈希冲突表中的内容被填入表示无效状态的无效值。根据图1举例说明此点,如果没有发生与上述路由条目b对应的IP地址和掩码所Hash出来的数值相同的情况,那么,以“Index4”(即,路由条目b的IP地址和掩码所对应的TCAM表里的内容)作为哈希冲突表的索引下标的话,在哈希冲突表里第“Index4”条表项的内容被填入无效值“fff”。
上述哈希表和哈希冲突表都由类型为整形的数组构成,且哈希表和哈希冲突表的表项大小均为TCAM路由表表项数目的大小。
对上述哈希(Hash)表和哈希(Hash)冲突表的管理用以下结构体概括:
typedef struct_tcam_lpm_hash_s{
    int          entry_count; /*Number entries in hash table*/
    uint16       *table;      /*Hash table with 16 bit index*/
    uint16       *link_table; /*To handle collisions*/
}_soc_tcam_lpm_hash_t;
其中的entry_count记录hash表的表项总数,table为hash表的起始地址,link_table为hash冲突表的起始地址。
如图2所示,给出了一种本发明管理方法的B步骤中查找过程的优选方法,具体过程如下:
B1、以目的IP和掩码为钥匙依据哈希算法获得哈希数值,以该哈希数值为下标查找哈希表里的对应表项,读出其中存放的该目的IP和掩码所对应的路由条目在硬件TCAM路由表中所对应的表项索引;
B2、判断该表项索引是否无效;
若该表项索引无效,则表明所要寻找的路由条目不存在;
若该表项索引有效,则执行步骤B3;
B3、根据步骤B1读出的表项索引去读硬件TCAM路由表;
B4、将步骤B3读到的硬件表项里的内容与所需查找的路由表项相比较,看是否一致;
如果步骤B4的判断结果为是,则表明找到对应表项;
如果步骤B4的判断结果为否,则表明存在由于目的IP和掩码依据哈希算法所获得的数值发生相同情况而导致冲突的问题,需要进一步在Hash冲突表里查找,执行步骤B5;
B5、以依据步骤B1在哈希表里读出的表项索引作为下标去索引哈希冲突表;
B6、判断哈希冲突表里的内容是否为无效值;
若步骤B6的判断结果为是,则表明所要寻找的路由条目不存在;
若步骤B6的判断结果为否,则执行步骤B7;
B7、以步骤B5所读出的哈希冲突表的内容作为索引去读硬件TCAM路由表;
B8、将步骤B7所读得的内容与所需查找的路由表项相比较,看是否一致;
如果步骤B8的判断结果为是,则表明找到对应表项;
如果步骤B8的判断结果为否,则继续以依据步骤B 1在哈希表里读出的表项索引作为下标逐条往后去索引哈希冲突表,并重复至步骤B6,直到找到哈希冲突表里的对应表项的内容为无效值时,即证明不存在所要寻找的路由条目时停止。上述B2步骤进行判断时采用通用做法,将表项索引中的某位数值作判断无效或有效的基准,例如,定义表项索引中的某位数值为“1”表示有效、“0”表示无效,那么在进行B2步骤判断时,只要看表项索引中此位数值为“1”或“0”即可。
如图3所示,给出了一种本发明管理方法的C步骤中删除或插入路由表项过程的优选方法,具体过程如下:
若根据B步骤查找后表明该路由条目不存在,则在维护哈希表时,以该目的IP和掩码为钥匙依据哈希算法所获得到的哈希数值作为该路由条目在哈希表中的索引下标,并将该路由条目在硬件TCAM表中的索引填入哈希表,同时也更新哈希冲突表中的相关内容C1步,
前述相关内容的更新即以该目的IP和掩码所对应的硬件TCAM路由表中表项索引作为与该路由条目发生冲突的冲突路由条目在哈希冲突表中的下标,该下标对应的哈希冲突表中的内容为与该目的IP和掩码所对应的路由条目相冲突的路由条目在硬件TCAM路由表中所对应的表项索引;
若根据B步骤查找后表明该路由条目存在,则在维护哈希表时,直接覆盖相应路由表项目即可C2步。
根据B步骤的查找过程可以参见图2所示的流程,例如,图2中通过步骤B2和B6进行判断确定路由条目不存在时,可以参照图3所示的C1步骤的方法对路由表项进行删除或插入;图2中通过步骤B4和B8进行判断确定路由条目存在时,可以参照图3所示的C2步骤的方法对路由表项进行删除或插入。
应当理解的是,上述各具体步骤的举例说明较为具体,并不能因此而认为是对本发明的专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。

Claims (8)

1、一种交换机路由表的管理方法,其特征在于,所述方法采用如下步骤:
A、在软件层上建立散列表,该散列表记录有每条路由表项索引;
B、通过查找上述散列表,获得所需路由表项索引;
C、根据查找到的路由表项索引在硬件路由表中进行查找,根据查找结果进行相应地删除或插入;
所述A步骤中所述的散列表包括一个哈希表,以目的IP和掩码为钥匙依据哈希算法所获得的数值作为该条路由条目在哈希表的下标,该下标对应的哈希表中的内容为该目的IP和掩码所对应的路由条目在硬件TCAM路由表中所对应的表项索引。
2、根据权利要求1所述的一种交换机路由表的管理方法,其特征在于,A步骤中所述的散列表还包括一个哈希冲突表,用于记录由于目的IP和掩码依据哈希算法所获得的数值发生相同情况而导致冲突的路由表项;发生冲突时,以已经存入哈希表中的路由条目在硬件TCAM路由表中所对应的表项索引作为与该路由条目发生冲突的冲突路由条目在哈希冲突表中的下标,该下标对应的哈希冲突表中的内容为所述冲突路由条目在硬件TCAM路由表中所对应的表项索引;
所述哈希表的构成以目的IP和掩码为Hash算法的钥匙定义Hash算法。
3、根据权利要求1所述的一种交换机路由表的管理方法,其特征在于,所述哈希表由类型为整形的数组构成,且哈希表的表项大小为TCAM路由表表项数目的大小。
4、根据权利要求2所述的一种交换机路由表的管理方法,其特征在于,没有发生所述冲突时,以该路由条目在硬件TCAM路由表中所对应的表项索引作为哈希冲突表的下标,该下标对应的哈希冲突表中的内容被填入无效值。
5、根据权利要求2所述的一种交换机路由表的管理方法,其特征在于,所述哈希冲突表由类型为整形的数组构成,且哈希冲突表的表项大小为TCAM路由表表项数目的大小。
6、根据权利要求4所述的一种交换机路由表的管理方法,其特征在于,所述管理方法的B步骤中查找过程按照以下步骤进行:
B1、以目的IP和掩码为钥匙依据哈希算法获得哈希数值,以该哈希数值为下标查找哈希表里的对应表项,读出其中存放的该目的IP和掩码所对应的路由条目在硬件TCAM路由表中所对应的表项索引;
B2、判断该表项索引是否无效;
若该表项索引无效,则表明所要寻找的路由条目不存在;
若该表项索引有效,则执行步骤B3;
B3、根据步骤B1读出的表项索引去读硬件TCAM路由表;
B4、将步骤B3读到的硬件表项里的内容与所需查找的路由表项相比较,看是否一致;
如果步骤B4的判断结果为是,则表明找到对应表项;
如果步骤B4的判断结果为否,则执行步骤B5;
B5、以依据步骤B1在哈希表里读出的表项索引作为下标去索引哈希冲突表;
B6、判断哈希冲突表里的内容是否为无效值;
若步骤B6的判断结果为是,则表明所要寻找的路由条目不存在;
若步骤B6的判断结果为否,则执行步骤B7;
B7、以步骤B5所读出的哈希冲突表的内容作为索引去读硬件TCAM路由表;
B8、将步骤B7所读得的内容与所需查找的路由表项相比较,看是否一致;
如果步骤B8的判断结果为是,则表明找到对应表项;
如果步骤B8的判断结果为否,则继续以依据步骤B1在哈希表里读出的表项索引作为下标逐条往后去索引哈希冲突表,并重复至步骤B6,直到找到哈希冲突表里的对应表项的内容为无效值时,即证明不存在所要寻找的路由条目时停止。
7、根据权利要求1或6所述的一种交换机路由表的管理方法,其特征在于,所述管理方法的C步骤中删除或插入路由表项的过程按以下步骤进行:
若根据B步骤查找后表明该路由条目不存在,则在维护哈希表时,以该目的IP和掩码为钥匙依据哈希算法所获得到的哈希数值作为该路由条目在哈希表中的索引下标,并将该路由条目在硬件TCAM表中的索引填入哈希表,同时也更新哈希冲突表中的相关内容;
若根据B步骤查找后表明该路由条目存在,则在维护哈希表时,直接覆盖相应路由表项目即可;
所述哈希表的构成以目的IP和掩码为Hash算法的钥匙定义Hash算法。
8、根据权利要求7所述的一种交换机路由表的管理方法,其特征在于,所述更新哈希冲突表中的相关内容的过程如下进行:
以该目的IP和掩码所对应的硬件TCAM路由表中表项索引作为与该路由条目发生冲突的冲突路由条目在哈希冲突表中的下标,该下标对应的哈希冲突表中的内容为与该目的IP和掩码所对应的路由条目相冲突的路由条目在硬件TCAM路由表中所对应的表项索引。
CNB2007100751848A 2007-06-22 2007-06-22 一种交换机路由表的管理方法 Expired - Fee Related CN100574281C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100751848A CN100574281C (zh) 2007-06-22 2007-06-22 一种交换机路由表的管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100751848A CN100574281C (zh) 2007-06-22 2007-06-22 一种交换机路由表的管理方法

Publications (2)

Publication Number Publication Date
CN101072178A CN101072178A (zh) 2007-11-14
CN100574281C true CN100574281C (zh) 2009-12-23

Family

ID=38899173

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100751848A Expired - Fee Related CN100574281C (zh) 2007-06-22 2007-06-22 一种交换机路由表的管理方法

Country Status (1)

Country Link
CN (1) CN100574281C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617216A (zh) * 2013-11-21 2014-03-05 珠海金山网络游戏科技有限公司 一种通过新型哈希值表实现数据快速检索的方法和系统

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232444B (zh) * 2008-01-22 2012-03-21 杭州华三通信技术有限公司 哈希冲突解决方法、装置及具有该装置的交换设备
CN101242365B (zh) * 2008-03-11 2010-06-09 南京邮电大学 基于多维分布式哈希表的对等网络安全路由方法
CN101282296B (zh) * 2008-05-27 2010-12-08 华为技术有限公司 获取下一跳路由的方法和装置
CN102640134B (zh) * 2009-09-23 2015-03-18 威罗门飞行公司 基于帧的容错通信系统
CN102147798A (zh) * 2010-02-10 2011-08-10 华为技术有限公司 处理哈希查找冲突问题的方法和装置
CN101841473B (zh) * 2010-04-09 2011-12-28 北京星网锐捷网络技术有限公司 Mac地址表更新方法及装置
CN101841483B (zh) * 2010-05-06 2013-06-19 北京星网锐捷网络技术有限公司 硬件路由表管理方法、装置和通讯设备
US9063749B2 (en) * 2011-05-27 2015-06-23 Qualcomm Incorporated Hardware support for hashtables in dynamic languages
US9098601B2 (en) * 2012-06-27 2015-08-04 Futurewei Technologies, Inc. Ternary content-addressable memory assisted packet classification
CN102868621B (zh) * 2012-08-31 2016-06-08 武汉烽火网络有限责任公司 一种利用异步方式实现大容量路由快速写硬件的方法
CN103117931B (zh) * 2013-02-21 2015-07-01 烽火通信科技股份有限公司 基于哈希表和tcam表的mac地址硬件学习方法及系统
CN103368852A (zh) * 2013-06-04 2013-10-23 华为技术有限公司 用于处理哈希冲突的方法和系统
CN103345479A (zh) * 2013-06-18 2013-10-09 苏州雄立科技有限公司 一种tcam的新型工作模式
CN104484281B (zh) * 2014-12-26 2018-09-04 新华三技术有限公司 数据存储方法、查找方法及装置
CN107634905A (zh) * 2016-07-19 2018-01-26 南京中兴新软件有限责任公司 堆叠系统中数据转发方法及装置
CN109165321B (zh) * 2018-07-28 2020-06-02 华中科技大学 一种基于非易失内存的一致性哈希表构建方法和系统
CN109766185B (zh) * 2019-01-02 2020-12-29 新华三技术有限公司 一种路由表项处理方法及装置
CN111431805B (zh) * 2020-03-27 2021-01-12 上海天好信息技术股份有限公司 一种物联网多路信号复用的同步策略方法
CN112118186B (zh) * 2020-08-28 2022-11-01 深圳市风云实业有限公司 一种交换芯片路由表项存储方法、转发方法及配置方法
CN114465846A (zh) * 2020-11-05 2022-05-10 中国电信股份有限公司 路由条目转发控制方法及路由设备、通信系统
CN112769704B (zh) * 2021-02-09 2023-04-18 芯河半导体科技(无锡)有限公司 一种基于hash表的高速可扩展IP路由查找硬件装置
CN114726920A (zh) * 2022-06-07 2022-07-08 恒生电子股份有限公司 Tcp数据的处理方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617216A (zh) * 2013-11-21 2014-03-05 珠海金山网络游戏科技有限公司 一种通过新型哈希值表实现数据快速检索的方法和系统
CN103617216B (zh) * 2013-11-21 2017-02-08 珠海金山网络游戏科技有限公司 一种通过哈希值表实现数据快速检索的方法和系统

Also Published As

Publication number Publication date
CN101072178A (zh) 2007-11-14

Similar Documents

Publication Publication Date Title
CN100574281C (zh) 一种交换机路由表的管理方法
CN100589087C (zh) 一种通用缓存的方法
US8208408B2 (en) Tree-based node insertion method and memory device
US6490592B1 (en) Method of and apparatus for generating a tree data structure supporting longest match lookup
CN104156380B (zh) 一种分布式存储器哈希索引方法及系统
CN102122285B (zh) 一种数据缓存系统中的数据查询系统和数据查询方法
CN110808910B (zh) 一种支持QoS的OpenFlow流表节能存储架构及其方法
US20080192754A1 (en) Routing system and method for managing rule entries of ternary content addressable memory in the same
CN100550847C (zh) 一种解决Hash冲突的方法及装置
JP3570323B2 (ja) アドレスに関するプレフィクスの格納方法
JP2002501256A (ja) データベース装置
CN101335706B (zh) 对路由表进行空间管理的方法、装置、交换机及路由器
CN102484610A (zh) 路由表建立方法和装置及路由表查找方法和装置
CN103139224A (zh) 一种网络文件系统及网络文件系统的访问方法
CN111538724A (zh) 管理索引的方法
JPWO2005104456A1 (ja) 固定長データの検索装置および検索管理方法
CN101159658A (zh) 虚拟私用网路由查找的方法和装置
CN111131029B (zh) 一种支持规则依赖的高能效OpenFlow流表查找方法
CN101256579A (zh) 一种数据库范围查询数据组织的方法
CN101277252A (zh) 多分支Trie树的遍历方法
CN106326040A (zh) 一种快照元数据管理方法和装置
CN101692653B (zh) 路由表的管理方法和装置
CN104077078B (zh) 读存储区、更新存储区的方法及装置
KR20170065374A (ko) 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법
Hsieh et al. Multiprefix trie: A new data structure for designing dynamic router-tables

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

Granted publication date: 20091223

Termination date: 20160622

CF01 Termination of patent right due to non-payment of annual fee