RFC 2186 (rfc2186) - Page 2 of 9
Internet Cache Protocol (ICP), version 2
Alternative Format: Original Text Document
RFC 2186 ICP September 1997
In current practice, ICP is implemented on top of UDP, but there is
no requirement that it be limited to UDP. We feel that ICP over UDP
offers features important to Web caching applications. An ICP
query/reply exchange needs to occur quickly, typically within a
second or two. A cache cannot wait longer than that before beginning
to retrieve an object. Failure to receive a reply message most
likely means the network path is either congested or broken. In
either case we would not want to select that neighbor. As an
indication of immediate network conditions between neighbor caches,
ICP over a lightweight protocol such as UDP is better than one with
the overhead of TCP.
In addition to its use as an object location protocol, ICP messages
can be used for cache selection. Failure to receive a reply from a
cache may indicate a network or system failure. The ICP reply may
include information that could assist selection of the most
appropriate source from which to retrieve an object.
ICP was initially developed by Peter Danzig, et. al. at the
University of Southern California as a central part of hierarchical
caching in the Harvest research project[3].
ICP Message Format
The ICP message format consists of a 20-octet fixed header plus a
variable sized payload (see Figure 1).
NOTE: All fields must be represented in network byte order.
Opcode
One of the opcodes defined below.
Version
The ICP protocol version number. At the time of this writing,
both versions two and three are in use. This document describes
only version two. The version number field allows for future
development of this protocol.
Wessels & Claffy Informational