In Solaris 2.6, the TCP/IP protocol stack has been enhanced to support two new features: zero copy and TCP checksum offload.
Zero copy uses virtual memory MMU remapping and copy-on-write technique to move data between the application and the kernel space.
Checksum offloading replies on special hardware logic to offload the TCP checksum calculation.
Although zero copy and checksum offloading are functionally independent of each other, they have to work together to obtain the optimal performance. Checksum offloading 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 16 8k buffers.