Zero copy uses virtual memory MMU remapping and a copy-on-write technique to move data between the application and the kernel space.
Checksum off-loading relies on special hardware logic to off-load the TCP checksum calculation.
Although zero copy and checksum off-loading are functionally independent of one another, they have to work together to obtain the optimal performance. Checksum off-loading requires hardware support from the network interface and, without this hardware support, zero copy is not enabled.
Zero copy requires that the applications supply page-aligned buffers before VM page remapping can be applied. Applications should use large, circular buffers on the transmit side to avoid expensive copy-on-write faults. A typical buffer allocation is sixteen 8K buffers.