The Internet Cache Protocol (ICP) is a
UDP-based
protocol 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
A hierarchy (from Greek: , from , 'president of sacred rites') is an arrangement of items (objects, names, values, categories, etc.) that are represented as being "above", "below", or "at the same level as" one another. Hierarchy is an important ...
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 corporation, multinational digital communications technology conglomerate (company), conglomerate corporation headquartered in San Jose, California. Cisco develo ...
CacheEngine
[Inter Cache Communication Protocols](_blank)
Ingrid Melve
*
Cisco
Cisco Systems, Inc., commonly known as Cisco, is an American-based multinational corporation, multinational digital communications technology conglomerate (company), conglomerate corporation headquartered in San Jose, California. Cisco develo ...
Content Engine
*
DeleGate
*
Harvest project
Harvest was a DARPA funded research project by the Internet Research Task Force Research Group on Resource Discovery and hosted at the University of Colorado at Boulder which provided a web cache, developed standards such as the Internet Cache Pro ...
*
Traffic Server
* Mirror Image
*
MOWS
*
NetCache
*
Netscape Proxy Server
The Oracle iPlanet Web Proxy Server (OiWPS), formerly known as Sun Java System Web Proxy Server (SJSWPS), is a proxy server software developed by Sun Microsystems (since 2010, Oracle Corporation).
Overview
The Oracle iPlanet Web Proxy Server, is ...
*
Novell
Novell, Inc. was an American software and services company headquartered in Provo, Utah, that existed from 1980 until 2014. Its most significant product was the multi- platform network operating system known as Novell NetWare.
Under the l ...
BorderManager FastCache
*
ProxySG
*
Squid
True squid are molluscs with an elongated soft body, large eyes, eight arms, and two tentacles in the superorder Decapodiformes, though many other molluscs within the broader Neocoleoidea are also called squid despite not strictly fitting ...
*
SkyCache
HTCP
Hypertext Caching Protocol (abbreviated to HTCP) is used for discovering HTTP caches and cached data, managing sets of HTTP caches and monitoring cache activity. It permits full request and response headers to be used in cache management and expa ...
, 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