CN111221823B - 一种基于链路管理表的数据处理方法及装置 - Google Patents
一种基于链路管理表的数据处理方法及装置 Download PDFInfo
- Publication number
- CN111221823B CN111221823B CN201911424539.9A CN201911424539A CN111221823B CN 111221823 B CN111221823 B CN 111221823B CN 201911424539 A CN201911424539 A CN 201911424539A CN 111221823 B CN111221823 B CN 111221823B
- Authority
- CN
- China
- Prior art keywords
- index
- information
- hash value
- value
- processing
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于链路管理表的数据处理方法,本发明通过采用了构建两路HASH的设计,即确定目标地址信息对应的第一哈希值和第二哈希值,使得可以通过第一哈希值和第二哈希值,确定第一哈希值对应的第一索引值,以及第一索引值对应的索引信息,从而可以对存储池中与所述索引信息对应的连接信息进行处理,这样,使得可以在两个时钟周期完成一次HASH冲突的判决。可见,本发明的方法可以加快了HASH冲突的判决完成时间,同时克服了传统设计的冲突判决时间不可控的问题,并且,由于构建两路HASH的设计对维护并发连接所需要的信息进行了索引值与连接信息的分离存储,降低了资源的使用,从而降低了并发链接管理所需要的资源,并且提高了访问速率。
Description
技术领域
本发明涉及计算机通信领域,尤其涉及一种基于链路管理表的数据处理方法及装置。
背景技术
随着通信技术的发展,高并发并且高效的TCP并发链接管理对于维持业务稳定起到了越来越重要的关键作用。并且,随着网络规模和网络性能的不断发展以及IP地址逐渐从IPv4转移到IPv6,TCP并发链接管理的负担变得越来越重。
目前,TCP并发链接管理的方式,通常采用基于通用处理器的软件设计方案,例如通用的开放定址法、链地址法以及再哈希法。其中软件设计虽然已经较为成熟,但是由于其线性结构的特性导致其在解决HASH冲突的问题上消耗的时间比较多,并且通用的开放定址法、链地址法以及再哈希法都有一定的时间复杂度,因此,在冲突率高的时候,一次查询操作的完成时间就会变得不可控。故此,亟需一种能够降低TCP链接管理需要的资源,并且提高访问速率的TCP并发链接管理方法。
发明内容
本发明提供一种基于链路管理表的数据处理方法及装置,以实现降低并发链接管理所需要的资源,并且提高访问速率。
第一方面,本发明提供了一种基于链路管理表的数据处理方法,所述方法应用于链路管理表处理系统,所述链路管理表处理系统包括地址索引表和存储池,其中,所述地址索引表包括冗余表项,所述方法包括:
获取目标地址信息,以及所述目标地址信息对应的处理指令;
确定所述目标地址信息对应的第一哈希值和第二哈希值;
根据所述第一哈希值和所述第二哈希值,确定所述冗余表项中的第一索引值以及所述第一索引值对应的索引信息;
根据所述索引信息和所述处理指令,对所述第一索引值对应的索引信息,以及所述存储池中与所述索引信息对应的连接信息进行处理。
可选的,所述目标地址信息包括源IP地址、目的IP地址、源端口、目的端口。
可选的,确定所述目标地址信息对应的第一哈希值和第二哈希值,包括:
对所述目标地址信息进行加法运算,得到所述第一哈希值;
对所述目标地址信息进行异或运算,得到所述第二哈希值。
可选的,所述索引信息包括第二索引值、内存地址和表项占用标志。
可选的,所述处理指令包括连接指令;相应地,所述根据所述第二哈希值、所述索引信息和所述处理指令,对所述第一索引值对应的索引信息,以及所述存储池中与所述索引信息对应的连接信息进行处理,包括:
若所述表项占用标志为低电平,则将所述第二哈希值作为所述索引信息的第二索引值,分配所述目标地址信息对应的内存地址,将所述表项占用标志设置为高电平;
以及,通过所述内存地址,将所述目标地址信息以及其对应的通信数据作为连接信息存入至所述存储池中。
可选的,所述处理指令包括查询修改指令;相应地,所述根据所述第二哈希值、所述索引信息和所述处理指令,对所述第一索引值对应的索引信息,以及所述存储池中与所述索引信息对应的连接信息进行处理,包括:
若所述表项占用标志为高电平,且所述第二哈希值与所述索引信息的第二索引值相同,则根据所述内存地址,确定所述存储池中与所述内存地址对应的连接信息;
对所述连接信息,进行读写操作。
可选的,所述处理指令包括删除指令;相应地,所述根据所述第二哈希值、所述索引信息和所述处理指令,对所述第一索引值对应的索引信息,以及所述存储池中与所述索引信息对应的连接信息进行处理,包括:
若所述表项占用标志为高电平,且所述第二哈希值与所述索引信息的第二索引值相同,则根据所述内存地址,确定所述存储池中与所述内存地址对应的连接信息;
将所述连接信息删除,并将所述内存地址重置,以及将所述表项占用标志设置为低电平。
第二方面,本发明提供了一种基于链路管理表的数据处理装置,所述装置应用于链路管理表处理系统,所述链路管理表处理系统包括地址索引表和存储池,其中,所述地址索引表包括冗余表项,所述装置包括:
获取单元,用于获取目标地址信息,以及所述目标地址信息对应的处理指令;
第一确定单元,用于确定所述目标地址信息对应的第一哈希值和第二哈希值;
第二确定单元,用于根据所述第一哈希值,确定所述冗余表项中的第一索引值以及所述第一索引值对应的索引信息;
处理单元,用于根据所述第二哈希值、所述索引信息和所述处理指令,对所述第一索引值对应的索引信息,以及所述存储池中与所述索引信息对应的连接信息进行处理。
可选的,所述目标地址信息包括源IP地址、目的IP地址、源端口、目的端口。
可选的,第一确定单元,具体用于:
对所述目标地址信息进行加法运算,得到所述第一哈希值;
对所述目标地址信息进行异或运算,得到所述第二哈希值。
可选的,所述索引信息包括第二索引值、内存地址和表项占用标志。
可选的,所述处理指令包括连接指令;相应地,处理单元,具体用于:
若所述表项占用标志为低电平,则将所述第二哈希值作为所述索引信息的第二索引值,分配所述目标地址信息对应的内存地址,将所述表项占用标志设置为高电平;
以及,通过所述内存地址,将所述目标地址信息以及其对应的通信数据作为连接信息存入至所述存储池中。
可选的,所述处理指令包括查询修改指令;相应地,处理单元,具体用于:
若所述表项占用标志为高电平,且所述第二哈希值与所述索引信息的第二索引值相同,则根据所述内存地址,确定所述存储池中与所述内存地址对应的连接信息;
对所述连接信息,进行读写操作。
可选的,所述处理指令包括删除指令;相应地,处理单元,具体用于:
若所述表项占用标志为高电平,且所述第二哈希值与所述索引信息的第二索引值相同,则根据所述内存地址,确定所述存储池中与所述内存地址对应的连接信息;
将所述连接信息删除,并将所述内存地址重置,以及将所述表项占用标志设置为低电平。
第三方面,本发明提供了一种可读介质,包括执行指令,当电子设备的处理器执行所述执行指令时,所述电子设备执行如第一方面中任一所述的方法。
第四方面,本发明提供了一种电子设备,包括处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器执行如第一方面中任一所述的方法。
由上述技术方案可以看出,本发明通过采用了构建两路HASH的设计,即确定目标地址信息对应的第一哈希值和第二哈希值,使得可以通过第一哈希值和第二哈希值,确定第一哈希值对应的第一索引值,以及第一索引值对应的索引信息,从而可以对存储池中与所述索引信息对应的连接信息进行处理,这样,使得可以在两个时钟周期完成一次HASH冲突的判决。可见,本发明的方法可以加快了HASH冲突的判决完成时间,同时克服了传统设计的冲突判决时间不可控的问题,并且,由于构建两路HASH的设计对维护并发连接所需要的信息进行了索引值与连接信息的分离存储,降低了资源的使用,从而降低了并发链接管理所需要的资源,并且提高了访问速率。
上述的非惯用的优选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
为了更清楚地说明本发明实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种基于链路管理表的数据处理方法的流程示意图;
图2为本发明一实施例提供的第一种链路管理表的状态示意图;
图3为本发明一实施例提供的第二种链路管理表的状态示意图;
图4为本发明一实施例提供的第三种链路管理表的状态示意图;
图5为本发明一实施例提供的第四种链路管理表的状态示意图;
图6为本发明一实施例提供的第五种链路管理表的状态示意图;
图7为本发明一实施例提供的一种基于链路管理表的数据处理装置的结构示意图;
图8为本发明一实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,TCP并发链接管理的方式,通常采用基于通用处理器的软件设计方案,例如通用的开放定址法、链地址法以及再哈希法。其中软件设计虽然已经较为成熟,但是由于其线性结构的特性导致其在解决HASH冲突的问题上消耗的时间比较多,并且通用的开放定址法、链地址法以及再哈希法都有一定的时间复杂度,因此,在冲突率高的时候,一次查询操作的完成时间就会变得不可控。故此,亟需一种能够降低TCP链接管理需要的资源,并且提高访问速率的TCP并发链接管理方法。
故此,本发明提供了一种基于链路管理表的数据处理方法,在本方法中,通过采用了构建两路HASH的设计,即确定目标地址信息对应的第一哈希值和第二哈希值,使得可以通过第一哈希值和第二哈希值,确定第一哈希值对应的第一索引值,以及第一索引值对应的索引信息,从而可以对存储池中与所述索引信息对应的连接信息进行处理,这样,使得可以在两个时钟周期完成一次HASH冲突的判决。可见,本发明的方法可以加快了HASH冲突的判决完成时间,同时克服了传统设计的冲突判决时间不可控的问题,并且,由于构建两路HASH的设计对维护并发连接所需要的信息进行了索引值与连接信息的分离存储,降低了资源的使用,从而降低了并发链接管理所需要的资源,并且提高了访问速率。
下面结合附图,详细说明本发明的各种非限制性实施方式。
参见图1,示出了本发明实施例中的一种基于链路管理表的数据处理方法。所述方法应用于链路管理表处理系统,如图2所示,所述链路管理表处理系统包括地址索引表和存储池,其中,所述地址索引表可以包括N个冗余表项,其中,N为正整数,冗余表项的数量可以根据实际需求设置。需要说明的是,链路管理表可以理解为以太网连接管理表。也就是说,本实施例中,链路管理表处理系统采用的结构为两级结构,即地址索引表和存储池。具体的,所述方法包括:在本实施例中,所述方法例如可以包括以下步骤:
S101:获取目标地址信息,以及所述目标地址信息对应的处理指令。
在本实施例中,当需要进行通信连接以进行数据通信时,可以获取并发连接信息,其中,该并发连接信息中可以包括目标地址信息,和目标地址信息对应的处理指令。其中,目标地址信息可以理解为需要进行通信连接的通信地址,例如,目标地址信息可以为四元组,即目标地址信息可以包括源IP地址、目的IP地址、源端口、目的端口,举例来说,目标地址信息可以包括目的IP地址:Dst_ip=1.1.1.1,源IP地址:Src_ip=2.2.2.2,目的端口:Dst_port=16’h0001,源端口:Src_port=16’h0002。
目标地址信息对应的处理指令可以理解为目标地址信息对应的所需要进行的通信处理方式,例如,处理指令包括连接指令时,连接指令即为通信连接处理方式,处理指令包括查询修改指令时,查询修改指令即为查询修改数据处理方式,处理指令包括删除指令时,删除指令即为删除数据处理方式。
S102:确定所述目标地址信息对应的第一哈希值和第二哈希值;
为了克服了传统设计的冲突判决时间不可控的问题,如图3所示,本发明采用了构建两路进行哈希函数计算的方式,即通过第一条支路中哈希函数HASH1计算第一哈希值,通过第二条支路中哈希函数HASH2计算第二哈希值。这样,可以在一个有效时钟内,根据两路的哈希函数计算得到的哈希值,确定需要访问的表项地址,再在另一个有效时钟内处理HASH(哈希)冲突。这样,便可以在两个时钟周期完成一次HASH冲突的判决,加快了判决完成时间同时克服了传统设计的冲突解决时间不可控的问题。
具体地,在本实施例中,获取到目标地址信息后,可以根据目标地址信息确定该目标地址信息对应的第一哈希值和第二哈希值。在一种可能的实现方式中,可以对目标地址信息进行加法运算,得到第一哈希值,例如,当目标地址信息为四元组时,可以对四元组进行8位进位加法运算取低2位(比如通过八位加法器),得到第一哈希值,举例来说,假设四元组为Dst_ip=1.1.1.1,Src_ip=2.2.2.2,Dst_port=16’h0001,Src_port=16’h0002,则该四元组经过图3中第一路HASH函数,进行8位进位加法运算取低2位得到8’b00001111,即得到第一哈希值2’b11,其中,该8位加法运算具体过程为:8’h1+8’h1+8’h1+8’h1+8’h2+8’h2+8’h2+8’h2+8’h0+8’h1+8’h0+8’h2=8’b00001111。需要说明的是,除了通过加法运算的方式得到第一哈希值以外,还可以通过其他现有的计算方式得到第一哈希值。
在一种可能的实现方式中,可以对目标地址信息进行异或运算,得到第二哈希值,例如,当目标地址信息为四元组时,可以对四元组进行异或运算,得到第二哈希值;举例来说,假设四元组为Dst_ip=1.1.1.1,Src_ip=2.2.2.2,Dst_port=16’h0001,Src_port=16’h0002,该四元组经过图3中第二路HASH函数,进行8位异或运算取低4位,可以得到8’00000011,即得到第二哈希值4’b0011,其中,该8位异或运算具体过程为:8’h1^8’h1^8’h1^8’h1^8’h2^8’h2^8’h2^8’h2^8’h0^8’h1^8’h0^8’h2=8’b00000011。需要说明的是,除了通过异或运算的方式得到第二哈希值以外,还可以通过其他现有的计算方式得到第二哈希值。
S103:根据所述第一哈希值和所述第二哈希值,确定所述冗余表项中的第一索引值以及所述第一索引值对应的索引信息。
在本实施例中,为了降低资源的使用,从而降低并发链接管理所需要的资源,本发明通过将维护并发连接所需要的信息进行了索引信息与连接信息的分离存储。如图2所示,目标地址信息对应的索引信息存储在地址索引表的冗余表项中,目标地址信息对应的连接信息存储在存储池中。
需要说明的是,地址索引表可以保存有多个冗余表项,其中,地址索引表中的冗余表项之间可以并行独立。需要说明的是,每个冗余表项均包括多个第一索引值,且各个冗余表项中的第一索引值均相同,其中,索引值为用于确定目标地址信息对应的索引信息的标识;例如,如图2所示,地址索引表可以保存有2个冗余表项,即冗余表项1和冗余表项2,且冗余表项1和冗余表项2均包括4个第一索引值KEY1,分别为2’b11、2’b10、2’b01和2’b00。需要强调的是,第一索引值与第一哈希值相对应,可以理解的是,可以根据第一哈希值确定第一索引值,例如,第一哈希值为2’b11,则该第一哈希值对应的第一索引值KEY1可以为2’b11。
而在每个冗余表项1中,各个第一索引值均分别对应一个索引信息,其中,该索引信息为可以反映存储池中所存储的连接信息的相关信息,例如,索引信息可以包括第二索引值、内存地址和表项占用标志。其中,第二索引值用于反映索引信息所位于的冗余表项,即反映索引信息位于第一索引值下的哪个冗余表项中,其中,第二索引值可以根据目标地址信息对应的第二哈希值确定,例如,第二哈希值为4’b0011,且第二索引值为0011,由于第二哈希值的低4位与第二索引值相同,则可以认为第二哈希值与第二索引值对应;内存地址用于反映索引信息对应的连接信息在存储池中的存储位置;所述表项占用标志用于反映第一索引值下的冗余表项是否已被写入信息,例如,表项占用标志为低电平时,说明第一索引值下的冗余表项未被写入信息,表项占用标志为高电平时,说明第一索引值下的冗余表项已被写入信息。在一种可能的实现方式中,如图2所示,内存地址的位宽可以为2,第一索引值的位宽可以为2,第二索引值的位宽可以为4。
需要说明的是,得到目标地址信息对应的第一哈希值和第二哈希值后,可以根据第一哈希值和第二哈希值,确定冗余表项中的第一索引值以及所述第一索引值对应的索引信息。即先根据第一哈希值确定第一索引信息,然后,根据第二哈希值确定第一索引信息对应的索引信息所在的冗余表项,从而可以获取第一索引信息对应的索引信息。例如,如图4所示,假设目标地址信息对应的第一哈希值为2’b11,第二哈希值为4’b0011,则可以确定第一哈希值对应第一索引值KEY1为2’b11,即冗余表项1(即冗余1表项)和冗余表项2(即冗余2表项)中的第一行,接着,由于冗余表项中第一索引值KEY1为2’b11对应的第二索引值KEY2中的值为0011,与第二哈希值对应,因此,可以根据所述第一哈希值2’b11,确定所述冗余表项1中的第一索引值KEY1:2’b11以及所述第一索引值KEY1:2’b11对应的索引信息为所述第一哈希值2’b11对应的第一索引值和索引信息。
需要强调的是,并发连接时可以根据第一哈希值与第二哈希值同时访问地址索引表中M个并行独立的冗余表项,例如可以访问第一索引值下的第1个冗余表项至第M个冗余表项。
S104:根据所述索引信息和所述处理指令,对所述第一索引值对应的索引信息,以及所述存储池中与所述索引信息对应的连接信息进行处理。
其中,存储池中可以存储有与索引信息对应的连接信息,该连接信息为已存储的并发连接信息(比如四元组)以及与该并发连接信息相关的内容(比如TCP窗口大小、序列号、TCP状态机定时器)。需要说明的是,存储池中连接信息的数量通常为2的K次幂,即连接信息数量N=2K、K≥1,其中,索引信息中的内存地址的位宽为P,其中P为满足2p≥N的最小正整数。
在本实施例中,得到索引信息和所述处理指令之后,可以先根据所述索引信息中的第二索引值和表项占用标志,或者,根据所述索引信息中的表项占用标志,确定所述处理指令是否可以执行;若是,则可以根据处理指令对第一索引值对应的索引信息和索引信息中内存地址对应的存储池中的连接信息进行处理,或者,根据处理指令对索引信息中内存地址对应的存储池中的连接信息进行处理。
下面将分别介绍处理指令分别为连接指令、查询修改指令、删除指令时,S104的具体实现方式:
第一种实现方式:当处理指令包括连接指令时,若索引信息中的表项占用标志为低电平,则可以将目标地址信息的第二哈希值作为该索引信息的第二索引值,并分配该目标地址信息对应的内存地址,以及将该表项占用标志由低电平设置为高电平;并且,可以通过该内存地址,将该目标地址信息以及其对应的通信数据(比如TCP窗口大小、序列号、TCP状态机定时器)作为连接信息存入至所述存储池中,比如,将目标地址信息作为连接信息中的并发连接信息,将目标地址信息对应的通信数据作为并发连接信息的相关内容,存入至所述存储池中。若地址索引表中第一索引值下的各个冗余表项的冗余信息中的表项占用标志均为高电平,则该次连接操作失败,不能执行所述连接指令。
接下来,将结合图2、4举例说明第一种实现方式。假设在未发生HASH冲突的情况下,在该链路管理表建立操作实施前,链路管理表状态如图2所示,为空表。在获取到目标地址信息为四元组(Dst_ip=1.1.1.1,Src_ip=2.2.2.2,Dst_port=16’h0001,Src_port=16’h0002),且处理指令包括连接指令时;在第一个有效时钟内,先确定该四元组对应的第一哈希值为2’b11,第二哈希值为4’b0011;在第二个有效时钟内,根据第一哈希值确定第一索引值为KEY1:2’b11,同时访问第一索引值对应的两个冗余表项,发现第一索引值对应的两个冗余表中索引信息的表项占用标志VALID均为低;则可以在第三个有效时钟内,将第二哈希值4’b0011作为第二索引值KEY2填入第一索引值下的第一个冗余表项(即冗余表项1)中,系统并为该目标地址信息分配内存地址SADDR,并将内存地址SADDR写入到选中的冗余表项1,同时将第一索引值下的冗余表项1中的表项占用标志VALID设置为高电平,并通过SADDR地址将目标地址信息作为连接信息写入存储池,从而完成连接指令对应的建链操作,完成建链操作之后的链路管理表状态如图4所示。
继续,将结合图4、5举例说明第一种实现方式。假设在发生HASH冲突的情况下,在该链路管理表建立操作实施前,链路管理表状态如图4所示。在获取到目标地址信息为四元组(Dst_ip=1.1.1.1,Src_ip=2.2.2.2,Dst_port=16’h0004,Src_port=16’h0007),且处理指令包括连接指令时;在第一个有效时钟内,先确定该四元组对应的第一哈希值为2’b11,第二哈希值为4’b1111;在第二个有效时钟内,根据第一哈希值确定第一索引值为KEY1:2’b11,同时访问第一索引值对应的两个冗余表,发现第一索引值对应的冗余表项1中索引信息的表项占用标志VALID为高,且目标地址信息的第二哈希值与该索引信息中的第二索引值不相同;则可以在第三个有效时钟内,将第二哈希值4’b1111作为第二索引值KEY2填入第一索引值下的第二个冗余表项(即冗余表项2)中,系统并为该目标地址信息分配内存地址SADDR,并将内存地址SADDR写入到选中的冗余表项2,同时将第一索引值下的冗余表项2中的表项占用标志VALID设置为高电平,并通过SADDR地址将目标地址信息作为连接信息写入存储池,从而完成连接指令对应的建链操作,完成建链操作之后的链路管理表状态如图5所示。
第二种实现方式:当处理指令包括查询修改指令时,若索引信息中的表项占用标志为高电平,且目标地址信息的第二哈希值与索引信息中的第二索引值相同,则根据所述索引信息中的内存地址,确定所述存储池中与所述内存地址对应的连接信息;并对所述连接信息,进行读写操作。若索引信息中的表项占用标志为高电平,且目标地址信息的第二哈希值与索引信息中的第二索引值不相同,则该次查询操作失败,不能执行所述查询修改指令。
将结合图5、6举例说明第二种实现方式。假设在发生HASH冲突的情况下,在该链路管理表建立操作实施前,链路管理表状态如图5所示。如图6所示,在获取到目标地址信息为四元组(Dst_ip=1.1.1.1,Src_ip=2.2.2.2,Dst_port=16’h0003,Src_port=16’h0008),且处理指令包括查询修改指令时;在第一个有效时钟内,先确定该四元组对应的第一哈希值为2’b11,第二哈希值为4’b1011;在第二个有效时钟内,根据第一哈希值确定第一索引值为KEY1:2’b11,同时访问第一索引值对应的两个冗余表,发现第一索引值对应的两个冗余表中索引信息的表项占用标志VALID均为高,且目标地址信息的第二哈希值与两个冗余表的索引信息中的第二索引值均不相同;则该次查询操作失败。
根据该例子可以看出,本发明的并发链接管理表在处理HASH冲突上,仅仅需要两个时钟就可以完成HASH冲突的处理。同时在资源消耗上,当冗余表项个数取4的时候且第二级结构也采用片内存储的时候,总资源消耗为(KEY2位宽+SADDR位宽+VALID位宽)*冗余表深度*冗余表个数+四元组位宽*支持并发链接数=(4+2+1)*4*4+96*4=496bit。与同样情况下的基于链地址法的传统链接管理表相比,减少了1040bit的片内资源,资源利用率提高了1040/1536=67.7%。并且,当所要维护的链接管理表信息长度变大时(IPv4转换到IPv6),四元组位宽从96bit增大为288bit。基于链地址法的传统链接管理表所带来的资源消耗为,四元组位宽*链表深度*链表个数=288*4*4=4608bit。而用本发明的并发链接管理表所带来的资源消耗为(KEY2位宽+SADDR位宽+VALID位宽)*冗余表深度*冗余表个数+四元组位宽*支持并发链接数=(4+2+1)*4*4+288*4=1264bit,减少了3344bit的片内资源,资源利用率提高了3344/4608=72.6%。
第三种实现方式:当处理指令包括删除指令时,若所述表项占用标志为高电平,且所述第二哈希值与所述索引信息的第二索引值相同,则根据所述内存地址,确定所述存储池中与所述内存地址对应的连接信息;并将所述连接信息删除,并将所述内存地址重置(例如重置为0),以及将所述表项占用标志设置为低电平。若所述表项占用标志为高电平,且所述第二哈希值与所述索引信息的第二索引值不相同,则该次删除操作失败,不能执行所述删除指令。
将结合图5举例说明第三种实现方式。假设在该链路管理表建立操作实施前,链路管理表状态如图5所示。在获取到目标地址信息为四元组(Dst_ip=1.1.1.1,Src_ip=2.2.2.2,Dst_port=16’h0004,Src_port=16’h0007),且处理指令包括删除指令时;在第一个有效时钟内,先确定该四元组对应的第一哈希值为2’b11,第二哈希值为4’b1111;在第二个有效时钟内,根据第一哈希值确定第一索引值为KEY1:2’b11,同时访问第一索引值对应的两个冗余表,发现第一索引值对应的两个冗余表中索引信息的表项占用标志VALID均为高,且目标地址信息的第二哈希值与第一索引值下冗余表项2的索引信息中的第二索引值相同;则根据所述索引信息中的内存地址,确定所述存储池中与所述内存地址对应的连接信息;并将所述连接信息删除,并将所述内存地址重置为0,以及将所述表项占用标志VALID设置为低电平。
由上述技术方案可以看出,本发明通过采用了构建两路HASH的设计,即确定目标地址信息对应的第一哈希值和第二哈希值,使得可以通过第一哈希值和第二哈希值,确定第一哈希值对应的第一索引值,以及第一索引值对应的索引信息,从而可以对存储池中与所述索引信息对应的连接信息进行处理,这样,使得可以在两个时钟周期完成一次HASH冲突的判决。可见,本发明的方法可以加快了HASH冲突的判决完成时间,同时克服了传统设计的冲突判决时间不可控的问题,并且,由于构建两路HASH的设计对维护并发连接所需要的信息进行了索引值与连接信息的分离存储,降低了资源的使用,从而降低了并发链接管理所需要的资源,并且提高了访问速率。
如图7所示,为本发明所述基于链路管理表的数据处理装置的一个具体实施例。本实施例所述装置,即用于执行上述实施例所述方法的实体装置。其技术方案本质上与上述实施例一致,上述实施例中的相应描述同样适用于本实施例中。本发明提供了一种基于链路管理表的数据处理装置,所述装置应用于链路管理表处理系统,所述链路管理表处理系统包括地址索引表和存储池,其中,所述地址索引表包括冗余表项,所述装置包括:
获取单元701,用于获取目标地址信息,以及所述目标地址信息对应的处理指令;
第一确定单元702,用于确定所述目标地址信息对应的第一哈希值和第二哈希值;
第二确定单元703,用于根据所述第一哈希值,确定所述冗余表项中的第一索引值以及所述第一索引值对应的索引信息;
处理单元704,用于根据所述第二哈希值、所述索引信息和所述处理指令,对所述第一索引值对应的索引信息,以及所述存储池中与所述索引信息对应的连接信息进行处理。
可选的,所述目标地址信息包括源IP地址、目的IP地址、源端口、目的端口。
可选的,第一确定单元702,具体用于:
对所述目标地址信息进行加法运算,得到所述第一哈希值;
对所述目标地址信息进行异或运算,得到所述第二哈希值。
可选的,所述索引信息包括第二索引值、内存地址和表项占用标志。
可选的,所述处理指令包括连接指令;相应地,处理单元804,具体用于:
若所述表项占用标志为低电平,则将所述第二哈希值作为所述索引信息的第二索引值,分配所述目标地址信息对应的内存地址,将所述表项占用标志设置为高电平;
以及,通过所述内存地址,将所述目标地址信息以及其对应的通信数据作为连接信息存入至所述存储池中。
可选的,所述处理指令包括查询修改指令;相应地,处理单元804,具体用于:
若所述表项占用标志为高电平,且所述第二哈希值与所述索引信息的第二索引值相同,则根据所述内存地址,确定所述存储池中与所述内存地址对应的连接信息;
对所述连接信息,进行读写操作。
可选的,所述处理指令包括删除指令;相应地,处理单元804,具体用于:
若所述表项占用标志为高电平,且所述第二哈希值与所述索引信息的第二索引值相同,则根据所述内存地址,确定所述存储池中与所述内存地址对应的连接信息;
将所述连接信息删除,并将所述内存地址重置,以及将所述表项占用标志设置为低电平。
图8是本发明实施例提供的一种电子设备的结构示意图。在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放执行指令。具体地,执行指令即可被执行的计算机程序。存储器可以包括内存和非易失性存储器,并向处理器提供执行指令和数据。
在一种可能实现的方式中,处理器从非易失性存储器中读取对应的执行指令到内存中然后运行,也可从其它设备上获取相应的执行指令,以在逻辑层面上形成基于链路管理表的数据处理装置。处理器执行存储器所存放的执行指令,以通过执行的执行指令实现本发明任一实施例中提供的基于链路管理表的数据处理方法。
上述如本发明图1所示实施例提供的基于链路管理表的数据处理装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
本发明实施例还提出了一种可读介质,该可读存储介质存储有执行指令,存储的执行指令被电子设备的处理器执行时,能够使该电子设备执行本发明任一实施例中提供的基于链路管理表的数据处理方法,并具体用于执行上述基于链路管理表的数据处理所述的方法。
前述各个实施例中所述的电子设备可以为计算机。
本领域内的技术人员应明白,本发明的实施例可提供为方法或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例,或软件和硬件相结合的形式。
本发明中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (10)
1.一种基于链路管理表的数据处理方法,其特征在于,所述方法应用于链路管理表处理系统,所述链路管理表处理系统包括地址索引表和存储池,其中,所述地址索引表包括冗余表项,所述方法包括:
获取目标地址信息,以及所述目标地址信息对应的处理指令;
确定所述目标地址信息对应的第一哈希值和第二哈希值;
根据所述第一哈希值和所述第二哈希值,确定所述冗余表项中的第一索引值以及所述第一索引值对应的索引信息;
根据所述索引信息和所述处理指令,对所述第一索引值对应的索引信息,以及所述存储池中与所述索引信息对应的连接信息进行处理;
其中,所述冗余表项包括多个第一索引值,且各个所述冗余表项中的第一索引值均相同,所述索引值为用于确定目标地址信息对应的索引信息的标识;所述根据所述第一哈希值和所述第二哈希值,确定所述冗余表项中的第一索引值以及所述第一索引值对应的索引信息,包括:
根据所述第一哈希值确定第一索引值;
根据所述第二哈希值确定所述第一索引值对应的索引信息所在的冗余表项,从而获取所述第一索引值对应的索引信息。
2.根据权利要求1所述的方法,其特征在于,所述目标地址信息包括源IP地址、目的IP地址、源端口、目的端口。
3.根据权利要求2所述的方法,其特征在于,确定所述目标地址信息对应的第一哈希值和第二哈希值,包括:
对所述目标地址信息进行加法运算,得到所述第一哈希值;
对所述目标地址信息进行异或运算,得到所述第二哈希值。
4.根据权利要求1所述的方法,其特征在于,所述索引信息包括第二索引值、内存地址和表项占用标志。
5.根据权利要求4所述的方法,其特征在于,所述处理指令包括连接指令;相应地,所述根据所述第二哈希值、所述索引信息和所述处理指令,对所述第一索引值对应的索引信息,以及所述存储池中与所述索引信息对应的连接信息进行处理,包括:
若所述表项占用标志为低电平,则将所述第二哈希值作为所述索引信息的第二索引值,分配所述目标地址信息对应的内存地址,将所述表项占用标志设置为高电平;
以及,通过所述内存地址,将所述目标地址信息以及其对应的通信数据作为连接信息存入至所述存储池中。
6.根据权利要求4所述的方法,其特征在于,所述处理指令包括查询修改指令;相应地,所述根据所述第二哈希值、所述索引信息和所述处理指令,对所述第一索引值对应的索引信息,以及所述存储池中与所述索引信息对应的连接信息进行处理,包括:
若所述表项占用标志为高电平,且所述第二哈希值与所述索引信息的第二索引值相同,则根据所述内存地址,确定所述存储池中与所述内存地址对应的连接信息;
对所述连接信息,进行读写操作。
7.根据权利要求4所述的方法,其特征在于,所述处理指令包括删除指令;相应地,所述根据所述第二哈希值、所述索引信息和所述处理指令,对所述第一索引值对应的索引信息,以及所述存储池中与所述索引信息对应的连接信息进行处理,包括:
若所述表项占用标志为高电平,且所述第二哈希值与所述索引信息的第二索引值相同,则根据所述内存地址,确定所述存储池中与所述内存地址对应的连接信息;
将所述连接信息删除,并将所述内存地址重置,以及将所述表项占用标志设置为低电平。
8.一种基于链路管理表的数据处理装置,其特征在于,所述装置应用于链路管理表处理系统,所述链路管理表处理系统包括地址索引表和存储池,其中,所述地址索引表包括冗余表项,所述装置包括:
获取单元,用于获取目标地址信息,以及所述目标地址信息对应的处理指令;
第一确定单元,用于确定所述目标地址信息对应的第一哈希值和第二哈希值;
第二确定单元,用于根据所述第一哈希值和所述第二哈希值,确定所述冗余表项中的第一索引值以及所述第一索引值对应的索引信息;
处理单元,用于根据所述第二哈希值、所述索引信息和所述处理指令,对所述第一索引值对应的索引信息,以及所述存储池中与所述索引信息对应的连接信息进行处理;
其中,所述冗余表项包括多个第一索引值,且各个所述冗余表项中的第一索引值均相同,所述索引值为用于确定目标地址信息对应的索引信息的标识;所述第二确定单元,具体用于:
根据所述第一哈希值确定第一索引值;
根据所述第二哈希值确定所述第一索引值对应的索引信息所在的冗余表项,从而获取所述第一索引值对应的索引信息。
9.一种可读介质,包括执行指令,当电子设备的处理器执行所述执行指令时,所述电子设备执行如权利要求1-7中任一所述的方法。
10.一种电子设备,包括处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器执行如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911424539.9A CN111221823B (zh) | 2019-12-31 | 2019-12-31 | 一种基于链路管理表的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911424539.9A CN111221823B (zh) | 2019-12-31 | 2019-12-31 | 一种基于链路管理表的数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111221823A CN111221823A (zh) | 2020-06-02 |
CN111221823B true CN111221823B (zh) | 2023-05-23 |
Family
ID=70829277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911424539.9A Active CN111221823B (zh) | 2019-12-31 | 2019-12-31 | 一种基于链路管理表的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111221823B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113596098B (zh) * | 2021-07-01 | 2023-04-25 | 杭州迪普科技股份有限公司 | 会话检索方法、装置、设备及计算机可读存储介质 |
CN114584482B (zh) * | 2022-02-14 | 2023-09-08 | 阿里巴巴(中国)有限公司 | 基于内存存储检测数据的方法、装置以及网卡 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147798A (zh) * | 2010-02-10 | 2011-08-10 | 华为技术有限公司 | 处理哈希查找冲突问题的方法和装置 |
CN103368852A (zh) * | 2013-06-04 | 2013-10-23 | 华为技术有限公司 | 用于处理哈希冲突的方法和系统 |
WO2018099107A1 (zh) * | 2016-12-02 | 2018-06-07 | 深圳市中兴微电子技术有限公司 | 一种哈希表管理的方法和装置、计算机存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7979671B2 (en) * | 2008-07-28 | 2011-07-12 | CacheIQ, Inc. | Dual hash indexing system and methodology |
-
2019
- 2019-12-31 CN CN201911424539.9A patent/CN111221823B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147798A (zh) * | 2010-02-10 | 2011-08-10 | 华为技术有限公司 | 处理哈希查找冲突问题的方法和装置 |
CN103368852A (zh) * | 2013-06-04 | 2013-10-23 | 华为技术有限公司 | 用于处理哈希冲突的方法和系统 |
WO2018099107A1 (zh) * | 2016-12-02 | 2018-06-07 | 深圳市中兴微电子技术有限公司 | 一种哈希表管理的方法和装置、计算机存储介质 |
Non-Patent Citations (1)
Title |
---|
张伟 ; 许海洋 ; 周百顺 ; .多进程共享的高效哈希表.计算机工程与设计.2017,(05),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111221823A (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109145158B (zh) | 一种布隆过滤器中数据的处理方法以及布隆过滤器 | |
EP2472412B1 (en) | Explicitly regioned memory organization in a network element | |
WO2018027839A1 (zh) | 一种页表缓存tlb中表项的访问方法,及处理芯片 | |
CN111221823B (zh) | 一种基于链路管理表的数据处理方法及装置 | |
US8397219B2 (en) | Method and apparatus for tracking enregistered memory locations | |
US20230289295A1 (en) | Virtual Memory Management Method and Apparatus Supporting Physical Addresses Larger Than Virtual Addresses | |
EP2979189A1 (en) | Storing data from cache lines to main memory based on memory addresses | |
CN112328354A (zh) | 虚拟机热迁移方法、装置、电子设备及计算机存储介质 | |
EP3961461B1 (en) | Method and apparatus for obtaining number for transaction-accessed variable in blockchain in parallel | |
US11803447B2 (en) | Transaction processing method, apparatus, and electronic device for blockchain | |
CN112506823A (zh) | 一种fpga数据读写方法、装置、设备及可读存储介质 | |
US9798674B2 (en) | N-ary tree for mapping a virtual memory space | |
JP2007048296A (ja) | 複数のアドレス・キャッシュ・エントリーを無効にする方法、装置およびシステム | |
US20160132559A1 (en) | Tcam-based table query processing method and apparatus | |
CN110781107B (zh) | 基于dram接口的低延迟融合io控制方法和装置 | |
CN108664518B (zh) | 一种实现查表处理的方法及装置 | |
CN107451070B (zh) | 一种数据的处理方法和服务器 | |
US11256630B2 (en) | Cache address mapping method and related device | |
CN113986775B (zh) | 一种risc-v cpu验证中页表项生成方法、系统及装置 | |
CN115269199A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN109299021A (zh) | 页迁移方法、装置和中央处理器 | |
CN107977282B (zh) | 一种SPI-Nand读取数据页的方法及装置 | |
US20120023388A1 (en) | Parity Look-Ahead Scheme for Tag Cache Memory | |
CN109376097B (zh) | 解决多微引擎的哈希查找学习及地址老化冲突的方法 | |
CN110674170A (zh) | 基于链表逆序读取的数据缓存方法、装置、设备及介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230628 Address after: 200444 zone B, floor 5, building 1, No. 668, SHANGDA Road, Baoshan District, Shanghai Patentee after: Shanghai Tianyu Optical Communication Technology Co.,Ltd. Address before: Room 13, No. 359 Guangyan Road, Jing'an District, Shanghai 200040 Patentee before: SHANGHAI KENGCHENG INTELLIGENT TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |