业务流量存储方法、装置、电子设备和存储介质与流程

文档序号:33619424发布日期:2023-03-25 10:45阅读:40来源:国知局
业务流量存储方法、装置、电子设备和存储介质与流程

1.本公开实施例涉及一种业务流量存储方法、装置、电子设备和存储介质。


背景技术:

2.电力系统已全面采用网络层设备进行通道安全防护,近些年来针对104规约的应用层攻击层出不穷。对于威胁采集及分析系统,需要将规约数据进行采集及存储,以便于后续程序对流量进行分析,以及后续审计使用。
3.电力生产控制大区分为安全i区及ii区。安全i区也称实时控制区,业务流量较多,但频率并不太高;安全ii区也称非实时控制区,业务流量较少。
4.相关技术中,对规约流量实现采集一条存储一条的方式固化存储业务流量。这样的存储方式存储效率地下。


技术实现要素:

5.有鉴于此,本技术提供一种业务流量存储方法、装置、电子设备和存储介质,能够提高存储效率。
6.为解决上述技术问题,本技术的技术方案是这样实现的:
7.在一个实施例中,提供了一种业务流量存储方法,所述方法包括:
8.基于采集线程根据当前采集周期的采集速度采集业务流量,并将采集到的业务流量写入第一缓存;其中,所述当前采集周期的采集速度根据存储速度和磁盘io的工作状态确定;所述存储速度和磁盘io的工作状态是能够获取的最新存储周期的存储速度和磁盘io的工作状态;
9.基于分析线程读取所述第一缓存中的所述业务流量进行分析,生成业务数据,并写入第二缓存;
10.基于存储线程读取所述第二缓存中的业务数据按照当前存储周期的存储模式写入数据库;其中,所述当前存储周期的存储模式根据采集速度和磁盘io的工作状态确定;所述采集速度是当前能够获取的最新采集周期的采集速度;所述磁盘io的工作状态为上一存储周期的磁盘io的工作状态。
11.其中,根据存储速度和磁盘io的工作状态确定当前采集周期的采集速度,包括:
12.基于所述存储线程获取最新存储周期的存储速度和磁盘io的工作状态;
13.确定所述存储速度是否大于预设存储速度阈值;
14.响应于所述存储速度已达预设存储速度极限值,通知所述采集线程降低采集速度作为当前采集周期的采集速度;
15.响应于所述存储速度大于预设存储速度阈值,未达预设存储速度极限值,且磁盘io的工作状态为饱和工作状态,通知所述采集线程降低采集速度作为当前采集周期的采集速度;
16.响应于所述存储速度不大于预设存储速度阈值,且磁盘io的工作状态为非饱和工
作状态,通知所述采集线程提高采集速度作为当前采集周期的采集速度。
17.其中,根据采集速度和磁盘io的工作状态确定当前存储周期的存储模式,包括:
18.获取最新采集周期的采集速度,以及上一存储周期的磁盘io的工作状态;其中,所述采集速度是所述采集线程在最新采集周期结束时计算获得的;
19.若采集速度变大,且磁盘io的工作状态未达饱和工作状态,则调整存储模式为存储速度更快的存储模式为当前存储周期的存储模式;
20.若采集速度变小,则调整存储模式为存储速度更小的存储模式作为当前存储周期的存储模式。
21.其中,所述方法进一步包括:
22.基于存储线程周期计算存储速度;
23.比较计算的当前存储周期的存储速度与能获取的最新采集周期的采集速度;
24.响应于所述最新采集周期的采集速度大于所述当前存储周期的存储速度,调整存储模式为存储速度更大的存储模式;
25.响应于所述最新采集周期的采集速度小于所述当前存储周期的存储速度,调整存储模式为存储速度更小的存储模式。
26.其中,所述采集速度包括:第一采集速度、第二采集数据和第三采集速度;其中,所述第一采集速度小于所述第二采集速度;所述第二采集速度小于所述第三采集速度;
27.所述存储模式包括:第一存储模式、第二存储模式和第三存储模式;其中,所述第一存储模式包括第一压缩模式和第一打包模式;所述第二存储模式包括第二压缩模式和第二打包模式;所述第三存储模式包括第三压缩模式和第三打包模式;所述第一存储模式存储数据的速度小于第二存储模式存储数据的速度,所述第二存储模式存储数据的速度小于第三存储模式存储数据的速度。
28.其中,
29.在存储过程中,基于所述第一压缩模式压缩时,业务数据存储内容为原始apdu帧内容;
30.基于所述第二压缩模式压缩时,将u帧、s帧优化处理;
31.基于所述第三压缩模式压缩时,不存储u帧、s帧的apdu内容,对i帧优化处理。
32.其中,
33.在存储过程中,基于所述第一打包模式打包时,分别将每条业务数据写入磁盘数据库中;
34.基于所述第二打包模式打包时,将容量大于预设有序链表容量值的有序链表存储到磁盘数据库中,并清空对应有序链表的内容;所述有序链表存储多条业务数据;
35.基于所述第三打包模式打包时,将存储容量大于预设哈希链表容量值的哈希链表存储到磁盘数据库中,并清空对应的哈希链表的内容;所述哈希链表根据源、目的ip将业务数据加入不同的哈希链表。
36.在另一个实施例中,提供了一种业务流量存储装置,所述装置包括:
37.采集单元,被配置为执行基于采集线程根据当前采集周期的采集速度采集业务流量,并将采集到的业务流量写入第一缓存;其中,所述当前采集周期的采集速度根据上一存储周期存储线程的存储速度,以及io的工作状态确定;
38.分析单元,被配置为执行基于分析线程读取所述第一缓存中的所述业务流量进行分析,生成业务数据,并写入第二缓存;
39.存储单元,被配置为执行基于存储线程读取所述第二缓存中的协议报文按照当前存储周期的存储模式写入数据库;其中,所述当前存储周期的存储模式根据上一采集周期的采集速度和磁盘io的工作状态确定。
40.在另一个实施例中,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述业务流量存储方法的步骤。
41.在另一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述业务流量存储方法的步骤。
42.由上面的技术方案可见,上述实施例中通过采集、分析和存储三个线程协同进行数据的采集、分析和存储,并基于采集速度和磁盘io的工作状态动态调整存储模式,基于存储速度和磁盘io的工作状态动态调整采集速度,让采集、分析和存储根据实际应用情况达到一个平衡状态,进而提高业务流量存储的效率。
附图说明
43.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
44.图1是根据一示例性实施例示出的业务流量存储方法的实施环境示意图;
45.图2是根据一示意性实施例示出的一种业务流量存储方法的流程图;
46.图3是根据一示意性实施例示出的一种定当前采集周期的采集速度的示意图;
47.图4是根据一示意性实施例示出的一种确定当前存储周期的存储模式的示意图;
48.图5为本技术实施例中一个有序链表的结构示意图;
49.图6为本技术实施例中一个哈希链表结构示意图;
50.图7是根据一示意性实施例示出的一种更新存储模式的示意图;
51.图8为本技术实施例中业务流量存储装置结构示意图;
52.图9为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
53.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
54.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,
意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。
55.下面以具体实施例对本发明的技术方案进行详细说明。下面几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
56.当电力系统遭受重放类、ddos类等流量型攻击时,威胁采集与分析系统采集到的业务流量会急剧增多,严重消耗威胁采集及分析系统的系统资源。若业务流量固化率不高,大量的业务流量导致无法实现采集的业务数据均被存储的目的,且当流量越大时固化率越低。
57.特别的当威胁采集及分析系统部署于网省调级别的主站时,倘若子站均出现重放类攻击,主站业务流量较平时有指数级增长。高频的i/o开销导致相关存储方法无法实现对巨大流量的规约数据高效存储,及存储效率低下。
58.基于上述问题,本技术实施例中提供一种业务流量存储方法,可以应用业务流量不稳定的任意场景,如电力104规约的业务流量。在具体实现时,通过采集、分析和存储三个线程协同进行数据的采集、分析和存储,并基于采集速度和磁盘io的工作状态动态调整存储模式,基于存储速度和磁盘io的工作状态动态调整采集速度,让采集、分析和存储根据实际应用情况达到一个平衡状态,进而提高业务流量存储的效率。
59.图1是根据一示例性实施例示出的业务流量存储方法的实施环境示意图。参见图1,在该实施环境中可以包括至少一个采集设备101、分析设备102和存储设备103,下面进行详述。
60.至少一个采集设备101,基于采集线程根据当前采集周期的采集速度采集业务流量,并将采集到的业务流量写入第一缓存;其中,当前采集周期的采集速度根据存储速度和磁盘io的工作状态确定;存储速度和磁盘io的工作状态是能够获取的最新存储周期的存储速度和磁盘io的工作状态;
61.至少一个分析设备102,基于分析线程读取第一缓存中的业务流量进行分析,生成业务数据,并写入第二缓存;
62.至少一个存储设备103,基于存储线程读取第二缓存中的业务数据按照当前存储周期的存储模式写入数据库;其中,当前存储周期的存储模式根据采集速度和磁盘io的工作状态确定;采集速度是当前能够获取的最新采集周期的采集速度;磁盘io的工作状态为上一存储周期的磁盘io的工作状态。
63.上述采集设备101、分析设备102和存储设备103两两之间通过有线或无线通信方式进行直接或间接地连接,本公开实施例对此不进行限定。
64.本领域技术人员可以知晓,上述设备的数量可以更多或更少。比如上述计算机设备可以仅为一个,或者上述终端为几十个或几百个,或者更多数量。本公开实施例对设备的数量不加以限定。
65.参见图2,图2是根据一示意性实施例示出的一种业务流量存储方法的流程图。具体步骤为:
66.在步骤201中,基于采集线程根据当前采集周期的采集速度采集业务流量,并将采集到的业务流量写入第一缓存;其中,当前采集周期的采集速度根据存储速度和磁盘io的
工作状态确定;存储速度和磁盘io的工作状态是能够获取的最新存储周期的存储速度和磁盘io的工作状态。
67.在步骤202中,基于分析线程读取第一缓存中的业务流量进行分析,生成业务数据,并写入第二缓存。
68.在步骤203,基于存储线程读取第二缓存中的业务数据按照当前存储周期的存储模式写入数据库;其中,当前存储周期的存储模式根据采集速度和磁盘io的工作状态确定;采集速度是当前能够获取的最新采集周期的采集速度;磁盘io的工作状态为上一存储周期的磁盘io的工作状态。
69.本实施例中通过采集、分析和存储三个线程协同进行数据的采集、分析和存储,并基于采集速度和磁盘io的工作状态动态调整存储模式,基于存储速度和磁盘io的工作状态动态调整采集速度,让采集、分析和存储根据实际应用情况达到一个平衡状态,进而提高业务流量存储的效率。
70.本技术实施例中以104规约的业务流量的存储为例:
71.下面先对104公约进行简单介绍:
72.iec104规约采用tcp 2404端口通讯,104规约载荷apdu在ip报文的tcp头之后的位置。apdu格式参见表1,表1为apdu格式示意内容。
[0073][0074]
表1
[0075]
iec104规约中定义了三种帧类型,分别为u帧、s帧和i帧。
[0076]
参见表2,表2为u帧包含内容的示意图。u帧:控制功能帧,只包含apci部分,6个字节长度。
[0077][0078]
表2
[0079]
startdt:用于启动传输,只有发送了这条命令,对方才会将数据发送过来,也只有发送了这条命令,才代表本方程序会解析发送过来的数据。
[0080]
stopdt:用于停止传输,发送了这条命令,代表不必发送数据过来了,并且本方也不会再解析任何收到的数据。
[0081]
testfr:用于双方都空闲,无话可说的时候定时问候一下,代表对方还处于正常的服务状态。
[0082]
参见表3,表3为s帧包含内容的示意图。s帧:i帧的确认帧,只包含apci部分,6个字节长度。
[0083][0084]
表3
[0085]
主站可按频率发送s帧,比如接收8帧i帧回答一帧s帧,也可以接收1帧i帧就应答1帧s帧。与104规约中的特定参数有关。
[0086]
i帧:信息帧,用于信息交互,包括遥信、遥测、遥控、遥调、遥脉、对时、测试、复位等功能报文。
[0087]
基于104规约的业务流量的分析可以为包括如下步骤:
[0088]
识别104规约,并提取出流量中的收发ip及104规约apdu报文。
[0089]
分析线程依据104规约解析插件模板,识别出i帧、u帧、s帧,判断出该apdu报文是否异常。
[0090]
分析线程将收发ip、apdu报文类型、是否正常等信息组织在一起,共同写入到规约缓存中。
[0091]
存储线程包括对业务数据的归并、压缩、打包和写入磁盘数据库。
[0092]
在一些示例中,根据存储速度和磁盘io的工作状态确定当前采集周期的采集速度,包括:
[0093]
基于存储线程获取最新存储周期的存储速度和磁盘io的工作状态;
[0094]
确定存储速度是否大于预设存储速度阈值;
[0095]
响应于存储速度已达预设存储速度极限值,通知采集线程降低采集速度作为当前采集周期的采集速度;
[0096]
响应于存储速度大于预设存储速度阈值,未达预设存储速度极限值,且磁盘io的工作状态为饱和工作状态,通知采集线程降低采集速度作为当前采集周期的采集速度;
[0097]
响应于存储速度不大于预设存储速度阈值,且磁盘io的工作状态为非饱和工作状态,通知采集线程提高采集速度作为当前采集周期的采集速度。
[0098]
在一些示例中,根据采集速度和磁盘io的工作状态确定当前存储周期的存储模式,包括:
[0099]
获取最新采集周期的采集速度,以及上一存储周期的磁盘io的工作状态;其中,采集速度是采集线程在最新采集周期结束时计算获得的;
[0100]
若采集速度变大,且磁盘io的工作状态未达饱和工作状态,则调整存储模式为存储速度更快的存储模式为当前存储周期的存储模式;
[0101]
若采集速度变小,则调整存储模式为存储速度更小的存储模式作为当前存储周期的存储模式。
[0102]
在一些示例中,该方法进一步包括:
[0103]
基于存储线程周期计算存储速度;
[0104]
比较计算的当前存储周期的存储速度与能获取的最新采集周期的采集速度;
[0105]
响应于最新采集周期的采集速度大于当前存储周期的存储速度,调整存储模式为存储速度更大的存储模式;
[0106]
响应于最新采集周期的采集速度小于当前存储周期的存储速度,调整存储模式为存储速度更小的存储模式。
[0107]
在一些示例中,采集速度包括:第一采集速度、第二采集数据和第三采集速度;其中,第一采集速度小于第二采集速度;第二采集速度小于第三采集速度;
[0108]
存储模式包括:第一存储模式、第二存储模式和第三存储模式;其中,第一存储模式包括第一压缩模式和第一打包模式;第二存储模式包括第二压缩模式和第二打包模式;第三存储模式包括第三压缩模式和第三打包模式;第一存储模式存储数据的速度小于第二存储模式存储数据的速度,第二存储模式存储数据的速度小于第三存储模式存储数据的速度。
[0109]
在一些示例中,
[0110]
在存储过程中,基于第一压缩模式压缩时,业务数据存储内容为原始apdu帧内容;
[0111]
基于第二压缩模式压缩时,将u帧、s帧优化处理;
[0112]
基于第三压缩模式压缩时,不存储u帧、s帧的apdu内容,对i帧优化处理。
[0113]
在一些示例中,
[0114]
在存储过程中,基于第一打包模式打包时,分别将每条业务数据写入磁盘数据库中;
[0115]
基于第二打包模式打包时,将容量大于预设有序链表容量值的有序链表存储到磁盘数据库中,并清空对应有序链表的内容;有序链表存储多条业务数据;
[0116]
基于第三打包模式打包时,将存储容量大于预设哈希链表容量值的哈希链表存储到磁盘数据库中,并清空对应的哈希链表的内容;哈希链表根据源、目的ip将业务数据加入不同的哈希链表。
[0117]
本技术实施例中,采集流程有自己的采集周期,存储流程有自己的存储周期,采集周期和存储周期可以相同,也可以不相同。通常采集流程的周期从采集流量开始算起,存储周期从开始存储业务数据算起;当前采集周期指当前正在采集业务流量的周期,该采集周期从开始到结束的整个周期;当前存储周期指当前正在存储业务数据的周期,该存储周期从开始到结束的整个周期。
[0118]
图3是根据一示意性实施例示出的一种定当前采集周期的采集速度的示意图。具体步骤为:
[0119]
在步骤301中,基于存储线程获取最新存储周期的存储速度和磁盘io的工作状态。
[0120]
基于存储线程在一个存储周期结束时,都会计算该存储周期的存储速度,并获取该存储周期的磁盘io的工作状态。
[0121]
在步骤302中,确定存储速度是否大于预设存储速度阈值。
[0122]
在步骤303中,响应于存储速度已达预设存储速度极限值,通知采集线程降低采集速度作为当前采集周期的采集速度。结束本流程。
[0123]
其中,预设存储速度阈值小于预设存储速度极限值。
[0124]
本技术实施例中,不会一点一点调整采集速度,主要设置三个档位的采集速度,如第一采集速度、第二采集数据和第三采集速度;其中,第一采集速度小于第二采集速度;第二采集速度小于第三采集速度;第一采集速度如设置为500mbps,第二采集速度如设置为800mbps,第三采集速度如设置为1gbbps,具体实现时不限于采集速度的个数,也不限于上述具体速度数值的设置。
[0125]
在步骤304中,响应于存储速度大于预设存储速度阈值,未达预设存储速度极限值,且磁盘io的工作状态为饱和工作状态,通知采集线程降低采集速度作为当前采集周期的采集速度。结束本流程。
[0126]
步骤303和步骤304中,降低采集速度作为当前采集周期的采集速度,这里通常是从当前的采集速度降到最接近该采集速度的低速度,如从第三采集速度降到第二采集速度,从第二采集速度降到第一采集速度,如果当前已经是最低采集速度,则不再降低采集速度。
[0127]
在步骤305中,响应于存储速度不大于预设存储速度阈值,且磁盘io的工作状态为非饱和工作状态,通知采集线程提高采集速度作为当前采集周期的采集速度。
[0128]
提高采集速度作为当前采集周期的采集速度,这里通常是从当前的采集速度提高到最接近该速度的高速度,如从第二采集速度提高到第三采集速度,从第一采集速度提高到第二采集速度,如果当前已经是最高采集速度,则不再提高采集速度。
[0129]
采集速度根据存储线程的存储效果进行调整:当存储线程调整到高速的存储模式后,磁盘io仍处于过饱和状态,或饱和状态,需通知采集线程降低采集速度;当存储线程的存储模式为第一存储模式,磁盘io仍处于不饱和状态,则需要提高采集速度。
[0130]
图4是根据一示意性实施例示出的一种确定当前存储周期的存储模式的示意图。具体步骤为:
[0131]
在步骤401中,获取最新采集周期的采集速度,以及上一存储周期的磁盘io的工作状态;其中,采集速度是采集线程在最新采集周期结束时计算获得的。
[0132]
获取最新采集周期的采集速度,即获取最接近当前,且当前已经结束的采集周期的采集速度。
[0133]
在步骤402中,若采集速度变大,且磁盘io的工作状态未达饱和工作状态,则调整存储模式为存储速度更快的存储模式为当前存储周期的存储模式。结束本流程。
[0134]
这里的采集速度变大,不是一点变化,就更新,而是从原来处于第一采集速度,现在的采集速度大于等于第二采集速度;从原来处理第二采集速度,现在的采集速度大于等于第三采集速度,则确定采集速度变大。
[0135]
本技术实施例中针对存储模式设置了三种存储模式,但是不限于这种限制,具体为:
[0136]
第一存储模式、第二存储模式和第三存储模式;其中,第一存储模式包括第一压缩模式和第一打包模式;第二存储模式包括第二压缩模式和第二打包模式;第三存储模式包括第三压缩模式和第三打包模式;第一存储模式存储数据的速度小于第二存储模式存储数据的速度,第二存储模式存储数据的速度小于第三存储模式存储数据的速度。
[0137]
在存储过程中,针对业务数据的存储格式参见表4,表4为业务数据存储格式示意内容。
[0138]
源ip目的ip业务数据类型业务数据存储内容4字节4字节1字节 [0139]
表4
[0140]
其中,业务数据类型1个字节定义见表5,表5为业务数据类型的1个字节定义内容。
[0141][0142]
表5
[0143]
其中,第一存储模式也可以称为标准存储模式,第一压缩模式可以称为标准压缩模式,第一打包模式可以称为标准打包模式。
[0144]
基于第一压缩模式压缩时,业务数据存储内容为原始apdu帧内容;
[0145]
基于第一打包模式打包时,分别将每条业务数据写入磁盘数据库中;
[0146]
基于第二压缩模式压缩时,将u帧、s帧优化处理;即不存储u帧的apdu内容。
[0147]
对于s帧,以源ip、目的ip为索引构造哈希链表,将每个s帧的c2、c3字段,存储在哈希表中。
[0148]
低速模式时,将哈希值相同的链表中,每20个s帧,只将最后一个s帧的c2、c3字段,存储到规约存储内容中。
[0149]
基于第二打包模式打包时,将容量大于预设有序链表容量值的有序链表存储到磁
盘数据库中,并清空对应有序链表的内容;有序链表存储多条业务数据;
[0150]
该打包模式下,存储线程将准备好的每一条业务数据建立成一个有序链表,当有序链表容量大于预设有序链表容量值时,该阈值根据内存大小调整,可以设置为100mb,但是不限于该值,有序的将链表内容写入磁盘数据库中,并清空该链表的内容。
[0151]
参见图5,图5为本技术实施例中一个有序链表的结构示意图。其中每个存储单元对应一条业务数据,每条业务数据存储的内容包括源ip、目的ip、业务数据类型,业务数据存储内容,存储单元总数为业务数据的总条数,存储类型为有序链表。
[0152]
基于第三压缩模式压缩时,不存储u帧、s帧的apdu内容,对i帧优化处理。
[0153]
因为104规约的apdu的长度不超过256字节,所以制定如下优化方法:
[0154]
使用一个字节t表示连续n个1或0,其中高位表示连续的是1或是0,后7位表示n的值。见表6,表6为第三压缩模式下的一个字节t所表示的内容。
[0155][0156]
表6
[0157]
将apci中c1/c2/c3/c4连同asdu数据转换成二进制,并字符串化,总长度为(8*apdu长度l)。从c1开始依次统计连续0或1的个数,累计个数等于127或连续序列被1或0被打断后,增加一个新的字节继续统计剩余字符串中连续0或1的个数。直至遍历完asdu。
[0158]
参见表7,表7为在第三压缩模式下格式调整先后示意的内容。
[0159][0160][0161]
表7
[0162]
基于第三打包模式打包时,将存储容量大于预设哈希链表容量值的哈希链表存储到磁盘数据库中,并清空对应的哈希链表的内容;哈希链表根据源、目的ip将业务数据加入不同的哈希链表。
[0163]
该打包模式下,存储线程根据源、目的ip将准备好的规约数据建成多个哈希链表,当整个哈希链表的容量大于预设哈希链表容量值时,将哈希链表的内容有序的写入磁盘数
据库中,并清空该哈希链表的内容。
[0164]
存储模式调整为存储速度更大的存储模式,即存储模式由第一存储模式调整到第二存储模式,存储模式由第二存储模式调整为第三存储模式,如果已是第三存储模式,则不进行模式调整。
[0165]
参见图6,图6为本技术实施例中一个哈希链表结构示意图。图6中存储类型为哈希链表,存储单元总数,指存储业务数据的条数,不同存储单元存储不同源ip和目的ip对应的业务数据,相同存储单元存储相同源ip和目的ip对应的业务数据。
[0166]
在步骤403中,若采集速度变小,则调整存储模式为存储速度更小的存储模式作为当前存储周期的存储模式。
[0167]
这里的采集速度变小,不是一点变化,就更新,而是从原来处于第三采集速度,现在的采集速度小于等于第二采集速度;从原来处理第二采集速度,现在的采集速度小于等于第一采集速度,则确定采集速度变小。
[0168]
存储模式调整为存储速度更小的存储模式,即存储模式由第三存储模式调整到第二存储模式,存储模式由第二存储模式调整为第一存储模式,如果已是第一存储模式,则不进行模式调整。
[0169]
在具体实现时,存储线程还可以根据存储速度,以及能够获取的最新的采集速度确定是否更新存储模式,具体实现如下:
[0170]
图7是根据一示意性实施例示出的一种更新存储模式的示意图。具体步骤为:
[0171]
在步骤701中,基于存储线程周期计算存储速度。
[0172]
在步骤702中,比较计算的当前存储周期的存储速度与能获取的最新采集周期的采集速度。
[0173]
能获取的最新采集周期的采集速度,即当前最后结束的一个采集周期的采集速度,采集线程会在一个采集线程结束,计算该采集线程的采集速度,并推送给存储线程。
[0174]
在步骤703中,响应于最新采集周期的采集速度大于当前存储周期的存储速度,调整存储模式为存储速度更大的存储模式。结束本流程。
[0175]
如当前存储模式为第一存储模式,则调整为第二存储模式;如当前存储模式为第二存储模式,则调整为第三存储模式;若当前存储模式为第三存储模式,则不再调整。
[0176]
在步骤704中,响应于最新采集周期的采集速度小于当前存储周期的存储速度,调整存储模式为存储速度更小的存储模式。
[0177]
如当前存储模式为第三存储模式,则调整为第二存储模式;如当前存储模式为第二存储模式,则调整为第一存储模式;若当前存储模式为第一存储模式,则不再调整。
[0178]
本技术实施例中基于存储速度和磁盘io的工作状态调整采集速度,基于采集速度和磁盘io的工作状态调整存储模式,基于存储速度和采集速度调整存储模式,这种采用动态-反馈-调整的机制进行流量采集及规约存储,通过对比采集流量的大小与系统负载情况,及时调整存储速度;同时,监视存储过程中系统资源的开销情况,反过来调整采集速度,最终实现采集及存储以绿波速度工作。能够在节省资源的情况下,提高存储效率。多种打包模式和压缩模式相结合可适应不同场景、不同速度要求的存储功能。
[0179]
针对压缩的三种模式进行压缩过程中,对业务数据的i帧部分进行二进制序列化处理,采用一个字节表示连续多个0或连续多个1,有效的将业务数据的长度缩短。对业务数
据的s帧部分利用业务自身特征,只记录连续多个s帧的最后一帧,有效的减少了s帧的数量。
[0180]
本技术实施例中应用于104规约流量存储场景中,能够大大提高104规约流量的固化速度,当电力系统遭受重放类、ddos类等流量型攻击时,可根据实时流量的大小动态的调整规约固化速度。同时,本发明可根据固化时的磁盘及系统开销,实时的调整流量的采集速度,可有效的保持系统处于一个正常、可用的运行水平。从而进一步最大化的高效固化规约流量。
[0181]
基于同样的发明构思,本技术实施例中还提供一种业务流量存储装置。参见图8,图8为本技术实施例中业务流量存储装置结构示意图。该业务流量存储装置包括:
[0182]
采集单元801,被配置为执行基于采集线程根据当前采集周期的采集速度采集业务流量,并将采集到的业务流量写入第一缓存;其中,所述当前采集周期的采集速度根据上一存储周期存储线程的存储速度,以及io的工作状态确定;
[0183]
分析单元802,被配置为执行基于分析线程读取所述第一缓存中的所述业务流量进行分析,生成业务数据,并写入第二缓存;
[0184]
存储单元803,被配置为执行基于存储线程读取所述第二缓存中的协议报文按照当前存储周期的存储模式写入数据库;其中,所述当前存储周期的存储模式根据上一采集周期的采集速度和磁盘io的工作状态确定。
[0185]
在另一个实施例中,
[0186]
存储单元803,被配置为根据存储速度和磁盘io的工作状态确定当前采集周期的采集速度时,基于所述存储线程获取最新存储周期的存储速度和磁盘io的工作状态;确定所述存储速度是否大于预设存储速度阈值;响应于所述存储速度已达预设存储速度极限值,通知所述采集线程降低采集速度作为当前采集周期的采集速度;响应于所述存储速度大于预设存储速度阈值,未达预设存储速度极限值,且磁盘io的工作状态为饱和工作状态,通知所述采集线程降低采集速度作为当前采集周期的采集速度;响应于所述存储速度不大于预设存储速度阈值,且磁盘io的工作状态为非饱和工作状态,通知所述采集线程提高采集速度作为当前采集周期的采集速度。
[0187]
在另一个实施例中,
[0188]
存储单元803,被配置为执行根据采集速度和磁盘io的工作状态确定当前存储周期的存储模式时,获取最新采集周期的采集速度,以及上一存储周期的磁盘io的工作状态;其中,所述采集速度是所述采集线程在最新采集周期结束时计算获得的;若采集速度变大,且磁盘io的工作状态未达饱和工作状态,则调整存储模式为存储速度更快的存储模式为当前存储周期的存储模式;若采集速度变小,则调整存储模式为存储速度更小的存储模式作为当前存储周期的存储模式。
[0189]
在另一个实施例中,
[0190]
存储单元803,被配置为执行基于存储线程周期计算存储速度;比较计算的当前存储周期的存储速度与能获取的最新采集周期的采集速度;响应于所述最新采集周期的采集速度大于所述当前存储周期的存储速度,调整存储模式为存储速度更大的存储模式;响应于所述最新采集周期的采集速度小于所述当前存储周期的存储速度,调整存储模式为存储速度更小的存储模式。
[0191]
在另一个实施例中,
[0192]
所述采集速度包括:第一采集速度、第二采集数据和第三采集速度;其中,所述第一采集速度小于所述第二采集速度;所述第二采集速度小于所述第三采集速度;
[0193]
所述存储模式包括:第一存储模式、第二存储模式和第三存储模式;其中,所述第一存储模式包括第一压缩模式和第一打包模式;所述第二存储模式包括第二压缩模式和第二打包模式;所述第三存储模式包括第三压缩模式和第三打包模式;所述第一存储模式存储数据的速度小于第二存储模式存储数据的速度,所述第二存储模式存储数据的速度小于第三存储模式存储数据的速度。
[0194]
在另一个实施例中,
[0195]
在存储过程中,基于所述第一压缩模式压缩时,业务数据存储内容为原始apdu帧内容;
[0196]
基于所述第二压缩模式压缩时,将u帧、s帧优化处理;
[0197]
基于所述第三压缩模式压缩时,不存储u帧、s帧的apdu内容,对i帧优化处理。
[0198]
在另一个实施例中,
[0199]
在存储过程中,基于所述第一打包模式打包时,分别将每条业务数据写入磁盘数据库中;
[0200]
基于所述第二打包模式打包时,将容量大于预设有序链表容量值的有序链表存储到磁盘数据库中,并清空对应有序链表的内容;所述有序链表存储多条业务数据;
[0201]
基于所述第三打包模式打包时,将存储容量大于预设哈希链表容量值的哈希链表存储到磁盘数据库中,并清空对应的哈希链表的内容;所述哈希链表根据源、目的ip将业务数据加入不同的哈希链表。
[0202]
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
[0203]
在另一个实施例中,还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现业务流量存储方法的步骤。
[0204]
在另一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机指令,指令被处理器执行时业务流量存储方法中的步骤。
[0205]
图9为本发明实施例提供的电子设备的实体结构示意图。如图9所示,该电子设备可以包括:处理器(processor)910、通信接口(communications interface)920、存储器(memory)930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行如下方法:
[0206]
基于采集线程根据当前采集周期的采集速度采集业务流量,并将采集到的业务流量写入第一缓存;其中,当前采集周期的采集速度根据存储速度和磁盘io的工作状态确定;存储速度和磁盘io的工作状态是能够获取的最新存储周期的存储速度和磁盘io的工作状态;
[0207]
基于分析线程读取第一缓存中的业务流量进行分析,生成业务数据,并写入第二缓存;
[0208]
基于存储线程读取第二缓存中的业务数据按照当前存储周期的存储模式写入数据库;其中,当前存储周期的存储模式根据采集速度和磁盘io的工作状态确定;采集速度是
当前能够获取的最新采集周期的采集速度;磁盘io的工作状态为上一存储周期的磁盘io的工作状态。
[0209]
此外,上述的存储器930中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0210]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0211]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0212]
本技术附图中的流程图和框图,示出了按照本技术公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或者代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应该注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同附图中所标准的顺序发生。例如,两个连接地表示的方框实际上可以基本并行地执行,它们有时也可以按照相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或者流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0213]
本领域技术人员可以理解,本技术公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本技术中。特别地,在不脱离本技术精神和教导的情况下,本技术的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,所有这些组合和/或结合均落入本技术公开的范围。
[0214]
本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思路,并不用于限制本技术。对于本领域的技术人员来说,可以依据本发明的思路、精神和原则,在具体实施方式及应用范围上进行改变,其所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1