一种路由表的维护方法和装置的制造方法

文档序号:9828095阅读:519来源:国知局
一种路由表的维护方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据网络通信技术,尤其涉及一种路由表的维护方法和装置。
【背景技术】
[0002]随着互联网协议第六版(IPV6, Internet Protocol Vers1n 6)网络建设大规模的展开,合理高效的管理ipv6路由成为路由器软件设计的关键。由于ipv6路由长达128位,因此,基于Donald R.Morrison所提出的Patricia树的思想而设计的基数radix树算法,以其适合处理非常长的、可变长度的键值的特性,成为了 ipv6路由管理的首选算法。
[0003]但是,目前开源的radix树算法,是使用树算法来动态生成和管理掩码,如图1所示的现有开源radix算法生成的路由表的组成结构中,可以得知,路由表由掩码树、路由树和普适链组成,其中,圆形节点表示中间节点,底色为纯白的是根节点,底色为横线阴影的是普通节点,节点中的数字表示分支的位置值;矩形节点为叶子节点,底色为纯白的是根节点,底色为阴影的是普通节点,节点中的内容为路由前缀及掩码;六边形节点为普适链结点,节点中的内容为该结点对应的掩码长度。此外,该路由树中还包括了对非连续掩码分支的支持,也就是在对路由树进行搜索时,需要对非连续掩码的分支进行判断和处理。
[0004]由图1所示的路由表的组成结构可以得知,每次路由表维护时都需要进行掩码树查找以确定是否已经存在相应的掩码;而且,在普适链管理等维护操作时也进行了繁复的字节比较和移位运算,这极大的提高了算法的时间复杂度。

【发明内容】

[0005]为解决上述技术问题,本发明实施例期望提供一种路由表的维护方法和装置,在适当地提高空间复杂度的前提下,明显降低了时间复杂度,从而能高效地进行路由表的维护。
[0006]本发明的技术方案是这样实现的:
[0007]第一方面,本发明实施例提供了一种路由表的维护方法,所述方法包括:
[0008]根据待更新的IPV6路由条目中的掩码长度查询IPV6路由表中的掩码表,得到所述待更新的IPV6路由条目对应的掩码结构;其中,所述IPV6路由表包括掩码长度与掩码结构对应的二维索引表和路由树,所述路由树为对于非连续掩码分支进行裁剪之后的路由树;
[0009]根据所述待更新的IPV6路由条目及所述待更新的IPV6路由条目对应的掩码结构对所述IPV6路由表结构中的路由树进行搜索,获取所述路由树的回溯起始节点;
[0010]从所述回溯起始节点出发,向所述路由树的顶部回溯,获取所述待更新的IPV6路由条目的更新位置。
[0011]进一步地,所述根据所述待更新的IPV6路由条目及所述待更新的IPV6路由条目对应的掩码结构对所述IPV6路由表结构中的路由树进行搜索,获取所述路由树的回溯起始节点,包括:
[0012]根据所述路由树的各中间节点记录的选向信息与所述待更新的IPV6路由条目进行比较,得到符合路径中的中间节点记录的分叉位置和字节掩码特性的叶子节点,并将该叶子节点作为回溯起始节点。
[0013]进一步地,所述从所述回溯起始节点出发,向所述路由树的顶部回溯,获取所述待更新的IPV6路由条目的更新位置,包括:
[0014]从所述回溯起始节点出发,查询所述待更新的中间节点的上一级中间节点和下一级中间节点,其中,所述待更新的中间节点的键值为所述待更新的IPV6路由条目的掩码长度;
[0015]分别对所述待更新的中间节点的上一级中间节点和下一级中间节点进行检测,确定所述待更新的中间节点在所述路由树的更新位置;
[0016]在所述路由树中更新所述待更新的中间节点和叶子节点,其中,所述待更新的中间节点和叶子节点一起表征了所述待更新的IPV6路由条目的键值属性。
[0017]进一步地,所述方法还包括:从所述待更新的中间节点的叶子节点的兄弟节点对应的普适链结点开始向上回溯所述路由树的中间节点,并根据所述待更新的IPV6路由条目对应的掩码长度与回溯时的路由树的中间节点对应的普适链结点对所述普适链进行更新。
[0018]第二方面,本发明实施例提供了一种路由表的维护装置,所述装置包括:查询单元、搜索单元和回溯单元,其中,
[0019]所述查询单元,用于根据待更新的IPV6路由条目中的掩码长度查询IPV6路由表中的掩码表,得到所述待更新的IPV6路由条目对应的掩码结构;其中,所述IPV6路由表包括掩码长度与掩码结构对应的二维索引表和路由树,所述路由树为对于非连续掩码分支进行裁剪之后的路由树;
[0020]所述搜索单元,用于根据所述查询单元得到的待更新的IPV6路由条目及所述待更新的IPV6路由条目对应的掩码结构对所述IPV6路由表结构中的路由树进行搜索,获取所述路由树的回溯起始节点;
[0021]所述回溯单元,用于从所述搜索单元获取的回溯起始节点出发,向所述路由树的顶部回溯,获取所述待更新的IPV6路由条目的更新位置。
[0022]进一步地,所述搜索单元,用于根据所述路由树的各中间节点记录的选向信息与所述待更新的IPV6路由条目进行比较,得到符合路径中的中间节点记录的分叉位置和字节掩码特性的叶子节点,并将该叶子节点作为回溯起始节点。
[0023]进一步地,所述回溯单元,用于从所述回溯起始节点出发,查询所述待更新的中间节点的上一级中间节点和下一级中间节点,其中,所述待更新的中间节点的键值为所述待更新的IPV6路由条目的掩码长度;
[0024]以及,分别对所述待更新的中间节点的上一级中间节点和下一级中间节点进行检测,确定所述待更新的中间节点在所述路由树的更新位置;
[0025]以及,在所述路由树中更新所述待更新的中间节点的叶子节点,其中,所述待更新的中间节点和叶子节点一起表征了所述待更新的IPV6路由条目的属性。
[0026]进一步地,所述回溯单元,还用于从所述待更新的中间节点的叶子节点的兄弟节点对应的普适链结点开始向上回溯所述路由树的中间节点,并根据所述待更新的IPV6路由条目对应的掩码长度与回溯时的路由树的中间节点对应的普适链结点对所述普适链进行更新。
[0027]本发明实施例提供了一种路由表的维护方法和装置,通过对路由表的组成结构进行更改,从而在适当地提高空间复杂度的前提下,明显降低了时间复杂度,也能高效地进行路由表的维护。
【附图说明】
[0028]图1为现有开源radix算法生成的路由表的组成结构示意图;
[0029]图2为本发明实施例提供的一种路由表的维护方法流程示意图;
[0030]图3为本发明实施例提供的一种IPV6路由表的组成结构示意图;
[0031]图4为本发明实施例提供的一种待更新的IPV6路由条目的结构示意图;
[0032]图5为本发明实施例提供的另一种路由表的维护方法流程示意图;;
[0033]图6为本发明实施例提供的另一种IPV6路由表的组成结构示意图;
[0034]图7为本发明实施例提供的一种路由表的维护装置的结构示意图。
【具体实施方式】
[0035]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0036]本发明实施例的基本思想是:通过将现有支持IPV6路由管理的radix树算法中的掩码树更改为静态数组,并且将radix树中关于非连续掩码的判断和处理分支进行裁剪,从而在适当地提高空间复杂度的前提下,明显降低了时间复杂度,从而能高效地进行路由表的维护。
[0037]参见图2,其示出了本发明实施例提供的一种路由表的维护方法流程,为了便于说明,本发明
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1