Inter Cache Communication Protocols
/Work in progress, content not to be trusted, comments welcome/
This document (tries to, at least) gives an overview of inter cache
communication protocols and techniques for web proxy caches.
ICP
Internet Cache Protocol
* [1]RFC 2186 Internet Cache Protocol (ICP), version 2
* [2]RFC 2187 Application of Internet Cache Protocol (ICP), version
2
* [3]Internet Cache Protocol Extension (draft)
* [4]ICP group
* [5]ICP v1.4
ICP is used by caches to query other caches about web objects, to see
if a web object is present at the other cache.
ICP uses UDP. Since UDP is unreliable, an estimate of network
congestion and availability may be calculated by ICP loss. This
rudimentary loss measurement does, together with round trip times
provide a load balancing method for caches.
Most current cache implementations support ICP in one form or the
other.
ICP does not convey information about HTTP headers associated with a
web object. HTTP headers may include access control and cache
directives, Since caches ask for objects, and then download the
objects using HTTP, false cache hits may occur (object present in
cache, but not accessible for sibling cache is one example). ICP
suffer from all the security problems of UDP.
Implemented in
* [6]Harvest
* [7]Harvest
* [8]Squid
* [9]NetCache (ICP version 3)
* [10]BorderManager FastCache
* [11]Netscape Proxy Server
* [12]DeleGate
* [13]MOWS
* [14]Inktomi Traffic Server
* [15]Cisco CacheEngine
* [16]SkyCache
* [17]Mirror Image
WCCP
Web Cache Control Protocol
* No documentation publicly available
The Web Cache Control Protocol is proprietary to Cisco.
WCCP is used to transparently redirect web traffic from a router to
the Cisco Cache Engine
The Web Cache Control Protocol defines the communication between Cache
Engines and routers. Using the Web Cache Control Protocol, a router
redirects Web requests to a Cache Engine (rather than to the intended
Web server). The router also determines Cache Engine availability and
redirects requests to new Cache Engines as they are added to a cache
farm.
Implemented in
* [18]Cisco CacheEngine
* [19]Cisco CacheEngine
HTCP
Hyper Text Caching Protocol
* [20]Hyper Text Caching Protocol (HTCP/0.0)
(draft-vixie-htcp-proto-03.txt)
HTCP is a protocol for discovering HTTP caches and cached data,
managing sets of HTTP caches, and monitoring cache activity.
HTCP includes HTTP headers, while ICPv2 does not. HTTP headers are
vital information for web proxy caches.
Implemented in
* [21]Mirror Image
* [22]Squid2 (partially)
CARP
Cache Array Routing Protocol
* [23]draft-vinod-carp-v1-03.txt
* [24]Microsoft CARP doc
* [25]CARP site
CARP is a hashing function for dividing URL-space among a cluster of
proxy caches. Included in CARP is the definition of a Proxy Array
Membership Table, and ways to download this information.
An HTTP client agent (either a proxy server or a client browser) which
implements CARP v1.0 can allocate and intelligently route requests for
the correct URLs to any member of the Proxy Array. Due to the
resulting sorting of requests through these proxies, duplication of
cache contents is eliminated and global cache hit rates may be
improved. [26][CARP]
CARP is not a communication protocol, strictly speaking. One of the
goals with CARP is to avoid inter-cache communication.
CARP is used for clusters of web proxy caches, and clients may use
CARP directly as a hash function based proxy selection mechanism.
Implemented in
* [27]Microsoft Proxy Server
* [28]Netscape Proxy Server
* [29]Squid (partially)
Cache Digest
* [30]Squid FAQ on Cache Digest
* [31]Cache Digests (paper)
Cache Digest allows proxies to make information about their cache
content available to peers in a compact format.
Cache Digest is not a protocol, but a compression technique for
exchanging information about proxy cache content. A peer uses digests
for identify co-operating caches that are likely to have a given web
object. [32]
Implemented in
* [33]Squid2
HTTP
HTTP/1.0
* [34]RFC 1945 Informational
HTTP/1.1
* [35]RFC 2068 Proposed Standard
* (draft aimed at Draft Standard)
One of the major changes from HTTP/1.0 to HTTP/1.1 is added support
for web caching. The Cache-control: headers provides support for
information providers to give cache directives.
Multicast based protocols
Several different trials have been made with multicast inter cache
communication. Multicast ICP is implemented, but not in widespread
use.
_________________________________________________________________
References
Visible links:
1. ftp://ftp.nordu.net/rfc/rfc2186.txt
2. ftp://ftp.nordu.net/rfc/rfc2187.txt
3. ftp://ftp.nordu.net/internet-drafts/draft-lovric-icp-ext-01.txt
4. http://ircache.nlanr.net/Cache/ICP/
5. http://excalibur.usc.edu/icpdoc/icp.html
6. http://harvest.cs.colorado.edu/
7. http://harvest.transarc.com/
8. http://squid.nlanr.net/
9. http://www.netapp.com/netcache/
10. http://www.novell.com/bordermanager/fastcache/
11. http://www.netscape.com/comprod/proxy_server.html
12. http://wall.etl.go.jp/delegate/
13. http://mows.rz.uni-mannheim.de/mows/
14. http://www.inktomi.com/products/traffic/
15. http://www.cisco.com/warp/public/751/cache/
16. http://www.skycache.com/
17. http://www.mirror-image.com/
18. http://www.cisco.com/univercd/data/doc/netbu/hardware/webcache/webcache.htm
19. http://www.cisco.com/warp/public/751/cache/cds_ov.htm
20. ftp://ftp.nordu.net/internet-drafts/draft-vixie-htcp-proto-03.txt
21. http://www.mirror-image.com/
22. http://squid.nlanr.net/
23. ftp://ftp.nordu.net/internet-drafts/draft-vinod-carp-v1-03.txt
24. http://www.eu.microsoft.com/proxy/guide/CarpWP.asp
25. http://egg.microsoft.com/carp/
26. ftp://ftp.nordu.net/internet-drafts/draft-vinod-carp-v1-03.txt
27. http://www.microsoft.com/proxy/
28. http://www.netscape.com/comprod/proxy_server.html
29. http://squid.nlanr.net/
30. http://squid.nlanr.net/Squid/FAQ/FAQ-16.html
31. http://wwwcache.ja.net/events/workshop/31/rousskov@nlanr.net.ps
32. http://wwwcache.ja.net/events/workshop/31/rousskov@nlanr.net.ps
33. http://squid.nlanr.net/
34. ftp://ftp.nordu.net/rfc/rfc1945.txt
35. ftp://ftp.nordu.net/rfc/rfc2068.txt
This archive was generated by hypermail 2b29 : Thu Nov 18 2004 - 11:21:25 MST