An Alternative Fast Packet I/O with Native System Calls

An Alternative Fast Packet I/O with Native System Calls
复制标题

具有本机系统调用的替代快速数据包 I/O

DOI:
10.1145/3341188.3341193
复制
发表时间:
2019
期刊:
CFI'19: Proceedings of the 14th International Conference on Future Internet Technologies
影响因子:
--
通讯作者:
Sekiya Yuji
Sekiya Yuji
中科院分区:
--
文献类型:
--
作者:
Nakamura Ryo;Kuga Yohei;Sekiya Yuji

文献摘要

相似文献

本文提出了一种替代的高速包I/O,它使用户空间应用程序能够使用Read()和WRITE()系统调用族来高速接收和传输包。最近的高速分组I/O框架开辟了针对网络性能进行优化的新的应用设计。然而,它们实现应用程序有两个障碍:编程模型的限制和NIC的限制。这些框架为应用程序提供了在没有内存副本的情况下访问内核空间中的包的API,而不是通用的API,如套接字API。因此,应用程序将与特定于框架的API紧密结合,并将被迫采用API的编程模型。此外,典型的框架需要特定的NIC,框架支持这些NIC进行优化。相比之下,建议的包I/O称为hpio,它适应对包I/O API的本机系统调用,并与本机设备驱动程序一起工作。这些优势为开发人员提供了一种轻松实现各种高速应用程序的方法。我们的测试结果表明,尽管hpio需要在系统调用上进行内存复制,并且没有对数据包缓冲区进行优化,但它在60字节的数据包中实现了超过40 Mpps的性能。
This paper proposes an alternative high-speed packet I/O that enables user-space applications to receive and transmit packets at high speeds using the read() and write() system call families. Recent high-speed packet I/O frameworks have opened up new application designs optimized for network performance. However, they have two obstacles to implementing applications: restraints on programming models and limitations on NICs. These frameworks provide applications with APIs to access packets in kernel space without memory copies instead of well-generalized APIs, such as the socket API. Thus, the applications would be tightly coupled with the framework-specific APIs, and would be forced to adopt the APIs' programming models. Moreover, typical frameworks require specific NICs, which the frameworks support for their optimization. In contrast, the proposed packet I/O, called hpio, adapts native system calls for the packet I/O API and works with native device drivers. These advantages offer developers an easy way to implement various high-speed applications. Our measurement results demonstrate that hpio achieved over 40 Mpps with 60-byte packets, although it involves memory copies on system calls and no optimization of packet buffers.