The Internet Cache Protocol (ICP) is a
UDP-based
protocol
Protocol may refer to:
Sociology and politics
* Protocol (politics), a formal agreement between nation states
* Protocol (diplomacy), the etiquette of diplomacy and affairs of state
* Etiquette, a code of personal behavior
Science and technolog ...
used for coordinating
web cache
A Web cache (or HTTP cache) is a system for optimizing the World Wide Web. It is implemented both client-side and server-side. The caching of multimedias and other files can result in less overall delay when browsing the Web.
Parts of the sys ...
s. Its purpose is to find out the most appropriate location to retrieve a requested object in the situation where multiple caches are in use at a single site. The function of ICP is to use the caches as efficiently as possible, and to minimize the number of remote requests to the originating server.
Operation
Hierarchically, a queried cache can either be a parent or a sibling.
Parents usually sit closer to the internet connection than the child. If a child cache cannot find an object, the query usually will be sent to the parent cache, which will fetch, cache, and pass on the request. Siblings are caches of equal hierarchical status, whose purpose is to distribute the load amongst the siblings.
When a request comes into one cache in a cluster of siblings, ICP is used to query the siblings for the object being requested. If the sibling has the object, it will usually be transferred from there, instead of being queried from the original server. This is often called a "near miss" — the object is not found in the cache (a “miss”) but is loaded from a nearby cache, instead of from a remote server.
The ICP protocol was designed to be lightweight in order to minimize round-trip time between caches. It is intended for unreliable but quick connections. This approach can reduce numbers of server retrievals, and also prevent the storage of multiple copies of an instance of data, but leads to the potential drawback of increased intercache communication, which can slow the system down.
[ publisher, IEEE ]
The ICP protocol is described in RFC 2186, its application to
hierarchical web caching in RFC 2187.
Proxies
Web proxies that support ICP include:
*
CACHEbox
*
Cisco
Cisco Systems, Inc., commonly known as Cisco, is an American-based multinational digital communications technology conglomerate corporation headquartered in San Jose, California. Cisco develops, manufactures, and sells networking hardware, ...
CacheEngine
[Inter Cache Communication Protocols](_blank)
Ingrid Melve
*
Cisco
Cisco Systems, Inc., commonly known as Cisco, is an American-based multinational digital communications technology conglomerate corporation headquartered in San Jose, California. Cisco develops, manufactures, and sells networking hardware, ...
Content Engine
*
DeleGate
Delegate or delegates may refer to:
* Delegate, New South Wales, a town in Australia
* Delegate (CLI), a computer programming technique
* Delegate (American politics), a representative in any of various political organizations
* Delegate (Unit ...
*
Harvest project
*
Traffic Server
The Apache Traffic Server (ATS) is a modular, high-performance reverse proxy and forward proxy server, generally comparable to Nginx and Squid. It was created by Inktomi, and distributed as a commercial product called the Inktomi Traffic Ser ...
* Mirror Image
*
MOWS
*
NetCache
*
Netscape Proxy Server
*
Novell BorderManager FastCache
*
ProxySG
*
Squid
*
SkyCache
HTCP, designed as a successor to ICP, attempts to handle various problems found in ICP deployments.
ICP message structure
An ICP message consists of two sections:
* Header
* Data
Header:
Header length is fixed to 20 octets (five 32-bit words).
Data:
Data is of variable length, limited by the maximum ICP message size (including header) of 16,384 octets.
The ICP header consists of 8 fields, with 2 optional fields. The fifth and sixth field is optional (pink background in table) and appropriately named “options” and “option data”.
References
External links
*RFC 2186 ICP version 2
*RFC 2187 Application of ICP version 2
Web caching protocol
{{Internet-stub