CN116319555B - 一种面向虚拟专用网络的路由转发方法 - Google Patents
一种面向虚拟专用网络的路由转发方法 Download PDFInfo
- Publication number
- CN116319555B CN116319555B CN202310574083.4A CN202310574083A CN116319555B CN 116319555 B CN116319555 B CN 116319555B CN 202310574083 A CN202310574083 A CN 202310574083A CN 116319555 B CN116319555 B CN 116319555B
- Authority
- CN
- China
- Prior art keywords
- node
- key
- index data
- private network
- virtual private
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012545 processing Methods 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000000052 comparative effect Effects 0.000 claims description 2
- 238000013507 mapping Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- IHSPMDXQWYKHOA-UHFFFAOYSA-N dodecyl 2-(dimethylamino)acetate Chemical compound CCCCCCCCCCCCOC(=O)CN(C)C IHSPMDXQWYKHOA-UHFFFAOYSA-N 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000004088 simulation 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
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及虚拟路由转发领域。本发明提供一种面向虚拟专用网络的路由转发方法,包括:将路由规则中IP前缀长度不超过S的路由规则进行叶推处理,为IP前缀超过S的路由规则构建分层的字典树Trie;生成初步索引数据,每条初步索引数据的键key由虚拟专用网络标识和IP前缀按规则生成,初步索引数据的值为字典树Trie的根节点指针或者路由下一跳信息;将初步索引数据Data进行哈希处理,得到哈希表;将输入的目的地址按照键key的生成规则和哈希处理的规则生成查询标识;根据查询标识去哈希表查询。在多VPN的路由转发场景下,本发明路由转发效率高,并且显著降低了表项索引所占用的存储空间。
Description
技术领域
本发明涉及虚拟路由转发领域,具体涉及一种面向虚拟专用网络的路由转发方法。
背景技术
随着互联网的发展,用于主干互联的核心路由器的接口速率已经达到了千兆比特每秒级别,这一速率要求核心路由器每秒转发几百万乃至上千万个以上的分组。高性能低空间的路由表项索引技术,是实现高速分组转发的关键技术。
传统的路由表项索引技术需要实现对输入IP地址的最长前缀匹配,而在虚拟路由转发场景下,不仅要考虑最长前缀匹配,还要对给定的虚拟专用网络(VPN)进行完全匹配,从而导致路由表表项规格剧增,对查表性能和内存空间开销带来了更大的挑战。
1.二叉前缀树
用二叉前缀树结构来表示每个路由规则中的IP前缀是一个常用的方法,通过IP前缀中每一位比特的值来决定树的分支,当IP前缀的某位比特为0时向左生成树分支,为1时向右生成树分支。给定表1中的路由匹配规则,所对应的二叉前缀树如图1所示,图1中有5个节点存储了下一跳信息,分别为A,B,C,D,E,每个下一跳信息所在的二叉前缀树分支的路径按二叉前缀树的生成规则可分别表示为1,000,011,0,111。当输入某个IP地址进行路由查找时,会通过构建的二叉前缀树沿着对应的二叉前缀树分支进行检索,直到找到最长匹配的前缀。
表1 IP路由规则表
存在问题:(1)IP前缀匹配过程需要多次的指针追踪,性能较差;(2)每个节点需要2个指针,空间消耗较高。
2.树位图
树位图在二叉前缀树的基础上,将每个节点内索引的步长扩展到k比特,并通过内部位图和外部位图分别实现节点内IP前缀的查找和树的遍历。
如图2所示,每个节点索引3比特,以图2中左侧的方框为例,左侧方框内的子树表示为如右框所示的数位图结构。图2中左侧方框内子树有7个节点,其中存储了下一跳信息A的节点和存储了下一跳信息D的节点按层次遍历的次序分别为第3和第2,可通过右侧方框中的内部位图0110000进行索引,而下一跳信息A和D对应存储在右侧方框中的数组中;左侧方框中该子树下有8个分支,按从左到右的次序,其中第1,第4和第8个分支不为空,因此可通过右侧方框中的外部位图10010001来表示哪些分支不为空。
当查询某个前缀时,首先通过每个树位图节点中的外部位图一直向下遍历直到达到叶子节点,然后在节点内通过内部位图判断是否有匹配的前缀,若存在直接返回,否则向上回溯并检索节点内的内部位图。
存在问题:IP前缀匹配过程中可能会回溯访问过的内部节点,最坏情况下会一直回溯访问到根节点。
3.压缩前缀树(Poptrie)
为了进一步提升路由查找的效率,Poptrie通过将前缀项进行叶推,避免查询过程中的回溯,并且通过子节点位图来区分叶子节点和内部节点;对于叶推过程中产生重复的下一跳信息,Poptrie会通过叶子节点位图进行压缩存储。
如果一个节点N2的父节点是节点N1,则称N2是N1的分支节点;如果N2不是任何节点的父节点,则称N2为叶子节点,所有不是叶子节点的节点均为内部节点。
叶推是指将所有内部节点的下一跳信息推送给其子树上没有下一跳的叶节点,使得只有叶子节点包括下一跳信息。
如图3中左侧所示的二叉前缀树,以每个节点索引2比特为例,将二叉前缀树中存储下一跳信息A和D的节点叶推到图3中左侧的方框中,也即二叉前缀树的第3层;经过叶推后,二叉前缀树中方框内对应的Poptrie节点下一跳信息DDAA存储到图3中间的数组中,对应的子节点位图为1101,表示左侧方框中第1,第2和第4个节点存在分支。进一步地,将图3中间的数组中连续相同的下一跳信息进行压缩,DDAA压缩表示为图3右侧的数组中的DA,并通过叶子节点位图1010进行索引,1010表示第1位出现新的下一跳信息D,第3位出现新的下一跳信息A。
Poptrie进一步将前几层的Poptrie节点直接叶推到直接表所在层,加速路由查找,如图4所示,图4左侧中具有3层Poptrie节点的树结构可通过叶推转换为直接表和1层Poptrie节点的结构。
在进行前缀匹配时,Poptrie先通过直接指向技术直接定位到Poptrie的直接表层,然后从直接表层检索;节点内通过子节点位图判断是否为叶子节点,若是则通过叶子节点位图得到对应的下一跳信息,否则继续向下遍历Poptrie节点。
存在问题:直接表在多VPN场景下会占用大量的额外内存。
4.网络虚拟化
网络虚拟化有助于降低硬件成本,使计算资源的可管理性更简单。虚拟化的主要目标是有效利用网络资源,通过虚拟路由和转发技术,在实际的物理设备上,创建了多个不同的VPN实例,每个VPN拥有各自独立路由转发表项。因此,在多VPN路由的场景下,不仅要考虑最长前缀匹配,还有对给定的VPN进行完全匹配。
现有技术的一个通用方案是对每个VPN构建各自独立的字典树Trie,并且每个VPN内部会通过叶推将字典树Trie的前T层直接存入直接表层来加速路由查找,如图5所示,对于VPN0,VPN1,VPN2,...,VPNn,每个VPN对应一个直接表,并且每个直接表下有多个字典树Trie。但这种方案在多VPN场景下,若T较大,直接表的内存占用过高(例如T=16,VPN=4096时,直接表占用约38.4G),T较小,就发挥不了性能加速的作用。
综上所述,当前路由表项索引技术存在以下问题:(1)空间开销较高,Poptrie使用叶推技术(将索引节点下推到下层节点)加速表项匹配需要约38.4GB的额外空间;(2)转发效率低,树位图不采用叶推技术的设计每秒仅能转发几百万个分组。
发明内容
为解决上述问题,本发明提供一种面向虚拟专用网络的路由转发方法。
所述面向虚拟专用网络的路由转发方法,根据输入的目的地址查找目的地址的路由下一跳信息,所述目的地址包括虚拟专用网络标识和IP地址,所述面向虚拟专用网络的路由转发方法包括以下步骤:
步骤一,将基于虚拟专用网络标识和IP前缀的路由规则中IP前缀长度不超过S的路由规则进行叶推处理,,得到叶推后的路由规则R;
步骤二,基于路由规则R为IP前缀超过S的路由规则构建字典树Trie,字典树Trie中包括多个节点,每个字典树Trie的节点使用n个比特位作索引,每个节点内存储m比特的子节点位图和m比特的叶子节点位图,,子节点位图中每个比特B代表比特B对应的节点在下一层是否存在分支节点,叶子节点位图存储每个叶子节点所代表的目的地址对应路由下一跳信息的索引;
步骤三,生成初步索引数据,每条初步索引数据Data的键key由虚拟专用网络标识和IP前缀按规则生成,判断键key在路由规则R中能否匹配多条路由规则,如能,则初步索引数据Data的值value为描述键key对应的多条路由规则的字典树Trie的根节点指针;如否,则初步索引数据Data的值value为键key对应的目的地址根据路由规则R得到的路由下一跳信息;
步骤四,将初步索引数据Data进行哈希处理,得到哈希表;
步骤五,将输入的目的地址按照键key的生成规则和哈希处理的规则生成查询标识;
步骤六,根据查询标识去哈希表查询,如果查询无结果,则返回路由信息不存在;如果查询结果为路由下一跳信息,则返回查询到的路由下一跳信息;如果查询结果为一个字典树Trie的根节点指针,则在根节点指针对应的字典树Trie进行检索,并返回检索到的路由下一跳信息。
进一步的,步骤三中每条初步索引数据Data的键key由虚拟专用网络标识和IP前缀按规则生成的过程,具体包括:
从初步索引数据Data代表的路由规则中取出虚拟专用网络标识part1和IP前缀;
定义虚拟专用网络标识的固定长度为L1,使用L1位字符表示虚拟专用网络标识part1;
将IP前缀的前S位取出作为part2;
将part1和part2组合生成键key。
进一步的,步骤四具体包括:
预先设定一个素数p,将键key对素数p进行取余运算得到余数remainder,将键key对素数p进行除法运算,得到商quotient;
将键key的商quotient和键key对应的值value组成哈希索引数据;
将具有相同的余数remainder的键key对应的哈希索引数据组成链表,将所述链表的头指针存入到构建出的桶bucket中;
所有的桶bucket以数组形式存储,构建成哈希表。
优选的,所述将具有相同的余数remainder的键key对应的哈希索引数据组成链表的过程,具体包括:
将具有相同的余数remainder的键key对应的哈希索引数据组成链表;
每个链表的节点最多存储k条哈希索引数据;
每个链表的节点Node存储节点Node中的哈希索引数据的数量。
优选的,步骤五具体包括:
将输入的目的地址按照键key的生成规则生成查询中间键;
将查询中间键对素数p进行取余和除法运算,得到查询标识的余数remainder和查询标识的商quotient。
进一步的,步骤六中所述根据查询标识去哈希表查询的过程,具体指使用SIMD计算方法根据查询标识去哈希表查询。
进一步的,通过对哈希表和字典树Trie做并发控制,使对哈希表和字典树Trie的写操作不会阻塞读操作。
优选的,基于读拷贝更新技术对哈希表做并发控制。
优选的,基于比较交换技术对字典树Trie做并发控制。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
在多VPN的路由转发场景下,本发明路由转发效率高,并且显著降低了表项索引所占用的存储空间。
附图说明
图1为本发明背景技术中的二叉前缀树结构图;
图2为本发明背景技术中的树位图节点构造示意图;
图3为本发明背景技术中的Poptrie节点构造示意图;
图4为本发明背景技术中的直接表设计示意图;
图5为本发明背景技术中的多VPN路由转发表项索引设计示意图;
图6为本发明实施例提供的HDT-trie整体架构图;
图7为本发明实施例提供的哈希键组成示意图;
图8为本发明实施例提供的哈希表结构图;
图9为本发明实施例提供的字典树Trie结构示意图;
图10为本发明实施例提供的转发性能对比结果图。
具体实施方式
以下结合附图和具体实施例,对本发明进行详细说明,在详细说明本发明各实施例的技术方案前,对所涉及的名词和术语进行解释说明,在本说明书中,名称相同或标号相同的部件代表相似或相同的结构,且仅限于示意的目的。
本发明提供了一个面向多虚拟专用网络下的高性能低空间的路由转发方法,在进一步缩减路由表项索引空间的基础上,同时保证高查找性能。
本发明需对输入的目的地址进行解析,得到目的地址的虚拟专用网络标识和IP地址。
将基于虚拟专用网络标识和IP前缀的路由规则中IP前缀长度不超过S的路由规则进行叶推,得到叶推后的路由规则R。
本发明提供一种路由表项索引结构HDT-trie来存储叶推后的路由规则R,所述路由表项索引结构HDT-trie如图6所示,HDT-trie分为图6中的模块1和模块2,其中模块1包含一种高性能空间压缩的哈希表,它由数量为素数p的桶bucket组成,每个bucket中包含链式的节点,每个节点内会存储固定大小的虚拟网络标识数组和指针数组,指针数组中的指针为指向下一跳信息或字典树Trie节点的指针;模块2为通过IP后缀构建的多颗字典树Trie。
模块2中每个字典树Trie的结构如图9所示,每棵字典树Trie的节点索引n比特,n≤6,此处以n=6为例,每棵字典树Trie的节点内部由m比特的子节点位图,m比特的叶子节点位图,子节点指针和下一跳指针构成,,图9中m为64。其中子节点指针指向存储多个字典树Trie的节点的数组,下一跳指针指向存储多个下一跳信息的数组。子节点位图中每个比特B代表比特B对应的节点在下一层是否存在分支节点;叶子节点位图存储叶子节点所代表的目的地址对应的路由下一跳信息的索引。
查询下一跳信息的过程即是通过模块1中的哈希表索引叶推后的路由规则的过程。哈希表中索引的每个键key由虚拟专用网络标识和IP前缀组成,定义虚拟专用网络标识的固定长度为L1,使用L1位字符表示虚拟专用网络标识。如图7所示,将虚拟专用网络标识和IP前缀前S位组合生成键key。
判断键key在路由规则R中能否匹配多条路由规则,如能,则键key所对应的值value为描述键key对应的多条路由规则的字典树Trie的根节点指针;如否,则键key所对应的值value为键key对应的目的地址根据路由规则R得到的路由下一跳信息。
为了降低哈希索引的空间,本发明构建的哈希表的索引仅使用键key的一部分而不是完整的键来处理哈希冲突,如图8所示,将输入的键key对素数p进行取余和除法操作,分别得到余数remainder和商quotient。将键key的商quotient和键key对应的值value组成哈希索引数据,根据不同的余数remainder,哈希索引数据会映射到不同的bucket中,将具有相同余数remainder的键key对应的哈希索引数据组成链表结构,将链表结构的头指针存储在同一个bucket中,链表中的每个节点包括4B的count字段,4B的version字段,8B的链表下一节点指针,以及大小固定为k的quotient数组和初步索引数据Data的值value的数组,图8中以k=8为例。所述链表节点内的count字段标识当前节点内存储的哈希索引数据的个数,每个链表节点最多存储k个哈希索引数据,当链表的节点内存储的哈希索引数据的个数超过k时,会生成新的链表的节点。
将输入的目的地址按照键key的生成规则生成查询中间键,将查询中间键对素数p进行取余和除法运算,得到查询标识的余数remainder和查询标识的商quotient,根据查询标识的余数remainder查找bucket;将查询标识的商quotient复制,扩展为数组长度为k的查询标识数组;将查找到的bucket指向的链表的每个节点内的哈希索引数据里的商quotient生成节点标识数组;建立k比特的位图mask;将查询标识数组与节点标识数组通过SIMD比较,将结果记录在位图mask中;通过查看位图mask中是否有比特为1,来检查每个链表的节点内是否有查询标识匹配的哈希索引数据。
如果每个链表的节点内都没有查询标识匹配的哈希索引数据,则返回路由信息不存在;如果匹配到的哈希索引数据包括路由下一跳信息,则返回查询到的路由下一跳信息;如果匹配到的哈希索引数据包括的是某个字典树Trie中的根节点指针,则在根节点指针对应的字典树Trie进行检索,并返回检索到的路由下一跳信息。
本发明中通过读拷贝更新和比较交换分别实现了字典树Trie和哈希表的并发控制机制,使得对字典树Trie和哈希表的写操作不会阻塞对字典树Trie和哈希表的读操作;其中读拷贝更新会对写操作构建一个修改对象的副本并在副本上进行修改,直到原修改对象的所有读操作完成后替换原修改对象。在本发明的设计中,写操作会构建新的字典树Trie子树,待读取完成后进行子树的替换;
对于哈希表结构的并发保护,是通过每个链表的节点中32比特的version字段实现的。其中version字段的最后一位为锁标志位,前31比特为版本号信息,当执行写操作时,写线程会自旋执行比较交换,设置version字段的最后一个比特为0或者1,将version字段的最后1比特由0置为1,并以此阻塞其他写线程。当修改完成后通过原子自增操作将version加1,实现将version的最后一比特置0且递增版本号;读线程在执行查询的开始和结束都会读取版本号,当不一致时重新执行读操作。
本发明中的version与count,均表示链表的节点的一个字段名,本领域技术人员均知晓其含义。
本发明基于本地的虚拟转发系统进行了模拟测试。本地测试是基于C语言实现的。
本地机器的配置如表2所示:
表2 机器配置表
本地测试的主要性能指标为吞吐量和空间。
吞吐量:描述转发性能,表明每秒转发的分组的数量;
空间:描述路由表项索引的空间性能,表明索引占用的空间。
本地测试所使用的主要数据集包括真实数据集和模拟数据集,测试包含的VPN的数量为4096个,如表3所示。本地测试所对比的对象包括树位图和Poptrie。
表3 数据集描述表
转发性能的测试结果如图10所示。
各路由表项索引的空间性能如表4所示。
表4 空间性能对比结果表
由实验结果可知,HDT-trie具有最优的转发效率,在真实数据集上每秒能够转发上千万个分组。相比现有最优技术,转发效率提升了约1.52~3.10倍。与此同时,空间效率也与现有最优技术相当。
以上所述实施方式仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。
Claims (7)
1.一种面向虚拟专用网络的路由转发方法,根据输入的目的地址查找目的地址的路由下一跳信息,所述目的地址包括虚拟专用网络标识和IP地址,其特征在于,路由转发方法包括以下步骤:
步骤一,将基于虚拟专用网络标识和IP前缀的路由规则中IP前缀长度不超过S的路由规则进行叶推处理,,得到叶推后的路由规则R;
步骤二,基于路由规则R为IP前缀超过S的路由规则构建字典树Trie,字典树Trie中包括多个节点,每个字典树Trie的节点使用n个比特位作索引,每个节点内存储m比特的子节点位图和m比特的叶子节点位图,,子节点位图中每个比特B代表比特B对应的节点在下一层是否存在分支节点,叶子节点位图存储每个叶子节点所代表的目的地址对应路由下一跳信息的索引;
步骤三,生成初步索引数据,每条初步索引数据Data的键key由虚拟专用网络标识和IP前缀按规则生成,判断键key在路由规则R中能否匹配多条路由规则,如能,则初步索引数据Data的值value为描述键key对应的多条路由规则的字典树Trie的根节点指针;如否,则初步索引数据Data的值value为键key对应的目的地址根据路由规则R得到的路由下一跳信息;
步骤四,将初步索引数据Data进行哈希处理,得到哈希表;
步骤五,将输入的目的地址按照键key的生成规则和哈希处理的规则生成查询标识;
步骤六,根据查询标识去哈希表查询,如果查询无结果,则返回路由信息不存在;如果查询结果为路由下一跳信息,则返回查询到的路由下一跳信息;如果查询结果为一个字典树Trie的根节点指针,则在根节点指针对应的字典树Trie进行检索,并返回检索到的路由下一跳信息;
步骤四具体包括:
预先设定一个素数p,将键key对素数p进行取余运算得到余数remainder,将键key对素数p进行除法运算,得到商quotient;
将键key的商quotient和键key对应的值value组成哈希索引数据;
根据不同的余数remainder,将哈希索引数据映射到不同的桶bucket中,将具有相同的余数remainder的键key对应的哈希索引数据组成链表,将所述链表的头指针存入到构建出的桶bucket中;
所有的桶bucket以数组形式存储,构建成哈希表;
所述将具有相同的余数remainder的键key对应的哈希索引数据组成链表的过程,具体包括:
将具有相同的余数remainder的键key对应的哈希索引数据组成链表;
每个链表的节点最多存储k条哈希索引数据,当链表的节点内存储的哈希索引数据的个数超过k时,生成新的链表的节点;
每个链表的节点Node存储节点Node中的哈希索引数据的数量。
2.根据权利要求1所述一种面向虚拟专用网络的路由转发方法,其特征在于,步骤三中每条初步索引数据Data的键key由虚拟专用网络标识和IP前缀按规则生成的过程,具体包括:
从初步索引数据Data代表的路由规则中取出虚拟专用网络标识part1和IP前缀;
定义虚拟专用网络标识的固定长度为L1,使用L1位字符表示虚拟专用网络标识part1;
将IP前缀的前S位取出作为part2;
将part1和part2组合生成键key。
3.根据权利要求1所述一种面向虚拟专用网络的路由转发方法,其特征在于,步骤五具体包括:
将输入的目的地址按照键key的生成规则生成查询中间键;
将查询中间键对素数p进行取余和除法运算,得到查询标识的余数remainder和查询标识的商quotient。
4.根据权利要求1所述一种面向虚拟专用网络的路由转发方法,其特征在于,步骤六中所述根据查询标识去哈希表查询的过程,具体指使用SIMD计算方法根据查询标识去哈希表查询。
5.根据权利要求1所述一种面向虚拟专用网络的路由转发方法,其特征在于,通过对哈希表和字典树Trie做并发控制,使对哈希表和字典树Trie的写操作不会阻塞读操作。
6.根据权利要求5所述一种面向虚拟专用网络的路由转发方法,其特征在于,基于读拷贝更新技术对哈希表做并发控制。
7.根据权利要求5所述一种面向虚拟专用网络的路由转发方法,其特征在于,基于比较交换技术对字典树Trie做并发控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310574083.4A CN116319555B (zh) | 2023-05-22 | 2023-05-22 | 一种面向虚拟专用网络的路由转发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310574083.4A CN116319555B (zh) | 2023-05-22 | 2023-05-22 | 一种面向虚拟专用网络的路由转发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116319555A CN116319555A (zh) | 2023-06-23 |
CN116319555B true CN116319555B (zh) | 2024-01-09 |
Family
ID=86801782
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310574083.4A Active CN116319555B (zh) | 2023-05-22 | 2023-05-22 | 一种面向虚拟专用网络的路由转发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116319555B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013040730A1 (zh) * | 2011-09-23 | 2013-03-28 | 中国科学院计算技术研究所 | Ip查找方法和装置以及路由更新方法和装置 |
CN104052669A (zh) * | 2013-03-12 | 2014-09-17 | 西普联特公司 | 用于处理交替配置的最长前缀匹配表的装置和方法 |
CN114884877A (zh) * | 2022-06-14 | 2022-08-09 | 电子科技大学 | 一种哈希表和HOT相结合的IPv6路由查找方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9680747B2 (en) * | 2012-06-27 | 2017-06-13 | Futurewei Technologies, Inc. | Internet protocol and Ethernet lookup via a unified hashed trie |
-
2023
- 2023-05-22 CN CN202310574083.4A patent/CN116319555B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013040730A1 (zh) * | 2011-09-23 | 2013-03-28 | 中国科学院计算技术研究所 | Ip查找方法和装置以及路由更新方法和装置 |
CN104052669A (zh) * | 2013-03-12 | 2014-09-17 | 西普联特公司 | 用于处理交替配置的最长前缀匹配表的装置和方法 |
CN114884877A (zh) * | 2022-06-14 | 2022-08-09 | 电子科技大学 | 一种哈希表和HOT相结合的IPv6路由查找方法 |
Non-Patent Citations (4)
Title |
---|
Kun Huang et al ; .Memory-efficient IP lookup using trie merging for scalable virtual routers.Journal of Network and Computer Applications.2015,第47-58页. * |
一种非随机生成聚合组播路由转发表的算法;刘晓峰;华蓓;方琳瑜;完振升;;计算机仿真(05);第109-112、194页 * |
使用Hash表和树位图的两级IPv6地址查找算法;王亚刚;杜慧敏;杨康平;;计算机科学(09);第36-39、80页 * |
可编程虚拟化路由器的转发表查找技术综述;黄昆;罗腊咏;葛敬国;谢高岗;;重庆邮电大学学报(自然科学版)(01);第11-19页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116319555A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107967219B (zh) | 一种基于tcam的大规模字符串高速查找方法 | |
EP1623347B1 (en) | Comparison tree data structures and lookup operations | |
US8856203B1 (en) | System and method for algorithmic TCAM packet classification | |
JP5529976B2 (ja) | 高速ipルックアップのためのシストリック・アレイ・アーキテクチャ | |
US20150127900A1 (en) | Ternary content addressable memory utilizing common masks and hash lookups | |
US20040230583A1 (en) | Comparison tree data structures of particular use in performing lookup operations | |
US20030091043A1 (en) | Methods and systems for fast packet forwarding | |
CN105141525B (zh) | IPv6路由查找方法及装置 | |
KR100586461B1 (ko) | 파이프라인 이진 트리를 이용한 ip 어드레스 검색 방법,하드웨어 구조 및 기록매체 | |
CN111937360B (zh) | 最长前缀匹配 | |
EP3270551B1 (en) | Retrieval device, retrieval method, program, and recording medium | |
AU2003214223A1 (en) | Longest prefix matching using tree bitmap data structures | |
JP4995125B2 (ja) | 固定長データの検索方法 | |
CN112131356B (zh) | 一种基于tcam的报文关键字匹配方法和装置 | |
CN108134739A (zh) | 一种基于索引特里树的路由查找方法及装置 | |
US20040044868A1 (en) | Method and apparatus for high-speed longest prefix match of keys in a memory | |
US20200226099A1 (en) | Method and apparatus for improving hash searching throughput in the event of hash collisions | |
CN116319555B (zh) | 一种面向虚拟专用网络的路由转发方法 | |
CN115086221B (zh) | 一种报文处理方法、装置、转发设备和存储介质 | |
Lin et al. | A multi-index hybrid trie for lookup and updates | |
Li et al. | Deterministic and efficient hash table lookup using discriminated vectors | |
CN107204926B (zh) | 预处理cache的路由快速查找方法 | |
JP2013037750A (ja) | 内容参照メモリ | |
Lin et al. | TCAM-Based Packet Classification Using Multi-stage Scheme | |
JP6205463B2 (ja) | 検索装置、検索方法、プログラム、及び記録媒体 |
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 |