一种IPv6路由查找方法与流程

文档序号:16588383发布日期:2019-01-14 18:52阅读:698来源:国知局

本发明涉及路由查找技术领域,具体为一种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,将来有新的路由前缀加入时,数据结构也不用调整,通过路由桶的组织方式由路由桶中的路由条数决定,并不采用单一的组织方式,这样就既能保证算法的查找性能,又能降低算法的内存消耗,当路由桶中只有几条路由时,可以采用简单的线性表结构和线性查找方式。

需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1