目前大多需要进行高速流量处理的场景,基本都是使用DPDK进行数据包处理加速,DPDK虽然是开源免费的,但是DPDK提供的API很简单,进行开发十分复杂,耗时,应用困难,于是许多人开始寻找替代方案--虹科PF_RING ZC。
细谈区别
DPDK
假如你一名经验丰富的开发人员(抱歉,DPDK API 非常简单),您需要在从头开始编写您的应用程序,您可以使用所有 DPDK API 调用来分配/管理数据包,并且您必须了解您所使用的 NIC。
举个例子:假如你使用英特尔 X710/XL710,它是英特尔当前的旗舰 10/40 Gbit 适配器。当您启用巨型帧时,NIC 将返回 2K 长的 RX 数据包(因此,如果您有一个入口 5k 数据包,您将收到部分 2 x 2K 缓冲区和剩余的 1k 缓冲区),如果您想发送一个数据包,则大小为 9K(因此您需要发送 1x8K 部分缓冲区以及以下缓冲区中的其余部分)。本质上,开发人员必须知道这一点,准备用应用程序来处理这些问题,并确保当您移动到另一个不能以这种方式工作的 NIC(例如 Intel X520/X540)时,您能够处理巨型帧。
PF_RING ZC
相反,在 PF_RING ZC 中,库根据 MTU 分配内存缓冲区,无论您使用什么网卡,库都将始终返回完整的数据包(即缓冲区中的所有这些数据包分段不会暴露给将始终使用的用户,开发人员唯一要做的就是确保他的应用程序可以处理巨型数据包。使用PF_RING ZC API,开发人员无需记住的 NIC 的硬件细节,无需更改一行代码、只需将设备名称从:
-i eth1
更改为
-i zc:eth13
就可以将应用程序在不同硬件设备上进行转移。
比较
1) ZC 需要支付少许的许可证费用,DPDK 是免费的,;
2) DPDK 与ZC的性能基本持平;
3)ZC提供易于使用的应用层API,开发难度远小于DPDK;
PF_RING ZC提供的API
PF_RINGZC带有一个简单的API,能够用几行代码创建一个复杂的应用程序。以下示例显示了如何用6行代码创建一个聚合器+负载均衡器应用程序。
PF_RING ZC加速Zeek
Zeek是一个开源网络流量分析器。许多用户将Zeek用作网络安全监视器(NSM),以支持对可疑或恶意活动的调查。Zeek还支持安全领域以外的各种流量分析任务,包括性能评估和故障排除。使用PF_RING ZC(zero copy)驱动程序可实现极高的数据包捕获/传输速度,极大提升Zeek的流量处理能力。
使用带有 PF_RING 的 Suricata
Suricata是一个免费、开源、成熟、快速、健壮的网络威胁检测引擎。Suricata引擎能够进行实时入侵检测(IDS)、内联入侵预防(IPS)、网络安全监控(NSM)和离线pcap处理。Suricata使用强大而广泛的规则和签名语言来检查网络流量,应用十分广泛。使用PF_RING ZC让你您现在可以在 IDS 和 IPS 模式下高速使用 Suricata。
Snort高速数据采集
许多用户还可以在使用Snort(最受欢迎的 IDS/IPS 之一),且目前正受益于 PF_RING ZC 的速度。使用PF_RING ZC (Snort 数据采集)库比标准的PF_RING速度提高 20% 到 50% ,它可以在 IPS 和 IDS 模式下运行。
虹科提供网络流量监控与分析的软件解决方案-ntop。该方案可在物理,虚拟,容器等多种环境下部署,部署简单且无需任何专业硬件即可实现高速流量分析。解决方案由多个组件构成,每个组件即可单独使用,与第三方工具集成,也可以灵活组合形成不同解决方案。包含的组件如下:
PF_RING:一种新型的网络套接字,可显著提高数据包捕获速度。
nProbe:网络探针,可用于处理NetFlow/sFlow流数据或者原始流量。
n2disk:用于高速连续流量存储处理和回放。
ntopng:基于Web的网络流量监控分析工具,用于实时监控和回溯分析。
编辑:jq
-
英特尔
+关注
关注
61文章
9949浏览量
171687 -
Web
+关注
关注
2文章
1262浏览量
69440 -
API
+关注
关注
2文章
1499浏览量
61957 -
NIC
+关注
关注
0文章
23浏览量
12415 -
DPDK
+关注
关注
0文章
13浏览量
1724
原文标题:虹科PF_RING ZC | 高速流量处理DPDK替代方案
文章出处:【微信号:Hongketeam,微信公众号:广州虹科电子科技有限公司】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论