CN110460528A - 命名数据网转发平面的fib存储结构及其使用方法 - Google Patents
命名数据网转发平面的fib存储结构及其使用方法 Download PDFInfo
- Publication number
- CN110460528A CN110460528A CN201810428740.3A CN201810428740A CN110460528A CN 110460528 A CN110460528 A CN 110460528A CN 201810428740 A CN201810428740 A CN 201810428740A CN 110460528 A CN110460528 A CN 110460528A
- Authority
- CN
- China
- Prior art keywords
- data
- name
- cloth
- longest
- grand filter
- 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
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
- 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
- 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/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- 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/748—Address table lookup; Address filtering using longest matching prefix
-
- 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/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了命名数据网转发平面的FIB存储结构及其使用方法,所述的命名数据网转发平面的FIB存储结构,其特征在于:包括一个片内存储单元和一个片外存储单元;其中,所述片内存储单元中具有W个相同的可定位型布隆滤波器,所述可定位型布隆滤波器由一个通用型布隆滤波器和一个定位数组组成,所述片外存储单元具有字节数组、计数布隆滤波器组以及多个动态存储器。本发明中设计的一种FIB存储结构可以利用字节数组Bitmap为***的数据动态分配存储空间,形成动态存储器,能够极大降低片外存储单元的存储消耗。
Description
技术领域
本发明属于高性能路由器结构设计技术领域,具体涉及一种命名数据网转发平面的FIB存储结构及其使用方法。
背景技术
随着互联网规模的爆发性增长,以及人工智能、云计算技术的不断发展,基于传统TCP/IP技术的互联网通信模型在面对未来超高移动性、高共享率等业务需求时逐渐暴露出弊端。为了解决TCP/IP网络的不足以满足用户对高质量通信的需求,一种新型未来网络架构命名数据网(Named Data Networking)于2010年被提出,并得到快速发展。
命名数据网打破传统的基于IP地址的通信模式,而采用面向数据内容的通信方式,以内容名称代替IP地址,不再关心内容存储的实际物理位置。同时,通过在网络节点部署缓冲存储器,命名数据网极大地提高了网络资源的共享率,降低了网络负载,提升了数据传输的性能。
为了实现命名数据网这一新型互联网架构,其转发平面需要部署一个全新的高效FIB存储结构,以支持更快速的数据处理操作,减少存储消耗。其中,FIB用于存储数据包的路由转发信息,因此FIB必须执行快速且频繁的读取操作来为数据包获取下一跳的转发信息;其次,为应对目前超大规模的互联网,FIB中条目数量预计多达1千万条,将会消耗大量的存储空间,因此FIB需要充分考虑当前硬件存储器水平,最大化地降低存储消耗以实现部署。然而,目前常用的基于Name Component Encoding(名称组件编码)方法、Hash(哈希)方法、Bloom filter(布隆滤波器)技术的FIB存储结构,都不能完全满足上述需求。
发明内容
本发明的目的在于克服现有技术的不足,提供一种命名数据网转发平面的FIB存储结构及其使用方法,该结构可以实现快速数据检索及更新操作,极大降低存储消耗,并可以部署于当前硬件环境下。
本发明是通过以下技术方案实现的:
一种命名数据网转发平面的FIB存储结构,包括一个片内存储单元和一个片外存储单元;其中,所述片内存储单元中具有W个相同的可定位型布隆滤波器(Mapping Bloomfilter,MBF),所述MBF由一个通用型布隆滤波器(Bloom filter,BF)和一个定位数组(Mapping Array,MA)组成,所述片外存储单元具有字节数组Bitmap组、计数布隆滤波器(Counter Bloom filter,CBF)组以及多个动态存储器(Packet Store),所述字节数组Bitmap组由W个相同的Bitmap构成,用于存储要检索的数据名称所对应的地址偏移量,所述CBF组由W个相同的CBF构成,与其他结构配合实现数据的***和更新,所述Packet Store用于实现数据路由转发信息的存储。
在上述技术方案中,所述的片内存储单元为高速存储器,所述的片外存储单元为低速存储器。
在上述技术方案中,所述的BF平均分为j个大小相同的部分,同时MA定位数组的大小设置为j比特,BF的每一个部分依次对应MA定位数组的一个比特位。
在上述技术方案中,Bitmap的槽个数与MA定位数组的大小设置成指数关系,即Bitmap的槽个数为2j,并平均分为N部分;然后根据该MA定位数组的数值可以计算出该数据名称在Bitmap中的第m(m=1,2,…,N-1,N)部分,以及该部分的具体槽位置。
一种所述命名数据网转发平面的FIB存储结构的使用方法,包括在所述FIB存储结构中针对数据名称的***数据方法、数据检索的方法或更新方法;
所述的数据***方法包括以下步骤,
步骤11:MA定位数组初始化:数据***前,将MA定位数组中的所有比特位初始化为0;
步骤12:输入数据名称:将数据名称输入到所述的命名数据网转发平面FIB存储结构中;
步骤13:对该数据名称进行K次哈希编码:
步骤14:将K次哈希操作所映射的BF的比特位数值全部置为1:即如果哈希操作映射到BF的一个比特位,则该比特位置1,通过K次哈希操作后数据名称被***到BF中;
步骤15:将K次哈希操作所映射到的CBF的计数器加1:即如果哈希操作映射到CBF的一个计数器,则该计数器加1,通过K次哈希操作后数据名称被***到CBF中;
步骤16:计算MA定位数组的数值及计算该数据名称在字节数组Bitmap中的位置:根据该数据名称的K次哈希操作在BF中的映射值,计算得出MA定位数组的数值;然后,根据上述的MA定位数组的数值计算该数据名称在字节数组Bitmap中的第几部分的第几槽内;
步骤17:为该数据名称分配地址偏移量:根据上述操作得到的该数据名称***到所在部分的顺序为该数据名称标序号,该序号即为该数据名称在片外存储单元对应的Packet Store中的地址偏移量,并将该地址偏移量存储在该数据名称所在的字节数组Bitmap的槽内;
步骤18:将数据路由转发信息存储于Packet Store:根据上述操作分配的该数据名称的地址偏移量和其所对应的Packet Store的基地址为该数据名称分配存储空间,并将该数据的路由转发信息存储于该存储空间内;
步骤19:数据名称***操作结束。
6.如权利要求5所述的数据使用方法,其特征在于,所述的数据检索方法包括以下步骤,
步骤21:MA定位数组初始化:数据检索前,将MA定位数组中的所有比特位初始化为0;
步骤22:输入数据名称:将数据名称输入到上述的FIB存储结构中;
步骤23:对该输入的数据名称按照最长名称前缀匹配原则进行并行操作:采用上述数据***时确定的哈希函数、编码长度及编码次数K值,对该基于分级结构的数据名称的所有名称前缀分别进行K次哈希编码;
步骤24:判断最长匹配名称前缀是否存在于该FIB存储结构中:若最长名称前缀的K次哈希操作所映射的BF比特位数值全为1,则该数据名称的最长匹配名称前缀存在于FIB存储结构中,并继续执行步骤25,完成检索;否则,该数据名称的最长匹配名称前缀不存在于该FIB存储结构中,即表明不存在检索结果,执行步骤29;
步骤25:计算该最长匹配名称前缀的MA定位数组的数值:根据最长匹配名称前缀的K次哈希操作在BF中的映射值,计算得到MA定位数组的数值;
步骤26:计算该最长匹配名称前缀在字节数组Bitmap中的位置:根据定位数组的数值计算该最长匹配名称前缀在字节数组Bitmap中的具***置,即在字节数组Bitmap中的第几部分的第几个槽;
步骤27:读取该最长匹配名称前缀的地址偏移量:读取与该最长匹配名称前缀所对应的字节数组Bitmap中具***置所存储的地址偏移量;
步骤28:输出检索结果:根据步骤27读取的该最长匹配名称前缀的地址偏移量以及该最长匹配名称前缀所对应的Packet Store的基地址,找到该最长匹配名称前缀在片外存储单元的Packet Store的存储空间,并读取该存储空间内的数据路由转发信息,该路由转发信息即为检索结果;
步骤29:数据检索操作结束。
在上述技术方案中,所述的数据更新方法步骤如下:
步骤31:MA定位数组初始化:数据更新前,将MA定位数组中的所有比特位初始化为0;
步骤32:输入待更新的数据名称:将基于分级结构的待更新数据名称输入到上述的FIB存储结构中;
步骤33:对该输入的数据名称按照最长名称前缀匹配原则进行并行操作:采用上述数据***时确定的哈希函数、编码长度及编码次数K值,对该基于分级结构的数据名称的所有名称前缀分别进行K次哈希编码;
步骤34:读取最长匹配名称前缀的K次哈希操作在BF中的映射值;
步骤35:计算所对应的MA定位数组的数值及计算最长匹配名称前缀在字节数组Bitmap中的位置:根据最长匹配名称前缀的K次哈希操作在BF中的映射值,计算得出其所对应的MA定位数组的数值;根据上述的MA定位数组的数值计算最长匹配名称前缀在字节数组Bitmap中的第几部分的第几槽;
步骤36:读取最长匹配名称前缀的地址偏移量:读取与最长匹配名称前缀所对应的字节数组Bitmap中具***置所存储的地址偏移量;
步骤37:将最长匹配名称前缀的路由转发信息进行更新:根据步骤6读取的最长匹配名称前缀的地址偏移量以及最长匹配名称前缀所对应的Packet Store的基地址,找到该最长匹配名称前缀在片外存储单元的Packet Store的存储空间,并更新该存储空间内的数据路由转发信息;
步骤38:判断最长匹配名称前缀所对应的CBF中比特位数值是否变化:如果在CBF组中最长匹配名称前缀对应的CBF比特位的数值发生变化,即由0变为1,或由1变为0,则执行步骤39;如果在CBF组中最长匹配名称前缀对应的CBF比特位的数值没有发生变化,则无需进行更新操作,直接完成更新操作;
步骤39:同步CBF与其所对应的片内存储单元中BF:同步CBF所对应的片内存储单元BF比特位数值,即完成FIB的更新操作。
在上述技术方案中,所述哈希函数为CityHash256,K值根据BF的具体大小来调整并确定编码长度及编码次数。
本发明的优点和有益效果为:
本发明中设计的一种FIB存储结构主要是针对命名数据网转发平面特点所设计的一种新型的FIB存储结构,该结构利用片内、片外两级存储结构,避免了频繁的片外存取操作,提高了数据处理速度;其次,该结构可以利用一个哈希函数得到K次哈希映射值,因此利用该结构可以实现数据的快速检索操作,能够满足百万级别数据处理速度的需求;同时,该结构可以利用字节数组Bitmap为***的数据动态分配存储空间,形成动态存储器,能够极大降低片外存储单元的存储消耗。
附图说明
图1为本发明中命名数据网转发平面FIB存储结构的***结构图。
图2为本发明数据检索方法中关于FIB存储结构数据***操作的流程框图。
图3为本发明数据检索方法中关于FIB存储结构数据检索操作的流程框图。
图4为本发明数据检索方法中关于FIB存储结构数据更新操作的流程框图。
图5为本发明中涉及到的数据***到其所对应的BF、MA定位数组、Bitmap的原理图。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据以上附图获得其他的相关附图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合具体实施例进一步说明本发明的技术方案。
本发明的命名数据网转发平面的FIB存储结构,包括一个片内存储单元和一个片外存储单元;其中,所述片内存储单元中具有W个相同的可定位型布隆滤波器(MappingBloom filter,MBF),所述MBF由一个通用型布隆滤波器(Bloom filter,BF)和一个定位数组(Mapping Array,MA)组成,所述片外存储单元具有字节数组Bitmap组、计数布隆滤波器(Counter Bloom filter,CBF)组以及多个动态存储器(Packet Store),所述字节数组Bitmap组由W个相同的Bitmap构成,用于存储要检索的数据名称所对应的地址偏移量,所述CBF组由W个相同的CBF构成,与其他结构配合实现数据的***和更新,所述Packet Store用于实现数据路由转发信息的存储。所述BF用于判断要检索的数据名称是否在所述***数据之后的FIB存储结构中,所述MA是与所述BF具有映射关系的比特数组,用于判断要检索的数据名称在字节数组Bitmap中的位置。所述的片内存储单元为高速存储器,所述的片外存储单元为低速存储器。FIB需要用最长前缀匹配算法进行数据查询。W个的目的是使得FIB可以支持最长前缀匹配算法。
为了实现由BF至MA的映射操作以计算MA定位数组的数值,所述的BF平均分为j个大小相同的部分,同时MA定位数组的大小设置为j比特,BF的每一个部分依次对应MA定位数组的一个比特位。当进行数据名称***时,若BF中的第i(i=1,2,…,j-1,j)个部分存在哈希映射,则相应MA定位数组的第i个比特位的值将设置为1,否则该比特位的值为0。经过数据名称的K次哈希映射,最终得出j比特MA定位数组的数值。
为了实现由MA定位数值计算该数据名称在Bitmap的位置,首先将Bitmap的槽个数与MA定位数组的大小设置成指数关系,即Bitmap的槽个数为2j,并平均分为N部分。然后根据该MA定位数组的数值可以计算出该数据名称在Bitmap中的第m(m=1,2,…,N-1,N)部分,以及该部分的具体槽位置。
本发明同时公开了一种所述命名数据网转发平面的FIB存储结构的使用方法,包括在所述FIB存储结构中针对数据名称的***数据方法、数据检索的方法或更新方法;
所述的数据***方法包括以下步骤,
步骤11:MA定位数组初始化:数据***前,将MA定位数组中的所有比特位初始化为0;
步骤12:输入数据名称:将数据名称输入到所述的命名数据网转发平面FIB存储结构中;
步骤13:对该数据名称进行K次哈希编码:所述哈希函数为CityHash256,同时,K值根据BF的具体大小来调整并确定编码长度及编码次数。
步骤14:将K次哈希操作所映射的BF的比特位数值全部置为1:即如果哈希操作映射到BF的一个比特位,则该比特位置1,通过K次哈希操作后数据名称被***到BF中;
步骤15:将K次哈希操作所映射到的CBF的计数器加1:即如果哈希操作映射到CBF的一个计数器,则该计数器加1,通过K次哈希操作后数据名称被***到CBF中;
步骤16:计算MA定位数组的数值及计算该数据名称在字节数组Bitmap中的位置:根据该数据名称的K次哈希操作在BF中的映射值,计算得出MA定位数组的数值;然后,根据上述的MA定位数组的数值计算该数据名称在字节数组Bitmap中的第几部分的第几槽内;
步骤17:为该数据名称分配地址偏移量:根据上述操作得到的该数据名称***到所在部分的顺序为该数据名称标序号,该序号即为该数据名称在片外存储单元对应的Packet Store中的地址偏移量,并将该地址偏移量存储在该数据名称所在的字节数组Bitmap的槽内;
步骤18:将数据路由转发信息存储于Packet Store:根据上述操作分配的该数据名称的地址偏移量和其所对应的Packet Store的基地址为该数据名称分配存储空间,并将该数据的路由转发信息存储于该存储空间内;
步骤19:数据名称***操作结束。
具体地说,数据名称***到其所对应的BF、MA定位数组、字节数组Bitmap的一个实例如图5所示。在数据名称***过程中,使用K=2个哈希函数,BF的大小被设置为16比特,同时BF被等分为4份。与之相对应的MA定位数组被设置为4比特,字节数组Bitmap的槽个数设置为16,并平均分为2部分。三个数据名称P、Q、R被依次输入,每次数据名称输入前,MA定位数组的所有比特位被初始化为0。当数据名称P输入时,BF中的5和9比特位被哈希函数映射,也就是说BF的第2和第3部分存在哈希映射,因此MA定位数组的第2、3比特位的数值被设定为1,其他比特位的数值为0,则得到MA定位数组的数值为0110。然后根据该MA定位数组的数值计算出数据名称P在字节数组Bitmap的位置为第1部分的第6个槽。因为数据名称P为该部分的第一个元素,则在第6个槽内记录序号为1,即地址偏移量。同理,数据名称Q和R的MA定位数组的数值分别为:0011和1010,所对应的字节数组Bitmap中的位置为第1部分的第3个槽和第2部分的第2个槽,则分配的地址偏移量分别为2和1。
所述的数据检索方法包括以下步骤,
步骤21:MA定位数组初始化:数据检索前,将MA定位数组中的所有比特位初始化为0;
步骤22:输入数据名称:将数据名称输入到上述的FIB存储结构中;
步骤23:对该输入的数据名称按照最长名称前缀匹配原则进行并行操作:采用上述数据***时确定的哈希函数CityHash256、编码长度及编码次数K值,对该基于分级结构的数据名称的所有名称前缀分别进行K次哈希编码;
步骤24:判断最长匹配名称前缀是否存在于该FIB存储结构中:若最长名称前缀的K次哈希操作所映射的BF比特位数值全为1,则该数据名称的最长匹配名称前缀存在于FIB存储结构中,并继续执行步骤25,完成检索;否则,该数据名称的最长匹配名称前缀不存在于该FIB存储结构中,即表明不存在检索结果,执行步骤29;
步骤25:计算该最长匹配名称前缀的MA定位数组的数值:根据最长匹配名称前缀的K次哈希操作在BF中的映射值,计算得到MA定位数组的数值;
步骤26:计算该最长匹配名称前缀在字节数组Bitmap中的位置:根据定位数组的数值计算该最长匹配名称前缀在字节数组Bitmap中的具***置,即在字节数组Bitmap中的第几部分的第几个槽;
步骤27:读取该最长匹配名称前缀的地址偏移量:读取与该最长匹配名称前缀所对应的字节数组Bitmap中具***置所存储的地址偏移量;
步骤28:输出检索结果:根据步骤27读取的该最长匹配名称前缀的地址偏移量以及该最长匹配名称前缀所对应的Packet Store的基地址,找到该最长匹配名称前缀在片外存储单元的Packet Store的存储空间,并读取该存储空间内的数据路由转发信息,该路由转发信息即为检索结果;
步骤29:数据检索操作结束。
所述的数据更新方法步骤如下:
步骤31:MA定位数组初始化:数据更新前,将MA定位数组中的所有比特位初始化为0;
步骤32:输入待更新的数据名称:将基于分级结构的待更新数据名称输入到上述的FIB存储结构中;
步骤33:对该输入的数据名称按照最长名称前缀匹配原则进行并行操作:采用上述数据***时确定的哈希函数CityHash256、编码长度及编码次数K值,对该基于分级结构的数据名称的所有名称前缀分别进行K次哈希编码;
步骤34:读取最长匹配名称前缀的K次哈希操作在BF中的映射值;
步骤35:计算所对应的MA定位数组的数值及计算最长匹配名称前缀在字节数组Bitmap中的位置:根据最长匹配名称前缀的K次哈希操作在BF中的映射值,计算得出其所对应的MA定位数组的数值;根据上述的MA定位数组的数值计算最长匹配名称前缀在字节数组Bitmap中的第几部分的第几槽;
步骤36:读取最长匹配名称前缀的地址偏移量:读取与最长匹配名称前缀所对应的字节数组Bitmap中具***置所存储的地址偏移量;
步骤37:将最长匹配名称前缀的路由转发信息进行更新:根据步骤6读取的最长匹配名称前缀的地址偏移量以及最长匹配名称前缀所对应的Packet Store的基地址,找到该最长匹配名称前缀在片外存储单元的Packet Store的存储空间,并更新该存储空间内的数据路由转发信息;
步骤38:判断最长匹配名称前缀所对应的CBF中比特位数值是否变化:如果在CBF组中最长匹配名称前缀对应的CBF比特位的数值发生变化,即由0变为1,或由1变为0,则执行步骤39;如果在CBF组中最长匹配名称前缀对应的CBF比特位的数值没有发生变化,则无需进行更新操作,直接执行步骤10;
步骤39:同步CBF与其所对应的片内存储单元中BF:同步CBF所对应的片内存储单元BF比特位数值,即完成FIB的更新操作。
通过使用C++语言,将本发明中的FIB存储结构设计在一台配置为Intel Core i3-3220 3.30GHz、DDR3 4GB SDRAM的PC机上进行了软件测试部署。考虑到实际的转发平面需要处理百万级别的数据,来自ALEXA和DMOZ的两百万条数据名称被输入至该FIB存储结构中。实验结果表明,该FIB存储结构可以实现1.099MSPS(Million Searches Per Second,每秒查询百万次)的检索速度,并能将两百万条数据名称的片外存储消耗降低到107.885MB,同时也能够满足当前互联网络错误率低于1%的通信需求。由此表明,本发明中设计的FIB存储结构能够实现高效的数据***、检索及更新操作,极大降低存储消耗,具有良好的性能。
以上对本发明做了示例性的描述,应该说明的是,在不脱离本发明的核心的情况下,任何简单的变形、修改或者其他本领域技术人员能够不花费创造性劳动的等同替换均落入本发明的保护范围。
Claims (8)
1.一种命名数据网转发平面的FIB存储结构,其特征在于:包括一个片内存储单元和一个片外存储单元;其中,所述片内存储单元中具有W个相同的可定位型布隆滤波器,所述可定位型布隆滤波器由一个通用型布隆滤波器和一个定位数组组成,所述片外存储单元具有字节数组、计数布隆滤波器组以及多个动态存储器,所述字节数组由W个相同的字节数构成,用于存储要检索的数据名称所对应的地址偏移量,所述计数布隆滤波器组由W个相同的计数布隆滤波器构成,与其他结构配合实现数据的***和更新,所述动态存储器用于实现数据路由转发信息的存储。
2.根据权利要求1所述的一种命名数据网转发平面的FIB存储结构,其特征在于:所述的片内存储单元为高速存储器,所述的片外存储单元为低速存储器。
3.根据权利要求1所述的一种命名数据网转发平面的FIB存储结构,其特征在于:所述的通用型布隆滤波器平均分为j个大小相同的部分,同时定位数组的大小设置为j比特,通用型布隆滤波器的每一个部分依次对应定位数组的一个比特位。
4.根据权利要求1所述的一种命名数据网转发平面的FIB存储结构,其特征在于:Bit定位数组p的槽个数与定位数组的大小设置成指数关系,即字节数的槽个数为2j,并平均分为N部分;然后根据该定位数组的数值可以计算出该数据名称在Bit定位数组p中的第m(m=1,2,…,N-1,N)部分,以及该部分的具体槽位置。
5.一种如权利要求1-4任一项所述命名数据网转发平面的FIB存储结构的使用方法,其特征在于:包括在所述FIB存储结构中针对数据名称的***数据方法、数据检索的方法或更新方法;
所述的数据***方法包括以下步骤,
步骤11:定位数组初始化:数据***前,将定位数组中的所有比特位初始化为0;
步骤12:输入数据名称:将数据名称输入到所述的命名数据网转发平面FIB存储结构中;
步骤13:对该数据名称进行K次哈希编码:
步骤14:将K次哈希操作所映射的通用型布隆滤波器的比特位数值全部置为1:即如果哈希操作映射到通用型布隆滤波器的一个比特位,则该比特位置1,通过K次哈希操作后数据名称被***到通用型布隆滤波器中;
步骤15:将K次哈希操作所映射到的计数布隆滤波器的计数器加1:即如果哈希操作映射到计数布隆滤波器的一个计数器,则该计数器加1,通过K次哈希操作后数据名称被***到计数布隆滤波器中;
步骤16:计算定位数组的数值及计算该数据名称在字节数中的位置:根据该数据名称的K次哈希操作在通用型布隆滤波器中的映射值,计算得出定位数组的数值;然后,根据上述的定位数组的数值计算该数据名称在字节数中的第几部分的第几槽内;
步骤17:为该数据名称分配地址偏移量:根据上述操作得到的该数据名称***到所在部分的顺序为该数据名称标序号,该序号即为该数据名称在片外存储单元对应的动态存储器中的地址偏移量,并将该地址偏移量存储在该数据名称所在的字节数组的字节数的槽内;
步骤18:将数据路由转发信息存储于动态存储器:根据上述操作分配的该数据名称的地址偏移量和其所对应的动态存储器的基地址为该数据名称分配存储空间,并将该数据的路由转发信息存储于该存储空间内;
步骤19:数据名称***操作结束。
6.如权利要求5所述的数据使用方法,其特征在于,所述的数据检索方法包括以下步骤,
步骤21:定位数组初始化:数据检索前,将定位数组中的所有比特位初始化为0;
步骤22:输入数据名称:将数据名称输入到上述的FIB存储结构中;
步骤23:对该输入的数据名称按照最长名称前缀匹配原则进行并行操作:采用上述数据***时确定的哈希函数、编码长度及编码次数K值,对该基于分级结构的数据名称的所有名称前缀分别进行K次哈希编码;
步骤24:判断最长匹配名称前缀是否存在于该FIB存储结构中:若最长名称前缀的K次哈希操作所映射的通用型布隆滤波器比特位数值全为1,则该数据名称的最长匹配名称前缀存在于FIB存储结构中,并继续执行步骤25,完成检索;否则,该数据名称的最长匹配名称前缀不存在于该FIB存储结构中,即表明不存在检索结果,执行步骤29;
步骤25:计算该最长匹配名称前缀的定位数组的数值:根据最长匹配名称前缀的K次哈希操作在通用型布隆滤波器中的映射值,计算得到定位数组的数值;
步骤26:计算该最长匹配名称前缀在字节数组的字节数中的位置:根据定位数组的数值计算该最长匹配名称前缀在字节数组的字节数中的具***置,即在字节数组的字节数中的第几部分的第几个槽;
步骤27:读取该最长匹配名称前缀的地址偏移量:读取与该最长匹配名称前缀所对应的字节数组的字节数中具***置所存储的地址偏移量;
步骤28:输出检索结果:根据步骤27读取的该最长匹配名称前缀的地址偏移量以及该最长匹配名称前缀所对应的动态存储器的基地址,找到该最长匹配名称前缀在片外存储单元的动态存储器的存储空间,并读取该存储空间内的数据路由转发信息,该路由转发信息即为检索结果;
步骤29:数据检索操作结束。
7.如权利要求5所述的数据使用方法,其特征在于,所述的数据更新方法步骤如下:
步骤31:定位数组初始化:数据更新前,将定位数组中的所有比特位初始化为0;
步骤32:输入待更新的数据名称:将基于分级结构的待更新数据名称输入到上述的FIB存储结构中;
步骤33:对该输入的数据名称按照最长名称前缀匹配原则进行并行操作:采用上述数据***时确定的哈希函数、编码长度及编码次数K值,对该基于分级结构的数据名称的所有名称前缀分别进行K次哈希编码;
步骤34:读取最长匹配名称前缀的K次哈希操作在通用型布隆滤波器中的映射值;
步骤35:计算所对应的定位数组的数值及计算最长匹配名称前缀在字节数组的字节数中的位置:根据最长匹配名称前缀的K次哈希操作在通用型布隆滤波器中的映射值,计算得出其所对应的定位数组的数值;根据上述的定位数组的数值计算最长匹配名称前缀在字节数组的字节数中的第几部分的第几槽;
步骤36:读取最长匹配名称前缀的地址偏移量:读取与最长匹配名称前缀所对应的字节数组的字节数中具***置所存储的地址偏移量;
步骤37:将最长匹配名称前缀的路由转发信息进行更新:根据步骤6读取的最长匹配名称前缀的地址偏移量以及最长匹配名称前缀所对应的动态存储器的基地址,找到该最长匹配名称前缀在片外存储单元的动态存储器的存储空间,并更新该存储空间内的数据路由转发信息;
步骤38:判断最长匹配名称前缀所对应的计数布隆滤波器中比特位数值是否变化:如果在计数布隆滤波器组中最长匹配名称前缀对应的计数布隆滤波器比特位的数值发生变化,即由0变为1,或由1变为0,则执行步骤39;如果在计数布隆滤波器组中最长匹配名称前缀对应的计数布隆滤波器比特位的数值没有发生变化,则无需进行更新操作,直接完成更新操作;
步骤39:同步计数布隆滤波器与其所对应的片内存储单元中通用型布隆滤波器:同步计数布隆滤波器所对应的片内存储单元通用型布隆滤波器比特位数值,即完成FIB的更新操作。
8.如权利要求5所述的数据使用方法,其特征在于,所述哈希函数为CityHash256,K值根据通用型布隆滤波器的具体大小来调整并确定编码长度及编码次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810428740.3A CN110460528A (zh) | 2018-05-07 | 2018-05-07 | 命名数据网转发平面的fib存储结构及其使用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810428740.3A CN110460528A (zh) | 2018-05-07 | 2018-05-07 | 命名数据网转发平面的fib存储结构及其使用方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110460528A true CN110460528A (zh) | 2019-11-15 |
Family
ID=68472212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810428740.3A Pending CN110460528A (zh) | 2018-05-07 | 2018-05-07 | 命名数据网转发平面的fib存储结构及其使用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110460528A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220679A (zh) * | 2021-04-29 | 2021-08-06 | 天津大学 | 面向多模态网络的混合型fib存储结构及其数据处理方法 |
CN116582507A (zh) * | 2023-07-12 | 2023-08-11 | 华中科技大学 | 基于可编程交换机的网络微突发流检测方法及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103457700A (zh) * | 2013-08-20 | 2013-12-18 | 重庆邮电大学 | Ndn/ccn网络中的数据包内容名称编码压缩方法 |
EP2562978B1 (en) * | 2011-08-12 | 2014-10-08 | Alcatel Lucent | Content router of a content centric network |
CN104579974A (zh) * | 2014-12-22 | 2015-04-29 | 湖南大学 | 面向ndn中名字查找的哈希布鲁姆过滤器及数据转发方法 |
CN107908357A (zh) * | 2017-10-13 | 2018-04-13 | 天津大学 | 命名数据网转发平面pit存储结构及其数据检索方法 |
-
2018
- 2018-05-07 CN CN201810428740.3A patent/CN110460528A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2562978B1 (en) * | 2011-08-12 | 2014-10-08 | Alcatel Lucent | Content router of a content centric network |
CN103457700A (zh) * | 2013-08-20 | 2013-12-18 | 重庆邮电大学 | Ndn/ccn网络中的数据包内容名称编码压缩方法 |
CN104579974A (zh) * | 2014-12-22 | 2015-04-29 | 湖南大学 | 面向ndn中名字查找的哈希布鲁姆过滤器及数据转发方法 |
CN107908357A (zh) * | 2017-10-13 | 2018-04-13 | 天津大学 | 命名数据网转发平面pit存储结构及其数据检索方法 |
Non-Patent Citations (1)
Title |
---|
李卓: "内容中心网络转发平面数据快速检索研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220679A (zh) * | 2021-04-29 | 2021-08-06 | 天津大学 | 面向多模态网络的混合型fib存储结构及其数据处理方法 |
CN116582507A (zh) * | 2023-07-12 | 2023-08-11 | 华中科技大学 | 基于可编程交换机的网络微突发流检测方法及相关设备 |
CN116582507B (zh) * | 2023-07-12 | 2023-10-03 | 华中科技大学 | 基于可编程交换机的网络微突发流检测方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11102120B2 (en) | Storing keys with variable sizes in a multi-bank database | |
JP5529976B2 (ja) | 高速ipルックアップのためのシストリック・アレイ・アーキテクチャ | |
US6434144B1 (en) | Multi-level table lookup | |
JP4556761B2 (ja) | パケット転送装置 | |
US6691124B2 (en) | Compact data structures for pipelined message forwarding lookups | |
CN100418331C (zh) | 基于网络处理器的路由查找结果缓存方法 | |
US6985483B2 (en) | Methods and systems for fast packet forwarding | |
US7281085B1 (en) | Method and device for virtualization of multiple data sets on same associative memory | |
CN107528783B (zh) | 利用对前缀长度进行两个搜索阶段的ip路由缓存 | |
Warkhede et al. | Multiway range trees: scalable IP lookup with fast updates | |
Dai et al. | BFAST: Unified and scalable index for NDN forwarding architecture | |
CN103051543A (zh) | 一种路由前缀的处理、查找、增加及删除方法 | |
CN104780101B (zh) | 内容中心网络转发平面fib表结构及其检索方法 | |
CN110460528A (zh) | 命名数据网转发平面的fib存储结构及其使用方法 | |
CN109981464A (zh) | 一种在fpga中实现的tcam电路结构及其匹配方法 | |
Luo et al. | A trie merging approach with incremental updates for virtual routers | |
Kuo et al. | A memory-efficient TCAM coprocessor for IPv4/IPv6 routing table update | |
CN111865804B (zh) | 一种通过硬件发包机制提升路由下发效率的方法及*** | |
JP7109583B2 (ja) | データ処理方法、機器及びコンピュータ読み取り可能な記憶媒体 | |
Erdem et al. | Value-coded trie structure for high-performance IPv6 lookup | |
CN109194574B (zh) | 一种IPv6路由查找方法 | |
CN107204926B (zh) | 预处理cache的路由快速查找方法 | |
Hanna et al. | Advanced hashing schemes for packet forwarding using set associative memory architectures | |
CN111131197B (zh) | 一种过滤策略管理***及其方法 | |
US9444731B2 (en) | Methods and systems for data packet routing |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191115 |