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