Managing TCP Connections Under Persistent HTTP
Hyper Text Transfer Protocol (HTTP) traffic dominates Internet traffic. The exchange of HTTP messages is implemented using the connection-oriented TCP. HTTP=1.0 establishes a new TCP connection for each HTTP request, resulting in many consecutive short-lived TCP connections. The emerging HTTP=1.1 reduces latencies and overhead from closing and re-establishing connections by supporting persistent connections as a default. A TCP connection which is kept open and reused for the next HTTP request reduces overhead and latency. Open connections, however, consume sockets and memory for socket-buffers. This trade-off establishes a need for connection-management policies. We propose policies that exploit embedded information in the HTTP request messages, e.g., senders’ identities and requested URLs, and compare them to the fixed-timeout policy used in the current implementation of the Apache Web server. An experimental evaluation of connection management policies at Web servers, conducted using Web server logs, shows that our URL-based policy consistently outperforms other policies, and achieves significant 15–25% reduction in cost with respect to the fixed-timeout policy. Hence, allowing Web servers and clients to more fully reap the benefits of persistent HTTP.  1999 Published by Elsevier Science B.V. All rights reserved.