Caching Array Routing Protocol (CARP)

CARP is a protocol that allows multiple proxy servers to be arrayed as a single logical cache for distributed content caching.

What is CARP (Caching Array Routing Protocol)?

A protocol developed by Microsoft and implemented in Microsoft Proxy Server that allows multiple proxy servers to be arrayed as a single logical cache for distributed content caching.

How It Works: Caching Array Routing Protocol

Caching Array Routing Protocol (CARP) is implemented as a series of algorithms that are applied on top of Hypertext Transfer Protocol (HTTP). CARP allows a Web browser or downstream proxy server to determine exactly where in the proxy array the information for a requested Uniform Resource Locator (URL) is stored.

CARP enables proxy servers to be tracked through an array membership list that is automatically updated using a Time to Live (TTL) countdown function. This function regularly checks for active proxy servers in the array. CARP uses hash functions and combines the hash value of each requested URL with each proxy server.

The URL/proxy server hash with the highest value becomes the owner of the information cached. This results in a deterministic location for all cached information in the array, which enables a Web browser or downstream proxy server to know exactly where a requested URL is locally stored, or where it will be located once it has been cached.

The hash functions result in cached information being statistically distributed (load balanced) across the array. Using hashing means that massive location tables for cached information need not be maintained—the Web browser simply runs the same hashing function on the object to locate where it is cached.

CARP provides two main benefits:

  • It saves network bandwidth by avoiding the query messaging between proxy servers that occurs with conventional Internet Cache Protocol (ICP) networks.
  • It eliminates the duplication of content that occurs when proxy servers are grouped in arrays, resulting in faster response times and more efficient use of server resources.