Tuning TCP and UDP Demultiplexing
Dixon, Joseph T.
Calvert, Kenneth L.
MetadataShow full item record
Large servers that handle many hundreds of simultaneous clients are becoming more and more important to the Internetwork infrastructure, from Web servers and caches to DNS servers. As the number of clients simultaneously served by a host increases, so may the cost of demultiplexing incoming packets to the appropriate application endpoint. This paper explores the effect of caching and hashing on demultiplexing efficiency in TCP/IP implementations using a trace-driven approach. We compare several cache- and hash-based techniques using traffic traces that include mixes of different types of applications. Our results show that different techniques are effective for different types of server (e.g., UDP vs. TCP-based services, Web servers vs. NFS servers). In addition, we show that an extremely simple hash function provides performance comparable to more complex functions at a fraction of the cost and can also compare favorably with content addressable memory (CAM) search performance under certain conditions. Based on our results, we recommend certain simple and transparent strategies for optimizing performance.