CN115473846A - 路由器转发信息的检索方法及相关装置 - Google Patents
路由器转发信息的检索方法及相关装置 Download PDFInfo
- Publication number
- CN115473846A CN115473846A CN202211085810.2A CN202211085810A CN115473846A CN 115473846 A CN115473846 A CN 115473846A CN 202211085810 A CN202211085810 A CN 202211085810A CN 115473846 A CN115473846 A CN 115473846A
- Authority
- CN
- China
- Prior art keywords
- address
- forwarding information
- router
- memory
- storage unit
- 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.)
- Pending
Links
Images
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/742—Route cache; Operation thereof
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种路由器转发信息的检索方法及相关装置,该方法包括:将数据包的IP地址划分为多种前缀长度的输入向量;并输入该前缀长度对应的地址索引模型,得到对应的累积分布函数值;将累计分布函数按照对应IP地址的前缀长度由长到短的顺序排序;基于映射表确定当前累积分布函数值对应的映射位置,并判断该映射位置是否存有存储器地址偏移量,若没有,则将下一顺位的累积分布函数值作为当前累计分布函数,重复执行本步骤,直至得到存储器地址偏移量;基于存储器地址偏移量确定数据包对应路由器转发信息在片下存储单元中的索引地址。通过上述方法本申请可以实现地址的最长前缀匹配机制,实现地址的快速检索。
Description
技术领域
本发明涉及数据检索技术领域,尤其涉及一种路由器转发信息的检索方法及相关装置。
背景技术
随着大数据、云计算、人工智能等的出现和应用,互联网迎来了新一轮革命。纷繁的新应用、新技术对当前IP网络提出了新的要求与挑战。然而,与互联网应用的快速迭代相比,TCP/IP协议作为互联网的基础近40年未做出实质性的变革,IP网络的各项能力亟待增强。IPv6网络作为IPv4网络的改良解决了地址耗尽问题和安全问题,但是始终没有改变TCP/IP技术核心,其固有缺陷一直没有被解决。
新型网络协议体系——NewIP。其中,SRv6协议(Segment Routing IPv6,SRv6)作为NewIP网络功能实现的一种技术手段,其在网络层协议与IPv6相互兼容,并能够在转发平面实现段路由。由于SRv6协议中IPv6地址分布更加随机,IPv6地址在不同场景下极具个性化,当进行数据包转发时,需要在FIB(Forwarding Information base,转发信息库)中进行检索以匹配下一跳接口,因此急需设计一种支持IPv6地址检索,且检索速度快的索引结构。
发明内容
有鉴于此,本发明提供了一种路由器转发信息的检索方法及相关装置,能够解决因ipv6地址极具个性化造成的检索难度大、速度慢的问题。
第一方面,本发明实施例提供了一种路由器转发信息的检索方法,应用于转发信息库中的片上存储单元,所述转发信息库还包括片下存储单元,该方法包括:
将数据包的IP地址划分为多种前缀长度的输入向量;
将各种前缀长度的输入向量输入该前缀长度对应的地址索引模型,得到对应的累积分布函数值;
将累计分布函数按照对应IP地址的前缀长度由长到短的顺序排序,并选取第一顺位的累计分布函数作为当前累计分布函数;
基于映射表确定当前累积分布函数值对应的映射位置,并判断该映射位置是否存有存储器地址偏移量,若该映射位置没有存储器地址偏移量,则将下一顺位的累积分布函数值作为当前累计分布函数,重复执行本步骤,直至得到存储器地址偏移量;
基于所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址。
第二方面,本发明实施例提供了一种片上存储单元,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上第一方面任一种可能的实现方式所述方法的步骤。
第三方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面任一种可能的实现方式所述方法的步骤。
第四方面,本发明实施例提供了一种转发信息库,其包括片下存储单元和如上第二方面所述的片上存储单元;
所述片下存储单元为动态随机存取存储器,所述片上存储单元为静态随机存取存储器。
本发明实施例与现有技术相比存在的有益效果是:
本发明实施例首先将数据包的IP地址划分为多种前缀长度的输入向量;将各种前缀长度的输入向量输入该前缀长度对应的地址索引模型,得到对应的累积分布函数值;将累计分布函数按照对应IP地址的前缀长度由长到短的顺序排序,并选取第一顺位的累计分布函数作为当前累计分布函数;然后基于映射表确定当前累积分布函数值对应的映射位置,并判断该映射位置是否存有存储器地址偏移量,若该映射位置没有存储器地址偏移量,则将下一顺位的累积分布函数值作为当前累计分布函数,重复执行本步骤,直至得到存储器地址偏移量;最后基于所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址。通过上述方法本申请实施例可以实现IPv6地址的最长前缀匹配机制,实现IPv6地址的快速检索。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的路由器转发信息的检索方法的应用场景图;
图2是本发明实施例提供的路由器转发信息的检索方法的另一种示意图;
图3是本发明实施例提供的路由器转发信息的检索方法的又一种示意图;
图4是本发明实施例提供的路由器转发信息的检索装置的结构示意图;
图5是本发明实施例提供的片上存储单元的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图通过具体实施例来进行说明。
参见图1,其示出了本发明实施例提供的路由器转发信息的检索方法的实现流程图,应用于转发信息库中的片上存储单元,所述转发信息库还包括片下存储单元,该方法详述如下:
S101:将数据包的IP地址划分为多种前缀长度的输入向量。
具体的,所述片上存储单元使用SRAM(Static Random-Access Memory,静态随机存取存储器),其较快的处理速度可以实现数据的快速检索。片下存储器使用DRAM(dynamicrandom access memory,动态随机存取存储器),其较大的存储空间能够满足百万级别地址条目的需要。
在一个可能的实施例中,S101的具体实现流程包括:
获取多种预设前缀长度;
针对每个预设前缀长度,从所述数据包的首位IP地址开始截取该预设前缀长度的IP地址作为对应的输入向量。
具体的,数据包可以包括NEWIP网络下任一协议数据包,例如SRv6数据包,数据包的IP地址可以包括IPv6地址和IPv4地址,以下以SRv6数据包、IPv6地址为例对本申请提供的路由器转发信息的检索方法进行解释说明。
IPv6地址在不同场景下极具个性化,当进行数据包转发时,需要在FIB中进行检索以匹配下一跳接口,因此需要设计一个支持IPv6地址检索,且误判率小、检索速度快的索引结构。IPv6地址在FIB中进行检索时需要满足最长前缀匹配机制,IPv6地址特点变化导致最长前缀匹配更加困难。
基于上述问题,考虑到未来IP地址前缀长度较为随机的情况,因此本实施例选择在片上存储单元上部署多组地址索引模型,并分别应对不同前缀长度区间的IPv6地址。如图2所示,本实施例首先可以将SRv6数据包的IPv6地址划分为多种前缀长度的输入向量,例如,将128位IP地址从首位IP地址开始,以32位为预设前缀长度分割出第一输入向量;从首位IP地址开始,以64位为预设前缀长度分割出第二输入向量;从首位IP地址开始,以96位为预设前缀长度分割出第三输入向量;从首位IP地址开始,以128位为预设前缀长度分割出第四输入向量。第一组地址索引模型对应前缀长度区间为1~32,第二组地址索引模型对应的前缀长度区间为33~64,第三组地址索引模型对应前缀长度区间为65~96,第四组地址索引模型对应的前缀长度区间为97~128。
在一个可能的实施例中,在S102之前,本实施例提供的路由器转发信息的检索方法还包括:
将所述数据包的IP地址的进制转换为十进制;
相应的,所述将各种前缀长度的输入向量输入该前缀长度对应的地址索引模型,包括:
将转换为十进制后的各种前缀长度的输入向量输入该前缀长度对应的地址索引模型。
具体的,IPv6地址为冒进十六进制,所以首先将各输入向量由冒进十六进制转化为十进制。然后再将经过转化后的输入向量输入对应的地址索引模型。
S102:将各种前缀长度的输入向量输入该前缀长度对应的地址索引模型,得到对应的累积分布函数值(Cumulative Cistribution Function,CDF)。
具体的,地址索引模型为神经网络模型,存储于片上存储单元,用于学习IPv6地址在存储器中的分布规律。本实施例选用结构小巧的前馈神经网络实现快速计算,并将其搭建成两层的塔式结构以应对百万级别的数据量。如图3所示,该塔式结构第一层包含一个前馈神经网络,对百万级别数据进行分类;第二级包含若干个前馈神经网络,分别对应第一层的分类数,每个神经网络学习各类数据在存储器中的分布情况。
在本实施例中,多组地址索引模型可并行计算,从而缩短转发信息查找时间。
S103:将累计分布函数按照对应IP地址的前缀长度由长到短的顺序排序,并选取第一顺位的累计分布函数作为当前累计分布函数。
S104:基于映射表确定当前累积分布函数值对应的映射位置,并判断该映射位置是否存有存储器地址偏移量,若该映射位置没有存储器地址偏移量,则将下一顺位的累积分布函数值作为当前累计分布函数,重复执行本步骤,直至得到存储器地址偏移量。
在一个可能的实施例中,所述基于映射表确定当前累积分布函数值对应的映射位置,包括:
将当前累积分布函数值与所述映射表中槽的总数量相乘,得到所述映射位置。
在本实施例中,映射表为增强型Bitmap结构,用于存储累计分布函数值到存储器中的映射,以获取实际索引地址的偏移量。
具体的,映射表包括多个槽,当得到累计分布函数值时,将累积分布函数值与映射表中槽的总个数相乘,就可得到存储有存储器地址偏移量的槽的映射位置。若该槽内没有存储器地址偏移量,则该槽的值为零。
本实施例按照前缀长度由长到短的顺序查找存储器地址偏移量,若当前的输入向量查找得到的映射位置中未存有存储器地址偏移量,则换前缀长度仅次于当前输入向量的输入向量查找存储器地址偏移量,直至找到的映射位置中存有存储器地址偏移量,则该存储器地址偏移量就是数据包的下一跳路由器转发信息在片下存储单元中存储池的存储器地址偏移量。
在一个可能的实施例中,S105的具体实现流程包括:
基于所述映射位置确定片下存储单元中存储有所述路由器转发信息的存储池的基地址,并基于存储有所述路由器转发信息的存储池的基地址和所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址。
在本实施例中,参考图2和图3,每个地址索引模型对应片下存储单元中的多个存储池,每个地址索引模型中第二层的一个前馈神经网络对应映射表中的一组槽,例如图3中的part1或part2,该组槽对应片下存储单元中该地址索引模型对应的多个存储池中的一个存储池。在获得存有存储器地址偏移量的映射位置后,确定该映射位置所在的槽组,并基于该槽组确定片下存储单元中对应存储池的基地址,基于该槽组对应存储池的基地址及存储器地址偏移量,确定数据包的路由器转发信息在片下存储单元中的存储地址,即索引地址。
S105:基于所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址。
在获取到数据包的路由器转发信息的索引地址后,基于该索引地址访问片下存储单元存储池,得到路由器转发信息。
在本实施例中,若不同数据索引到同一地址而发生冲突时,在数据存储池中使用链地址法处理上述冲突。
若所有的输入向量对应的映射位置的值均为零,则输出“不存在匹配结果”。
在一个可能的实施例中,本实施例提供的路由器转发信息的检索方法还包括:
若监测到更新指令,则在所述基于所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址之后,基于所述索引地址访问所述片下存储单元对应的存储地址,并更新该存储地址的路由器转发信息。
在本实施例中,更新指令包括添加指令、删除指令和修改指令等,若更新指令为修改指令,则在S105之后,基于所述索引地址访问所述片下存储单元对应的存储地址,并修改该存储地址的路由器转发信息。
在一个可能的实施例中,所述更新指令包括添加指令和删除指令;上述路由器转发信息的更新过程进一步包括:
若监测到添加指令,则在所述基于映射表确定当前累积分布函数值对应的映射位置之后,将需要添加的存储器地址偏移量添加至所述映射位置,并在所述基于所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址之后,基于所述索引地址访问所述片下存储单元对应的存储地址,将所述数据包的路由器转发信息添加至该存储地址;
若监测到删除指令,则在所述基于所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址之后,基于所述索引地址访问所述片下存储单元对应的存储地址,并将该存储地址存储的路由器转发信息删除,以及删除该数据包对应映射位置的存储器地址偏移量。
作为本申请的一个具体应用实施例,将本发明实施例构建的转发信息库及其检索方法在一台配置为Intel Xeon E5-1650 v2 3.50GHz、DDR3 24GB SDRAM的小型工作站上进行软件部署测试。考虑到实际路由表索引数据量,实验中利用一亿条路由表索引数据作为训练集,测试集由二百万条全新的路由表索引数据构成。配合设计的检索算法,在满足最长前缀匹配机制前提下,实现了数据的高效索引。实验结果表明,在满足网络丢包率小于1%的条件下,该映射模型的存储消耗仅为26.14MB,可直接部署于高速片内存储器。对于查找速度,其吞吐量高达11.49MPPS。由此表明,本发明中设计的路由器转发信息库存储结构及其数据检索方法具有良好的综合性能。
从上述实施例可知,本发明实施例提出了一种NewIP网络路由器转发信息库存储结构及其数据检索算法。对SRv6数据包转发信息的检索过程中,首先按照最长前缀匹配机制在片上存储单元的索引结构组中执行并行检索操作,判断此数据包对应的IPv6地址前缀是否在转发信息库中;若存在匹配前缀,则根据索引结构输出结果获得其在片下存储单元的FIB存储池中的地址,进而读取下一跳路由转发信息;若不存在匹配前缀,则输出检索结果“不存在匹配结果”。对转发信息更新过程中,如果执行添加操作,首先将该地址前缀插入到片上存储单元与其前缀长度对应的索引结构中,然后根据索引结构输出结果访问片下存储单元的FIB存储池,插入相应的路由器转发信息;如果执行修改操作,直接根据片上存储单元的索引结构输出结果访问片下存储单元的FIB存储池,修改相应的路由转发信息;若执行删除操作,则同步删除片内索引结构和片外FIB存储池中的相应记录。通过上述方法,本实施例在保证数据检索速度的基础上提升存储效率,其数据检索算法可以支持最长前缀匹配的IPv6地址快速检索。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
以下为本发明的装置实施例,对于其中未详尽描述的细节,可以参考上述对应的方法实施例。
图4示出了本发明实施例提供的路由器转发信息的检索装置的结构示意图,应用于转发信息库中的片上存储单元,所述转发信息库还包括片下存储单元,为了便于说明,图4仅示出了与本发明实施例相关的部分,详述如下:
如图4所示,路由器转发信息的检索装置100包括:
输入模块,用于将数据包的IP地址划分为多种前缀长度的输入向量;
分布函数计算模块,用于将各种前缀长度的输入向量输入该前缀长度对应的地址索引模型,得到对应的累积分布函数值;
排序模块,用于将累计分布函数按照对应IP地址的前缀长度由长到短的顺序排序,并选取第一顺位的累计分布函数作为当前累计分布函数;
地址偏移量获取模块,用于基于映射表确定当前累积分布函数值对应的映射位置,并判断该映射位置是否存有存储器地址偏移量,若该映射位置没有存储器地址偏移量,则将下一顺位的累积分布函数值作为当前累计分布函数,重复执行本步骤,直至得到存储器地址偏移量;
索引模块,用于基于所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址。
在一个可能的实施例中,输入模块包括:
获取多种预设前缀长度;
针对每个预设前缀长度,从所述数据包的首位IP地址开始截取该预设前缀长度的IP地址作为对应的输入向量。
在一个可能的实施例中,地址偏移量获取模块包括:
将当前累积分布函数值与所述映射表中槽的总数量相乘,得到所述映射位置。
在一个可能的实施例中,索引模块包括:
基于所述映射位置确定片下存储单元中存储有所述路由器转发信息的存储池的基地址,并基于存储有所述路由器转发信息的存储池的基地址和所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址。
在一个可能的实施例中,路由器转发信息的检索装置100还包括,转发信息更新模块,用于:
若监测到更新指令,则在所述基于所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址之后,基于所述索引地址访问所述片下存储单元对应的IP地址,并更新该IP地址的路由器转发信息。
在一个可能的实施例中,所述更新指令包括添加指令和删除指令;转发信息更新模块进一步包括:
若监测到添加指令,则在所述基于映射表确定当前累积分布函数值对应的映射位置之后,将需要添加的存储器地址偏移量添加至所述映射位置,并在所述基于所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址之后,基于所述索引地址访问所述片下存储单元对应的存储地址,将所述数据包的路由器转发信息添加至该存储地址;
若监测到删除指令,则在所述基于所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址之后,基于所述索引地址访问所述片下存储单元对应的存储地址,并将该存储地址存储的路由器转发信息删除,以及删除该数据包对应映射位置的存储器地址偏移量。
在一个可能的实施例中,输入模块还包括:
将所述数据包的IP地址的进制转换为十进制;
相应的,分布函数计算模块包括:
将转换为十进制后的各种前缀长度的输入向量输入该前缀长度对应的地址索引模型。
本实施例提供的路由器转发信息的检索装置,可用于执行上述路由器转发信息的检索方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
图5是本发明一实施例提供的片内存储单元的示意图。如图5所示,该实施例的片内存储单元5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52。所述处理器50执行所述计算机程序52时实现上述各个路由器转发信息的检索方法实施例中的步骤,例如图1所示的步骤S101至步骤S105。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图4所示模块110至150的功能。
示例性的,所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述片内存储单元5中的执行过程。
所述片内存储单元5可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是片内存储单元5的示例,并不构成对片内存储单元5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述片内存储单元还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述片内存储单元5的内部存储单元,例如片内存储单元5的硬盘或内存。所述存储器51也可以是所述片内存储单元5的外部存储设备,例如所述片内存储单元5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述片内存储单元5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述片内存储单元所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/片内存储单元和方法,可以通过其它的方式实现。例如,以上所描述的装置/片内存储单元实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个路由器转发信息的检索方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种路由器转发信息的检索方法,其特征在于,应用于转发信息库中的片上存储单元,所述转发信息库还包括片下存储单元,所述方法包括:将数据包的IP地址划分为多种前缀长度的输入向量;将各种前缀长度的输入向量输入该前缀长度对应的地址索引模型,得到对应的累积分布函数值;将累计分布函数按照对应IP地址的前缀长度由长到短的顺序排序,并选取第一顺位的累计分布函数作为当前累计分布函数;基于映射表确定当前累积分布函数值对应的映射位置,并判断该映射位置是否存有存储器地址偏移量,若该映射位置没有存储器地址偏移量,则将下一顺位的累积分布函数值作为当前累计分布函数,重复执行本步骤,直至得到存储器地址偏移量;基于所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址。
2.根据权利要求1所述的路由器转发信息的检索方法,其特征在于,所述将数据包的IP地址划分为多种前缀长度的输入向量,包括:
获取多种预设前缀长度;
针对每个预设前缀长度,从所述数据包的首位IP地址开始截取该预设前缀长度的IP地址作为对应的输入向量。
3.根据权利要求1所述的路由器转发信息的检索方法,其特征在于,所述基于映射表确定当前累积分布函数值对应的映射位置,包括:
将当前累积分布函数值与所述映射表中槽的总数量相乘,得到所述映射位置。
4.根据权利要求1所述的路由器转发信息的检索方法,其特征在于,所述基于所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址,包括:
基于所述映射位置确定片下存储单元中存储有所述路由器转发信息的存储池的基地址,并基于存储有所述路由器转发信息的存储池的基地址和所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址。
5.根据权利要求1所述的路由器转发信息的检索方法,其特征在于,所述方法还包括:
若监测到更新指令,则在所述基于所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址之后,基于所述索引地址访问所述片下存储单元对应的IP地址,并更新该IP地址的路由器转发信息。
6.根据权利要求5所述的路由器转发信息的检索方法,其特征在于,所述更新指令包括添加指令和删除指令;所述若监测到更新指令,则在所述基于所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址之后,基于所述索引地址访问所述片下存储单元对应的存储地址,并更新该地址的路由器转发信息,包括:
若监测到添加指令,则在所述基于映射表确定当前累积分布函数值对应的映射位置之后,将需要添加的存储器地址偏移量添加至所述映射位置,并在所述基于所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址之后,基于所述索引地址访问所述片下存储单元对应的存储地址,将所述数据包的路由器转发信息添加至该存储地址;
若监测到删除指令,则在所述基于所述存储器地址偏移量确定所述数据包对应路由器转发信息在片下存储单元中的索引地址之后,基于所述索引地址访问所述片下存储单元对应的存储地址,并将该存储地址存储的路由器转发信息删除,以及删除该数据包对应映射位置的存储器地址偏移量。
7.根据权利要求1所述的路由器转发信息的检索方法,其特征在于,在所述将各种前缀长度的输入向量输入该前缀长度对应的地址索引模型之前,所述方法还包括:
将所述数据包的IP地址的进制转换为十进制;
相应的,所述将各种前缀长度的输入向量输入该前缀长度对应的地址索引模型,包括:
将转换为十进制后的各种前缀长度的输入向量输入该前缀长度对应的地址索引模型。
8.一种片上存储单元,其特征在于,包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,执行如权利要求1至7中任一项所述的方法。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上的权利要求1至7中任一项所述方法的步骤。
10.一种转发信息库,其特征在于,包括片下存储单元和如权利要求8所述的片上存储单元;
所述片下存储单元为动态随机存取存储器,所述片上存储单元为静态随机存取存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211085810.2A CN115473846A (zh) | 2022-09-06 | 2022-09-06 | 路由器转发信息的检索方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211085810.2A CN115473846A (zh) | 2022-09-06 | 2022-09-06 | 路由器转发信息的检索方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115473846A true CN115473846A (zh) | 2022-12-13 |
Family
ID=84369788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211085810.2A Pending CN115473846A (zh) | 2022-09-06 | 2022-09-06 | 路由器转发信息的检索方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115473846A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110460529A (zh) * | 2019-06-28 | 2019-11-15 | 天津大学 | 内容路由器fib存储结构及其数据处理方法 |
CN113220679A (zh) * | 2021-04-29 | 2021-08-06 | 天津大学 | 面向多模态网络的混合型fib存储结构及其数据处理方法 |
-
2022
- 2022-09-06 CN CN202211085810.2A patent/CN115473846A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110460529A (zh) * | 2019-06-28 | 2019-11-15 | 天津大学 | 内容路由器fib存储结构及其数据处理方法 |
CN113220679A (zh) * | 2021-04-29 | 2021-08-06 | 天津大学 | 面向多模态网络的混合型fib存储结构及其数据处理方法 |
Non-Patent Citations (1)
Title |
---|
王彬志 等: "面向多模态数据的混合型FIB", 《北京邮电大学学报》, vol. 43, no. 5, pages 27 - 33 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108255958B (zh) | 数据查询方法、装置和存储介质 | |
CN108370352B (zh) | 使用网络处理器的高速灵活分组分类 | |
Lakshminarayanan et al. | Algorithms for advanced packet classification with ternary CAMs | |
US10503716B2 (en) | Systems and methods for generating bit matrices for hash functions using fast filtering | |
US20130246698A1 (en) | Hybrid Memory for Search Operations | |
CN110301120A (zh) | 流分类装置、方法和系统 | |
US9244857B2 (en) | Systems and methods for implementing low-latency lookup circuits using multiple hash functions | |
US10095720B2 (en) | Database table index | |
US8972450B2 (en) | Multi-stage parallel multi-character string matching device | |
JP2003196295A (ja) | ツリー型知識ベース検索のルックアップ・パフォーマンスを向上させる方法 | |
US8543528B2 (en) | Exploitation of transition rule sharing based on short state tags to improve the storage efficiency | |
CN110460529B (zh) | 一种内容路由器转发信息库存储结构的数据处理方法和芯片 | |
CN113220679A (zh) | 面向多模态网络的混合型fib存储结构及其数据处理方法 | |
CN108664518B (zh) | 一种实现查表处理的方法及装置 | |
CN115473846A (zh) | 路由器转发信息的检索方法及相关装置 | |
US9703484B2 (en) | Memory with compressed key | |
US9201982B2 (en) | Priority search trees | |
CN114827030B (zh) | 一种基于折叠sram的流分类装置及表项压缩方法 | |
US10795580B2 (en) | Content addressable memory system | |
US9396286B2 (en) | Lookup with key sequence skip for radix trees | |
US20160105363A1 (en) | Memory system for multiple clients | |
CN107045535B (zh) | 数据库表索引 | |
KR101587756B1 (ko) | 블룸 필터 선-검색을 이용한 스트링 정보 검색 장치 및 방법 | |
CN115714744A (zh) | 一种SRv6报文的存储方法、装置及电子设备 | |
CN107222401B (zh) | 一种基于tcam的路由查找系统及其方法 |
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 |