270 likes | 281 Views
This article provides an overview of web cache hierarchies, the Internet Caching Protocol (ICP), and its behavior and usage patterns in web caching. It also includes a hands-on section and bibliography for further reference.
E N D
Web Cache Hierarchies and Internet Caching Protocol (ICP) Web cache interaction; behavior and use of ICP
Content • Web Caching and Cache Hierarchies • Description of ICP Overview • Behavior of ICP-enabled caches • ICP and Web Caching Usage patterns • Bibliography and Hands-on Section
Web Caches • Hardware (ProxySG, Cisco) as well as software-only products • Caching content • reduces user latency and network congestion • distributes load
By ICP Hierarchies: Parents and Siblings
Avoiding Loops • Forwarding MISSes to other caches may cause infinite loops • To avoid - distinguish between parents and siblings.
ICP Overview • ICP sends the following message types
ICP (Internet Cache Protocol) • Harvest cache project • ICP was originally developed as a component of the Harvest cache project • Cache hierarchy • A set of child caches share a common parent cache • Child caches forward requests to their parents for documents they do not have • ICP Query Algorithm • By default, Squid sends ICP_QUERY message to each peer
ICP (Internet Cache Protocol) 1. ICP_HIT(Local Cache) 2. ICP_HIT(Sibling Cache) 3. ICP_HIT(Parent Cache) 4. Direct Retrieval
ICP Package Structure • ICP sends the following message types: • ...
ICP is used to exchange hints about the existence of URLs in neighbor caches. • Caches exchange ICP queries and replies to gather information to use in selecting the most appropriate location from which to retrieve an object.
HIT and MISS • ICP is primarily used in a cache mesh to locate specific Web objects in neighboring caches. • One cache sends an ICP query to its neighbors. The neighbors send back ICP replies indicating a "HIT" or a "MISS."
UDP Protocol • In current practice, ICP is implemented on top of UDP, but there is no requirement that it be limited to UDP. • 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.
ICP processing (sequence diagram) • An ICP query/reply exchange needs to occur quickly (1-2s). A cache cannot wait longer than that before beginning to retrieve an object. • 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.
Opcode Version Message Length ICP Packet • 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 Request Number Options Option Data Sender Host address Payload
History • 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]. [3] Bowman M., Danzig P., Hardy D., Manber U., Schwartz M., and Wessels D., "The Harvest Information Discovery and Access System", Internet Research Task Force - Resource Discovery, http://harvest.transarc.com/.
ICP's Alternatives • Most likely, you'll use one or more of Squid's intercache protocols to assist in communicating with the other caches or proxies.The newer protocols are • Cache Digests, • Hypertext Caching Protocol (HTCP), • Cache Array Routing Protocol (CARP).
Comparison with HTCP • Drawbacks of ICP. Any advantages?
How the end-users are affected? • May get "cannot forward" errors? ... Faster access • How are the Web clients affected by ICP? • Proxy configuration • May get "cannot forward" errors • Changed performance.
Performance estimates • netdb - run to see, what it costs to forward
What if something goes down? • Cache behavior; alive/dead links (does Squid notice that?)
ICP Problems • ICP is not scalabe for larger number of proxies: http://pages.cs.wisc.edu/~cao/papers/summary-cache/node4.html
Content • Web Caching and Cache Hierarchies • Description of ICP Protocol • Behavior of ICP-enabled caches • ICP and Web Caching Usage patterns • Hands-on Section and Bibliography
Hands-on Section Configuring Web Cache Hierarchies