ICCCN '96 published/short version Increasing Demultiplexing Efficiency in TCP/IP Network Servers
Dixon, Joseph T.
Calvert, Kenneth L.
MetadataShow full item record
This paper shows how software caches and hashing to multiple PCB (protocol control block) lists can increase demultiplexing efficiency in TCP/IP network server hosts. We implemented six algorithms and executed 200 simulations -- using four server traffic traces as input -- to formulate best-use caching and hashing policies for demultiplexing TCP-based http, telnet and login services and UDP-based services such as nfs. Our work, motivated by promising analytical results and general suggestions in past works, differs from its predecessors in several important ways: (1) we examine the limits of applicability of last-referenced- PCB caching and list-hashing; (2) we test the merit of popular assumptions made in existing implementations; (3) we make several concrete recommendations so that individual servers can realize potentially significant performance gains through simple, server-independent modifications. Our experimentation led to a series of findings. First, we show conclusively that, while caching alone can enhance performance, more than two cache entries can cause efficiency to diminish below peak performance. Furthermore, while our two cache entry algorithm reduces the mean number of instructions required for a PCB lookup by as much as 75% below the original TCP demultiplex algorithm's performance, variability of execution cost for a caching-only scheme remains high. Next, we customize a simple combination caching and multiple list algorithm first introduced by McKenney and Dove and show how TCP PCB lookups can be reduced by more than 93%. We then verify that, in many cases, the iterative nature of most UDP-based services relegates a caching to unnecessary overhead and makes multiple list benefits uncertain at best. We demonstrate that this overhead can actually make overall demultiplexing performance even worse than that of the original algorithm. Some of its negative effect, however, can be overcome if different algorithms are used for TCP and UDP. Our introduction of this separable solution debunks the popular, long-standing convention of using the same algorithm for both TCP and UDP. These findings imply application-specific implementation strategies that can yield potentially significant demultiplexing performance benefits in existing and new TCP/IP network servers.