用户空间网络驱动
网络与互联网体系结构
2019-09-10 v2 操作系统
摘要
DPDK 与 netmap 等用户空间数据包处理框架的兴起,使底层代码对开发者和研究者更易获取。此前,驱动代码隐藏于内核中,高层开发者极少修改甚至查看。如今这些壁垒已消失,但开发者仍会将用户空间驱动视为神奇加速应用的黑盒。我们欲改变此现状:每位构建高速网络应用的研究者都应理解底层驱动的细节,尤其当其影响性能时。我们提出 ixy,一个为简洁与教学目的而设计的用户空间网络驱动,以表明快速数据包 I/O 并非黑魔法而是精细工程。ixy 聚焦于用户空间数据包处理的根本要素:包含完整 NIC 驱动的数据包转发器使用不到 1000 行 C 代码。本文部分以教程风格撰写,以我们对 Intel 82599 系列与虚拟 VirtIO NIC 驱动的实现为案例研究。前者使我们能在精简实现上推理驱动与框架性能,以隔离评估各项优化。VirtIO 支持确保任何人都能在虚拟机中运行。我们的代码以 BSD 许可免费开源发布于 https://github.com/emmericp/ixy
引用
@article{arxiv.1901.10664,
title = {User Space Network Drivers},
author = {Paul Emmerich and Maximilian Pudelko and Simon Bauer and Stefan Huber and Thomas Zwickl and Georg Carle},
journal= {arXiv preprint arXiv:1901.10664},
year = {2019}
}
备注
in ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS 2019), 2019