Network Working Group D. Wessels
Request for Comments: 2187 K. Claffy
Category: Informational National Laboratory for Applied
Network Research/UCSD
September 1997
Application of Internet Cache Protocol (ICP), version 2
Status of this Memo
This memo provides information for the Internet community. This memo
does not specify an Internet standard of any kind. Distribution of
this memo is unlimited.
Abstract
This document describes the application of ICPv2 (Internet Cache
Protocol version 2, RFC2186) to Web caching. ICPv2 is a lightweight
message format used for communication among Web caches. Several
independent caching implementations now use ICP[3,5], making it
important to codify the existing practical uses of ICP for those
trying to implement, deploy, and extend its use.
ICP queries and replies refer to the existence of URLs (or objects)
in neighbor caches. Caches exchange ICP messages and use the
gathered information to select the most appropriate location from
which to retrieve an object. A companion document (RFC2186)
describes the format and syntax of the protocol itself. In this
document we focus on issues of ICP deployment, efficiency, security,
and interaction with other aspects of Web traffic behavior.
Table of Contents
1. Introduction................................................. 2
2. Web Cache Hierarchies........................................ 3
3. What is the Added Value of ICP?.............................. 5
4. Example Configuration of ICP Hierarchy....................... 5
4.1. Configuring the `proxy.customer.org' cache................. 6
4.2. Configuring the `cache.isp.com' cache...................... 6
5. Applying the Protocol........................................ 7
5.1. Sending ICP Queries........................................ 8
5.2. Receiving ICP Queries and Sending Replies.................. 10
5.3. Receiving ICP Replies...................................... 11
5.4. ICP Options................................................ 13
6. Firewalls.................................................... 14
7. Multicast.................................................... 14
8. Lessons Learned.............................................. 16
8.1. Differences Between ICP and HTTP........................... 16
RFC 2187 ICP September 1997
8.2. Parents, Siblings, Hits and Misses......................... 16
8.3. Different Roles of ICP..................................... 17
8.4. Protocol Design Flaws of ICPv2............................. 17
9. Security Considerations...................................... 18
9.1. Inserting Bogus ICP Queries................................ 19
9.2. Inserting Bogus ICP Replies................................ 19
9.3. Eavesdropping.............................................. 20
9.4. Blocking ICP Messages...................................... 20
9.5. Delaying ICP Messages...................................... 20
9.6. Denial of Service.......................................... 20
9.7. Altering ICP Fields........................................ 21
9.8. Summary.................................................... 22
10. References................................................... 23
11. Acknowledgments.............................................. 24
12. Authors' Addresses........................................... 24
1. Introduction
ICP is a lightweight message format used for communicating among Web
caches. ICP is used to exchange hints about the existence of URLs in
neighbor caches. Caches exchange ICP queries and replies to gather
information for use in selecting the most appropriate location from
which to retrieve an object.
This document describes the implementation of ICP in software. For a
description of the protocol and message format, please refer to the
companion document (RFC2186). We avoid making judgments about
whether or how ICP should be used in particular Web caching
configurations. ICP may be a "net win" in some situations, and a
"net loss" in others. We recognize that certain practices described
in this document are suboptimal. Some of these exist for historical
reasons. Some aspects have been improved in later versions. Since
this document only serves to describe current practices, we focus on
documenting rather than evaluating. However, we do address known
security problems and other shortcomings.
The remainder of this document is written as follows. We first
describe Web cache hierarchies, explain motivation for using ICP, and
=1= |