针对多核心架构的功能性网络框架PFQ
2019-04-19 15:53
239 查看
PFQ是一款针对Linux操作系统的功能性框架,可帮助研究人员捕捉网络传输数据包(10G、40G及以上),内核功能处理,内核绕过,以及获取多节点间的套接字/数据包。
该工具针对多核心架构以及配备了多硬件队列的网络设备进行了高度的定制优化,可兼容任意NIC,工具提供的脚本还可以生成加速网络设备驱动器。
PFQ允许研究人员自己开发高性能网络应用程序,工具内置了自定义版本的libpcap,可加速或并行处理遗留应用程序。此外,PFQ还支持专为内核数据包处理设计的纯函数语言:pfq-lang。
Pfq-lang受到了Haskell的启发,主要针对的是运行在网络设备驱动器上的特定应用程序。在pfq-lang的帮助下,研究人员可以构建高效的网桥、端口镜像、简单的防火墙以及网络负载均衡器等等。
工具框架包含了PFQ内核模块、用户空间库(C、C++11-14)、Haskell语言和加速pcap库的源代码,而且内置了pfq-lang编译器和一系列诊断工具。
工具功能
1、 获取完整无锁结构的数据路径。
2、 预先分配套接字缓冲区。
3、 兼容大量网络设备驱动器。
4、 对支持异步数据包传输的内核线程提供透明支持。
5、 支持多线程应用程序监控。
6、 通过随机散列或确定性分类进行分组数据包转发。
7、 VLAN数据过滤。
8、 针对C、C++11-14和Haskell语言的用户空间库。
9、 用于分析和编译pfg-lang程序的pfq-lang编译器。
10、针对遗留应用的加速PCAP库。
11、I/O用户<->内核内存映射。
12、Pfq-omatic脚本,自动加速普通驱动程序。
工具下载&安装
$ git clone git://github.com/pfq/PFQ.git
许可证协议
PFQ框架遵循GPL许可证协议。
相关文章推荐
- 【cocos2dx网络游戏】搭建CS架构的基本通信框架(二)Client(构建消息体)
- 优雅设计封装基于Okhttp3的网络框架(三):多线程下载功能核心实现 及 线程池、队列机制、终止线程解析
- Android网络框架之基本架构(一)
- Spring核心框架IOC---- Spring项目程序架构---- 面向接口编程
- 网络层架构设计与实战十三框架重构之java动态代理
- Android架构详解——App 网络框架详解
- Android网络传输框架的核心代码量对比
- 网络监控框架 PFQ
- Android volley网络框架源码和架构分析
- Spring核心框架IOC---- Spring项目程序架构---- pring的三层架构模式
- 【分析总结框架记录】基于ZMQ的游戏网络层基础架构
- WCDMA/UMTS 第三代无线通讯系统 核心网络架构介绍-1
- 精通 Python 网络爬虫:核心技术、框架与项目实战
- 教你写Android网络框架之基本架构
- 针对深度学习(神经网络)的AI框架调研
- 基于Restful架构规范的Android的网络请求框架Retrofit
- 教你写Android网络框架之基本架构
- 【网络爬虫】【python】网络爬虫(四):scrapy爬虫框架(架构、win/linux安装、文件结构)
- 框架采用s2sm架构 ,处理apk上传下载, 处理图片上传下载,核心代码.
- bton框架业务核心流程架构