一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于交换树上报五元组的方法、系统、终端及存储介质与流程

2022-03-23 09:20:18 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,更具体地说,涉及一种基于交换树上报五元组的方法、系统、终端及存储介质。


背景技术:

2.随着计算机及物联网设备广泛的使用,网络设备受到安全威胁也与日俱增。攻击者在网络一端通过工具扫描远程计算机,获取远程计算机漏洞,进而攻击远程计算机,进而控制远程计算机,造成安全隐患;防护网络安全有多种方式,其中一种就是,抓取网络数据包,并对数据包进行分析,已发现潜在的安全问题,进而提出改善建议,因此,能够快速抓取数据包并分析成为关键因素。
3.目前,一般常用抓取数据包分析上报五元组的方法有以下两种种:第一种,从数据包解析一个五元组就上报,这种方法会造成频繁的io操作,时间都消耗在网卡io操作上,效率低下;第二种,从数据包解析一个五元组先缓存,到达一定数量开始上报,此方法可以减少io操作,但容易阻塞解析五元组数据,造成丢包。


技术实现要素:

4.本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于交换树上报五元组的方法,还提供了一种基于交换树上报五元组的系统、一种基于交换树上报五元组的终端及一种存储介质。
5.本发明解决其技术问题所采用的技术方案是:
6.构造一种基于交换树上报五元组的方法,其中,包括以下步骤:
7.第一步:生产者线程不断解析数据包提取五元组信息,并把五元组数据插入到a树中,同时,消费者线程从b树读取五元组信息,按照配置上传五元组数据;
8.第二步:在经过一设定时间段后触发树交换,交换线程同时获取读锁和写锁,然后调换读写索引值;
9.第三步:树交换后,原来的a树不再做插入,解析的五元组数据直接插入到b树中,消费者线程不再从b树中拉取数据,直接从a树中拉取数据,然后上报;
10.第四步:在一设定时间段后再次触发树交换,交换线程同时获取读锁和写锁,然后调换读写索引值,跳转至第一步。
11.本发明所述的基于交换树上报五元组的方法,其中,所述第一步中,在向a树进行数据插入操作过程中会合并相同五元组的数据。
12.本发明所述的基于交换树上报五元组的方法,其中,所述第一步中,a树只存储五元组信息和一指向完整数据指针,包含有五元组数据的完整解析数据包信息存储在内存池中;
13.本发明所述的基于交换树上报五元组的方法,其中,还包括方法:分别对所述a树和所述b树中其一索引值赋0,另一索引值赋1;并将写索引write_index和读索引read_
index其一指向0,另一指向1;
14.所述第二步和所述第四步进行索引值调换方法为:调换当前写索引write_index和读索引read_index的指向。
15.一种基于交换树上报五元组的系统,用于实现如上述的基于交换树上报五元组的方法,其中,包括解析数据包单元、上报单元和控制单元;
16.所述解析数据包单元,用于解析数据包提取五元组信息并将五元组数据插入所述控制单元指定的树中;
17.所述上报单元,用于从所述控制单元指定的树中读取五元组信息,按照配置上传五元组数据;
18.所述控制单元,用于在每经过一设定时间段后对当前与所述解析数据包单元对应的树和与所述上报单元对应的树进行索引交换。
19.本发明所述的基于交换树上报五元组的系统,其中,所述解析数据包单元进行数据插入操作过程中会合并相同五元组的数据。
20.本发明所述的基于交换树上报五元组的系统,其中,所述解析数据包单元对树中只存储五元组信息和一指向完整数据指针,对包含有五元组数据的完整解析数据包信息则存储在内存池中。
21.本发明所述的基于交换树上报五元组的系统,其中,所述控制单元进行索引交换操作方式为:
22.对两树分别初始赋值0和1,进行索引交换时修改写索引write_index和读索引read_index的当前的0和1的指向。
23.一种基于交换树上报五元组的终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上述方法的步骤。
24.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其中,所述计算机程序被处理器执行时实现如上述方法的步骤。
25.本发明的有益效果在于:应用本技术的方式方法,交换树由两个独立的多索引容器构成,在经过一定时间后,两棵树进行交换,在树交换前,一棵树用来缓存解析出五元组数据,另一个棵树用来上报五元组数据,上报时可以根据配置一次上报多条数据,这样可达到快速上报之目的,通过两个缓冲区不断交换,既减少io操作,同时又不阻塞数据接受,加速数据上报同时减少丢包。
附图说明
26.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将结合附图及实施例对本发明作进一步说明,下面描述中的附图仅仅是本发明的部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图:
27.图1是本发明较佳实施例的基于交换树上报五元组的方法流程图;
28.图2是本发明较佳实施例的基于交换树上报五元组的系统原理图。
具体实施方式
29.为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明的部分实施例,而不是全部实施例。基于本发明的实施例,本领域普通技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
30.本发明较佳实施例的基于交换树上报五元组的方法,如图1所示,包括以下步骤:
31.s01:生产者线程不断解析数据包提取五元组信息,并把五元组数据插入到a树中,同时,消费者线程从b树读取五元组信息,按照配置上传五元组数据;
32.s02:在经过一设定时间段后触发树交换,交换线程同时获取读锁和写锁,然后调换读写索引值;
33.s03:树交换后,原来的a树不再做插入,解析的五元组数据直接插入到b树中,消费者线程不再从b树中拉取数据,直接从a树中拉取数据,然后上报;
34.s04:在一设定时间段后再次触发树交换,交换线程同时获取读锁和写锁,然后调换读写索引值,跳转至第一步;
35.应用本技术的方式方法,交换树由两个独立的多索引容器构成,在经过一定时间后,两棵树进行交换,在树交换前,一棵树用来缓存解析出五元组数据,另一个棵树用来上报五元组数据,上报时可以根据配置一次上报多条数据,这样可达到快速上报之目的,通过两个缓冲区不断交换,既减少io操作,同时又不阻塞数据接受,加速数据上报同时减少丢包;
36.一种较佳的设置是,每间隔5分钟交换一次,选择这个时间,一来可以尽可能多合并具有相同五元组的数据,二来这个时间不算长,五元组数据不会太多,不会消耗大量内存,还有合并后的五元组数据也不会很多导致树交换时间到达时无法上报完成;当然,可以理解的是还可以根据实际需要选择其他时间长度,基于该处的简单修改均属于本技术保护范畴。
37.优选的,第一步中,在向a树进行数据插入操作过程中会合并相同五元组的数据,由于树使用的是多索引容器,内部实现是散列表,查询及插入数据都极快。
38.优选的,第一步中,a树只存储五元组信息和一指向完整数据指针,包含有五元组数据的完整解析数据包信息存储在内存池中;这样设计,树占用的内存少,可以快速销毁整棵树数据,而不需要遍历树中数据逐个销毁,另外内存池中的数据不用处理,树交换后可以继续使用,只要在程序退出前清理内存池即可,这样可以提高程序的效率;
39.优选的,还包括方法:分别对a树和b树中其一索引值赋0,另一索引值赋1;并将写索引write_index和读索引read_index其一指向0,另一指向1;
40.第二步和第四步进行索引值调换方法为:调换当前写索引write_index和读索引read_index的指向;由于调换索引时间很短,锁定的时间也很短,不会影响数据的接收。
41.一种基于交换树上报五元组的系统,用于实现如上述的基于交换树上报五元组的方法,如图2所示,包括解析数据包单元1、上报单元2和控制单元3;
42.解析数据包单元1,用于解析数据包提取五元组信息并将五元组数据插入控制单元指定的树中;
43.上报单元2,用于从控制单元指定的树中读取五元组信息,按照配置上传五元组数
据;
44.控制单元3,用于在每经过一设定时间段后对当前与解析数据包单元对应的树和与上报单元对应的树进行索引交换;
45.应用本技术的方式方法,交换树由两个独立的多索引容器构成,在经过一定时间后,两棵树进行交换,在树交换前,一棵树用来缓存解析出五元组数据,另一个棵树用来上报五元组数据,上报时可以根据配置一次上报多条数据,这样可达到快速上报之目的,通过两个缓冲区不断交换,既减少io操作,同时又不阻塞数据接受,加速数据上报同时减少丢包;
46.一种较佳的设置是,每间隔5分钟交换一次,选择这个时间,一来可以尽可能多合并具有相同五元组的数据,二来这个时间不算长,五元组数据不会太多,不会消耗大量内存,还有合并后的五元组数据也不会很多导致树交换时间到达时无法上报完成;当然,可以理解的是还可以根据实际需要选择其他时间长度,基于该处的简单修改均属于本技术保护范畴。
47.优选的,解析数据包单元1进行数据插入操作过程中会合并相同五元组的数据,由于树使用的是多索引容器,内部实现是散列表,查询及插入数据都极快。
48.优选的,解析数据包单元1对树中只存储五元组信息和一指向完整数据指针,对包含有五元组数据的完整解析数据包信息则存储在内存池中;这样设计,树占用的内存少,可以快速销毁整棵树数据,而不需要遍历树中数据逐个销毁,另外内存池中的数据不用处理,树交换后可以继续使用,只要在程序退出前清理内存池即可,这样可以提高程序的效率。
49.优选的,控制单元3进行索引交换操作方式为:
50.对两树分别初始赋值0和1,进行索引交换时修改写索引write_index和读索引read_index的当前的0和1的指向;由于调换索引时间很短,锁定的时间也很短,不会影响数据的接收。
51.一种基于交换树上报五元组的终端,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现如上述方法的步骤。
52.一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,其中,计算机程序被处理器执行时实现如上述方法的步骤。
53.应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献