CN109194574B - 一种IPv6路由查找方法 - Google Patents
一种IPv6路由查找方法 Download PDFInfo
- Publication number
- CN109194574B CN109194574B CN201811097082.0A CN201811097082A CN109194574B CN 109194574 B CN109194574 B CN 109194574B CN 201811097082 A CN201811097082 A CN 201811097082A CN 109194574 B CN109194574 B CN 109194574B
- Authority
- CN
- China
- Prior art keywords
- route
- bucket
- routing
- ipv6
- segment 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000008520 organization Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
-
- 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/48—Routing tree calculation
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/659—Internet protocol version 6 [IPv6] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及路由查找技术领域,且公开了一种IPv6路由查找方法,包括如下步骤:一、构件数据结构:S1.构建以2001作为根节点、由路由前缀的前16位组成的二叉树;S2.构建段表和路由桶,在算法的查找效率和算法所占内存之间的平衡条件下得出相应的阈值,当路由条目数小于阈值时使用路由桶组织,当路由条目数大于阈值时使用段表组织;S3.链接在段表上的路由桶。该IPv6路由查找方法,具备能够实现IPv6快速查找的的优点,能够较好的满足IPV6的查找需要。
Description
技术领域
本发明涉及路由查找技术领域,具体为一种IPv6路由查找方法。
背景技术
IPv6是下一代互联网NGI的核心协议,和现在无处不在的计算机网络使用的网际协议—IPv4相比,IPv6最大的特点是它使用128位超长IP地址,如此巨大的地址空间几乎可以为地球上的每一粒沙子分配一个IP地址,随着互联网的进一步发展,IPv4地址短缺的问题变得越来越急迫,IPv6也因此吸引了学术界和产业界的广泛关注和认可,特别是在欧洲和亚太地区,人口多,获得的IPv4地址少,对IPv6的研究、开发和部署非常积极,目前世界上规模最大的纯IPv6网络,中国下一代互联网CNGI骨干网—CERNET2已于2004年12月25日开通,随着IPv6被广泛认可和逐步部署,拥有丰富IPv4地址资源的美国对IPv6的态度也发生了变化。
随着光纤技术如波分复用技术的发展,网络链路层带宽不再是互联网的瓶颈,核心路由器由于需要执行复杂的IP路由查找操作,已成为制约因特网性能的新瓶颈,为此,路由查找问题受到业界的广泛关注并推出了一些针对IPV4的快速路由查找算法,由于因特网的发展和IP移动性的要求,传统的IPV4网络已不能完全满足需要,而IPV4地址的耗尽也仅在咫尺,IPV6协议的采用成为必然趋势,然而IPV6路由查找仍然是最长前缀匹配,而现有的大多数IPV4查找算法只能适应32位的前缀,不能扩展到IPV6的查找,因此,寻找高效可行的IPV6路由查找算法势在必行。
已有的IPV6路由查找算法大致可分为TCAM硬件查找、HASH查找、分段查找等其它查找方式,但这些算法都不能较好的满足IPV6的查找需要。
发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供了一种IPv6路由查找方法,具备能够实现IPv6快速查找的等优点,解决了目前算法都不能完全满足IPV6的查找需要的问题。
(二)技术方案
为实现满足IPv6快速查找的目的,本发明提供如下技术方案:一种IPv6路由查找方法,包括如下步骤:
一、构件数据结构
S1.构建以2001作为根节点、由路由前缀的前16位组成的的二叉树;
S2.构建段表和路由桶,在算法的查找效率和算法所占内存之间的平衡条件下得出相应的阈值,当路由条目数小于阈值时使用路由桶组织,当路由条目数大于阈值时使用段表组织;
S3.链接在段表上的路由桶
a当路由桶中只有几条路由时,使用线性查找的方式链接在段表上的路由桶;
b当路由桶中有十几条到几十条路由时,采用基于前缀区间的二分查找方式链接在段表上的路由桶;
二、路由查找
A.将默认的路由的下一跳信息存入BMP,提取IPv6地址的第1-16比特在二叉树上查找并记录当前的BMP;
B.根据匹配节点的指针类型进行匹配,当匹配节点连接路由桶时,使用目的IPv6地址的第15-125比特在路由桶中查找并返回查找结果;
C.当匹配节点链接段表时,使用目的IPv6地址的第15-27比特的值定位到段表中的相应表项,并记录当前的BMP;
D.当段表表项链接路由桶时,使用目的IPv6地址的第28-119比特在路由桶中查找并返回查找结果。
优选的,所述S2中的路由桶关心路由的前缀第15-125比特。
优选的,所述S3中的路由桶关心路由前缀的第28-119比特。
优选的,所述b步骤中的基于前缀区间的二分查找方式链接在段表上的路由桶可由基于前缀长度的二分查找方式进行替代。
优选的,所述路由桶是路由表项的集合,根据路由桶中路由表项数目的不同,路由桶可以采用不同的组织方式。
优选的,所述A步骤中如果查找失败就返回默认路由。
优选的,所述B步骤中如果匹配节点没有链接就返回当前记录BMP。
(三)有益效果
与现有技术相比,本发明提供了一种IPv6路由查找方法,具备以下有益效果:
1、该IPv6路由查找方法,通过S2中采用两种不同的数据结构,充分利用了IPv6路由表的特点,降低了算法的内存消耗,因为绝大多数路由前缀都以2001开头,所以2001链接段表,以其它值开头的路由前缀非常少,所以链接路由桶(如2800,2002等),段表的大小是16比特,共有216项,由路由前缀的第17-32位组成,这样组织段表不仅效率高,而且具有一定的前瞻性,效率高是因为路由前缀的第17-32位具有很高的区分度,因此链接在段表上的路由桶都不会太大,这样就节约了内存消耗,提高了算法的查找性能.具有前瞻性是因为第17-32位的值中虽然有很多还没有路由前缀,但我们仍然采用16位的段表,这样内存消耗只有64K,将来有新的路由前缀加入时,数据结构也不用调整。
2、该IPv6路由查找方法,通过路由桶的组织方式由路由桶中的路由条数决定,并不采用单一的组织方式,这样就既能保证算法的查找性能,又能降低算法的内存消耗,当路由桶中只有几条路由时,可以采用简单的线性表结构和线性查找方式。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种IPv6路由查找方法,包括如下步骤:
一、构件数据结构
S1.构建以2001作为根节点、由路由前缀的前16位组成的的二叉树,因为IPv6路由表中没有前缀长度小于16的路由表项,所以在二叉树上只需要做精确匹配,以2001作为二叉树的根节点是因为目前IPv6网络上的流量的IPv6地址绝大部分以2001开头,这样网络上的大部分流量在二叉树上只需要一次匹配,提高了算法的平均查找性能;
S2.构建段表和路由桶,在算法的查找效率和算法所占内存之间的平衡条件下得出相应的阈值,当路由条目数小于阈值时使用路由桶组织,当路由条目数大于阈值时使用段表组织,采用两种不同的数据结构,充分利用了IPv6路由表的特点,降低了算法的内存消耗;
S3.链接在段表上的路由桶
a当路由桶中只有几条路由时,使用线性查找的方式链接在段表上的路由桶,是因为路由前缀的第17-32位具有很高的区分度,因此链接在段表上的路由桶都不会太大,这样就节约了内存消耗,提高了算法的查找性能;
b当路由桶中有十几条到几十条路由时,采用基于前缀区间的二分查找方式链接在段表上的路由桶;
二、路由查找
A.将默认的路由的下一跳信息存入BMP,提取IPv6地址的第1-16比特在二叉树上查找并记录当前的BMP;
B.根据匹配节点的指针类型进行匹配,当匹配节点连接路由桶时,使用目的IPv6地址的第15-125比特在路由桶中查找并返回查找结果;
C.当匹配节点链接段表时,使用目的IPv6地址的第15-27比特的值定位到段表中的相应表项,并记录当前的BMP;
D.当段表表项链接路由桶时,使用目的IPv6地址的第28-119比特在路由桶中查找并返回查找结果。
S2中的路由桶关心路由的前缀第15-125比特。
S3中的路由桶关心路由前缀的第28-119比特。
b步骤中的基于前缀区间的二分查找方式链接在段表上的路由桶可由基于前缀长度的二分查找方式进行替代。
路由桶是路由表项的集合,根据路由桶中路由表项数目的不同,路由桶可以采用不同的组织方式。
A步骤中如果查找失败就返回默认路由。
B步骤中如果匹配节点没有链接就返回当前记录BMP。
综上所述,该IPv6路由查找方法,使用时,通过S2中采用两种不同的数据结构,充分利用了IPv6路由表的特点,降低了算法的内存消耗,因为绝大多数路由前缀都以2001开头,所以2001链接段表,以其它值开头的路由前缀非常少,所以链接路由桶(如2800,2002等),段表的大小是16比特,共有216项,由路由前缀的第17-32位组成,这样组织段表不仅效率高,而且具有一定的前瞻性,效率高是因为路由前缀的第17-32位具有很高的区分度,因此链接在段表上的路由桶都不会太大,这样就节约了内存消耗,提高了算法的查找性能.具有前瞻性是因为第17-32位的值中虽然有很多还没有路由前缀,但我们仍然采用16位的段表,这样内存消耗只有64K,将来有新的路由前缀加入时,数据结构也不用调整,通过路由桶的组织方式由路由桶中的路由条数决定,并不采用单一的组织方式,这样就既能保证算法的查找性能,又能降低算法的内存消耗,当路由桶中只有几条路由时,可以采用简单的线性表结构和线性查找方式。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (7)
1.一种IPv6路由查找方法,其特征在于,包括如下步骤:
一、构件数据结构
S1.构建以2001作为根节点、由路由前缀的前16位组成的的二叉树;
S2.构建段表和路由桶,在算法的查找效率和算法所占内存之间的平衡条件下得出相应的阈值,当路由条目数小于阈值时使用路由桶组织,当路由条目数大于阈值时使用段表组织;
S3.链接在段表上的路由桶
a当路由桶中只有几条路由时,使用线性查找的方式链接在段表上的路由桶;
b当路由桶中有十几条到几十条路由时,采用基于前缀区间的二分查找方式链接在段表上的路由桶;
二、路由查找
A.将默认的路由的下一跳信息存入BMP,提取IPv6地址的第1-16比特在二叉树上查找并记录当前的BMP;
B.根据匹配节点的指针类型进行匹配,当匹配节点连接路由桶时,使用目的IPv6地址的第15-125比特在路由桶中查找并返回查找结果;
C.当匹配节点链接段表时,使用目的IPv6地址的第15-27比特的值定位到段表中的相应表项,并记录当前的BMP;
D.当段表表项链接路由桶时,使用目的IPv6地址的第28-119比特在路由桶中查找并返回查找结果。
2.根据权利要求1所述的一种IPv6路由查找方法,其特征在于,所述S2中的路由桶关心路由的前缀第15-125比特。
3.根据权利要求1所述的一种IPv6路由查找方法,其特征在于,所述S3中的路由桶关心路由前缀的第28-119比特。
4.根据权利要求1所述的一种IPv6路由查找方法,其特征在于,所述b步骤中的基于前缀区间的二分查找方式链接在段表上的路由桶可由基于前缀长度的二分查找方式进行替代。
5.根据权利要求1所述的一种IPv6路由查找方法,其特征在于,所述路由桶是路由表项的集合,根据路由桶中路由表项数目的不同,路由桶可以采用不同的组织方式。
6.根据权利要求1所述的一种IPv6路由查找方法,其特征在于,所述A步骤中如果查找失败就返回默认路由。
7.根据权利要求1所述的一种IPv6路由查找方法,其特征在于,所述B步骤中如果匹配节点没有链接就返回当前记录BMP。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811097082.0A CN109194574B (zh) | 2018-09-20 | 2018-09-20 | 一种IPv6路由查找方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811097082.0A CN109194574B (zh) | 2018-09-20 | 2018-09-20 | 一种IPv6路由查找方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109194574A CN109194574A (zh) | 2019-01-11 |
CN109194574B true CN109194574B (zh) | 2020-09-18 |
Family
ID=64908865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811097082.0A Expired - Fee Related CN109194574B (zh) | 2018-09-20 | 2018-09-20 | 一种IPv6路由查找方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109194574B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115378869B (zh) * | 2022-06-28 | 2024-03-19 | 国家电网有限公司信息通信分公司 | 白盒路由器转发信息库表的分发与存储方法及相关设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8625604B2 (en) * | 2009-12-01 | 2014-01-07 | Polytechnic Institute Of New York University | Hash-based prefix-compressed trie for IP route lookup |
CN106656816A (zh) * | 2016-09-18 | 2017-05-10 | 首都师范大学 | 分布式ipv6路由查找方法和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100496019C (zh) * | 2005-11-10 | 2009-06-03 | 中国科学院计算技术研究所 | IPv6路由表快速查找和更新的方法 |
US9268779B2 (en) * | 2009-01-28 | 2016-02-23 | Mckesson Financial Holdings | Methods, computer program products, and apparatuses for dispersing content items |
CN103428093B (zh) * | 2013-07-03 | 2017-02-08 | 北京邮电大学 | 一种基于名字路由前缀存储、匹配及更新方法与装置 |
-
2018
- 2018-09-20 CN CN201811097082.0A patent/CN109194574B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8625604B2 (en) * | 2009-12-01 | 2014-01-07 | Polytechnic Institute Of New York University | Hash-based prefix-compressed trie for IP route lookup |
CN106656816A (zh) * | 2016-09-18 | 2017-05-10 | 首都师范大学 | 分布式ipv6路由查找方法和系统 |
Non-Patent Citations (1)
Title |
---|
TSB:一种多阶段IPv6路由表查找算法;李振强等;《电子学报》;20071015;第35卷(第10期);1859-1864 * |
Also Published As
Publication number | Publication date |
---|---|
CN109194574A (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7418505B2 (en) | IP address lookup using either a hashing table or multiple hash functions | |
US9627063B2 (en) | Ternary content addressable memory utilizing common masks and hash lookups | |
EP2560327B1 (en) | Routing table establishment method and device | |
US6449256B1 (en) | Fast level four switching using crossproducting | |
US7630367B2 (en) | Approach for fast IP address lookups | |
US7526603B1 (en) | High-speed low-power CAM-based search engine | |
US9602407B2 (en) | Trie stage balancing for network address lookup | |
CN102377664A (zh) | 一种基于tcam的区域匹配装置和方法 | |
CN103107945B (zh) | 一种快速查找ipv6路由的系统及方法 | |
US7624226B1 (en) | Network search engine (NSE) and method for performing interval location using prefix matching | |
CN106330716B (zh) | Ip路由查找方法及装置 | |
CN114884877B (zh) | 一种哈希表和HOT相结合的IPv6路由查找方法 | |
Zhong | An IPv6 address lookup algorithm based on recursive balanced multi-way range trees with efficient search and update | |
CN109194574B (zh) | 一种IPv6路由查找方法 | |
CN112667640B (zh) | 一种路由地址存储方法及装置 | |
Veeramani et al. | Efficient IP lookup using hybrid trie-based partitioning of TCAM-based open flow switches | |
CN115396365B (zh) | 一种规模无关的快速路由收敛方法 | |
Rojas-Cessa et al. | Parallel search trie-based scheme for fast IP lookup | |
Liu et al. | Longest prefix matching with pruning | |
US6895442B1 (en) | Technique for fast and efficient internet protocol (IP) address lookup | |
CN107204926B (zh) | 预处理cache的路由快速查找方法 | |
EP3319279B1 (en) | Ip routing lookup | |
Erdem et al. | Value-coded trie structure for high-performance IPv6 lookup | |
Dai et al. | An advanced TCAM-sram architecture for ranges towards minimizing packet classifiers | |
Jangid et al. | Prefix length-based disjoint set tries for IPv6 lookup |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200918 |
|
CF01 | Termination of patent right due to non-payment of annual fee |