《工业控制计算机》2023年第36卷第1期随着网络技术的迅速发展,网络应用不断涌现,给人们生活带来便利的同时也导致了各区网络流量急剧提升,数据呈现爆发式增长,各种安全问题不断涌现。为了解决安全问题,研究学者对网络安全领域中的应用进行了大量研究[1-2],如网络安全IDS、IPS、防火墙、数据库防护系统、信息审计系统等,这些应用都需要依赖数据包捕获技术,因此对数据包捕获技术的研究将具有重大意义。但随着网络速率逐渐向10Gbps过渡,负责数据包捕获的处理器上的负载不断增大,丢包问题也不断涌现。因此为了提高数据包捕获性能,研究学者提出了许多流量负载均衡方法。负载均衡方法有硬件实现、软件实现两种类别。基于硬件实现的负载均衡系统虽然性能稳定,需要相关的技术支持人员对设备进行维护保障,但是价格昂贵,依赖厂商提供技术支持。因此基于软件的负载均衡备受研究学者青睐。基于软件的负载均衡算法有轮转法、散列法、最小连接法、最快响应法等[3],这些大多是基于集群的系统架构实现的,相对来说性价比不太高。目前多核处理器已经得到广泛应用,多核处理器不仅具备单核处理器价格低、操作简单以及软硬件资源丰富,还具备功耗低、并发度高等优点。在高速网络环境下通过多核处理器对网络流量进行并行处理是目前主流的方向。作为高性能数据包处理框架的DPDK,最近几年也是备受关注,对于负载均衡方面的研究,DPDK提供了RSS分流机制在多核处理器上实现负载均衡,该方法是通过DPDK开启网卡的硬件RSS分流特性实现的。由于默认的RSS机制对同一链路上双向数据包的五元组信息进行哈希计算得到的值不同,数据包会被分配到不同的逻辑核上处理,这将导致额外的性能开销,因此提出了一种对称RSS算法[4],该算法能够保证同一链路上双向数据包会被分配到同一逻辑核上处理。但是对称RSS算法针对单一会话流将出现某个逻辑核负载过大的问题。为了解决对称RSS负载不均衡的问题,本文提出一种高效的负载均衡算法对改善数据包捕获性能具有重大研究意义。本文基于DPDK开发平台,在保证同一链路的双向数据包分配到同一逻辑核上进行处理的前提下,提出了双hash负载均衡算法,该算法分流效果可以满足目前用户的需求。1相关技术DPDK是Intel公司开发的一套强大、高度优化的数据平面开发工具套件[5],它不同于Linux操作系统以通用设计为目的,DPDK集中于网络应用中数据包的高性能处理。DPDK最大的区别是应用程序运行在用户层,使用的是自己的数据平面库...