GIGABIT ETHERNET IS A POPULAR BROADBAND technology for good reason. It not only can transfer large amounts of data through a large network at high speeds, but it also is a mature technology with an appealing performance to cost-of-ownership ratio. Unfortunately, though, gigabit Ethernet suffers a performance drop when it is handling traffic with small packets: it tends to lose them. This is a serious problem because small packets have become important in many real-time applications-in Voice over Internet Protocol (VoIP), for example, which carries voice conversations over the Internet. Every VoIP connection sends 50 packets over the network every second, packets that contain only 160 B or less. And since this small-packet, high-rate, real-time type of traffic is conveyed across the Internet, all Linux-based firewalls, routers, and Web caches suffer from the packet-loss problem too.Fortunately, there is a cure. The Ethernet controller's driver is the culprit. Its negligent memory management is responsible for the small-packet loss. A technique called receive descriptor recycling (RDR) provides a solution. By actively reusing the software descriptors needed to administer the traffic flow, RDR alleviates the controller bottleneck. An RDR-enabled controller can reduce small-packet loss by 40%.We have studied high-rate, smallpacket traffic in an Ethernet controller, as implemented in an Intel e1000 network interface card (NIC) Linux driver, which is widely used in high-end systems and servers. We have also evaluated the performance boost provided by the RDR technique. (For background, see "Researching Gigabit Ethernet Performance.")
MEASURING NETWORK PERFORMANCEThe performance of a network can be measured in terms of packet rate, packet loss, response time, and throughput. In addition, important criteria for the network equipment are the efficient utilization of the central processing unit (CPU) and low resource requirements. When a network setup is optimized for high-rate small-packet traffic, inevitable limitations arise, e.g., CPU and resource requirements increase in order to accommodate high rates of small packets, as does the host bus utilization. Note that transmit performance is not affected by small-packet traffic to the same extent as receive performance. This asymmetry exists because the local host cannot usually overwhelm the Ethernet controller with outgoing traffic.