掌桥专利:专业的专利平台
掌桥专利
首页

数据流表生成方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 19:52:40



技术领域

本发明涉及计算机技术领域,具体涉及数据流表生成方法、装置、电子设备及存储介质。

背景技术

OVS是OpenFlow协议架构下的虚拟交换机,是整个OpenFlow网络的核心部件,主要负责数据面的处理和转发。OVS对数据流的处理和转发是基于流表中存储的数据流规则。在OVS中,数据流规则由匹配域、处理指令、优先级等字段组成。

随着网络需求的增多,网络中各层协议也变得愈发复杂,数据流规则中包括的内容越来越多。如果将各个数据流规则中的所有内容都放到同一张数据流表中,占用的存储资源会非常的庞大。

因此,如何有效的降低数据流表对智能网卡等硬件设备上存储资源的消耗,是目前针对百万、千万级流表规则应用场景下需要解决的问题。

发明内容

有鉴于此,本发明提供了一种数据流表生成方法、装置、电子设备及存储介质,以解决如何有效的降低数据流表对智能网卡等硬件设备上存储资源的消耗的问题。

第一方面,本发明提供了一种数据流表生成方法,方法包括:

获取目标场景中的各个目标数据流对应的初始数据流表;初始数据流表中包括各目标数据流对应的数据流规则;数据流规则中至少包括目标数据流对应的匹配域、处理指令、优先级;匹配域中包括至少一个匹配字段;

对各数据流规则进行识别,确定数据流规则中匹配字段和其他字段;

对各数据流规则中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表;

获取各数据流规则对应的标识信息,根据标识信息,将各数据流规则中的其他字段与分级数据流表进行对应存储,生成目标数据流表;

计算目标数据流表中各个数据流规则对应的目标哈希值;目标哈希值满足预设哈希值冲突的条件;

将目标哈希值和目标数据流表进行对应存储。

本申请实施例提供的数据流表生成方法,获取目标场景中的各个目标数据流对应的初始数据流表,对各数据流规则进行识别,确定数据流规则中匹配字段和其他字段,保证了确定的数据流规则中匹配字段和其他字段的准确性。然后,由于数据流规则中的匹配字段对应的内容多且复杂,对各数据流规则中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表,保证了生成的分级数据流表中各个数据流规则中的匹配字段占用资源较少。此外,由于数据流规则中的其他字段的内容相对较少,占用资源不多,因此,仅对各数据流规则中的匹配字段进行分级存储,便于操作,且可以保证分级数据流表简单清晰。获取各数据流规则对应的标识信息,根据标识信息,将各数据流规则中的其他字段与分级数据流表进行对应存储,生成目标数据流表,保证了生成的目标数据流表占用资源较少,且实现了将目标数据流对应的数据流规则中的内容进行对应存储,避免了目标数据流对应的数据流规则混乱,对目标数据流操作失误。计算目标数据流表中各个数据流规则对应的目标哈希值;目标哈希值满足预设哈希值冲突的条件,保证了计算得到的各个数据流规则对应的目标哈希值的准确且满足预设哈希值冲突的条件,因此可以避免目标哈希值冲突的问题,不需要占用资源解决哈希值冲突的问题。将目标哈希值和目标数据流表进行对应存储,保证了目标哈希值和目标数据流表中的各个数据流规则的一一对应性。

在一种可选的实施方式中,获取目标场景中的各个目标数据流对应的初始数据流表,包括:

获取目标场景中各个目标数据流对应的数据处理信息;数据处理信息中至少包括目标数据流对应的匹配域、处理指令、优先级;匹配域中包括至少一个匹配字段;

根据各目标数据流对应的数据处理信息,生成各目标数据流对应的数据流规则;

根据各数据流规则,生成初始数据流表。

本申请实施例提供的数据流表生成方法,获取目标场景中各个目标数据流对应的数据处理信息,然后,根据各目标数据流对应的数据处理信息,生成各目标数据流对应的数据流规则,保证了生成的数据流规则的准确性。根据各数据流规则,生成初始数据流表,保证了生成的初始数据流表的准确性。

在一种可选的实施方式中,根据各数据流规则,生成初始数据流表,包括:

根据数据处理信息,对各数据流规则进行排序;

根据排序后的各数据流规则,生成初始数据流表。

本申请实施例提供的数据流表生成方法,根据数据处理信息,对各数据流规则进行排序;根据排序后的各数据流规则,生成初始数据流表,保证了生成的初始数据流表的准确性,且便于根据初始数据流表对目标数据流进行操作。

在一种可选的实施方式中,对各数据流规则中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表,包括:

根据各数据流规则对应的匹配字段,对数据流规则进行分层存储,并将每层作为一个一级子流表;

根据各一级子流表中各个匹配字段占用资源,对各一级子流表中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表。

本申请实施例提供的数据流表生成方法,根据各数据流规则对应的匹配字段,对数据流规则进行分层存储,并将每层作为一个一级子流表,保证了生成的一级子流表的准确性,实现了对数据流规则对应的匹配字段进行初步分层存储。根据各一级子流表中各个匹配字段占用资源,对各一级子流表中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表,保证了生成的各目标数据流对应的分级数据流表的准确性,且可以保证生成的分级数据流表占用的资源较少。

在一种可选的实施方式中,根据各数据流规则对应的匹配字段,对数据流规则进行分层存储,并将每层作为一个一级子流表,包括:

根据各数据流规则中的各匹配字段的属性信息,对各匹配字段进行分层存储,并将每层作为一个一级子流表。

本申请实施例提供的数据流表生成方法,根据各数据流规则中的各匹配字段的属性信息,对各匹配字段进行分层存储,并将每层作为一个一级子流表,保证了生成的一级子流表的准确性。

在一种可选的实施方式中,根据各一级子流表中各个匹配字段占用资源,对各一级子流表中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表,包括:

针对各一级子流表,获取一级子流表中各匹配字段占用资源;

根据各匹配字段占用资源,计算各匹配字段单独存储节约的第一存储资源;

根据各第一存储资源,对各一级子流表中的各匹配字段进行分级存储,生成各目标数据流对应的分级数据流表。

本申请实施例提供的数据流表生成方法,针对各一级子流表,获取一级子流表中各匹配字段占用资源;根据各匹配字段占用资源,计算各匹配字段单独存储节约的第一存储资源,保证了计算得到的各匹配字段单独存储节约的第一存储资源的准确性。根据各第一存储资源,对各一级子流表中的各匹配字段进行分级存储,生成各目标数据流对应的分级数据流表,保证了生成的各目标数据流对应的分级数据流表的准确性,且可以保证生成的分级数据流表占用的资源较少。

在一种可选的实施方式中,根据各第一存储资源,对各一级子流表中的各匹配字段进行分级存储,生成各目标数据流对应的分级数据流表,包括:

根据各第一存储资源,依次取出第一存储资源节约最多的匹配字段;

将各第一存储资源进行相加,计算各匹配字段单独存储总共节约的第一总存储资源;

根据第一总存储资源,对各一级子流表中的各匹配字段进行分级存储,生成分级数据流表。

本申请实施例提供的数据流表生成方法,根据各第一存储资源,依次取出第一存储资源节约最多的匹配字段;将各第一存储资源进行相加,计算各匹配字段单独存储总共节约的第一总存储资源,保证了计算得到的第一总存储资源的准确性。根据第一总存储资源,对各一级子流表中的各匹配字段进行分级存储,生成分级数据流表,保证了生成的各目标数据流对应的分级数据流表的准确性,且可以保证生成的分级数据流表占用的资源较少。

在一种可选的实施方式中,根据第一总存储资源,对各一级子流表中的各匹配字段进行分级存储,生成分级数据流表,包括:

根据各匹配字段占用资源,计算各匹配字段组合存储总共节约的第二总存储资源;

将第一总存储资源和第二总存储资源进行对比;

根据对比结果,对各一级子流表中的各匹配字段进行分级存储,生成分级数据流表。

本申请实施例提供的数据流表生成方法,根据各匹配字段占用资源,计算各匹配字段组合存储总共节约的第二总存储资源,保证了计算得到的第二总存储资源的准确性。将第一总存储资源和第二总存储资源进行对比;根据对比结果,对各一级子流表中的各匹配字段进行分级存储,生成分级数据流表。保证了生成的各目标数据流对应的分级数据流表的准确性,且可以保证生成的分级数据流表占用的资源较少。

在一种可选的实施方式中,根据对比结果,对各一级子流表中的各匹配字段进行分级存储,生成分级数据流表,包括:

当第一总存储资源大于第二总存储资源时,对各一级子流表中的各匹配字段进行单独存储,生成分级数据流表。

本申请实施例提供的数据流表生成方法,当第一总存储资源大于第二总存储资源时,对各一级子流表中的各匹配字段进行单独存储,生成分级数据流表。保证了生成的各目标数据流对应的分级数据流表的准确性,且可以保证生成的分级数据流表占用的资源较少。

在一种可选的实施方式中,根据对比结果,对各一级子流表中的各匹配字段进行分级存储,生成分级数据流表,包括:

当第一总存储资源小于第二总存储资源时,对各一级子流表中的各匹配字段进行组合存储,生成分级数据流表。

本申请实施例提供的数据流表生成方法,当第一总存储资源小于第二总存储资源时,对各一级子流表中的各匹配字段进行组合存储,生成分级数据流表。保证了生成的各目标数据流对应的分级数据流表的准确性,且可以保证生成的分级数据流表占用的资源较少。

在一种可选的实施方式中,根据对比结果,对各一级子流表中的各匹配字段进行分级存储,生成分级数据流表,包括:

当第一总存储资源等于第二总存储资源时,对各一级子流表中的各匹配字段进行组合存储或单独存储,生成分级数据流表。

本申请实施例提供的数据流表生成方法,当第一总存储资源等于第二总存储资源时,对各一级子流表中的各匹配字段进行组合存储或单独存储,生成分级数据流表。保证了生成的各目标数据流对应的分级数据流表的准确性,且可以保证生成的分级数据流表占用的资源较少。

在一种可选的实施方式中,根据各匹配字段占用资源,计算各匹配字段单独存储节约的第一存储资源,包括:

针对各匹配字段,获取匹配字段对应的字段种类以及数据流规则的规则数量;

利用匹配字段占用资源乘以规则数量与字段种类之间的差值,计算得到匹配字段单独存储节约的第一节约资源;

获取存储数据流规则中除匹配字段之外的其他字段对应的其他占用资源;

利用第一节约资源减去其他占用资源,得到第一存储资源。

本申请实施例提供的数据流表生成方法,针对各匹配字段,获取匹配字段对应的字段种类以及数据流规则的规则数量,利用匹配字段占用资源乘以规则数量与字段种类之间的差值,计算得到匹配字段单独存储节约的第一节约资源,保证了计算得到第一节约资源的准确性。获取存储数据流规则中除匹配字段之外的其他字段对应的其他占用资源;利用第一节约资源减去其他占用资源,得到第一存储资源,保证了得到第一存储资源的准确性。

在一种可选的实施方式中,根据各匹配字段占用资源,计算各匹配字段组合存储总共节约的第二总存储资源,包括:

将各匹配字段占用资源进行相加,得到各匹配字段对应的组合占用资源;

获取各匹配字段组合存储对应的组合数量;

利用组合占用资源乘以数据流规则的规则数量与组合数量之间的差值,计算得到各匹配字段组合存储节约的第二节约存储资源;

获取存储数据流规则中除匹配字段之外的其他字段对应的其他占用资源;

利用第二节约存储资源减去其他占用资源,得到第二总存储资源。

本申请实施例提供的数据流表生成方法,将各匹配字段占用资源进行相加,得到各匹配字段对应的组合占用资源,保证了得到的匹配字段对应的组合占用资源的准确性。获取各匹配字段组合存储对应的组合数量;利用组合占用资源乘以数据流规则的规则数量与组合数量之间的差值,计算得到各匹配字段组合存储节约的第二节约存储资源,保证了计算得到的第二节约存储资源的准确性。获取存储数据流规则中除匹配字段之外的其他字段对应的其他占用资源;利用第二节约存储资源减去其他占用资源,得到第二总存储资源,保证了计算得到的第二总存储资源的准确性。

在一种可选的实施方式中,计算目标数据流表中各个数据流规则对应的目标哈希值,包括:

获取各数据流规则对应的目标哈希算法;

基于目标哈希算法,计算各数据流规则对应的目标哈希值。

本申请实施例提供的数据流表生成方法,获取各数据流规则对应的目标哈希算法;基于目标哈希算法,计算各数据流规则对应的目标哈希值,保证了计算得到的各数据流规则对应的目标哈希值的准确性。

在一种可选的实施方式中,获取各数据流规则对应的目标哈希算法,包括:

对哈希算法的参数进行初始化,生成多种初始哈希算法;

利用各初始哈希算法,计算各数据流规则对应的初始哈希值;

针对各初始哈希算法,利用初始哈希算法对应的各初始哈希值,确定初始哈希值冲突数量,并计算各初始哈希值对应的初始哈希值分布方差;

根据各初始哈希算法对应的初始哈希值冲突数量和初始哈希值分布方差,确定目标哈希算法。

本申请实施例提供的数据流表生成方法,对哈希算法的参数进行初始化,生成多种初始哈希算法;利用各初始哈希算法,计算各数据流规则对应的初始哈希值,保证了计算得到的数据流规则对应的初始哈希值的准确性。针对各初始哈希算法,利用初始哈希算法对应的各初始哈希值,确定初始哈希值冲突数量,并计算各初始哈希值对应的初始哈希值分布方差,保证了计算得到的初始哈希值冲突数量以及初始哈希值分布方差的准确性。根据各初始哈希算法对应的初始哈希值冲突数量和初始哈希值分布方差,确定目标哈希算法,保证了确定的目标哈希算法的准确性,进而可以保证目标哈希值满足预设哈希值冲突的条件,因此可以避免目标哈希值冲突的问题,不需要占用资源解决哈希值冲突的问题。

在一种可选的实施方式中,根据各初始哈希算法对应的初始哈希值冲突数量和初始哈希值分布方差,确定目标哈希算法,包括:

将各初始哈希算法对应的初始哈希值冲突数量与预设冲突数量进行对比,并将各初始哈希算法对应的初始哈希值分布方差与预设方差进行对比;

当不存在初始哈希值冲突数量等于或者小于预设冲突数量,且初始哈希值分布方差等于或者小于预设方差时,更新各初始哈希算法,得到多种候选哈希算法;

再次利用各候选哈希算法,计算各数据流规则对应的候选哈希值;

利用各候选哈希值,确定候选哈希值冲突数量,并计算各候选哈希值对应的候选哈希值分布方差;

将候选哈希值冲突数量与预设冲突数量进行对比,并将候选哈希值分布方差与预设方差进行对比;

如此循环,直至候选哈希值冲突数量等于或者小于预设冲突数量,且候选哈希值分布方差等于或者小于预设方差,确定目标哈希算法。

本申请实施例提供的数据流表生成方法,将各初始哈希算法对应的初始哈希值冲突数量与预设冲突数量进行对比,并将各初始哈希算法对应的初始哈希值分布方差与预设方差进行对比;当不存在初始哈希值冲突数量等于或者小于预设冲突数量,且初始哈希值分布方差等于或者小于预设方差时,更新各初始哈希算法,得到多种候选哈希算法,实现了初始哈希算法的更新,使得更新后的候选哈希算法优于初始哈希算法。再次利用各候选哈希算法,计算各数据流规则对应的候选哈希值,保证了计算得到的数据流规则对应的候选哈希值的准确性,且候选哈希值优于初始哈希值。利用各候选哈希值,确定候选哈希值冲突数量,并计算各候选哈希值对应的候选哈希值分布方差,将候选哈希值冲突数量与预设冲突数量进行对比,并将候选哈希值分布方差与预设方差进行对比;如此循环,直至候选哈希值冲突数量等于或者小于预设冲突数量,且候选哈希值分布方差等于或者小于预设方差,确定目标哈希算法。保证了确定的目标哈希算法的准确性,进而可以保证目标哈希值满足预设哈希值冲突的条件,因此可以避免目标哈希值冲突的问题,不需要占用资源解决哈希值冲突的问题。

在一种可选的实施方式中,针对各初始哈希算法,利用初始哈希算法对应的各初始哈希值,确定初始哈希值冲突数量,并计算各初始哈希值对应的初始哈希值分布方差,包括:

根据各初始哈希值,确定各初始哈希值对应的初始哈希值冲突数量,

根据初始哈希值冲突数量,确定存在各初始哈希值冲突数量的数据流规则的数量;

根据初始哈希值冲突数量,确定初始哈希值冲突数量的种类;

根据数据流规则的数量、初始哈希值冲突数量、存在各初始哈希值冲突数量的数据流规则的数量以及初始哈希值冲突数量对应的种类,计算各初始哈希值对应的初始哈希值分布方差。

本申请实施例提供的数据流表生成方法,根据各初始哈希值,确定各初始哈希值对应的初始哈希值冲突数量,保证了确定的各初始哈希值对应的初始哈希值冲突数量的准确性。根据初始哈希值冲突数量,确定存在各初始哈希值冲突数量的数据流规则的数量,保证了确定的存在各初始哈希值冲突数量的数据流规则的数量的准确性。根据初始哈希值冲突数量,确定初始哈希值冲突数量的种类,保证了确定的初始哈希值冲突数量对应的种类的准确性。根据数据流规则的数量、初始哈希值冲突数量、存在各初始哈希值冲突数量的数据流规则的数量以及初始哈希值冲突数量对应的种类,计算各初始哈希值对应的初始哈希值分布方差,保证了计算得到的初始哈希值对应的初始哈希值分布方差的准确性,进而可以保证根据初始哈希值分布方差对初始哈希值进行评估得到的评估结果的准确性。

第二方面,本发明提供了一种数据流表生成装置,装置包括:

第一获取模块,用于获取目标场景中的各个目标数据流对应的初始数据流表;初始数据流表中包括各目标数据流对应的数据流规则;数据流规则中至少包括目标数据流对应的匹配域、处理指令、优先级;匹配域中包括至少一个匹配字段;

识别模块,用于对各数据流规则进行识别,确定数据流规则中匹配字段和其他字段;

分级模块,对各数据流规则中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表;

第二获取模块,用于获取各数据流规则对应的标识信息,根据标识信息,将各数据流规则中的其他字段与分级数据流表进行对应存储,生成目标数据流表;

计算模块,用于计算目标数据流表中各个数据流规则对应的目标哈希值;目标哈希值满足预设哈希值冲突的条件;

存储模块,用于将目标哈希值和目标数据流表进行对应存储。

本申请实施例提供的数据流表生成装置,获取目标场景中的各个目标数据流对应的初始数据流表,对各数据流规则进行识别,确定数据流规则中匹配字段和其他字段,保证了确定的数据流规则中匹配字段和其他字段的准确性。然后,由于数据流规则中的匹配字段对应的内容多且复杂,对各数据流规则中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表,保证了生成的分级数据流表中各个数据流规则中的匹配字段占用资源较少。此外,由于数据流规则中的其他字段的内容相对较少,占用资源不多,因此,仅对各数据流规则中的匹配字段进行分级存储,便于操作,且可以保证分级数据流表简单清晰。获取各数据流规则对应的标识信息,根据标识信息,将各数据流规则中的其他字段与分级数据流表进行对应存储,生成目标数据流表,保证了生成的目标数据流表占用资源较少,且实现了将目标数据流对应的数据流规则中的内容进行对应存储,避免了目标数据流对应的数据流规则混乱,对目标数据流操作失误。计算目标数据流表中各个数据流规则对应的目标哈希值;目标哈希值满足预设哈希值冲突的条件,保证了计算得到的各个数据流规则对应的目标哈希值的准确且满足预设哈希值冲突的条件,因此可以避免目标哈希值冲突的问题,不需要占用资源解决哈希值冲突的问题。将目标哈希值和目标数据流表进行对应存储,保证了目标哈希值和目标数据流表中的各个数据流规则的一一对应性。

第三方面,本发明提供了一种电子设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的数据流表生成方法。

第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的数据流表生成方法。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的数据流表生成方法的流程示意图;

图2是根据本发明实施例的另一数据流表生成方法的流程示意图;

图3是根据本发明实施例的又一数据流表生成方法的流程示意图;

图4是根据本发明实施例的再一数据流表生成方法的流程示意图;

图5是根据本发明实施例的数据流表生成装置的结构框图;

图6是本发明实施例的电子设备的硬件结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

OVS是OpenFlow协议架构下的虚拟交换机,是整个OpenFlow网络的核心部件,主要负责数据面的处理和转发。OVS对数据流的处理和转发是基于流表中存储的数据流规则。在OVS中,数据流规则由匹配域、处理指令、优先级等字段组成。其中,匹配域由网络中链路层、网络层、传输层等各层的信息组成,是数据流进行规则匹配的依据;处理指令给出规则对数据流的处理和转发的方式;当数据流同时匹配成功多条规则时,根据匹配规则优先级的大小确定生效的规则。

随着网络需求的增多,网络中各层协议也变得愈发复杂,数据流规则中包括的内容越来越多。如果将各个数据流规则中的所有内容都放到同一张数据流表中,占用的存储资源会非常的庞大。

相关技术中,针对单张数据流表臃肿,消耗大量存储资源的情况,常用的解决方案是将整个匹配域分成多组匹配字段,存储在多张流表中,在查表匹配时逐级进行匹配和处理。但是,缺乏对实际情况进行仿真计算的方法。在进行规则匹配时,常用的处理方法是使用哈希算法,但哈希算法会存在哈希冲突的情况,为了解决这个问题,在智能网卡中实现OVS卸载时通常使用多个存储区域存储同一哈希值的不同规则,这样将增加对存储资源的消耗。

因此,如何有效的降低数据流表对智能网卡等硬件设备上存储资源的消耗,是目前针对百万、千万级流表规则应用场景下需要解决的问题。

根据本发明实施例,提供了一种数据流表生成方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

需要说明的是,本申请实施例提供的数据流表生成的方法,其执行主体可以是数据流表生成的装置,该数据流表生成的装置可以通过软件、硬件或者软硬件结合的方式实现成为电子设备的部分或者全部,其中,该电子设备可以是服务器或者终端,其中,本申请实施例中的服务器可以为一台服务器,也可以为由多台服务器组成的服务器集群,本申请实施例中的终端可以是智能手机、个人电脑、平板电脑、可穿戴设备以及智能机器人等其他智能硬件设备。下述方法实施例中,均以执行主体是电子设备为例来进行说明。

在本实施例中提供了一种数据流表生成方法,可用于上述的电子设备,图1是根据本发明实施例的数据流表生成方法的流程图,如图1所示,该流程包括如下步骤:

步骤S101,获取目标场景中的各个目标数据流对应的初始数据流表。

其中,初始数据流表中包括各目标数据流对应的数据流规则;数据流规则中至少包括目标数据流对应的匹配域、处理指令、优先级;匹配域中包括至少一个匹配字段。

可选的,电子设备可以接收其他设备发送的目标场景中的各个目标数据流对应的初始数据流表,电子设备也可以在存储空间中查找目标场景中的各个目标数据流对应的初始数据流表,电子设备还可以根据目标数据流对应的数据流规则,生成各个目标数据流对应的初始数据流表。本申请实施例对电子设备获取各个目标数据流对应的初始数据流表的方式不做具体限定。

关于该步骤将在下文进行详细介绍。

步骤S102,对各数据流规则进行识别,确定数据流规则中匹配字段和其他字段。

具体地,电子设备可以对初始数据流表中的各数据流规则中的内容进行识别,根据识别结果确定数据流规则中匹配字段和其他字段。

其中,其他字段可以包括处理指令、优先级等字段,本申请实施例对其他字段不做具体限定。

步骤S103,对各数据流规则中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表。

具体地,电子设备可以根据数据流规则中的匹配字段的属性信息,对各数据流规则中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表。

关于该步骤将在下文进行详细介绍。

步骤S104,获取各数据流规则对应的标识信息,根据标识信息,将各数据流规则中的其他字段与分级数据流表进行对应存储,生成目标数据流表。

具体地,电子设备可以从初始数据流表中获取各数据流规则对应的标识信息。其中,标识信息可以是各个数据流规则在初始数据流表中的位置,也可以是其他标识信息,本申请实施例对标识信息不做具体限定。

然后,电子设备根据数据流规则对应的标识信息,将各数据流规则中的其他字段与分级数据流表进行对应存储,生成目标数据流表。

步骤S105,计算目标数据流表中各个数据流规则对应的目标哈希值。

其中,目标哈希值满足预设哈希值冲突的条件。

具体地,电子设备可以根据预设哈希算法,计算目标数据流表中各个数据流规则对应的目标哈希值。

步骤S106,将目标哈希值和目标数据流表进行对应存储。

具体地,电子设备将各个数据流规则对应的目标哈希值与各个数据流规则对应的目标数据流表进行对应存储,从而可以保证各个数据流规则与数据流规则对应的目标哈希值一一对应。

本实施例提供的数据流表生成方法,获取目标场景中的各个目标数据流对应的初始数据流表,对各数据流规则进行识别,确定数据流规则中匹配字段和其他字段,保证了确定的数据流规则中匹配字段和其他字段的准确性。然后,由于数据流规则中的匹配字段对应的内容多且复杂,对各数据流规则中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表,保证了生成的分级数据流表中各个数据流规则中的匹配字段占用资源较少。此外,由于数据流规则中的其他字段的内容相对较少,占用资源不多,因此,仅对各数据流规则中的匹配字段进行分级存储,便于操作,且可以保证分级数据流表简单清晰。获取各数据流规则对应的标识信息,根据标识信息,将各数据流规则中的其他字段与分级数据流表进行对应存储,生成目标数据流表,保证了生成的目标数据流表占用资源较少,且实现了将目标数据流对应的数据流规则中的内容进行对应存储,避免了目标数据流对应的数据流规则混乱,对目标数据流操作失误。计算目标数据流表中各个数据流规则对应的目标哈希值;目标哈希值满足预设哈希值冲突的条件,保证了计算得到的各个数据流规则对应的目标哈希值的准确且满足预设哈希值冲突的条件,因此可以避免目标哈希值冲突的问题,不需要占用资源解决哈希值冲突的问题。将目标哈希值和目标数据流表进行对应存储,保证了目标哈希值和目标数据流表中的各个数据流规则的一一对应性。

在本实施例中提供了一种数据流表生成方法,可用于上述的电子设备,图2是根据本发明实施例的数据流表生成方法的流程图,如图2所示,该流程包括如下步骤:

步骤S201,获取目标场景中的各个目标数据流对应的初始数据流表。

其中,初始数据流表中包括各目标数据流对应的数据流规则;数据流规则中至少包括目标数据流对应的匹配域、处理指令、优先级;匹配域中包括至少一个匹配字段。

具体地,上述步骤S201包括:

步骤S2011,获取目标场景中各个目标数据流对应的数据处理信息。

其中,数据处理信息中至少包括目标数据流对应的匹配域、处理指令、优先级;匹配域中包括至少一个匹配字段。

具体地,电子设备可以接收用户输入的目标场景中各个目标数据流对应的数据处理信息,也可以接收其他设备发送的目标场景中各个目标数据流对应的数据处理信息。本申请实施例对电子设备获取目标场景中各个目标数据流对应的数据处理信息的方式不做具体限定。

步骤S2012,根据各目标数据流对应的数据处理信息,生成各目标数据流对应的数据流规则。

具体地,电子设备可以根据各目标数据流对应的数据处理信息,生成各目标数据流对应的数据流规则。

可选的,电子设备可以获取目标场景中的各个主机设备的IP地址所在的网络地址、设备的主机号范围、协议的类型、源端口号范围和目的端口号的范围等数据处理信息,同时声明目标场景中的各个主机设备对应的数据流规则的种类和优先级,即一条数据流规则的哪几个匹配字段是有效的,其优先级的顺序是怎样的(数值越低,优先级越高)。然后,电子设备将上述目标场景中的各主机设备之间通信的目标数据流对应的数据处理信息进行整合,生成各目标数据流对应的数据流规则。

示例性的,以五元组匹配的场景为例,其中,匹配字段为源IP地址、目的IP地址、协议类型、源端口号、目的端口号。在一种应用场景下,有2台主机,它们之间通过Ipv4协议进行目标数据流传输,其网络地址均为192.168.137,每台主机对应一个主机号,范围为21-22。传输的Ipv4数据包包括TCP和UDP数据包,即协议类型为6或者17。源端口号的范围为81-82,目的端口号的范围为91-92。在进行规则匹配时,假设存在下述两种匹配情况:

匹配源IP地址、协议类型和源端口号,其它字段任意,优先级为1。

匹配目的IP地址、协议类型和目的端口号,其它字段任意,优先级为2。

在这种情况下,电子设备将上述目标场景中的各主机设备之间通信的目标数据流对应的数据处理信息进行整合,生成各目标数据流对应的数据流规则。步骤S2013,根据各数据流规则,生成初始数据流表。

在一些可选的实施方式中,上述步骤S2013包括:

步骤a1,根据数据处理信息,对各数据流规则进行排序。

具体地,电子设备可以规则的优先级对所有的规则进行排序,如果优先级相同,则依次按源IP地址、目的IP地址、协议类型、源端口号、目的端口号的数值大小进行排序。

步骤a2,根据排序后的各数据流规则,生成初始数据流表。

具体地,电子设备可以根据排序后的各数据流规则,生成初始数据流表。

示例性,电子设备对上述实施方式中的生成的数据流规则进行排序,根据排序后的各数据流规则,生成初始数据流表。其中,初始数据流表如表1所示。

表1 初始数据流表

步骤S202,对各数据流规则进行识别,确定数据流规则中匹配字段和其他字段。

关于该步骤请参见图1实施例中对S102的介绍,在此不进行赘述。

步骤S203,对各数据流规则中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表。

关于该步骤请参见图1实施例中对S103的介绍,在此不进行赘述。

步骤S204,获取各数据流规则对应的标识信息,根据标识信息,将各数据流规则中的其他字段与分级数据流表进行对应存储,生成目标数据流表。

关于该步骤请参见图1实施例中对S104的介绍,在此不进行赘述。

步骤S205,计算目标数据流表中各个数据流规则对应的目标哈希值;目标哈希值满足预设哈希值冲突的条件。

关于该步骤请参见图1实施例中对S105的介绍,在此不进行赘述。

步骤S206,将目标哈希值和目标数据流表进行对应存储。

关于该步骤请参见图1实施例中对S106的介绍,在此不进行赘述。

本申请实施例提供的数据流表生成方法,获取目标场景中各个目标数据流对应的数据处理信息,然后,根据各目标数据流对应的数据处理信息,生成各目标数据流对应的数据流规则,保证了生成的数据流规则的准确性。根据数据处理信息,对各数据流规则进行排序;根据排序后的各数据流规则,生成初始数据流表,保证了生成的初始数据流表的准确性,且便于根据初始数据流表对目标数据流进行操作。

在本实施例中提供了一种数据流表生成方法,可用于上述的电子设备,图3是根据本发明实施例的数据流表生成方法的流程图,如图3所示,该流程包括如下步骤:

步骤S301,获取目标场景中的各个目标数据流对应的初始数据流表。

其中,初始数据流表中包括各目标数据流对应的数据流规则;数据流规则中至少包括目标数据流对应的匹配域、处理指令、优先级;匹配域中包括至少一个匹配字段。

关于该步骤请参见图2实施例对步骤S201的介绍,在此不进行赘述。

步骤S302,对各数据流规则进行识别,确定数据流规则中匹配字段和其他字段。

关于该步骤请参见图2实施例对步骤S202的介绍,在此不进行赘述。

步骤S303,对各数据流规则中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表。

具体地,上述步骤S303包括:

步骤S3031,根据各数据流规则对应的匹配字段,对数据流规则进行分层存储,并将每层作为一个一级子流表。

可选的,电子设备可以根据各匹配字段对应的匹配情况,对各匹配字段进行分层存储,并将每层作为一个一级子流表。其中,匹配情况用于表征各目标数据流用于匹配的字段的情况。

示例性的,如表1所示的两类匹配规则,可以分为两个一级子流表,一个子流表的匹配字段为源IP地址、协议类型和源端口号,另一个子流表的匹配字段为目的IP地址、协议类型和目的端口号,后续的流表分级基于这两个一级子流表进行。

在一些可选的实施方式中,上述步骤S3031包括:

步骤b1,根据各数据流规则中的各匹配字段的属性信息,对各匹配字段进行分层存储,并将每层作为一个一级子流表。

具体地,电子设备可以根据各数据流规则中的各匹配字段的属性信息,对各匹配字段进行分层存储,通常可以分为数据链路层、网络层和传输层,然后将每层作为一个一级子流表。

其中,数据链路层中可以包括MAC源地址、MAC目的地址、网络类型等,其中,网络类型可以包括IP协议和ARP协议等,网络层可以包括源IP地址、目的IP地址、协议类型等,传输层可以包括源端口号和目的端口号等。

同一层的匹配字段存在一定的相关性,所以将每一层的匹配字段作为一个一级子流表。

以上述实施方式中的五元组为例,即将源IP地址、目的IP地址、协议类型作为一级子流表1,将源端口号和目的端口号作为一级子流表2。

步骤S3032,根据各一级子流表中各个匹配字段占用资源,对各一级子流表中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表。

在一些可选的实施方式中,上述步骤S3032包括:

步骤c1,针对各一级子流表,获取一级子流表中各匹配字段占用资源。

具体地,针对各一级子流表,电子设备可以根据一级子流表中各匹配字段的字符数,确定一级子流表中各匹配字段占用资源。

示例性的,以上述表1中的五元组为例,源IP地址和目的IP地址对应的匹配字段占用资源为32bit;协议类型对应的匹配字段占用资源为8bit;源端口号和目的端口号对应的匹配字段占用资源为16bit。

步骤c2,根据各匹配字段占用资源,计算各匹配字段单独存储节约的第一存储资源。

在一些可选的实施方式中,上述步骤c2包括:

步骤c21,针对各匹配字段,获取匹配字段对应的字段种类以及数据流规则的规则数量。

具体地,针对各匹配字段,电子设备可以获取匹配字段对应的字段种类以及数据流规则的规则数量。

示例性的,以上述表1中的五元组为例,在根据网络层级进行分层的情况下,对于源IP地址、目的IP地址、协议类型构成的一级子流表,源IP地址和目的IP地址对应的字段种类均为3种,即192.168.137.21、192.168.137.22和*。数据流规则的规则数量为16。

步骤c22,利用匹配字段占用资源乘以规则数量与字段种类之间的差值,计算得到匹配字段单独存储节约的第一节约资源。

具体地,电子设备利用匹配字段占用资源乘以规则数量与字段种类之间的差值,计算得到匹配字段单独存储节约的第一节约资源。

示例性的,在源IP地址单独存储时,电子设备利用源IP地址占用资源乘以规则数量与字段种类之间的差值,计算得到匹配字段单独存储节约的第一节约资源,即32bit×(16-3)=416bit。

同理,可计算目的IP地址单独存储后可节约的存储资源也为416bit,协议类型节约的存储资源为112bit。

步骤c23,获取存储数据流规则中除匹配字段之外的其他字段对应的其他占用资源。

具体地,由于目标数据流对应的分级数据流表中只存储着目标数据流对应数据流规则中的匹配字段。还需要在初始数据流表中查找目标数据流对应数据流规则中的其他字段。因此,需要对目标数据流对应数据流规则进行标记处理。示例性的,可以将目标数据流对应数据流规则标记为1,2,3,4……。

因此,电子设备可以根据数据流规则对应的规则数量,确定存储数据流规则中除匹配字段之外的其他字段对应的其他占用资源。

示例性的,如有16条数据流规则,则需要二进制表示的数能够表示1~16,即5位(bit)来表示(能够表示0~31)。

示例性的,以上述表1中的五元组为例,数据流规则中除匹配字段之外的其他字段其他占用资源为5bit,则需要额外消耗5bit×16=80bit。

步骤c24,利用第一节约资源减去其他占用资源,得到第一存储资源。

具体地,电子设备利用第一节约资源减去其他占用资源,得到第一存储资源。

根据上述实施例可知,源IP地址作为单级流表单独存储后可节约的第一存储资源为416-80=336bit。

同理,目的IP地址作为单级流表单独存储后可节约的第一存储资源为416-80=336bit。

同理,协议类型作为单级流表单独存储后可节约的第一存储资源为8×(16-2)-80=32bit。

步骤c3,根据各第一存储资源,对各一级子流表中的各匹配字段进行分级存储,生成各目标数据流对应的分级数据流表。

在一些可选的实施方式中,上述步骤c3包括:

步骤c31,根据各第一存储资源,依次取出第一存储资源节约最多的匹配字段。

具体地,针对各一级子流表,电子设备在计算完一级子流表中各个匹配字段单独存储节约的第一节约资源之后,依次取出第一存储资源节约最多的匹配字段。

示例性的,由上述内容可知,以上述表1中的五元组为例,在根据网络层级进行分层的情况下,对于源IP地址、目的IP地址、协议类型构成的一级子流表为例,源IP地址作为单级流表单独存储后可节约的第一存储资源为416-80=336bit;目的IP地址作为单级流表单独存储后可节约的第一存储资源为416-80=336bit;协议类型作为单级流表单独存储后可节约的第一存储资源为8×(16-2)-80=32bit。

步骤c32,将各第一存储资源进行相加,计算各匹配字段单独存储总共节约的第一总存储资源。

具体地,电子设备可以将各第一存储资源进行相加,计算各匹配字段单独存储总共节约的第一总存储资源。

示例性的,电子设备可以将源IP地址单独存储节约的第一存储资源与目的IP地址单独存储节约的第一存储资源进行相加,计算得到源IP地址和目的IP地址单独存储总共节约的第一总存储资源为336bit×2=672bit。

步骤c33,根据第一总存储资源,对各一级子流表中的各匹配字段进行分级存储,生成分级数据流表。

在一些可选的实施方式中,上述步骤c33包括:

步骤c331,根据各匹配字段占用资源,计算各匹配字段组合存储总共节约的第二总存储资源。

具体地,电子设备还可以根据各匹配字段占用资源,计算各匹配字段组合存储总共节约的第二总存储资源。

在一些可选的实施方式中,上述步骤c331包括:

步骤c3311,将各匹配字段占用资源进行相加,得到各匹配字段对应的组合占用资源。

具体地,电子设备可以将各匹配字段占用资源进行相加,得到各匹配字段对应的组合占用资源。

示例性的,将源IP地址和目的IP地址各自占用资源进行相加,得到源IP地址和目的IP地址组合后对应的组合占用资源为64bit。

步骤c3312,获取各匹配字段组合存储对应的组合数量。

具体地,电子设备可以根据各匹配字段对应的种类以及可匹配的情况,确定各匹配字段对应的组合数量。

示例性的,上述表1中源IP地址与目的IP地址组合起来存储,则共有4中组合情况,因此组合数量为4,分别是(192.168.137.21,*),(192.168.137.22,*),(*,192.168.137.21),(*,192.168.137.22)。

步骤c3313,利用组合占用资源乘以数据流规则的规则数量与组合数量之间的差值,计算得到各匹配字段组合存储节约的第二节约存储资源。

具体地,电子设备利用组合占用资源乘以数据流规则的规则数量与组合数量之间的差值,计算得到各匹配字段组合存储节约的第二节约存储资源。

示例性的,电子设备可以利用源IP地址与目的IP地址组合后对应的组合占用资源为64bit,乘以数据流规则的规则数量16与组合数量4之间的差值,计算得到各匹配字段组合存储节约的第二节约存储资源,即64bit×(16-4)=768bit。

步骤c3314,获取存储数据流规则中除匹配字段之外的其他字段对应的其他占用资源。

具体地,电子设备根据数据流规则中除匹配字段之外的其他字段占用字符长度,确定其他字段对应的其他占用资源。

示例性的,以上述表1中的五元组为例,数据流规则中除匹配字段之外的其他字段其他占用资源为5bit,则需要额外消耗5bit×16=80bit。

步骤c3315,利用第二节约存储资源减去其他占用资源,得到第二总存储资源。

具体地,电子设备利用第二节约存储资源减去其他占用资源,得到第二总存储资源。

示例性的,以表1中源IP地址与目的IP地址组合为例,电子设备利用源IP地址与目的IP地址组合存储节约的第二节约存储资源768bit减去其他字段其他占用资源为80bit,计算得到源IP地址与目的IP地址组合存储总共节约的第二总存储资源为768bit-80bit=688bit。

步骤c332,将第一总存储资源和第二总存储资源进行对比。

步骤c333,根据对比结果,对各一级子流表中的各匹配字段进行分级存储,生成分级数据流表。

其中一种情况,当第一总存储资源大于第二总存储资源时,对各一级子流表中的各匹配字段进行单独存储,生成分级数据流表。

其中另一种情况,当第一总存储资源小于第二总存储资源时,对各一级子流表中的各匹配字段进行组合存储,生成分级数据流表。

其中另一种情况,当第一总存储资源等于第二总存储资源时,对各一级子流表中的各匹配字段进行组合存储或单独存储,生成分级数据流表。

示例性的,由上述内容可知,源IP地址与目的IP地址单独存储总共节约的第一总存储资源为672bit,源IP地址与目的IP地址组合存储总共节约的第二总存储资源为688bit。由此可知,第一总存储资源大于第二总存储资源,因此将源IP地址与目的IP地址组合存储,生成分级数据流表。

此外,由上述内容可知,协议类型作为单级流表单独存储后可节约的第一存储资源为8×(16-2)-80=32bit,加上源IP地址与目的IP地址组合存储总共节约的第二总存储资源688bit,得到源IP地址与目的IP地址组合存储,协议类型单独存储对应的第二总存储资源为720bit。当协议类型与源IP地址以及目的IP地址组合存储时,协议类型与源IP地址以及目的IP地址组合后的组合占用资源为32bit+32bit+8bit=72bit,协议类型与源IP地址以及目的IP地址组合存储对应的组合数量为8,分别是(192.168.137.21,*,6),(192.168.137.21,*,17),(192.168.137.22,*,6),(192.168.137.22,*,17),(*,192.168.137.21,6),(*,192.168. 137.21,17),(*,192.168.137.22,6),(*,192.168.137.22,17)。然后,电子设备利用组合占用资源72bit乘以数据流规则的规则数量16与组合数量8之间的差值,计算得到各匹配字段组合存储节约的第二节约存储资源为72bit×8=576bit。

然后,利用第二节约存储资源576bit减去其他占用资源80bit等于496bit。因此可知,协议类型与源IP地址以及目的IP地址组合存储对应的第二总存储资源为小于源IP地址与目的IP地址组合存储,协议类型单独存储对应的第二总存储资源。

因此,在根据网络层级进行分层的情况下,对于源IP地址、目的IP地址、协议类型构成的一级子流表为例,将源IP地址与目的IP地址组合存储,协议类型单独存储。

同理,在根据传输层级进行分层的情况下,对于源端口号和目的端口号构成的一级子流表为例,源端口号和目的端口号单独存储总共节约的第一总存储资源为(16×13-80)×2=256bit;源端口号和目的端口号组合存储总共节约的第二总存储资源为32×12-80=304bit,所以将源端口号和目的端口号组合存储的效果更好。

综上所示,对于表1的数据流规则,生成的分级数据流表如表2所示。

表2 分级数据流表

步骤S304,获取各数据流规则对应的标识信息,根据标识信息,将各数据流规则中的其他字段与分级数据流表进行对应存储,生成目标数据流表。

关于该步骤请参见图2实施例中对步骤S204的介绍,在此不进行赘述。

步骤S305,计算目标数据流表中各个数据流规则对应的目标哈希值。

其中,目标哈希值满足预设哈希值冲突的条件。

关于该步骤请参见图2实施例中对步骤S205的介绍,在此不进行赘述。

步骤S306,将目标哈希值和目标数据流表进行对应存储。

关于该步骤请参见图2实施例中对步骤S206的介绍,在此不进行赘述。

本申请实施例提供的数据流表生成方法,根据各数据流规则中的各匹配字段的属性信息,对各匹配字段进行分层存储,并将每层作为一个一级子流表,保证了生成的一级子流表的准确性,实现了对数据流规则对应的匹配字段进行初步分层存储。

然后,针对各一级子流表,获取一级子流表中各匹配字段占用资源。针对各匹配字段,获取匹配字段对应的字段种类以及数据流规则的规则数量,利用匹配字段占用资源乘以规则数量与字段种类之间的差值,计算得到匹配字段单独存储节约的第一节约资源,保证了计算得到第一节约资源的准确性。获取存储数据流规则中除匹配字段之外的其他字段对应的其他占用资源;利用第一节约资源减去其他占用资源,得到第一存储资源,保证了得到第一存储资源的准确性。

根据各第一存储资源,依次取出第一存储资源节约最多的匹配字段;将各第一存储资源进行相加,计算各匹配字段单独存储总共节约的第一总存储资源,保证了计算得到的第一总存储资源的准确性。

将各匹配字段占用资源进行相加,得到各匹配字段对应的组合占用资源,保证了得到的匹配字段对应的组合占用资源的准确性。获取各匹配字段组合存储对应的组合数量;利用组合占用资源乘以数据流规则的规则数量与组合数量之间的差值,计算得到各匹配字段组合存储节约的第二节约存储资源,保证了计算得到的第二节约存储资源的准确性。获取存储数据流规则中除匹配字段之外的其他字段对应的其他占用资源;利用第二节约存储资源减去其他占用资源,得到第二总存储资源,保证了计算得到的第二总存储资源的准确性。

将第一总存储资源和第二总存储资源进行对比。当第一总存储资源大于第二总存储资源时,对各一级子流表中的各匹配字段进行单独存储,生成分级数据流表;当第一总存储资源小于第二总存储资源时,对各一级子流表中的各匹配字段进行组合存储,生成分级数据流表;当第一总存储资源等于第二总存储资源时,对各一级子流表中的各匹配字段进行组合存储或单独存储,生成分级数据流表。保证了生成的各目标数据流对应的分级数据流表的准确性,且可以保证生成的分级数据流表占用的资源较少。

在本实施例中提供了一种数据流表生成方法,可用于上述的电子设备,图4是根据本发明实施例的数据流表生成方法的流程图,如图4所示,该流程包括如下步骤:

步骤S401,获取目标场景中的各个目标数据流对应的初始数据流表。

其中,初始数据流表中包括各目标数据流对应的数据流规则;数据流规则中至少包括目标数据流对应的匹配域、处理指令、优先级;匹配域中包括至少一个匹配字段。

关于该步骤请参见图3实施例对步骤S301的介绍,在此不进行赘述。

步骤S402,对各数据流规则进行识别,确定数据流规则中匹配字段和其他字段。

关于该步骤请参见图3实施例对步骤S302的介绍,在此不进行赘述。

步骤S403,对各数据流规则中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表。

关于该步骤请参见图3实施例对步骤S303的介绍,在此不进行赘述。

步骤S404,获取各数据流规则对应的标识信息,根据标识信息,将各数据流规则中的其他字段与分级数据流表进行对应存储,生成目标数据流表。

关于该步骤请参见图3实施例对步骤S304的介绍,在此不进行赘述。

步骤S405,计算目标数据流表中各个数据流规则对应的目标哈希值。

其中,目标哈希值满足预设哈希值冲突的条件。

在一些可选的实施方式中,上述步骤S405包括:

步骤S4051,获取各数据流规则对应的目标哈希算法。

可选的,电子设备可以接收用户输入的各数据流规则对应的目标哈希算法,也可以接收其他设备发送的各数据流规则对应的目标哈希算法,本申请实施例对电子设备获取各数据流规则对应的目标哈希算法的方式不做具体限定。

在一些可选的实施方式中,上述步骤S405包括:

步骤d1,对哈希算法的参数进行初始化,生成多种初始哈希算法。

具体地,电子设备可以对哈希算法的参数进行初始化,生成多种初始哈希算法。

其中,哈希算法可以是CRC循环哈希算法、MD5哈希算法、硬哈希算法等哈希算法,本申请实施例对哈希算法不做具体限定。

示例性的,CRC循环哈希算法是计算哈希值的常用算法,此处以CRC循环哈希算法为例进行说明。电子设备可以初始化CRC循环哈希算法的多项式及其参数,包括初始化多项式的表达式、校验结果的初始值、是否对输入数据进行反转、是否对输出数据进行反转,生成多种初始哈希算法。

步骤d2,利用各初始哈希算法,计算各数据流规则对应的初始哈希值。

具体地,电子设备可以利用各初始哈希算法,计算各数据流规则对应的初始哈希值。

示例性的,当哈希算法为CRC循环哈希算法时,电子设备可以利用各初始CRC循环哈希算法计算数据流规则对应的初始哈希值。

步骤d3,针对各初始哈希算法,利用初始哈希算法对应的各初始哈希值,确定初始哈希值冲突数量,并计算各初始哈希值对应的初始哈希值分布方差。

在一些可选的实施方式中,上述步骤d3包括:

步骤d31,根据各初始哈希值,确定各初始哈希值对应的初始哈希值冲突数量。

具体地,电子设备可以根据各数据流规则对应的初始哈希值,确定各初始哈希值对应的初始哈希值冲突数量。

示例性的,假设上述实施方式中的表1中的各个数据流规则从上到下依次对应的初始哈希值分别为:2,3,4,6,2,4,5,1,7,8,9,2,4,6,4,5。那么初始哈希值1对应的初始哈希值冲突数量为0,初始哈希值2对应的初始哈希值冲突数量为2;初始哈希值3对应的初始哈希值冲突数量为0;初始哈希值4对应的初始哈希值冲突数量为3;初始哈希值5对应的初始哈希值冲突数量为1;初始哈希值6对应的初始哈希值冲突数量为1;初始哈希值7对应的初始哈希值冲突数量为0;初始哈希值8对应的初始哈希值冲突数量为0;初始哈希值9对应的初始哈希值冲突数量为0。

步骤d32,根据初始哈希值冲突数量,确定存在各初始哈希值冲突数量的数据流规则的数量。

具体地,电子设备在确定了各初始哈希值对应的初始哈希值冲突数量之后,根据初始哈希值冲突数量,确定存在各初始哈希值冲突数量的数据流规则的数量。

示例性的,根据上述内容,电子设备确定初始哈希值冲突数量0对应的数据流规则的数量为5,初始哈希值冲突数量1对应的数据流规则的数量4;初始哈希值冲突数量2分别对应的数据流规则的数量3;初始哈希值冲突数量3分别对应的数据流规则的数量4。

步骤d33,根据初始哈希值冲突数量,确定初始哈希值冲突数量的种类。

具体地,电子设备可以根据初始哈希值冲突数量,确定初始哈希值冲突数量的种类。

示例性的,根据上述内容可知,初始哈希值冲突数量对应的种类为4种,分别为0次、1次、2次以及3次。

步骤d34,根据数据流规则的数量、初始哈希值冲突数量、存在各初始哈希值冲突数量的数据流规则的数量以及初始哈希值冲突数量对应的种类,计算各初始哈希值对应的初始哈希值分布方差。

具体地,电子设备可以根据如下公式计算各初始哈希值对应的初始哈希值分布方差:

其中,N为数据流规则的数量、i为每个初始哈希值对应的初始哈希值冲突数量,m表示存在多少个i次初始哈希值冲突数量的数据流规则的数量,n表示初始哈希值冲突数量对应的种类。

通过该式计算得到的初始哈希值分布方差,表明了初始哈希值冲突的数量偏离0,即理想初始哈希值冲突的程度。如果有2000(即N=2000)条数据流规则,0次初始哈希值冲突数量的数据流规则数量为2000(i=0,m=2000),则计算出的初始哈希值分布方差为0,表明不存在哈希冲突。如果有2000(即N=2000)条数据流规则,0次初始哈希值冲突数量的数据流规则数量为1200(i=0,m=1200),1次初始哈希值冲突数量的数据流规则数量为800(i=1,m=800),则计算出的方差为0.4,表明存在初始哈希值冲突。计算得到的方差越小,表明偏离程度也越小。

步骤d4,根据各初始哈希算法对应的初始哈希值冲突数量和初始哈希值分布方差,确定目标哈希算法。

可选的,电子设备可以根据各初始哈希算法对应的初始哈希值冲突数量和初始哈希值分布方差分别进行对比,选择初始哈希值冲突数量最小和初始哈希值分布方差最小的初始哈希算法为目标哈希算法。

在一些可选的实施方式中,上述步骤d4包括:

步骤d41,将各初始哈希算法对应的初始哈希值冲突数量与预设冲突数量进行对比,并将各初始哈希算法对应的初始哈希值分布方差与预设方差进行对比。

具体地,电子设备还可以将各初始哈希算法对应的初始哈希值冲突数量与预设冲突数量进行对比,并将各初始哈希算法对应的初始哈希值分布方差与预设方差进行对比。

其中,预设冲突数量可以是0,也可以是1,还可以是其他数值,本申请实施例对预设冲突数量不做具体限定。预设方差可以是0,也可以是0.01,还可以是其他数值,本申请实施例对预设方差不做具体限定。

步骤d42,当不存在初始哈希值冲突数量等于或者小于预设冲突数量,且初始哈希值分布方差等于或者小于预设方差时,更新各初始哈希算法,得到多种候选哈希算法。

具体地,当不存在初始哈希值冲突数量等于或者小于预设冲突数量,且初始哈希值分布方差等于或者小于预设方差时,电子设备可以根据预设更新算法,更新各初始哈希算法,得到多种候选哈希算法。

其中,预设更新算法可以是遗传算法,也可以是萤火虫算法,还可以是其他算法,本申请实施例对预设更新算法不做具体限定。

步骤d43,再次利用各候选哈希算法,计算各数据流规则对应的候选哈希值。

具体地,当电子设备对初始哈希算法进行更新得到各候选哈希算法之后,电子设备可以再次利用各候选哈希算法,计算各数据流规则对应的候选哈希值。

步骤d44,利用各候选哈希值,确定候选哈希值冲突数量,并计算各候选哈希值对应的候选哈希值分布方差。

具体地,电子设备利用各候选哈希值,确定候选哈希值冲突数量,并计算各候选哈希值对应的候选哈希值分布方差。

需要说明的是,计算候选哈希值分布方差的方法与上述实施方式中计算初始哈希值分布方差的方法一致,在此不进行赘述。

步骤d45,将候选哈希值冲突数量与预设冲突数量进行对比,并将候选哈希值分布方差与预设方差进行对比。

具体地,电子设备再次将候选哈希值冲突数量与预设冲突数量进行对比,并将候选哈希值分布方差与预设方差进行对比。

步骤d46,如此循环,直至候选哈希值冲突数量等于或者小于预设冲突数量,且候选哈希值分布方差等于或者小于预设方差,确定目标哈希算法。

具体地,如此循环,直至候选哈希值冲突数量等于或者小于预设冲突数量,且候选哈希值分布方差等于或者小于预设方差,电子设备将候选哈希值对应的候选哈希算法确定为目标哈希算法。

步骤S4052,基于目标哈希算法,计算各数据流规则对应的目标哈希值。

具体地,电子设备基于目标哈希算法,计算各数据流规则对应的目标哈希值。

步骤S406,将目标哈希值和目标数据流表进行对应存储。

关于该步骤请参见图3实施例对步骤S306的介绍,在此不进行赘述。

本申请实施例提供的数据流表生成方法,对哈希算法的参数进行初始化,生成多种初始哈希算法。利用各初始哈希算法,计算各数据流规则对应的初始哈希值,保证了计算得到的数据流规则对应的初始哈希值的准确性。针对各初始哈希算法,根据各初始哈希值,确定各初始哈希值对应的初始哈希值冲突数量,保证了确定的各初始哈希值对应的初始哈希值冲突数量的准确性。根据初始哈希值冲突数量,确定存在各初始哈希值冲突数量的数据流规则的数量,保证了确定的存在各初始哈希值冲突数量的数据流规则的数量的准确性。根据初始哈希值冲突数量,确定初始哈希值冲突数量的种类,保证了确定的初始哈希值冲突数量对应的种类的准确性。根据数据流规则的数量、初始哈希值冲突数量、存在各初始哈希值冲突数量的数据流规则的数量以及初始哈希值冲突数量对应的种类,计算各初始哈希值对应的初始哈希值分布方差,保证了计算得到的初始哈希值对应的初始哈希值分布方差的准确性,进而可以保证根据初始哈希值分布方差对初始哈希值进行评估得到的评估结果的准确性。

将各初始哈希算法对应的初始哈希值冲突数量与预设冲突数量进行对比,并将各初始哈希算法对应的初始哈希值分布方差与预设方差进行对比;当不存在初始哈希值冲突数量等于或者小于预设冲突数量,且初始哈希值分布方差等于或者小于预设方差时,更新各初始哈希算法,得到多种候选哈希算法,实现了初始哈希算法的更新,使得更新后的候选哈希算法优于初始哈希算法。再次利用各候选哈希算法,计算各数据流规则对应的候选哈希值,保证了计算得到的数据流规则对应的候选哈希值的准确性,且候选哈希值优于初始哈希值。利用各候选哈希值,确定候选哈希值冲突数量,并计算各候选哈希值对应的候选哈希值分布方差,将候选哈希值冲突数量与预设冲突数量进行对比,并将候选哈希值分布方差与预设方差进行对比;如此循环,直至候选哈希值冲突数量等于或者小于预设冲突数量,且候选哈希值分布方差等于或者小于预设方差,确定目标哈希算法。保证了确定的目标哈希算法的准确性,进而可以保证目标哈希值满足预设哈希值冲突的条件,因此可以避免目标哈希值冲突的问题,不需要占用资源解决哈希值冲突的问题。

然后,基于目标哈希算法,计算各数据流规则对应的目标哈希值,保证了计算得到的各数据流规则对应的目标哈希值的准确性。

在本实施例中还提供了一种数据流表生成装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

本实施例提供一种数据流表生成装置,如图5所示,包括:

第一获取模块501,用于获取目标场景中的各个目标数据流对应的初始数据流表;初始数据流表中包括各目标数据流对应的数据流规则;数据流规则中至少包括目标数据流对应的匹配域、处理指令、优先级;匹配域中包括至少一个匹配字段;

识别模块502,用于对各数据流规则进行识别,确定数据流规则中匹配字段和其他字段;

分级模块503,对各数据流规则中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表;

第二获取模块504,用于获取各数据流规则对应的标识信息,根据标识信息,将各数据流规则中的其他字段与分级数据流表进行对应存储,生成目标数据流表;

计算模块505,用于计算目标数据流表中各个数据流规则对应的目标哈希值;目标哈希值满足预设哈希值冲突的条件;

存储模块506,用于将目标哈希值和目标数据流表进行对应存储。

在一些可选的实施方式中,第一获取模块501,具体用于获取目标场景中各个目标数据流对应的数据处理信息;数据处理信息中至少包括目标数据流对应的匹配域、处理指令、优先级;匹配域中包括至少一个匹配字段;根据各目标数据流对应的数据处理信息,生成各目标数据流对应的数据流规则;根据各数据流规则,生成初始数据流表。

在一些可选的实施方式中,第一获取模块501,具体用于根据数据处理信息,对各数据流规则进行排序;根据排序后的各数据流规则,生成初始数据流表。

在一些可选的实施方式中,分级模块503,具体用于根据各数据流规则对应的匹配字段,对数据流规则进行分层存储,并将每层作为一个一级子流表;根据各一级子流表中各个匹配字段占用资源,对各一级子流表中的匹配字段进行分级存储,生成各目标数据流对应的分级数据流表。

在一些可选的实施方式中,分级模块503,具体用于根据各数据流规则中的各匹配字段的属性信息,对各匹配字段进行分层存储,并将每层作为一个一级子流表。

在一些可选的实施方式中,分级模块503,具体用于针对各一级子流表,获取一级子流表中各匹配字段占用资源;根据各匹配字段占用资源,计算各匹配字段单独存储节约的第一存储资源;根据各第一存储资源,对各一级子流表中的各匹配字段进行分级存储,生成各目标数据流对应的分级数据流表。

在一些可选的实施方式中,分级模块503,具体用于根据各第一存储资源,依次取出第一存储资源节约最多的匹配字段;将各第一存储资源进行相加,计算各匹配字段单独存储总共节约的第一总存储资源;根据第一总存储资源,对各一级子流表中的各匹配字段进行分级存储,生成分级数据流表。

在一些可选的实施方式中,分级模块503,具体用于根据各匹配字段占用资源,计算各匹配字段组合存储总共节约的第二总存储资源;将第一总存储资源和第二总存储资源进行对比;根据对比结果,对各一级子流表中的各匹配字段进行分级存储,生成分级数据流表。

在一些可选的实施方式中,分级模块503,具体用于当第一总存储资源大于第二总存储资源时,对各一级子流表中的各匹配字段进行单独存储,生成分级数据流表。

在一些可选的实施方式中,分级模块503,具体用于当第一总存储资源小于第二总存储资源时,对各一级子流表中的各匹配字段进行组合存储,生成分级数据流表。

在一些可选的实施方式中,分级模块503,具体用于当第一总存储资源等于第二总存储资源时,对各一级子流表中的各匹配字段进行组合存储或单独存储,生成分级数据流表。

在一些可选的实施方式中,分级模块503,具体用于针对各匹配字段,获取匹配字段对应的字段种类以及数据流规则的规则数量;利用匹配字段占用资源乘以规则数量与字段种类之间的差值,计算得到匹配字段单独存储节约的第一节约资源;获取存储数据流规则中除匹配字段之外的其他字段对应的其他占用资源;利用第一节约资源减去其他占用资源,得到第一存储资源。

在一些可选的实施方式中,分级模块503,具体用于将各匹配字段占用资源进行相加,得到各匹配字段对应的组合占用资源;获取各匹配字段组合存储对应的组合数量;利用组合占用资源乘以数据流规则的规则数量与组合数量之间的差值,计算得到各匹配字段组合存储节约的第二节约存储资源;获取存储数据流规则中除匹配字段之外的其他字段对应的其他占用资源;利用第二节约存储资源减去其他占用资源,得到第二总存储资源。

在一些可选的实施方式中,计算模块505,具体用于获取各数据流规则对应的目标哈希算法;基于目标哈希算法,计算各数据流规则对应的目标哈希值。

在一些可选的实施方式中,计算模块505,具体用于对哈希算法的参数进行初始化,生成多种初始哈希算法;利用各初始哈希算法,计算各数据流规则对应的初始哈希值;针对各初始哈希算法,利用初始哈希算法对应的各初始哈希值,确定初始哈希值冲突数量,并计算各初始哈希值对应的初始哈希值分布方差;根据各初始哈希算法对应的初始哈希值冲突数量和初始哈希值分布方差,确定目标哈希算法。

在一些可选的实施方式中,计算模块505,具体用于将各初始哈希算法对应的初始哈希值冲突数量与预设冲突数量进行对比,并将各初始哈希算法对应的初始哈希值分布方差与预设方差进行对比;当不存在初始哈希值冲突数量等于或者小于预设冲突数量,且初始哈希值分布方差等于或者小于预设方差时,更新各初始哈希算法,得到多种候选哈希算法;再次利用各候选哈希算法,计算各数据流规则对应的候选哈希值;利用各候选哈希值,确定候选哈希值冲突数量,并计算各候选哈希值对应的候选哈希值分布方差;将候选哈希值冲突数量与预设冲突数量进行对比,并将候选哈希值分布方差与预设方差进行对比;如此循环,直至候选哈希值冲突数量等于或者小于预设冲突数量,且候选哈希值分布方差等于或者小于预设方差,确定目标哈希算法。

在一些可选的实施方式中,计算模块505,具体用于根据各初始哈希值,确定各初始哈希值对应的初始哈希值冲突数量,根据初始哈希值冲突数量,确定存在各初始哈希值冲突数量的数据流规则的数量;根据初始哈希值冲突数量,确定初始哈希值冲突数量的种类;根据数据流规则的数量、初始哈希值冲突数量、存在各初始哈希值冲突数量的数据流规则的数量以及初始哈希值冲突数量对应的种类,计算各初始哈希值对应的初始哈希值分布方差。

本实施例中的数据流表生成装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。

上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。

本发明实施例还提供一种电子设备,具有上述图5所示的数据流表生成装置。

请参阅图6,图6是本发明可选实施例提供的一种电子设备的结构示意图,如图6所示,该电子设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器或者多处理器系统)。图6中以一个处理器10为例。

处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。

其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。

存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的电子设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。

该电子设备还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图6中以通过总线连接为例。

输入装置30可接收输入的数字或字符信息,以及产生与该电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。

本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。

虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

相关技术
  • 一种消毒棉签放置盒
  • 一种能自动弹出棉签的棉签盒
  • 一种按压式棉签贮藏盒
  • 一种稳定效果优异的棉签盒
  • 一种新型棉签盒
  • 一种能使棉签自动蘸取消毒制剂的棉签存放盒
  • 一种可回收污染棉签的便携式酒精消毒棉签盒
技术分类

06120116329521