到达我们 + 44 7456 035580
所有提交的电磁系统将被重定向到在线手稿提交系统。作者请直接提交文章在线手稿提交系统各自的杂志。

可伸缩的和高效的基于树的内存映射在虚拟路由器

迪V1*,Geetha SK1和Varunkumarr简历2

1助理教授,CSE、旅游房车工程与技术学院,安娜大学,哥印拜陀、印度

2系统工程师,印孚瑟斯有限,钦奈,印度

*通讯作者:
迪V
助理教授
部门。CSE的
旅游房车工程与技术学院
安娜大学,哥印拜陀、印度
电子邮件: (电子邮件保护)

收到:2015年7月17日接受:24 Sepetember 2015发表:30 Sepetember 2015

访问更多的相关文章研究和评论:工程和技术雷竞技苹果下载杂志》上

文摘

许多喜欢算法快速数据包转发和过滤依赖树的事实和数据结构。的例子是triebased IP查找和包分类算法。网的最新兴趣虚拟化,可以运行多个虚拟路由器在一个常见的例子个人路由器阶段至关重要。显著攀升问题是虚拟路由器的数量的例子,可以在平台上运行。一个限制因素是高速记忆的津贴和缓存存储数据包转发和过滤数据组织。一个完美的目标是完成好爬在维持总隔离在虚拟路由器。尽管总隔离需要保持不同的事实和数据结构高速内存为每个虚拟路由器。在本文中,我们研究的一些分享转发和过滤的事实和数据组织是允许的,混合进化算法用于IP查找和报文分类明确,我们称作trie编织的进化的一种手段,让我们尝试混合不同的虚拟路由器的事实和数据组织成一个紧凑的单词查找树。两个最佳编织算法和启发式算法提供更快,有效性是演示了利用真实的事实和数据集。

关键字

动态规划、Trie编织、虚拟路由器。

介绍

简单网日益增长的需求定制和发现导致扩大兴趣构建虚拟系统(1- - - - - -4]。建立这些虚拟网络虚拟路由器的使用需要进行单独的共享广泛的物理资源。需要不同的路由目的的一个例子在同一阶段,类似于虚拟化、ipv4-toipv6迁移的情况下(5,6]。因为迁移只能逐步发生,所谓的dualstack路由器需要同时支持ipv4和ipv6路由。在每一个这样的路由器,基于IP数据包分类类型,然后转发利用相应的转发长椅(7]。这是都有两个虚拟路由器在同一舞台上。

虚拟网络的需要增加,个人路由器预计将支持几十甚至上百个虚拟路由器,各有其自己的表和路由转发协议的例子(例如,瞻博网络路由器目前据报道能够携带16虚拟路由器(8])。扩展到这些数字对路由器构成严重的试验怀孕,尤其是复杂的包分类和深度包检测需要实现。

关键资源,限制了可伸缩性是高速记忆的数量(例如,sram和tcam)用于缓存数据包转发和过滤数据结构,占很大一部分系统的成本和功耗。即使是简单的分区的内存和单独分配给每个虚拟路由器,这不是有效的,有两个原因:1)很难确定合适的分数分配给每个虚拟路由器当每个虚拟路由器转发表大小不同,可以动态地改变;2)总体内存消耗是线性的虚拟路由器的数量以及所需的内存大小的每个虚拟路由器。例如,最新的边界网关协议表已经包含大约350 k前缀(9]。与此同时,技术发展水平18 mb tcam只能存储500 k ipv4(或250 k ipv6)前缀,这对两个独特的东方表并不足够。

如果隔离义务是冷静,回忆的使用可以大大减少通过合并一个接一个的包转发和过滤到合并一个事实和数据结构。我们显示的优势发展有效的算法混合树数据组织需要完成两个

核心路由器功能:最长前缀匹配(Ipm)和报文分类。

计划减少回忆的津贴用于行分钟在虚拟路由器提供(9]。在工作中,每个虚拟路由器尝试持续的最长前缀匹配混合成一个单词查找树利用前缀共性和虚拟路由器之间的重叠。回忆中通过减少重叠主要是由于尝试之间的相似性。然而,当尝试在功能上是截然不同的,利用这个设计正在缩小。

我们插入一个新的称作trie编织的方法,可以利用构建一个分布式事实和数据结构紧凑。单词查找树编织使每个单词查找树节点交换其左子节点和右后代节点没有强迫。更改的形式是由一个孤独的记忆每个单词查找树节点。这些额外的自由度将我们有机会实现最优分配演示当混合努力回忆。我们开发两个最优动态编程算法混合多个树成一个孤独的紧凑的树,以及更快的启发式算法。单词查找树编织指导重要的储蓄高速回忆所需分类和longest-prefix匹配,因此进步可伸缩性。

背景

Trie-Based行分钟在虚拟路由器

的trie-based行分钟算法从一个简单的二进制单词查找树形成的IP前缀。每个二进制单词查找树节点有两个指针指向它的两个后代节点,左边的“0”和“1”在右边。注入一个前缀单词查找树时,我们分析了前缀精华在校准和使用一些值得走二进制单词查找树。我们追求左边指针如果比特值“0”和其他正确的指针。动态地创建新的节点。该方法之前,直到所有前缀部分。最后一个单词查找树节点然后贴上一个合法的前缀这些助手跳。作为一个例子,两个转发长凳上所示表1,相应的二进制所示图1

engineering-technology-Sample-prefix-tables

表1:示例表前缀。

engineering-technology-Binary-tries-sample-prefix

图1:二进制示例表前缀。(一)表a (b)表b .黑暗的节点是有效的前缀节点。

查找方法利用数据包的地方访问IP地址来遍历单词查找树。当前地址位的价值决定了哪些单词查找树机构。在遍历,最后匹配的前缀节点沿途记录为当前最好的同意。路线完成时,查找过程返回指出前缀的最佳匹配的前缀。然后利用相关的跳来包。

问题陈述

当多个虚拟路由器驻留在相同的物理路由器,每个虚拟路由器需要自己的信息包过滤和转发表查找功能,物理路由器的回忆欲望之间的分配或分配虚拟路由器。trie-based算法,单词查找树节点的数量可以作为评估所需的内存,给定一个修复通常使用一个或多个节点维度回忆短语。如果包转发事实和数据组织分别留存,记忆维度可以成为禁止停止虚拟路由器功能的重要尺度。玩物示范,如果我们有两个虚拟路由器与上述前缀长椅,我们需要熟练记忆保持12因为每个单词查找树有6节点单词查找树节点。

这个设计显然不能很好地扩展。找到一个更加可伸缩的答案,我们解决以下困难:如何商店多个二进制努力在一个紧凑的事实和数字混合结构。

Triebrading

我们进化单词查找树编织来完成一个更紧凑的混合一个接一个的努力,即使在一个一个尝试并不主要是类似的。通过使用一个编织在一个单词查找树节点,我们可以扭转其子指针的意义:当设置,左边指针代表“1”机构和正确的指针由“0”机构。我们称之为机制编织因为没有强迫我们可以交换任何单词查找树的左和右subtries节点。

单词查找树编织允许我们调整的形式不同的努力,让他们一样都可能因此分布式节点的数量最大化(从而减少内存的欲望)合并。显示在图1 b,如果我们交换节点的子节点和节点c的后代节点,生成的单词查找树会变得相似单词查找树如图1所示。现在我们可以合并这两个努力到一个,得到一个新的单词查找树如图所示图2。这个单词查找树只有7个节点。在补充,对于这种情况,叶推动不会增加节点的总数。

engineering-technology-Node-sharing-trie-braiding

图2:节点共享使用单词查找树编织。编织比特值的数字是最初的尝试。

一次编织位的值非常坚决,插入一个前缀的单词查找树(或查找给定IP地址),我们做以下。从原点开始节点,我们分析每个前缀顺序。我们对比这一点一点的编织在当前单词查找树节点。如果他们相等,我们追求左指针;别的,我们追求正确的指针。

虚拟路由器,编织的食物是独家的。当我们合并尝试从多个虚拟路由器、编织方法捐赠我们最大化最小化回忆一个有用的装置使用的节点分布(表2)。

engineering-technology-Notations

表2:符号。

算法最优单词查找树品牌

编织:动态规划算法

我们现在给一个动态programming-based映射算法(编织),确定最优编织模式来减少津贴的内存来存储两棵树。最优编织算法的输入是两个二叉树,并输出的算法如下

i M fromT2映射到T1最少费用;

二世。编织一些B (v2)为每个nonleaf节点v2€T2表明直接映射(B (v2) = 0)或扭曲的映射(B (v2) = 1)应用到节点v2的两个子节点。

计算映射的指控

鉴于树Ti扎根在国际扶轮,我们的目标是找出Δ(r1, r2)。这可以从基本完成。自树中的任何节点最多两个孩子,我们可以计算的价值Δ(v1、v2)通过考虑以下两个映射的可能性:

•直接映射:Δ(v2, v1)的左(右)后代v2映射到左(右)的孩子v1

•一个扭曲的映射:Δ(v2, v1)的左(右)后代v2is映射到右(左)的孩子v1。

首先,我们使用一个单独对每棵树深度优先搜索和计算所有节点在两个树的深度。让嗯=分钟{h1, h2},与深度大于hm的节点将被映射到我们不存在节点,n (v) = 0。我们现在可以定义两个节点之间的广阔v1 v2€€T1和T2,Δ(v1、v2) = | n (v2) - n (v1) |

确定最小费用的映射

现在的算法开始确定T2的最小费用为每个节点映射。它从r2和开始使用S(,)的最优映射。在补充,算法输出编织一些B (v2)为每个节点。如果B (v2) = 0,然后直接映射是最优的节点。如果B (v1) = 0,那么扭曲的地图是最优的节点。

快速编织:编织与同构检测

我们大幅推进的编织在一段运行时间以及内存利用率通过确定同构子树过程中运行算法。这个修改的性能改善是由以下几点:

•时间确定同构;

•同构子树的数量在每个深度。

生成标签

两个节点将得到同样的马克当且仅当这两个节点同构子树固定。

确定距离

编织的算法,我们计算Δ(v2, v1)。在FAST-BRAID算法中,我们需要计算的价值Δ两个标签,分别来自不同的树。

K -编织:一步Lookaheadheurestic编织

在工作的情况下最优编织的回答是耗时的,我们可以使用一个一步一步超前启发式计算映射。与最优编织算法计算映射利用一个自底向上的方法,这种启发式算法映射从起源到树叶。启发式是建立在一个非常简单的想法:如果我们没有信息的子树的形式,最好的方案就是表子树,重轻子树和轻子树的子树。我们使用的参数是超前的步骤来改善我们的估计的准确性。

一步,超前的设计想象截断树的深度从当前的起源,然后运行编织在这些“截断”树,起源(即最优策略。,如果两个子树的一个起源应该编织)。通过这样做,整个树结构下深度抽象是一个孤独的重量值。每一步后,子代节点的映射的起源是修理。然后,在每个子节点,我们复制方法,直到所有树节点映射。

在通用的步骤而考虑节点v1 v2€€T1和T2:

截断树木T1和T2在深度d (v2) + k;确定叶子节点权重n (vi);

运行编织截树;

写编织一些B (v2) v2和修复M (CL (v2))和M (CR (v2))。

这个过程重复所有nonleaf节点v2€T2。

结合多种树

到目前为止,我们已经与管理相结合的困难两棵树。如果我们想要融合两个多树,然后最优算法的运行时间与树的数量成倍增加。演示中,如果有三个树T1、T2、T3,我们渴望图表T2andT3 T1上。在深度h,我们必须解决的成本每一对节点映射(v2, v3), v2是树的深度T2和v3是树的深度T3,与每个节点v1树T1的深度。这使得最优算法非常昂贵的运行。因此,我们使用一个增量方法合并T1和T2和T3合并在这个混合树。虽然它不是最优,运行时间只在树的数量直线上升。的替代对齐的树是合并可以区别答案,但是从我们的检查,我们发现合并订单的区别可以忽略对我们所有的测试。

结论

有效的资产分配,同时保持逻辑隔离虚拟路由器是一个重要的设计主题。在本文中,我们提出了单词查找树编织设计和最优编织算法最大化的内存分配triebased包转发和过滤数据组织。实验一组真实的事实和数字显示,我们的算法是很有效的前提下在减少回忆表示。单词查找树编织时适用的数据结构涉及多个树,无论对一个路由器或多个虚拟路由器。

引用

全球技术峰会