CN103404092A - 路由前缀存储方法、装置及路由地址查找方法、装置 - Google Patents
路由前缀存储方法、装置及路由地址查找方法、装置 Download PDFInfo
- Publication number
- CN103404092A CN103404092A CN2011800029856A CN201180002985A CN103404092A CN 103404092 A CN103404092 A CN 103404092A CN 2011800029856 A CN2011800029856 A CN 2011800029856A CN 201180002985 A CN201180002985 A CN 201180002985A CN 103404092 A CN103404092 A CN 103404092A
- Authority
- CN
- China
- Prior art keywords
- node
- little tree
- address
- tree
- memory space
- 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.)
- Granted
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/48—Routing tree calculation
- H04L45/484—Routing tree calculation using multiple routing trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种路由前缀存储方法、装置及路由地址查找方法、装置。其中,存储方法包括:根据待存储的路由前缀建立路径压缩树,并将路径压缩树划分为一棵或多棵小树;为每棵小树的每个节点设置位置域信息,所述位置域信息包括节点的父节点到所述节点的路径长度和路径、标识节点是否有下一跳地址的路由标识和标识节点是否存在子节点的子节点标识;按照划分出的小树的层数顺序,依次将每棵小树所有节点的位置域信息和每棵小树指向连续存储下一跳地址的地址存储空间的首地址的指针,存储到每棵小树的小树存储空间中。使用本发明技术方案可以提升稀疏大树的路由容量。
Description
路由前缀存储方法、 装置及路由地址查找方法、 装置
技术领域 本发明实施例涉及网络通信技术, 尤其涉及一种路由前缀存储方法、 装 置及路由地址查找方法、 装置。 背景技术
互联网工程任务组( Internet Engineering Task Force; 简称为: IETF ) 于 1993年提出了称为无类型域间路由( Classless Inter-Domain Routing; 简称为: CIDR ) 的地址结构。 虽然 CIDR只是为了阻止地址空间耗尽而采用的临时解 决办法, 但正是这项技术成了目前实际路由查表的基础。 在 CIDR中, 一个 IP网络由一个前缀代表,这个前缀是由 IP地址和标识其有效位的掩码复合表 示。 CIDR允许路由器进行路由聚合, 即大小相同、 在地址空间中相互邻近、 路由相同的 2的整数次幂个子网的路由表条目可以合并成一条路径, 并在路 由表中只占用一个表项。 CIDR避免了网络地址的过快枯竭和骨干路由器路由 表项的快速膨胀, 但同时使网络地址前缀的长度可以为任意值, 进行路由查 找时必须进行最长前缀匹配( the longest prefix match )搜索。
目前, 所有的路由查表算法都是在以下三个方面进行权衡: 1、 路由表查 询速度,这主要是由访问存储器的次数决定; 2、路由表所需要的存储器容量; 3、 ***或删除路由表项的难易程度。
针对上述问题, 现有技术中最有应用前景的方法是将存储路由前缀的数 据结构分级, 小树的顶点 (称为提升节点)放在大树中, 并且小树采用路径 压缩树结构。 在路径压缩树中, 所有路由前缀都存放在它的叶结点上, 假设 有 N个路由前缀则有 N个叶结点, 另外有 N-1个内部结点。 路径压缩树允许 每个内部结点包含一个 "比特位置" 域, 用来指示该结点以下的分支节点对 应的比特位置, 即表明连续跳过的比特个数和所跳过的比特数值, 这样路径 压缩树就将冗余的支路链压缩到了一个结点上, 在查找路由时不需要做连续 的比特匹配而是可以一次匹配多个比特来快速到达叶结点。 小树的最大高度 限制为固定值 h, h的取值和具体的硬件环境相关。 在添加表项过程中, 如果 小树的高度超过 h, 则将小树***, 将***后的小树顶点放在大树中。 在删
除表项过程中, 可以按照合并后的高度不大于 h的条件将小树合并。 而对大 树的具体实现方法不作限定, 例如: 可以用 Range Match, B-tree, TCAM等 方法, 具体采用哪种方法可视具体硬件实现而定。 该方法在查询速度、 存储 容量以及在路由表项的更新方面均具有一定优势, 因此, 是具有前途的路由 存储和查找方案。
但是, 对于某些稀疏的大树来说, 该方案中每棵小树对应的路由前缀数 量一般比较少, 而小树的数量是有限的, 故整棵大树的路由容量将会受到影 响。 发明内容 本发明提供一种路由前缀存储方法、 装置及路由地址查找方法、 装置, 用以提升稀疏大树的路由容量。
本发明一方面提供一种路由前缀存储方法, 包括:
根据待存储的路由前缀建立路径压缩树, 并将所述路径压缩树根据小树 存储空间的大小划分为一棵或多棵小树, 每棵小树包括多个节点;
为每棵小树的每个节点设置位置域信息, 所述位置域信息包括所述节点 的父节点到所述节点的路径长度和路径、 标识所述节点是否有下一跳地址的 路由标识和标识所述节点是否存在子节点的子节点标识;
按照划分出的小树的层数顺序, 依次将每棵小树所有节点的位置域信息 和每棵小树指向连续存储所述路由前缀对应的所有下一跳地址的地址存储空 间的首地址的指针, 存储到每棵小树所对应的小树存储空间中。
本发明一方面提供一种路由前缀存储装置, 包括:
小树划分模块, 用于根据待存储的路由前缀建立路径压缩树, 并将所述 路径压缩树根据小树存储空间的大小划分为一棵或多棵小树, 每棵小树包括 多个节点;
信息设置模块, 用于为每棵小树的每个节点设置位置域信息, 所述位置 域信息包括所述节点的父节点到所述节点的路径长度和路径、 标识所述节点 是否有下一跳地址的路由标识和标识所述节点是否存在子节点的子节点标 识;
存储模块, 用于按照划分出的小树的层数顺序, 依次将每棵小树所有节
点的位置域信息和每棵小树指向连续存储所述路由前缀对应的所有下一跳地 址的地址存储空间的首地址的指针, 存储到每棵小树所对应的小树存储空间 中。
本发明另一方面提供一种路由地址查找方法, 包括:
按照小树的层数顺序, 从第一层小树的第一个节点开始, 根据各层小树 对应的小树存储空间中存储的各个节点的位置域信息对待查找的路由前缀进 行匹配查找; 所述位置域信息包括所述节点的父节点到所述节点的路径长度 和路径、 标识所述节点是否有下一跳地址的路由标识和标识所述节点是否存 在子节点的子节点标识;
如果匹配到最长匹配的节点, 根据存储匹配到的最长匹配的节点的小树 存储空间中指向连续存储下一跳地址的地址存储空间的首地址的指针和匹配 到的最长匹配的节点的位置, 从连续存储下一跳地址的地址存储空间中获取 所述路由前缀的下一跳地址。
本发明另一方面提供一种路由地址查找装置, 包括:
查找模块, 用于按照小树的层数顺序, 从第一层小树的第一个节点开始, 根据各层小树对应的小树存储空间中存储的各个节点的位置域信息对待查找 的路由前缀进行匹配查找; 所述位置域信息包括所述节点的父节点到所述节 点的路径长度和路径、 标识所述节点是否有下一跳地址的路由标识和标识所 述节点是否存在子节点的子节点标识;
获取模块, 用于在所述查找模块匹配到最长前缀节点, 根据存储匹配到 的最长前缀节点的小树存储空间中指向连续存储下一跳地址的地址存储空间 的首地址的指针和匹配到的最长前缀节点的位置, 从连续存储下一跳地址的 地址存储空间中获取所述路由前缀的下一跳地址。
本发明一方面提供的路由前缀存储方法及装置, 通过存储标识节点是否 有下一跳地址的路由标识, 而不再直接存储节点的下一跳地址, 所占用的存 储空间明显减小, 有利于提高小树存储空间所存储的节点的个数, 提高了小 树所对应的路由前缀的数量, 进而提高了整个大树的路由容量, 尤其对某些 稀疏的大树来说, 对整棵大树的路由容量的提升效果更为明显。
本发明另一方面提供的路由地址查找方法及装置, 与本发明实施例提供 的路由前缀存储方法及装置相配合, 按照小树的层数顺序, 根据对各层小树
对应的小树存储空间中各个节点的位置域信息对待查找的路由前缀进行查 找, 由于每个小树存储空间中不再存储节点对应的下一跳地址而是存储节点 是否具有下一跳地址的路由标识, 每个小树存储空间中所存储的节点信息增 多, 使得一次查找可以查找更多比特, 提高了查找速度和效率。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实 施例或现有技术描述中所需要使用的附图作一简单地介绍, 显而易见地, 下 面描述中的附图是本发明的一些实施例, 对于本领域普通技术人员来讲, 在 不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图 1A为本发明一实施例提供的路由前缀存储方法的流程图;
图 1B 为本发明一实施例提供的由路由前缀所建立的路径压缩树以及所 划分出的小树的一种结构示意图;
图 2为本发明另一实施例提供的路由前缀存储方法的流程图;
图 3为本发明一实施例提供的路由地址查找方法的流程图;
图 4A为本发明一实施例提供的路由前缀存储装置的结构示意图; 图 4B为本发明另一实施例提供的路由前缀存储装置的结构示意图; 图 5为本发明一实施例提供的路由地址查找装置的结构示意图。 具体实施方式
为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发 明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是本发明一部分实施例, 而不是全部的实施例。 基于 本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前提下所获 得的所有其他实施例, 都属于本发明保护的范围。
图 1A为本发明一实施例提供的路由前缀存储方法的流程图。如图 1A所 示, 本实施例的存储方法包括:
步骤 101、 根据待存储的路由前缀建立路径压缩树, 并将路径压缩树根 据小树存储空间的大小划分为一棵或多棵小树, 每棵小树包括多个节点。
在本实施例中, 当需要存储某一路由前缀时, 首先根据路由前缀建立路
径压缩树( Path Compressed Trie ) , 也就是按照路由前缀中每比特是 0还是 1 进行路径分支从而形成一棵路径压缩树。 其中, 所建立的路径压缩树即为大 树。 然后, 按照硬件设备上大小固定的存储空间的大小 (例如 128bit为一固 定存储空间) , 将所建立的路径压缩树划分为一棵或多棵小树。 其中, 每棵 小树的有关信息被存储到一个大小固定的存储空间中。 在本实施例中, 将大 小固定的存储空间称为小树存储空间, 意味着每个小树存储空间对应一棵小 树。
本实施例以一些路由前缀为例, 根据该些路由前缀建立了路径压缩树, 并将所建立的路径压缩树划分成了 3棵小树, 划分结果如图 1B所示。 如 1B 所示, 3棵小树分别为小树 1、 小树 2和小树 3。 每棵小树包括多个节点。 另 夕卜, 如图 1B所示, 小树 2和小树 3的顶节点是小树 1中某个节点的子节点。 根据各个小树之间节点的 "父子关系" 可以将划分出的小树进行分层, 对 于顶节点的父节点来自同一层中的小树的各个小树作为一层。 以图 1B为例, 小树 1是第一层, 小树 2的和小树 3的顶节点的父节点都来自小树 1 , 故小 树 2和小树 3是第二层。 在图 1B中包括的路由前缀如表 1所示。
表 1
步骤 102、 为每棵小树的每个节点设置位置域信息, 所述位置域信息包 括该节点的父节点到该节点的路径长度和路径、 标识该节点是否有下一跳地 址的路由标识和标识该节点是否存在子节点的子节点标识。
当划分出各棵小树后, 为每棵小树中的每个节点设置位置域信息。 每个 节点的位置域信息包括: 该节点的父节点到该节点的路径长度和路径、 标识
该节点是否有下一跳地址的路由标识和标识该节点是否有子节点的子节点标 识。
其中, 每个节点对应一个路由前缀, 该路由前缀可能有下一跳地址, 也 可能没有下一跳地址, 故在本实施例中, 通过路由标识来表示该节点是否有 下一跳地址。 例如, 可以使用 1 比特对该路由标识进行编码, 如果该节点对 应的路由前缀有下一跳地址, 则路由标识用 1表示 (或者说路由标识取值为 1 ); 如果该节点对应的路由前缀没有下一跳地址, 则路由标识用 0表示(或 者说路由标识取值为 0 ) 。 又例如, 可以使用 1比特对该路由标识进行编码, 如果该节点对应的路由前缀有下一跳地址, 则路由标识用 0表示(或者说路 由标识取值为 0 ) ; 如果该节点对应的路由前缀没有下一跳地址, 则路由标 识用 1表示(或者说路由标识取值为 1 ) 。 另外, 除了使用 1 比特对路由标 识进行编码外, 还可以使用 2比特、 3比特等。 举例说明, 使用 2比特对路 由标识进行编码, 如果该节点对应的路由前缀有下一跳地址, 路由标识用 01 表示(或者说路由标识取值为 01 ) ; 如果该节点对应的路由前缀没有下一跳 地址,路由标识用 00表示(或者说路由标识取值为 00 )。路由标识使用 "01" 和 "00"表示仅是一种举例, 还可以是其他值。 如图 1B所示, 黑色节点表示 的是有下一跳地址的节点, 空心的节点表示没有下一跳地址的节点。
在此说明, 使用 1 比特对路由标识进行编码是优选实施方式, 所占用的 存储空间少, 具有节约存储空间的优势。
与现有技术相比,本实施例的并不直接存储每个节点对应的下一跳地址, 而是存储一个路由标识。 本实施例的路由标识一般要小于下一跳地址, 故所 占用的存储空间相对较少, 提高了小树存储空间所能存储的小树数量, 进而 提升了整个大树的存储容量。
其中, 每个节点最多有 2个子节点, 分别记为左子节点和右子节点。 在 实际应用中, 一个节点可以只有左子节点, 还可以只有右子节点, 还可以没 有任何子节点, 或者同时具有左子节点和右子节点。 在本实施例中, 使用子 节点标识来标识节点具有子节点的情况。 例如, 可以使用 2比特对子节点标 识进行编码。 使用 2比特对子节点标识进行编码的一种方式为: 如果节点没 有子节点, 子节点标识用 00表示; 如果节点仅有一个左子节点, 子节点标识 用 10表示; 如果节点仅有一个右子节点, 子节点标识用 01 ; 如果节点同时
有左子节点和右子节点, 则子节点标识用 11表示。 使用 2比特对子节点标识 进行编码的另一种方式为: 如果节点没有子节点, 子节点标识用 11表示; 如 果节点仅有一个左子节点, 子节点标识用 10表示; 如果节点仅有一个右子节 点, 子节点标识用 01 ; 如果节点同时有左子节点和右子节点, 则子节点标识 用 00表示。
另外, 除了使用 2比特对子节点标识进行编码外, 还可以使用 3比特、 4 比特等。 举例说明, 使用 3比特对子节点标识进行编码的一种方式为: 如果 节点没有子节点, 子节点标识用 000表示; 如果节点仅有一个左子节点, 子 节点标识用 100表示; 如果节点仅有一个右子节点, 子节点标识用 001 ; 如 果节点同时有左子节点和右子节点, 则子节点标识用 111表示。 但不限于这 一种编码方式。
本实施例使用子节点标识来标识一个节点的子节点情况, 而不再像现有 技术那样使用指针指向来标识, 存储子节点标识与指针相比具有简单、 易于 实现的优势。
对于一个节点, 该节点的父节点到该节点的路径长度和路径可以直接使 用其实际值表示。
步骤 103、 按照划分出的小树的层数顺序, 依次将每棵小树所有节点的 位置域信息和每棵小树指向连续存储该路由前缀对应的所有下一跳地址的地 址存储空间的首地址的指针, 存储到每棵小树所对应的小树存储空间中。
当为每棵小树的每个节点设置好位置域信息后, 按照划分出的小树的层 数顺序, 例如按照先低层再高层的顺序, 依次将每棵小树的相关信息存储到 每棵小树所对应的小树存储空间中。 其中, 每棵小树的相关信息主要包括: 该棵小树中所有节点的位置域信息和该棵小树指向连续存储该待存储的路由 前缀对应的所有下一跳地址的地址存储空间的首地址的指针。 即对于一棵小 树来说, 需要将该棵小树中所有节点的位置信息和该棵小树指向连续存储该 待存储的路由前缀对应的所有下一跳地址的地址存储空间的首地址的指针, 都存储到该棵小树对应的小树存储空间中。
其中, 每个节点的位置域信息用于在进行路由前缀查找时, 与路由前缀 进行查找匹配。 而指向所述地址存储空间的首地址的指针用于在路由前缀查 找过程中找到最长前缀匹配的节点时, 去获取该最长前缀匹配的节点的下一
跳地址。
在本实施例中, 通过存储标识节点是否有下一跳地址的路由标识, 而不 再直接存储节点的下一跳地址, 所占用的存储空间明显减小, 有利于提高小 树存储空间所存储的节点的个数, 提高了小树所对应的路由前缀的数量, 进 而提高了整个大树的路由容量。 尤其对某些稀疏的大树来说, 由于小树的数 量是有限, 本实施例通过提升每棵小树对应的路由前缀的数量, 对整棵大树 的路由容量的提升效果更为明显。
图 2为本发明另一实施例提供的路由前缀存储方法的流程图。 如图 2所 示, 本实施例的存储方法包括:
步骤 201、 根据待存储的路由前缀建立路径压缩树, 并将路径压缩树根 据小树存储空间的大小划分为一棵或多棵小树, 每棵小树包括多个节点。
本实施例的执行主体可以是路由前缀存储装置,例如路由器或交换机等。 为简化描述, 后续将省略路由前缀存储装置。
本步骤 201可参见步骤 101的描述。
步骤 202、 判断划分出的小树的层数是否小于或等于预设层数阈值; 如 果判断结果为是, 执行步骤 203; 如果判断结果为否, 执行步骤 206。
通常, 路径压缩树划分出的小树的层数大于某个数值时, 说明该路径压 缩树比较密集; 如果路径压缩树划分出的小树的层数小于或等于该数值, 说 明该路径压缩树比较稀疏。 本实施例将该数值定义为层数阈值。 其中, 层数 阈值的大小视路由前缀存储装置的存储能力而定。 例如, 对于小树存储空间 大小为 128bit的路由前缀存储装置, 其所对应的层数阈值一般为 3层。
本实施例主要针对路径压缩树比较稀疏的情况, 用以解决路径压缩树在 稀疏情况下, 因受小树数量限制而无法提升整体容量的问题。
故在本实施例中, 当划分出小树后, 通过判断划分出的小树的层数来判 断根据待存储的路由前缀所建立的路径压缩树是否比较稀疏。 如图 1B所示, 该路径压缩树划分出 3棵小树, 分为 2层。 如果层数阈值为 3 , 则图 1B所示 的路径压缩树比较稀疏。
步骤 203、 为每棵小树的每个节点设置位置域信息, 所述位置域信息包 括该节点的父节点到该节点的路径长度和路径、 标识该节点是否有下一跳地 址的路由标识和标识该节点是否存在子节点的子节点标识。
当判断出路径压缩树比较稀疏时, 为每棵小树的每个节点设置位置域信 息。 每个节点的位置域信息包括: 该节点的父节点到该节点的路径长度和路 径、 标识该节点是否有下一跳地址的路由标识和标识该节点是否有子节点的 子节点标识。
其中, 每个节点对应一个路由前缀, 该路由前缀可能有下一跳地址, 也 可能没有下一跳地址, 故在本实施例中, 通过路由标识来表示该节点是否有 下一 if兆地址。
其中, 每个节点最多有 2个子节点, 分别记为左子节点和右子节点。 在 实际应用中, 一个节点可以只有左子节点, 还可以只有右子节点, 还可以没 有任何子节点, 或者同时具有左子节点和右子节点。 在本实施例中, 使用子 节点标识来标识节点具有子节点的情况。
有关本步骤 203的其他描述可参见步骤 102的描述, 在此不再赘述。 步骤 204、 按照划分出的小树的层数顺序, 依次将每棵小树所有节点的 位置域信息和每棵小树指向连续存储该路由前缀对应的所有下一跳地址的地 址存储空间的首地址的指针, 存储到每棵小树所对应的小树存储空间中。
当为每棵小树的每个节点设置好位置域信息后, 按照划分出的小树的层 数顺序, 例如按照先低层再高层的顺序, 依次将每棵小树的相关信息存储到 每棵小树所对应的小树存储空间中。
在本实施例中, 每棵小树的相关信息主要包括: 该棵小树中所有节点的 位置域信息、 该棵小树指向连续存储该待存储的路由前缀对应的所有下一跳 地址的地址存储空间的首地址的指针、 以及指向下一层小树对应的 d、树存储 空间的首地址的指针。 即对于一棵小树来说, 不仅要将该棵小树中所有节点 的位置信息和该棵小树指向连续存储该待存储的路由前缀对应的所有下一跳 地址的地址存储空间的首地址的指针存储到该棵小树对应的小树存储空间 中, 还需要将当前层小树指向下一层小树对应的小树存储空间的首地址的指 针, 存储到当前层小树对应的小树存储空间中。
在本实施例中, 各层所包含的小树的相关信息是连续存储的, 这种存储 方式既可以节约存储空间, 又便于进行路由地址查找。 由于每个小树对应的 小树存储空间的大小是固定的, 故在进行路由地址查找时, 通过当前层小树 指向下一层小树对应的小树存储空间的首地址的指针, 并按照小树存储空间
的大小进行地址偏移可以找到下一层中各个小树对应的 d、树存储空间。另夕卜, 通过当前层小树指向下一层小树对应的小树存储空间的首地址的指针和小树 存储空间的大小, 还可以找到父节点在下一层中的子节点和子节点对应的小 树存储空间。
其中, 每个节点的位置域信息用于在进行路由前缀查找时, 与路由前缀 进行查找匹配。 而指向所述地址存储空间的首地址的指针用于在路由前缀查 找过程中找到最长前缀匹配的节点时, 去获取该最长前缀匹配的节点的下一 跳地址。
步骤 205、 将路由前缀对应的所有下一跳地址连续存储到所述的地址存 储空间中, 并结束存储操作。
在本实施例中, 除了将路由前缀建立的路径压缩树中各个节点的位置域 信息存储到对应的小树存储空间中, 还将路由前缀对应的所有下一跳地址连 续存储到所述的地址存储空间中。 这种连续存储下一跳地址的存储方式有利 于节约存储空间。
步骤 206、 按照现有路径压缩树的存储方式进行存储。
其中, 如果根据待存储的路由前缀所建立的路径压缩树比较密集, 则可 以按照现有路径压缩树的存储方式进行存储。
其中, 现有路径压缩树的存储方式本实施例不再详述。
在本实施例中, 通过对路径压缩树进行疏密判断, 在路径压缩树比较稀 疏时, 通过存储标识节点是否有下一跳地址的路由标识, 而不再直接存储节 点的下一跳地址, 所占用的存储空间明显减小, 有利于提高小树存储空间所 存储的节点的个数, 提高了小树的压缩率, 提高了小树所对应的路由前缀的 数量, 进而提高了整个大树的路由容量, 尤其对某些稀疏的大树来说, 对整 棵大树的路由容量的提升效果更为明显。 另外, 本实施例通过将地址前缀对 应的所有下一跳地址进行单独存储且连续存储, 有利于节约存储空间和提高 存储空间的利用率。
图 3为本发明一实施例提供的路由地址查找方法的流程图。如图 3所示, 本实施例的查找方法包括:
步骤 301、 按照小树的层数顺序, 从第一层小树的第一个节点开始, 根 据各层小树对应的小树存储空间中存储的各个节点的位置域信息对待查找的
路由前缀进行匹配查找; 所述位置域信息包括: 该节点的父节点到该节点的 路径长度和路径、 标识该节点是否有下一跳地址的路由标识和标识所述节点 是否存在子节点的子节点标识。
本实施例的执行主体为路由地址查找装置, 例如路由器或交换机等。 为 简化描述, 将省略路由地址查找装置。
本实施例的路由地址查找方法与上述实施例提供的路由前缀存储方法相 适应。 本实施例的路由地址查找方法在上述实施例提供的路由前缀存储方法 的基础上实现。
具体的, 在路由空间中, 已经预先按照待存储的路由前缀划分出的小树 的层数, 将各个小树的位置域信息存储到了相应的小树存储空间中。 其中, 小树存储空间是路由空间中具有固定大小的存储空间。
当接收到某个路由前缀, 需要查询该路由前缀对应的下一跳地址时, 路 由空间中存储的第一层小树(只有一棵小树) 的第一个节点开始, 根据各层 'J、树对应的 ' j、树存储空间中存储的各个节点的位置域信息对待查找的路由前 缀进行匹配查找。
其中, 每个节点的位置域信息包括: 节点的父节点到该节点的路径长度 和路径、 标识该节点是否有下一跳地址的路由标识和标识该节点是否存在子 节点的子节点标识。
其中, 根据每棵小树对应的小树存储空间中的各节点的位置域信息对待 查找的路由前缀进行匹配查找的过程包括:
当查询到当前节点时, 判断当前节点所在的 d、树存储空间中所存储的当 前节点的父节点到当前节点的路径是否与路由前缀当前匹配到的部分相一 致。 如果判断结果为不一致, 说明发生错误, 则结束对该路由前缀的查找。 如果判断结果为一致, 说明匹配正确, 则继续根据当前节点所在的小树存储 空间中所存储的当前节点的路由标识, 判断当前节点是否有下一跳地址。 例 如, 如果查询到当前节点的路由标识未 1 , 表明当前节点有下一跳地址; 如 果查询到当前节点的路由标识为 0 , 表明当前节点没有下一跳地址。 如果当 前节点有下一跳地址, 则记录当前节点的位置并标识具有下一跳地址。 其中, 当前节点的位置亦即路由前缀当前匹配到的部分。
另外, 在判断结果为一致的情况下, 还要根据当前节点所在的小树存储
空间中所存储的当前节点的子节点标识判断当前节点是否有子节点。 例如, 如果查询到当前节点的子节点标识为 00, 表示当前节点没有子节点; 如果查 询到当前节点的子节点标识为 10, 表示当前节点仅有左子节点; 如果查询到 当前节点的子节点标识为 01 , 表示当前节点仅有右子节点; 如果查询到当前 节点的子节点标识为 1 1 , 表示当前节点同时有左子节点和右子节点。 如果当 前节点没有子节点, 则结束对路由前缀的查找。 如果当前子节点有子节点, 继续查询子节点。 具体的, 如果当前节点仅有左子节点, 则直接去查询左子 节点; 如果当前节点仅有右子节点, 则直接去查询右子节点; 如果当前子节 点同时具有左子节点和右子节点, 则可以先查询左子节点, 当对左子节点查 询失败时, 去查询右子节点; 或者可以先查询右子节点, 当右子节点查询失 败时, 去查询左子节点。
本实施例按照最长前缀匹配原则进行匹配。
步骤 302、 判断路由前缀是否匹配到最长前缀节点; 如果判断结果为是, 执行步骤 303 ; 如果判断结果为否, 执行步骤 304。
当匹配结束后, 判断路由前缀是否匹配到了最长前缀节点。 其中, 最长 前缀节点是有下一跳地址的节点, 且对该最长前缀节点的匹配长度是相对而 言的。
如果匹配到了前缀最长且具有下一跳地址的节点, 则执行步骤 303 ; 如 果没有匹配到任何具有下一跳地址的节点, 说明匹配失败, 则执行步骤 304, 即结束操作。
步骤 303、 根据存储匹配到的最长前缀节点的小树存储空间中指向连续 存储下一跳地址的地址存储空间的首地址的指针和匹配到的最长前缀节点的 位置, 从连续存储下一跳地址的地址存储空间中获取所述路由前缀的下一跳 地址, 并执行步骤 304。
当匹配到了前缀最长且具有下一跳地址的节点时, 根据存储匹配到的最 长前缀节点的小树存储空间中指向连续存储下一跳地址的地址存储空间的首 地址的指针, 找到连续存储下一跳地址的地址存储空间的首地址。 然后, 根 据最长前缀匹配节点的位置, 确定该最长前缀匹配节点对应的下一跳地址在 所述的地址存储空间中的相对位置, 从而获取下一跳地址。
在本实施例中, 所有下一跳地址连续存储在所述的地址存储空间中。 所
述的地址存储空间与各个小树存储空间是独立的。
步骤 304、 结束操作。
本实施例在上述实施例提供的路由前缀存储方法的基础上, 按照小树的 层数顺序, 根据对各层小树对应的小树存储空间中各个节点的位置域信息对 待查找的路由前缀进行查找。 由于每个小树存储空间中不再存储节点对应的 下一跳地址而是存储节点是否具有下一跳地址的路由标识, 因此, 每个小树 存储空间中所存储的节点信息增多, 使得一次查找可以查找更多比特, 提高 了查找速度和效率。
图 4A为本发明一实施例提供的路由前缀存储装置的结构示意图。 如图 4A所示, 本实施例的装置包括: 小树划分模块 41、 信息设置模块 42和存储 模块 43。
其中, 小树划分模块 41 , 用于根据待存储的路由前缀建立路径压缩树, 并将路径压缩树根据 d、树存储空间的大小划分为一棵或多棵小树, 每棵 ' j、树 包括多个节点。 信息设置模块 42, 与小树划分模块 41连接, 用于为小树划 分模块 41划分出的每棵小树的每个节点设置位置域信息,所述位置域信息包 括该节点的父节点到该节点的路径长度和路径、 标识该节点是否有下一跳地 址的路由标识和标识该节点是否存在子节点的子节点标识。 存储模块 43 , 与 信息设置模块 42连接, 用于按照划分出的小树的层数顺序, 依次将每棵小树 所有节点的位置域信息和每棵小树指向连续存储路由前缀对应的所有下一跳 地址的地址存储空间的首地址的指针, 存储到每棵小树所对应的小树存储空 间中。
本实施例路由前缀存储装置的各功能模块可用于执行图 1A所示路由前 缀存储方法的流程图, 其具体工作原理不再赘述, 详见方法实施例的描述。
本实施例的路由前缀存储装置, 通过存储标识节点是否有下一跳地址的 路由标识, 而不再直接存储节点的下一跳地址, 所占用的存储空间明显减小, 有利于提高小树存储空间所存储的节点的个数, 提高了小树所对应的路由前 缀的数量, 进而提高了整个大树的路由容量。 尤其对某些稀疏的大树来说, 由于小树的数量是有限,本实施例通过提升每棵小树对应的路由前缀的数量, 对整棵大树的路由容量的提升效果更为明显。
图 4B为本发明另一实施例提供的路由前缀存储装置的结构示意图。本实
施例基于图 4A所示实施例实现,如图 4B所示,本实施例的信息设置模块 42 包括: 第一设置单元 421、 第二设置单元 422和第三设置单元 423。
其中, 第一设置单元 421 , 与小树划分模块 41和存储模块 43连接, 用 于对每个节点, 用 2比特对所述子节点标识进行编码, 如果所述节点没有子 节点, 所述子节点标识用 00表示, 如果所述节点仅有一个左子节点, 所述子 节点标识用 10表示, 如果所述节点仅有一个右子节点, 所述子节点标识用 01 表示, 如果所述节点同时有左子节点和右子节点, 所述子节点标识用 11 表示。
第二设置单元 422, 与小树划分模块 41和存储模块 43连接, 用于对每 个节点, 用 1 比特对所述路由标识进行编码, 如果所述节点有下一跳地址, 所述路由标识用 1表示, 如果所述节点没有下一跳地址, 所述路由节点用 0 表示。
第三设置单元 423 , 与小树划分模块 41和存储模块 43连接, 用于设置 所述节点的父节点到该节点的路径长度和路径。
进一步,存储模块 43还用于将所述路由前缀对应的所有下一跳地址连续 存储到所述地址存储空间中。
更进一步,存储模块 43还用于将当前层小树指向下一层小树对应的小树 存储空间的首地址的指针, 存储到当前层小树对应的小树存储空间中。
本实施例的路由前缀存储装置还包括: 判断模块 44。
其中, 判断模块 44与小树划分模块 41和信息设置模块 42连接, 用于在 信息设置模块 42为每棵小树的每个节点设置位置域信息之前,判断划分出的 小树的层数是否小于或等于预设层数阈值, 如果判断结果为是, 触发信息设 置模块 42为每棵小树的每个节点设置位置域信息。
上述各功能单元或模块可用于执行图 1A或图 2所示路由前缀存储方法 中的相应流程, 其具体工作原理不再赘述, 详见方法实施例的描述。
本实施例的路由前缀存储装置, 通过对路径压缩树进行疏密判断, 在路 径压缩树比较稀疏时, 通过存储标识节点是否有下一跳地址的路由标识, 而 不再直接存储节点的下一跳地址, 所占用的存储空间明显减小, 有利于提高 小树存储空间所存储的节点的个数, 提高了小树的压缩率, 提高了小树所对 应的路由前缀的数量, 进而提高了整个大树的路由容量, 尤其对某些稀疏的
大树来说, 对整棵大树的路由容量的提升效果更为明显。 另外, 本实施例的 路由前缀存储装置通过将地址前缀对应的所有下一跳地址进行单独存储且连 续存储, 有利于节约存储空间和提高存储空间的利用率。
图 5为本发明一实施例提供的路由地址查找装置的结构示意图。 如图 5 所示, 本实施例的路由地址查找装置包括: 查找模块 51和获取模块 52。
其中, 查找模块 51 , 用于按照小树的层数顺序, 从第一层小树的第一个 节点开始, 根据各层小树对应的小树存储空间中存储的各个节点的位置域信 息对待查找的路由前缀进行匹配查找; 所述位置域信息包括节点的父节点到 该节点的路径长度和路径、 标识所述节点是否有下一跳地址的路由标识和标 识所述节点是否存在子节点的子节点标识。
获取模块 52, 与查找模块 51连接, 用于在查找模块 51匹配到最长前缀 节点, 根据存储匹配到的最长前缀节点的小树存储空间中指向连续存储下一 跳地址的地址存储空间的首地址的指针和匹配到的最长前缀节点的位置, 从 连续存储下一跳地址的地址存储空间中获取所述路由前缀的下一跳地址。
其中 ,查找模块 51根据小树存储空间中存储的各个节点的位置域信息对 待查找的路由前缀进行匹配查找的过程具体为:查找模块 51判断小树存储空 间中存储的当前节点的父节点到当前节点的路径是否与路由前缀当前匹配到 的部分相一致; 如果相一致, 查找模块 51根据小树存储空间中当前节点的路 由标识, 确定当前节点是否有下一跳地址, 如果当前节点有下一跳地址, 则 记录当前节点的位置并标识具有下一跳地址, 并根据小树存储空间中的子节 点标识, 判断当前节点是否存在子节点; 如果当前节点存在子节点, 继续查 询当前节点的子节点; 如果当前节点不存在子节点, 结束对路由前缀的查找。 如果不一致, 查找模块 51结束对路由前缀的查找。
本实施例路由地址查找模块的各功能模块可用于执行图 3所示路由地址 查找方法的流程, 其具体工作原理不再赘述, 详见方法实施例的描述。
本实施例的路由地址查找装置, 与上述实施例提供的路由前缀存储装置 相配合, 按照小树的层数顺序, 根据对各层小树对应的小树存储空间中各个 节点的位置域信息对待查找的路由前缀进行查找, 由于每个小树存储空间中 不再存储节点对应的下一跳地址而是存储节点是否具有下一跳地址的路由标 识, 每个小树存储空间中所存储的节点信息增多, 使得一次查找可以查找更
多比特, 提高了查找速度和效率。
本领域普通技术人员可以理解: 实现上述方法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成, 前述的程序可以存储于一计算机可读 取存储介质中, 该程序在执行时, 执行包括上述方法实施例的步骤; 而前述 的存储介质包括: ROM、 RAM, 磁碟或者光盘等各种可以存储程序代码的介 质。
最后应说明的是: 以上实施例仅用以说明本发明的技术方案, 而非对其 限制; 尽管参照前述实施例对本发明进行了详细的说明, 本领域的普通技术 人员应当理解: 其依然可以对前述各实施例所记载的技术方案进行修改, 或 者对其中部分技术特征进行等同替换; 而这些修改或者替换, 并不使相应技 术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (1)
- 权 利 要求 书1、 一种路由前缀存储方法, 其特征在于, 包括:根据待存储的路由前缀建立路径压缩树, 并将所述路径压缩树根据小树 存储空间的大小划分为一棵或多棵小树 , 每棵小树包括多个节点;为每棵小树的每个节点设置位置域信息, 所述位置域信息包括所述节点 的父节点到所述节点的路径长度和路径、 标识所述节点是否有下一跳地址的 路由标识和标识所述节点是否存在子节点的子节点标识;按照划分出的小树的层数顺序, 依次将每棵小树所有节点的位置域信息 和每棵小树指向连续存储所述路由前缀对应的所有下一跳地址的地址存储空 间的首地址的指针, 存储到每棵小树所对应的小树存储空间中。2、 根据权利要求 1所述的路由前缀存储方法, 其特征在于, 为每棵小树 的每个节点设置位置域信息包括:对每个节点, 用 2比特对所述子节点标识进行编码, 如果所述节点没有 子节点, 所述子节点标识用 00表示, 如果所述节点仅有一个左子节点, 所述 子节点标识用 10表示, 如果所述节点仅有一个右子节点, 所述子节点标识用 01 表示, 如果所述节点同时有左子节点和右子节点, 所述子节点标识用 11 表示;对每个节点, 用 1 比特对所述路由标识进行编码, 如果所述节点有下一 跳地址, 所述路由标识用 1表示, 如果所述节点没有下一跳地址, 所述路由 节点用 0表示;设置所述节点的父节点到所述节点的路径长度和路径。3、根据权利要求 1或 2所述的路由前缀存储方法,其特征在于,还包括: 将所述路由前缀对应的所有下一跳地址连续存储到所述地址存储空间 中。4、根据权利要求 1或 2所述的路由前缀存储方法,其特征在于,还包括: 将当前层小树指向下一层小树对应的小树存储空间的首地址的指针, 存 储到当前层小树对应的小树存储空间中。5、 根据权利要求 1或 2所述的路由前缀存储方法, 其特征在于, 为每棵 小树的每个节点设置位置域信息之前包括:判断划分出的小树的层数是否小于或等于预设层数阈值; 如果判断结果 为是, 执行为每棵小树的每个节点设置位置域信息的操作。6、 一种路由地址查找方法, 其特征在于, 包括:按照小树的层数顺序, 从第一层小树的第一个节点开始, 根据各层小树 对应的小树存储空间中存储的各个节点的位置域信息对待查找的路由前缀进 行匹配查找; 所述位置域信息包括所述节点的父节点到所述节点的路径长度 和路径、 标识所述节点是否有下一跳地址的路由标识和标识所述节点是否存 在子节点的子节点标识;如果匹配到最长前缀节点, 根据存储匹配到的最长前缀节点的小树存储 空间中指向连续存储下一跳地址的地址存储空间的首地址的指针和匹配到的 最长前缀节点的位置, 从连续存储下一跳地址的地址存储空间中获取所述路 由前缀的下一跳地址。7、 根据权利要求 6所述的路由地址查找方法, 其特征在于, 根据所述小 树存储空间中存储的各个节点的位置域信息对待查找的路由前缀进行匹配查 找包括:判断所述小树存储空间中当前节点的父节点到当前节点的路径是否与所 述路由前缀当前匹配到的部分相一致;如果相一致, 根据所述小树存储空间中当前节点的路由标识, 确定当前 节点是否有下一跳地址, 如果当前节点有下一跳地址, 则记录当前节点的位 置并标识具有下一跳地址, 并根据所述小树存储空间中的子节点标识, 判断 当前节点是否存在子节点; 如果当前节点存在子节点, 继续查询所述子节点; 如果当前节点不存在子节点, 结束对所述路由前缀的查找;如果不一致, 结束对所述路由前缀的查找。8、 一种路由前缀存储装置, 其特征在于, 包括:小树划分模块, 用于根据待存储的路由前缀建立路径压缩树, 并将所述 路径压缩树根据小树存储空间的大小划分为一棵或多棵小树, 每棵小树包括 多个节点;信息设置模块, 用于为每棵小树的每个节点设置位置域信息, 所述位置 域信息包括所述节点的父节点到所述节点的路径长度和路径、 标识所述节点 是否有下一跳地址的路由标识和标识所述节点是否存在子节点的子节点标 识; 存储模块, 用于按照划分出的小树的层数顺序, 依次将每棵小树所有节 点的位置域信息和每棵小树指向连续存储所述路由前缀对应的所有下一跳地 址的地址存储空间的首地址的指针, 存储到每棵小树所对应的小树存储空间 中。9、 根据权利要求 8所述的路由前缀存储装置, 其特征在于, 所述信息设 置模块包括:第一设置单元, 用于对每个节点, 用 2比特对所述子节点标识进行编码, 如果所述节点没有子节点, 所述子节点标识用 00表示, 如果所述节点仅有一 个左子节点, 所述子节点标识用 10表示, 如果所述节点仅有一个右子节点, 所述子节点标识用 01表示, 如果所述节点同时有左子节点和右子节点, 所述 子节点标识用 1 1表示;第二设置单元, 用于对每个节点, 用 1 比特对所述路由标识进行编码, 如果所述节点有下一跳地址, 所述路由标识用 1表示, 如果所述节点没有下 一跳地址, 所述路由节点用 0表示;第三设置单元, 用于设置所述节点的父节点到所述节点的路径长度和路 径。10、 根据权利要求 8或 9所述的路由前缀存储装置, 其特征在于, 所述 存储模块还用于将所述路由前缀对应的所有下一跳地址连续存储到所述地址 存储空间中。1 1、 根据权利要求 8或 9所述的路由前缀存储装置, 其特征在于, 所述 存储模块还用于将当前层小树指向下一层小树对应的小树存储空间的首地址 的指针, 存储到当前层小树对应的小树存储空间中。12、 根据权利要求 8或 9所述的路由前缀存储装置, 其特征在于, 还包 括:判断模块, 用于在所述信息设置模块为每棵小树的每个节点设置位置域 信息之前, 判断划分出的小树的层数是否小于或等于预设层数阈值, 如果判 断结果为是,触发所述信息设置模块为每棵小树的每个节点设置位置域信息。13、 一种路由地址查找装置, 其特征在于, 包括:查找模块, 用于按照小树的层数顺序, 从第一层小树的第一个节点开始, 根据各层小树对应的小树存储空间中存储的各个节点的位置域信息对待查找 的路由前缀进行匹配查找; 所述位置域信息包括所述节点的父节点到所述节 点的路径长度和路径、 标识所述节点是否有下一跳地址的路由标识和标识所 述节点是否存在子节点的子节点标识;获取模块, 用于在所述查找模块匹配到最长前缀节点, 根据存储匹配到 的最长前缀节点的小树存储空间中指向连续存储下一跳地址的地址存储空间 的首地址的指针和匹配到的最长前缀节点的位置, 从连续存储下一跳地址的 地址存储空间中获取所述路由前缀的下一跳地址。14、 根据权利要求 13所述的路由地址查找装置, 其特征在于, 所述查找 模块具体用于判断所述小树存储空间中当前节点的父节点到当前节点的路径 是否与所述路由前缀当前匹配到的部分相一致; 如果相一致, 根据所述小树 存储空间中当前节点的路由标识, 确定当前节点是否有下一跳地址, 如果当 前节点有下一跳地址, 则记录当前节点的位置并标识具有下一跳地址, 并根 据所述小树存储空间中的子节点标识, 判断当前节点是否存在子节点; 如果 当前节点存在子节点, 继续查询所述子节点; 如果当前节点不存在子节点, 结束对所述路由前缀的查找; 如果不一致, 结束对所述路由前缀的查找。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/083242 WO2013078644A1 (zh) | 2011-11-30 | 2011-11-30 | 路由前缀存储方法、装置及路由地址查找方法、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103404092A true CN103404092A (zh) | 2013-11-20 |
CN103404092B CN103404092B (zh) | 2015-11-25 |
Family
ID=48534625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180002985.6A Expired - Fee Related CN103404092B (zh) | 2011-11-30 | 2011-11-30 | 路由前缀存储方法、装置及路由地址查找方法、装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103404092B (zh) |
WO (1) | WO2013078644A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104090942A (zh) * | 2014-06-30 | 2014-10-08 | 中国电子科技集团公司第三十二研究所 | 应用于网络处理器中的Trie搜索方法及装置 |
WO2017000893A1 (zh) * | 2015-06-30 | 2017-01-05 | 杭州华三通信技术有限公司 | Ip路由查找 |
WO2017000892A1 (zh) * | 2015-06-30 | 2017-01-05 | 杭州华三通信技术有限公司 | Ip路由查找 |
CN111641729A (zh) * | 2019-05-23 | 2020-09-08 | 北京航空航天大学 | 一种基于前缀树的域间路径标识前缀冲突检测与分解方法 |
CN112134805A (zh) * | 2020-09-23 | 2020-12-25 | 中国人民解放军陆军工程大学 | 基于硬件实现的快速路由更新电路结构及更新方法 |
CN113133052A (zh) * | 2020-01-13 | 2021-07-16 | ***通信有限公司研究院 | 路径选择方法、装置及iab基站 |
CN115567444A (zh) * | 2022-09-23 | 2023-01-03 | 北京香哈网络股份有限公司 | 一种控制器路由地址查找调用方法及*** |
CN117150086A (zh) * | 2023-09-12 | 2023-12-01 | 北京云枢创新软件技术有限公司 | 基于层次结构树的子节点的生成方法、电子设备和介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3057738A1 (en) * | 2019-03-04 | 2019-05-31 | Alibaba Group Holding Limited | Constructing blockchain world state merkle patricia trie subtree |
CN112527753B (zh) * | 2020-12-11 | 2023-05-26 | 平安科技(深圳)有限公司 | Dns解析记录无损压缩方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030236793A1 (en) * | 2002-06-19 | 2003-12-25 | Ericsson Inc. | Compressed prefix tree structure and method for traversing a compressed prefix tree |
CN101459569A (zh) * | 2008-12-12 | 2009-06-17 | 华为技术有限公司 | 建立路由索引树的方法、装置和查找路由索引树的方法、装置 |
CN102045412A (zh) * | 2010-12-28 | 2011-05-04 | 赛尔网络有限公司 | IPv6地址前缀压缩存储方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645844A (zh) * | 2009-08-14 | 2010-02-10 | 华为技术有限公司 | 路由存储、查找的方法及装置 |
-
2011
- 2011-11-30 WO PCT/CN2011/083242 patent/WO2013078644A1/zh active Application Filing
- 2011-11-30 CN CN201180002985.6A patent/CN103404092B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030236793A1 (en) * | 2002-06-19 | 2003-12-25 | Ericsson Inc. | Compressed prefix tree structure and method for traversing a compressed prefix tree |
CN101459569A (zh) * | 2008-12-12 | 2009-06-17 | 华为技术有限公司 | 建立路由索引树的方法、装置和查找路由索引树的方法、装置 |
CN102045412A (zh) * | 2010-12-28 | 2011-05-04 | 赛尔网络有限公司 | IPv6地址前缀压缩存储方法及设备 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104090942A (zh) * | 2014-06-30 | 2014-10-08 | 中国电子科技集团公司第三十二研究所 | 应用于网络处理器中的Trie搜索方法及装置 |
WO2017000893A1 (zh) * | 2015-06-30 | 2017-01-05 | 杭州华三通信技术有限公司 | Ip路由查找 |
WO2017000892A1 (zh) * | 2015-06-30 | 2017-01-05 | 杭州华三通信技术有限公司 | Ip路由查找 |
CN111641729A (zh) * | 2019-05-23 | 2020-09-08 | 北京航空航天大学 | 一种基于前缀树的域间路径标识前缀冲突检测与分解方法 |
CN113133052A (zh) * | 2020-01-13 | 2021-07-16 | ***通信有限公司研究院 | 路径选择方法、装置及iab基站 |
CN113133052B (zh) * | 2020-01-13 | 2023-01-13 | ***通信有限公司研究院 | 路径选择方法、装置及iab基站 |
CN112134805A (zh) * | 2020-09-23 | 2020-12-25 | 中国人民解放军陆军工程大学 | 基于硬件实现的快速路由更新电路结构及更新方法 |
CN112134805B (zh) * | 2020-09-23 | 2022-07-08 | 中国人民解放军陆军工程大学 | 基于硬件实现的快速路由更新电路结构及更新方法 |
CN115567444A (zh) * | 2022-09-23 | 2023-01-03 | 北京香哈网络股份有限公司 | 一种控制器路由地址查找调用方法及*** |
CN115567444B (zh) * | 2022-09-23 | 2024-02-27 | 北京香哈网络股份有限公司 | 一种控制器路由地址查找调用方法及*** |
CN117150086A (zh) * | 2023-09-12 | 2023-12-01 | 北京云枢创新软件技术有限公司 | 基于层次结构树的子节点的生成方法、电子设备和介质 |
CN117150086B (zh) * | 2023-09-12 | 2024-03-22 | 北京云枢创新软件技术有限公司 | 基于层次结构树的子节点的生成方法、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103404092B (zh) | 2015-11-25 |
WO2013078644A1 (zh) | 2013-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103404092A (zh) | 路由前缀存储方法、装置及路由地址查找方法、装置 | |
CN102484610B (zh) | 路由表建立方法和装置及路由表查找方法和装置 | |
US20130246697A1 (en) | Organizing Data in a Hybrid Memory for Search Operations | |
CN103595637B (zh) | 基于树与哈希表的内容中心网络结点处理数据方法 | |
US7774538B2 (en) | Method for ternary contents address memory table management | |
US8284787B2 (en) | Dynamic tree bitmap for IP lookup and update | |
CN107770076A (zh) | 一种哈希冲突的处理方法、装置及交换设备 | |
WO2004025920A1 (en) | A method and apparatus for deep packet processing | |
CN105141525B (zh) | IPv6路由查找方法及装置 | |
CN101110778A (zh) | 一种利用默认路由压缩路由转发表的方法 | |
CN108322394B (zh) | 路由表建立、查找、删除及状态变更方法和装置 | |
CN104219145A (zh) | 网络***及路由方法 | |
CN102811227A (zh) | IPsec协议下标准方式ACL规则的一种管理机制 | |
CN109921995A (zh) | 一种配置地址表的方法、fpga和应用该fpga的网络设备 | |
CN113220679A (zh) | 面向多模态网络的混合型fib存储结构及其数据处理方法 | |
CN102045412A (zh) | IPv6地址前缀压缩存储方法及设备 | |
CN101277252A (zh) | 多分支Trie树的遍历方法 | |
WO2009132556A1 (zh) | 一种数据查找的方法及装置 | |
US11502957B2 (en) | Avoiding markers for longest prefix match based on binary search tree algorithm | |
Hsieh et al. | Multiprefix trie: A new data structure for designing dynamic router-tables | |
CN104252504A (zh) | 数据查询方法、设备和*** | |
CN101938424B (zh) | 建立路由表的方法和装置及报文转发方法和装置 | |
CN102986177A (zh) | 一种tcam表项的设置方法及装置 | |
CN104348725B (zh) | 基于流表的数据处理方法和装置 | |
CN109194574B (zh) | 一种IPv6路由查找方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151125 Termination date: 20191130 |