PF_RING™是一种新型的网络套接字,可显着提高数据包捕获速度,并且具有以下特性:
- 适用于Linux内核2.6.32及更高版本。
- 无需修补内核:只需加载内核模块。
- 使用商用网络适配器的10 Gbit硬件数据包过滤
- 用户空间ZC(新一代DNA,Direct NIC Access,直接NIC访问)驱动程序可实现极高的数据包捕获/传输速度,这是因为NIC NPU(网络处理单元)在没有任何内核干预的情况下将数据包从用户域推送/获取数据包。使用10Gbit ZC驱动程序,您可以以线速发送或接收任何大小的数据包。
- PF_RING ZC库,用于在线程、应用程序、虚拟机之间以零拷贝分发数据包。
- 设备驱动程序独立。
- 支持Accolade,Exablaze,Endace,Fiberblaze,Inveatech,Mellanox,Myricom / CSPI,Napatech,Netcope和Intel(ZC)网络适配器。
- 基于内核的数据包捕获和采样。
- Libpcap支持(请参见下文)可与现有的基于pcap的应用程序无缝集成。
- 除BPF外,还可以指定数百个标题过滤器。
- 内容检查,以便仅通过与有效负载过滤器匹配的数据包。
- PF_RING™插件,用于高级数据包解析和内容过滤。
Vanilla PF_RING™
PF_RING™正在通过Linux NAPI轮询来自NIC的数据包。这意味着NAPI将数据包从NIC复制到PF_RING™循环缓冲区,然后userland应用程序从环读取数据包。在这种情况下,有两个轮询程序,即应用程序和NAPI,这会导致用于此轮询的CPU周期。优点是PF_RING™可以将传入的数据包同时分发到多个环(因此有多个应用程序)。
PF_RING™模块
PF_RING™具有模块化架构,可以使用除标准PF_RING™内核模块以外的其他组件。当前,其他模块集包括:
- ZC模块。
查看ZC页面以获取更多信息。 - 基于FPGA的板卡模块。
这些模块增加了对许多供应商的支持,包括Accolade,Exablaze,Endace,Fiberblaze,Inveatech,Mellanox,Myricom / CSPI,Napatech,Netcope。 - 堆栈模块。
该模块可用于将数据包注入linux网络堆栈。 - 时间轴模块。
该模块可用于使用PF_RING™API从n2disk转储集中无缝提取流量。 - Sysdig模块。
该模块使用sysdig内核模块捕获系统事件。
标签:NIC,ZC,PF,模块,RING,数据包 来源: https://blog.csdn.net/HongkeTraining/article/details/106916851
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。