Drawing on the experiences in the EC 4th Framework Project DESIRE, funded by the European Union, this document identifies some of the pitfalls and possibilities of building Web caching meshes. This document gives guidelines and outlines strategies for building a functional Web caching system with cooperating Web caches.
The architecture of a Web caching mesh is highly dependent on the network topology and the cost factors of the network.
The emphasis is on building Internet Service Provider (ISP) wide caching systems, but architectural considerations for inter-network agreements on Web caching is discussed and examples of policies for international Web caching agreements are given. The impact of Web caching as a routing issue is discussed.
We look into several criteria for choosing Web caching server software and discuss why Squid has been chosen as the primary server software. Then the importance of Web browser (client) configuration is discussed. Criteria for location of Web caching servers and the importance of network topology and traffic flow are discussed. Several basic requirements for hardware used on Web caching servers are included, giving general advice and pointers to several hardware suppliers. The main part of the paper is focused on how to build and join an ISP-wide Web caching mesh, providing examples and listing alternative approaches to the architecture of a mesh.
In this document a number of terms are used to refer to the roles played by participants in, and objects of, the HTTP communication. The following definitions are used in the HTTP/1.1 specification [HTTP/1.1] :
The introduction of World Wide Web has changed the view of the user community to the network in respect to accessibility and user friendliness. With the Web the user is able to look for and retrieve all kind of information from the network without having any knowledge of the network. From the user point of view it does not matter if the information he is looking for, e.g. a video clip with sound effects, is on a computer in the next room or on the other side of the world. This leads to an enormous growth of traffic on the local, national and international network backbone. Because the use of the Web is growing exponentially it is to be expected that the WWW traffic on the national and international networks also will grow exponential with raising latency. Nevertheless the user expects a high quality of service with modest response times.
The quality of service and the response times can be improved by decreasing the network load. One way to achieve this is to install a Web caching service. Caching effectively migrates copies of popular documents from Web servers closer to the Web clients. In general, Web client users see shorter delays when requesting a URL, network managers see less traffic and Web servers see lower request rates. An origin Web server might not only see lower requests rates but primarily will experience a lower server load because files will be fetched with an If-Modified-Since GET HTTP request. Web clients request documents from Web servers, either directly or through a Web cache server or proxy. A Web cache server has the same functionality as a Web server, when seen from the client and the same functionality as a client when seen from a Web server. The primary function of a Web cache server is to store Web documents close to the user, to avoid pulling the same document several times over the same connection, reduce download time and create less load on remote servers.
There is a certain urgency which may be deduced from network usage graphs, which show HTTP traffic increasing with a faster exponential growth rate than total Internet traffic. In 1995 the HTTP traffic has become a significant proportion of the total, and so Web growth is pushing network upgrades, causing performance degradation, and itself being slowed by network limitations [Berners-Lee].
However, the use of caches introduces two main problems: how do we ensure that the caches return the correct values, and how do we obtain the best possible performance. In general, there may be a trade-off between how correct the returned values are, and how effectively the caches perform.
Caching is used in two forms in the Web. The first is a local cache, which is built into a Web browser. A Web client with caching stores not only the documents currently displayed in browser windows, but also documents requested in the past. This local cache is also used for (temporary) storage of the history. There are two forms of client caches: persistent and nonpersistent. A persistent client cache retains its documents between invocations of the Web browser; Netscape uses a persistent cache. A nonpersistent client cache (used in Mosaic) deallocates any memory or disk used for caching when the user quits the browser. Per-client caches may maintain consistency of cached files with server copies by issuing an optional If-Modified-Since GET to the HTTP server or proxy server.
The second form of caching is in the network used by the Web (i.e., the caching proxy mentioned earlier). The cache is located on a machine on the path from multiple clients to multiple servers. Normally a caching proxy is not on a machine that runs a Web client or an HTTP server. The caching proxy caches URLs generated by multiple clients. It is possible to use caching proxies hierarchically, so that caching proxies cache URLs from other caching proxies. In this case the caches can be identified as first level caches, second level caches, and so on. A hierarchical arrangement is only one possible configuration; Smith [Smith96] gives a nonhierarchical arrangement of large national and international caching proxies.
Web caching servers may cooperate in a mesh where they share load and distribute requests. A Webcaching server in a mesh may pass a unfulfilled request on to another Web caching server.
The simplest mesh is two servers strung after another, if a request is not answered on the first cache server, it is passed on to the second and then on to the Web server. Another way is to build a network of servers that have different relations to one another, this may be done by the help of the Internet Cache Protocol, ICP [ICP-draft]. ICP passes messages among Web cache servers.
In this document we assume that you have a working knowledge of Web caching and the primary target group is system administrators that are running a Web cache server or planning to start one. Executives are referred to the executive summary.
Examples are provided using the Squid software. Documentation on Squid is available from the Web site and is not included in this document.
Ingrid Melve, Henny Bekker| cache-desire@uninett.no | 2002-10-29 |