一种利用智能网卡进行流量分析和处理的实现方法与流程

文档序号:36862493发布日期:2024-02-02 20:44阅读:12来源:国知局
一种利用智能网卡进行流量分析和处理的实现方法与流程

本发明涉及网络数据分析和处理领域,特别涉及一种利用智能网卡进行流量分析和处理的实现方法。


背景技术:

1、根据摩尔定律预测,集成电路上可以容纳的晶体管数目大约每经过18个月到24个月便会增加一倍,这意味着处理器(cpu)的性能大约每两年翻一倍。然而,近年来的数据表明cpu的性能年化增长率仅有3%左右。在处理器的性能增长放缓的同时,网络数据量以爆发性增长。随着云计算、数据中心等网络基础设施的快速发展,网络带宽从主流的10g向着25g、40g、100g、200g甚至400g发展。

2、比较网络带宽的增长趋势和通用cpu性能增长趋势,我们能发现网络带宽与cpu的性能增速比正在失调。根据相关统计数据,在最近十年的时间里,网络带宽的年化增长从30%增长到45%左右,而cpu的年化增长从25%降低到3%左右。在网络带宽增速与cpu性能增速近乎持平的情况下,对cpu的处理性能没有造成压力。但在当前增速比达到10倍以上的情况下,cpu几乎无法直接应对网络带宽的增速。

3、网络数据处理方面,在对更快增长的算力的芯片的需求下,智能网卡应运而生。相比于cpu处理网络数据时,受限于总线的带宽的问题,智能网卡的处理带宽可以与网络带宽相当,同时具备了低延时的特点。智能网卡作为计算卸载的引擎,可以将cpu处理网络数据的任务“卸载”到网卡上。

4、智能网卡的发展可以分为几个阶段。传统的网络数据处理方式是在软件层对数据包进行处理。cpu对于网络数据的处理能力体现在网卡收到链路层数据帧后,通过操作系统(os)内核态,发起dma中断响应,调用相应的协议解析程序,获得网络传输的数据。对cpu的占用的同时,也影响了cpu处理其他应用的性能。基础的网卡具备较少的硬件卸载能力,如可以计算网络数据包中的校验值等。第一代的智能网卡则增加了更多的卸载能力,支持rdma、nvme-of等硬件卸载,以数据平面任务的卸载为主。而最新的智能网卡上,在第一代智能网卡的基础上增加了cpu处理器,可以同时卸载控制平面和一些复杂的数据平面任务。使用智能网卡卸载网络处理任务可以利用智能网卡高带宽低延时的处理性能,同时能够将cpu的处理性能释放出来。

5、在网络数据处理发展的过程中,软件技术也在不断发展尝试解决现有cpu处理效率低和延时高的问题。比如dpdk框架在系统的用户态通过轮询获得网络数据,绕过内核机制实现了零拷贝,但是此方式没有解决对cpu占用和高带宽场景下处理效率低的问题。又比如,使用类似hyperscan的数据包分析库,可以根据正则匹配规则对数据包内容进行更复杂和精确的命中,但是仍然受限于cpu的性能。


技术实现思路

1、为了解决高带宽场景下实现高性能网络数据处理的问题,本发明提供了一种利用智能网卡进行流量分析和处理的实现方法,通过使用智能网卡,可以将原本的网络数据处理和分析任务完全交给dpu处理,可释放cpu的算力给其他通用的数据处理和计算任务,实现了100g/200g/400g带宽下进行流量分析和处理的功能。

2、本发明采取的技术方案是:一种利用智能网卡进行流量分析和处理的实现方法,基于linux操作系统平台实现,包括主机、智能网卡和客户机,实现步骤如下:

3、步骤1,在主机、智能网卡和客户机上分别设置管理程序、智能网卡程序和客户端程序,通过本地配置文件或客户机的客户端界面配置通信信息,分别启动管理程序、智能网卡程序和客户端程序,正常状态下,智能网卡程序和客户端程序与管理程序主动建立连接;

4、步骤2,正常连接时,客户端界面展示当前连接的智能网卡状态,并且通过客户端界面下发流量分析和处理规则;

5、步骤3,客户端界面下发流量分析和处理规则到管理程序后,由管理程序下发给智能网卡程序,由智能网卡程序解析后将规则卸载到智能网卡硬件;

6、步骤4,智能网卡程序将规则卸载到智能网卡后,定时查询处理结果并上报管理程序,由管理程序上报客户端,最终在客户端界面进行结果展示;

7、通过以上步骤,实现了利用智能网卡进行流量分析和处理的方法。

8、智能网卡安装在主机的pcie插槽上,主机和智能网卡通过以太网网口连接通信;智能网卡通过两个或多个数据网口连接外部交换机或路由器到外部网络;主机通过交换机与若干个客户机进行连接通信。

9、管理程序同时与客户端程序和智能网卡程序建立通信,将客户端的处理指令发送到智能网卡处理,处理完成后,处理结果经管理程序报送客户端。一个管理程序同时服务若干个客户端,并对若干个智能网卡进行管理;管理的智能网卡的最大数量由主机的pcie插槽数量决定。

10、通过将主机、智能网卡和客户机三部分功能分开的方式,用户仅允许通过客户端程序连接主机,与智能网卡进行交互。

11、管理程序实现步骤如下:

12、a1.管理程序启动后读取本地配置文件,根据配置信息初始化,等待智能网卡程序和客户端程序连接;

13、a2.管理程序收到智能网卡或客户端的连接请求后,对连接者的身份和权限进行认证,认证成功,进入下一步a3;认证失败,关闭连接;

14、a3.管理程序根据自定义的定时时长,将连接的智能网卡信息上报连接的客户端;

15、a4.客户端完成认证后,管理程序等待客户端下发流量分析和处理指令,收到指令后,对指令进行解析和处理并转发对应的智能网卡;

16、a5.智能网卡完成认证后,管理程序等待智能网卡上报流量分析和处理结果,将结果上报所有连接的客户端程序进行处理;

17、a6.管理程序发现智能网卡程序连接中断或者工作异常,将信息上报所有连接的客户端。

18、智能网卡程序实现步骤如下:

19、b1.智能网卡程序启动后读取本地配置文件,根据配置信息,与主机的管理程序建立tcp连接;连接成功后,管理程序通过自定义方式对智能网卡的身份和权限进行认证,认证成功,进行下一步b2,连接或者认证失败,退出程序;

20、b2.认证完成后,智能网卡程序从管理程序获取并完成智能网卡cpu、网口、内存以及硬件引擎模块的初始化配置;

21、b3.智能网卡程序等待管理程序下发流量分析和处理指令;

22、b4.智能网卡程序对指令进行解析和数据处理,分别根据流处理、深度分析的规则类型,调用不同的接口卸载到硬件引擎;

23、b5.智能网卡程序按照自定义间隔时长,查询智能网卡流量分析和处理的结果,解析和处理后主动报送管理程序;并在收到管理程序下发的查询状态指令后,被动报送管理程序。

24、客户端程序实现步骤如下:

25、c1.客户端程序启动后读取本地配置文件或在客户端界面进行配置,根据配置的地址信息,与主机的管理程序建立tcp连接,连接成功后,管理程序通过自定义方式对客户端的身份和权限进行认证,认证成功,进行下一步c2,连接或者认证失败,报错提示;

26、c2.认证完成后,客户端程序从管理程序获取所有已连接的智能网卡状态信息,并在界面上展示;

27、c3.客户端界面展示支持下发给智能网卡的流量分析和处理规则,用户通过客户端界面设置规则内容,将新增和删除的规则下发到管理程序,最终下发到指定的智能网卡上进行卸载。

28、智能网卡的数据处理,是数据网口将接收到的网络数据包先经过硬件层的流处理模块进行命中、监控、修改;对于不需要进行流量分析的数据包,由其他的网口转发或丢弃;对于需要继续进行流量分析的数据包,转发到软件层的rss队列上,通过软件接口调用硬件层的连接状态引擎和正则表达式引擎进行卸载,获取双向数据流的连接状态和正则表达式命中结果,最后根据匹配的结果,再进行数据包的转发或丢弃。

29、本发明的有益效果是:本发明提供了一种利用智能网卡进行流量分析和处理的实现方法,根据下发的流量规则,将流量分析和处理任务卸载到智能网卡的专用引擎中,在高带宽场景下释放了cpu上的算力,满足了100g/200g/400g高带宽场景下,进行网络数据分析和处理的需求,达到了线速数据处理的效果。

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