2012 Poster Sessions : Optimizing TCP Pure ACK Receive Processing

Student Name : Michael Chan
Advisor : David Cheriton
Research Areas: Computer Systems
The rapid increase in network bandwidth and consolidation to Ethernet pave the way for low-cost high-performant network servers handling tens of thousands of clients concurrently. However, TCP ACK processing incurs significant per-packet overhead. As a result, the server's ACK processing throughput is limited below wireline rate. A modern Web server serves tens of thousands of concurrent clients at once. Because the server mostly sends out data (HTTP Replies) in response to HTTP requests, it mainly receives pure TCP ACKs for the data it sends. A flood of pure ACKs from clients can cause request packets to be dropped, resulting in client-side timeouts on the order of hundreds of milliseconds. To address this issue, we propose TCP-PARO, a pure ACK receive optimization for TCP. TCP-PARO removes the bulk of expensive per-packet operations and provides a fast processing path for pure ACKs in the network stack, thereby improving ACK processing throughput over 3 times on a commodity CPU. With increasing network speeds and CPU processing power, Web servers are expected to handle even more concurrent connections. It is therefore critical to scale ACK processing to maintain high server performance. Early evaluation in Linux shows that TCP-PARO is an effective solution. We are working on enhancements via parallelization with multiple cores and a NIC-level implementation.

Michael Chan is a PhD candidate in the Distributed Systems Group of Stanford University's Computer Science department. His research interests are in networking and distributed systems. He is currently working on enhancements to the Linux networking stack which improve transport-layer services for large-scale reliable distributed applications. He was previously involved in the OpenFlow project and was responsible for building kernel modules for client-side network mobility solutions.