高效流量捕获、重组、持久化及负载均衡的综合解决方法与流程

文档序号:36512192发布日期:2023-12-29 15:08阅读:21来源:国知局
高效流量捕获的制作方法

本发明属于网络空间安全,特别是涉及高效流量捕获、重组、持久化及负载均衡的综合解决方法。


背景技术:

1、对于网络中传输的数据进行重组、还原和存储是网络流量分析和检测的基础步骤,为后续流量审计提供了必要的支持数据;在目前的网络流量捕获、重组和持久化技术领域,目前已经存在了一些解决方案:(1)数据包捕获:数据包捕获是流量分析的起点,已有多种产品和技术可供选择,常见的工具包括wireshark和tcpdump等;这些技术通常使用与操作系统内核分离的流量采集库,等待网络适配器接收流量后触发中断信号,将数据包内容复制到内核缓冲区,然后再传送至用户空间缓冲区;然后,在高带宽网络环境中,这些方法可能面临资源消耗过大等问题;(2)流量重组:流量充足是指将散布在数据包中的信息重新组装成完整的数据流;一些数据包捕获软件也包含流量重组功能,但这些产品主要在用户空间操作,可能会存在效率瓶颈,尤其是在高带宽网络环境中表现不佳;(3)流量持久化:目前,主流的数据包采集设备通常不会在数据包捕获时进行流量持久化处理,而是将待处理的流量全部存储于内存中进行操作;然后,由于网络流量数据通常具有大数据量和长时间持久性的特点,如果将所有网络流数据缓存在内存中,内存处理能力可能会无法满足要求。

2、上述现有的技术及产品存在如下不足:(1)资源消耗问题:许多现有的网络流量捕获和分析工具在数据包捕获和处理时需要大量的系统资源,尤其是在高宽带网络环境中,可能会导致资源耗尽和性能下降的问题;(2)效率瓶颈:一些同类产品在流量充足和持久化方面存在效率瓶颈,因为它们主要是在用户空间进行操作,将可能导致在处理大规模流量时速度变慢,无法满足快速网络通信的需求;(3)内存资源:现有的流量持久化方法通常将所有数据缓存在内存中,这对于大规模和长时间运行的网络流量来说可能会导致内存管理挑战,最终影响系统的稳定性和性能;(4)负载均衡不足:在高负载环境下,一些现有解决方案可能无法有效地分配流量到不同的处理单元,导致性能不均匀和资源浪费。


技术实现思路

1、本发明提供了高效流量捕获、重组、持久化及负载均衡的综合解决方法,对于资源效率的问题,通过采用一种主动轮询网络接口的方法,实时检查数据包的到达情况,同时为了避免没有实际网络流量传输轮询请求造成的系统资源浪费,采用一种中断缓解技术机制,将会在足够多的数据包的时候会因轮询请求,并一次性将网络适配数据包缓冲区的多个数据包返回给轮询请求;并将网络流量数据通过直接内存存取方式直接传输到用户空间进程的内存中,该创新将降低内存复制的次数,提高网络数据包处理效率;对于效率瓶颈的问题,通过在网络流量充足技术方面引入基于多重哈希的网络数据流多核负载均衡技术,该方法将能够充分利用多核cpu的计算能力,从而显著优化流量的实时重组性能,提高流量重组的效率;对于内存资源消耗问题:通过设计一个超时流量检测队列,该队列不仅能够对超时的数据流进行持久化处理,还能够检测每个网络流的大小,如果某个网络流的大小超过了一定阈值,则系统将对其进行分批持久化操作,从而有效减轻了流重组过程中内存设备的压力;综上,解决了背景技术中的问题。

2、为解决上述技术问题,本发明是通过以下技术方案实现的:

3、本发明的高效流量捕获、重组、持久化及负载均衡的综合解决方法,包括如下步骤:

4、s1、流量捕获:使用轮询模式驱动,在网络驱动轮询过程中,通过直接内存存取方式将数据包直接传输至用户空间进程的内存中,减少内存复制的次数,提高了网络数据包处理效率;

5、s2、流量重组:使用多重哈希的网络数据流多核负载均衡技术,将相同会话的流量分配到同一cpu核心上,以优化流量的实时重组性能,每一个重组维护一个流表,记录每个网络流的状态,包括源ip、目的ip、源端口和目的端口信息,以便后续的流量重组;

6、s3、流量持久化:设计一个超时流检测队列用于标记和处理超时的网络流,以降低性能开销和内存资源消耗;当网络流量规模超过一定阈值时,将网络流数据从内存设备持久化到硬盘中,但保留流表中的相应位置,以确保流会话不会中断;引入分批缓存标记,用于标记已持久化但未结束的网络流数据,以确保在多次持久化过程中,相同网络流数据始终被写入同一个文件;最后通过网络数据持久化模块将输入的网络数据存储成文件并写入硬盘,以进行数据持久化操作。

7、进一步地,所述流量捕获采用数据包捕获机制,即轮询模式驱动,该模式下,不再等待中断信号,而是通过不断向网络驱动程序轮询是否能够获取到数据包,从而实现更高的网络数据包处理效率。

8、进一步地,在网络驱动轮询过程中,还采用中断缓解技术机制,只在有足够多的数据包的时候回应轮询请求,并一次性将网络适配器数据包缓冲区的多个数据包返回给轮询请求。

9、进一步地,所述流量重组具体采用网络流重组模块对网络流量进行重组和还原,在网络流重组模块中引入一种多重哈希的负载均衡技术,用于解决同一流中双向数据包可能被分配到不同处理器以及多核处理器的负载不均衡;

10、其具体是将cpu的逻辑核心分为捕获核与重组核两部分,在数据包分发至cpu时,首先经过cpu自带的rss功能,执行toeplitz哈希计算,并根据不同的哈希计算结果将网络数据包分配至不同的哈希计算结果将网络数据包分配至不同的捕获核对应的数据包缓冲队列中,一旦捕获核获取了数据包将进行第二次哈希计算,具体哈希计算方法如下:

11、

12、

13、hresult=hkey1&hkey2

14、这次的输入包括连接的四元组:源ip(sip)、目的ip(dip)、源端口(sport)和目的端口(dport),通过上述哈希计算方法,确保同一会话中双向数据包计算出相同的哈希值,该算法主要采用异或运算,既增加了参数对计算结果的影响,又减少了寄存器的使用,无需担心计算结果溢出问题,从而降低运算量;

15、随后,捕获核根据第二次哈希计算的结果将数据包分配至重组核;每个重组核维护着一个流表,用于存储源ip(sip)、目的ip(dip)、源端口(sport)和目的端口(dport)相同的一组数据包,这样的一组数据包被称为一个网络流;在捕获核分配数据包之前,首先会查找要分配至的重组核中的流表,判断是否已经存在当前数据包对应的网络流;如果能够查询到对应的网络流,将该网络流数据添加到流表的相应项中;如果在相应的流表中没有查询到对应的网络流,将逐个查询其他重组核的流表;如果在其他重组核的流表中找到了该数据包所属的数据流,表示该流数据已经通过负载均衡方案分配至该重组核处理,将流数据传递至对应重组核的数据包缓冲队列中;否则,表明该数据包对应的流数据是一条新的连接;在处理新连接时,需要计算cpu负载均衡度;如果cpu负载均衡度超过了阈值,将剔除负载最重的cpu核心,重新进行哈希计算;计算完成后,根据哈希值将数据包分配至相应的重组核,并在重组核的流表中创建这条数据流的记录。

16、进一步地,所述哈希计算方法是使用网络流的关键信息生成一个哈希值,以便将网络流分配到不同的处理核心中,哈希计算方法对应公式具体表达如下含义:

17、第一步:首先将源ip地址和目的ip地址都右移16位,这将提取每个ip地址的高16位;右移运算符(>>)将ip地址的高位部分提取出来;接着将这两个16位的ip地址的高位进行按位异或(xor)运算,然后再与源端口(sport)进行按位异或运算;这将创建一个哈希键hkey1。

18、第二步是:首先对源ip地址(sip)和目的ip地址(dip)分别执行位掩码操作,即将每个ip地址的低16位保留下来;这是通过将ip地址与0x0000ffff进行按位与(and)运算来实现的;然后,将这两个16位的低位ip地址与目的端口(dport)进行按位异或(xor)运算,得到哈希键hkey2;

19、第三步:最后,将hkey1和hkey2进行按位与(and)运算,得到最终的哈希结果hresult。

20、进一步地,所述cpu负载均衡度采用如下计算公式:

21、

22、其中,pi(t)表示在t时刻cpu第i个核的利用效率,n为cpu多核处理器的核心数量;当负载均衡度的值高于0.2时,对处理器的负载进行调整可以获得更好的效果,即当负载均衡值超过0.2时,将剔除负载最大的cpu核心,重新进行哈希计算并分配至相应的cpu核心,从而实现cpu多核处理器之间的数据处理负载均衡。

23、进一步地,所述超时流检测队列用于标记每个特定网络流在流表中的具体位置,超时流检测队列采用链表形式记录每个流的位置,并采用lru思想实现,以便快速处理超时流并进行相应的持久化操作;在超时流检测队列中,通过从最久未使用的流向前遍历最近使用的流队列,当遍历到超时时间超过阈值的网络流时,将该流从流表中删除并传递给持久化模块,而未超时的网络流则停止遍历。

24、本发明相对于现有技术包括有以下有益效果:

25、(1)资源效率提升:本发明采用了轮询模式驱动以及直接内存存取方式,相对于传统的中断驱动方式,显著减少了系统资源的消耗;这意味着在高带宽网络环境下,本发明能够更高效地进行流量捕获,降低了资源紧张和性能下降的风险。

26、(2)效率瓶颈克服:通过引入多重哈希的网络数据流多核负载均衡技术,本发明充分利用了多核cpu计算能力,优化了流量的实时重组性能。这样可以处理更多的网络流量并提高流量重组效率,避免了传统方法中的效率瓶颈。

27、(3)内存资源节省:通过超时流检测队列和分批缓存标记,本发明有效降低了内存资源的使用,特别是在处理大量和长时间持续的网络流时。这减轻了内存设备的压力,确保了系统的稳定性和性能。

28、当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1