Web Cache Communication Protocol

Web Cache Communication Protocol (WCCP) is a Cisco-developed content-routing protocol that provides a mechanism to redirect traffic flows in real-time. It has built-in load balancing, scaling, fault tolerance, and service-assurance (failsafe) mechanisms. Cisco IOS Release 12.1 and later releases allow the use of either Version 1 (WCCPv1) or Version 2 (WCCPv2) of the protocol.

WCCP allows utilization of Cisco Cache Engines (or other caches running WCCP) to localize web traffic patterns in the network, enabling content requests to be fulfilled locally. Traffic localization reduces transmission costs and download time.

Protocol Versions
WCCPv1
 * Only a single router services a cluster of systems
 * Supports HTTP (TCP port 80) traffic flows only
 * Provides generic routing encapsulation (GRE) to prevent packet modification
 * Routers and cache engines communicate to each other via a control channel based on UDP port 2048

WCCPv2
 * Allows for use across up to 32 routers (WCCP servers)
 * Supports up to 32 engines/accelerators (WCCP clients)
 * Supports any IP protocol including any TCP or UDP
 * Supports up to 255 service groups (0-254)
 * Adds MD5 shared secret security

Registration

 * Accelerator or Engine is a WCCP client
 * Registers WCCP services (0-254) with “Here I Am” if application is operational
 * Registration announces WCCP client on service group, provides availability notification, requests interesting traffic
 * Transmits “Here I Am” every 10 seconds
 * Lead WCCP client (lowest IP address) instructs routers on protocol/port, assignment, forwarding, and return methods
 * Router is a WCCP server
 * Accepts service group registration (0-254)
 * Acknowledges “Here I Am” with “I See You”
 * Waits 30 (3x10) seconds before declaring engine failed
 * Announce engines to other engines
 * Router id is highest interface IP or highest loopback IP if one exists
 * Redirects traffic to engine

Assignment

 * Selects an engine in the cluster
 * Hash 256 buckets
 * Mask 128 buckets represented by 7 bit mask of the source or destination IP/Port

Redirect from Router to Cache Engine

 * Redirect list allows router to permit/deny traffic to intercept
 * Two methods of redirection:
 * WCCP L2: Local subnet only, little overhead. Rewrites packet MAC address to that of the local Engine
 * WCCP GRE: Any IP-Subnet, more overhead. Creates tunnel from router to local or remote Engine.

Return from Cache Engine to Router

 * WCCP GRE return.
 * WCCP L2 return.
 * Engine can optionally return traffic any other way including routing.

Products that implement WCCP
Whilst originally designed for Cisco's Content Cache appliance they have since added support to other products, including:
 * ASR 1000 Routers
 * Application & Content Networking System (ACNS)
 * Wide Area Application Services (WAAS)
 * ASA/PIX Firewalls
 * Some IOS versions
 * IronPort S-Series Web Security Appliance
 * Nexus 7000 Switches

Other vendors have also implemented WCCP support into their products, as it allows clustering and transparent deployment on networks using Cisco routers/switches without additional hardware. WCCP is of particular use to vendors of web cache/proxy/security appliances for redirection of web traffic. Please note that some vendors did not follow the standards when implementing WCCP and this could result in intercompatibility problems.

A list includes: