Johannes Krude, Mirko Stoffers, Klaus Wehrle
Proceedings of the 2018 Afternoon Workshop on Kernel Bypassing Networks (KBNets'18), August 2018. ACM. pp. 1–7.
Although applications are nowadays often executed in virtual machines (VMs) to isolate applications or consolidate physical machines, VM network performance is still challenging. Packetization, encapsulation, congestion control, preparations for loss, and copying of data introduce unnecessary performance degradation within a system where VMs communicate over abundant and reliable shared-memory. Although protocols like TCP are therefore not well suited for kernel network stack in VMs, preexisting applications require the kernel socket interface to keep functioning. In eliminating the unnecessary overhead for inter-VM communication and shifting it to the host operating system for communication over a physical NIC, our approach increases performance for both cases of communicating with another VM on the same host and for communicating with external hosts. Instead of multiplexing multiple connections over a single virtual Ethernet link, we use a separate shared-memory connection for each VM application socket. Our approach improves the stream and datagram performance of existing applications over an unmodified socket interface and brings the benefits of memory-mapped zero-copy IO to modified applications without sacrificing isolation between sockets.
@inproceedings{2018_krude_circuit-switched-vm-networks,
author = {Krude, Johannes and Stoffers, Mirko and Wehrle, Klaus},
title = {{Circuit Switched VM Networks for Zero-Copy IO}},
booktitle = {{Proceedings of the 2018 Afternoon Workshop on Kernel Bypassing Networks}},
series = {{KBNets'18}},
year = {2018},
month = aug,
pages = {1--7},
numpages = {7},
location = {Budapest, Hungary},
publisher = {{ACM}},
doi = {10.1145/3229538.3229539},
url = {https://krude.name/publications/2018_krude_circuit-switched-vm-networks.pdf},
}