In the network area caching does not only reduce the transmission time, it also reduces the required network bandwidth for repeatedly requested data. Assume that some users are located in the same area and that they require the same object stored in some distant location. These users may either request it directly from the distant location or use a cache server located ``closer'' to them.
The first time the data is requested from the cache server, the cache server retrieves the object from the distant location and stores it. Successive requests will be handled from the cache server's copy. To assure that the cache has an up to date copy of the document control messages have to be exchanged between the cache server and the original object's server. These messages are usually small compared to the size of the original data.
If several cache servers are available, they may work together to achieve even higher benefits. If a cache server does not store the requested data, it may ask for the data in other related caches. Using related caches in a hierarchical structure is also known as cascading . Another technique called neighboring means to combine several caches into one big virtual cache. If some data are requested, each cache server can ask all other caches for the requested data.
Both techniques described here are already used in the ``World Wide Web'' (WWW) for the ``Hyper Text Transfer Protocol'' (HTTP) and the ``File Transfer Protocol'' (FTP). Cascading has been introduced by the CERN WWW server ([Nie96] and [W3C95]), which was the first cache server (and even the first WWW server) available for the WWW. Neighboring has been introduced by the Harvest Object Cache [BDH+94], which has evolved into the Squid software ([Pea97] and [Wes97]).