CN101340386B - 建立和查找路由表项的方法及路由器 - Google Patents
建立和查找路由表项的方法及路由器 Download PDFInfo
- Publication number
- CN101340386B CN101340386B CN2008101473651A CN200810147365A CN101340386B CN 101340386 B CN101340386 B CN 101340386B CN 2008101473651 A CN2008101473651 A CN 2008101473651A CN 200810147365 A CN200810147365 A CN 200810147365A CN 101340386 B CN101340386 B CN 101340386B
- Authority
- CN
- China
- Prior art keywords
- key value
- route table
- table items
- bit
- specific bit
- 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
本发明公开了一种建立和查找路由表项的方法及路由器,属于通信领域。建立路由表项的方法包括:配置关键值的指定位置;设置key值的指定位,并将该指定位移位到指定位置得到新的key值;根据新的key值建立路由表项。所述路由器包括:配置模块、选择模块、移位模块和建立模块。本发明通过在建立路由表项时配置key值的指定位置,在查找路由表项时将选择的key值中的指定位移位到配置的指定位置得到新的key值,从而在根据新的key值查找路由表项时可以更快地找到需要查找的路由表项,提高了查找速度,优化了查找性能。
Description
技术领域
本发明涉及通信领域,特别涉及一种建立和查找路由表项的方法及路由器。
背景技术
现有技术中,路由器中各种路由表项的组织结构主要有树结构和Hash表结构两种形式,两种形式对应的查找方式也不同。
参见图1,为树形式的路由表项的组织结构,其中,1是根节点,2、3是树的中间节点,4、5和6是树的叶子节点,需要查找的路由表项一般存储在叶子节点中,对应一个key(关键值)值进行查找,树在添加新路由表项的时候根据key值从根部开始建立中间节点。如果key值的各个bit位分布比较均匀,建立出来的树应该像图1中的样子,如果需要查找叶子节点4中存储的路由表项,只需要经过1、2两个中间节点就搜索到了;如果key值的各个bit分布的不均匀,建立出来的树可能就像图2的样子,这种情况下当需要查找叶子节点7中的路由表项时,就需要经过1、2、4和5四个节点,查找速度慢。
参见图3,为Hash表形式的路由表项的组织结构,存储的路由表项通常以链表的形式串连起来,当需要查找某个路由表项时,首先根据key值的Hash结果找到链表Entry(入口),然后再根据key值找到相应的路由表项。如果key值不均匀,这种形式的路由表组织结构也存在Hash结果命中同一个Entry的情况,这种情况下还需要遍历链表比较key值是否相等,最坏的情况要遍历到最后一个才能查找到。例如,当需要查找Eliment4中的路由表项时,key值的Hash结果命中Entry3,但Entry3下的链表有3个,需要根据key值依次比较,到第三个时key值相等才能查找到相应的表项。
在实现本发明的过程中,发明人发现上述现有技术中至少存在以下缺点:
在查找路由器上的路由表项时,只有一种固定的算法,不能针对特定的应用需求和网络模型优化查找性能。
发明内容
为了优化路由表项的查找性能,本发明实施例提供了一种建立和查找路由表项的方法及路由器。所述技术方案如下:
本发明实施例提供了一种查找路由表项的方法,所述方法包括:
根据实际应用的需求配置关键值的指定位置;
将反映所述关键值中比特位变化的一段比特位设置为指定位,并将所述指定位移位到所述指定位置得到新的关键值;
根据所述新的关键值建立路由表项。
相应地,本发明实施例还提供了一种路由器,所述路由器包括:
配置模块,用于根据实际应用的需求配置关键值的指定位置;
设置模块,用于将反映所述关键值中比特位变化的一段比特位设置为指定位;
移位模块,用于将所述设置模块设置的指定位移位到所述配置模块配置的指定位置,得到新的关键值;
建立模块,用于根据所述移位模块得到的新的关键值建立路由表项。
本发明实施例提供了一种查找路由表项的方法,所述方法包括:
当查找路由表项时,选择需要查找的路由表项的关键值中的指定位,所述指定位为建立所述路由表项时将反映所述关键值中比特位变化的一段比特位设置为指定位;
将所述指定位移位到所述关键值的指定位置,得到新的关键值,所述指定位置为建立所述路由表项时根据实际应用的需求配置所述关键值的指定位置;
根据所述新的关键值查找所述路由表项。
相应地,本发明实施例提供了一种路由器,所述路由器包括:
选择模块,用于当查找路由表时,选择需要查找的路由表项的关键值中的指定位,所述指定位为建立所述路由表项时将反映所述关键值中比特位变化的一段比特位设置为指定位;
移位模块,用于将所述选择模块选择的指定位移位到指定位置,得到新的关键值,所述指定位置为建立所述路由表项时根据实际应用的需求配置所述关键值的指定位置;
查找模块,用于根据所述移位模块得到的新的关键值查找路由表项。
本发明实施例提供的技术方案的有益效果是:
本发明实施例通过在建立路由表项时配置key值的指定位置,将设置的key值中的指定位移位到key值的指定位置得到新的key值,从而在根据新的key值建立路由表项;在查找路由表项时根据与建立路由表项相同的方法对key值进行移位得到新的key值,这样可以更快地找到需要查找的路由表项,提高了查找速度,优化了查找性能。
附图说明
图1是现有技术中平均的二叉树形式的路由表项组织结构的示意图;
图2是现有技术中不平均的二叉树形式的路由表项组织结构的示意图;
图3是现有技术中Hash表形式的路由表项组织结构的示意图;
图4是本发明实施例1提供的建立路由表项的方法的流程图;
图5是本发明实施例2提供的查找路由表项的方法的流程图;
图6是本发明实施例3提供的路由器的结构示意图;
图7是本发明实施例4提供的路由器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例通过在建立路由表项时配置key值的指定位置,将设置的key值中的指定位移位到key值的指定位置得到新的key值,即在建立路由表项时可以将key值中的指定位移位到任意指定位置,然后根据新的key值建立路由表项,在查找路由表项时采用与建立路由表项相同的方法将选择的key值中的指定位移位到指定位置得到新的key值,从而在根据新的key值查找路由表项时可以更快地找到需要查找的路由表项,提高了查找速度,优化了查找性能。
本发明实施例提供了一种查找路由表项的方法,该方法包括:
配置关键值的指定位置;
设置关键值的指定位,并将该指定位移位到配置的指定位置得到新的关键值;
根据新的关键值建立路由表项。
实施例1
本实施例中,首先在建立路由表时,根据实际应用的需求配置key值的指定位置,并将指定位移位到key值的配置的指定位置得到新的key值,根据新的key值建立路由表;在查表时采用与建表时相同的方法调整key值中比特位的顺序得到新的key值,这样在根据新的key值查找路由表项时提高了查找速度。
参见图4,本发明实施例提供了一种建立路由表项的方法,具体包括:
101:配置key值的指定位置。
现有技术中在建立路由表时,首先将key值的指定位移位到指定位置得到新的key值,现有的建表算法只能将指定位移位到固定的指定位置,在本实施例中,首先根据实际应用的需求配置key值的指定位置,即key值的指定位置是可以变化的,在查表时采用与建表时相同的方式将key值的指定位移位到配置的指定位置得到新的key值,然后再根据新的key值查找路由表项,这样可以提高查表的速度。
102:将反映key值中比特位变化的一段比特位设置为指定位。
例如,某业务需要查找的路由表项的key值是源IP地址、目的IP地址、UDP或TCP首部的源端口、目的端口和路由器入端口的组合,当该业务的流量模型为IP地址变化频繁而其它几项基本无变化的形式时,可以将表示IP地址的一段比特位设置为指定位;当该业务的流量模型为IP地址固定而UDP或TCP端口变化频繁的形式时,可以将表示UDP或TCP端口的一段比特位设置为指定位;当该业务的流量模型为需要高带宽采用多个路由器接口负载分担传输的形式时,可以将表示路由器端口的一段比特位设置为指定位。
进一步地,还可以将反映key值变化的某一个比特位或者某几个比特位设置为指定位,即设置的指定位可以是一段连续的比特位,也可以是几段不连续的比特位。
103:在设置key值的指定位后,将key值的指定位移位到配置的指定位置得到新的key值。
其中,可以将key值的指定位移位到key值的首部或者其它配置的指定位置。
104:根据新的key值建立路由表项。
本实施例以将指定位移位到key值的首部为例进行说明,根据新的key值建立路由表项的具体过程如下:
根据新的key值的首部的指定位的Hash结果建立不同的Entry,然后再根据key值的Hash结果将路由表下挂到不同的Entry下。例如,参见图3,假设设置的key值的指定位为表示IP地址的一段连续16位的比特位,根据新的key值的前16比特位的Hash结果建立的Entry有Entry1、Entry2、...、EntryN,如果该key值的第一次Hash结果与Entry1相对应,则在Entry1下下挂Eliment1;该key值的第二次Hash结果与Entry3相对应,则在Entry3下下挂Eliment2;该key值的第三次Hash结果还与Entry3相对应,则在Eliment2下下挂Eliment3,以此类推。
因为建表时首先要根据key值的首部的Hash结果建立不同的Entry,这种建表方式相当于将路由表项划分成不同的组,在查表时,首先找到路由表项所属的组,然后再在该组中查找路由表项。本实施例中根据实际需要将反映key值中比特位变化一段比特位设置为指定位,并将其移位到key值的首部,这样对key值的首部进行Hash时就可以得到不同的Entry,即尽可能地将路由表项划分到不同的组以提高查表时的速度。
本实施例通过根据实际应用的需要配置key值的指定位置,将key值中的指定位移位到配置的指定位置,并根据移位后的key值建立路由表项,减少了建表时树的深度或者降低Hash表的冲突,这样在查找路由表项时按照与建表时相同的方法调整key值中比特位的顺序,从而可以提高查找路由表项的速度,优化查找性能。
实施例2
参见图5,与上述实施例1提供的建立路由表项的方法相对应,本实施例还提供了一种查找路由表项的方法,具体包括:
201:当查找路由表项时,选择需要查找的路由表项的key值中的指定位,该指定位为建立路由表项时设置的指定位。
其中,查表项时选择的key值的指定位与建表时设置的指定位是相同的,例如,建表时将key值中表示IP地址的16位比特位设置为指定位,在查找路由表项时也要选择该指定位。
在建立路由表项时,根据实际需要将反映key值中变化的一段比特位设置为指定位,由于key值中的某个比特位或者某几个比特位可以表示子网标识或端口号,因此这样设置key值的指定位在查找路由表项时,可以使需求更加细化,在为客户进行网络规划时,甚至能够细化到子网或端口范围的地步。
202:将选择的指定位移位到指定位置,得到新的key值,该指定位置为建立路由表项时配置的关键值的指定位置。
203:根据新的key值查找路由表项。
本实施例在查找路由表项时按照与建表时相同的方法调整key值中比特位的顺序,从而提高了查找路由表项的速度,优化查找性能。
实施例3
参见图6,与上述实施例1提供的建立路由表项的方法实施例相对应,本发明实施例提供了一种路由器,该路由器包括:
配置模块301,用于配置关键值的指定位置;
设置模块302,用于设置关键值的指定位;其中,可以将反映关键值中比特位变化的一段比特位设置为指定位,上述一段比特位为一段连续比特位或不连续比特位。
移位模块303,用于将设置模块302设置的指定位移位到配置模块301配置的指定位置,得到新的关键值;
建立模块304,用于根据移位模块303得到的新的关键值建立路由表项。
本实施例通过配置模块301配置key值的指定位置,设置模块设置key值中的指定位,移位模块303将设置模块302设置的指定位移位到配置模块301配置的指定位置得到新的key值,由于指定位是反映key值中比特位变化的一段比特位,这样在建立路由表项时可以根据实际需要对key值进行变换,从而可以减少建表时树的深度或降低Hash冲突,便于在查找路由表项时可以更快地找到需要查找的表项,提高了查找速度,优化了查找性能。
实施例4
参见图7,与上述实施例2提供的查找路由表项的方法实施例相对应,本实施例还提供了一种路由器,该路由器包括:
选择模块401,用于当查找路由表时,选择需要查找的路由表项的关键值中的指定位,该指定位为建立路由表项时设置的指定位;
移位模块402,用于将选择模块401选择的指定位移位到指定位置,得到新的关键值,该指定位置为建立路由表项时配置的关键值的指定位置;
查找模块403,用于根据移位模块402得到的新的关键值查找路由表项。
本实施例当查找路由表项时,选择模块401选择key值中的指定位,该指定位为建立路由表项时设置的指定位,移位模块402将选择模块401选择的指定位移位到指定位置得到新的key值,由于指定位是反映key值中比特位变化的一段比特位,从而在查找模块403在根据新的key值查找路由表项时可以更快地找到需要查找的表项,提高了查找速度,优化了查找性能。
本发明实施例可以通过软件实现,相应地软件可以存储到可读取的存储介质中,例如,计算机的硬盘、软盘或光盘中。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种建立路由表项的方法,其特征在于,所述方法包括:
根据实际应用的需求配置关键值的指定位置;
将反映所述关键值中比特位变化的一段比特位设置为指定位,并将所述指定位移位到所述指定位置得到新的关键值;
根据所述新的关键值建立路由表项。
2.根据权利要求1所述的建立路由表项的方法,其特征在于,所述一段比特位为一段连续比特位或不连续比特位。
3.一种路由器,其特征在于,所述路由器包括:
配置模块,用于根据实际应用的需求配置关键值的指定位置;
设置模块,用于将反映所述关键值中比特位变化的一段比特位设置为指定位;
移位模块,用于将所述设置模块设置的指定位移位到所述配置模块配置的指定位置,得到新的关键值;
建立模块,用于根据所述移位模块得到的新的关键值建立路由表项。
4.一种查找路由表项的方法,其特征在于,所述方法包括:
当查找路由表项时,选择需要查找的路由表项的关键值中的指定位,所述指定位为建立所述路由表项时将反映所述关键值中比特位变化的一段比特位设置为指定位;
将所述指定位移位到所述关键值的指定位置,得到新的关键值,所述指定位置为建立所述路由表项时根据实际应用的需求配置所述关键值的指定位置;
根据所述新的关键值查找所述路由表项。
5.一种路由器,其特征在于,所述路由器包括:
选择模块,用于当查找路由表项时,选择需要查找的路由表项的关键值中的指定位,所述指定位为建立所述路由表项时将反映所述关键值中比特位变化的一段比特位设置为指定位;
移位模块,用于将所述选择模块选择的指定位移位到指定位置,得到新的关键值,所述指定位置为建立所述路由表项时根据实际应用的需求配置所述关键值的指定位置;
查找模块,用于根据所述移位模块得到的新的关键值查找路由表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101473651A CN101340386B (zh) | 2008-08-12 | 2008-08-12 | 建立和查找路由表项的方法及路由器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101473651A CN101340386B (zh) | 2008-08-12 | 2008-08-12 | 建立和查找路由表项的方法及路由器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101340386A CN101340386A (zh) | 2009-01-07 |
CN101340386B true CN101340386B (zh) | 2011-08-10 |
Family
ID=40214340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101473651A Expired - Fee Related CN101340386B (zh) | 2008-08-12 | 2008-08-12 | 建立和查找路由表项的方法及路由器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101340386B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102209387B (zh) * | 2011-06-13 | 2014-09-17 | 南京漫城软件科技有限公司 | 一种基于wsn技术的三维快速定位方法 |
CN110837583B (zh) * | 2019-09-27 | 2022-10-28 | 西安空间无线电技术研究所 | 一种基于数据链消息活跃度的快速查找方法、系统及介质 |
CN113726661B (zh) * | 2021-08-27 | 2022-10-18 | 西安微电子技术研究所 | 一种高性能低功耗的路由哈希器及其控制方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1406073A (zh) * | 2001-08-14 | 2003-03-26 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种基于用户ip地址路由的路由选择方法 |
CN1510931A (zh) * | 2002-12-26 | 2004-07-07 | ��Ϊ��������˾ | 一种改进的多级查找表的建立及查找方法 |
CN1538663A (zh) * | 2003-04-16 | 2004-10-20 | 华为技术有限公司 | 一种采用哈希链表查找路由表项的方法 |
CN1543133A (zh) * | 2003-04-30 | 2004-11-03 | 华为技术有限公司 | 静态路由的刷新方法 |
CN1929451A (zh) * | 2006-09-29 | 2007-03-14 | 华为数字技术有限公司 | 一种解决Hash冲突的方法及装置 |
CN1964311A (zh) * | 2005-11-10 | 2007-05-16 | 中国科学院计算技术研究所 | IPv6路由表快速查找和更新的方法 |
-
2008
- 2008-08-12 CN CN2008101473651A patent/CN101340386B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1406073A (zh) * | 2001-08-14 | 2003-03-26 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种基于用户ip地址路由的路由选择方法 |
CN1510931A (zh) * | 2002-12-26 | 2004-07-07 | ��Ϊ��������˾ | 一种改进的多级查找表的建立及查找方法 |
CN1538663A (zh) * | 2003-04-16 | 2004-10-20 | 华为技术有限公司 | 一种采用哈希链表查找路由表项的方法 |
CN1543133A (zh) * | 2003-04-30 | 2004-11-03 | 华为技术有限公司 | 静态路由的刷新方法 |
CN1964311A (zh) * | 2005-11-10 | 2007-05-16 | 中国科学院计算技术研究所 | IPv6路由表快速查找和更新的方法 |
CN1929451A (zh) * | 2006-09-29 | 2007-03-14 | 华为数字技术有限公司 | 一种解决Hash冲突的方法及装置 |
Non-Patent Citations (2)
Title |
---|
华伟臣等.IPv6下路由器快速路径查找算法.计算机应用研究.2006,2006(10),241-243. * |
徐恪等.路由查找算法研究综述.软件学报.2002,13(1),42-50. * |
Also Published As
Publication number | Publication date |
---|---|
CN101340386A (zh) | 2009-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100531102C (zh) | 路由表调整方法、路由查询方法和装置及路由表存储装置 | |
CN103238145B (zh) | 用于网络装备中的高性能、可更新和确定的哈希表的方法和设备 | |
US7031320B2 (en) | Apparatus and method for performing high-speed IP route lookup and managing routing/forwarding tables | |
CN101631086B (zh) | 并行ip路由查找的路由表分区和放置方法 | |
CN101399778B (zh) | 一种无线对等网络中节点的组织方法及资源发现方法 | |
US20060083247A1 (en) | Prefix lookup using address-directed hash tables | |
CN100566281C (zh) | 虚拟私用网路由查找的方法和装置 | |
CN102291296A (zh) | 一种路由表的更新方法及系统 | |
CN101202746B (zh) | 节点标识符生成方法及负载均衡方法及装置 | |
CN101340386B (zh) | 建立和查找路由表项的方法及路由器 | |
US11570105B2 (en) | Dynamic route profile storage in a hardware trie routing table | |
CN101399765B (zh) | 降低对等网络中热点节点负荷的方法和系统 | |
CN101540730A (zh) | 地址查找方法、交换机和网络系统 | |
CN104836738A (zh) | 路由硬件表项资源管理方法、装置及网络设备 | |
US8886705B1 (en) | Goal-oriented storage management for a distributed data storage network | |
EP2736201B1 (en) | Routing table management method and system | |
CN101741869A (zh) | 提供内容的方法和系统 | |
CN100358288C (zh) | 在网络设备中处理五元流组的方法 | |
RU2233473C2 (ru) | Устройство и способ выполнения высокоскоростного поиска маршрутов протокола интернет и управления таблицами маршрутизации/пересылки | |
CN109194574B (zh) | 一种IPv6路由查找方法 | |
CN102739550A (zh) | 基于随机副本分配的多存储器流水路由体系结构 | |
CN100366023C (zh) | 路由查找装置 | |
CN101989946A (zh) | 一种通信设备路由转发表的压缩方法 | |
CN106202303A (zh) | 一种Chord路由表压缩方法及优化文件查找方法 | |
CN105119830A (zh) | 基于装箱优化的负载均衡软件定义网络路由聚合方法 |
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: 20110810 Termination date: 20160812 |
|
CF01 | Termination of patent right due to non-payment of annual fee |