CN105119834B - 一种基于复合trie树结构的源地址目的地址联合查找方法 - Google Patents
一种基于复合trie树结构的源地址目的地址联合查找方法 Download PDFInfo
- Publication number
- CN105119834B CN105119834B CN201510422535.2A CN201510422535A CN105119834B CN 105119834 B CN105119834 B CN 105119834B CN 201510422535 A CN201510422535 A CN 201510422535A CN 105119834 B CN105119834 B CN 105119834B
- Authority
- CN
- China
- Prior art keywords
- node
- trie
- source address
- bit
- address
- 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
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种基于复合trie树结构的源地址目的地址联合查找方法,可支持对源地址、目的地址的精确查找,实现组播报文的正确查找转发。本查找结构的创建步骤为:(1)对组播路由表项进行预处理;(2)使用组播源地址集合建立单棵trie树;(3)使用组播目的地址集合建立多棵trie树;(4)构建满足源地址目的地址联合查找的复合trie树结构。基于该结构的查找步骤为:(1)确定起始树节点;(2)使用源地址进行查找;(3)使用目的地址进行查找。本发明具有查找步骤简单,易于实现,有效地降低查找结构深度和存储空间消耗的优点。
Description
技术领域
本发明涉及一种基于复合trie树结构的源地址目的地址联合查找方法,属于网络交换技术领域。
背景技术
IP路由器支持单播、组播业务,当接收到单播报文时,根据目的地址进行最长前缀匹配查找,实现单播报文的查找转发。IP路由器运行PIM组播协议,支持三种工作模式:稀疏模式组播、密集模式组播和特定源组播。当IP路由器工作于特定源组播模式时,使用源地址S和目的地址(即组地址)G(S,G)共同标识一个会话,只针对目的地址进行最长前缀匹配的查找结构已不能满足此需求,因此需要对源地址、目的地址进行联合查找,完成(源地址,目的地址)精确匹配,保障组播报文查找转发的正确性。
“实现组播路由快速查找的一种方法”,使用所有组播路由记录(组播组,组播源)建立网格,路由器通过源地址和组地址在网格确定一个唯一的交叉处,使用两个内容寻址器进行源地址和组地址的精确匹配查找,若对组地址进行精确匹配查找返回的结果为x,对源地址进行精确匹配查找返回的结果为y,则(x,y)表示网格中某个交叉处,若该值为‘0’则说明这一(组播组,组播源)对应的转发信息不存在,触发网络处理器来计算相应的转发信息,若该值为‘1’则计算下一跳位图流数组的索引值,在下一跳位图流数组中读出相应位置的下一跳位图流即转发的输出端口,完成组播地址的查询过程。该方法查询过程很简单,查找表规模较大,占用存储空间严重,与本专利使用的复合trie树结构完全不同,且不适合使用在资源严重受限的星载IP路由设备中。
“一种基于分段式存储的组播路由查找方案”,提出一种基于TCAM的分段式存储查找方法,TCAM表项存储查找关键字,SRAM存储查找结果,一级关键字是组播路由查找关键字,查找关键字按照先组播源地址后组播组地址串行输入。一级关键字的查找以TCAM实现,二级关键字是TCAM匹配地址到SRAM的映射地址,二级关键字的索引利用SRAM实现,SRAM返回的结果为最终结果,配合流水线设计,可实现高速查找。该方法与本专利使用的复合trie树查找结构完全不同,且资源消耗严重不适用于星载IP路由设备。
“一种精确转发IP特定源组播数据的实现方法”,专利号20140399650.8,专利提出提供一种精确转发IP特定源组播数据的实现方法,可以分别根据组播转发表项或PON接口转发表项来对硬件IP组播转发表进行维护,实现对特定源的组播流进行精确控制。该方法侧重研究组播源地址的变化(分为允许转发的源地址、禁止转发的源地址)和组播组过滤模式的变化(分为INCLUDE模式和EXCLUDE模式)引起对硬件转发表的添加和删除操作,并未针对特定源组播建立转发表及查找转发的问题给出具体方法。
“增强多位trie树查找方法和装置”,专利号200710123674.0,专利使用多位trie树的查找方法,对扩展位图及上下级树节点之间的关系提出优化改造。算法对单棵trie树结构进行压缩,且主要针对trie树的最长匹配查找,未涉及源地址目的地址联合查找。
发明内容
本发明的技术解决问题是:克服现有技术不足,提出一种基于复合trie树结构的源地址目的地址联合查找方法,实现组播报文源地址、目的地址的精确匹配查找。
本发明所采用的技术解决方案:
一种基于复合trie树结构的源地址目的地址联合查找方法,步骤如下:
(1)建立复合trie树结构,具体为:
(1.1)对组播路由表项进行预处理:聚合所有组播路由表项,将同一源地址的多个组播路由表项进行合并,即将a个源地址为S、目的地址为Gb的组播路由表项(S,G1),(S,G2),…,(S,Ga)合并为(S,G1,…,Ga);将c个合并后的组播路由表项(S1,G11,G12,…,G1a),(S2,G21,G22,…,G2a),…,(Sc,Gc1,Gc2,…,Gca)整理为1个组播源地址集合SS:(S1,S2,…,Sc)和c个组播目的地址集合GSd:(G11,G12,…,G1a),(G21,G22,…,G2a),…,(Gc1,Gc2,…,Gca),分别将集合SS,GS1,GS2,…,GSc中的元素按从小到大的顺序进行排序;其中,a、b、c、d为正整数,1≤b≤a,1≤d≤c;
(1.2)使用组播源地址集合建立单棵trie树,trie树节点的结构均为:左儿子m_lson、右儿子m_rson、扩展标识SF以及路由索引index,设置trie树可变步长为4;左儿子m_lson和右儿子m_rson的长度均为16bit,扩展标识SF长度为1bit,路由索引index长度为15bit;
步骤1:若集合SS不为空,使用组播源地址集合SS:(S1,S2,…,Sc)建立trie树,之后进入步骤2;若集合SS为空,跳出建树;
步骤2:令bit为地址当前比特位,初值设为0x8000,表示最高位;令root1为当前计算的trie树节点,节点号为1,表示树的根节点;计算集合SS中c个元素从bit位开始,相同比特的个数e,令e≤4个,之后进入步骤3;
步骤3:当e大于1时,进行变步长压缩建树:
1)令root1的扩展标识SF为1;
2)令root1的左儿子的高4比特位bit15…bit12为e,root1的左儿子的中间8比特位bit11…bit4为0,root1的左儿子的低4比特位bit3…bit0为集合SS中首个元素中从bit位开始的e个比特;
3)生成新的trie树节点f,节点号加1;
4)令root1的右儿子为f;
5)对集合SS进行递归建树,令当前计算的trie树节点root1为f,当前比特位bit为原值向右移动e位;
步骤4:当e等于1时,建立左右儿子节点:
1)令集合Q为空,将SS中的所有以0比特开始的元素从SS中删除,放入集合Q中;
2)若Q不为空,生成新节点g,节点号加1,令root1的右儿子为g;对集合Q进行递归建树,令当前计算的trie树节点root1为g,当前比特位bit为原值向右移动1位;
3)若SS不为空,生成新节点h,节点号加1,令root1的右儿子为h;对集合SS进行递归建树,令当前计算的trie树节点root1为h,当前比特位bit为原值;
(1.3)使用组播目的地址集合建立多棵trie树,组成组播地址集合的复合trie树:
步骤1:将c个组播目的地址集合GS1,GS2,…,GSc依次使用步骤(1.2)的方法分别建立c棵trie树;
步骤2:将源地址建立的单棵trie树和目的地址建立的c棵trie树,根据生成的trie树节点号递增顺序依次排列,组成组播地址集合的复合trie树;
(1.4)构建满足源地址目的地址联合查找的复合trie树结构:
生成trie树根节点,节点号为0,0号节点的右儿子为组播地址集合建立的复合trie树根节点号;
(2)基于复合trie树结构进行源地址目的地址查找,具体为:
(2.1)确定起始树节点:
对源地址、目的地址进行联合查找,取所述复合trie树结构根节点的右儿子作为查找起始树节点,记为root2;
(2.2)使用源地址进行trie树查找:
步骤1:查找的trie树节点为i,初始值设置为root2;源地址待处理的比特位为w,初始值设置为0,表示源地址的最高位;
步骤2:从左到右依次处理源地址的比特位,若节点i的扩展标识SF为1,进入步骤3;若节点i的扩展标识SF为0,进入步骤4;
步骤3:取节点i的左儿子的高4位为步进值step,若源地址从w比特开始向右的step个比特与节点i的左儿子的低4位相同,将节点i的右儿子的值赋值给节点i,否则令i为0;令w=w+step,若w<32,则返回步骤2;否则,进入步骤5;
步骤4:取源地址从左到右第w个比特位,若该比特位为0,将节点i的左儿子的值赋值给节点i;若该比特位为1,将节点i的右儿子的值赋值给节点i;令步进值step为1;令w=w+step,若w<32,则返回步骤2;否则,进入步骤5;
步骤5:得到节点i的路由索引index的值,作为目的地址查找的根节点号;
(2.3)使用目的地址进行trie树查找:
使用步骤(2.2)的方法进行目的地址查找,得到节点q的路由索引index值,即为进行源地址目的地址联合查找命中的路由表项下标,可得到下一跳地址和输出端口号。
本发明与现有技术相比的有益效果在于
1.本发明针对现有技术多侧重解决目的地址最长匹配查找未针对源地址目的地址进行联合查找的问题,构建复合trie树的查找结构,实现源地址、目的地址的精确查找,支持组播协议的多种工作模式,同时也支持按目的地址的最长前缀匹配查找。
2.本发明建立由多棵变步长压缩trie树构建的复合trie树作为查找结构,与传统单棵tire树查找结构相比,有效地减少了查找表项的深度,降低了存储资源的消耗,适用于资源受限的***。
附图说明
图1本发明复合trie树结构示意图;
图2本发明创建树结构步骤流程图;
图3本发明查找树结构步骤流程图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步介绍。
IP路由器接收到组播报文时,根据运行组播协议的工作模式,结合组播报文的地址进行查找转发处理。当IP路由器工作于特定源组播模式时,由组播报文的源地址、目的地址(S,G)共同标识一个连接,IP路由器需要根据报文的源地址、目的地址进行精确匹配查找,确定报文转发的下一跳地址和输出端口号。因此,查找方法的优略对IP路由器的功能和性能指标具有至关重要的作用。
如图1、图2、图3所示,本发明提供了一种基于复合trie树结构的源地址目的地址联合查找方法,步骤如下:
(1)建立复合trie树结构,具体为:
(1.1)对组播路由表项进行预处理:聚合所有组播路由表项,将同一源地址的多个组播路由表项进行合并,即将a个源地址为S、目的地址为Gb的组播路由表项(S,G1),(S,G2),…,(S,Ga)合并为(S,G1,…,Ga);将c个合并后的组播路由表项(S1,G11,G12,…,G1a),(S2,G21,G22,…,G2a),…,(Sc,Gc1,Gc2,…,Gca)整理为1个组播源地址集合SS:(S1,S2,…,Sc)和c个组播目的地址集合GSd:(G11,G12,…,G1a),(G21,G22,…,G2a),…,(Gc1,Gc2,…,Gca),分别将集合SS,GS1,GS2,…,GSc中的元素按从小到大的顺序进行排序;其中,a、b、c、d为正整数,1≤b≤a,1≤d≤c;
(1.2)使用组播源地址集合建立单棵trie树,trie树节点的结构均为:左儿子m_lson、右儿子m_rson、扩展标识SF以及路由索引index,设置trie树可变步长为4;左儿子m_lson和右儿子m_rson的长度均为16bit,扩展标识SF长度为1bit,路由索引index长度为15bit;
左儿子m_lson:当SF为0时,左儿子对应当前输入比特0的节点序号;当SF为1时,左儿子为步长(高4bit)及模板内容(低4bit);
右儿子m_rson:当SF为0时,右儿子对应当前输入比特1的节点序号;当SF为1时,右儿子是唯一后继节点的序号;
扩展标识SF:trie树变步长标识;若为0,表示该节点有左右两个后继节点,若当前输入为比特0,指向左子树,若当前输入为比特1,指向右子树;若为1,表示该节点只有一个后继节点,由右子树指出;左子树的高4位为步长(即需要比较的比特数),低4位为模板内容;
路由索引index:为该条路由表项在路由表中的下标;
步骤1:若集合SS不为空,使用组播源地址集合SS:(S1,S2,…,Sc)建立trie树,之后进入步骤2;若集合SS为空,跳出建树;
步骤2:令bit为地址当前比特位,初值设为0x8000,表示最高位;令root1为当前计算的trie树节点,节点号为1,表示树的根节点;计算集合SS中c个元素从bit位开始,相同比特的个数e,令e≤4个,之后进入步骤3;
步骤3:当e大于1时,进行变步长压缩建树:
1)令root1的扩展标识SF为1;
2)令root1的左儿子的高4比特位bit15…bit12为e,root1的左儿子的中间8比特位bit11…bit4为0,root1的左儿子的低4比特位bit3…bit0为集合SS中首个元素中从bit位开始的e个比特;
3)生成新的trie树节点f,节点号加1;
4)令root1的右儿子为f;
5)对集合SS进行递归建树,令当前计算的trie树节点root1为f,当前比特位bit为原值向右移动e位;
步骤4:当e等于1时,建立左右儿子节点:
1)令集合Q为空,将SS中的所有以0比特开始的元素从SS中删除,放入集合Q中;
2)若Q不为空,生成新节点g,节点号加1,令root1的右儿子为g;对集合Q进行递归建树,令当前计算的trie树节点root1为g,当前比特位bit为原值向右移动1位;
3)若SS不为空,生成新节点h,节点号加1,令root1的右儿子为h;对集合SS进行递归建树,令当前计算的trie树节点root1为h,当前比特位bit为原值;
(1.3)使用组播目的地址集合建立多棵trie树,组成组播地址集合的复合trie树:
步骤1:将c个组播目的地址集合GS1,GS2,…,GSc依次使用步骤(1.2)的方法分别建立c棵trie树;
步骤2:将源地址建立的单棵trie树和目的地址建立的c棵trie树,根据生成的trie树节点号递增顺序依次排列,组成组播地址集合的复合trie树;
(1.4)对单播路由表项进行预处理:
将所有单播路由表项的目的地址Dr组成单播地址集合DS,将t个地址元素(D1,…,Dt)按从小到大的顺序进行排序;
(1.5)使用单播目的地址集合建立单棵trie树:
将t个组播目的地址集合DS1,DS2,…,DSt依次使用步骤(1.2)的方法建立单棵trie树;
(1.6)构建满足源地址目的地址联合查找和目的地址最长匹配查找的复合trie树结构:
生成trie树根节点,节点号为0,0号节点的左儿子为单播目的地址集合建立的单棵trie树根节点号,0号节点的右儿子为组播地址集合建立的复合trie树根节点号;根据生成的trie树节点号递增顺序依次排列,组成满足单播、组播查找的复合trie树结构。
(2)复合trie树查找结构的配置
在路由器的转发引擎处存储两组由复合trie树构建的查找结构,两组查找结构进行乒乓切换操作,查找结构一用于转发引擎对报文的查找处理,查找结构二用于协议处理单元根据路由表项变化完成的配置更新。两组查找结构由协议处理单元设置的标识位决定切换关系。若协议处理单元设置标识位为0时,查找结构一用于报文查表,查找结构二用于配置更新;当协议处理单元配置查找结构二完成后置标识位为1,查找结构一切换为用于配置更新,查找结构二切换为用于报文查表;以此类推,完成两组查找结构的乒乓操作。
(3)遍历复合trie树结构进行地址查找,具体为:
(3.1)确定起始树节点:
对源地址、目的地址进行联合查找,取所述复合trie树结构根节点的右儿子作为查找起始树节点,记为root2,之后进入(3.2);只对目的地址进行最长前缀匹配查找,取所述复合trie树结构根节点的右儿子作为查找起始树节点,记为root3,之后进入(3.3);
(3.2)使用源地址进行trie树查找:
步骤1:查找的trie树节点为i,初始值设置为起始树节点;源地址待处理的比特位为w,初始值设置为0,表示源地址的最高位;
步骤2:从左到右依次处理源地址的比特位,若节点i的扩展标识SF为1,进入步骤3;若节点i的扩展标识SF为0,进入步骤4;
步骤3:取节点i的左儿子的高4位为步进值step,若源地址从w比特开始向右的step个比特与节点i的左儿子的低4位相同,将节点i的右儿子的值赋值给节点i,否则令i为0;令w=w+step,若w<32,则返回步骤2;否则,进入步骤5;
步骤4:取源地址从左到右第w个比特位,若该比特位为0,将节点i的左儿子的值赋值给节点i;若该比特位为1,将节点i的右儿子的值赋值给节点i;令步进值step为1;令w=w+step,若w<32,则返回步骤2;否则,进入步骤5;
步骤5:得到节点i的路由索引index的值,作为目的地址查找的根节点号;
(3.3)使用目的地址进行trie树查找:
使用步骤(3.2)的方法进行目的地址查找,得到节点q的路由索引index值,即为进行源地址目的地址联合查找或只进行目的地址查找命中的路由表项下标,可得到下一跳地址和输出端口号。
经测试统计,路由表项个数与建立该复合trie树结构所需的树结点总数之比大约是1:4,产生一个树结点大约需要850个时钟周期,即对于1000条路由表项,它将产生大约4000个树结点,需要3400000个时钟周期。若CPU主频是70MHz,建立1000条路由表项的复合trie树结构大约耗时48ms。使用SRAM存储该查找结构,假设其一次读写访问时间为5ns,数据总线宽度为48位,在本方法中,平均进行一次源地址、目的地址精确查找需要进行20次SRAM访问,每秒钟可以处理10M个组播报文的查找,因此,本发明方法可以满足报文5G线速转发要求。
本发明给出的这种简单有效的源地址目的地址精确查找方法,其优点在于:
(1)该方法充分考虑了组播路由表项的分布特点,进行合并预处理,可有效降低查找结构的深度;
(2)该方法支持源地址、目的地址的精确匹配查找,实现多种组播工作模式下组播报文的正确查找;
(3)该方法使用由多颗trie树构建的复合trie树查找结构,有效降低了查找结构的深度和存储资源的消耗;
(4)该方法不依赖于专用存储器件来实现,增强了实现的灵活性;
(5)在现有硬件条件下利用该方法,就可以经济有效的实现报文在OC-96级别下的线速转发。
Claims (6)
1.一种基于复合trie树结构的源地址目的地址联合查找方法,其特征在于步骤如下:
(1)建立复合trie树结构;
(2)基于复合trie树结构进行源地址目的地址联合查找,具体为:
(2.1)确定起始树节点:
对源地址、目的地址进行联合查找,取所述复合trie树结构根节点的右儿子作为查找起始树节点,记为root2;
(2.2)使用源地址进行trie树查找:
步骤1:查找的trie树节点为i,初始值设置为root2;源地址待处理的比特位为w,初始值设置为0,表示源地址的最高位;
步骤2:从左到右依次处理源地址的比特位,若节点i的扩展标识SF为1,进入步骤3;若节点i的扩展标识SF为0,进入步骤4;
步骤3:取节点i的左儿子的高4位为步进值step,若源地址从w比特开始向右的step个比特与节点i的左儿子的低4位相同,将节点i的右儿子的值赋值给节点i,否则令i为0;令w=w+step,若w<32,则返回步骤2;否则,进入步骤5;
步骤4:取源地址从左到右第w个比特位,若该比特位为0,将节点i的左儿子的值赋值给节点i;若该比特位为1,将节点i的右儿子的值赋值给节点i;令步进值step为1;令w=w+step,若w<32,则返回步骤2;否则,进入步骤5;
步骤5:得到节点i的路由索引index的值,作为目的地址查找的根节点号;
(2.3)使用目的地址进行trie树查找:
使用步骤(2.2)的方法进行目的地址查找,得到节点q的路由索引index值,即为进行源地址目的地址联合查找命中的路由表项下标,从而得到下一跳地址和输出端口号;
扩展标识SF:trie树变步长标识;若为0,表示该节点有左右两个后继节点,若当前输入为比特0,指向左子树,若当前输入为比特1,指向右子树;若为1,表示该节点只有一个后继节点,由右子树指出;左子树的高4位为步长,即需要比较的比特数,低4位为模板内容;
路由索引index:为该条路由表项在路由表中的下标。
2.根据权利要求1所述的一种基于复合trie树结构的源地址目的地址联合查找方法,其特征在于:所述步骤(1)建立复合trie树结构具体为:
(1.1)对组播路由表项进行预处理:聚合所有组播路由表项,将同一源地址的多个组播路由表项进行合并,即将a个源地址为S、目的地址为Gb的组播路由表项(S,G1),(S,G2),…,(S,Ga)合并为(S,G1,…,Ga);将c个合并后的组播路由表项(S1,G11,G12,…,G1a),(S2,G21,G22,…,G2a),…,(Sc,Gc1,Gc2,…,Gca)整理为1个组播源地址集合SS:(S1,S2,…,Sc)和c个组播目的地址集合GSd:(G11,G12,…,G1a),(G21,G22,…,G2a),…,(Gc1,Gc2,…,Gca),分别将集合SS,GS1,GS2,…,GSc中的元素按从小到大的顺序进行排序;其中,a、b、c、d为正整数,1≤b≤a,1≤d≤c;
(1.2)使用组播源地址集合建立单棵trie树,trie树节点的结构均为:左儿子m_lson、右儿子m_rson、扩展标识SF以及路由索引index,设置trie树可变步长为4;左儿子m_lson和右儿子m_rson的长度均为16bit,扩展标识SF长度为1bit,路由索引index长度为15bit;
(1.3)使用组播目的地址集合建立多棵trie树,组成组播地址集合的复合trie树:
(1.4)构建满足源地址目的地址联合查找的复合trie树结构:
生成trie树根节点,节点号为0,0号节点的右儿子为组播地址集合建立的复合trie树根节点号。
3.根据权利要求2所述的一种基于复合trie树结构的源地址目的地址联合查找方法,其特征在于:所述步骤(1.2)使用组播源地址集合建立单棵trie树具体为:
步骤1:若集合SS不为空,使用组播源地址集合SS:(S1,S2,…,Sc)建立trie树,之后进入步骤2;若集合SS为空,跳出建树;
步骤2:令bit为地址当前比特位,初值设为0x8000,表示最高位;令root1为当前计算的trie树节点,节点号为1,表示树的根节点;计算集合SS中c个元素从bit位开始,相同比特的个数e,令e≤4个,之后进入步骤3;
步骤3:当e大于1时,进行变步长压缩建树:
步骤4:当e等于1时,建立左右儿子节点。
4.根据权利要求3所述的一种基于复合trie树结构的源地址目的地址联合查找方法,其特征在于:所述步骤3进行变步长压缩建树具体为:
1)令root1的扩展标识SF为1;
2)令root1的左儿子的高4比特位bit15…bit12为e,root1的左儿子的中间8比特位bit11…bit4为0,root1的左儿子的低4比特位bit3…bit0为集合SS中首个元素中从bit位开始的e个比特;
3)生成新的trie树节点f,节点号加1;
4)令root1的右儿子为f;
5)对集合SS进行递归建树,令当前计算的trie树节点root1为f,当前比特位bit为原值向右移动e位。
5.根据权利要求3所述的一种基于复合trie树结构的源地址目的地址联合查找方法,其特征在于:所述步骤4建立左右儿子节点具体为:
1)令集合Q为空,将SS中的所有以0比特开始的元素从SS中删除,放入集合Q中;
2)若Q不为空,生成新节点g,节点号加1,令root1的右儿子为g;对集合Q进行递归建树,令当前计算的trie树节点root1为g,当前比特位bit为原值向右移动1位;
3)若SS不为空,生成新节点h,节点号加1,令root1的右儿子为h;对集合SS进行递归建树,令当前计算的trie树节点root1为h,当前比特位bit为原值。
6.根据权利要求2所述的一种基于复合trie树结构的源地址目的地址联合查找方法,其特征在于:所述步骤(1.3)具体为:
步骤1:将c个组播目的地址集合GS1,GS2,…,GSc依次使用步骤(1.2)的方法分别建立c棵trie树;
步骤2:将源地址建立的单棵trie树和目的地址建立的c棵trie树,根据生成的trie树节点号递增顺序依次排列,组成组播地址集合的复合trie树。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510422535.2A CN105119834B (zh) | 2015-07-17 | 2015-07-17 | 一种基于复合trie树结构的源地址目的地址联合查找方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510422535.2A CN105119834B (zh) | 2015-07-17 | 2015-07-17 | 一种基于复合trie树结构的源地址目的地址联合查找方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105119834A CN105119834A (zh) | 2015-12-02 |
CN105119834B true CN105119834B (zh) | 2018-06-01 |
Family
ID=54667729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510422535.2A Active CN105119834B (zh) | 2015-07-17 | 2015-07-17 | 一种基于复合trie树结构的源地址目的地址联合查找方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105119834B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106549872B (zh) * | 2016-10-31 | 2019-05-24 | 西安空间无线电技术研究所 | 最长前缀匹配与精确匹配结合的星载快速路由查找*** |
CN108134739B (zh) * | 2016-12-01 | 2020-10-02 | 深圳市中兴微电子技术有限公司 | 一种基于索引特里树的路由查找方法及装置 |
CN107579951B (zh) * | 2017-07-14 | 2020-06-19 | 创新先进技术有限公司 | 一种业务数据处理方法、业务处理方法及设备 |
CN109033327B (zh) * | 2018-07-19 | 2021-09-28 | 浪潮软件股份有限公司 | 一种中文地址树的管理***和管理方法 |
CN111200559B (zh) * | 2018-11-19 | 2022-05-10 | 中国电信股份有限公司 | 路由方法和路由装置 |
CN112887212B (zh) * | 2021-02-25 | 2022-03-29 | 清华大学 | 基于可变步宽trie树的高速路由查找方法和装置 |
CN113315709B (zh) * | 2021-03-22 | 2023-02-28 | 阿里巴巴新加坡控股有限公司 | 地址缓存的创建方法、路由选址方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7111071B1 (en) * | 2000-06-29 | 2006-09-19 | Intel Corporation | Longest prefix match for IP routers |
CN101141389A (zh) * | 2007-09-29 | 2008-03-12 | 华为技术有限公司 | 增强多位Trie树查找方法和装置 |
CN104202174A (zh) * | 2014-08-13 | 2014-12-10 | 上海斐讯数据通信技术有限公司 | 一种精确转发ip特定源组播数据的实现方法 |
CN104780100A (zh) * | 2014-01-09 | 2015-07-15 | 中兴通讯股份有限公司 | 一种路由查找方法和路由器 |
Family Cites Families (1)
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 |
-
2015
- 2015-07-17 CN CN201510422535.2A patent/CN105119834B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7111071B1 (en) * | 2000-06-29 | 2006-09-19 | Intel Corporation | Longest prefix match for IP routers |
CN101141389A (zh) * | 2007-09-29 | 2008-03-12 | 华为技术有限公司 | 增强多位Trie树查找方法和装置 |
CN104780100A (zh) * | 2014-01-09 | 2015-07-15 | 中兴通讯股份有限公司 | 一种路由查找方法和路由器 |
CN104202174A (zh) * | 2014-08-13 | 2014-12-10 | 上海斐讯数据通信技术有限公司 | 一种精确转发ip特定源组播数据的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105119834A (zh) | 2015-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105119834B (zh) | 一种基于复合trie树结构的源地址目的地址联合查找方法 | |
CN102484610B (zh) | 路由表建立方法和装置及路由表查找方法和装置 | |
US7418505B2 (en) | IP address lookup using either a hashing table or multiple hash functions | |
US6985483B2 (en) | Methods and systems for fast packet forwarding | |
CN101345707B (zh) | 一种实现IPv6报文分类的方法及设备 | |
US20100284405A1 (en) | Method and apparatus for searching ip address | |
CN105515997B (zh) | 基于bf_tcam实现零范围扩张的高效范围匹配方法 | |
CN106549872B (zh) | 最长前缀匹配与精确匹配结合的星载快速路由查找*** | |
CN105141525B (zh) | IPv6路由查找方法及装置 | |
CN101286935A (zh) | 一种基于ip地址范围的路由查找方法 | |
CN104462260A (zh) | 一种基于k-核的社区搜索算法 | |
CN105827530B (zh) | 一种兼容ipv4/ipv6的ip二分查找方法及装置 | |
CN102045412B (zh) | IPv6地址前缀压缩存储方法及设备 | |
CN1216473C (zh) | 支持多个下一跳的三态内容可寻址存储器查找方法及*** | |
Yang et al. | Constant IP lookup with FIB explosion | |
CN104780101A (zh) | 内容中心网络转发平面fib表结构及其检索方法 | |
CN105959224B (zh) | 基于比特向量的高速路由查找装置及方法 | |
CN107016080A (zh) | 一种高效网络报文分类方法 | |
CN114884877A (zh) | 一种哈希表和HOT相结合的IPv6路由查找方法 | |
Abraham et al. | Compact routing for graphs excluding a fixed minor | |
CN103457855B (zh) | 无类域间路由表建立、以及报文转发的方法和装置 | |
CN1279716C (zh) | 消除最长前缀匹配查找的并行路由查找方法及其*** | |
CN106020724A (zh) | 一种基于数据映射算法的近邻存储方法 | |
US20050114393A1 (en) | Dynamic forwarding method using binary search | |
CN110995876B (zh) | 一种ip存储与查找的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |