Network Interface Cards
There are two common methods to
improve the performance of the NIC. These methods involve offloading of the
network traffic from the processor of the server, and allowing hosts to place
data directly into other hosts' memory. The TCP/IP Offload Engine (TOE) and
remote direct memory access (RDMA) acceleration methods are supported today by
many operating systems. These methods allow for improved network performance
without creating an increased workload on the server's processor, bus, or
physical RAM.
RDMA is a process that occurs over
TCP/IP. In RDMA's simplest form, one TCP/IP device has access to a second TCP/IP
device's physical RAM over TCP/IP. This process allows data to be sent directly
to the second device's physical RAM. As network speeds have increased beyond 1
Gbps to 10 Gbps, they introduce challenges to the server's processor: the
network is becoming faster than the processor. With the intelligence built into
an RDMA-supporting Ethernet network adapter, the card can process much of the
traffic, placing the payload directly into the physical memory of the
server.
A NIC that supports RDMA is referred to
as an RNIC. RNICs do not require changes to the operating system or TCP/IP stack
on the server, but operating system support may be directly required to support
RDMA functions in a server. Some database application vendors have written
support for RDMA directly into their applications, allowing for improved TCP/IP
performance within the application server.
A TOE allows for TCP/IP traffic to
be processed by the network card, instead of passively handing the TCP/IP
traffic workload to the server's bus and processor. A TOE is commonly
implemented on a wide array of NIC vendors' products, including Intel, QLogic,
and 3Com. With the exception of Red Hat Linux, most server operating systems
recognize the TOE implementation in their operating system TCP/IP stack.
Figure 2-19 illustrates the difference in CPU involvement when a
network card that is TOE enabled is introduced into a supporting server and
operating system. Notice that the use of a TOE can minimize the amount of system
resources necessary to manage TCP connections with connected nodes.
TOE-enabled NICs bring additional
benefit to many applications because the workload of handling TCP/IP is moved
from the server CPU and memory to the card. In this way, applications that are
data-access intensive, such as Internet SCSI (storage over IP), see performance
improvement due to faster handling of network data. Web servers and application
servers also benefit from a TOE, due to the nature of TCP-based application
protocols, such as HTTP, CIFS, and NFS, and streaming media traffic.