路由方法及相关设备技术

技术编号:36328503 阅读:66 留言:0更新日期:2023-01-14 17:37
本申请实施例提供一种路由方法及相关设备,其中方法包括:接收来自第二路由设备的目标消息,所述第二路由设备为所述第一路由设备的下游路由设备,所述目标消息包括至少一个索引,所述至少一个索引为所述第二路由设备中的至少一个IP地址前缀对应的索引;在接收到第一报文之后,向所述第二路由设备发送第二报文,所述第二报文包括所述第一报文和第一目标索引,所述第一目标索引用于所述第二路由设备确定所述第一报文的出端口,所述至少一个索引包括所述第一目标索引。采用本申请实施例,能够提高路由查表的效率。提高路由查表的效率。提高路由查表的效率。

【技术实现步骤摘要】
路由方法及相关设备


[0001]本申请涉及网络
,尤其涉及一种路由方法及相关设备。

技术介绍

[0002]网际互连协议(Internet Protocol,IP)是传输控制协议(Transmission Control Protocol,TCP)/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。IP网络传输中或者以IP构建的通信分组网中,路由查找是极其重要的部分,以最快速度匹配到目标IP地址对应的路由表项是路由查找的主要功能,其中,IP地址用于标识一个通信终端的通信地址。现有的路由表查找方法非常多,包括Lulea算法、PBF算法、Linux内核采用的LC

trie算法和思科路由器采用的Tree Bitmap算法。然而,随着路由表的飞速增长(年增长约15%),导致现有路由查表方法的性能低下。

技术实现思路

[0003]本申请实施例提供了一种路由方法及相关设备,能够提高路由查表的效率。
[0004]第一方面,本申请实施例提供了一种路由方法,应用于第一路由设备,所述方法包括:接收来自第二路由设备的目标消息,所述第二路由设备为所述第一路由设备的下游路由设备,所述目标消息包括至少一个索引,所述至少一个索引为所述第二路由设备中的至少一个IP地址前缀对应的索引;在接收到第一报文之后,向所述第二路由设备发送第二报文,所述第二报文包括所述第一报文和第一目标索引,所述第一目标索引用于所述第二路由设备确定所述第一报文的出端口,所述至少一个索引包括所述第一目标索引。其中,IP地址前缀可以简称为前缀(Prefix)。
[0005]在本申请实施例中,下游的第二路由设备通过向上游的第一路由设备发送目标消息,从而将其中的至少一个IP地址前缀对应的至少一个索引发给上游的第一路由设备;第一路由设备在接收到需要转发的第一报文之后,将该至少一个索引中的第一目标索引和第一报文作为第二报文发给第二路由设备,例如将第一目标索引放在第一报文的报头中作为第二报文发给第二路由设备;由于第一目标索引是用于第二路由设备确定第一报文的出端口的,也即第二路由设备根据第一目标索引可以快速查询到需要将第一报文转发给第二路由设备的具体哪一个下游路由设备,从而能够提高第二路由设备路由查表的效率。
[0006]在一种可能的实现方式中,所述至少一个索引包括以下至少一项:路由引擎表(Routing Engine Table,RE Table)的索引,完整前缀搜索树(Rich Prefix Subtrie,RPS)结构的数据表的索引,虚拟前缀搜索树(Virtual Prefix Subtrie,VPS)结构的数据表的索引。其中,路由引擎表的索引(英文名称为RE Index)用于查路由引擎表,完整前缀搜索树结构的数据表的索引(简称为RPS表的索引,英文名称为RPS Index)用于查完整前缀搜索树结
构的数据表,虚拟前缀搜索树结构的数据表的索引(简称VPS表的索引,英文名称为VPS Index)用于查虚拟前缀搜索树结构的数据表。应理解,本申请所述的搜索树也叫查找树。
[0007]在本申请实施例中,由于路由查表分阶段进行,也即先查三态内容寻址存储器(Ternary Content Addressable Memory,TCAM)表(简称TCAM表),然后根据查三态内容寻址存储器表的查表结果查虚拟前缀搜索树结构的数据表2(简称VPS2表),再根据查VPS2表的查表结果查虚拟前缀搜索树结构的数据表1(简称VPS1表),再根据查简称VPS1表的查表结果查完整前缀搜索树结构的数据表(简称RPS表),最后根据查完整前缀搜索树结构的数据表的查表结果查路由引擎表,从而查到具体的路由表项。而本申请的至少一个索引包括路由引擎表的索引(也即查RPS表的查表结果)、完整前缀搜索树结构的数据表的索引(也即查VPS1表的查表结果)和虚拟前缀搜索树结构的数据表的索引(包括VPS2表的索引和VPS1表的索引,VPS2表的索引也即查TCAM表的查表结果,VPS1表的索引也即查VPS2表的查表结果)中的至少一项,故第一目标索引可以为路由引擎表的索引、TCAM表的索引、VPS1表的索引、VPS2表索引和RPS表的索引中的任意一项。如果第一目标索引为路由引擎表的索引,那么第二路由设备可以根据第一目标索引直接查询其中的路由引擎表,以查到第一报文的出端口,如此省去查询TCAM表、VPS2表、VPS1表和RPS表的阶段,从而提高第二路由设备路由查表的效率。如果第一目标索引为RPS表的索引,那么第二路由设备可以根据第一目标索引直接查询其中的RPS表,再根据查RPS表的查表结果查询路由引擎表,以查到第一报文的出端口,如此省去查询TCAM表、VPS2表以及VPS1表的阶段,从而也可以提高第二路由设备路由查表的效率。如果第一目标索引为虚拟前缀搜索树结构的数据表的索引,分两种情况:第一目标索引为VPS1表的索引,那么第二路由设备可以根据第一目标索引直接查询其中的VPS1表,然后根据查VPS1表的查表结果查RPS表,再根据查RPS表的查表结果查询路由引擎表,以查到第一报文的出端口,如此省去查询TCAM表以及查VPS2表的阶段;第一目标索引为VPS2表的索引,那么第二路由设备可以根据第一目标索引直接查询其中的VPS2表,然后根据查VPS2表的查表结果查VPS1表,以及根据查VPS1表的查表结果查RPS表,再根据查RPS表的查表结果查询路由引擎表,以查到第一报文的出端口,如此省去查询TCAM表的阶段;从而也可以提高第二路由设备路由查表的效率。
[0008]在一种可能的实现方式中,所述目标消息还包括所述至少一个IP地址前缀;在所述接收到来自第二路由设备的目标消息之后,在所述向所述第二路由设备发送第二报文之前,所述方法还包括:根据所述至少一个IP地址前缀中的任一IP地址前缀,查询第一目标数据表,以在所述第一目标数据表中确定与所述任一IP地址前缀最长前缀匹配(Longest Prefix Match,LPM)的第一目标IP地址前缀;将所述至少一个索引中与所述任一IP地址前缀对应的索引增加在第二目标数据表中第二目标索引对应的表项中,所述第二目标索引在所述第一目标数据表中为所述第一目标IP地址前缀对应的索引;其中,若所述任一IP地址前缀为完整前缀搜索树结构的数据表中的IP地址前缀,所述第一目标数据表为完整前缀搜索树结构的数据表,所述第二目标数据表为路由引擎表;若所述任一IP地址前缀为虚拟前缀搜索树结构的数据表中的IP地址前缀,所述第一目标数据表为虚拟前缀搜索树结构的数据表,所述第二目标数据表为完整前缀搜索树结构的数据表或虚拟前缀搜索树结构的数据表;若所述任一IP地址前缀为三态内容寻址存储器表中的IP地址前缀,所述第一目标数据表为三态内容寻址存储器表,所述第二目标数据表为虚拟前缀搜索树结构的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种路由方法,其特征在于,应用于第一路由设备,所述方法包括:接收来自第二路由设备的目标消息,所述第二路由设备为所述第一路由设备的下游路由设备,所述目标消息包括至少一个索引,所述至少一个索引为所述第二路由设备中的至少一个IP地址前缀对应的索引;在接收到第一报文之后,向所述第二路由设备发送第二报文,所述第二报文包括所述第一报文和第一目标索引,所述第一目标索引用于所述第二路由设备确定所述第一报文的出端口,所述至少一个索引包括所述第一目标索引。2.根据权利要求1所述的方法,其特征在于,所述至少一个索引包括以下至少一项:路由引擎表的索引,完整前缀搜索树结构的数据表的索引,虚拟前缀搜索树结构的数据表的索引。3.根据权利要求1或2所述的方法,其特征在于,所述目标消息还包括所述至少一个IP地址前缀;在所述接收到来自第二路由设备的目标消息之后,在所述向所述第二路由设备发送第二报文之前,所述方法还包括:根据所述至少一个IP地址前缀中的任一IP地址前缀,查询第一目标数据表,以在所述第一目标数据表中确定与所述任一IP地址前缀最长前缀匹配的第一目标IP地址前缀;将所述至少一个索引中与所述任一IP地址前缀对应的索引增加在第二目标数据表中第二目标索引对应的表项中,所述第二目标索引在所述第一目标数据表中为所述第一目标IP地址前缀对应的索引;其中,若所述任一IP地址前缀为完整前缀搜索树结构的数据表中的IP地址前缀,所述第一目标数据表为完整前缀搜索树结构的数据表,所述第二目标数据表为路由引擎表;若所述任一IP地址前缀为虚拟前缀搜索树结构的数据表中的IP地址前缀,所述第一目标数据表为虚拟前缀搜索树结构的数据表,所述第二目标数据表为完整前缀搜索树结构的数据表或虚拟前缀搜索树结构的数据表;若所述任一IP地址前缀为三态内容寻址存储器表中的IP地址前缀,所述第一目标数据表为三态内容寻址存储器表,所述第二目标数据表为虚拟前缀搜索树结构的数据表。4.根据权利要求3所述的方法,其特征在于,第一数据表对应的第一完整前缀搜索树的深度与第二数据表对应的第二完整前缀搜索树的深度相同,且所述第一完整前缀搜索树的拓扑结构与所述第二完整前缀搜索树的拓扑结构不同;或所述第一完整前缀搜索树的深度与所述第二完整前缀搜索树的深度相差为1;所述第一数据表为所述第一路由设备中完整前缀搜索树结构的数据表,所述第二数据表为所述第二路由设备中完整前缀搜索树结构的数据表;所述方法还包括:接收来自所述第二路由设备的第一二进制串,所述第一二进制串为对所述第二完整前缀搜索树进行编码得到的二进制串;根据第二二进制串和所述第一完整前缀搜索树得到第三完整前缀搜索树,所述第二二进制串为所述第一二进制串与第三二进制串进行或操作后得到的二进制串,所述第三二进制串为对所述第一完整前缀搜索树进行编码得到的二进制串;根据所述第三完整前缀搜索树在所述第一数据表中增加表项;其中,所述增加的表项中的第二目标IP地址前缀为所述第三完整前缀搜索树中第一目标节点对应的IP地址前缀,所述第一目标节点为所述第三完整前缀搜索树相比于所述第一
完整前缀搜索树增加的节点,所述第一目标节点对应的IP地址前缀为所述第二完整前缀搜索树中第二目标节点对应的IP地址前缀,所述第一目标节点在所述第三完整前缀搜索树中的位置与所述第二目标节点在所述第二完整前缀搜索树中的位置相同,所述第二目标节点对应的IP地址前缀为所述第二数据表中的IP地址前缀;所述增加的表项中的第三目标索引为所述第一目标节点的最近祖先节点对应的索引。5.根据权利要求4所述的方法,其特征在于,所述对所述第一完整前缀搜索树进行编码,包括:将所述第一完整前缀搜索树补充为满二叉树,以得到第四完整前缀搜索树;对所述第四完整前缀搜索树进行编码;其中,所述第四完整前缀搜索树中对应有IP地址前缀的节点编码为1,所述第四完整前缀搜索树中的空节点以及对应无IP地址前缀的节点编码为0。6.根据权利要求3所述的方法,其特征在于,第一数据表对应的第一完整前缀搜索树的深度与第二数据表对应的第二完整前缀搜索树的深度的差值大于1;所述第一数据表为所述第一路由设备中完整前缀搜索树结构的数据表,所述第二数据表为所述第二路由设备中完整前缀搜索树结构的数据表;所述方法还包括:接收来自所述第二路由设备的第四二进制串,所述第四二进制串为对第一虚拟前缀搜索树进行编码得到的二进制串,所述第一虚拟前缀搜索树根据所述第二完整前缀搜索树得到;根据第五二进制串和所述第一完整前缀搜索树得到第二虚拟前缀搜索树,所述第五二进制串为所述第四二进制串与第三二进制串进行或操作后得到的二进制串,所述第三二进制串为对所述第一完整前缀搜索树进行编码得到的二进制串;根据所述第二虚拟前缀搜索树在所述第一数据表中增加表项;其中,所述增加的表项中的第二目标IP地址前缀为所述第一虚拟前缀搜索树中第三目标节点对应的IP地址前缀,所述第三目标节点为所述第二虚拟前缀搜索树相比于所述第一完整前缀搜索树增加的节点,所述第三目标节点对应的IP地址前缀为所述第一虚拟前缀搜索树中第四目标节点对应的IP地址前缀,所述第三目标节点在所述第二虚拟前缀搜索树中的位置与所述第四目标节点在所述第一虚拟前缀搜索树中的位置相同,所述第四目标节点对应的IP地址前缀为第三数据表中的IP地址前缀,所述第三数据表的查表结果用于查所述第二数据表;所述增加的表项中的第三目标索引为所述第三目标节点的最近祖先节点对应的索引。7.一种路由方法,其特征在于,应用于第二路由设备,所述方法包括:向第一路由设备发送目标消息,所述第二路由设备为所述第一路由设备的下游路由设备,所述目标消息包括至少一个索引,所述至少一个索引为所述第二路由设备中的至少一个IP地址前缀对应的索引;接收来自所述第一路由设备的第二报文,所述第二报文包括第一报文和第一目标索引,所述第一目标索引用于所述第二路由设备确定所述第一报文的出端口,所述至少一个索引包括所述第一目标索引。8.根据权利要求7所述的方法,其特征在于,所述至少一个索引包括以下至少一项:路由引擎表的索引,完整前缀搜索树结构的数据表的索引,虚拟前缀搜索树结构的数据表的
索引。9.根据权利要求7或8所述的方法,其特征在于,第一数据表对应的第一完整前缀搜索树的深度与第二数据表对应的第二完整前缀搜索树的深度相同,且所述第一完整前缀搜索树的拓扑结构与所述第二完整前缀搜索树的拓扑结构不同;或所述第一完整前缀搜索树的深度与所述第二完整前缀搜索树的深度相差为1;所述第一数据表为所述第一路由设备中完整前缀搜索树结构的数据表,所述第二数据表为所述第二路由设备中完整前缀搜索树结构的数据表;所述方法还包括:向所述第一路由设备发送第一二进制串,所述第一二进制串为对所述第二完整前缀搜索树进行编码得到的二进制串。10.根据权利要求9所述的方法,其特征在于,所述对所述第二完整前缀搜索树进行编码,包括:将所述第二完整前缀搜索树补充为满二叉树,以得到第五完整前缀搜索树;对所述第五完整前缀搜索树进行编码;其中,所述第五完整前缀搜索树中对应有IP地址前缀的节点编码为1,所述第五完整前缀搜索树中的空节点以及对应无IP地址前缀的节点编码为0。11.根据权利要求7或8所述的方法,其特征在于,第一数据表对应的第一完整前缀搜索树的深度与第二数据表对应的第二完整前缀搜索树的深度的差值大于1;所述第一数据表为所述第一路由设备中完整前缀搜索树结构的数据表,所述第二数据表为所述第二路由设备中完整前缀搜索树结构的数据表;所述方法还包括:向所述第一路由设备的第四二进制串,所述第四二进制串为对第一虚拟前缀搜索树进行编码得到的二进制串,所述第一虚拟前缀搜索树根据所述第二完整前缀搜索树得到。12.一种路由装置,其特征在于,应用于第一路由设备,所述装置包括:接收单元,用于接收来自第二路由设备的目标消息,所述第二路由设备为所述第一路由设备的下游路由设备,所述目标消息包括至少一个索引,所述至少一个索引为所述第二路由设备中的至少一个IP地址前缀对应的索引;发送单元,用于在接收到第一报文之后,向所述第二路由设备发送第二报文,所述第二报文包括所述第一报文和第一目标索引,所述第一目标索引用于所述第二路由设备确定所述第一报文的出端口,所述至少一个索引包括所述第一目标索引。13.根据权利要求12所述的装置,其特征在于,所述至少一个索引包括以下至少一项:路由引擎表的...

【专利技术属性】
技术研发人员:刘莉莉喻径舟陈哲王闯
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1