高效流量捕获制造技术

技术编号:39898915 阅读:9 留言:0更新日期:2023-12-30 13:12
本发明专利技术公开了高效流量捕获

【技术实现步骤摘要】
高效流量捕获、重组、持久化及负载均衡的综合解决方法


[0001]本专利技术属于网络空间安全
,特别是涉及高效流量捕获

重组

持久化及负载均衡的综合解决方法


技术介绍

[0002]对于网络中传输的数据进行重组

还原和存储是网络流量分析和检测的基础步骤,为后续流量审计提供了必要的支持数据;在目前的网络流量捕获

重组和持久化
,目前已经存在了一些解决方案:
(1)
数据包捕获:数据包捕获是流量分析的起点,已有多种产品和技术可供选择,常见的工具包括
Wireshark

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

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


技术实现思路

[0004]本专利技术提供了高效流量捕获

重组

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

[0005]为解决上述技术问题,本专利技术是通过以下技术方案实现的:
[0006]本专利技术的高效流量捕获

重组

持久化及负载均衡的综合解决方法,包括如下步骤:
[0007]S1、
流量捕获:使用轮询模式驱动,在网络驱动轮询过程中,通过直接内存存取方式将数据包直接传输至用户空间进程的内存中,减少内存复制的次数,提高了网络数据包处理效率;
[0008]S2、
流量重组:使用多重哈希的网络数据流多核负载均衡技术,将相同会话的流量分配到同一
CPU
核心上,以优化流量的实时重组性能,每一个重组维护一个流表,记录每个网络流的状态,包括源
IP、
目的
IP、
源端口和目的端口信息,以便后续的流量重组;
[0009]S3、
流量持久化:设计一个超时流检测队列用于标记和处理超时的网络流,以降低性能开销和内存资源消耗;当网络流量规模超过一定阈值时,将网络流数据从内存设备持久化到硬盘中,但保留流表中的相应位置,以确保流会话不会中断;引入分批缓存标记,用于标记已持久化但未结束的网络流数据,以确保在多次持久化过程中,相同网络流数据始终被写入同一个文件;最后通过网络数据持久化模块将输入的网络数据存储成文件并写入硬盘,以进行数据持久化操作

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

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

[0012]进一步地,所述流量重组具体采用网络流重组模块对网络流量进行重组和还原,在网络流重组模块中引入一种多重哈希的负载均衡技术,用于解决同一流中双向数据包可能被分配到不同处理器以及多核处理器的负载不均衡;
[0013]其具体是将
CPU
的逻辑核心分为捕获核与重组核两部分,在数据包分发至
CPU
时,首先经过
CPU
自带的
RSS
功能,执行
Toeplitz
哈希计算,并根据不同的哈希计算结果将网络数据包分配至不同的哈希计算结果将网络数据包分配至不同的捕获核对应的数据包缓冲队列中,一旦捕获核获取了数据包将进行第二次哈希计算,具体哈希计算方法如下:
[0014][0015][0016]HRESULT

HKEY1&HKEY2
[0017]这次的输入包括连接的四元组:源
IP(SIP)、
目的
IP(DIP)、
源端口
(SPORT)
和目的端口
(DPORT)
,通过上述哈希计算方法,确保同一会话中双向数据包计算出相同的哈希值,该算法主要采用异或运算,既增加了参数对计算结果的影响,又减少了寄存器的使用,无需担心计算结果溢出问题,从而降低运算量;
[0018]随后,捕获核根据第二次哈希计算的结果将数据包分配至重组核;每个重组核维护着一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
高效流量捕获

重组

持久化及负载均衡的综合解决方法,其特征在于,包括如下步骤:
S1、
流量捕获:使用轮询模式驱动,在网络驱动轮询过程中,通过直接内存存取方式将数据包直接传输至用户空间进程的内存中,减少内存复制的次数,提高了网络数据包处理效率;
S2、
流量重组:使用多重哈希的网络数据流多核负载均衡技术,将相同会话的流量分配到同一
CPU
核心上,以优化流量的实时重组性能,每一个重组维护一个流表,记录每个网络流的状态,包括源
IP、
目的
IP、
源端口和目的端口信息,以便后续的流量重组;
S3、
流量持久化:设计一个超时流检测队列用于标记和处理超时的网络流,以降低性能开销和内存资源消耗;当网络流量规模超过一定阈值时,将网络流数据从内存设备持久化到硬盘中,但保留流表中的相应位置,以确保流会话不会中断;引入分批缓存标记,用于标记已持久化但未结束的网络流数据,以确保在多次持久化过程中,相同网络流数据始终被写入同一个文件;最后通过网络数据持久化模块将输入的网络数据存储成文件并写入硬盘,以进行数据持久化操作
。2.
根据权利要求1所述的高效流量捕获

重组

持久化及负载均衡的综合解决方法,其特征在于,所述流量捕获采用数据包捕获机制,即轮询模式驱动,该模式下,不再等待中断信号,而是通过不断向网络驱动程序轮询是否能够获取到数据包,从而实现更高的网络数据包处理效率
。3.
根据权利要求1所述的高效流量捕获

重组

持久化及负载均衡的综合解决方法,其特征在于,在网络驱动轮询过程中,还采用中断缓解技术机制,只在有足够多的数据包的时候回应轮询请求,并一次性将网络适配器数据包缓冲区的多个数据包返回给轮询请求
。4.
根据权利要求1所述的高效流量捕获

重组

持久化及负载均衡的综合解决方法,其特征在于,所述流量重组具体采用网络流重组模块对网络流量进行重组和还原,在网络流重组模块中引入一种多重哈希的负载均衡技术,用于解决同一流中双向数据包可能被分配到不同处理器以及多核处理器的负载不均衡;其具体是将
CPU
的逻辑核心分为捕获核与重组核两部分,在数据包分发至
CPU
时,首先经过
CPU
自带的
RSS
功能,执行
Toeplitz
哈希计算,并根据不同的哈希计算结果将网络数据包分配至不同的哈希计算结果将网络数据包分配至不同的捕获核对应的数据包缓冲队列中,一旦捕获核获取了数据包将进行第二次哈希计算,具体哈希计算方法如下:中,一旦捕获核获取了数据包将进行第二次哈希计算,具体哈希计算方法如下:
HRESULT

HKEY1&HKEY2
这次的输入包括连接的四元组:源
IP(SIP)、
目的
IP(DIP)、
源端口
(SPORT)
和目的端口
(DPORT)
,通过上述哈希计算方法,确保同一会话中双向数据包计算出相同的哈希值,该算法主要采用异或运算,既增加了参数对计算结果的影响,又减少了寄存器的使用,无需担心计算结果溢出问题,从而降低运算量;随后,捕获核根据第二次哈希计算的结果将数据包分配至重组核;每个重组核维护着一个流表,用于存储源
IP(SIP)、
目的
IP(DIP)、
源端口
(SPORT)
和目的端口
(DPORT)
相同的一
组数据包,这样的一组数据包被称为一个网络流;在捕获核分配数据包之前,首先会查找要分配至的重组核中的流表,判断是否已经存在当前数据包对应的网络流;如果能够查询到对应的网络流,将该网络流数据添加到流表的相应项中;如果在相应的流表中没有查询到对应的网络流,将逐个查询其他重组核的流表;如果在其...

【专利技术属性】
技术研发人员:王昊天
申请(专利权)人:上海螣龙科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1