Internet Draft Ingrid Melve draft-melve-intercache-comproto-00.txt Inter Cache Communication Protocols Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as ``work in progress.'' To learn the current status of any Internet-Draft, please check the ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). Abstract This document gives a brief overview of inter cache communication protocols and techniques for web proxy caches. ICP, WCCP, HTCP, CARP, Cache Digest are presented briefly, and a list of some other protocols and techniques is provided for background information. ICP Internet Cache Protocol * [1]RFC 2186 Internet Cache Protocol (ICP), version 2 * [2]RFC 2187 Application of Internet Cache Protocol (ICP), version2 * [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 Melve [Page 1] Inter Cache Communication Protocols November 1998 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 Melve [Page 2] Inter Cache Communication Protocols November 1998 * [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 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 Melve [Page 3] Inter Cache Communication Protocols November 1998 Cache Digest gives information about cache contents * [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 * [36]RFC 1945 Informational HTTP/1.1 * [37]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 nformation 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. [38]LSAM Research proxy cache using multicast push for fad pages (hotspots) [39]Adaptive Web Caching Research project. Overlapping multicast groups where caches share information within each group, adaptiv to network conditions. Other protocols CRISP Melve [Page 4] Inter Cache Communication Protocols November 1998 * [34]CRISP Web cache CRISP caches are structured as a collective of autonomous Web proxy servers sharing their cache directories through a common mapping service that can be queried with at most one message exchange. Individual servers may be configured to replicate all or part of the global map in order to balance access cost, overhead and hit ratio, depending on the size and geographic dispersion of the collective cache. RELAIS * [35]Relais web site Acknowledgements Thanks to Alex Rousskov and Ahmed Mokhtar for comments. References 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/ Melve [Page 5] Inter Cache Communication Protocols November 1998 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. http://www.cs.duke.edu/ari/cisi/crisp/ 35. http://www-sor.inria.fr/projects/relais/index.html.en 36. ftp://ftp.nordu.net/rfc/rfc1945.txt 37. ftp://ftp.nordu.net/rfc/rfc2068.txt 38. http://www.isi.edu/~lsam/ 39. http://irl.cs.ucla.edu/AWC/ Authors' Addresses Ingrid Melve UNINETT Tempeveien 22, Trondheim, NORWAY Phone: +47 73 55 79 07 Email: Ingrid.Melve@uninett.no Melve [Page 6]