Zero-Copy TCP/IP mit Gigabit Ethernet
Diploma Thesis Winter 1998/99
Supervisors: Ch. Kurmann, Prof. T. Stricker
Institute for Computer Systems, ETH Zürich
The speed of gigabit network technologies reaches the copy bandwidth of
modern PC memory systems. Because the actual TCP-stack copies the data
from kernel- to userspace, the tcp-throughput is not satisfactory.
This diploma thesis describes a zero-copy implementation of the TCP/IP stack
for Linux. To achive zero-copy, memory mapping and copy on write (COW) is used.
Because of the limited maximum transfer unit (MTU) of Gigabit Ethernet, IP
fragmentation on device driver level is used as a workaround.
The basic elements of TCP/IP, the virtual memory system of Linux and the socket interface are described in the first chapter. A comparison of the different zero-copy schemes is also part of this chapter. The second chapter describes the necessary changes in the Linux kernel and the gigbit ethernet device driver.
Results The TCP throughput has been increased from 40 MB/s to over 60 MB/s on two
Pentium II systems with 350 Mhz CPU-clock. This zero-copy implementation is
compatible with the socket interface. The only limitation concerns the buffers
of the user process. They must be page aligned and a multiple of the pagesize.
Some problems of checksumming and synchronisation in a cluster are still open.
Papers on that subject see: Homepage of Christian Kurmann
| Up ]
ETH Zürich: Department of Computer Science
Comments to Christian Kurmann <firstname.lastname@example.org>