基于智能网卡实现的TCP会话数据采集平台

时间:2022-10-24 02:25:54

基于智能网卡实现的TCP会话数据采集平台

【 摘 要 】 很多网络数据分析系统需要实时采集TCP会话数据,随着网络带宽的快速增长,基于通用网卡和软件协议栈实现的数据采集平台,用于TCP会话管理和数据传输的开销越来越大,已经成为整个数据分析系统整体性能的瓶颈。为了有效提升系统性能,本文描述了一种基于智能网卡实现的TCP会话数据的采集平台。实验表明,使用该数据采集平台后,网络数据分析系统的性能可以大幅提升。

【 关键词 】 智能网卡;TCP会话;数据采集

1 引言

很多对网络数据进行分析的入侵检测、内容审计等系统,都需要实时获取网络中的TCP会话数据。传统的TCP数据采集平台,都是基于通用网卡捕获报文,通过软件协议栈进行TCP会话管理和报文数据传输。在高速网络上,数据采集平台会给整个系统带来庞大开销,研究证明,数据采集平台开销主要分为两个方面:由主机中断和网络数据的拷贝造成的数据传输开销、TCP连接管理为主要内的的协议处理开销。在一般的网络数据处理系统中,主机CPU的每个时钟周期,最多可以处理1个bit的网络数据。然而,近几年来,网络带宽的增长速度远远超过了CPU主频的增长速度,数据采集平台对主机资源的占用越来越多,已经成为整个数据分析系统的性能瓶颈。

为了分担CPU对TCP/IP协议栈的处理,减轻主机系统的压力,出现了一种称为TCP协议卸载引擎(TCP Offload Engine : TOE)的技术。该技术可以把原来由TCP/IP协议的处理过程放到网卡芯片的硬件上完成,减少主机CPU的协议处理工作量,提高数据采集系统的效率,从而提升整个主机系统的性能。本文基于曙光公司针对网络数据分析应用,对传统的TOE技术进行改进和扩展,研发的FPGA(Field Programmable Gate Array)智能网卡,研发了应用开发套件和TCP数据采集平台。在该平台中,网卡硬件提供了报文分类、TCP会话管理等功能,应用开发套件通过和硬件协同工作,可以为上层数据分析应用提供原始报文、TCP数据的采集接口、提供对报文和TCP会话的分类处理接口。实验证明,在高速网络上,采用该数据采集平台,可以有效提高数据分析系统处理网络数据的性能,大幅降低主机系统的CPU负载。

2 数据采集平台的设计

2.1 整体架构

数据采集平台的整体架构如图1所示。

底层硬件是基于FPGA专用芯片实现的智能网卡,智能网卡实现了报文数据的高速收发功能,可以把报文数据直接传送到主机的每个CPU核心上。智能网卡还实现了根据报文五元组(报文的源IP、目的IP、源端口、目的端口)对报文进行分类处理的功能,可以根据配置,对特定的报文采取丢弃、转发等动作。智能网卡还实现了TCP会话管理的功能,在网卡上维护TCP会话表,并对TCP会话中产生了乱序的数据进行重新排序。因为在不同的应用场景下,智能网卡的功能需求可能不同,所以智能网卡还具备在线重构升级逻辑的功能。

内核空间软件是智能网卡的驱动模块,驱动模块的作用是为智能网卡的数据收发分配报文缓冲区资源,在硬件和开发套件之间传递控制信息,并监控智能网卡硬件的运行状态。

用户空间软件应用业务软件、管理工具软件和应用开发套件组成,应用开发套件是数据采集平台的核心,是由一系列API接口构成的接口库,API接口库的接口与智能网卡的功能模块相对应,为上层应用业务提供开发接口,包括报文收发接口、五元组过滤接口、TCP会话管理接口。

2.2 智能网卡设计

智能网卡的整体架构如图2所示。

包头提取模块是接收网络数据报文的模块。从网络接口收到的IP包到达包头提取模块后,包头提取模块根据配置,将IP包头中的五元组、协议、报文长度、各层协议头指针等信息,提取出来,传递给后继的报文分类模块。

报文分类主要是用报文的五元组信息,到应用业务配置下来的分类规则中去查找匹配,如果一个报文的五元组匹配了用户设定的某一条规则,就根据该规则的要求对数据包进行分类处理,执行不同的动作,智能网卡可以支持的报文动作包括直接丢弃、上传主机、转发等。

如果一个数据报文经过分类后,确定是要继续处理的TCP报文,则包头信息进入TCP流的会话管理和乱序报文重排序模块。

由于TCP协议要求根据会话状态处理每个数据包,因此该模块需要维护一个TCP会话状态表,保存每个TCP会话的建立、传输、关闭状态,对需要采集TCP会话数据的应用业务,智能网卡硬件中的TCP会话管理模块,可以过滤掉很多软件不关心的无用流量,从而减轻软件分析报文的工作量。

网络中的TCP数据经过底层协议封装,在以报文为单位传输的过程中,由于路由的不同、网络设备故障或其他原因,属于同一个TCP连接的报文到达目的地的顺序可能会与发送端发出时的顺序不同,出现乱序。TCP协议针对乱序问题,设计了报文的序列号、超时、重传等机制,但这些机制的软件实现需要大量的内存复制、拼接等操作,效率很低,因此智能网卡中用硬件实现了上述功能。此外,智能网卡还可以根据应用软件配置,只接收特定TCP会话的指定个数的报文。

数据报文经过智能网卡处理后,如果需要上传给应用业务软件,则通过PCI-E接口上传到主机系统中,内核空间的智能网卡驱动会为主机的每个CPU核心分配报文缓冲区,并把缓冲区信息配置到智能网卡中,所以智能网卡可以用DMA(直接内存访问)方式将数据传入主机内存,而且是通过硬件配置的报文分发策略,直接把报文分发到每个CPU核心的处理线程上。因为智能网卡的收包过程不需要内核的中断处理和从内核空间到用户空间的内存拷贝,不需要软件把报文从协议栈的收包队列分发给每个CPU核心上处理线程,所以能够节省大量系统开销。

2.3 应用开发套件设计

应用开发套件是基于智能网卡开发应用业务软件的基础,对应智能网卡硬件中的数据接收、数据发送、报文分类、TCP连接管理等每个功能模块,都要提供API接口供应用软件调用。

2.3.1收包API接口

智能网卡的应用开发套件提供了符合工业标准的libpcap捕包接口,通过该接口,应用业务软件可以接收网卡收到原始报文。

针对一些需要更灵活处理的应用需求,开发套件还提供了一套更强大的自定义接口,通过该接口,应用业务软件可以指定从协议栈的那个层次采集数据,还可以获取报文的硬件时间戳等信息。

2.3.2发包API接口

智能网卡支持应用业务绕过操作系统协议栈直接构造链路层报文发送出去,以提高报文发送的效率。为避免内存拷贝,发包API除了提供启动报文发送的接口,还提供了申请发包缓冲区的接口,应用软件可以从接口库申请发包缓冲区,直接在发包缓冲区内构造要发送的报文。

2.3.3 报文分类规则配置API接口

应用软件在进行报文处理的过程中,可以通过报文分类规则配置接口,动态向智能网卡中增加规则,或者从智能网卡中删除规则。

2.3.4 TCP连接管理API接口

应用软件可以通过TCP会话管理接口,动态的删除智能网卡中的TCP会话,或者配置特定TCP会话的多少个报文要进入上层应用处理。

2.3.5配置文件

除了API接口,开发套件还提供了配置文件,很多数据采集平台运行需要的参数,可以通过配置文件配置,比如收包时智能网卡向每个CPU核心传输数据的负载均衡方法,报文分类规则的类型,支持并发TCP会话的个数等。

2.3.6系统管理工具

在数据采集平台运行时,用户可以通过开发套件提供的系统管理工具,对智能网卡的运行状态进行监控,比如实时查看每个报文缓冲区的状态、报文分类规则表的内容、或者TCP会话的统计信息等。

3 测试数据

为测试数据采集平台对系统性能带来的提升效果,我们采用待测系统和对比系统两套环境来进行测试。

两套环境的基础硬件平台都是曙光的服务器(I610r),具体配置为: 2颗Intel Xeon 5500 CPU(8个CPU核心),8GB DDR3 内存。 软件环境都是采用Red Hat Enterprise Linux Server release 5 操作系统, 应用软件为曙光基于数据采集平台研发的网络内容审计软件。 网络环境都是某IDC的线上万兆流量。

作为对比,待测系统的应用软件从智能网卡数据采集平台接收网络数据,对比系统的应用软件从普通的Intel万兆网卡和Libpcap构成的数据采集平台接收网络数据。

测试时,我们把线上接收到的流量通过光复制器复制为4份,一份作为对比系统的输入,另外3份分别输入待测系统使用3台服务器,这3台服务器分别工作在三种工作模式下:

模式1——只启用智能网卡的收发包功能,不启用报文分类和TCP会话处理功能;模式2——只启用智能网卡的收发包功能和报文分类,不启用TCP会话处理功能;模式3——启用智能网卡的全部功能。我们让测试系统持续运行24小时,对每个小时内的CPU平均负载进行记录,获得的测试数据如图3所示。

从测试数据可以看到,采用基于智能网卡实现的数据采集平台后,仅启用收发包功能,系统负载就会明显降低,启用报文分类和TCP会话处理功能后,系统负载会进一步降低。在系统负载降低的同时,系统负载的波动也变得平缓,系统运行状态更加平稳。

4 结束语

随着网络带宽的迅速增长,网络安全应用需要充分利用CPU处理资源进行TCP会话数据的处理,传统的基于通用网卡和协议栈软件实现的数据采集平台,数据采集占用了大量CPU处理资源,成为系统整体性能的瓶颈。

本文所述的基于智能网卡实现的TCP会话数据采集平台,能够有效降低系统处理负载,提升系统稳定性。

参考文献

[1] Chase J S,Gallatin A J,Yocum K G.End-System Optimizations for high-speed TCP. IEEE Communications Magazine [J], 2001,39 (4):68—74.

[2] 任宏 . 关于TOE技术的发展及概况的研究[J].红外, 2005,3:19-26.

作者简介:

刘朝辉(1980-),男,毕业于清华大学计算机系,现任曙光信息产业股份有限公司研发中心副总经理兼网络安全产品部经理。

上一篇:计算机网络安全课程教学探索 下一篇:DPX19000的核心价值:“云级”、“业务”和“核...