User-perceived latency is recognized as the central performance problem in the Web. We systematically measure factors contributing to this latency, across several locations. Our study reveals that domain name system (DNS) lookup times, transmission control protocol (TCP) connection-establishment, and start-of-session delays at hypertext transfer protocol (HTTP) servers are major causes of long waits. Moreover, wait due to these factors also afflicts high-bandwidth users, which enjoy relatively short transmission times. We propose simple techniques that address these factors: (i) pre-resolving host names (pre-performing DNS lookup), (ii) pre-connecting (prefetching TCP connections prior to issuance of HTTP request), and (iii) pre-warming (sending a "dummy" HTTP HEAD request to Web servers). Trace-based simulations demonstrate a potential to significantly reduce long waits. Our techniques are complementary to the more traditional document prefetching techniques. Like document prefetching, deployment of our techniques at Web browsers or proxies does not require protocol modifications or Web server cooperation, and the prefetching strategy itself can be based on analysing hyperlinks or request patterns. In contrast to document prefetching, they can be applied with non-prefetchable URLs. Furthermore, bandwidth overhead is minimal and they are considerably more effective in performance improvement per bandwidth used than document prefetching. We propose scalable deployment solutions to control the potential overhead to proxies and particularly to Web servers.
- Perceived latency