Internet Cache Protocol (ICP)

Last Edited




Definition of ICP – Internet Cache Protocol in Network Encyclopedia.

What is ICP (Internet Cache Protocol)?

Internet Cache Protocol is a UDP-based protocol developed in 1995 to allow arrays of proxy servers to communicate and work together over a network. Internet Cache Protocol (ICP) lets individual proxy servers query neighboring proxy servers to try to locate cached copies of requested objects. If these queries fail, the object is requested from the Internet.

ICP (Internet Cache Protocol)
ICP (Internet Cache Protocol)

How ICP works

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.[1]

ICP drawbacks

ICP has some inherent drawbacks:

  • ICP arrays use queries to determine the location of cached information, a process that generates additional network traffic.
  • ICP arrays have negative scalability – the more proxy servers in the array, the more query traffic is generated.
  • ICP arrays tend to become highly redundant, with each cache containing similar information (the URLs of the most frequently visited sites).

Microsoft’s solution to these problems is the Caching Array Routing Protocol (CARP), which it developed for Microsoft Proxy Server version 2.

External references: